实用软件工程教程 教学课件 作者 陈雄峰第7章7.3节 面向对象设计

举报
资源描述
FichmanFichman和和KemererKemerer提出的提出的1010种种设计建模成分设计建模成分模块层次的表示模块层次的表示数据定义规约数据定义规约过程逻辑的规约过程逻辑的规约端到端处理序列的指明端到端处理序列的指明对象状态和变迁的表示对象状态和变迁的表示类及层次的定义类及层次的定义操作到类的赋予操作到类的赋予详细的操作定义详细的操作定义消息连接的规约消息连接的规约排它服务的标识排它服务的标识结构化方法结构化方法所不支持的所不支持的 7.3 面向对象设计面向对象设计 面向对象设计的准则面向对象设计的准则 模块化模块化抽象抽象信息隐蔽信息隐蔽低藕合低藕合高内聚高内聚可重用:可重用:包括软件重用概念、级别、成包括软件重用概念、级别、成分、效益。分、效益。面向对象设计的启发规则面向对象设计的启发规则设计结果清晰易懂设计结果清晰易懂继承深度适当继承深度适当设计简单的类设计简单的类设计简单的协议(参数)设计简单的协议(参数)设计简单的服务设计简单的服务设计变动减少到最小设计变动减少到最小设计优化原则:确定优先级、提高效率设计优化原则:确定优先级、提高效率OOAOOA与与OODOOD的本质的本质 OOAOOA是一个是一个分类活动分类活动,即分析问题力图,即分析问题力图确定在开发解决方案时可应用的对象类,确定在开发解决方案时可应用的对象类,同时确定对象关系和行为。同时确定对象关系和行为。OODOOD使得软件工程师能够确定使得软件工程师能够确定从类中导从类中导出的对象,出的对象,以及这些对象的相互关联,以及这些对象的相互关联,此外,此外,OODOOD描述了描述了:对象间的关系如何达到对象间的关系如何达到;行为如何实现;行为如何实现;对象间通信如何实现。对象间通信如何实现。将将将将OOOOOOOO分析模型转换到分析模型转换到分析模型转换到分析模型转换到OOOOOOOO设计模型设计模型设计模型设计模型用例用例对象对象对象对象-关关关关 系模型系模型系模型系模型CRCCRC索引卡片索引卡片索引卡片索引卡片属性、属性、属性、属性、子子 系系 统统 设设 计计类及对象设计类及对象设计消息设计消息设计责任设计责任设计分析模型设计模型操作、操作、操作、操作、协作者协作者协作者协作者对象对象对象对象-行为模型行为模型行为模型行为模型结构化设计结构化设计的四个层次的四个层次数数 据据 设设 计计体系结构设计体系结构设计接口设计接口设计过程设计过程设计子子 系系 统统 设设 计计类及对象设计类及对象设计消息设计消息设计责任设计责任设计面向对象设计面向对象设计面向对象设计面向对象设计的四个层次的四个层次的四个层次的四个层次OOD的四个层次:的四个层次:子系统层:子系统层:包含每个子系统的表示包含每个子系统的表示类和对象层类和对象层:包含类层次和每个对象包含类层次和每个对象 的设计表示的设计表示消息层消息层:包含使得每个对象能够和其包含使得每个对象能够和其 协作者通信的细节,建立系协作者通信的细节,建立系 统的外部和内部接口统的外部和内部接口责任层责任层:包含针对每个对象的所有属性包含针对每个对象的所有属性 和操作的数据结构和算法的设计和操作的数据结构和算法的设计从OOA到OOD 逐渐扩充模型的过程逐渐扩充模型的过程 OODOOD分为两个阶段分为两个阶段:F 高层设计高层设计(系统设计)(系统设计)F 低层设计低层设计(对象(对象设计设计)OODOOD过程流过程流 系统系统设计设计分析分析对象对象设计设计7.3.1 7.3.1 系统设计系统设计1.1.系统分解系统分解 子系统子系统既不是一个对象也不是一个功既不是一个对象也不是一个功能,而是类、关联、操作、事件和约束的能,而是类、关联、操作、事件和约束的内聚集合。内聚集合。定义子系统定义子系统遵循的标准遵循的标准:子系统应有良好的接口子系统应有良好的接口除少数除少数“通信类通信类”,子系统中的类应只,子系统中的类应只和和 该子系统中的其它类协作该子系统中的其它类协作子系统数目不应太多子系统数目不应太多可在子系统内划分以降低复杂性可在子系统内划分以降低复杂性划分分析模型子系统 第三层第三层数据库服务器数据库服务器第二层第二层后台库服务器后台库服务器第一层第一层前台客户机前台客户机(1)(1)客户机客户机/服务器服务器客户端客户端子系统子系统端子系统端子系统服务器端服务器端子系统子系统端子系统端子系统请求请求请求请求请求请求合约合约合约合约子系统间通信子系统间通信子系统间协作的模型子系统间协作的模型(2)(2)包图包图用例图用例图类类 图图交互图交互图状态图状态图包图包图包图包图方法描述:方法描述:方法描述:方法描述:if A thenif A then Calculate Sales Tax Calculate Sales Tax Calculate Total Calculate Total AmountAmount End if End if设计带方法的类图设计带方法的类图设计带方法的类图设计带方法的类图系统内部系统内部保险单保险单包图示例包图示例客户客户保险单保险单填写界面填写界面数据库界面数据库界面(abstract)Oracle界面界面Sybase界面界面客户支持系统客户支持系统客户维护子系统客户维护子系统包图示例包图示例库存管理子系统库存管理子系统订单输入子系统订单输入子系统目录维护子系统目录维护子系统订单执行子系统订单执行子系统客户支持系统客户支持系统包括设计类的包图示例包括设计类的包图示例客户维护子系统客户维护子系统订单输入子系统订单输入子系统目录维护子系统目录维护子系统订单执行子系统订单执行子系统客户客户目录目录包包订单条目订单条目订单交易订单交易订单订单退货条目退货条目发运人发运人运输运输2.Yourdon的的OOD方法方法主体层主体层类及对象层类及对象层结构层结构层属性层属性层服务层服务层问题域问题域 部分部分(PDC)人机交人机交互部分互部分(HIC)任务管任务管理部分理部分(TMC)数据管数据管理部分理部分(DMC)OOD阶段建立阶段建立OOA 阶段模型阶段模型OOD由四个活动组成由四个活动组成:OOD模型模型OODOOD导出的系统结构导出的系统结构数据管理数据管理其它系统其它系统文件文件RDBMSRDBMSOODBMSOODBMS设备设备系统交互系统交互界面界面问题论域问题论域人机交互人机交互界面界面.窗口窗口报告报告子系统设计子系统设计过程中过程中必须定义四种重要的设计结构必须定义四种重要的设计结构问题域问题域直接负责实现客户需求的子系统直接负责实现客户需求的子系统人机交互人机交互实现用户界面的子系统实现用户界面的子系统 (包括可复用的(包括可复用的GUI子系统)子系统)任务管理任务管理负责控制和协调并发任务的子负责控制和协调并发任务的子 系统,任务可能被包装在一个系统,任务可能被包装在一个 子系统中或不同的子系统间;子系统中或不同的子系统间;数据管理数据管理负责对象的存储和检索的子系统负责对象的存储和检索的子系统 在对象设计过程中将分析模型转换为设计模型在对象设计过程中将分析模型转换为设计模型 分析模型分析模型 类类 属性属性 方法方法 关系关系 行为行为 设计模型设计模型 对象对象 数据结构数据结构 算法算法 消息传递消息传递 控制控制7.3.2 7.3.2 对象设计对象设计 对象设计内容对象设计内容 对象设计对象设计着重于着重于对象及其相互交互的对象及其相互交互的描述。描述。属性数据结构和所有操作的过程的详细规属性数据结构和所有操作的过程的详细规约被创建。约被创建。所有属性的可见性(公共的、私有的或保所有属性的可见性(公共的、私有的或保护的)被定义,对象间的接口被精化以定护的)被定义,对象间的接口被精化以定义完整的消息模型的细节。义完整的消息模型的细节。1.问题域部分的对象设计问题域部分的对象设计 OOA的模型直接放到的模型直接放到OOD D的问的问题域部分题域部分,OOD阶段阶段对对OOA结果结果进行改动和增补。进行改动和增补。根据需求变化,对根据需求变化,对OOA产生模产生模型的类与对象、结构、属性、操作型的类与对象、结构、属性、操作进行组合与分解,增加必要的类、进行组合与分解,增加必要的类、属性和关系。属性和关系。对对OOAOOA结果加以增补要考虑的因素结果加以增补要考虑的因素重用设计重用设计把问题域专用类组合在一起把问题域专用类组合在一起通过增添一般类而建立协议通过增添一般类而建立协议调整继承的支持级别调整继承的支持级别改进性能改进性能增加低层的类和对象增加低层的类和对象2.2.人机交互部分的对象设计人机交互部分的对象设计 虽然好的人机交互部分不可能挽救一虽然好的人机交互部分不可能挽救一个功能很差的软件个功能很差的软件,但性能很差的人机但性能很差的人机交互部分将使一个功能很强的产品变的交互部分将使一个功能很强的产品变的不可接受不可接受!传感器图形项目举例:举例:传感器控制系统人机交互部分设计传感器控制系统人机交互部分设计调用项目传感器状况窗口显示菜单调用菜单活动传感器项目调用项目传感器报警窗口显示菜单调用菜单活动位置传感器报警项目调用项目传感器窗口坐标3.3.任务管理部分的对象设计任务管理部分的对象设计 为什么要有任务管理部分为什么要有任务管理部分 系统中有许多系统中有许多并发行为并发行为时,需要按照时,需要按照各个行为的协调和通信关系,划分各种任各个行为的协调和通信关系,划分各种任务务(进程进程),简化并发行为的设计和编码。,简化并发行为的设计和编码。根据动态模型分析、定义并发性;根据动态模型分析、定义并发性;选择软件实现的控制方法。选择软件实现的控制方法。怎样设计任务管理部分怎样设计任务管理部分任务管理部分设计的主要工作是任务管理部分设计的主要工作是任务的选择任务的选择和调整,具体为:和调整,具体为:识别事件驱动任务识别事件驱动任务识别时钟驱动任务识别时钟驱动任务识别优先任务和关键任务识别优先任务和关键任务识别协调者识别协调者审查每个任务审查每个任务定义每个任务定义每个任务举例:举例:传感器控制系统任务管理部分设计传感器控制系统任务管理部分设计任务协调器任务协调器协调协调任务任务名字名字描述描述优先级优先级服务服务协调协调通信通信初始化初始化开始开始准备好准备好结束结束10,m举例:举例:传感器任务描述传感器任务描述任务任务1 1名字:名字:传感器读出。传感器读出。描述:描述:该任务在需要脉冲调幅时负责读该任务在需要脉冲调幅时负责读 出传感器。出传感器。包含:包含:传感器传感器.样本。样本。优先级优先级:中等。中等。协调:协调:时钟驱动,时钟驱动,100ms100ms的时间间隔。的时间间隔。通信:通信:从输入线(传感器)得到值,从输入线(传感器)得到值,给雷达邮箱发送值。给雷达邮箱发送值。4.4.数据管理部分的对象设计数据管理部分的对象设计 数据管理部分提供了数据管理部分提供了数据在数据管数据在数据管系统中系统中存储和检索对象存储和检索对象的基本结构的基本结构,它,它分离了数据管理方案的影响分离了数据管理方案的影响 (不管该方不管该方案是普通文件、关系型数据库、面向对案是普通文件、关系型数据库、面向对象数据库或其它方式象数据库或其它方式.).)如何设计数据管理部分如何设计数据管理部分 (1)1)数据存放方法设计数据存放方法设计(2)(2)相应服务的设计相应服务的设计 为每个需存储其对象的类增加一个为每个需存储其对象的类增加一个属性和服务属性和服务案例:案例:“图书管理系统图书管理系统”面向对象分析与设面向对象分析与设计计 1.需求调查分析需求调查分析 需求调查分析的结果一般用文字描述,必要时也可用需求调查分析的结果一般用文字描述,必要时也可用业务流程图辅助描述。业务流程图辅助描述。“图书管理系统图书管理系统”需求陈述如需求陈述如下:下:在图书管理系统中,管理员要为每个读者建立借阅账在图书管理系统中,管理员要为每个读者建立借阅账户,并給读者发放
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 高等教育 > 大学课件


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号