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





《软件工程第七章面向对象方法学课件.ppt》由会员分享,可在线阅读,更多相关《软件工程第七章面向对象方法学课件.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程第七章面向对象方法学第1页,此课件共77页哦第七章第七章 面向对象方法学面向对象方法学l7.1 传统方法学的缺点传统方法学的缺点l7.2 面向对象的基本概念面向对象的基本概念l7.3 对象模型对象模型l7.4 动态模型动态模型l7.5 功能模型功能模型 第2页,此课件共77页哦7.1 传统方法学的缺点传统方法学的缺点结构化及其他方法学的本质,是在具体的软件开发工作开始之前,通过需求分析预先定义软件需求。结构化及其他方法学部分地缓解了软件危机,对软件开发工程化起了重要的促进作用。第3页,此课件共77页哦结构化及其他方法学并不能完全消除软件危机。结构化及其他方法学仍然有许多不足之处。对某些
2、类型的软件开发,这种方法学比较适用。对另一些类型的软件则可能完全不适用。第4页,此课件共77页哦7.1.1 问题的表现问题的表现1.生产效率低率生命周期方法学中强调采用先进的结构分析、设计、编程技术和软件工具的技术方法不能满足软件的需要量急剧增长。2.不能满足用户需要第5页,此课件共77页哦3.软件复用程度很低结构分析、结构设计和结构程序设计技术开发软件时,几乎每一次开发一个新系统时都要针对这个具体的系统做大量重复繁琐的劳动。4.软件仍然很难维护实践的经验告诉我们,即使是用生命周期方法学开发出的软件,维护起来仍然相当困难,软件维护成本仍然很高。第6页,此课件共77页哦7.1.2 问题的原因问题
3、的原因1.结构化技术本身的问题2.预先定义的需求可能是过时3.语言鸿沟4.系统需求的模糊性第7页,此课件共77页哦7.2 面向对象的基本概念面向对象的基本概念第8页,此课件共77页哦7.2.1 对象(对象(object)l对象对象是实现世界中一个实际存在的事物,它可以是有形的(比如一辆汽车),也可以是无形的(比如一项计划)。第9页,此课件共77页哦对象的定义:对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。第10页,此课件共77页哦对象有如下一些基本特点:1.以数据为中心。2.对象是主动的。3.实现
4、了数据封装。4.本质上具有并行性。5.模块独立性好。第11页,此课件共77页哦7.2.2 类(类(class)类的定义类的定义:类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。第12页,此课件共77页哦图图7.2 类与对象的关系类与对象的关系类与对象的关系如同一个模具与用这个模具铸造出来的铸件之间的关系。他们的关系可以用图7.2表示。第13页,此课件共77页哦7.2.3 继承(继承(inheritance)继承是面向对象中的重要概念,在软件实现中的重要手段。并且是面向对象技术可提高软件开发效率的重要原因之一。特殊类的对象拥有
5、其一般类的全部属性与服务,称作特殊类对一般类的继承继承。第14页,此课件共77页哦一个特殊类既有自己新定义的属性和服务,又有从它的一般类中继承下来的属性与服务。继承的实现是通过面向对象系统的继承机制来保证的。继承关系具有传递性。第15页,此课件共77页哦一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这种继承模式叫作多继承。第16页,此课件共77页哦7.2.4封装(封装(encapsulation)封装就是把对象的属性服务结合成为一个独立的系统单位,并尽可能隐蔽对象的内部细节。封装是一种信息隐蔽技术。封装是面向对象方法的一个重要原则。它有两个涵义:p 把对象的全部属性和全部服
6、务结合在一起,形成一个不可分割的独立单位。p 尽可能隐蔽对象的内部细节,只保留有限的对外接口使之与外部发生联系。第17页,此课件共77页哦封装是一种机制,封装的信息隐蔽作用反映了事物的相对独立性。封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效地避免了外部错误对它的“交叉感染”,使软件错误能够局部化。第18页,此课件共77页哦封装是面向对象方法的一个原则,也是面向对象技术必须提供的一种机制。例如在面向对象的语言中,要求把属性和服务结合起来定义成一个程序单位,并通过编译系统保证对象的外部不能直接存取对象的属性或调用它的内部服务。这种机制就叫作封装机制。
7、第19页,此课件共77页哦强调严格的封装,则对象的任何属性都不允许外部直接存取,因此就要增加许多没有其它服务意义,而仅负责读或写的服务。这为编程工作增加了负担。所以我们在用面向对象进行编写程序时,总会觉得程序显得臃肿。为了避免这一点,语言往往采取一种比较现实的灵活态度允许对象有不同程度的可见性。第20页,此课件共77页哦7.2.5消息(消息(message)对象是一个独立的单位,它通过对外提供的服务在系统中发挥作用。而只有当系统中的其它对象向它请求某个服务时,它就响应这个请求,才能体现其作用。面向对象方法中将这种向对象发出的服务请求称作消息消息。第21页,此课件共77页哦面向对象方法的另一个原
8、则是通过消息进行对象之间的通信。它与封装的的原则有密切的关系。封装使对象成为互不干扰的独立单位;而消息通信则为它们提供合法动态联系途径,使它们互相配合构成一个系统。第22页,此课件共77页哦面向对象方法中对消息的定义定义:消息就是向对象发出的服务请求,它应该含有下述信息:提供服务的对象标识、服务标识、输入信息和回答信息。第23页,此课件共77页哦7.2.6结构与连接结构与连接为了完成某种功能,需要用消息将独立的对象联系起来。在构造系统中,对象间关系不仅仅是用消息的连接方式。为了使系统能够有效地映射问题域,系统开发者需认识并描述对象之间的的分类关系、对象之间的组成关系、对象属性之间的静态联系和对
9、象行为之间的动态联系。第24页,此课件共77页哦面向对象方法运用一般-特殊结构、整体-部分结构、实例连接和消息连接描述对象之间的关系。第25页,此课件共77页哦1.一般一般-特殊结构特殊结构一般-特殊结构是由一组具有一般-特殊关系的类所组成的结构。它是一个以类为结合,以继承关系为边的连通有向图。如果是由一些存在单继承关系的类形成的结构又称作层次结构或树型结构;如果由一些存在多继承关系的类形成的结构又称作网格结构。第26页,此课件共77页哦图图7.3 一般一般-特殊结构特殊结构第27页,此课件共77页哦2.整体整体-部分结构部分结构当一个对象是另一个(组)对象的组成或部分,则称他们有整体-部分关
10、系。整体-部分结构由一组彼此间存在着这种组成关系的对象构成。它描述对象之间的组成关系。即:如图7-4所示。第28页,此课件共77页哦图图7-4整体整体-部分结构部分结构第29页,此课件共77页哦整体-部分结构有两种实现方式。l用部分对象的类作为一种广义的数据类型来定义整体对象的一个属性,构成一个嵌套对象。l独立地定义和创建整体对象和部分对象,并在整体对象中设置一个属性,它的值是部分对象的对象标识,或者是一个指向部分对象的指针。第30页,此课件共77页哦3.实例连接实例连接实例连接反映对象与对象之间的静态联系。例如教师和学生之间的关系。这种双边关系在实现中可以通过对象的属性表达出来。所以这种关系
11、称作实例连接。第31页,此课件共77页哦4.消息连接消息连接描述对象之间的动态联系是用消息连接。若一个对象在执行自己的服务时,需要请求另一个对象为它完成某个服务。那么,这两个对象之间存在着消息连接。消息连接是有向的,从消息发送者指向消息接收者。第32页,此课件共77页哦7.2.7多态性(多态性(Polymorphism)多态性是指允许不同类的对象对同一消息作出响应。多态性引用具有静态类型和动态类型。动态类型可以在程序执行期间在实例之间进行变化。静态类型是在程序上下文中由实体说明决定的。第33页,此课件共77页哦对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或
12、表现出不同的行为。这使得同一个属性或服务名在一般类及其各个特殊类中具有不同的语义。第34页,此课件共77页哦如果一种面向对象程序设计语言能支持对象的多态性,则可为开发者带来不少方便。多态性是一种比较高级的功能。多态性的实现需要面向对象程序设计语言提供相应的支持。第35页,此课件共77页哦支持多态性的实现的语言应具备的功能是:l重载在特殊中对继承来的属性或服务进行重新定义。l动态绑定在运行时根据对象接收的消息动态地确定要连接哪一段服务代码。l类属(generic)服务参量的类型可以是参数化的。第36页,此课件共77页哦7.2.8 其他概念其他概念1.方法(Method)方法,就是对象所能执行的操
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 第七 面向 对象 方法 课件

限制150内