面向对象的分析和设计

上传人:平*** 文档编号:47650907 上传时间:2018-07-03 格式:PPT 页数:268 大小:1.35MB
返回 下载 相关 举报
面向对象的分析和设计_第1页
第1页 / 共268页
面向对象的分析和设计_第2页
第2页 / 共268页
面向对象的分析和设计_第3页
第3页 / 共268页
面向对象的分析和设计_第4页
第4页 / 共268页
面向对象的分析和设计_第5页
第5页 / 共268页
点击查看更多>>
资源描述

《面向对象的分析和设计》由会员分享,可在线阅读,更多相关《面向对象的分析和设计(268页珍藏版)》请在金锄头文库上搜索。

1、软件工程第7章 面向对象的分析和 设计1厦门理工学院计算机科学与技术系 软件工程课程内容摘要 面向对象的基本概念 面向对象的分析和设计过程 UML概述 用况建模 静态建模 动态建模 物理体系结构建模2厦门理工学院计算机科学与技术系 软件工程课程内容摘要 面向对象的基本概念面向对象的基本概念 面向对象的分析和设计过程 UML概述 用况建模 静态建模 动态建模 物理体系结构建模3厦门理工学院计算机科学与技术系 软件工程课程Peter Coad和Edward Yourdon提出用下列 等式识认面向对象方法: 面向对象 = 对象(object)+ 类(classification)+ 继承(inher

2、itance)+ 通过消息的通信(communication with messages)采用这四个概念开发的软件系统是面向对象 的4厦门理工学院计算机科学与技术系 软件工程课程面向对象方法的特点: 从认知学的角度来看,面向对象方法符合人 们对客观世界的认识规律。 面向对象方法开发的软件系统易于维护,其 体系结构易于理解、扩充和修改。 面向对象方法中的继承机制有力支持软件的 复用。 5厦门理工学院计算机科学与技术系 软件工程课程面向对象的基本概念 1. 对象(object)对象是指一组属性以及这组属性上的专用 操作的封装体。属性(attribute)通常是一些数据,有 时它也可以是另一个对象。

3、每个对象都有它自 己的属性值,表示该对象的状态。对象中的属 性只能通过该对象所提供的操作来存取或修改 。操作(operation)(也称方法或服务) 规定了对象的行为,表示对象所能提供的服务 。6厦门理工学院计算机科学与技术系 软件工程课程封装(encapsulation)是一种信息隐 蔽技术,用户只能看见对象封装界面上 的信息,对象的内部实现对用户是隐蔽 的。封装的目的是使对象的使用者和生 产者分离,使对象的定义和实现分开。一个对象通常可由对象名、属性和操 作三部分组成。7厦门理工学院计算机科学与技术系 软件工程课程2. 类(class)类是一组具有相同属性和相同操作的对象 的集合。一个类中

4、的每个对象都是这个类的一 个实例(instance)。 类是创建对象的模板,从同一个类实例化 的每个对象都具有相同的结构和行为。8厦门理工学院计算机科学与技术系 软件工程课程轿 车型号:字符串 颜色:字符串 牌照号:字符串 张经理的轿车型号=桑塔纳 颜色=红色 牌照号=沪AN2037 类实例对象9厦门理工学院计算机科学与技术系 软件工程课程3. 继承(inheritance)继承是类间的基本关系,它是基于层次关 系的不同类共享数据和操作的一种机制。父类 中定义了其所有子类的公共属性和操作,在子 类中除了定义自己特有的属性和操作外,可以 继承其父类(或祖先类)的属性和操作,还可 以对父类(或祖先

5、类)中的操作重新定义其实 现方法。 10厦门理工学院计算机科学与技术系 软件工程课程矩形 长 宽 对角线 计算面积 计算对角线多边形 顶点数 顶点坐标 计算面积 旋转11厦门理工学院计算机科学与技术系 软件工程课程没有实例的类称为抽象类(abstract class )。 抽象操作:只定义这个类的操作接口,不定 义它的实现,其实现部分由其子类定义。抽象 操作操作名用斜体字表示,也可以在操作特征 (signature)后面加上特征字符串abstract 。12厦门理工学院计算机科学与技术系 软件工程课程交通工具飞行器汽 车 船轿 车货 车一般-特殊关系13厦门理工学院计算机科学与技术系 软件工程

6、课程如果一个子类只有唯一一个父类,这个 继承称为单一继承。如果一个子类有一个以上 的父类,这种继承称为多重继承。 水上交通工具 陆上交通工具水陆两栖交通工具多重继承14厦门理工学院计算机科学与技术系 软件工程课程4. 消息(message)消息传递是对象间通信的手段,一个对 象通过向另一个对象发送消息来请求其服务。 一个消息通常包括接收对象名、调用的操作名 和适当的参数(如果有必要的话)。消息只告 诉接收对象需要完成什么操作,但并不指示接 收者怎样完成操作。消息完全由接收者解释, 接收者独立决定采用什么方法完成所需的操作 。 15厦门理工学院计算机科学与技术系 软件工程课程5. 多态性(pol

7、ymorphism)多态性是指同一个操作作用于不同的对 象上可以有不同的解释,并产生不同的执行结 果。例如“画”操作,作用在“矩形”对象上,则 在屏幕上画一个矩形,作用在“圆”对象上,则 在屏幕上画一个圆。也就是说,相同操作的消 息发送给不同的对象时,每个对象将根据自己 所属类中定义的这个操作去执行,从而产生不 同的结果。 16厦门理工学院计算机科学与技术系 软件工程课程6. 动态绑定(dynamic binding)动态绑定是指在程序运行时才将消息所 请求的操作与实现该操作的方法连接起来。17厦门理工学院计算机科学与技术系 软件工程课程内容摘要 面向对象的基本概念 面向对象的分析和设计过程面

8、向对象的分析和设计过程 UML概述 用况建模 静态建模 动态建模 物理体系结构建模18厦门理工学院计算机科学与技术系 软件工程课程面向对象分析 Object-Oriented Analysis面向对象分析的一般步骤如下: 获取客户对系统的需求:包括标识场景(scenario )和用况(use case,也称用例),以及建造需求模 型 用基本的需求为指南,来选择类和对象(包括属性 和操作)。 定义类的结构和层次。 建造对象关系模型。 建造对象行为模型。 利用用况/场景来复审分析模型。 19厦门理工学院计算机科学与技术系 软件工程课程1. 获取客户对系统的需求执行者提出的每一个使用场景(或功能 )

9、都是系统的一个用况的实例,一个用况描述 了系统的一种用法(或一个功能),所有执行 者提出的所有用况构成系统的完整的需求。分析过程20厦门理工学院计算机科学与技术系 软件工程课程2. 标识类和对象类和对象来自问题领域。 可以先标识候选类,然后进行筛选21厦门理工学院计算机科学与技术系 软件工程课程3. 定义类的结构和层次类的结构主要有两种:一般特殊( generalizationspecialization)结构和整体部分 (wholepart)结构。一般特殊结构是一种分类结构,反映了类 间的一般与特殊的关系。一般类与特殊类之间是一种 “is a”的关系,如:汽车是一种交通工具。同样,特 殊类还

10、可以分为更特殊的类,这样可形成类的层次结 构。整体部分结构反映了类间的整体与部分关 系。值得注意的是,整体部分关系是对对象而言的 ,而不是对类的。整体部分关系是一种“has a ”的 关系,如“汽车”有“发动机”。同样,整体部分结构 也具有层次结构。22厦门理工学院计算机科学与技术系 软件工程课程4. 建造对象关系模型对象-关系模型描述了系统的静态结构 ,它指出了类间的关系(relationship)。类之间的关系有关联、依赖、泛化、实 现等。23厦门理工学院计算机科学与技术系 软件工程课程5. 建立对象行为模型对象-行为模型描述了系统的动态行为, 它们指明系统如何响应外部的事件或激励( st

11、imulus)。建模的步骤如下: 评估所有的用况,以完全理解系统中交互的 序列。 标识驱动交互序列的事件,理解这些事件如 何和特定的对象相关联。 为每个用况创建事件轨迹(event trace)。 为系统建造状态机图。 复审对象-行为模型,以验证准确性和一致 性。 24厦门理工学院计算机科学与技术系 软件工程课程图7.1所示的自动取款机(ATM)系统,讲述 面向对象分析和面向对象设计时使用的一个 实例。某银行拟开发一个自动取款机系统,它 是一个由自动取款机、中央计算机、分行计 算机及柜员终端组成的网络系统。ATM和中 央计算机由总行投资购买。总行拥有多台 ATM,分别设在全市各主要街道上。分行

12、负 责提供分行计算机和柜员终端。柜员终端设 在分行营业厅及分行下属的各个储蓄所内。 该系统的软件开发成本由各个分行分摊。例子25厦门理工学院计算机科学与技术系 软件工程课程图7.1 ATM系统 26厦门理工学院计算机科学与技术系 软件工程课程l银行柜员使用柜员终端处理储户提交的储 蓄事务。 l储户可以用现金或支票向自己拥有的某个 账户内存款或开新账户。 l储户也可以从自己的账户中取款。通常, 一个储户可能拥有多个账户。 l柜员负责把储户提交的存款或取款事务输 进柜员终端,接收储户交来的现金或支票, 或付给储户现金。 l柜员终端与相应的分行计算机通信,分行 计算机具体处理针对某个账户的事务并且维

13、 护账户。27厦门理工学院计算机科学与技术系 软件工程课程拥有银行账户的储户有权申请领取现金兑 换卡。使用现金兑换卡可以通过ATM访问自 己的账户。目前仅限于用现金兑换卡在ATM 上提取现金(即取款),或查询有关自己账户 的信息(例如,某个指定账户上的余额)。将 来可能还要求使用ATM办理转账、存款等事 务。28厦门理工学院计算机科学与技术系 软件工程课程1. 找出候选的类与对象对象是对问题域中有意义的事物的抽象, 它们既可能是物理实体,也可能是抽象概念 。具体地说,大多数客观事物可分为下述5 类:一、建立对象模型29厦门理工学院计算机科学与技术系 软件工程课程(1) 可感知的物理实体,例如,

14、飞机、汽 车、书、房屋等等。 (2) 人或组织的角色,例如,医生、教师 、雇主、雇员、计算机系、财务处等等。 (3) 应该记忆的事件,例如,飞行、演出 、访问、交通事故等等。 (4) 两个或多个对象的相互作用,通常具 有交易或接触的性质,例如,购买、纳税、 结婚等等。 (5) 需要说明的概念,例如,政策、保险 政策、版权法等等。 30厦门理工学院计算机科学与技术系 软件工程课程2. 筛选出正确的类与对象依据下列标准,删除不正确或不必要的类 与对象: (1) 冗余如果两个类表达了同样的信息,则应该保 留在此问题域中最富于描述力的名称。 以ATM系统为例,上面用非正式分析法得 出其中储户与用户,现

15、金兑换卡与磁卡及副 本分别描述了相同的两类信息,因此,应该 去掉“用户”、“磁卡”、“副本”等冗余的类, 仅保留“储户”和“现金兑换卡”这两个类。 31厦门理工学院计算机科学与技术系 软件工程课程(2) 无关仅需要把与本问题密切相关的类与对象放 进目标系统中。有些类在其他问题中可能很 重要,但与当前要解决的问题无关,同样也 应该把它们删掉。 以ATM系统为例,这个系统并不处理分摊 软件开发成本的问题,而且ATM和柜员终端 放置的地点与本软件的关系也不大。因此, 应该去掉候选类“成本”、“市”、“街道”、“营 业厅”和“储蓄所”。32厦门理工学院计算机科学与技术系 软件工程课程(3) 笼统通常把

16、笼统的或模糊的类去掉。 以ATM系统为例,“银行”实际指总行或分 行,“访问”在这里实际指事务,“信息”的具 体内容在需求陈述中随后就指明了。此外还 有一些笼统含糊的名词。总之,在本例中应 该去掉“银行”、“网络”、“系统”、“软件”、“ 信息”、“访问”等候选类。33厦门理工学院计算机科学与技术系 软件工程课程(4) 属性在需求陈述中有些名词实际上描述的是其 他对象的属性,应该把这些名词从候选类与 对象中去掉。当然,如果某个性质具有很强 的独立性,则应把它作为类而不是作为属性 。 在ATM系统的例子中,“现金”、“支票”、“ 取款额”、“账单”、“余额”、“分行代码”、“ 卡号”、“密码”、“类型”等,实际上都应该作 为属性对待。34厦门理工学院计算机科学与技术系 软件工程课程(5) 操作在需求陈

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

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