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)用例图)用例图:从用户角度描述系统功
18、能,并指出各功能从用户角度描述系统功能,并指出各功能2)静态图)静态图:包括类图、对象图和包图;包括类图、对象图和包图;类图类图2)静态图)静态图:包括类图、对象图和包图;包括类图、对象图和包图;对象图对象图包图包图3)行为图)行为图:描述系统的动态模型;描述系统的动态模型;4)交互图)交互图:描述对象间的交互关系;描述对象间的交互关系;交互图交互图5)实现图)实现图:如配置图,定义系统中软硬件的物理体系结构。如配置图,定义系统中软硬件的物理体系结构。3.标准建模语言标准建模语言UML的应用领域的应用领域 UML适用于软件开发中从需求分析到测试的不适用于软件开发中从需求分析到测试的不同阶段:同
19、阶段:需求获取需求获取:用例图、活动图:用例图、活动图 需求分析需求分析:类图、对象图和包图:类图、对象图和包图 系统分析与设计系统分析与设计:状态图、顺序图、合作图、:状态图、顺序图、合作图、活动图、部件图和配置图。活动图、部件图和配置图。测试测试:单元测试用类图、集成测试用部件图和:单元测试用类图、集成测试用部件图和合作图、确认测试用用例图等。合作图、确认测试用用例图等。UML常用于建立软件系统模型,但同样可常用于建立软件系统模型,但同样可用于描述非软件领域的系统,如:用于描述非软件领域的系统,如:机械系统;机械系统;企业机构或业务过程;企业机构或业务过程;处理复杂数据的信息系统;处理复杂
20、数据的信息系统;具有实时要求的工业系统或工业过程;具有实时要求的工业系统或工业过程;等。等。9.4 对象模型对象模型9.4.1 类图的基本符号类图的基本符号 1.定义类定义类类名类名属性属性服务服务图图9.5 表示类的图形符号表示类的图形符号2.定义属性定义属性 UML描述属性的语法格式:描述属性的语法格式:可见性可见性 属性名:类型名初值属性名:类型名初值性质串性质串 可见性:公有(可见性:公有(public)/+、私有(私有(private)/、保护(保护(protected)/#(没有默认可见性)(没有默认可见性)性质串性质串:可能枚举值或其它性质,如:可能枚举值或其它性质,如只读只读
21、例:例:管理员:管理员:String=“未定未定”类变量实例:类变量实例:货单数:货单数:Integer(类变量在该类所有对象中的属性值相等)(类变量在该类所有对象中的属性值相等)3.定义服务(操作)定义服务(操作)UML描述操作的语法格式:描述操作的语法格式:可见性可见性 操作名(参数表):返回值类型操作名(参数表):返回值类型性质串性质串 参数的语法:参数的语法:参数名:类型名默认值参数名:类型名默认值 Show(x:integer=0,y:integer,z:integer):integer9.4.2 表示关系的符号表示关系的符号 1.关联关联 1)普通关联)普通关联作家作家计算机计算机
22、使用使用被使用被使用*1*图图9.6 普通关联示例普通关联示例重数(重数(multiplicity)的表示方法:的表示方法:01 表示表示 0到到1个对象;个对象;0*或或*表示表示 0到多个对象;到多个对象;1+或或1*表示表示 1到多个对象到多个对象;115 表示表示 1到到15个对象;个对象;3 表示表示 3个对象。个对象。2)关联的角色)关联的角色人人结婚结婚丈夫丈夫妻子妻子图图9.7 关联的角色关联的角色上图是一个递归关联的例子。上图是一个递归关联的例子。这种情况下,标明角色名有助于理解类图。这种情况下,标明角色名有助于理解类图。3)限定关联)限定关联目录目录文件文件文件名图图9.8
23、 限定关联限定关联目录目录文件文件保存保存被保存被保存1*普通关联普通关联利用限定词把一对多关系简化成了一对一关系。利用限定词把一对多关系简化成了一对一关系。4)关联类)关联类队列队列电梯控制器电梯控制器电梯电梯按钮按钮4*图图9.9 关联类示例关联类示例 控制器对象和电梯对象之间的连接,对应着一个队列控制器对象和电梯对象之间的连接,对应着一个队列(对象),它存储着控制器和电梯内部按钮的请求信息。(对象),它存储着控制器和电梯内部按钮的请求信息。聚集表示类与类之间是整体与部分的关系。聚集表示类与类之间是整体与部分的关系。2.聚集聚集 1)共享聚集)共享聚集课题组课题组人人成员成员*1*图图9.
24、10 共享聚集示例共享聚集示例 处于部分方的对象可同时参与多个处于整体方处于部分方的对象可同时参与多个处于整体方对象的构成。对象的构成。部分类完全隶属于整体类,部分与整体共存,整体不部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也随之消失。存在了部分也随之消失。2)组合聚集)组合聚集教材教材描绘教材结构的对象模型(组合聚集)描绘教材结构的对象模型(组合聚集)封面封面前言前言1+1+目录目录章章节节习题习题包含包含包含包含例子:例子:3.泛化(继承)泛化(继承)1)普通泛化)普通泛化抽象类抽象类:描述子类:描述子类的公共属性和行为,的公共属性和行为,不能生成具体对象不能生成具体对象的类
25、。的类。一个比较复杂的类图示例:一个比较复杂的类图示例:2)受限泛化)受限泛化 给泛化关系(继承关系)附加约束条件,说明给泛化关系(继承关系)附加约束条件,说明该泛化关系的使用方法和扩充方法。该泛化关系的使用方法和扩充方法。约束有:多重、不相交、完全和不完全。约束有:多重、不相交、完全和不完全。多重继承多重继承:一个子类可以同时多次继承同一个上层基类。:一个子类可以同时多次继承同一个上层基类。不相交继承不相交继承:一个子类不能多次继承同一个上层基类。:一个子类不能多次继承同一个上层基类。(默认为不相交继承)(默认为不相交继承)完全继承完全继承:指父类的所有子类都已经在类:指父类的所有子类都已经
26、在类图中穷举出来了。图中穷举出来了。不完全继承不完全继承:指父类的所有子类并没有在:指父类的所有子类并没有在类图中穷举出来了。类图中穷举出来了。随着对问题理解的深入,不完全继承中可随着对问题理解的深入,不完全继承中可以不断扩充子类。以不断扩充子类。(默认为不完全继承)(默认为不完全继承)4.依赖和细化依赖和细化 1)依赖关系)依赖关系类类B类类A友元友元图图9.15 友元依赖关系友元依赖关系 描述两个模型元素(类、用例)之间的关系,其中一个模描述两个模型元素(类、用例)之间的关系,其中一个模型元素是独立的(被箭头指),另一个依赖于独立的模型元型元素是独立的(被箭头指),另一个依赖于独立的模型元
27、素。如,一个类使用另一个类的对象作为自己的函数的参数。素。如,一个类使用另一个类的对象作为自己的函数的参数。(友元:依赖类可以使用独立类中私有的或保护的成员)(友元:依赖类可以使用独立类中私有的或保护的成员)2)细化关系)细化关系分析类分析类设计类设计类图图9.16 细化关系示例细化关系示例 细化用来协调不同阶段模型之间的关系,表示各个开细化用来协调不同阶段模型之间的关系,表示各个开发阶段不同抽象层次模型之间的相关性,通常用于跟踪发阶段不同抽象层次模型之间的相关性,通常用于跟踪模型的演变。模型的演变。例子:例子:公司公司员工员工名字名字电话号码电话号码主要产品主要产品地址地址雇佣雇佣解雇解雇姓
28、名姓名地址地址身份证号码身份证号码工资工资1+职务职务部门名部门名部门部门工人工人经理经理01管理管理产品产品产品名产品名成本成本重量重量项目项目项目名项目名预算预算优先级优先级生产生产1+主持主持参加参加1+1+1+一家公司的对象模型一家公司的对象模型组成组成9.5 动态模型动态模型 1)事件事件:事件是某个特定时刻所发生的事情。:事件是某个特定时刻所发生的事情。它是引起对象状态转换的控制信息。它是引起对象状态转换的控制信息。2)状态状态:状态就是对象在其生命周期中的某:状态就是对象在其生命周期中的某个特定阶段所处的某种情形。个特定阶段所处的某种情形。3)行为行为:行为是指对象达到某种状态时
29、所做:行为是指对象达到某种状态时所做的一系列处理操作。的一系列处理操作。通常用通常用UML提供的状态图来描绘动态模型。提供的状态图来描绘动态模型。注意:注意:每个类的动态行为用一张状态图来描绘,各每个类的动态行为用一张状态图来描绘,各个类的状态图通过共享事件合并起来,从而构个类的状态图通过共享事件合并起来,从而构成系统的动态模型。成系统的动态模型。实例:实例:电话的状态图电话的状态图 9.6 功能模型功能模型 通常,功能模型由一组数据流图组成。通常,功能模型由一组数据流图组成。UML提供的用例图也是进行需求分析和建立提供的用例图也是进行需求分析和建立功能模型的有力工具。功能模型的有力工具。以用
30、例图建立起来的系统模型称为用例模型,以用例图建立起来的系统模型称为用例模型,它描述的是外部行为者所理解的系统功能。它描述的是外部行为者所理解的系统功能。9.6.1 用例图用例图1、系统、系统2、用例、用例(use case)行为者感受到的一个完整行为者感受到的一个完整的功能。的功能。用例是类,代表一类功能,用例是类,代表一类功能,用例的实例称为脚本。用例的实例称为脚本。3、行为者行为者(actor)与系统交互的人或其他系与系统交互的人或其他系统。它代表一种角色。统。它代表一种角色。4、用例之间的关系用例之间的关系1)扩展关系扩展关系 向一个用例中添加一些向一个用例中添加一些动作后构成另一个用例
31、,动作后构成另一个用例,它们之间构成扩展关系。它们之间构成扩展关系。2)使用关系使用关系 一个用例使用另一个用一个用例使用另一个用例,它们之间构成使用关例,它们之间构成使用关系。系。描述一般行为的描述一般行为的变化时采用扩展关变化时采用扩展关系;系;两个或多个用例两个或多个用例中出现重复描述时中出现重复描述时可采用使用关系。可采用使用关系。9.6.2 用例建模用例建模 一个用例模型由若干幅用例图组成。一个用例模型由若干幅用例图组成。创建用例模型的工作包括:定义系统、寻找创建用例模型的工作包括:定义系统、寻找行为者、寻找用例、描述用例、定义用例之间行为者、寻找用例、描述用例、定义用例之间的关系、
32、确认模型。的关系、确认模型。1、寻找行为者、寻找行为者 下述问题有助于发现行为者:下述问题有助于发现行为者:1)谁将使用系统的主要功能?)谁将使用系统的主要功能?2)谁需要借助系统的支持来完成日常工作?)谁需要借助系统的支持来完成日常工作?3)谁来维护和管理系统?)谁来维护和管理系统?4)系统控制哪些硬件设备?)系统控制哪些硬件设备?5)系统需要与哪些其他系统交互?)系统需要与哪些其他系统交互?6)哪些人或系统对本系统产生的结果感兴趣?)哪些人或系统对本系统产生的结果感兴趣?2、寻找用例、寻找用例 可以通过每个行为者回答下述问题来获取用例:可以通过每个行为者回答下述问题来获取用例:1)行为者需
33、要系统提供哪些功能?)行为者需要系统提供哪些功能?2)行为者自身需要做什么?)行为者自身需要做什么?3)行为者是否需要读取、创建、删除、修改或)行为者是否需要读取、创建、删除、修改或存储系统中的信息?存储系统中的信息?4)系统中发生的事件需要通知行为者吗?)系统中发生的事件需要通知行为者吗?5)行为者需要通知系统某些事情吗?)行为者需要通知系统某些事情吗?6)系统需要哪些输入输出?)系统需要哪些输入输出?7)当前使用的系统存在的主要问题是什么?)当前使用的系统存在的主要问题是什么?9.7 三种模型之间的关系三种模型之间的关系1)针对每个类建立的动态模型,描述了实例的)针对每个类建立的动态模型,
34、描述了实例的生命周期或运行周期。生命周期或运行周期。2)状态转换驱使行为发生,这些行为在数据流)状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用图中被映射成处理,在用例图中被映射成用例,它们同时与类图中的服务相对应。例,它们同时与类图中的服务相对应。3)功能模型中的处理(或用例)对应于对象模)功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。型中的类所提供的服务。4)数据流图中的数据存储,以及数据的源点)数据流图中的数据存储,以及数据的源点/终点,终点,通常是对象模型中的对象。通常是对象模型中的对象。5)数据流图中的数据流,往往是对象模型中对象的)数据流图
35、中的数据流,往往是对象模型中对象的属性值,也可能是整个对象。属性值,也可能是整个对象。6)用例图中的行为者,可能是对象模型中的对象。)用例图中的行为者,可能是对象模型中的对象。7)功能模型中的处理(或用例)可能产生动态模型)功能模型中的处理(或用例)可能产生动态模型中的事件。中的事件。8)对象模型描述了数据流图中的数据流、数据存储)对象模型描述了数据流图中的数据流、数据存储以及数据源点以及数据源点/终点的结构。终点的结构。练习题练习题填空题:1、用面向对象方法开发软件,通常需要建立3种形式的模型即()、()和功能模型。2、用面向对象方法学开发软件过程,是一个主动地多次反复迭代的()。传统方法学强调()顺序地完成软件开发的各阶段任务。名词解释:名词解释:1、对象、对象2、类、类3、封装、封装4、继承、继承5、多态性、多态性6、重载、重载简答题:简答题:1、简述面向对象方法学的出发点和基本原则、简述面向对象方法学的出发点和基本原则?2、面向对象方法的、面向对象方法的4个要点?个要点?3、与传统结构化方法相比较面向对象方法学、与传统结构化方法相比较面向对象方法学的优点?的优点?4、对象的、对象的5个基本特点?个基本特点?