软件工程第九章面向对象方法学引论.ppt
《软件工程第九章面向对象方法学引论.ppt》由会员分享,可在线阅读,更多相关《软件工程第九章面向对象方法学引论.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件工程中南大学Central South University2023/1/8第九章 面向对象方法学引论2023/1/82本讲内容9.1 面向对象方法学概述9.2 面向对象的概念9.3 面向对象建模9.4 对象模型9.5 动态模型9.6 功能模型9.7 3种模型之间的关系软件工程中南大学Central South University2023/1/89.1 面向对象方法学概述2023/1/849.1 面向对象方法学概述-传统的软件工程方法学应用于大型软件产品的开发时,似乎很少取得成功。-源于20世纪60年代后期出现的面向对象编程语言Simula-67(类和对象的概念),逐步形成了面向对象方法
2、学。到了20世纪90年代,面向对象方法学已经成为人们在开发软件时首选的范型。2023/1/859.1.1 面向对象方法学的要点面向对象方法学的要点2023/1/869.1.1 面向对象方法学的要点n语义断层语义断层 不同的语言不同的语言(/(/对象对象)来表达问题和解来表达问题和解.n客观世界中的实体既具有静态的属性又具有动态的行为。客观世界中的实体既具有静态的属性又具有动态的行为。然而传统语言提供的解空间对象实质上却仅是描述实体然而传统语言提供的解空间对象实质上却仅是描述实体属性的数据,必须在程序中从外部对它施加操作,才能属性的数据,必须在程序中从外部对它施加操作,才能模拟它的行为。模拟它的
3、行为。2023/1/879.1.1 面向对象方法学的要点n对象?(面向对象语言)对象?(面向对象语言)在问题空间问题空间中,对象是 现实世界中存在的实体实体 应用所关心的抽象概念抽象概念、规则规则、事件事件、或者具有明确边界和意 义的具体事物具体事物在解空间解空间(计算机系统计算机系统)中,对象是 问题空间中的对象在计算机系统中的表示 封装封装(encapsulation)了数据和行为的通信单位2023/1/889.1.1 面向对象方法学的要点n与传统方法相反,面向对象方法是一种以数据或信息为与传统方法相反,面向对象方法是一种以数据或信息为主线,把主线,把数据和处理数据和处理相结合的方法。相结
4、合的方法。n面向对象方法把对象作为由数据及可以施加在这些数据面向对象方法把对象作为由数据及可以施加在这些数据上的操作所构成的统一体。上的操作所构成的统一体。n对象与传统的数据有本质区别,它不是被动地等待外界对象与传统的数据有本质区别,它不是被动地等待外界对它施加操作,相反,它是进行处理的主体。对它施加操作,相反,它是进行处理的主体。n面向对象方法是一种新的思维方法,它是把面向对象方法是一种新的思维方法,它是把程序程序看作是看作是相互协作而又彼此独立的对象的集合。相互协作而又彼此独立的对象的集合。n这样就减小了语义断层这样就减小了语义断层:系统中解空间对象可以直接模拟系统中解空间对象可以直接模拟
5、问题空间的对象,解空间与问题空间的结构十分一致。问题空间的对象,解空间与问题空间的结构十分一致。2023/1/899.1.1 面向对象方法学的要点面向对象方法具有下述面向对象方法具有下述4 4个要点:个要点:(1)认为客观世界是由各种认为客观世界是由各种对象对象组成的,任何事物都是对象,复杂的对象可组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。因此,以由比较简单的对象以某种方式组合而成。因此,面向对象的软件系统是面向对象的软件系统是由对象组成的。由对象组成的。(2)类类(class)是对一组对象的抽象,集中了该组对象的共同特性(一组数据是对一组对象的抽象,集中了该
6、组对象的共同特性(一组数据和一组方法)。对象是类的实例。和一组方法)。对象是类的实例。(3)按照子类按照子类(或称为派生类或称为派生类)与父类与父类(或称为基类或称为基类)的关系,把若干个对象类的关系,把若干个对象类组成一个层次结构的系统组成一个层次结构的系统(也称为类等级也称为类等级)。在这种结构中,下层的派生类。在这种结构中,下层的派生类自动自动具有和上层的基类相同的特性,这种现象称为具有和上层的基类相同的特性,这种现象称为继承继承(inheritance)。(4)对象彼此之间对象彼此之间仅仅能通过传递能通过传递消息消息互相联系。一切局部于该对象的私有互相联系。一切局部于该对象的私有信息,
7、都被封装在该对象类的定义中,就好像装在一个不透明的黑盒子中信息,都被封装在该对象类的定义中,就好像装在一个不透明的黑盒子中一样,在外界是看不见的,更不能直接使用,这就是一样,在外界是看不见的,更不能直接使用,这就是“封装性封装性”。2023/1/8109.1.1 面向对象方法学的要点n面向对象的方法学可以用下列方程来概括:面向对象的方法学可以用下列方程来概括:OO=objects+classes+inheritance+communication with messagesn面向对象就是既使用对象又使用类和继承等机制,而且面向对象就是既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息
8、实现彼此通信。对象之间仅能通过传递消息实现彼此通信。n也可以说,只有同时使用对象、类、继承和消息的方法,也可以说,只有同时使用对象、类、继承和消息的方法,才是真正面向对象的方法。才是真正面向对象的方法。9.1.2 面向对象方法学的优点n1 与人类习惯的思维方法一致n2 稳定性好n3 可重用性好n4 较易开发大型软件产品n5 可维护性好2023/1/8119.2 面向对象的概念2023/1/812n对象n类n类间关系n消息与事件n多态性9.2.1 对象2023/1/813n对象在解空间解空间 (计算机系统计算机系统)中,对象的非严格记法:l:=9.2.1 对象2023/1/814n对象的基本特征
9、对象的基本特征每个对象均有自己的惟一标识惟一标识,从而区别于其他对象。对象之间通过消息消息进行通信。对象总是处于一定的状态状态。对象有若干种行为行为。对象的行为分为三类三类:创建新对象、与其他对象通信、改变自身状态。对象的状态只能被自身的行为所改变。对象的状态只能被自身的行为所改变。9.2.1 对象2023/1/815n对象的特点对象的特点以数据为中心。对象是主动的。实现数据的封装。本质上具有并行性。模块独立性好。9.2.2 其他概念2023/1/816n类在问题空间问题空间中n“人以类聚,物以群分人以类聚,物以群分”n类代表着具有类似性质的一组对象n类中的每一个对象即为类的不同实例(inst
10、ance)在解空间解空间 (计算机系统计算机系统)中n类是对一组对象的抽象,集中了该组对象的共同特性。n在构造软件时,类实际上是具有特定功能的模块,其代码由该种所有对象所共享。n类 vs.对象:静静 vs.动动。9.2.2 其他概念2023/1/817l类的两种图形记法:类的两种图形记法:9.2.2 其他概念2023/1/818n对象n状态:张三,30岁,计算机系,讲师,1000元n行为:提职称,调工资n类(教师教师)n属性:姓名,年龄,系别,职称,工资n操作:提职称,调工资n方法(指操作的具体代码实现)n实际上,类是创建对象的模板!类是创建对象的模板!9.2.2 其他概念2023/1/819
11、n类间关系n继承继承(inheritance)n聚合聚合(aggregation)n关联关联(relationship)9.2.2 其他概念2023/1/820n继承的含义继承的含义n继承是一种“求同存异求同存异”的高度抽象方式n相关术语相关术语n超类(super-class)/父类(parent class)/祖先类(ancestor class)n子类(sub-class)/后裔类(descendant class)n一般化(generalization)n具体化(specialization)9.2.2 其他概念2023/1/821l继承的分类继承的分类l单单继承继承l多多继承继承 l多
12、继承使类层次复杂化l多继承容易产生配置控制方面的潜在问题l继承的图形记法9.2.2 其他概念2023/1/822n一般化一般化、具体化具体化、继承继承等术语均是复用复用思想的体现n一般化和具体化是对同一个类间关系同一个类间关系的不同角度审视不同角度审视n父类是子类的一般化(从父类角度出发)n子类是父类的具体化(从子类角度出发)n继承强调一般化/具体化关系中共享属性和操作的机共享属性和操作的机制制9.2.2 其他概念2023/1/823n聚合的含义n聚合表示聚合表示“部分部分整体整体”关系关系n相关术语n组元类组元类(component class)n组合类组合类(assembly class)
13、n注意,组合对象的存在依赖于组元对象!注意,组合对象的存在依赖于组元对象!9.2.2 其他概念2023/1/824l聚合的图形记法9.2.2 其他概念2023/1/825n关联的含义n对象实例之间的物理或概念联结被称为链链n关联关联是对一组语义与结构相似的链的抽象n链是关联的实例n关联 vs.链:类 vs.对象(a a)二元关联二元关联人员公司雇用雇用二元关联的例(人员)张涛(公司)通大雇用雇用链的例子(b b)三元关联)三元关联项目语言人三元关联的例(项目)CAD系统(语言)C+(人)李波链的例子9.2.2 其他概念2023/1/826l聚合聚合 vs.继承继承l聚合更强调对象实例之间的关系
14、,本质上是“与关系与关系”(is part of,ISP)l继承更关注对象类之间的关系,本质上是“或关系或关系”(is a,ISA)l聚合树 vs.继承树l聚合聚合 vs.关联关联l聚合是关联的一种特殊形式l聚合与关联之间的模糊差异无关紧要无关紧要9.2.2 其他概念2023/1/827n消息和事件(消息和事件(message&event)消息是对象之间进行通信的构造构造或结构结构n消息分为请求请求消息和完成完成消息两种(由消息模式消息模式描述)n消息模式:发送对象、接收对象、内容事件指对象之间事件指对象之间一次一次消息的传递消息的传递n多个事件按照时间顺序可构成事件序列消息 vs.事件:静静
15、 vs.动动9.2.2 其他概念2023/1/828n消息与对象消息与对象n一个一个对象能接收不同形式不同内容的多个多个消息。n相同相同形式的消息可以送往不同不同的对象。n对于相同相同形式的消息,不同对象可以有 不同不同的解释,可以作出不同不同的反映。n消息与方法消息与方法n对象接收到有效消息后,总会以某种行为做出适当反映。期间,对象行为复用复用了类操作的代码实现(即类方法)。n在某种程度上,消息与方法可视为同义词。但是,必须牢记:消息与代码无关消息与代码无关,而方法是操作的代码实现。9.2.2 其他概念2023/1/829n多态性(polymorphism)-含义n同一个操作同一个操作可以是
16、多个可以是多个不同不同类的行为。类的行为。n不同对象接收到不同对象接收到同一个消息同一个消息后,可产生完全后,可产生完全不同不同的的反映。反映。n同一个消息同一个消息可调用可调用不同不同的方法。的方法。-意义n允许每个对象以自己最合适的方式去响应共同的消允许每个对象以自己最合适的方式去响应共同的消息,从而增强软件的灵活性和可复用性。息,从而增强软件的灵活性和可复用性。9.2.2 其他概念2023/1/830l多态性的示例多态性的示例9.3 面向对象建模2023/1/831n建立问题模型是人们理解表达问题的方法之一。建立问题模型是人们理解表达问题的方法之一。n模型是对事物作出的一种抽象,是对事物
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 第九 面向 对象 方法 引论
限制150内