面向对象的系统分析课件_第1页
面向对象的系统分析课件_第2页
面向对象的系统分析课件_第3页
面向对象的系统分析课件_第4页
面向对象的系统分析课件_第5页
已阅读5页,还剩143页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章面向对象的系统分析OOA任务:以面向对象的观点和方法描述系统或产品,以使它符合面向对象软件工程的特点。系统分析的原则:①信息域建模;②描述模块的功能;③表示模块行为;第10章面向对象的系统分析OOA任务:以面向对象的观点和方1④划分模块,取得更多的细节;⑤早期模型表示本质,后期模型提供细节。OOA的过程:①和用户交互②标识类(定义属性和操作)③规定类层次④确定对象之间关系⑤为对象行为建模④划分模块,取得更多的细节;210.1领域分析10.2OOA分析的属过程和部件10.3OOA过程10.4对象行为模型10.1领域分析310.1领域分析目的:为了既满足现行系统开发的需求,又能满足将来同类系统的开发。OOA分析级别:①事务级(企业级):为整个企业建立模型,定义特定事务领域的对象模型;②领域级:为一个特定应用领域建立模型,定义该应用领域的对象模型。③应用级:为一个应用的特定用户需求建立模型。10.1领域分析目的:为了既满足现行系统开发的需求,410.1.1再使用和领域分析1)面向对象技术是由再使用库支持的;2)再使用库将使快速开发低成本、高可靠性的产品;3)建立再使用库须进行领域分析。10.1.1再使用和领域分析1)面向对象技术是由再使用库支510.1.2领域分析过程1)领域分析的任务①标识出应用领域中的公共需求;②面向对象的领域分析:公共对象,类等再使用部件。2)领域分析的过程⑴对于要分析的领域抽取:OO项:规范、设计、支持类非OO项:计划、标准10.1.2领域分析过程1)领域分析的任务6⑵归类这些项成为范畴,定义范畴特征,分类方式和项的命名约定(即确定组织方式);⑶收集有代表性的应用(提取实际的或概念上的对象);⑷分析每个应用步骤(含有已有范畴的项)①标识可再使用对象(侯选)②指明可再使用原因③对侯选再使用对象进行整修④估计在本领域中该对象应用的百分比⑵归类这些项成为范畴,定义范畴特征,分7⑤命名该对象,用CM进行管理⑥估计再使用对象集合的应用百分比⑦为这些对象开发分析模型3)领域分析的利益使用非常高百分比的再使用部件,构造本领域的软件,低成本,高质量和快速进入市场。⑤命名该对象,用CM进行管理810.2OOA分析的属过程和部件10.2.1一般分析过程10.2.2属部件(用于OOA)10.2OOA分析的属过程和部件10.2.1一般分析过程910.2.1一般分析过程*获取客户需求*标识使用案例*建立需求模型(CRC)*选择类和对象*标识对象属性和操作*组织类的层次*建立对象关系模型*建立对象行为模型*审查分析模型10.2.1一般分析过程*获取客户需求1010.2.2属部件(用于OOA)静态部件:表明了对象的特征动态部件:控制、定时和事件处理1)类的静态视图:表示系统中存在的对象2)属性静态视图:表示对象的属性3)关系的静态视图:确定对象之间关系,相互操作和消息格式设计。4)行为动态视图:规定操作的时间序列10.2.2属部件(用于OOA)静态部件:表明了对象的特115)通讯的动态视图:发送消息的时间序列6)控制和定时的动态视图:描述引起状态变化事件的本质与定时。这些部件构成了分析模型。5)通讯的动态视图:发送消息的时间序列1210.3OOA过程10.3.1使用案例10.3.2类—责任—协作者模型10.3.3定义结构和层次10.3.4定义系统和子系统10.3.5对象联系模型10.3OOA过程10.3.1使用案例1310.3.1使用案例描述目标系统的一种使用情况。1)角色2)使用案例作用3)使用案例图示4)使用案例描述(事件流方法)10.3.1使用案例描述目标系统的一种使用情况141)角色和系统通讯并外部于系统的任何事物(人、设备)。特点:①一个角色代表一类外部实体②仅起一个作用主要角色:直接并经常和系统相互作用。次要角色:支持系统,使主要角色起作用。1)角色和系统通讯并外部于系统的任何事物(人152)使用案例作用描述了角色与系统的相互作用方式。①角色执行的主要任务②角色输入系统的数据③角色得自系统的信息例:房屋安全系统角色:房主、传感器、控制板房主使用案例:(相互作用方式)2)使用案例作用描述了角色与系统的相互作用方16*设置和修改口令*查询安全部位状态*查询传感器状态*按紧急按钮*激活与停止系统*设置和修改口令173)使用案例图示⑴图例::角色

:通讯:使用或扩展⑵表示关系:①通讯关系:角色与案例之间②使用关系:案例与案例之间,把公用功能孤立出来,形成被使用案例(再使用)3)使用案例图示⑴图例:18③扩展关系:案例与案例间,表明了特殊性和深入内容。⑶例:处理口令应急处理停止系统查询传感器查询安全状态激活系统房主图10.2房主使用案例③扩展关系:案例与案例间,表明了特处理口令应急处理停止系统19处理口令应急处理停止系统查询传感器查询安全状态激活系统房主验证口令图10.3使用关系的框图处理口令应急处理停止系统查询传感器查询安全状态激活系统房主验20客户取款展扩使用提前取款验证口令图10.4使用扩展关系的框图客户取款展使提前取款验证口令图10.4使用扩展214)使用案例描述(事件流方法)⑴格式:使用案例名称简要说明:前提条件:执行案例的前提条件主要事件流:案例正常流程其它事件流:案例非正常流程错误事件流:出错事件事后条件:事件后的结果⑵例:P2224)使用案例描述(事件流方法)⑴格式:使用案例名称22使用案例名称:激活系统简要说明:房主使用控制面板激活系统前提条件:系统准备号,准备好指示灯亮.主要事件流A0:

(1)房主使用数字键输入4位数字口令,该口令和系统内存储的口令比较,若正确,控制面板等待下一个命令;否则执行事件流A1.(2)房主选择stay或away命令激活系统.Stay激活房间周边传感器;away激活所有的传感器.(3)若激活成功,红色指示灯亮;否则执行事件流E1.(4)结束使用案例.使用案例名称:激活系统23其他事件流A1:

(1)控制面板响铃一次.(2)系统复位.(3)执行事件流A0.错误事件流E1:

(1)控制面板显示系统出错.(2)结束使用案例.其他事件流A1:2410.3.2类—责任—协作者模型类—责任—协作者模型:用于描述用户的需求,标出对象和类。构成:CRC卡片,顶部:类名,中左部:责任,中右部:协作者。1)类2)责任3)协作者10.3.2类—责任—协作者模型类—责任—协作者模型:用于251)类⑴确定:使用选择特征①持有信息②有需要的服务③多个属性④具有公共属性(对所有对象)⑤公共操作(对所有对象实例)⑥产生需要信息1)类⑴确定:使用选择特征26⑵类型:如设备(外部实体),相互作用类(学生成绩)⑶特征:如有形的、原子的、并发的…⑷CRC卡片:

类名:

类的类型:(如设备、性质、作用、事件…)

类的特征:(如有形、原子的、并发的…)责任:协作:图10.5CRC卡片⑵类型:如设备(外部实体),相互作用类(学生成绩)272)责任:

指类的属性及其操作。分配责任的指导原则:⑴系统的智能应均匀分布:内聚改善,修改容易。①责任表太长,表示不均匀,分裂成新类②责任抽象级别应相同.例Control-panel责任:读入口令和显示字符2)责任:指类的属性及其操作。28⑵每个责任尽量具有一般性,位于类层次顶层,便于应用多态性⑶信息与其相关责任驻在同一类中—封装性⑷单一对象的信息与行为局部于单一类中,不应跨多个类⑸适当情况下,类间共享责任:通过继承一个公共超类⑵每个责任尽量具有一般性,位于类层次顶层,便于应用多态性293)协作者类能和其它对象协作完成其责任。⑴定义:一个对象向另一对象发消息,则发生了协作。接收消息的对象称为协作者。⑵Control-panel对象的责任:确定传感器状态,为取得传感器信息,必须有传感器协作。3)协作者类能和其它对象协作完成其责任。3010.3.3定义结构和层次1)概化和特化关系进一步讨论2)整体—部分关系的进一步讨论10.3.3定义结构和层次1)概化和特化关系进一步讨论311)概化和特化关系进一步讨论⑴需要该模型原因①紧密地联系于面向对象程序设计中的继承;②将类似的类联系起来,简化问题域的描述;③该模型有效地描述了问题域中特定对象关系;④方便了通讯与理解问题域1)概化和特化关系进一步讨论⑴需要该模型原因32⑵概化和特化的情况①多层次特化;学生硕士研究生研究生博士研究生多层概化/特化例子图⑵概化和特化的情况学生硕士研究生研究生博士研究生多层概化/33②多路继承人员教师学生学生教师图10.7多路继承②多路继承人员教师学生学生教师图10.7多路继承34⑶建立模型方式①自顶向下特化:由超类特化成子类ⅰ增加子类的属性和操作ⅱ转载某些属性或操作②自底向上概化:将公共属性与操作置于超类之中⑷超类的例化问题①超类为无对象类:当子类中所有子类的并集等于超类集合⑶建立模型方式35②超类为有对象类:当子类中所有子类的并集是超类集合的子集例:对于人员的模型,如果需要工人等对象,则需从人员类中例化。⑸模型读方式从下向上读为…是一个…或…是一种…例:教师是一种人员②超类为有对象类:当子类中所有子类362)整体—部分关系的进一步讨论⑴需要该模型的原因①准确描述客观(问题域)世界中某些对象之间关系②对复杂问题抽象的强有力工具一个复杂的系统由许多复杂对象组成,而复杂对象是由简单对象组成。③通讯问题域工具2)整体—部分关系的进一步讨论⑴需要该模型的原因37⑵整体—部分关系的种类①部件与零件:例控制面板与键盘、屏幕等。控制面板键盘显示屏指示灯△△△111112图10.8控制面板的组成⑵整体—部分关系的种类控制面板键盘显示屏指示灯△△△11138②容器与包含物:办公室与桌子、书架等办公室桌子△1-n1书架△1图10.9整体—部分关系的约束电话文件柜△1△1121②容器与包含物:办公室与桌子、书架等办公室桌子△139③群体与成员:职业学会与其成员、IFAC与其成员⑶关系约束与表达方式①用三角形表示整体部分关系,尖指向整体侧;②整体侧数字表示零件、成员个数;部分数字表示整体个数;③约束值:单个数或数对0~n,1~n。③群体与成员:职业学会与其成员、IFAC40⑷复杂对象的行为①表明了高级行为②由低级部分的行为构成③例:控制面板应有行为ⅰ接收命令,由键盘实现ⅱ显示状态,由显示屏实现⑸程序框架⑷复杂对象的行为41classclass_A{publicclass_A();~class_A();private:class_B*the_class_B[5];class_C*the_class_C[4];……}Class_AClass_CClass_B△△1154classclass_AClass_AClass_CCla42classclass_Bclassclass_C{{public:public:class_B();class_B();~class_C();~class_C();……}}classclass_B4310.3.4定义系统和子系统1)子系统2)子系统内含3)子系统的图示4)复杂系统的主题表示10.3.4定义系统和子系统1)子系统441)子系统一些类相互作用,完成一组紧密相关的责任。2)子系统内含①子系统的责任:完成的功能②子系统的契约:接口规定③子系统的协作者:与其它子系统关系1)子系统一些类相互作用,完成一组紧密相关的453)子系统的图示⑴对于复杂结构的抽象表示(见图10.12)⑵表示方式:矩形,其内注明结构名字4)复杂系统的主题表示1.控制面板4.传感器3.传感器事件5.声音警报2.系统图10.13OOA模型中的主题参考图3)子系统的图示⑴对于复杂结构的抽象表示(见图1046控制面板显示区键盘指示灯报文显示图显示功能键数字键LCD显示△△△△△△△△1.控制面板主题参考图10.12主题参数控制面板显示区键盘指示灯报文显示图显示功能键数字键LCD显4710.3.5对象联系模型对象联系:表示对象间的关系⑴一个对象知道另一种对象⑵一个对象知道多少个另一种对象⑶一个对象的存在必须有多少对应的对象存在⑷与E_R图的区别①E_R图仅表示数量的对应②对象联系除表示数量的对应外加相互作用10.3.5对象联系模型对象联系:表示对象间的关481)相互作用类型的对象联系(单向作用)代码框架class系统{public:系统();~系统();private:控制面板*控制面板地址…}控制面板系统含有1)相互作用类型的对象联系(单向作用)代码框架控制面板系统49class控制面板{public:控制面板();~控制面板();…}class控制面板502)事务类型的相互联系(双向联系)实现上:一个对象中应有指向另一对象的指针①参与者——事务模板例如:学生——注册约束基数的意义:一个学生可注册0次或多次,而一个注册只能由一个学生进行②事务——地方模板表示事务发生的地方,例:缴费与缴费地方③参与者——地方模板例如:学生与学院2)事务类型的相互联系(双向联系)实现上:一个对象中应有指向51出纳窗口缴注册费0-n1学生注册0-n1学生学院10-n图10.15参与者—事务模板图10.16地方—事务模板图10.18参与者--地方模板缴注册费注册费细目1-n1图10.19事务—事务细目模板出纳窗口缴注册费0-n1学生注册0-52注册费项目注册费细目0-n1实验费体检费保险费学费T3—保险费T3--学费T2--实验费T2--学费T1—保险费T1-学费事务细目项目图10.20项目—事务细目模板注册费项目注册费细目0-n1实验费体53④事务——事务细目模板例:注册费与注册费细节⑤项目——事务细目模板例:注册费项目与注册费细目(每项目的交费者)⑥对等联系:联系同一类中不同的对象学生学生m-n1学生学生m-n1④事务——事务细目模板学生学生m-n1学生学543)双向多对多联系课程学生1-n0-n课程学生1-n0-n学生课程学期11变换成成绩3)双向多对多联系课程学生1-n0-n课程学生1-n55原因:学期和成绩既不属于学生又不属于课程①若归入学生类,则求每门课程平均分困难;②若归入课程类,则求每个学生的平均分困难。以上这些关系可构成OOA的对象关系模型。原因:学期和成绩既不属于学生又不5610.4对象行为模型10.4.1对象的服务10.4.2对象行为表示10.4对象行为模型10.4.1对象的服务5710.4.1对象的服务1)业务政策和过程2)服务类型3)发现和标识服务10.4.1对象的服务1)业务政策和过程581)业务政策和过程①业务政策:某项业务活动的原则性规定例如:研究生在修满32学分后可开始论文工作②业务过程:是业务政策的具体地形式化的描述例如:学分≧32∧修课必修课③业务政策和过程是确定服务的基础1)业务政策和过程①业务政策:某项业务活动的原则性592)服务类型⑴基本服务①生成对象与取消对象(构造与折构函数)生成对象时,通常属性值为空(除非构造函数设定值)②设定与取得操作(SET和GET)为对象设定属性值或取得属性值③增加或消去联系把一个对象联接到另一个对象上或者反之2)服务类型⑴基本服务60足球队排球队学生体育队属性服务王平张林李林赵立体育队成员属性服务图10.22增加和消去联系服务例子(a)ADD(学生体育队=“足球队”,体育队成员=“王平”)足球队排球队学生体育队属性服务王平张林李林赵立体61足球队排球队王平张林李林赵立体育队成员属性服务体育队成员属性服务图10.22增加和消去联系服务例子(b)REMOVE(学生体育队=“排球队”,体育队成员=“张林”)足球队排球队王平张林李林赵立体育队成员体育队成员图162④搜索查询一个对象操作对于数据存贮在关系库中的实现方式:首先生成一个对象,发查询消息给该对象,然后由其方法查询数据库,取得值后,再设置对象的属性值。⑵问题域的特定报务对汽车租赁系统中的问题:例1汽车类的问题,计算里程和费用:计算里程:里程=结束里程-起始里程计算费用:费用=价格/公里×里程④搜索查询一个对象操作63汽车起始里程结束里程返还日期计算里程计算费用查返还日报表统计超期车辆例2:报表类的问题,统计超期车辆服务汽车起始里程结束里程返还日期计算里程计算费用查返还日报表统计643)发现和标识服务⑴由事件标识服务:对象能生成事件或识别事件,识别事件的对象提供服务。考察激活系统案例的事件(有下划线的句子),对控制板可发现下列操作:①接收口令②接收命令③比较口令④点亮指示灯⑤响铃⑥显示出错报文3)发现和标识服务⑴由事件标识服务:对象能生成事件或识别65使用案例名称:激活系统简要说明:房主使用控制面板激活系统前提条件:系统准备号,准备好指示灯亮.主要事件流A0:

(1)房主使用数字键输入4位数字口令,该口令和系统内存储的口令比较,若正确,控制面板等待下一个命令;否则执行事件流A1.(2)房主选择stay或away命令激活系统.Stay激活房间周边传感器;away激活所有的传感器.(3)若激活成功,红色指示灯亮;否则执行事件流E1.(4)结束使用案例.使用案例名称:激活系统66其他事件流A1:

(1)控制面板响铃一次.(2)系统复位.(3)执行事件流A0.错误事件流E1:

(1)控制面板显示系统出错.(2)结束使用案例.其他事件流A1:67⑵由类状态标识服务:对于教师类有职称,所以应有提职的服务。⑶由消息标识服务:接收消息的类,提供所需服务。⑷确定服务细节,发现新服务:对于比较口令,控制面板不存贮口令,因此需类系统协作,所以系统类应有查口令操作,发现了新服务。⑵由类状态标识服务:对于教师类有职称,所以应有提职的服务6810.4.2对象行为表示1)序列图2)状态跃迁图10.4.2对象行为表示1)序列图691)序列图表示使用案例中对象间相互作用的时序关系。矩形:对象或类:角色:表示时间,对象生命周期:消息,可有名字和输入/出参数+1)序列图表示使用案例中对象间相互作用的时序70控制板系统传感器房主系统准备好1.输入口令2.读口令3.验证口令4.请求响铃5.准备好激活/停止系统6.选择stay/away7.请求激活/停止8.激活/停止传感器9.请求红灯亮10.接收下个命令图10.24激活系统的序列图控制板系统传感器房主系统准备好1.输入口令2.读口令3.712)状态--跃迁图⑴状态——跃迁图:表示类的状态(属性值)以及引起状态变化的事件或操作。⑵为依赖于时间的部件(类)建模例如:ATM机,控制面板(安全屋)⑶UML的状态——跃迁图①图符矩形:表示状态。顶部:状态名;底部:可执行活动:表示开始状态,:结束状态.:弧表示跃迁,标号表示事件操作2)状态--跃迁图⑴状态——跃迁图:表示类的状态(属性值)72②例:控制板对象的状态——跃迁图空闲DO:接收命令比较Entry:比较口令选择DO:接收命令重入DO:输入口令口令不正确口令正确开机关机图10.25控制板对象的状态——跃迁图激活成功②例:控制板对象的状态——跃迁图空闲比较选择重入输入口令口73⑷对象的操作①进入操作:进入一个状态首先执行的操作,不可中断。entry:操作名②退出操作:退出一个状态前执行的操作,不可中断。exit:操作名③活动:某一状态下的操作,可中断。Do:活动名⑷对象的操作74第10章面向对象的系统分析OOA任务:以面向对象的观点和方法描述系统或产品,以使它符合面向对象软件工程的特点。系统分析的原则:①信息域建模;②描述模块的功能;③表示模块行为;第10章面向对象的系统分析OOA任务:以面向对象的观点和方75④划分模块,取得更多的细节;⑤早期模型表示本质,后期模型提供细节。OOA的过程:①和用户交互②标识类(定义属性和操作)③规定类层次④确定对象之间关系⑤为对象行为建模④划分模块,取得更多的细节;7610.1领域分析10.2OOA分析的属过程和部件10.3OOA过程10.4对象行为模型10.1领域分析7710.1领域分析目的:为了既满足现行系统开发的需求,又能满足将来同类系统的开发。OOA分析级别:①事务级(企业级):为整个企业建立模型,定义特定事务领域的对象模型;②领域级:为一个特定应用领域建立模型,定义该应用领域的对象模型。③应用级:为一个应用的特定用户需求建立模型。10.1领域分析目的:为了既满足现行系统开发的需求,7810.1.1再使用和领域分析1)面向对象技术是由再使用库支持的;2)再使用库将使快速开发低成本、高可靠性的产品;3)建立再使用库须进行领域分析。10.1.1再使用和领域分析1)面向对象技术是由再使用库支7910.1.2领域分析过程1)领域分析的任务①标识出应用领域中的公共需求;②面向对象的领域分析:公共对象,类等再使用部件。2)领域分析的过程⑴对于要分析的领域抽取:OO项:规范、设计、支持类非OO项:计划、标准10.1.2领域分析过程1)领域分析的任务80⑵归类这些项成为范畴,定义范畴特征,分类方式和项的命名约定(即确定组织方式);⑶收集有代表性的应用(提取实际的或概念上的对象);⑷分析每个应用步骤(含有已有范畴的项)①标识可再使用对象(侯选)②指明可再使用原因③对侯选再使用对象进行整修④估计在本领域中该对象应用的百分比⑵归类这些项成为范畴,定义范畴特征,分81⑤命名该对象,用CM进行管理⑥估计再使用对象集合的应用百分比⑦为这些对象开发分析模型3)领域分析的利益使用非常高百分比的再使用部件,构造本领域的软件,低成本,高质量和快速进入市场。⑤命名该对象,用CM进行管理8210.2OOA分析的属过程和部件10.2.1一般分析过程10.2.2属部件(用于OOA)10.2OOA分析的属过程和部件10.2.1一般分析过程8310.2.1一般分析过程*获取客户需求*标识使用案例*建立需求模型(CRC)*选择类和对象*标识对象属性和操作*组织类的层次*建立对象关系模型*建立对象行为模型*审查分析模型10.2.1一般分析过程*获取客户需求8410.2.2属部件(用于OOA)静态部件:表明了对象的特征动态部件:控制、定时和事件处理1)类的静态视图:表示系统中存在的对象2)属性静态视图:表示对象的属性3)关系的静态视图:确定对象之间关系,相互操作和消息格式设计。4)行为动态视图:规定操作的时间序列10.2.2属部件(用于OOA)静态部件:表明了对象的特855)通讯的动态视图:发送消息的时间序列6)控制和定时的动态视图:描述引起状态变化事件的本质与定时。这些部件构成了分析模型。5)通讯的动态视图:发送消息的时间序列8610.3OOA过程10.3.1使用案例10.3.2类—责任—协作者模型10.3.3定义结构和层次10.3.4定义系统和子系统10.3.5对象联系模型10.3OOA过程10.3.1使用案例8710.3.1使用案例描述目标系统的一种使用情况。1)角色2)使用案例作用3)使用案例图示4)使用案例描述(事件流方法)10.3.1使用案例描述目标系统的一种使用情况881)角色和系统通讯并外部于系统的任何事物(人、设备)。特点:①一个角色代表一类外部实体②仅起一个作用主要角色:直接并经常和系统相互作用。次要角色:支持系统,使主要角色起作用。1)角色和系统通讯并外部于系统的任何事物(人892)使用案例作用描述了角色与系统的相互作用方式。①角色执行的主要任务②角色输入系统的数据③角色得自系统的信息例:房屋安全系统角色:房主、传感器、控制板房主使用案例:(相互作用方式)2)使用案例作用描述了角色与系统的相互作用方90*设置和修改口令*查询安全部位状态*查询传感器状态*按紧急按钮*激活与停止系统*设置和修改口令913)使用案例图示⑴图例::角色

:通讯:使用或扩展⑵表示关系:①通讯关系:角色与案例之间②使用关系:案例与案例之间,把公用功能孤立出来,形成被使用案例(再使用)3)使用案例图示⑴图例:92③扩展关系:案例与案例间,表明了特殊性和深入内容。⑶例:处理口令应急处理停止系统查询传感器查询安全状态激活系统房主图10.2房主使用案例③扩展关系:案例与案例间,表明了特处理口令应急处理停止系统93处理口令应急处理停止系统查询传感器查询安全状态激活系统房主验证口令图10.3使用关系的框图处理口令应急处理停止系统查询传感器查询安全状态激活系统房主验94客户取款展扩使用提前取款验证口令图10.4使用扩展关系的框图客户取款展使提前取款验证口令图10.4使用扩展954)使用案例描述(事件流方法)⑴格式:使用案例名称简要说明:前提条件:执行案例的前提条件主要事件流:案例正常流程其它事件流:案例非正常流程错误事件流:出错事件事后条件:事件后的结果⑵例:P2224)使用案例描述(事件流方法)⑴格式:使用案例名称96使用案例名称:激活系统简要说明:房主使用控制面板激活系统前提条件:系统准备号,准备好指示灯亮.主要事件流A0:

(1)房主使用数字键输入4位数字口令,该口令和系统内存储的口令比较,若正确,控制面板等待下一个命令;否则执行事件流A1.(2)房主选择stay或away命令激活系统.Stay激活房间周边传感器;away激活所有的传感器.(3)若激活成功,红色指示灯亮;否则执行事件流E1.(4)结束使用案例.使用案例名称:激活系统97其他事件流A1:

(1)控制面板响铃一次.(2)系统复位.(3)执行事件流A0.错误事件流E1:

(1)控制面板显示系统出错.(2)结束使用案例.其他事件流A1:9810.3.2类—责任—协作者模型类—责任—协作者模型:用于描述用户的需求,标出对象和类。构成:CRC卡片,顶部:类名,中左部:责任,中右部:协作者。1)类2)责任3)协作者10.3.2类—责任—协作者模型类—责任—协作者模型:用于991)类⑴确定:使用选择特征①持有信息②有需要的服务③多个属性④具有公共属性(对所有对象)⑤公共操作(对所有对象实例)⑥产生需要信息1)类⑴确定:使用选择特征100⑵类型:如设备(外部实体),相互作用类(学生成绩)⑶特征:如有形的、原子的、并发的…⑷CRC卡片:

类名:

类的类型:(如设备、性质、作用、事件…)

类的特征:(如有形、原子的、并发的…)责任:协作:图10.5CRC卡片⑵类型:如设备(外部实体),相互作用类(学生成绩)1012)责任:

指类的属性及其操作。分配责任的指导原则:⑴系统的智能应均匀分布:内聚改善,修改容易。①责任表太长,表示不均匀,分裂成新类②责任抽象级别应相同.例Control-panel责任:读入口令和显示字符2)责任:指类的属性及其操作。102⑵每个责任尽量具有一般性,位于类层次顶层,便于应用多态性⑶信息与其相关责任驻在同一类中—封装性⑷单一对象的信息与行为局部于单一类中,不应跨多个类⑸适当情况下,类间共享责任:通过继承一个公共超类⑵每个责任尽量具有一般性,位于类层次顶层,便于应用多态性1033)协作者类能和其它对象协作完成其责任。⑴定义:一个对象向另一对象发消息,则发生了协作。接收消息的对象称为协作者。⑵Control-panel对象的责任:确定传感器状态,为取得传感器信息,必须有传感器协作。3)协作者类能和其它对象协作完成其责任。10410.3.3定义结构和层次1)概化和特化关系进一步讨论2)整体—部分关系的进一步讨论10.3.3定义结构和层次1)概化和特化关系进一步讨论1051)概化和特化关系进一步讨论⑴需要该模型原因①紧密地联系于面向对象程序设计中的继承;②将类似的类联系起来,简化问题域的描述;③该模型有效地描述了问题域中特定对象关系;④方便了通讯与理解问题域1)概化和特化关系进一步讨论⑴需要该模型原因106⑵概化和特化的情况①多层次特化;学生硕士研究生研究生博士研究生多层概化/特化例子图⑵概化和特化的情况学生硕士研究生研究生博士研究生多层概化/107②多路继承人员教师学生学生教师图10.7多路继承②多路继承人员教师学生学生教师图10.7多路继承108⑶建立模型方式①自顶向下特化:由超类特化成子类ⅰ增加子类的属性和操作ⅱ转载某些属性或操作②自底向上概化:将公共属性与操作置于超类之中⑷超类的例化问题①超类为无对象类:当子类中所有子类的并集等于超类集合⑶建立模型方式109②超类为有对象类:当子类中所有子类的并集是超类集合的子集例:对于人员的模型,如果需要工人等对象,则需从人员类中例化。⑸模型读方式从下向上读为…是一个…或…是一种…例:教师是一种人员②超类为有对象类:当子类中所有子类1102)整体—部分关系的进一步讨论⑴需要该模型的原因①准确描述客观(问题域)世界中某些对象之间关系②对复杂问题抽象的强有力工具一个复杂的系统由许多复杂对象组成,而复杂对象是由简单对象组成。③通讯问题域工具2)整体—部分关系的进一步讨论⑴需要该模型的原因111⑵整体—部分关系的种类①部件与零件:例控制面板与键盘、屏幕等。控制面板键盘显示屏指示灯△△△111112图10.8控制面板的组成⑵整体—部分关系的种类控制面板键盘显示屏指示灯△△△111112②容器与包含物:办公室与桌子、书架等办公室桌子△1-n1书架△1图10.9整体—部分关系的约束电话文件柜△1△1121②容器与包含物:办公室与桌子、书架等办公室桌子△1113③群体与成员:职业学会与其成员、IFAC与其成员⑶关系约束与表达方式①用三角形表示整体部分关系,尖指向整体侧;②整体侧数字表示零件、成员个数;部分数字表示整体个数;③约束值:单个数或数对0~n,1~n。③群体与成员:职业学会与其成员、IFAC114⑷复杂对象的行为①表明了高级行为②由低级部分的行为构成③例:控制面板应有行为ⅰ接收命令,由键盘实现ⅱ显示状态,由显示屏实现⑸程序框架⑷复杂对象的行为115classclass_A{publicclass_A();~class_A();private:class_B*the_class_B[5];class_C*the_class_C[4];……}Class_AClass_CClass_B△△1154classclass_AClass_AClass_CCla116classclass_Bclassclass_C{{public:public:class_B();class_B();~class_C();~class_C();……}}classclass_B11710.3.4定义系统和子系统1)子系统2)子系统内含3)子系统的图示4)复杂系统的主题表示10.3.4定义系统和子系统1)子系统1181)子系统一些类相互作用,完成一组紧密相关的责任。2)子系统内含①子系统的责任:完成的功能②子系统的契约:接口规定③子系统的协作者:与其它子系统关系1)子系统一些类相互作用,完成一组紧密相关的1193)子系统的图示⑴对于复杂结构的抽象表示(见图10.12)⑵表示方式:矩形,其内注明结构名字4)复杂系统的主题表示1.控制面板4.传感器3.传感器事件5.声音警报2.系统图10.13OOA模型中的主题参考图3)子系统的图示⑴对于复杂结构的抽象表示(见图10120控制面板显示区键盘指示灯报文显示图显示功能键数字键LCD显示△△△△△△△△1.控制面板主题参考图10.12主题参数控制面板显示区键盘指示灯报文显示图显示功能键数字键LCD显12110.3.5对象联系模型对象联系:表示对象间的关系⑴一个对象知道另一种对象⑵一个对象知道多少个另一种对象⑶一个对象的存在必须有多少对应的对象存在⑷与E_R图的区别①E_R图仅表示数量的对应②对象联系除表示数量的对应外加相互作用10.3.5对象联系模型对象联系:表示对象间的关1221)相互作用类型的对象联系(单向作用)代码框架class系统{public:系统();~系统();private:控制面板*控制面板地址…}控制面板系统含有1)相互作用类型的对象联系(单向作用)代码框架控制面板系统123class控制面板{public:控制面板();~控制面板();…}class控制面板1242)事务类型的相互联系(双向联系)实现上:一个对象中应有指向另一对象的指针①参与者——事务模板例如:学生——注册约束基数的意义:一个学生可注册0次或多次,而一个注册只能由一个学生进行②事务——地方模板表示事务发生的地方,例:缴费与缴费地方③参与者——地方模板例如:学生与学院2)事务类型的相互联系(双向联系)实现上:一个对象中应有指向125出纳窗口缴注册费0-n1学生注册0-n1学生学院10-n图10.15参与者—事务模板图10.16地方—事务模板图10.18参与者--地方模板缴注册费注册费细目1-n1图10.19事务—事务细目模板出纳窗口缴注册费0-n1学生注册0-126注册费项目注册费细目0-n1实验费体检费保险费学费T3—保险费T3--学费T2--实验费T2--学费T1—保险费T1-学费事务细目项目图10.20项目—事务细目模板注册费项目注册费细目0-n1实验费体127④事务——事务细目模板例:注册费与注册费细节⑤项目——事务细目模板例:注册费项目与注册费细目(每项目的交费者)⑥对等联系:联系同一类中不同的对象学生学生m-n1学生学生m-n1④事务——事务细目模板学生学生m-n1学生学1283)双向多对多联系课程学生1-n0-n课程学生1-n0-n学生课程学期11变换成成绩3)双向多对多联系课程学生1-n0-n课程学生1-n129原因:学期和成绩既不属于学生又不属于课程①若归入学生类,则求每门课程平均分困难;②若归入课程类,则求每个学生的平均分困难。以上这些关系可构成OOA的对象关系模型。原因:学期和成绩既不属于学生又不13010.4对象行为模型10.4.1对象的服务10.4.2对象行为表示10.4对象行为模型10.4.1对象的服务13110.4.1对象的服务1)业务政策和过程2)服务类型3)发现和标识服务10.4.1对象的服务1)业务政策和过程1321)业务政策和过程①业务政策:某项业务活动的原则性规定例如:研究生在修满32学分后可开始论文工作②业务过程:是业务政策的具体地形式化的描述例如:学分≧32∧修课必修课③业务政策和过程是确定服务的基础1)业务政策和过程①业务政策:某项业务活动的原则性1332)服务类型⑴基本服务①生成对象与取消对象(构造与折构函数)生成对象时,通常属性值为空(除非构造函数设定值)②设定与取得操作(SET和GET)为对象设定属性值或取得属性值③增加或消去联系把一个对象联接到另一个对象上或者反之2)服务类型⑴基本服务134足球队排球队学生体育队属性服务王平张林李林赵立体育队成员属性服务图10.22增加和消去联系服务例子(a)ADD(学生

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论