1、第五章第五章 OOD初阶初阶1 15.1 5.1 2 2 问题域部件问题域部件: :与问题域关联的类、对象及相关部分与问题域关联的类、对象及相关部分 任务管理部件任务管理部件: :管理子系统之间的通讯、并发和协同管理子系统之间的通讯、并发和协同 数据管理部件数据管理部件: :管理数据存取管理数据存取 UI部件部件: :与与UI关联的部分关联的部分3 3 尽量将尽量将OOA模型中的类看作是类库中标准类的子类模型中的类看作是类库中标准类的子类 改造改造OOA模型中有普遍意义的类模型中有普遍意义的类, , 以供将来重用以供将来重用5.2 5.2 5.2.1 5.2.1 扩展和调整扩展和调整OOA模型
2、模型,为完成系统主要功能的对象,为完成系统主要功能的对象/ /类类提供实现途径提供实现途径4 45.2.1 5.2.1 多重继承多重继承=单重继承单重继承 多重继承平板化多重继承平板化 单重继承单重继承=平板化平板化 简化软件结构简化软件结构, , 提高清晰度提高清晰度 支持软件重用支持软件重用5 55.2.1 5.2.1 人员人员店主店主店员店员店主店员店主店员6 65.2.1 5.2.1 人员人员店主店主店员店员店主店员店主店员7 75.2.1 5.2.1 合并相互通信频繁、耦合度很高的对象合并相互通信频繁、耦合度很高的对象/ /类类 在对象在对象/ /类中增加类中增加 保存临时性结构的属
3、性保存临时性结构的属性 强内聚、松耦合原则强内聚、松耦合原则 简单性原则简单性原则 是否满足用户的需求是否满足用户的需求8 8 增加增加“电梯监测电梯监测”类类, ,监测并报告每部电梯的当前状态监测并报告每部电梯的当前状态9 9ElevatorElevatorPanel1MotorOverWeightSensorArrivalPanelFloorDstPanelElavatorMonitorElevatorEventSummonPanelSummonEventDstEventArrivalEvemt111111.*11.*1Panel11.*10105.2.2 5.2.2 ECS 的的UI由各
4、种按钮和指示灯构成由各种按钮和指示灯构成 消息传递与协调消息传递与协调: :物理按钮物理按钮 按下按下=Button对象报告对象报告=问题域部件处理问题域部件处理= = Light对象响应对象响应11115.2.2 5.2.2 ButtonDstButtonSummButtonUpButtonDownButton5.2.2 5.2.2 1212LightDestLightSummLightUpLightDownLightArrivalLight13131.1.Why:5.2.3 5.2.3 对于多任务应用系统对于多任务应用系统, ,通过通过任务管理任务管理部件可描述目标软部件可描述目标软件中各
5、子系统之间的通信和协同件中各子系统之间的通信和协同 在多任务、多用户、多线程在多任务、多用户、多线程OS上开发软件系统的需要上开发软件系统的需要 提高可移植性提高可移植性14145.2.3 5.2.3 2.2.How: 识别识别( (物理物理) )事件驱动的任务,考察事件驱动过程事件驱动的任务,考察事件驱动过程 识别时间驱动的任务识别时间驱动的任务 确定任务优先级确定任务优先级 定义任务定义任务: : 名称、功能、优先级、包含此任务的服务名称、功能、优先级、包含此任务的服务, ,该任务与其他任该任务与其他任务之间的协同和通讯方式务之间的协同和通讯方式 定义任务协调器定义任务协调器, ,专门负责
6、任务之间的调度、协同和仲裁专门负责任务之间的调度、协同和仲裁 必要时调整原有的必要时调整原有的OOD模型模型1 15 55.2.4 5.2.4 1.1.Why: 将目标软件系统中依赖于开发平台的数据存取部分与其他将目标软件系统中依赖于开发平台的数据存取部分与其他功能独立开来功能独立开来 提高可移植性提高可移植性2.2.How: 定义数据格式定义数据格式 定义存取操作定义存取操作: : 每个对象如何存储自己每个对象如何存储自己, ,如何从存储介质中恢复自己如何从存储介质中恢复自己 ECS 使用普通文件作为存储介质使用普通文件作为存储介质1 16 61.1.松耦合原则松耦合原则: 减少对象间消息传递的数量与复杂度减少对象间消息传递的数量与复杂度3.3.类的层次结构的类的层次结构的 7+/-2 7+/-2 规则规则5.35.32.2.强内聚原则强内聚原则: 服务的内聚性服务的内聚性 类的内聚性类的内聚性 类的层次结构的内聚性类的层次结构的内聚性4.4.OOD模型的可扩充性、可重用性模型的可扩充性、可重用性本章小结本章小结1717OOD的大致步骤的大致步骤: : 设计问题域部件设计问题域部件 设计设计UIUI部件部件 设计任务管理部件设计任务管理部件 设计数据管理部件设计数据管理部件