1、第四章第四章 OOA A初阶初阶1 14.1 4.1 2 2 对象对象-类层类层: :问题域中概念及实体的问题域中概念及实体的抽抽象象 问题域中对象之间的通信与协调问题域中对象之间的通信与协调 问题域中对象及它们之间的结构关系问题域中对象及它们之间的结构关系 服务层服务层: :对象的服务及对象之间的消息连接对象的服务及对象之间的消息连接 结构层结构层: :问题域中的结构关系问题域中的结构关系( (继承与聚集继承与聚集) ) 主题层主题层: :问题分解,分而治之问题分解,分而治之 属性层属性层: :对象的属性及对象之间的实例连接对象的属性及对象之间的实例连接3 3 建立问题空间中概念及实体的建立
2、问题空间中概念及实体的抽抽象表示象表示对象对象 将对象归并为将对象归并为 类类 或或 抽抽象类象类4.1.1 4.1.1 对象对象-类层类层名称名称( (带对象实例的带对象实例的) )类类抽抽象类象类名称名称4 44.1.2 4.1.2 属性层属性层 表示表示 对象在问题空间中的相关属性对象在问题空间中的相关属性 表示表示 对象之间的实例连接对象之间的实例连接 ( (数量对应关系数量对应关系) )BankBank_Id.CardCard_IdCard_Holder.1*5 54.1.3 4.1.3 服务层服务层 表示表示 对象在问题空间中的相关、外部可见服务对象在问题空间中的相关、外部可见服务
3、 表示表示 对象之间的消息传对象之间的消息传递递BankCard6 64.1.4 4.1.4 结构层结构层 表示表示 继承关系继承关系 表示表示 聚集聚集关系关系文章文章已录用已录用已刊登已刊登电梯电梯马达马达按钮面板按钮面板11117 74.1.5 4.1.5 主题层主题层 将关系比较密切的对象将关系比较密切的对象/ /类划分为某主题词类划分为某主题词 位于不同主题词中的对象位于不同主题词中的对象/ /类之间的关系较为松散类之间的关系较为松散电梯管理电梯管理电梯电梯马达马达电梯内面板电梯内面板到达指示面板到达指示面板目的地按钮面板目的地按钮面板紧急按钮紧急按钮超载传感器超载传感器面板面板电梯
4、控制电梯控制电梯事件电梯事件召唤事件召唤事件目的地要求事件目的地要求事件电梯到达事件电梯到达事件召唤按钮面板召唤按钮面板8 81.1.采用自然语言处理技术标识问题域中的概念采用自然语言处理技术标识问题域中的概念 及其相互关系及其相互关系4.2 4.2 4.2.1 4.2.1 发现和发现和识别对象 采用自然语言分析技术采用自然语言分析技术 获得获得 概念集合概念集合 采用矩阵分析技术采用矩阵分析技术 获得获得 概念之间的相互关联概念之间的相互关联 将上述结果表示成将上述结果表示成OOA工作表格工作表格条条目目(0) (1) (2) (3) (4) (5) 注注解解(0)(0)忽略忽略 (1) (
5、1)可能的对象可能的对象/ /类类 (2) (2)可能的继承关系可能的继承关系 (3)(3)可能的聚集关系可能的聚集关系 (4) (4)可能的对象可能的对象/ /类的属性类的属性(5)(5)可能的对象可能的对象/ /类的外部服务类的外部服务对象在用户需求的正文描述中可能呈以下形式:对象在用户需求的正文描述中可能呈以下形式:( (1)1)与目标系统交互信息的外部实体。例如,物理设备,操作与目标系统交互信息的外部实体。例如,物理设备,操作人员或用户,其他有关的子系统。人员或用户,其他有关的子系统。(2)(2)现实问题信息域中的概念实体。例如信号、报表、显示信现实问题信息域中的概念实体。例如信号、报
6、表、显示信息。息。(3)(3)目标系统运行过程中可能出现并需要系统记忆的事件。例目标系统运行过程中可能出现并需要系统记忆的事件。例如核电站运转时的意外事故。如核电站运转时的意外事故。(4)(4)与目标系统发生交互作用的人员所扮演的各种角色。例如与目标系统发生交互作用的人员所扮演的各种角色。例如管理人员,工程师,销售人员。管理人员,工程师,销售人员。(5)(5)作为系统环境或问题上下文的场所、位置。例如卫星地面作为系统环境或问题上下文的场所、位置。例如卫星地面接收站的安装位置(经度、维度、海拔高度)。接收站的安装位置(经度、维度、海拔高度)。(6)(6)有关的组织机构。例如,单位、小组。有关的组
7、织机构。例如,单位、小组。(7)(7)表示一组成分对象的聚集对象。例如物理设备。表示一组成分对象的聚集对象。例如物理设备。9 910102.2.根据根据DFD,ER和状态转换图进一步标识有用的对象和状态转换图进一步标识有用的对象/ /类类 顶级顶级DFD中:中: 外部实体可构成潜在的对象外部实体可构成潜在的对象 输入输入/ /输出数据流应在输出数据流应在OOA模型得到适当的接收和处理模型得到适当的接收和处理 DFD子图子图中的函数中的函数/ /过程可构成潜在的外部服务过程可构成潜在的外部服务 ER图图中中: : 实体可构成潜在对象实体可构成潜在对象 实体的属性可构成潜在的对象属性实体的属性可构
8、成潜在的对象属性 数量对应关系可构成数量对应关系可构成OOA模型中的实例连接模型中的实例连接 状态转换图状态转换图:系统必须处理的外部事件以及系统在处理这:系统必须处理的外部事件以及系统在处理这些事件时发生的状态变迁些事件时发生的状态变迁 事件的接收、响应过程有助于对象标识事件的接收、响应过程有助于对象标识 状态信息有助于标识对象的属性状态信息有助于标识对象的属性1 11 13.3.对候选对象进一步筛选、鉴别对候选对象进一步筛选、鉴别( (1)1)对象应具有记忆其自身状态的能力。对象应具有记忆其自身状态的能力。(2)(2)对象应具有有意义的操作,以某种方式修改其状态(属性值)。对象应具有有意义
9、的操作,以某种方式修改其状态(属性值)。(3)(3)对象应具有多种有意义的属性。对象应具有多种有意义的属性。(4)(4)为对象定义的有关属性应适应于对象的所有实例。为对象定义的有关属性应适应于对象的所有实例。(5)(5)为对象定义的有关操作应适合于对象的所有实例。为对象定义的有关操作应适合于对象的所有实例。(6)(6)对象应是软件需求模型的必要成分,与设计和实现方法无关。对象应是软件需求模型的必要成分,与设计和实现方法无关。潜在对象潜在对象理由理由鉴别结论鉴别结论用户用户传感器传感器控制面板控制面板系统系统传感器编码传感器编码传感器类型传感器类型密码密码电话号码电话号码传感器事件传感器事件警报
10、器警报器角色或外部实体角色或外部实体外部实体外部实体外部实体外部实体聚集对象聚集对象概念实体概念实体概念实体概念实体概念实体概念实体概念实体概念实体事件事件外部实体外部实体不不符合符合(1)(2)符合符合(1)-(6)符合符合(1)-(6)符合符合(1)-(6)不符合不符合(3)不符合不符合(3)不符合不符合(3)不符合不符合(3)符合符合(1)-(6)符合符合(1)-(6)1 12 21.1.标识继承关系标识继承关系4.2 4.2 4.2.2 4.2.2 标识结构标识结构1.1 1.1 标识已有类之间的继承关系:是否自然?标识已有类之间的继承关系:是否自然?1.2 1.2 从已有类出发寻找子
11、类:从已有类出发寻找子类: 对象的特殊化是否位于问题域中?是否自然?对象的特殊化是否位于问题域中?是否自然? 对象的特殊化可否使用额外的属性或外部服务进行刻画?对象的特殊化可否使用额外的属性或外部服务进行刻画?1.3 1.3 从已有类出发寻找公共父类:从已有类出发寻找公共父类: 是否可以抽象出多个父类的公共属性或外部服务以简是否可以抽象出多个父类的公共属性或外部服务以简化化OOA模型?模型?1 13 32.2.标识部分标识部分整体关系整体关系4.2 4.2 4.2.2 4.2.2 标识结构标识结构2.1 2.1 标识已有类之间的部分标识已有类之间的部分整体关系:是否自然?整体关系:是否自然?2
12、.2 2.2 从已有类出发寻找部件类:从已有类出发寻找部件类: 是否可以提取多个类的公共部件类以简化是否可以提取多个类的公共部件类以简化OOA模型?模型? 提取的部件类提取的部件类是否自然?是否自然?2.3 2.3 从已有类出发寻找从已有类出发寻找整体类整体类: 是否可以将已有类组装成为新的整体类?是否可以将已有类组装成为新的整体类? 新得到的整体类新得到的整体类是是否位于问题域中?否位于问题域中? 是否自然?是否自然?1 14 44.2.2 4.2.2 标识结构标识结构2.4 2.4 标识部分标识部分整体关系中的重复度与参与度整体关系中的重复度与参与度一个整体类的实例,可能含有多个部件类的实
13、例?一个整体类的实例,可能含有多个部件类的实例?一个部件类的实例,可能出现在多个整体类的实例中?一个部件类的实例,可能出现在多个整体类的实例中?一个整体类的实例,是否必须包含某个部件类的实例?一个整体类的实例,是否必须包含某个部件类的实例?一个部件类的实例,是否必须出现在某个整体类的实例中?一个部件类的实例,是否必须出现在某个整体类的实例中?( (是否可以独立出现?是否可以独立出现?) )1 15 51.1.根据问题空间中系统根据问题空间中系统/ /子系统、问题子系统、问题/ /子问题的自然分解子问题的自然分解 关系初步确定主题词关系初步确定主题词4.2.3 4.2.3 标识主题词标识主题词4
14、.4.随分析的不断深入对主题词的内涵和划分进行必要调整随分析的不断深入对主题词的内涵和划分进行必要调整2.2.主题词可以具有层次结构主题词可以具有层次结构3.3.根据主题词将要求分析任务划分至各分析小组根据主题词将要求分析任务划分至各分析小组1 16 61.1.标识属性标识属性4.2.4 4.2.4 标识属性及实例关系标识属性及实例关系1.11.1在在ER图中,实体的属性可能构成图中,实体的属性可能构成OOA模型的属性模型的属性1.3 1.3 属性必须适应于属性必须适应于类类的所有实例,的所有实例, 否则应考虑继承关系的可能性否则应考虑继承关系的可能性1.21.2哪些属性在问题空间中完全刻画了
15、被标识的每个对象?哪些属性在问题空间中完全刻画了被标识的每个对象?规则规则1.1.4 4 导出属性和外部不可见属性应略去导出属性和外部不可见属性应略去1 17 72.2.标识实例关系标识实例关系4.2.4 4.2.4 标识属性及实例关系标识属性及实例关系1.11.1 利用自然语言处理方法自动收集对象之间的关系利用自然语言处理方法自动收集对象之间的关系1.3 1.3 导出关系可以省略导出关系可以省略1.2 1.2 实例关系应反映自然域中的限制或事务规则实例关系应反映自然域中的限制或事务规则1 18 81.1.在自然语言处理过程中,考虑相关的动词可否构成外部服务在自然语言处理过程中,考虑相关的动词
16、可否构成外部服务4.2.5 4.2.5 标识服务和消息:标识服务和消息: 分析对象之间的动态关联分析对象之间的动态关联2.2.考虑对象的生命周期(创建、删除、维护)考虑对象的生命周期(创建、删除、维护)4.4.基于状态基于状态事件事件响应图提取对象之间的消息传递响应图提取对象之间的消息传递3.3.结合结合数据流图考虑对象的计算性行为数据流图考虑对象的计算性行为5.5.通过运行走查细化外部服务的定义通过运行走查细化外部服务的定义1 19 94.2.5 4.2.5 标识服务和消息:标识服务和消息: 分析对象之间的动态关联分析对象之间的动态关联1.1.任一对象的所有外部服务均由传入该对象的消息引发任
17、一对象的所有外部服务均由传入该对象的消息引发3.3.消息连接必须与实例关系相一致消息连接必须与实例关系相一致2.2.属性必须与某外部服务相关联,否则可删去属性必须与某外部服务相关联,否则可删去规则规则2020OOA小结小结1.1 1.1 采用自然语言处理技术标识问题域中的概念及其相互关系采用自然语言处理技术标识问题域中的概念及其相互关系1.1.发现和识别对象发现和识别对象1.2 1.2 根据根据DFDDFD,ERER和状态转换图进一步标识有用的对象和状态转换图进一步标识有用的对象/ /类类1.3 1.3 对候选对象进一步筛选、鉴别对候选对象进一步筛选、鉴别2.1 2.1 标识继承关系标识继承关
18、系2.2.标识结构标识结构3.3.标识主题词标识主题词4.4.标识属性及实例关系标识属性及实例关系5.5.标识服务和消息:分析对象之间的动态关联标识服务和消息:分析对象之间的动态关联2.2 2.2 标识部分标识部分整体关系整体关系2 21 14.3 4.3 电梯控制系统(电梯控制系统(ECS)在在M M层的建筑内安装了层的建筑内安装了N N部电梯。电梯问题是指这些电梯的逻部电梯。电梯问题是指这些电梯的逻辑控制问题:辑控制问题:1. 1. 每个电梯有一些按钮,每个按钮对应一个楼层。当按下按每个电梯有一些按钮,每个按钮对应一个楼层。当按下按钮后,按钮灯亮,并指出电梯开往相应楼层。当电梯到达该钮后,
19、按钮灯亮,并指出电梯开往相应楼层。当电梯到达该楼层后,按钮灯熄灭。楼层后,按钮灯熄灭。2. 2. 除底层和顶层只有一个按钮外,每个楼层有两个按钮,分除底层和顶层只有一个按钮外,每个楼层有两个按钮,分别指示上楼和下楼请求。当按下后,按钮灯亮。如果电梯已别指示上楼和下楼请求。当按下后,按钮灯亮。如果电梯已经到达该楼层,或者遇到有冲突的请求时,按钮灯熄灭。在经到达该楼层,或者遇到有冲突的请求时,按钮灯熄灭。在后一种情况下,如果两楼层同时发出请求,则只能取消其中后一种情况下,如果两楼层同时发出请求,则只能取消其中一个请求。决定服务优先次序的算法应尽量减少两个请求的一个请求。决定服务优先次序的算法应尽量
20、减少两个请求的等待时间。等待时间。2 22 24.3 4.3 电梯控制系统(电梯控制系统(ECS)( (续续) )3. 3. 当没有服务请求时,电梯保持在最后一个目的楼层,电梯当没有服务请求时,电梯保持在最后一个目的楼层,电梯门关闭。门关闭。4. 4. 系统以事件驱动的方式响应楼层对电梯的请求。所有楼层系统以事件驱动的方式响应楼层对电梯的请求。所有楼层的优先级是相同的。的优先级是相同的。5. 5. 系统以事件驱动的方式响应电梯内部对到达楼层的要求,系统以事件驱动的方式响应电梯内部对到达楼层的要求,并按照电梯运动的方向依次完成这些要求。并按照电梯运动的方向依次完成这些要求。6. 6. 每个电梯都
21、有一个紧急按钮,按下后向管理人员发出报警每个电梯都有一个紧急按钮,按下后向管理人员发出报警信号,然后电梯被置为信号,然后电梯被置为“不可用不可用”状态。每个电梯都有取消状态。每个电梯都有取消“不可用不可用”状态的机制。状态的机制。2 23 31.1.相关的实体及概念相关的实体及概念有:有:电梯、电梯门、电梯内部电梯、电梯门、电梯内部建筑物、楼层、顶层、底层、目的楼层建筑物、楼层、顶层、底层、目的楼层按钮、按钮灯、紧急按钮按钮、按钮灯、紧急按钮上楼请求、下楼请求上楼请求、下楼请求电梯运动方向电梯运动方向管理人员管理人员优先级优先级报警信号、不可用状态报警信号、不可用状态4.3.1 4.3.1 发
22、现和发现和识别对象2 24 42. 2. 顶级顶级DFD:4.3.1 4.3.1 发现和发现和识别对象目的地按钮面板召唤按钮面板电梯楼层传感器超载传感器到达指示面板目的地按钮面板召唤按钮面板马达ECS目的地请求召唤请求电梯状态楼层消息超载状况显示到达楼层显示目的地召唤响应马达命令2 25 53. 3. 实体关系图实体关系图:4.3.1 4.3.1 发现和发现和识别对象楼层楼层召唤按钮目的地按钮电梯联系联系联系联系2 26 64. 4. 事件响应模型事件响应模型:4.3.1 4.3.1 发现和发现和识别对象 召唤电梯召唤电梯修改召唤按钮状态修改召唤按钮状态 目的地请求目的地请求修改目的地按钮状态
23、修改目的地按钮状态 电梯到达调度楼层电梯到达调度楼层显示到达楼层,修改目的地按钮状态,显示到达楼层,修改目的地按钮状态,修改召唤按钮状态,命令电梯停靠修改召唤按钮状态,命令电梯停靠 电梯到达非目的地楼层电梯到达非目的地楼层显示到达楼层显示到达楼层 紧急按钮被按下紧急按钮被按下修改电梯状态为修改电梯状态为“不可用” ,报警,“不可用” ,报警,电梯就近停靠电梯就近停靠 电梯超载电梯超载电梯停运,报警电梯停运,报警 电梯就绪电梯就绪开始电梯调度开始电梯调度2 27 75. 5. 状态转换图状态转换图:4.3.1 4.3.1 发现和发现和识别对象空闲空闲运行运行超载超载停止停止不可用不可用13757
24、762,4事件确认规则事件确认规则:有确定的发生时刻有确定的发生时刻系统应对该事件有所反应系统应对该事件有所反应2 28 8在在OOA工作表格上,进行筛选,最后确定以下对象工作表格上,进行筛选,最后确定以下对象/ /类类:4.3.1 4.3.1 发现和发现和识别对象电梯、马达、到达指示面板、目的地按钮面板电梯、马达、到达指示面板、目的地按钮面板紧急按钮、超载传感器紧急按钮、超载传感器楼层、召唤按钮面板楼层、召唤按钮面板召唤事件、目的地要求事件、电梯到达事件召唤事件、目的地要求事件、电梯到达事件下面的实体或概念不作为对象:下面的实体或概念不作为对象:建筑物建筑物电梯门电梯门楼层传感器楼层传感器楼
25、层上的到达指示面板楼层上的到达指示面板按钮按钮2 29 94.3.2 4.3.2 标识结构标识结构电梯电梯马达马达到达指示面板到达指示面板目的地按钮面板目的地按钮面板紧急按钮紧急按钮超载传感器超载传感器111111111130304.3.2 4.3.2 标识结构标识结构电梯事件电梯事件召唤事件召唤事件目的地要求事件目的地要求事件电梯到达事件电梯到达事件面板面板召唤按钮面板召唤按钮面板电梯内面板电梯内面板到达指示面板到达指示面板目的地按钮面板目的地按钮面板3 31 14.3.3 4.3.3 标识主题词标识主题词电梯管理电梯管理电梯电梯马达马达电梯内面板电梯内面板到达指示面板到达指示面板目的地按钮
26、面板目的地按钮面板紧急按钮紧急按钮超载传感器超载传感器面板面板电梯控制电梯控制电梯事件电梯事件召唤事件召唤事件目的地要求事件目的地要求事件电梯到达事件电梯到达事件召唤按钮面板召唤按钮面板3 32 24.3.4 4.3.4 标识属性及实例关系标识属性及实例关系3 33 34.3.4 4.3.4 标识属性及实例关系标识属性及实例关系标识实例连接标识实例连接: 电梯到达事件与一部电梯相关联电梯到达事件与一部电梯相关联 电梯可与电梯可与0 0到多个到达事件相关联到多个到达事件相关联 目的地请求事件与一个目的地面板相关联目的地请求事件与一个目的地面板相关联 目的地面板与目的地面板与0 0到多个目的地请求
27、事件相关联到多个目的地请求事件相关联 召唤事件与召唤面板之间的实例连接类似于前召唤事件与召唤面板之间的实例连接类似于前 电梯与楼层:多对多实例连接电梯与楼层:多对多实例连接3 34 44.3.5 4.3.5 标识服务和消息标识服务和消息 前述的顶级前述的顶级DFDDFD和状态和状态事件事件响应模型为标识对象间响应模型为标识对象间的消息传递提供了很好的线索的消息传递提供了很好的线索 在标识对象在标识对象/ /类的外部服务之前,首先要确定:对象间类的外部服务之前,首先要确定:对象间如何协调才能完成预定目标如何协调才能完成预定目标3 35 54.3.5 4.3.5 标识服务和消息标识服务和消息对对E
28、CSECS,有三种选择有三种选择:集中控制方法,设置集中控制方法,设置ElevatorScheduler对象,通过接收召唤对象,通过接收召唤事件和目的地请求事件,随时监控电梯状态,实现调度策略事件和目的地请求事件,随时监控电梯状态,实现调度策略每个每个Elevator对象自行决定下一目标楼层,多个对象自行决定下一目标楼层,多个Elevator对对象之间应相互协调象之间应相互协调每个每个Floor对象在电梯到达该楼层时实现电梯调度,多个对象在电梯到达该楼层时实现电梯调度,多个Floor对象之间应相互协调对象之间应相互协调以上方案的选择取决于以下考虑以上方案的选择取决于以下考虑:结构简单、自然,强
29、内聚、松耦合结构简单、自然,强内聚、松耦合软件可扩充性、可修改性、可维护性好软件可扩充性、可修改性、可维护性好可重用性好可重用性好3 36 64.3.5 4.3.5 标识服务和消息标识服务和消息1. 召唤电梯召唤电梯:1. 1. SummonEvent.RecongnizeSummonRequest检测召唤检测召唤按钮是否按下;按钮是否按下;2.2.如按下,则向相应的如按下,则向相应的SummonPanel发送发送SummonEvent 事件对象;事件对象;3. 3. SummonPanel对象收到上述事件对象后,记录召唤请对象收到上述事件对象后,记录召唤请求的方向(求的方向(up或或down
30、)3 37 74.3.5 4.3.5 标识服务和消息标识服务和消息2. 目的地请求目的地请求:1. 1. DestinationEvent.RecongnizeDestinationRequest检测检测是否有目的地按钮被按下;是否有目的地按钮被按下;2.2.如有,向相应的如有,向相应的DestinationPanel发送发送DestinationEvent对象;对象;3.3.DestinationPanel对象收到上述事件后,记录待处理的对象收到上述事件后,记录待处理的目的地请求楼层目的地请求楼层3 38 84.3.5 4.3.5 标识服务和消息标识服务和消息3. 电梯到达调度楼层电梯到达调
31、度楼层:1.1.ArrivalEvent.RecongnizeArrivalEvent检测是否有电梯到达;检测是否有电梯到达;2.2.如有,向相应的如有,向相应的ArrivalPanel发送发送ArrivalEvent对象;对象;2.1. 2.1. ArrivalPanel对象收到该事件后更新显示信息对象收到该事件后更新显示信息; ;3.3.向相应的楼层发送事件对象;向相应的楼层发送事件对象;3.1. 3.1. Floor.ProcessElevatorArrrival接收并处理该事件。在接收并处理该事件。在处理过程中向相应的处理过程中向相应的Elevator对象发送消息,指示它更新对象发送消
32、息,指示它更新状态,关闭马达,准备停靠;状态,关闭马达,准备停靠;3.2.3.2.向相应的向相应的DestinationPanel对象发送消息,指示它更新对象发送消息,指示它更新状态;状态;3.3.3.3.向相应的向相应的SummonPanel对象发送消息,指示它更新状对象发送消息,指示它更新状态;态;3 39 94.3.5 4.3.5 标识服务和消息标识服务和消息4. 电梯就绪电梯就绪:1. 1. Floor.RecongnizeElevatorReadyEvent检测当前停靠在检测当前停靠在本楼层的电梯是否已经就绪本楼层的电梯是否已经就绪; ;2.2.如果就绪,如果就绪,Floor.Sch
33、edule首先向其他对象询问必要的首先向其他对象询问必要的信息以决定调度;信息以决定调度;3.3.决定之后,向决定之后,向Elevator对象发送控制命令,要求其更新对象发送控制命令,要求其更新状态,启动马达状态,启动马达40404.4 4.4 1. 命名约定命名约定:1.1 1.1 命名要有意义命名要有意义1.2 1.2 要表现实体的自然含义要表现实体的自然含义4 41 12. 规则规则:2.1 2.1 结构层结构层 如果部分如果部分整体关系中的部分整体关系中的部分/ /整体类为类属类,那整体类为类属类,那么其任一实例类必须作为部分么其任一实例类必须作为部分/ /整体类出现在部分整体类出现在
34、部分整体关系中;整体关系中; 对继承关系,类似于前对继承关系,类似于前 要检查继承关系在要检查继承关系在OOA模型中与问题域中的语义一致性模型中与问题域中的语义一致性4 42 22.规则规则:2.2 2.2 属性属性层层 属性应至少被相应对象的一个外部服务所访问属性应至少被相应对象的一个外部服务所访问; 属性定义必须与实例连接相一致属性定义必须与实例连接相一致2.3 2.3 服务服务层层 外部服务的定义必须与输入、输出相一致外部服务的定义必须与输入、输出相一致; 外部服务不能直接访问封装之外的其他对象的属性外部服务不能直接访问封装之外的其他对象的属性;3. 模型各层次之间的一致性、完全性检查模
35、型各层次之间的一致性、完全性检查4 43 34.5 4.5 1. 面向用户面向用户的的内容内容:1.1 1.1 系统目标、范围、契约;系统目标、范围、契约;1.2 1.2 典型的用户场景;典型的用户场景;1.3 1.3 系统行为的图形描述系统行为的图形描述 ;1.4 1.4 对象及消息传递图;对象及消息传递图;1.5 1.5 字典(包括术语定义,属性定义及说明,外部服务的字典(包括术语定义,属性定义及说明,外部服务的定义及说明)定义及说明)4 44 44.5 4.5 2. 面向设计人员面向设计人员的的内容内容:2.1 2.1 主题层主题层OOA模型;模型;2.2 2.2 分主题的各层分主题的各
36、层OOA模型;模型;2.3 2.3 设计约束;设计约束;2.4 2.4 字典字典( (除除1.51.5之外的其他细节描述)之外的其他细节描述)4 45 54.5 4.5 3. 3. OOA模型的评审模型的评审1. 1. 利用评审检查表对利用评审检查表对OOA模型的所有层次逐项检查;模型的所有层次逐项检查;2. 2. 利用利用CASE工具自动填写检查表,自动管理检查表;工具自动填写检查表,自动管理检查表;3. 3. 检查检查OOA模型的可执行部分是否与用户场景及用户需模型的可执行部分是否与用户场景及用户需求相一致求相一致4 46 64.5 4.5 4. 4. OOA模型的评审检查表模型的评审检查
37、表OOA模型层次模型层次命名约定命名约定风格约定风格约定对象对象/类类唯一性自然性统一命名风格单个事件识别器事件响应器信息封装主题主题唯一性自然性统一命名风格强内聚、松耦合覆盖完全性结构结构唯一性自然性统一命名风格整体部分关系与实例关系的一致性整体部分:实例实例继承:类类继承关于属性与服务的一致性4 47 74.5 4.5 4. 4. OOA模型的评审检查表模型的评审检查表4 48 84.5 4.5 4. 4. OOA模型的评审检查表模型的评审检查表本章小结本章小结4 49 9 OOA的语言和方法直接对应于面向对象的基本概念的语言和方法直接对应于面向对象的基本概念 和方法和方法简单直观,但表达能力不够简单直观,但表达能力不够OOA的大致过程的大致过程: :发现和识别对象发现和识别对象标识结构标识结构( (继承关系和部分继承关系和部分整体关系整体关系) )标识主题词标识主题词标识属性及实例关系标识属性及实例关系标识服务和消息标识服务和消息