软件工程导论课件第9章-面向对象方法学引论分析优秀PPT.ppt
《软件工程导论课件第9章-面向对象方法学引论分析优秀PPT.ppt》由会员分享,可在线阅读,更多相关《软件工程导论课件第9章-面向对象方法学引论分析优秀PPT.ppt(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 第9章 面向对象方法学引论 传统的软件工程方法传统的软件工程方法曾经给软件产业带来曾经给软件产业带来了巨大的进步,部分缓解了软件危机,这种了巨大的进步,部分缓解了软件危机,这种方法学方法学开发中、小型项目开发中、小型项目都获得了成功,但都获得了成功,但这种方法学应用于这种方法学应用于大型软件产品开发时大型软件产品开发时,似,似乎乎很少取得成功很少取得成功。目前,面向对象的方法学已经成为人们目前,面向对象的方法学已经成为人们开开发软件时的首选范型发软件时的首选范型,面向对象技术面向对象技术已经成已经成为为当前最好的开发技术当前最好的开发技术。2 第9章 面向对象方法学引论9.1 面向对象方法
2、学概述面向对象方法学概述9.2 面向对象的概念面向对象的概念9.3 面向对象建模面向对象建模9.4 对象模型对象模型9.5 动态模型动态模型9.6 功能模型功能模型9.7 3种模型之间的关系种模型之间的关系3 9.1面向对象方法学概述面向对象方法学概述 9.1.1 传统方法的要点传统方法的要点n面向对象方法学面向对象方法学的基本原则:尽可能的基本原则:尽可能模拟人类习惯的模拟人类习惯的思维方式思维方式,使开发软件的,使开发软件的方法与过程方法与过程尽可能尽可能接近人类接近人类认识世界认识世界解决问题的解决问题的方法与过程方法与过程。n客观世界中的实体客观世界中的实体问题域问题域中的对象;中的对
3、象;客观世界的问题都是由客观世界中的客观世界的问题都是由客观世界中的实体及实体相互间实体及实体相互间的关系的关系构成的。把构成的。把客观世界中的实体客观世界中的实体抽象为抽象为问题域中的问题域中的对象对象(object)。对象是不固定的。一个雇员可以作为一。对象是不固定的。一个雇员可以作为一个对象,一家公司也可以作为一个对象,到底个对象,一家公司也可以作为一个对象,到底应该把什应该把什么抽象为对象么抽象为对象,由所要,由所要解决的问题决定解决的问题决定。4 n计算机中的实体计算机中的实体解空间解空间对象对象解空间对象取决于程序设计语言:解空间对象取决于程序设计语言:解空间对象取决于程序设计语言
4、:解空间对象取决于程序设计语言:uu 汇编语言的对象:存储单元;汇编语言的对象:存储单元;汇编语言的对象:存储单元;汇编语言的对象:存储单元;uu 面向过程的高级语言的对象:变量、数组、记录、文面向过程的高级语言的对象:变量、数组、记录、文面向过程的高级语言的对象:变量、数组、记录、文面向过程的高级语言的对象:变量、数组、记录、文件;件;件;件;uu 面向对象的高级语言的对象:除上述元素外,还包括面向对象的高级语言的对象:除上述元素外,还包括面向对象的高级语言的对象:除上述元素外,还包括面向对象的高级语言的对象:除上述元素外,还包括窗体窗体窗体窗体、菜单菜单菜单菜单、按钮按钮按钮按钮、等等。、
5、等等。、等等。、等等。n n 与与传传统统方方法法不不同同,面面向向对对象象方方法法以以数数据据为为主主线线,将将数数据据和和操操作作方方法法封封装装在在对对象象中中,通通过过消消息息请请求求对对象象主主动执行动执行它的它的内部操作内部操作,改变其,改变其内部私有数据内部私有数据。5 n面向对象方法具有四个要点:面向对象方法具有四个要点:A、面向对象的面向对象的软件系统软件系统是由对象组成是由对象组成的,软件中的任何元的,软件中的任何元素都是对象,复杂的软件对象由比较简单的对象组合而成。素都是对象,复杂的软件对象由比较简单的对象组合而成。B、把所有对象都划分成把所有对象都划分成各种对象类各种对
6、象类(简称为类简称为类,class),每,每个对象类都定义了个对象类都定义了一组数据和一组方法一组数据和一组方法。数据用于表示对象。数据用于表示对象的静态属性,是对象的状态信息。的静态属性,是对象的状态信息。C、按照按照子类子类(或称为派生类或称为派生类)与与父类父类(或称为基类或称为基类)的关系的关系,把若干个对象类组成一个把若干个对象类组成一个层次结构的系统层次结构的系统(也称为类等级也称为类等级)。D、对象彼此之间仅能通过传递消息互相联系。、对象彼此之间仅能通过传递消息互相联系。面向对象(面向对象(oo)=对象对象(objects)+类类 (classes)+继承继承(inheritan
7、ce)+通信通信(communication with messages)6 9.1.2 面向对象方法的优点面向对象方法的优点 1与人们习惯的思维方法一致;与人们习惯的思维方法一致;2稳定性好;稳定性好;3可重用性好;可重用性好;4较易开发大型软件产品;较易开发大型软件产品;5.可维护性好。可维护性好。7 9.2 面向对象的概念面向对象的概念9.2.1 对象对象n对象(对象(object)q在现实世界中有意义的、与所要解决的问题有在现实世界中有意义的、与所要解决的问题有关系的关系的任何事物任何事物都可以作为对象,包括具体的都可以作为对象,包括具体的物理实体的抽象物理实体的抽象、人为的概念人为的
8、概念、任何、任何有明确边有明确边界和意义的东西界和意义的东西。q如:一名职工、一本图书、贷款、生产计划、如:一名职工、一本图书、贷款、生产计划、一场演出等。一场演出等。q对象既有对象既有静态的属性静态的属性,又有,又有动态的行为动态的行为(操作)。(操作)。8 9.2 面向对象的概念面向对象的概念9.2.1 对象对象n从软件开发的角度定义对象从软件开发的角度定义对象q系统中用来描述客观事物的实体,是系统中用来描述客观事物的实体,是构成系统构成系统的基本单位的基本单位。q由一组由一组属性属性和和相关操作相关操作组成的服务组成。组成的服务组成。属性:用来描述对象静态特征的一个数据项;属性:用来描述
9、对象静态特征的一个数据项;操作:用来描述对象动态特征(行为)的一个操作序操作:用来描述对象动态特征(行为)的一个操作序列。列。q对象的对象的属性属性和和所有操作所有操作封装封装在一起,构成一个在一起,构成一个统一体。统一体。q属性一般只能通过属性一般只能通过执行对象执行对象的的操作操作来改变来改变。9 9.2 面向对象的概念面向对象的概念9.2.1 对象对象n表示内部状态的数据、实现各操作的代码及局部数表示内部状态的数据、实现各操作的代码及局部数据被隐藏,据被隐藏,无法无法从外面看见、访问或修改;从外面看见、访问或修改;n使用对象的时候,只能通过使用对象的时候,只能通过对象与外界的界面对象与外
10、界的界面来操来操作;作;n操作时,只需知道该操作时,只需知道该操作的名字操作的名字和和所需要的参数所需要的参数,不需要知道这些不需要知道这些操作是如何实现操作是如何实现的;的;n简单、方便,安全性和可靠性高简单、方便,安全性和可靠性高。10 1 对象的形象表示对象的形象表示n 一个对象很像一台录音机。当使用一台录音机的时候,总是一个对象很像一台录音机。当使用一台录音机的时候,总是通过按通过按键键来操作;来操作;n按下按下“Play(放音放音)”键,则录音带正向转动,通过喇叭放出录音带中键,则录音带正向转动,通过喇叭放出录音带中记录的歌曲或其他声音;记录的歌曲或其他声音;n按下按下“Record
11、(录音录音)”键键,则录音带正向转动,在录音带中录下新的,则录音带正向转动,在录音带中录下新的音响;音响;n完成放音、录音的各种功能的电子线路完成放音、录音的各种功能的电子线路被装在录音机的外壳中被装在录音机的外壳中,人们,人们无须了解这些电子线路的无须了解这些电子线路的工作原理工作原理就可以随心所欲地使用录音机。就可以随心所欲地使用录音机。状态状态S操作操作1操作操作2操作操作3界面界面操作操作1、2、3的实现的实现图图9.1对象的形象表示对象的形象表示11 2、对象的定义、对象的定义1)定义)定义1:对象是:对象是具有相同状态具有相同状态的的一组操作一组操作的的集合集合。这这个个定定义义主
12、主要要是是从从面面向向对对象象程程序序设设计计的的角角度度看看“对对象象”。2)定义)定义2:对象是对:对象是对属性值属性值和和操作操作的的封装封装。这个定义着重从这个定义着重从信息模拟的角度信息模拟的角度看待看待“对象对象”。3)定定义义3:对对象象:=其其中中,ID是是对对象象的的名名字字;MS是是对对象象中中的的操操作作集集合合;DS是是对对象象的的数数据据集集合合;MI是是对对象象受受理理的的消消息息名名集集合合(即即对对外外接口)。接口)。这个定义是这个定义是一个形式化的定义一个形式化的定义。12 2、对象的定义、对象的定义n对对象象是是封封装装了了数数据据结结构构及及可可以以施施加
13、加在在这这些些数数据据结结构构上上的的操操作作的的封封装装体体,这这个个封封装装体体有有可可以以惟惟一一地地标标识识它它的的名名字字,而而且且向向外外界界提提供供一一组组服服务务(即即公公有有的的操操作作)。n对对象象中中的的数数据据表表示示对对象象的的状状态态,一一个个对对象象的的状状态态只只能由该能由该对象的操作来改变对象的操作来改变。n每每当当需需要要改改变变对对象象的的状状态态时时,只只能能由由其其他他对对象象向向该该对象发送消息对象发送消息。n对对象象响响应应消消息息时时,按按照照消消息息模模式式找找出出与与之之匹匹配配的的方方法法,并,并执行该方法执行该方法。13 2、对象的定义、
14、对象的定义状态状态S操作:操作:f1,f2,fn转转 换换:g1,g2,gn图图9.2 用自动机模拟对象用自动机模拟对象转换:新状态转换:新状态S=gi(X,S)输出输出 fi(X,S)输入输入fi,X 从从动态角度动态角度或对象的或对象的实现机制实现机制来看,对象是一台来看,对象是一台自动机自动机来模来模拟拟:具有具有内部状态内部状态S,操作操作fi(i=1,2,n),且与操作,且与操作fi对应的对应的状态状态转换函数为转换函数为gi(I=1,2,n)的一个对象。的一个对象。14 3、对象的特点、对象的特点 1)以)以数据为中心数据为中心;2)对象是)对象是主动主动的;的;3)实现了)实现了
15、数据封装数据封装;4)本质上)本质上具有并行性具有并行性;5)模块)模块独立性好独立性好。15 9.2.2 其他概念其他概念1、类(、类(Class)类类就就是是对对具具有有相相同同数数据据和和相相同同操操作作的的一一组组相相似似对对象象的的定定义义。“类类”好好比比是是一一个个对对象象模模板板,用用它它可以产生多个对象。可以产生多个对象。右图是右图是3 3个个圆心位置圆心位置、半径大小半径大小和和颜色均不相同的圆颜色均不相同的圆,是,是3 3个不同的个不同的对象。对象。但是,它们都有但是,它们都有相同的数据相同的数据(圆圆心坐标、半径、颜色心坐标、半径、颜色)和和相同的操作相同的操作。因此,
16、它们是同一类事物,可以因此,它们是同一类事物,可以用用“CircleCircle类类”来定义。来定义。16 实实例例就就是是由由某某个个特特定定的的类类所所描描述述的的一一个个具具体体的的对对象象。q对象:对象:可以是一个具体的对象,也可以泛指一可以是一个具体的对象,也可以泛指一般的对象。般的对象。q实例:实例:必然是指一个在客观世界中必然是指一个在客观世界中存在的具体存在的具体对象对象。如:如:Circle a;/声明声明Circle类实例类实例a Queue Q1,Q2;/声明声明Queue类实例类实例Q1和和Q2 2、实例实例(Instance)17 3、消息消息(Message)n消息
17、消息(message)q对象之间对象之间通信的手段通信的手段,是一个对象要求另一对,是一个对象要求另一对象执行类中定义的象执行类中定义的某个操作的规格说明某个操作的规格说明。q通常一个消息由通常一个消息由三部分三部分组成:组成:n接收消息的对象接收消息的对象n消息标识符(即消息名)消息标识符(即消息名)n零个或多个变元零个或多个变元q例如:例如:MyCircle.Show(Green)qMyCircle是接收消息的对象的名字,是接收消息的对象的名字,Show 是消息是消息名,名,Green是消息的变元是消息的变元。18 4、方法(、方法(Method)方方法法就就是是对对象象所所能能执执行行的
18、的操操作作,也也就就是是类类中中所所定义的服务定义的服务。方方法法描描述述了了对对象象执执行行操操作作的的算算法法,响响应应消消息息的的方方法。法。C+中把方法称为成员函数,如中把方法称为成员函数,如Circle类中定义类中定义的成员函数:的成员函数:Show(int color)19 5、属性(、属性(Attribute)属属性性,是是类类中中定定义义的的数数据据。它它是是对对客客观观世世界界实实体体所所具具有有的性质的性质的的抽象抽象。类的类的每个实例每个实例都有自己都有自己特有的属性值特有的属性值。CircleCircle类中定义的代表类中定义的代表圆心坐标圆心坐标、半径半径、颜色颜色等
19、的数据等的数据成员,就是成员,就是圆的属性圆的属性。学生类学生类属性有属性有姓名姓名、年龄年龄、性别性别等。等。不同对象的不同对象的同一属性同一属性可以具有可以具有相同相同或或不同不同的属性值。的属性值。如:张三的年龄为如:张三的年龄为19 19,李四,李四 的年龄为的年龄为2020。20 6、封装(、封装(encapsulation)封装就是指把对象的封装就是指把对象的数据数据和和实现操作的代码实现操作的代码集集中起来中起来放在放在对象内部对象内部。对象具有封装性的条件如下:对象具有封装性的条件如下:n 有一个有一个清晰的边界清晰的边界。所有。所有私有数据私有数据和和实现操作实现操作的代码都
20、的代码都被封装在被封装在这个边界内这个边界内,从外面,从外面看不见看不见更不能直接访问更不能直接访问。n 有有确定的接口确定的接口(即协议)。这些接口就是对象可以接受(即协议)。这些接口就是对象可以接受的消息,只能通过向对象发送消息来使用它。的消息,只能通过向对象发送消息来使用它。n 受保护的受保护的内部实现内部实现。实现对象功能的细节(私有数据和。实现对象功能的细节(私有数据和代码)不能在定义该对象的类的范围外访问。代码)不能在定义该对象的类的范围外访问。封装封装就是就是信息隐藏信息隐藏,通过封装对外界隐藏对象的实现细节,通过封装对外界隐藏对象的实现细节。21 封装举例封装举例课程(设计)课
21、程名课程号创建日期上课学期学分添加课程()删除课程()修改课程信息()教师(设计)职称教工号姓名性别授课信息:对象集合入校()离校()接受课程()解除课程()增加()删除()修改信息()22 7、继承(、继承(Inheritance)继承,是继承,是子类子类自动地自动地共享基类中共享基类中定义的定义的数据和数据和方法方法的机制。的机制。A的操作的操作A的变量的变量类类AA的实例变量的实例变量从从A的继承特性的继承特性B的操作的操作B的变量的变量类类B继承来的继承来的A的实例变量的实例变量B的实例变量的实例变量类类AA的实例的实例a1B的实例的实例b1类类B:A的子类的子类图图9.4 实现继承机
22、制的原理实现继承机制的原理23 继承举例继承举例24 8、多态性(、多态性(Polymorphism)多多态态性性,指指子子类类对对象象可可以以象象父父类类对对象象那那样样使使用用,同同样样的的消息既可以发送给父类对象,也可以发送给子类对象。消息既可以发送给父类对象,也可以发送给子类对象。即即不不同同等等级级的的类类,可可以以公公用用一一个个方方法法的的名名字字。不不同同层层次次中的每个类却中的每个类却各自按自己的需要来实现这个行为各自按自己的需要来实现这个行为。25 9、重载(、重载(Overloading)有两种重载:有两种重载:1)函数重载函数重载 指指在在同同一一作作用用域域内内的的若
23、若干干个个参参数数特特征征不不同同的的函函数数可可以以使用相同的函数名字使用相同的函数名字。如:如:Show(int a,int b)Show(int x)Show(int x,int y,int z)2)运算符重载运算符重载 指指同同一一运运算算符符可可以以施施加加于于不不同同类类型型的的操操作作数数上上面面。当当被被操操作作数数类类型型不不同同时时,运运算算符符的的含含义义是是不不同的。同的。26 9.3 面向对象建模面向对象建模n模型模型:是一组图示符号和组织这些符号的规则,:是一组图示符号和组织这些符号的规则,利用它们来定义和描述问题域中的术语和概念。利用它们来定义和描述问题域中的术语
24、和概念。n面向对象模型的组成:面向对象模型的组成:描述系统数描述系统数据结构据结构描述系统描述系统控制结构控制结构描述系描述系统功能统功能27 一般的建模顺序一般的建模顺序:n 对象模型对象模型(object model):定义实体,描述系统:定义实体,描述系统数据,定义数据,定义“对谁做对谁做”n 动态模型动态模型(dynamic model):描述系统控制结:描述系统控制结构,规定构,规定“何时做何时做”n 功能模型功能模型(functional model):描述系统功能,:描述系统功能,指明系统应指明系统应“做什么做什么”9.3 面向对象建模面向对象建模28 9.4 对象模型对象模型n
25、描述系统内部对象的描述系统内部对象的静态结构静态结构,包括对象本身的,包括对象本身的定义、对象的属性和操作、以及对象与其它对象定义、对象的属性和操作、以及对象与其它对象之间的关系。之间的关系。n对象模型为建立动态模型和功能模型,提供了实对象模型为建立动态模型和功能模型,提供了实质性的框架。质性的框架。nUML 中,对象模型通常由中,对象模型通常由“类图类图”组成。组成。29 9.4.1 类图的基本符号类图的基本符号p类的命名类的命名q使用使用标准术语标准术语。q使用具有使用具有确切含义的名词确切含义的名词。q必要时用必要时用名词短语作名字名词短语作名字。n类的图形符号为类的图形符号为长方形;长
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 导论 课件 面向 对象 方法 引论 分析 优秀 PPT
限制150内