




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程,第7章 面向对象的分析和设计,内容摘要,面向对象的基本概念 面向对象的分析和设计过程 用况建模 静态建模 动态建模 物理体系结构建模,7.1 面向对象的基本概念,1. 对象(object) 对象是指一组属性以及这组属性上的专用操作的封装体。 属性(attribute)通常是一些数据,有时它也可以是另一个对象。每个对象都有它自己的属性值,表示该对象的状态。对象中的属性只能通过该对象所提供的操作来存取或修改。 操作(operation)(也称方法或服务)规定了对象的行为,表示对象所能提供的服务。,封装(encapsulation)是一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象
2、的内部实现对用户是隐蔽的。封装的目的是使对象的使用者和生产者分离,使对象的定义和实现分开。 一个对象通常可由对象名、属性和操作三部分组成。,2. 类(class) 类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例(instance)。 类是创建对象的模板,从同一个类实例化的每个对象都具有相同的结构和行为。,3. 继承(inheritance) 继承是类间的基本关系,它是基于层次关系的不同类共享数据和操作的一种机制。父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承其父类(或祖先类)的属性和操作,还可以对父类(或祖先类)中的
3、操作重新定义其实现方法。,有时,我们定义一个类,它把一些类组织起来,提供一些公共的行为,但并不需要使用这个类的实例,而仅使用其子类的实例。我们把这种没有实例的类称为抽象类(abstract class)。在抽象类中可以定义抽象操作,抽象操作指:只定义这个类的操作接口,不定义它的实现,其实现部分由其子类定义。,如果一个子类只有唯一一个父类,这个继承称为单一继承。如果一个子类有一个以上的父类,这种继承称为多重继承。,4. 消息(message) 消息传递是对象间通信的手段,一个对象通过向另一个对象发送消息来请求其服务。一个消息通常包括接收对象名、调用的操作名和适当的参数。消息只告诉接收对象需要完成
4、什么操作,但并不指示接收者怎样完成操作。消息完全由接收者解释,接收者独立决定采用什么方法完成所需的操作。,5. 多态性(polymorphism) 多态性是指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。例如“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形,作用在“圆”对象上,则在屏幕上画一个圆。也就是说,相同操作的消息发送给不同的对象时,每个对象将根据自己所属类中定义的这个操作去执行,从而产生不同的结果。,6. 动态绑定(dynamic binding) 动态绑定是指在程序运行时才将消息所请求的操作与实现该操作的方法连接起来。 在一般与特殊关系中,子类是父类的一个
5、特例,在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定。,7.2面向对象分析与设计7.2.1面向对象分析,面向对象分析的一般步骤如下: 获取客户对系统的需求:包括标识场景(scenario)和用况(use case,也称用例),以及建造需求模型 用基本的需求为指南,来选择类和对象(包括属性和操作)。 定义类的结构和层次。 建造对象关系模型。 建造对象行为模型。 利用用况/场景来复审分析模型。,1. 获取客户对系统的需求 需求获取必须让客户与开发者充分地交流,这里介绍一种采用用况来收集客户需求的技术。分析员首先标识使用该系统的不同的
6、执行者(actor),这些执行者代表使用该系统的不同的角色。每个执行者可以叙述他如何使用系统,或者说他需要系统提供什么功能。执行者提出的每一个使用场景(或功能)都是系统的一个用况的实例,一个用况描述了系统的一种用法(或一个功能),所有执行者提出的所有用况构成系统的完整的需求。,分析过程,2.标识类和对象 类和对象来自问题领域。 可以先标识候选类,然后进行筛选,3. 定义类的结构和层次 类的结构主要有两种:一般特殊(generalizationspecialization)结构和整体部分(wholepart)结构。 一般特殊结构是一种分类结构,反映了类间的一般与特殊的关系。特殊类还可以分为更特殊
7、的类,这样可形成类的层次结构。 整体部分结构反映了类间的整体与部分关系。值得注意的是,整体部分关系是对对象而言的,而不是对类的。整体部分关系是一种“has a ”的关系,如“汽车”有“发动机”。同样,整体部分结构也具有层次结构。,4. 建造对象关系模型 对象-关系模型描述了系统的静态结构,它指出了类间的关系(relationship)。 类之间的关系有关联、依赖、泛化、实现等。,5. 建立对象行为模型 对象-行为模型描述了系统的动态行为,它们指明系统如何响应外部的事件或激励(stimulus)。 建模的步骤如下: 评估所有的用况,以完全理解系统中交互的序列。 标识驱动交互序列的事件,理解这些事
8、件如何和特定的对象相关联。 为每个用况创建事件轨迹(event trace)。 为系统建造状态机图。 复审对象-行为模型,以验证准确性和一致性。,7.2.2 面向对象设计(Object_Oriented Design),面向对象设计的一般步骤如下: 系统设计 将子系统分配到处理器 选择实现数据管理、界面支持和任务管理的设计策略 为系统设计合适的控制机制 复审并考虑权衡(折衷),对象设计 在过程级别(procedural lavel)设计每个操作,即设计每个操作的实现细节 定义内部类 为类属性设计内部数据结构 消息设计 使用对象间的协作和对象-关系模型,设计消息模型 复审 复审设计模型并在需要时
9、迭代。,1. 系统设计 1) 将分析模型划分成子系统 在OO系统设计中,把分析模型中紧密相关的类、关系等设计元素包装成子系统。 通常,子系统的所有元素共享某些公共的性质,它们可能都涉及完成相同的功能;它们可能驻留在相同的产品硬件中;或者它们可能管理相同的类和资源。子系统由它们的责任所刻画,即,一个子系统可以通过它提供的服务来标识。在OOD中,这种服务是完成特定功能的一组操作。,子系统的设计准则是: (1) 子系统应具有定义良好的接口,通过接口和系统的其它部分通信; (2) 除了少数的“通信类” 外,子系统中的类应只和该子系统中的其它类协作; (3) 子系统的数量不宜太多; (4) 可以在子系统
10、内部再次划分,以降低复杂性。,2) 标识问题本身的并发性,并为子系统分配处理器 通过对对象-行为模型的分析,可发现系统的并发性。如果对象(或子系统)不是同时活动的,则它们不需并发处理,此时这些对象(或子系统)可以在同一个处理器上实现。反之,如果对象(或子系统)必须对一些事件同时异步地动作,则它们被视为并发的,此时,可以将并发的子系统分别分配到不同的处理器,或者分配在同一个处理器,而由操作系统提供并发支持。,3) 任务管理设计 Coad和Yourdon提出如下管理并发任务对象的设计策略: (1) 确定任务的类型; (2) 必要时,定义协调者任务和关联的对象; (3) 将协调者任务和其它任务集成。
11、 通常可通过了解任务是如何被启动的来确定任务的类型,如事件驱动任务,时钟驱动任务。每个任务应该定义其优先级,并识别关键任务。当有多个任务时还可以考虑增加一个协调者任务,以控制这些任务协同工作。,4) 数据管理设计 通常数据管理设计成层次模式,其目的是将数据的物理存储及操纵与系统的业务逻辑加以分离。 数据管理的设计包括设计系统中各种数据对象的存储方式(如内部数据结构、文件、数据库),以及设计相应的服务,即为要储存的对象增加所需的属性和操作。,5) 资源管理设计 OO系统可利用一系列不同的资源(如磁盘驱动器、处理器、通信线路等外部实体或数据库、对象等抽象资源),很多情况下,子系统同时竞争这些资源,
12、因此要设计一套控制机制和安全机制,以控制对资源的访问,避免对资源使用的冲突。 6)人机界面设计 对大多数应用系统而言,人机界面本身是一个非常重要的子系统。人机界面主要强调人如何命令系统,以及系统如何向人提交信息。它包括窗口、菜单、报告的设计。,7) 子系统间的通信 子系统之间可以通过建立客户/服务器连接进行通信,也可以通过端对端(peer to peer)连接进行通信。我们必须确定子系统间通信的合约(contract),合约提供了一个子系统和另一个子系统交互的方式。,2. 对象设计 对象设计是为每个类的属性和操作作出详细的设计,并设计连接类与它的协作者之间的消息规约。 1) 对象描述 对象的设计描述可以采取以下形式之一: (1) 协议描述:描述对象的接口,即定义对象可以接收的消息以及当对象接收到消息后完成的相关操作; (2) 实现描述:描述传送给对象的消息所蕴含的每个操作的实现细节,实现细节包括有关对象私有部分的信息,即关于描述对象属性的数据结构的内部细节和描述操作的过程细节。 对对象的使用者来说,只需要协议描述就够了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国正压单管风动送样装置项目投资可行性研究报告
- 中国功能测试仪行业发展监测及投资战略规划研究报告
- 2025年新疆维吾尔自治区初中学业水平考试中考物理真题试卷(中考真题+答案)
- 虎丘区代理记账管理办法
- 融媒体宣传管理暂行办法
- 衡水市餐厨垃圾管理办法
- 装配式建筑租借管理办法
- 西安经开区供热管理办法
- 规范电动车管理暂行办法
- 证监会案件细节管理办法
- GA/T 41-2019道路交通事故现场痕迹物证勘查
- 年产10万吨污水处理药剂菌剂项目环评报告书
- 江苏医疗机构设置审批申请表
- 人教版二年级下册《有余数的除法》教学设计公开课
- 某某医院猴痘培训试题含答案
- (精选word)2019《普速铁路线路修理规则》
- 高等教育心理学知识考核题库与答案
- JTGT 3832-2018 公路工程预算定额 说明部分
- UPS基础知识培训教材PPT(76张)课件
- 了凡四训-(课堂PPT)课件(PPT 33页)
- GB∕T 25684.3-2021 土方机械 安全 第3部分:装载机的要求
评论
0/150
提交评论