软件工程导论(第9章)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程导论(第9章)课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 导论 课件
- 资源描述:
-
1、第第9章:面向对象方法学引论章:面向对象方法学引论9.1 面向对象方法学概述面向对象方法学概述9.1.1 面向对象方法学的要点面向对象方法学的要点 面向对象方法学的基本原则:尽可能模拟人类面向对象方法学的基本原则:尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。接近人类认识世界解决问题的方法与过程。客观世界中的实体客观世界中的实体问题域中的对象;问题域中的对象;计算机中的实体计算机中的实体解空间对象;解空间对象;解空间对象取决于程序设计语言:解空间对象取决于程序设计语言:汇编语言的对象:存储单元;汇编语
2、言的对象:存储单元;面向过程的高级语言的对象:变量、数组、记面向过程的高级语言的对象:变量、数组、记录、文件等;录、文件等;面向对象的高级语言的对象:除上述元素外,面向对象的高级语言的对象:除上述元素外,还包括窗体、菜单、按钮、等等。还包括窗体、菜单、按钮、等等。与传统方法不同,面向对象方法以数与传统方法不同,面向对象方法以数据为主线,将数据和操作方法封装在对象据为主线,将数据和操作方法封装在对象中,通过消息请求对象主动执行它的内部中,通过消息请求对象主动执行它的内部操作,改变其内部私有数据。操作,改变其内部私有数据。面向对象方法具有四个要点:面向对象方法具有四个要点:A认为客观世界是由对象组
3、成;认为客观世界是由对象组成;B把所有对象都划分成各种对象类(把所有对象都划分成各种对象类(Class););C把若干对象类组成一个层次结构的系统(类等把若干对象类组成一个层次结构的系统(类等级);级);D对象彼此间仅通过传递消息互相联系。对象彼此间仅通过传递消息互相联系。OO=Objects+Class+Inheritance+Communication with message 9.1.2 面向对象方法的优点面向对象方法的优点 1与人们习惯的思维方法一致;与人们习惯的思维方法一致;2稳定性好;稳定性好;3可重用性好;可重用性好;4较易开发大型软件产品;较易开发大型软件产品;5.可维护性好。
4、可维护性好。9.1.3 喷泉模型喷泉模型9.2 面向对象的概念面向对象的概念9.2.1 对象对象 1、对象的形象表示、对象的形象表示 状态状态S操作操作1操作操作2操作操作3界面界面操作操作1、2、3的实现的实现图图9.2 对象的形象表示对象的形象表示1)定义)定义1:对象是具有相同状态的一组操作的集:对象是具有相同状态的一组操作的集合。合。2)定义)定义2:对象是对属性值和操作的封装。:对象是对属性值和操作的封装。3)定义)定义3:对象:对象:=其中,其中,ID是对象的名字;是对象的名字;MS是对象中的操作集合;是对象中的操作集合;DS是对象的数据集合;是对象的数据集合;MI是对象受理的消是
5、对象受理的消息名集合(即对外接口)。息名集合(即对外接口)。2、对象的定义、对象的定义状态状态S操作:操作:f1,f2,fn转换:转换:g1,g2,gn图图9.3 用自动机模拟对象用自动机模拟对象转换:新状态转换:新状态S=gi(X,S)输出输出 fi(X,S)输入输入fi,X3、对象的特点、对象的特点 1)以数据为中心;)以数据为中心;2)对象是主动的;)对象是主动的;3)实现了数据封装;)实现了数据封装;4)本质上具有并行性;)本质上具有并行性;5)模块独立性好。)模块独立性好。9.2.2 其他概念其他概念1、类(、类(Class)类就是对具有相同数据和相同操作的一组相类就是对具有相同数据
6、和相同操作的一组相似对象的定义。似对象的定义。如:如:Circle类具有相同的数据(圆心坐标、半类具有相同的数据(圆心坐标、半径、颜色)和相同的操作(显示自己、放大缩径、颜色)和相同的操作(显示自己、放大缩小半径、在屏幕上移动位置)。小半径、在屏幕上移动位置)。又如:下面又如:下面C+语言定义的语言定义的Queue类,可用于类,可用于实现一个队列(即先进先出的表):实现一个队列(即先进先出的表):Class Queue int q 100;int sloc,rloc;public:void init();/成员函数成员函数 void qput(int i);int qget();类有私有变量类
7、有私有变量(Private)和公有变量和公有变量(Public)。缺省时,都属于私有的,只能由类内部其他成缺省时,都属于私有的,只能由类内部其他成员来访问,不能由程序的其他部分来访问。员来访问,不能由程序的其他部分来访问。这是一种实现封装的方法。这是一种实现封装的方法。实例就是由某个特定的类所描述的一个具实例就是由某个特定的类所描述的一个具体的对象。体的对象。如:如:Circle a;/声明声明Circle类实例类实例a Queue Q1,Q2;/声明声明Queue类实例类实例Q1和和Q2 2、实例实例(Instance)消息就是用来请求对象执行某个处理或回答消息就是用来请求对象执行某个处理或
8、回答某些信息的要求。某些信息的要求。消息既可以是数据流,也可以是控制流。一消息既可以是数据流,也可以是控制流。一条消息可以发送给不同的对象,对消息的解释条消息可以发送给不同的对象,对消息的解释完全由接收信息的对象来完成,不同的对象对完全由接收信息的对象来完成,不同的对象对相同形式的消息可以有不同的解释。相同形式的消息可以有不同的解释。3、消息消息(Message)与传统程序的与传统程序的“调用调用/返回返回”所不同的是,所不同的是,对于传来的消息,对象可以返回相应的回答对于传来的消息,对象可以返回相应的回答信息,也可以不返回。信息,也可以不返回。一个消息由三个部分组成:一个消息由三个部分组成:
9、1)接收信息的对象;)接收信息的对象;2)信息选择符(即消息名);)信息选择符(即消息名);3)零个或多个变元(参数)。)零个或多个变元(参数)。如:如:MyCircle.Show(GREEN);4、方法(、方法(Method)方法,是对象所能执行的操作。方法,是对象所能执行的操作。C+中把方法称为成员函数,如中把方法称为成员函数,如Circle类中类中定义的成员函数:定义的成员函数:Show(int color)5、属性(、属性(Attribute)属性,是类中定义的数据。属性,是类中定义的数据。C+中把属性称为数据成员。中把属性称为数据成员。6、封装(、封装(encapsulation)封
10、装就是信息隐藏,通过封装对外界隐藏了封装就是信息隐藏,通过封装对外界隐藏了对象的实现细节。对象的实现细节。7、继承(、继承(Inheritance)继承,是指能够直接获得已有的性质和特征,继承,是指能够直接获得已有的性质和特征,而不必重复定义它们。而不必重复定义它们。A的操作的操作A的变量的变量类类AA的实例变量的实例变量从从A的继承特性的继承特性B的操作的操作B的变量的变量类类B继承来的继承来的A的实例变量的实例变量B的实例变量的实例变量类类AA的实例的实例a1B的实例的实例b1类类B:A的子类的子类图图9.4 实现继承机制的原理实现继承机制的原理8、多态性(、多态性(Polymorphis
11、m)多态性,指子类对象可以象父类对象那样使用,多态性,指子类对象可以象父类对象那样使用,同样的消息既可以发送给父类对象,也可以发送给同样的消息既可以发送给父类对象,也可以发送给子类对象。子类对象。即不同等级的类,可以公用一个方法的名字。即不同等级的类,可以公用一个方法的名字。C+中,多态性是通过虚函数来实现的。在不同中,多态性是通过虚函数来实现的。在不同层次的类中,虚函数实现算法不同,在运行时根据层次的类中,虚函数实现算法不同,在运行时根据接收消息的对象所属于的类来决定执行虚函数的版接收消息的对象所属于的类来决定执行虚函数的版本,称为动态联编。本,称为动态联编。9、重载(、重载(Overloa
12、ding)有两种重载:有两种重载:1)函数重载)函数重载 指在同一作用域内的若干个参数特征不同的函指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字。数可以使用相同的函数名字。如:如:Show(int a,int b)Show(int x)Show(int x,int y,int z)C+语言中函数重载是通过静态联编实现的。语言中函数重载是通过静态联编实现的。即编译时根据函数变元的个数和类型,决定函数即编译时根据函数变元的个数和类型,决定函数版本。版本。2)运算符重载)运算符重载 指同一运算符可以施加于不同类型的操作数指同一运算符可以施加于不同类型的操作数上面。当被操作数类型不同
13、时,运算符的含义上面。当被操作数类型不同时,运算符的含义是不同的。是不同的。编译时根据被操作数的类型,决定使用算符编译时根据被操作数的类型,决定使用算符的哪种语义。的哪种语义。另外,在实现一个类成员函数时,必须通过用类名另外,在实现一个类成员函数时,必须通过用类名限定函数名来告诉编译器这个函数属于哪个类。限定函数名来告诉编译器这个函数属于哪个类。如,编写如,编写qput()函数:函数:Void Queue:qput(int i)if(sloc=100)cout “Queue if full”;return;sloc+;q sloc=i;从程序中调用一个类的成员函数,用对象和点从程序中调用一个类
14、的成员函数,用对象和点运算符。如:运算符。如:Queue ob1,ob2;ob1.init();/是对对象是对对象ob1的初始化函数的初始化函数init()的调用的调用 ob1,ob2之间的唯一关系是它们是同一类对象。之间的唯一关系是它们是同一类对象。ob1的初始化不影响的初始化不影响ob2。用面向对象方法开发软件,通常需要建立三用面向对象方法开发软件,通常需要建立三种形式的模型,它们分别是:种形式的模型,它们分别是:(1)对象模型:描述系统的数据结构;)对象模型:描述系统的数据结构;(2)动态模型:描述系统的控制结构;)动态模型:描述系统的控制结构;(3)功能模型:描述系统的功能。)功能模型
15、:描述系统的功能。3种模型必不可少,其重要程度不同,对象模型是最种模型必不可少,其重要程度不同,对象模型是最基本、最重要的。基本、最重要的。9.3 面向对象建模面向对象建模UML(Unified Modeling Language)UML是面向对象的分析与设计是面向对象的分析与设计(OOAD)方法方法发展的产物。发展的产物。公认的面向对象建模语言出现于公认的面向对象建模语言出现于70年代中期。年代中期。90年代中,一批新方法出现了,其中最引人注年代中,一批新方法出现了,其中最引人注目的是目的是Booch 1993、OOSE和和OMT-2等。等。1.标准建模语言标准建模语言UML的出现的出现 众
16、多的建模语言各有优点,大多类同,但仍存众多的建模语言各有优点,大多类同,但仍存在某些细微的差别,妨碍了用户之间的交流。在某些细微的差别,妨碍了用户之间的交流。统一建模语言在这样的背景下产生。统一建模语言在这样的背景下产生。1995年年10月:第一个公开版本月:第一个公开版本UM 0.8(Unified Method)。)。1996年年6月:月:UM改名为改名为UML(Unified Modeling Language),发布,发布 UML 0.9。1996年底:年底:UML占面向对象技术市场的占面向对象技术市场的85,成为可视化建模语言事实上的工业标准。成为可视化建模语言事实上的工业标准。现最
17、新版本:现最新版本:UML2.0 UML是标准的建模语言,而不是标准的是标准的建模语言,而不是标准的开发过程。开发过程。在不同组织和不同应用领域,在不同组织和不同应用领域,UML应用应用需采取不同的开发过程。需采取不同的开发过程。1998年:年:RUP(Rational Unified Process)是一种典型的建模过程。是一种典型的建模过程。2.标准建模语言标准建模语言UML的内容的内容UML的定义包括的定义包括UML语义语义和和UML表示法表示法两部分。两部分。UML的重要内容可以由五类图(的重要内容可以由五类图(9种图形)来定义:种图形)来定义:1)用例图)用例图:从用户角度描述系统功
展开阅读全文