




已阅读5页,还剩86页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机网络课件制作人:谢希仁,王荣存博士rcwang,第6章面向对象分析,课件制作人:谢希仁,面向对象的分析着重分析问题域和系统责任,确定问题的解决方案,暂时忽略与系统实现有关的问题,建立独立于实现的系统分析模型。面向对象分析的基本过程如下:(1)问题域分析,建立用例模型(2)发现和定义对象与类(3)识别对象的外部联系(4)建立系统的静态结构模型(5)建立系统的动态结构模型,6.1建立用例模型的过程,找出拟建系统以外的Actor与系统交互的人员;与系统相连并交换信息的设备和其他系统;使用UseCase来描述Actor怎样使用系统以及系统向Actor提供什么功能UseCase表示从外部用户角度观察的系统功能绘制UseCase图,并编写详细的UseCase描述。UseCase图只能宏观地描述系统的功能;每个功能的含义和具体实现步骤则以文本方式描述。,举例:学生注册课程系统,(1)某大学准备开发一个学生课程注册系统,学生可以使用该系统查询新学期将开设的课程和讲课教师情况,选择自己要学习的课程进行登记注册,并可以查询成绩单;(2)教师可以使用该系统查询新学期将开设的课程和选课学生情况,并可以登记成绩单;(3)注册管理员使用该系统进行注册管理,包括维护教师信息、学生信息和课程信息等。(4)在每个学期的开始,学生可以获得该学期的课程目录表,课程目录表列出每门课程的所有信息,诸如基本信息、教师、开课系和选课条件等。,(5)新学期开始前两周为选课注册时间,在此期间学生可以选课注册,并且允许改变或取消注册申请。每个学生可以选择不超过4门课程,同时指定2门侯选课程以备主选课程未选上。每门课程最多不能超过10人,最少不能低于3人。(6)开学两周后注册管理员负责关闭课程注册,低于3人选课的课程将被取消,一旦学生的注册过程完毕,注册系统将有关信息提交收费系统以便学生付费。如果在实际注册过程中名额已满,系统将通知学生在提交课程表之前予以更改。(7)在学期结束时,学生可以存取系统查看电子成绩单。由于学生成绩属于敏感信息,系统必须提供必要的安全措施以防非法存取。,解题步骤1:发现角色,简单地说,角色是与系统交互的人或事。所谓与系统交互意味着向系统发送消息,从系统中接收消息,或是与系统交换信息。有些角色可以初始化用例,有些角色则不然,仅仅参与用例,在某个时刻与用例进行通信。,课件制作人:谢希仁,可以通过回答下列问题,进行系统角色的识别:谁使用系统的功能?谁需要借助系统完成日常工作?谁来维护和管理系统,以保证系统正常工作?系统控制的硬件设备有哪些?系统需要与其他哪些系统交互?谁对系统产生的结果感兴趣?,在上述例子中,学生和教师使用系统完成课程注册和成绩登记等,注册管理员维护和管理教师、学生和课程的信息。另外,收费系统存取已有的课程目录数据库,获得课程列表。,解题步骤2:发现用例,用例代表一个完整的功能,如与角色通信、进行计算或在系统内工作等。用例描述了它所代表的功能的各个方面,即包含了用例执行期间可能发生的种种情况;用例和角色之间具有“关联”的连接关系,表示什么角色与该用例进行通信。用例具有以下的特征:用例总是由角色初始化;用例为角色提供值;用例具有完全性,即不管其内部是如何实现的,只有最终产生了返回角色的结果,用例的执行才能完毕。,实际上,从识别角色开始,发现用例的过程就已经开始了。对于已识别的角色,通过询问下列问题,可以发现用例:角色需要从系统中获得什么功能?角色需要做什么?角色需要读取、产生、删除、修改或存储系统的某些信息吗?系统中发生事件需要通知角色吗?角色需要通知系统某件事情吗?系统需要的输入/输出信息是什么?这些信息从哪儿来到哪儿去?采用什么实现方法满足某些特殊要求?,与教师有关的用例,选择课程-选择所教的课程,并获得学生名册;登记成绩-在学期结束时,提交学生的课程成绩。,与学生有关的用例,注册课程-在学期开始进行选课注册,允许在一段时间内更改或删除,课程目录系统提供当前学期的所有可选课程列表;查看成绩单-学生可以查看以前学期的电子成绩单。,与注册管理员有关的用例,维护课程信息-在系统中增加、修改和删除课程信息;维护学生信息-在系统中增加、修改和删除学生信息;维护教师信息-在系统中增加、修改和删除教师信息。关闭注册-删除少于3人的课程,并由付费系统通知学生缴费。,与安全性要求有关的用例,登录-使用此系统的人员需要进行登录,以验证其身份和权限。,解题步骤3:选课系统用例图,【实例】某公司的总部设在北京,在上海、广州、成都和西安有分支机构,全公司接近700名员工。鉴于业务和员工团队的快速发展,为了提升整体工作效率。该公司准备开发一套员工报帐系统,取代原来的人工处理方式。,报帐系统将支持员工记录(或预见)日常业务活动的开销,并自动结算每个月应该返还员工的补偿金额,补偿金额会直接存入员工的工资帐户中。报帐系统应具有基于先进技术的图形化界面,员工可以输入业务活动的种类和简短描述,活动开销的类别,选择不同的支付方式,并可以生成灵活的报表。报帐系统应该有能力根据员工提供的信息和要求返还补偿额,同时保存全部员工的报帐信息。员工可以通过他们自己的电脑来使用报帐系统。由于牵涉到财务信息,报帐系统必须提供可信的安全机制。,该公司现有一套基于微软SQLSERVER的人事管理数据库系统,记录员工的基本信息和团队的组织结构。报帐系统将和现有人事管理数据库系统协同工作,需要引入人事管理数据库系统中的部分信息,但不会更新其内容。通过报帐系统,员工能够在出差前(提前两天)按照规定的额度向公司申请借款,相关的经理人员能够通过报帐系统批复或拒绝。报帐系统应在相关负责人批复之后通知该员工提取现金或确认相应款项已经划入指定信用卡(根据员工的要求);员工可以通过报帐系统报销合理的业务活动费用。,财务部门将指定一位报帐系统管理员监管拟建系统中的信息,负责初始设置和维护特定的分类报账额度策略,并能够定期或随机地向各部门负责人提交报帐情况的统计报告。报帐系统在每月的25日对通过审批的报帐申请自动作一次结算,并以电子邮件的方式通知应该得到补偿的员工,同时生成一份统计报告传送给财务部门的系统监管人员。,【员工报帐系统】建立UseCase图步骤1:找出拟建系统以外的Actor,步骤2:发现UseCase报帐系统将支持员工记录(或预见)日常业务活动的开销可以输入业务活动的种类和简短描述,活动开销的类别,选择不同的支付方式,并可以生成灵活的报表。员工可以通过报帐系统报销合理的业务活动费用。员工能够在出差前(提前两天)按照规定的额度向公司申请借款,步骤2:发现UseCase相关的经理人员能够通过报帐系统批复或拒绝。,步骤2:发现UseCase财务部门将指定一位报帐系统管理员监管拟建系统中的信息负责初始设置和维护特定的分类报账额度策略定期或随机地向各部门负责人提交报帐情况的统计报告。,步骤2:发现UseCase报帐系统在每月的25日对通过审批的报帐申请自动作一次结算,并以电子邮件的方式通知应该得到补偿的员工,同时生成一份统计报告传送给财务部门的系统监管人员。,步骤3:建立UseCase图确定系统的责任、范围和边界,确定系统的需求,提交报销申请,提交借款申请,批复报账申请,步骤3:建立UseCase图确定系统的责任、范围和边界,确定系统的需求,结算当月报销费用,审核报账申请,步骤3:建立UseCase图确定系统的责任、范围和边界,确定系统的需求,完成日常维护,调整报账额度,制作统计报表,6.2建立问题域的对象与类模型,发现和定义对象类应以问题域和系统责任为出发点,正确地运用抽象原则,尽可能全面地发现对象的因素,并对其进行检查和整理,最终得到系统的对象类。可以在用例模型的基础上,通过识别实体类、边界类和控制类,从而发现和定义系统中的对象类。,1.识别实体类,实体类代表系统中需要存储和管理的信息,通常是永久存在的。启发分析员发现实体类的因素包括:人员:通常系统会涉及到各种各样的人员,我们需要考虑的是由系统保存和管理其信息的人员,如教师、学生等。组织:在系统中发挥一定作用的组织机构,如系、班级等。物品:需要由系统管理的物品,可以是有形或无形的,如课程等。,设备:在系统中动态地运行、由系统进行监控或供系统使用的各种设备、仪表、机器、运输工具等。事件:需要由系统长期记忆的事件,如学生注册课程的记录等。表格:这里的表格是广义的,可以是各种业务报表、统计表、申请表、身份证、商品订单、帐目、学生成绩单等,注意不要将原始的表格进行简单对应,应该是分析和整理后形成的映射一些现实事物的表格。,解题步骤4:选课系统的实体类,Professor学校中讲课的教师,Student学校中注册课程的学生,CourseCatalog学校所有课程的目录,CourseOffering新学期课程的开设信息,如讲课教师、时间、地点等信息,Course课程的基本信息,Schedule学生在新学期选择登记的课程列表,2.识别边界类,边界类代表系统与角色的接口,在每一个用例中,一个角色对应一个边界类。边界类收集来自角色的信息,并将其转换成实体类和控制类可以使用的中间接口。根据角色的不同类型,边界类可以是用户接口、系统接口和设备接口。,解题步骤5:选课系统的边界类,LoginForm为教师、学生和注册管理员提供登录的操作,RegisterCoursesForm为学生提供选课注册的操作,SelectTeachCoursesForm为教师提供查看学生选课情况的操作,MaintainProfessorsForm为注册管理员提供维护教师信息的操作,ViewReportForm为学生提供成绩查询的操作,SubmitGradesForm为教师提供登记成绩的操作,MaintainStudentsForm为注册管理员提供维护学生信息的操作,CloseRegistrationForm为注册管理员提供关闭注册的操作,MaintainCoursesForm为注册管理员提供维护课程信息的操作,BillingSystemNotice提供与收费系统的信息交换接口,3.识别控制类,控制类负责协调边界类和实体类,通常在现实世界中没有对应的事物,它负责接收边界类的信息,并将其分发给实体类。控制类与用例存在着密切的关系,它在用例开始执行时创建,在用例结束时取消。一般来说,一个用例对应一个控制类。当用例比较复杂时,特别是产生分支事件流的情况下,也可以有多个控制类。,解题步骤6:选课系统的控制类,RegisterCoursesControl负责新学期学生的选课登记,ViewReportControl负责学生成绩的查询,SubmitGradesControl负责学生成绩的登记,SelectTeachCoursesControl负责新学期课程的学生选择情况,CloseRegistrationControl负责关闭课程注册,类与对象的表示方法,4.定义属性,(1)按照一般常识,找出对象的某些属性,如人员的姓名、性别、年龄、地址等;(2)认真研究问题域,找出对象的某些属性,如商品的条形码、学生的学号等;(3)根据系统责任的要求,找出对象的某些属性;(4)考虑对象需要系统保存和管理的信息,找出对象的相应属性,如课程需要保存和管理的信息;,(5)对象为了在服务中实现其功能,需要增设一些属性;(6)识别对象需要区别的状态,考虑是否需要增加一个属性来区别这些状态;(7)确定属性表示整体与部分结构和实例连接。对于初步发现的属性,检查这些属性是否系统使用的特征、是否描述了对象本身的特征、是否可以通过继承得到、是否可以从其他属性直接导出等,对这些属性进行整理和筛选。,属性层的表示,6.3识别对象的外部联系,在找到系统的对象类之后,需要分析和认识各类对象之间的关系。对象与外部的关系有以下几种:(1)对象之间的分类关系,即泛化关系;(2)对象之间的组成关系,即聚合关系;(3)对象之间的静态关系,即关联关系;(4)对象之间的动态关系,即依赖关系。,(1)泛化关系,泛化与特化的结构,也叫做分类结构。继承性:特化类是泛化类的子类,泛化类是特化类的父类。基类表示了一个较为一般、普遍的概念,而每个子类则是它的某个特殊形态。在分类结构中恰如其分地分配属性和服务:共同的属性放在上层,而将特有的属性放在下层;将共同的服务放在上层,而将特有的服务放在下层泛化关系有助于代码共享和复用。,轮船、汽车和飞机都是交通工具,它们从交通工具类派生出来。因此,它们具有作为交通工具的共性(旅客容量、最大速度和公里耗油量等属性和启动、驾驶等操作)。当然,它们可以有自己的属性和操作。比如飞机还拥有飞行高度属性和降落操作等。,“发表的文章”和“接受的文章”是“文章”的特殊形态,而“文章”则是它们的一般化“文章”对象所具有的属性和服务可自动地为“发表的文章”和“接受的文章”所继承。,(2)聚合关系,是整体与部分结构,由属于不同类的成员聚合而形成新的类一个整体可有多个部分,也有不同种类的部分,报社是由采访组、编辑室和印刷厂等几个部门组成一个报社只有一个编辑室,一个印刷厂,但可以有一至多个采访组,(3)关联关系:对象之间的实例连接,两个对象往往由于受制于相同的应用规则而发生联系,这称为实例连接。实例连接也表示一个对象实例不存在的情况下,另一个对象是否仍有意义。,对象之间的实例连接的例子,(4)依赖关系,两个对象之间存在的由于通信所需要而形成的联系,这称为消息连接消息连接表示从一个对象发送消息到另一个对象,由那个对象完成某些处理。对象之间的动态关系对象收到消息后所能执行的操作称为它可提供的服务,服务层的表示,6.4建立系统的静态结构模型,1.类图主要是描述类和类之间的关系。2.对象图主要是描述对象和对象之间的关系。3.结构类型一般特殊整体部分4.主题或子系统可相互协作共同完成一组内聚功能的模型中的子集5.步骤复审需求描述和用例图,找出存在的类之间的关系,用线连接,并命名对每一个关系,指出关系基数/重数,4.主题或子系统,面向对象的模型相当大,是一个包含大量类和对象的平面图主题可以看成是高层的模块或子系统,通过对主题的识别,将这些类和对象做进一步的组合。,现代银行业务系统主题,【例2、员工报账系统提交报账申请】类图员工通过报帐系统填写报销申请,输入相关活动产生的费用,在一次或者多次填写后提交,经过验证之后,以电子邮件的方式通知经理批复。,类图员工employee。公司的正式雇员。经理manager。公司的正式雇员。报销单Claim_report员工在一个(自然)月内的所有报销记录的集合。报销记录Claim_record与业务有关的某一项具体的花费,包括业务活动发生的时间、地点、客户名称(可选)、原因以及费用金额和种类(交通、餐饮、会议、通讯和杂项)。验证规则valid_rule验证为合理的报销记录必须满足几种条件:第一,不同种类的费用不超过相应的限额;第二,报销费用的类型要和员工的职能匹配。,类图,6.5建立系统的动态模型,要想对一个系统了解得比较清楚,首先应当考察它的静态结构,即在某一时刻它的对象和这些对象之间相互联系的结构;然后应当考察在任何时刻对象及其联系的改变。系统的这些涉及时序和改变的状况,用动态模型来描述。动态模型着重于系统的控制逻辑。建立对象交互图,将用例的行为分布到对象中事件追踪图状态图时序图协作图,事件追踪图,事件追踪图侧重于说明发生于系统执行过程中的一个特定“场景”。场景也叫做脚本,是完成系统某个功能的一个事件序列。场景通常起始于一个系统外部的输入事件,结束于一个系统外部的输出事件,它可以包括发生在这个期间的系统所有的内部事件,也可以只包括那些撞到的或由系统中某些对象生成的事件。,电话的一个场景,从对象角度考虑的事件追踪图,解题步骤7:选课系统的时序图,【例4学校登记新生】,become从一个对象值变化到另一个对象值,关联关系,关联关系,关联关系,关联关系,关联关系,已登记属性Boolean,转述USECASE场景的序列图中,主导Actor的实例位于序列图的左侧;其他被动Actor位于序列图的右侧;,主导Actor实例,被动Actor实例,转述USECASE场景的协作图中,边界类对象,Actor实例位于协作图的上方;实体类对象位于协作图的下方;控制类对象放在协作图的中央。,“返回消息”错误的习惯:对象间放置一去一回两个(Call)消息,(Call)消息包含“一去一回”的含义。接收(Call)消息的对象要承担责任(完成消息指定的功能)“返回消息(Return)”接收返回消息的对象不用承担责任。作用:强调消息从“发出”到“回应”的跨度;完成(Call)消息指定的功能中出现异常;,作用:强调消息从“发出”到“回应”的跨度;完成(Call)消息指定的功能中出现异常;,在序列图中作文字注释,【功能描述】员工通过报帐系统填写报销申请,输入相关活动产生的费用,在一次或者多次填写后提交,经过验证之后,以电子邮件的方式通知经理批复。【基本事件序列】1、打开报销申请2、添加空白报销记录3、填写空白报销记录4、验证报销单5、提交报销单【备选事件序列】A1、删除报销记录A2、更新报销记录A3、保存当月报销单A4、报销记录不合理A5、人事数据库不可用A6、邮件未及时发出,【基本事件序列】1、打开报销申请员工:员工选择进入“报销申请”功能。系统:如果该员工当月报销单存在,系统将取出相应信息并展示给员工;如果该员工的当月报销单不存在,则为该员工创建一张当月报销单,1、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年仓储物流一体化解决方案服务合同范本
- 2025度酒店客房安全系统升级与维护合同范本
- 2025二手车经销商收购合同模板
- 2025年度新能源项目土地合作开发及运营管理合同
- 2025房产销售营销策略评估与优化服务合同
- 2025版海绵城市土建清包工实施合同
- 2025标准建筑工程施工劳务派遣合同样本
- 2025年度商铺租赁合同附带增值服务条款
- 2025版汽车金融风险评估与管理咨询服务合同
- 2025年断桥铝门窗行业风险管理与服务合同
- 国庆节英语介绍模板
- 《油气管道无人机智能巡检系统技术管理规范》
- 巡察工作基本流程课件
- 游艇火灾安全知识培训课件
- GB 46030-2025建筑用安全玻璃安全技术要求
- 2025年新《中华人民共和国安全生产法》知识竞赛测试题库含答案
- (2025年标准)茶楼入股合同协议书
- 养老院员工奖惩管理制度范本
- 2025全球人形机器人企业能力画像整机能力评估模型V2.0
- 2025年森工集团面试题目及答案
- 2025年教育综合知识试题及答案
评论
0/150
提交评论