版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.软件工程软件工程,第5章,面向对象的软件设计,本章的要点,重点是Coad和Yourdon方法,描述面向对象设计的过程。面向对象的基本概念,对象设计中采用的原则和方法。2.软件工程软件工程在传统的软件设计技术中,主要分为两个阶段:概要设计和详细设计。采用面向对象技术,整个设计过程分为两个部分:系统设计和对象设计。5.1.1面向对象设计的任务,51面向对象设计概述。根据朗堡等人提出的对象墨锭技术(OTM),面向对象设计的过程主要包括以下步骤:3、软件工程软件工程,51、面向对象设计概述,1、系统设计。主要完成系统总体结构的设计,包括将子系统分配给处理器和任务,选择设计策略实现数据管理、边界支持
2、和任务管理,并为系统设计合适的控制机制。2)对象设计。将面向对象分析模型中的类对象模型具体化和细化,包括用传统设计方法中的过程设计方法设计对象的每一个操作,定义实现系统所需的内部类,为类属性设计内部数据结构等。3)消息设计。利用对象之间的协作和对象关系模型,设计了消息模型。4)审查设计模型。设计过程是渐进的,设计模型从需求和实现两个方面进行审查,并伴有额外的面向对象分析活动。4,软件工程,软件工程,51面向对象设计概述,1。层次关系:面向对象设计模型的五个层次反映了不同的逻辑关系:(1)服务层。服务是指类中的操作,而服务层中考虑的关系是指对象之间操作的调用关系。(2)属性层。属性是类存储数据的
3、位置,属性之间的关系是指类之间的数据交换。(3)结构层。面向对象设计模型有两种主要结构:继承结构和聚合结构。5.1.2面向对象的设计模型,5、软件工程软件工程软件工程,51面向对象的设计概述,(4)类和对象层。这个级别反映了类或对象的封装方式,即类或对象向类外部提供的函数。(5)主题层。主题层描述了分析模型中的需求,也就是说,由类组成的组件可以实现哪些功能。2.子系统之间的交互从当前的软件系统来看,子系统之间有两种可能的交互方式:客户-供应商关系和对等关系。5.1.2面向对象设计模型,6,软件工程软件工程软件工程,51面向对象设计概述,3。组织系统的两种方案:(1)分层组织结构:其特征是将软件
4、系统组织成一个分层系统,每一层都是一个子系统。(2)分块组织结构:在这种组织方案下,软件系统也将被分成几个子系统。然而,系统分解后的子系统是相互独立的,它们之间的耦合度比层级组织结构要弱得多。4.设计系统的拓扑结构:当一个完整的系统由子系统组成时,典型的拓扑结构是管道、树和星等。5.1.2面向对象设计模型。软件工程软件工程软件工程软件工程5.2系统设计,根据伦堡的OMT定义方法,系统设计主要包括以下步骤:1)划分子系统。整个系统按照不同的执行功能分为几个子系统,每个子系统承担一定的独立功能。2)确定需要并发运行的子系统,并为它们分配处理器。对于面向对象方法的每个子系统,如果需要并行执行,就需要
5、一个任务分配子系统来协调其他子系统的执行,以满足需求。3)描述子系统之间的通信。子系统之间的耦合是通过相互通信实现的。5.2.1系统设计过程,8、软件工程软件工程软件工程,5.2系统设计,4)确定系统资源的管理和控制。系统的资源管理和控制可以看作是子系统统一管理和控制系统资源的责任,而系统资源的用户则被视为该子系统的消费者。5)确定人机交互组件,即用户界面。用户界面反映了系统与用户之间的信息交换方式。应根据一定的设计原则和使用习惯建立良好的用户界面,以提高系统输入和输出的效率。6)选择实现数据管理和任务管理的基本策略。应该优化数据管理和任务管理的设计,以使系统高效运行。5.2.1系统设计流程,
6、9软件工程,软件工程,5.2系统设计,1。子系统划分:通过面向对象分析获得的问题域的精确模型为子系统的提取和划分奠定了良好的基础,并提供了一个完整的框架。子系统的划分有几个原则:1)重用设计的原则。也就是说,根据解决问题的需要,将从类库或其他来源获得的现有类添加到问题的解决方案中。2)关联一些与应用领域相关的类,组织一些与问题解决相关的类,建立类的层次结构。5.2.2子系统设计,10,软件工程软件工程软件工程,5.2系统设计,3)添加通用类以建立类间协议。如果几个类有一些相似的方法,我们可以制定一个一般化的类,为它定义一个一般化的类,并把这个一般化的方法作为一个虚函数。4)调整继承支持级别。5
7、)修改设计以提高性能6)添加较低级别的组件2)处理并发操作,5.2.2子系统设计,11)软件工程软件工程软件工程,5.2系统设计,它们可以采用以下两种解决方案:1)将并发子系统分配给不同的处理器。2)并发子系统分配给同一处理器,系统提供同步控制。3.描述子系统之间的通信。在面向对象分析中,对象关系模型被用来表示对象之间的合作关系。子系统可以看作是高级模块,因此有必要定义子系统之间的协作关系。4.在资源管理组件系统中经常存在一些共享资源,并且多个子系统可能同时竞争这些资源。5.2.2子系统设计,12,软件工程,软件工程,5.2系统设计,1。分类分析用户特征,设计不同的界面。2.为用户界面添加特殊
8、的类和对象。3.通过快速原型演示改进界面设计。4.描述任务场景。5.设计命令层。6.设计详细的互动。5.2.3用户界面设计。软件工程软件工程软件工程5.2系统设计,即所谓的任务,是过程的另一个名称,它是一个执行一系列活动的程序。具体来说,任务管理组件的设计通常遵循以下步骤和策略:(1)识别事件驱动和时间驱动的任务;(2)确定关键任务、任务优先级和任务管理类;(3)确定任务;(4)修改任务;(5.2.4)设计任务管理;(14)、软件工程软件工程软件工程,5.2系统设计,1。定义数据格式(1)关系数据库管理系统(2)面向对象数据库管理系统(2)设计相应的操作(1)关系数据库管理系统(2)面向对象数
9、据库管理系统,5.2.5数据管理设计,15,软件工程软件工程,5.3对象设计,任何设计方法都必须提供以下机制:数据结构表示2)处理过程描述3)处理过程调用,16,软件工程软件工程,5.3对象设计, 对象的实现描述包括以下信息:对象名和对象类2)私有数据结构的每个数据项及其类型3)每个操作的过程描述或指向这样的过程描述的指针1协议描述,5.3.1对象描述,17,软件工程软件工程,5.3对象设计。 协议最初是指网络通信中双方之间的通信协议。这个概念在这里用来表达物体如何交流。2实现描述:实现描述是对象在接收到消息后执行的操作的实现细节的描述,包括关于对象的私有部分的信息,即描述对象属性的数据结构的内部细节和描述操作的过程细节。5.3.2算法设计,18,软件工程软件工程软件工程,5.3对象设计,模块化是提高软件质量的一个重要方面,也是面向对象设计的四个基本特征之一。程序组件化是体现模块化的重要手段。在面向对象的设计中,仅仅定义对象的属性和操作是不够的,还需要描述对象之间的接口和对象的整体结构。程序组件可以用来表示对象的整体结构以及对象和其他组件之间的相互联系。5.3.3程序组件和接口,19,软件工程软件工程软件工程软件工程,5.4域对象设计,1)调整需求,2)重用现有组件,3)引
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 竞买人权益保护法律法规解读
- 跨海大桥海上施工应急救援预案
- 心灵的慰藉:心理护理的关怀
- 护理安全与安全管理
- 护理团队协作精神
- Furin-IN-3-生命科学试剂-MCE
- 导尿管道护理的基本原则与实践
- FMJ-01-054-生命科学试剂-MCE
- 2025年无人机管制系统安全加固
- 2026oracle测试面试题及答案
- 实验室质量控制规范 植物检疫 征求意见稿
- 2024算力中心冷板式液冷发展研究报告
- 煤炭企业组织结构的创新
- 装配式建筑装饰装修技术 课件 模块三 装配式吊顶
- 新青岛版-二年级下册数学-口算题
- 2024年福建省莆田市初中毕业班质量检查二模英语试卷
- 十大零容忍培训
- 药物不良反应培训讲义
- 汉语写作与百科知识样题
- 提高喷射混凝土施工一次验收合格率QC成果
- 2018年山东德州中考英语试卷真题含答案
评论
0/150
提交评论