L第9章面向软件工程课件对象方法学.ppt

上传人:sccc 文档编号:5378327 上传时间:2023-07-01 格式:PPT 页数:58 大小:1.07MB
返回 下载 相关 举报
L第9章面向软件工程课件对象方法学.ppt_第1页
第1页 / 共58页
L第9章面向软件工程课件对象方法学.ppt_第2页
第2页 / 共58页
L第9章面向软件工程课件对象方法学.ppt_第3页
第3页 / 共58页
L第9章面向软件工程课件对象方法学.ppt_第4页
第4页 / 共58页
L第9章面向软件工程课件对象方法学.ppt_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《L第9章面向软件工程课件对象方法学.ppt》由会员分享,可在线阅读,更多相关《L第9章面向软件工程课件对象方法学.ppt(58页珍藏版)》请在三一办公上搜索。

1、软件工程,第九章 面向对象方法学引论,2,引言,话说三国时期,曹操带领百万大军攻打东吴,大军在长江赤壁驻扎,军船连成一片,眼看就要灭掉东吴,统一天下,曹操大悦,于是大宴众文武,在酒席间,曹操诗性大发,不觉吟道:“喝酒唱歌,人生真爽。”。众文武齐呼:“丞相好诗!”于是一臣子速命印刷工匠刻版印刷,以便流传天下。,3,喝酒唱歌人生真爽,曹操感觉不妥:“喝与唱,此话过俗,应改为对酒当歌,喝酒当歌人生真爽,唱当,曹操细细一品,觉得还是不好:“人生真爽太过直接,应改问语才够意境,对酒当歌,人生几何?!工匠听后当即晕倒,由于所有字刻在一块石碑上,因此修改一个字也要从新雕刻,费时费力。,4,把每个字做一个对象

2、,只需更改四个字就可,对酒当歌人生几何,只需更改要改之字,此为可维护;这些字并非用完这次就无用,在今后的印刷中可重复使用,此乃可复用;此诗若要加字,只需另刻字加入即可,此称可扩展;字的排列横竖均可,此是灵活性好。面向对象方法通过封装、继承、多态把程序的耦合度降低,使程序更加灵活、易修改、易复用。,5,第九章 面向对象方法学引论,1 面向对象方法学概述2 面向对象概念3 面向对象建模4 对象模型5 动态模型6 功能模型7 三种模型之间的关系,6,学习重点和难点,理解面向对象技术中的基本思想、概念和原理等;理解面向对象建立的三种模型的功能和相互关系。,7,9.1 面向对象方法学概述,软件工程发展的

3、两个重要阶段传统软件工程面向对象软件的工程,8,传统软件工程,以面向过程的结构化程序设计为基础;遵循“程序=数据结构+算法”的思路;由“追求技巧与效率”到“清晰第一,效率第二”缺点:不太适应规模大、特别复杂的项目;难以解决软件重用的问题;难以适应需求的变化;难以彻底解决维护问题。,9,面向对象软件工程,按人类习惯的思维方法,以现实世界中客观存在的事物(即对象)为中心来思考和认识问题。采用的思想方法与原则:抽象、分类、继承、聚合、封装等。以易于理解的方式表达软件系统,建立问题域模型,使设计出的软件尽可能直接地描述现实世界,具有更好的可维护性,10,软件工程学家Codd 和Yourdon认为:,面

4、向对象对象类继承通信如果一个软件系统采用这些概念来建立模型并予以实现,那么它就是面向对象的。,11,面向对象技术发展概述,初始阶段:上世纪 60 年代,挪威奥斯陆大学和挪威计算中心开发的 Simula67 的语言;70 年代中期,Xerox 研究中心开发的 Smallta Ik 语言,具备了面向对象语言的各种特征。发展阶段:涌现大批面向对象编程语言(OOPL)。如 C+、objective-C、ob j ect Pascal、Eiffel、Actor 等。成熟阶段:面向对象分析(OOA)和面向对象设计(OOD)的研究。出现各种著名的面向对象分析设计的方法,如:Coad/Yourdon 的方法、

5、Booch 的方法、OMT方法、wirtf-Brock 的 RDD 方法、Jacobson 的 OOSE 方法 等。,12,面向对象技术的基本观点,任何客观的事物或实体都是对象。对象组成客观世界,复杂的对象可以由简单的对象组成。具有相同数据和操作的对象可以归并为一个类(class),对象是对象类的一个实例。类可以派生出子类,子类继承父类的全部特性(数据和操作),又可以有自己的新特性。子类与父类形成类的层次结构。对象之间通过消息传递相互联系。,13,面向对象方法学的优点,1、与人类习惯的思维方法一致 2、稳定性好 3、可重用性好4、较易开发大型软件产品 5、可维护性好,14,传统的开发方法与面向

6、对象的开发方法比较,15,9.2 面向对象的概念,9.2.1 对象(objoct)在现实世界中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,包括具体的物理实体的抽象、人为的概念、任何有明确边界和意义的东西。如:一名职工、一本图书、贷款、生产计划、一场演出等。对象既有静态的属性,又有动态的行为(操作)。,16,从软件开发的角度定义对象系统中用来描述客观事物的实体,是构成系统的基本单位。由一组属性和相关操作组成的服务组成。这是对象的两个基本要素:属性:用来描述对象静态特征的一个数据项;服务:用来描述对象动态特征(行为)的一个操作序列。对象的属性和所有操作封装在一起,构成一个统一体。属性

7、一般只能通过执行对象的操作来改变。,17,表示内部状态的数据、实现各操作的代码及局部数据,被隐藏,无法从外面看见、访问或修改;使用对象的时候,只能通过对象与外界的界面来操作;操作时,只需知道该操作的名字和所需要的参数,不需要知道这些操作是如何实现的;简单、方便,安全性和可靠性高。,18,9.2.2 其他概念,1、类(Class)具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述。“类”好比是一个对象模板,用它可以产生多个对象。,类的描述,19,例:,类(class):是对象的“类型”(type)一般用关键字class来表示。Class CPeople long ID

8、;string name;void DoSomething();对象是类的实例:CPeople Tom,20,2、实例(instance),实例是某个特定类所描述的一个具休对象。如:“张三”“李四”是类“学生”的实例。对象:可以是一个具体的对象,也可以泛指一般的对象。实例:必然是指一个在客观世界中存在的具体对象。,21,3、消息(message),对象之间通信的手段,是一个对象要求另一对象执行类中定义的某个操作的规格说明。通常一个消息由三部分组成:接收消息的对象消息标识符(即消息名)零个或多个变元例如:MyCircle.Show(Green)MyCircle是接收消息的对象的名字,Show 是

9、消息名,Green是消息的变元。,22,4、方法(method),对象所能执行的操作称为方法,也就是类中所定义的服务。方法描述了对象执行的功能、响应消息的操作。在 C+中称为成员函数。,23,5、属性(attribute),属性是对客观世界实体所具有的性质的抽象,是类中所定义的数据。如:学生类属性有姓名、年龄、性别等。不同对象的同一属性可以具有相同或不同的属性值。如:张三的年龄为19,李四 的年龄为20。,24,6、封装(encapsulation),封装是把对象的属性和实现操作的代码结合成一个独立的系统单位,并尽可能隐藏对象的内部细节,对象以外的部分不能直接作用于对象的内部数据(属性),对象

10、间的通信只能通过明确的消息来进行。,25,7、继承(inheritance),在现存类定义的基础上,建立新定义类的技术。新类的定义可以是现存类所声明的数据、定义与新类所增加的声明的组合。新类复用现存类的定义,而不要求修改现存类。现存类可当作父类(泛化类、基类或超类)来引用,则新类相应地可当作子类(特化类、子女类或派生类)来引用。,26,实现继承机制的原理,27,父类、子类、超类父类:一个类的上层是父类。子类:一个类的下层是子类。超类:若 C2 是 C1 的子类,C3 是 C2 的子类,则 C1 是 C3的超类。,28,单继承与多继承,单继承:一个类只允许有一个父类,即类等级为树形结构。多继承:

11、一个类允许有多个父类继承的传递性:如果类 C 继承类 B,类 B 继承类 A,则类 C 继承类 A。,29,继承性的优点,使得相似的对象可以共享程序代码和数据结构,大大减少程序中的冗余信息。便于软件修改维护。用户在开发新系统时不必从零开始,可以继承原有相似功能或者从类库中选取需要的类,再派生新类。,30,8、多态性(polymorphism),指对象根据所接受的消息而做出动作,同样的消息为不同的对象接受时可导致完全不同的行动。,31,9、重载(overloading),包括:函数重载:在同一作用域,若干个参数特征不同的函数可以使用相同的函数名字;运算符重载:同一个运算符可以施加于不同类型的操作

12、数上面。,32,9.3 面向对象建模,模型:是一组图示符号和组织这些符号的规则,利用它们来定义和描述问题域中的术语和概念。面向对象模型的组成:,描述系统数据结构,描述系统控制结构,描述系统功能,33,一般的建模顺序:,对象模型(object model):定义实体,描述系统数据,定义“对谁做”动态模型(dynamic model):描述系统控制结构,规定“何时做”功能模型(functional model):描述系统功能,指明系统应“做什么”,34,几种著名的面向对象方法,Booch 方法(1991)Coad 一 Yourdon 方法(1991)Rumbaugh 方法(简称 OMT)(obje

13、ct Modeling Technology,1991)Jacobson 方法(简称 OOSE,1992)由 Rumbaugh、Booch、Jacobson 提出的统一建模语言(简称 UML)(Unify Modeling Language,1994),35,UML 统一建模语言,一种可视化建模语言,能描述开发需要的各种视图,并以此为基础组建系统。其发展过程如右图:常用的工具:Rational Rose,36,面向对象的软件开发模型,对象模型:描述系统数据结构的对象模型;动态模型:描述系统控制结构;功能模型:描述系统功能。一个典型的软件系统使用数据结构(对象模型),执行操作(动态模型),并且完

14、成数据值的变化(功能模型)。,37,9.4 对象模型,描述系统内部对象的静态结构,包括对象本身的定义、对象的属性和操作、以及对象与其它对象之间的关系。UML 中,对象模型通常由“类图”组成。,38,9.4.1 类图的基本符号,39,9.4.2 表示关系的符号,类和类之间的联系称为“关系”;关系可以是物理的,也可以是逻辑的。通常分为:关联、范化、依赖和细化四种。,40,1、关联,表示:在类之间画一条连线。角色:关联的端点,说明类在关联中的作用和角色。,41,关联的重数,表示类中有多少个对象与关联类中的一个对象相关。常见的描述有:未标明,默认为 1;0.1;0.*或*;0+或1.;1.5;3,42

15、,限定关联,对关联的含义做某种约束。通常用在一对多或多对多的关联关系中,把模型中的重数从一对多(或多对多)变成一对一(或多对一),文件在目录内是唯一的,43,关联的属性,进一步说明对象间关联的性质,可引入一个关联类来记录这些附加信息。关联类通过一条虚线与关联连接。,44,45,类图,46,2、聚合,一种“整体与成员”的关系。表示整体类的那一端增加一个菱形框。包括共享聚合和组合聚合。如:,47,48,4、依赖和细化,依赖:一个模型元素是独立的,另一个依赖于这个独立的模型元素,若独立元素改变,将影响此元素。如成绩依赖课程:,49,细化:同一事物在不同抽象层次上描述时,这些描述之间具有细化关系。,B

16、在A的基础上更详细的描述,50,9.5 动态模型,状态图描述对象可能的状态及其转换,关心对象在某过程中的经历。生命周期中的阶段也就是对象的状态。一个触发行为称为一个事件.状态有持续性,它占用一段时间间隔。事件表示时刻,状态代表时间间隔。通过状态图来描绘对象的状态、触发状态转换的事件以及对象的行为。,51,建模实例:描述客房状态的状态图,52,9.6 功能模型,功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。UML提供的用例图也是进行需求分析和建立功能模型的强有力工具。在UML中把用用例图建立起来的系统模型称为用例模型。用例模型描述的是外

17、部行为者(actor)所理解的系统功能。是其他视图的核心和基础。,53,图9.16自动售货机系统用例图,方框代表系统,椭圆代表用例,行为者,关系,54,建模实例:某金融贸易系统用例图(UML),55,建模实例:用例图举例(UML),56,用例之间的关系,UML用例主要有扩展和使用两种关系,它们是泛化关系的两种不同形式。(1)扩展关系向一个用例中添加一些动作后构成另一个用例,这两个用例之间的关系就是扩展。,57,58,9.7 三种模型之间的关系,对象模型 定义了做事情的实体,描述了动态模型、功能模型所操作的数据结构。对象模型中的操作对应于动态模型中事件和功能模型中的函数。动态模型描述了对象的控制结构,它明确规定了什么时候(即在何种状态下接受了什么事件触发)做;。功能模型 指明了系统应该”做什么”,由数据流图和用例图组成,描述了对象模型中操作的含义、动态模型中动作的意义以及对象模型中约束的意义。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号