面向对象的系统分析与设计

上传人:宝路 文档编号:52825351 上传时间:2018-08-26 格式:PPT 页数:231 大小:1.70MB
返回 下载 相关 举报
面向对象的系统分析与设计_第1页
第1页 / 共231页
面向对象的系统分析与设计_第2页
第2页 / 共231页
面向对象的系统分析与设计_第3页
第3页 / 共231页
面向对象的系统分析与设计_第4页
第4页 / 共231页
面向对象的系统分析与设计_第5页
第5页 / 共231页
点击查看更多>>
资源描述

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

1、2014.09.15,面向对象的系统分析与设计,面向对象的系统分析与设计,2014.09.15,面向对象的系统分析与设计,参考书 黄磊,面向对象开发参考手册.人民邮电出版社 麻志毅,邵维忠. 面向对象方法基础教程. 高等教育出版社,2004年第1版. 邵维忠,杨芙清. 面向对象的系统分析. 清华大学出版社,2006年第1版.,2014.09.15,面向对象的系统分析与设计,1 概述 传统软件开发方法中存在的问题 60年代,崇尚个人编程技巧; 汇编语言、Fortran、COBOL; GOTO语句。 70年代,出现结构化方法; 软件按功能组织; 数据和操作结合得不紧密; 适合功能稳定的科学计算,但

2、不适合功能随市场变化的企业和商业软件。,2014.09.15,面向对象的系统分析与设计,70年代,出现信息建模方法; 以信息实体为构造块,以数据结构为中心来开发软件; 对功能的处理较弱。 80年代,出现面向对象方法(OOM)。 对信息建模方法进行了发展; 软件模型是问题域的完整和直接映射; 分析、设计和编程采用一致的概念和表示。 是一种运用“对象”、“类”、“继承”、“封装”、“聚合”、“关联”、“消息”、“多态性”等概念和原则来构造系统的软件开发方法。,被开发系统的应用领域,2014.09.15,面向对象的系统分析与设计,OOM的基本思想 客观世界中的事物都是对象,对象间存在一定关系,复杂对

3、象由简单对象组成; 具有相同属性和操作的对象属于一个类,对象是类的一个实例; 类之间可以有层次结构,子类继承父类的全部属性和操作,且可有自己的属性和操作; 类有封装性,隐藏或公开自己的属性或操作;对象只能通过消息请求其他对象或自己的操作; 强调运用人类日常思维方法。,2014.09.15,面向对象的系统分析与设计,2014.09.15,面向对象的系统分析与设计,对象(Object) 是系统中用来描述客观事物的一个实体, 它是构成系统的基本单位, 由一组属性和施加于这组属性的一组操作构成。 对象中的属性(Attribute) 用来描述对象静态特征的一个数据项。 对象中的操作(Operation)

4、 用来描述对象动态特征(行为)的一个动作序列。,2014.09.15,面向对象的系统分析与设计,类(class) 相同属性和操作的一组对象属于同一个类, 它为属于该类的全部对象提供了统一的抽象描述, 由一个类名、一组属性和一组操作构成, 同一个类的对象之间,属性值可不同,操作完全相同。 类的作用 用于创建对象,对象是类的实例。,2014.09.15,面向对象的系统分析与设计,继承(inheritance) 特殊类自动拥有其一般类的全部属性和操作,称为特殊类对一般类的继承,也称一般类对特殊类的泛化。,2014.09.15,面向对象的系统分析与设计,继承的层次与抽象、分类原则的运用,运输工具,轮船

5、,车辆,飞机,火车,汽车,卡车,轿车,较多地忽 略事物之 间的差别, 得到较一 般的类,较多地注 意事物之 间的差别, 得到较特 殊的类,继承有传递性,简化了人们对事物的认识和描述,有益于软件复用。,2014.09.15,面向对象的系统分析与设计,关联(association) 类之间的静态关系; 类实例为对象,对象之间用链连接。 链是关联的实例。,2014.09.15,面向对象的系统分析与设计,聚合(aggregation) 一个(较复杂)对象由其他若干(较简单)对象作为其构成成分,这种对象间关系称为聚合; 是关联的一种。,2014.09.15,面向对象的系统分析与设计,面向对象的基本原则

6、抽象 从事物中舍弃个别的、非本质的特征,保留共同的、本质特征的做法。 分类 较多地注意事物之间的差别,把具有相同属性和操作的对象划分一类。,2014.09.15,面向对象的系统分析与设计,封装(encapsulation) 用对象把属性和操作包装起来,形成一个独立的实体单位,并尽量对外隐蔽内部细节。,2014.09.15,面向对象的系统分析与设计,消息(message) 对象通过它提供的操作在系统中发挥作用; 其他对象向这个对象发请求,该对象响应并执行指定操作; 向一个对象发送的操作请求,称为消息; 对象之间通过消息进行通信,实现对象之间的动态联系。 在c+中是函数调用,在Java中是方法激活

7、。,2014.09.15,面向对象的系统分析与设计,多态性(polymorphism) 特殊类可定义同名的属性或操作,来代替继承来的属性或操作; 一般类中的属性或操作,在不同特殊类中可有不同的定义。,2014.09.15,面向对象的系统分析与设计,动态行为分析 用对等(关联)和层次(继承和聚合)描述类间关系,称为静态模型(或结构模型); 按属性值,可把对象划分为不同的状态,请求对象操作会引起状态变化,用状态转化图表示; 对象间发送消息,协同完成某项功能,用交互图(即写作图和顺序图)表示; 用主动对象和被动对象表示并非行为。,2014.09.15,面向对象的系统分析与设计,永久对象(persis

8、tent object) 生存期可以超越程序执行时间而长期存在的对象; 目前大多数OOPL(OO编程语言)是不支持永久对象的; 采用文件或数据库存储; 读出后进行必要的格式转换,恢复对象。 面向对象数据库管理系统(OODBMS) OO语言和数据结合,支持对象永久性。,2014.09.15,面向对象的系统分析与设计,主动对象(active object) 至少有一个操作不需要接收消息就可主动执行的对象。 所有操作必须接收消息才能执行的对象,称为被动对象。 在多任务并发执行的系统中,存在多个主动对象。,2014.09.15,面向对象的系统分析与设计,复杂性控制 系统分为若干“包(package)”

9、, 把类图中按模型元素之间关系的紧密程度,把模型元素组织到各个包中。,2014.09.15,面向对象的系统分析与设计,面向对象方法的优点 与人们认识世界的方法相对应; 对象对应问题域中的事物; 其属性和操作刻画事物的静态和动态特征。 继承、聚合、依赖和关联关系如实反映问题域事物之间的关系。 使客观世界到计算机语言的鸿沟变窄 面向对象语言比非面向对象语言更接近问题域。,2014.09.15,面向对象的系统分析与设计,面向对象方法使问题域和计算机的鸿沟变窄易于维护和复用 提高软件质量和生产效率,问题域,需求分析,总体设计,详细设计,编程,测试,计算机,分析与设计的鸿沟,自然语言,编程语言,问题域,

10、OOA,OOD,OOP,OOT,自然语言,OO语言,计算机,OO的软件工程方法,结构化的软件工程方法,2014.09.15,面向对象的系统分析与设计,易于维护和复用提高软件质量和生产效率,数据结构,数据结构,数据结构,算法,算法,算法,关系,结构化方法中的数据结构、算法及其间关系,数据结构 +算法,数据结构 +算法,数据结构 +算法,数据结构 +算法,关系,OO方法中的数据结构、算法及其间关系,2014.09.15,面向对象的系统分析与设计,面向对象方法的发展史 雏形阶段 60年代,挪威Simula 67首次使用类和继承概念; 70年代,CLU、并发Pascal、Ada、Modula-2开始支

11、持数据和操作的封装; 72年,Smalltalk-72使用“面向对象”这一术语。,2014.09.15,面向对象的系统分析与设计,完善阶段 81年,Smalltalk-80具备了面向对象的大多数基本概念和支持机制,被认为是第一个完善的、能够实际应用的面向对象语言(OOPL)。 繁荣阶段 80年代中期至90年代,出现了C+、Object-C、Object Pascal、Eiffel、Actor、Java; 目前,普遍采用语言、类库、可视化编程环境相结合的方法,如Visual C+、Visual Basic、Delphi等。,2014.09.15,面向对象的系统分析与设计,2 面向对象分析(Obj

12、ect Oriented Analysis) OO方法的三个阶段 面向对象分析(OOA) 不考虑实现,只找出所需对象及对象间关系,一般会确定对象有哪些属性和操作。 面向对象设计(OOD) 根据与实现有关的因素,定义对象中操作的实现,对OOA模型修改和补充,得OOD模型。 面向对象编程(OOP) 按OOD模型,进行编程实现。 OOA和OOD的界限有时是模糊的。,2014.09.15,面向对象的系统分析与设计,OOA面临的主要的问题 问题域和系统责任的复杂性日益增长。 问题域 被开发系统的应用领域,即系统的业务范围。 系统责任 所开发的系统应该具有的功能。,2014.09.15,面向对象的系统分析

13、与设计,交流问题 开发人员与领域专家交流; 开发人员之间的交流; 开发人员与管理人员交流。 需求的不断变化 软件复用的要求,2014.09.15,面向对象的系统分析与设计,需求分析:研究问题域,产生一个满足用户需求的系统分析模型。OOA模型如下:,静态模型,动态模型,需求模型,文档,图,2014.09.15,面向对象的系统分析与设计,OOA过程,2014.09.15,面向对象的系统分析与设计,3 用况图(use case diagram) 对一个系统的参与者、用况以及它们之间的关系进行可视化表示的模型图,称为用况图。 以直观形式展示了系统的用户需求; 是系统的需求模型。,2014.09.15,

14、面向对象的系统分析与设计,系统边界 是一个系统所包含的所有系统成分与系统以外各事物的分界线。,2014.09.15,面向对象的系统分析与设计,现实事物的四种情况 位于系统边界内; 如超市商品销售系统中的商品 参与者,且系统中没有相应成分与之对应; 收款员 既有系统内成分作为其抽象描述,又在系统外与系统交互; 收款员 属于问题域,但与系统责任无关。 保安员、保洁员 注意:已开发的软件系统,位于边界外。,2014.09.15,面向对象的系统分析与设计,参与者 是在系统之外(透过系统边界)与系统进行交互的任何事物。 定义了一组在功能上密切相关的角色; 收款员(参与者)有“收款”、“验货”、“验信誉卡

15、”等角色。 与系统的关系 向系统发出请求,系统以某种形式响应; 系统也可向参与者发出请求,参与者予以响应。,2014.09.15,面向对象的系统分析与设计,参与者之间的继承关系 特殊参与者可继承一般参与者放出请求的能力。,2014.09.15,面向对象的系统分析与设计,识别参与者 人员 从可直接使用系统的人员中发现参与者 外部系统 外部已开发投入使用的应用系统 设备 监视器、键盘通常不被看做参与者; 外部传感器、马达则可能是参与者。,2014.09.15,面向对象的系统分析与设计,用况(use case) 对用户需求的规范化描述; 为开发人员提供认识和理解系统的技术; 为领域专家、最终用户和开

16、发者提供一种相互交流的手段; 可作为人机界面的设计基础,也可用于制作测试用例。,2014.09.15,面向对象的系统分析与设计,一个用况 描述系统级的一项功能,把这样的功能描述为一组动作序列,系统执行该动作序列,为参与者产生一个可观察的结果值;其中的每个序列表示参与者与系统的一次交互。 强调参与者和系统彼此为对方做了什么,不关心怎么做,也不关心间接做了什么; 既表达了系统的功能需求,也表达了系统的功能划分; 描述的系统功能是相对完整的,而不是其中的小片段,但也不要过于综合。,用况名,2014.09.15,面向对象的系统分析与设计,用况与参与者之间的关系 一个参与者可以和多个用况交互; 对每个用况,参与者扮演一种角色。 一个用况可以和多个参与者交互; 关联是参与者和用况的唯一关系。 意味着两者可以通信。,2014.09.15,面向对象的系统分析与设计,用况之间的关系 有下列情况之一,可考虑增加新用况。 一个用况中有重复使用的动作序列; 几个用况中有重复使用的动作序列; 一个用况中的主要动作序列过于冗长或复杂,而且分离它们有助于理解和管理。,

展开阅读全文
相关资源
相关搜索

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

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