《面向对象的基本概念优秀课件.ppt》由会员分享,可在线阅读,更多相关《面向对象的基本概念优秀课件.ppt(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象的基本概念第1页,本讲稿共50页目目的的要要求求:使使学学生生了了解解传传统统方方法法学学的的缺缺点点,掌掌握握面面向向对对象象的的基基本本概概念念,三三种种模模型型:对对象象模模型型、动动态态模模型型、功功能能模模型型的基本概念。的基本概念。教学重点教学重点:掌握面向对象的基本概念。掌握面向对象的基本概念。教学难点教学难点:三种模型:对象模型、动态模型的概念三种模型:对象模型、动态模型的概念。讲讲授授内内容容:认认识识传传统统方方法法学学的的缺缺点点,引引入入软软件件工工程程的的新新途途径径。面面向向对对象象的的基基本本概概念念,三三种种模模型型:对对象象模模型型、动态模型、功能模型
2、的基本概念。动态模型、功能模型的基本概念。教学目的、要求,重点、难点教学目的、要求,重点、难点第2页,本讲稿共50页第一节第一节 面向对象技术的基本概念面向对象技术的基本概念第3页,本讲稿共50页存在的问题存在的问题:1 1、生产率提高的幅度远不能满足需要、生产率提高的幅度远不能满足需要 2 2、软件重用程度很低、软件重用程度很低 3 3、软件仍然很难维护、软件仍然很难维护 4 4、软件往往不能真正满足用户需要、软件往往不能真正满足用户需要出现问题的原因出现问题的原因:(最根本的原因有两个最根本的原因有两个)1 1、僵化的瀑布模型、僵化的瀑布模型 1 1)某些类型的系统需求是模糊的)某些类型的
3、系统需求是模糊的 2 2)项目参与者之间存在通讯鸿沟)项目参与者之间存在通讯鸿沟 3 3)预先定义的需求可能是过时的)预先定义的需求可能是过时的2 2、结构化技术的缺点、结构化技术的缺点 1 1)系统结构不稳定;)系统结构不稳定;2 2)系统较难修改和扩充;)系统较难修改和扩充;3 3)软件的可重用性较差)软件的可重用性较差。一、传统方法学的缺点一、传统方法学的缺点第4页,本讲稿共50页1 1、区分两类不同的软件系统、区分两类不同的软件系统 一一类类系系统统的的需需求求比比较较稳稳定定,而而且且能能够够预预先先指指定定,称称为为预预先先指指定定的的系系统统;如如:计计算算机机控控制制系系统统,
4、卫卫星星图图象象处处理理系系统统,空空中中交交通通管管理理系系统统,火火箭箭发发射射跟跟踪踪控控制制系系统统;操作系统,编译系统,数据库管理系统等;操作系统,编译系统,数据库管理系统等;一一类类系系统统的的需需求求是是模模糊糊的的或或随随时时间间变变化化的的,通通常常在在系系统统安安装装运运行行之之后后,还还会会由由用用户户驱驱动动对对需需求求进进行行动动态态修修改改,称称为为用用户户驱驱动动系系统统;如如:商商业业或或行行政政数数据据处处理理系系统统,决策支持系统等。决策支持系统等。二、软件工程的新途径二、软件工程的新途径第5页,本讲稿共50页2 2、快速原型法简介、快速原型法简介快快速速原
5、原型型法法的的核核心心是是:用用交交互互的的快快速速建建立立起起来来的的原原型型取取代代了了形形式式的的、僵僵化化的的大大部部头头的的规规格格说说明明,用用户户通通过过在在计计算算机机上上运运行行和和试试用用原原形形系系统统而而向向开开发发者者提提供供真真实实的的反馈意见。反馈意见。原原型型法法的的基基本本思思想想是是:首首先先建建立立一一个个用用户户主主要要需需求求的的原原型型系系统统,让让用用户户在在计计算算机机上上运运行行、试试用用这这个个原原型型系系统统,通通过过实实践践、了了解解未未来来的的系系统统概概貌貌最最终终建建立立起起完完全全符符合合用用户户需需要要的的新新系系统统。瀑瀑布布
6、模模型型:用用户户和和分分析析员员反反复复讨讨论,论,“纸上谈兵纸上谈兵”;原型系统原型系统:用户在计算机上运行、试用,:用户在计算机上运行、试用,“真枪真枪实弹实弹”;“试用试用-反馈反馈-修改修改”的多次反复。的多次反复。第6页,本讲稿共50页3 3、用原型法开发软件的过程、用原型法开发软件的过程1 1)抛弃原型法)抛弃原型法目目的的:评评价价目目标标系系统统的的某某个个特特性性,以以便便更更准准确确的的确确定定需需求求,更更严严格格的的验验证证设设计计方方案案。使使用用完完后后将将原原型型系系统统抛抛弃弃掉掉,然后重建正式的目标系统。然后重建正式的目标系统。2 2)演化原型法)演化原型法
7、基基本本做做法法:经经过过初初步步调调研研和和分分析析获获知知用用户户的的基基本本需需求求之之后后,就就利利用用适适当当的的软软件件工工具具快快速速的的实实现现一一个个原原型型系系统统 ,作作为为沟沟通通各各方方的的基基础础和和用用户户实实践践的的场场所所,开开发发人人员员根根据据用用户户试试用用后后的的意意见见,对对原原型型进进行行修修改改和和扩扩充充,然然后后再再次次交交给给用用户户试试用用,并并根根据据试试用用后后提提出出的的意意见见,再再次次对对原原型型进进行行修修改改和和扩扩充充,经过多次迭代直到用户感到完全满意为止经过多次迭代直到用户感到完全满意为止。第7页,本讲稿共50页1 1、
8、面向对象方法简介、面向对象方法简介出发点和基本原则:尽可能模拟人类习惯的思维方式,出发点和基本原则:尽可能模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界解决问题使开发软件的方法和过程尽可能接近人类认识世界解决问题的方法和过程。即使描述问题的问题空间(问题域)与实现的方法和过程。即使描述问题的问题空间(问题域)与实现解法的解空间(求解域)在结构上尽可能一致。解法的解空间(求解域)在结构上尽可能一致。概括的说,概括的说,面向对象面向对象方法有下述方法有下述4 4个要点个要点:1 1)认认为为客客观观世世界界是是由由各各种种对对象象组组成成的的,任任何何事事物物都都是是对对象象
9、,复复杂杂的的对对象象可可以以由由比比较较简简单单的的对对象象以以某某种种方方式式组组合合而成。而成。第二节第二节 面向对象的基本概念面向对象的基本概念第8页,本讲稿共50页2 2)把把所所有有对对象象都都划划分分成成各各种种对对象象类类(类类CLASSCLASS),每每个对象类都定义了一组数据和一组方法。个对象类都定义了一组数据和一组方法。3 3)按按照照子子类类(派派生生类类)和和父父类类(基基类类)的的继继承承关关系系,把若干个对象类组成一个层次结构的系统(类等级)。把若干个对象类组成一个层次结构的系统(类等级)。4 4)对象彼此之间仅能通过)对象彼此之间仅能通过传递消息传递消息互相联系
10、。互相联系。OO=OOO=Objectsbjects+C+Classeslasses+I+Inheritancenheritance+C+Communicationommunication with with messagemessage面向对象面向对象=对象对象+类类+继承继承+传递消息传递消息 如果仅使用对象和消息的方法如果仅使用对象和消息的方法 -称为称为基于对象的方法基于对象的方法;如果进一步要求把所有端详划分为类如果进一步要求把所有端详划分为类-称为称为基于类的方法;基于类的方法;只有同时使用对象,类,继承,消息的方法只有同时使用对象,类,继承,消息的方法-真正面向对象的方法真正面向
11、对象的方法。第9页,本讲稿共50页1 1)与人类习惯的思维方式一致)与人类习惯的思维方式一致传传统统的的程程序序设设计计技技术术是是面面向向过过程程的的设设计计方方法法,以以算算法法为为核核心心,把把数数据据和和过过程程作作为为相相互互独独立立的的部部分分,数数据据代代表表问问题题空间中的客体,程序代码则用于处理这些数据。空间中的客体,程序代码则用于处理这些数据。把把数数据据和和代代码码作作为为分分离离的的实实体体,是是计计算算机机的的特特点点。但但总总存存在在“使使用用错错误误的的数数据据调调用用正正确确的的程程序序模模块块,或或使用正确的数据调用了错误的程序模块使用正确的数据调用了错误的程
12、序模块”的危险。的危险。传传统统的的程程序序设设计计技技术术忽忽略略了了数数据据和和操操作作之之间间的的内内在在联联系系,设设计计的的软软件件系系统统其其解解空空间间和和问问题题空空间间并并不不一致,难于理解。一致,难于理解。2 2 面向对象方法学的主要优点面向对象方法学的主要优点第10页,本讲稿共50页面向对象的软件技术以对象为核心,软件系统由面向对象的软件技术以对象为核心,软件系统由对象组成。对象是对现实世界实体的正确抽象,它由对象组成。对象是对现实世界实体的正确抽象,它由描述内部状态表示静态属性的数据,以及可以对这些描述内部状态表示静态属性的数据,以及可以对这些数据施加的操作(对象的动态
13、行为),封装在一起所数据施加的操作(对象的动态行为),封装在一起所构成的统一体。构成的统一体。面向对象的软件技术的基本原理,使用现实世界面向对象的软件技术的基本原理,使用现实世界的概念抽象地思考问题从而自然地解决问题。强调模拟的概念抽象地思考问题从而自然地解决问题。强调模拟现实世界中的概念而不强调算法,鼓励开发者在软件开现实世界中的概念而不强调算法,鼓励开发者在软件开发的绝大部分过程中都用应用领域的概念去思考。发的绝大部分过程中都用应用领域的概念去思考。第11页,本讲稿共50页传统的软件开发过程可以用传统的软件开发过程可以用“瀑布瀑布”模型来描述,模型来描述,强调强调“自顶向下自顶向下”按部就
14、班地完成软件开发工作。按部就班地完成软件开发工作。面向对象方法学的出发点和基本原则就是分析、面向对象方法学的出发点和基本原则就是分析、设计、实现一个软件系统的方法和过程,尽可能接近设计、实现一个软件系统的方法和过程,尽可能接近人们认识世界解决问题的方法和过程。也就是使描述人们认识世界解决问题的方法和过程。也就是使描述问题的问题空间和描述解法的解空间在结构上尽可能问题的问题空间和描述解法的解空间在结构上尽可能一致。一致。第12页,本讲稿共50页2 2)稳定性好;)稳定性好;传统的程序设计技术以算法为核心,开发过程基于功能传统的程序设计技术以算法为核心,开发过程基于功能分析和功能分解。分析和功能分
15、解。面向对象的软件技术以对象为核心,基于构造问题领域面向对象的软件技术以对象为核心,基于构造问题领域的对象模型。当系统的功能需求变化时并不会引起软件结构的的对象模型。当系统的功能需求变化时并不会引起软件结构的整体变化,仅需要做一些局部修改。整体变化,仅需要做一些局部修改。3 3)可重用性好;)可重用性好;用已有零部件装配新的产品是典型的重用技术。用已有零部件装配新的产品是典型的重用技术。传统方法学中内聚性好的模块独立性高,但数据传统方法学中内聚性好的模块独立性高,但数据和程序彼此独立,实际上重用性差。和程序彼此独立,实际上重用性差。面向对象的软件技术中的对象具有很强的自含性,面向对象的软件技术
16、中的对象具有很强的自含性,对象所固有的封装性和信息隐藏机理,使得对象的内部对象所固有的封装性和信息隐藏机理,使得对象的内部实现和外界隔离,具有较强的独立性。实现和外界隔离,具有较强的独立性。第13页,本讲稿共50页4 4)较易开发大型软件产品)较易开发大型软件产品开发大型软件系统时,开发人员的组织方法不当是出开发大型软件系统时,开发人员的组织方法不当是出现问题的主要原因。面向对象范型开发软件时,可以把一个现问题的主要原因。面向对象范型开发软件时,可以把一个大型软件产品看作一系列本质上相互独立的小产品来处理。大型软件产品看作一系列本质上相互独立的小产品来处理。一方面降低了技术难度,另一方面改善了
17、管理工作。一方面降低了技术难度,另一方面改善了管理工作。5 5)可维护性好)可维护性好;面向对象的软件稳定性好面向对象的软件稳定性好面向对象的软件比较容易修改面向对象的软件比较容易修改面向对象的软件比较容易理解面向对象的软件比较容易理解面向对象的软件易于测试和调试面向对象的软件易于测试和调试第14页,本讲稿共50页在在应应用用领领域域中中有有意意义义的的、与与所所要要解解决决的的问问题题有有关关系系的的任任何何事事物物都都可可以以作作为为对对象象,可可以以是是具具体体的的物物理理实实体体的的抽抽象象,也也可可是是人人为为的的概概念念,或或是是任任何何有有明明确确边边界界和和意意义义的的东东西西
18、。如如:一一名名职职工工,一一家家公公司司,一一个个窗窗口口,一一座座图书馆,一本图书,贷款和借款等。图书馆,一本图书,贷款和借款等。面面向向对对象象方方法法学学中中的的对对象象是是由由描描述述该该对对象象属属性性的的数数据据以以及及可可以以对对这这些些数数据据施施加加的的所所有有操操作作封封装装在在一一起起构构成成的的统统一一体体。对对象象可可以以做做的的操操作作表表示示对对象象的的动动态态行为,行为,OODOOD中称为对象的服务或方法。中称为对象的服务或方法。二、基本概念二、基本概念(一)(一)对象对象第15页,本讲稿共50页1 1、对象的形象表示、对象的形象表示 一一个个对对象象如如同同
19、一一台台录录音音机机,当当在在软软件件中中使使用用一一个个对对象象的的时时候候,只只能能通通过过对对象象与与外外界界的的界界面面来来操操作作它它。实实现现对对象象操操作作的的代代码码和和数数据据是是隐隐藏藏在在对对象象内内部部的的,一一个个对对象象好好象象是是一一个个黑盒子。黑盒子。使使用用对对象象时时只只需需知知道道它它向向外外界界提提供供的的接接口口形形式式而而无无须须知知道道内内部部的的具具体体算算法法,不不仅仅使使对对象象变变得得非非常常简简单单、方便,而且具有很高的安全性和可靠性。方便,而且具有很高的安全性和可靠性。操作操作1 1操作操作2 2操作操作3 3界界面面操作操作1 1、2
20、 2、3 3的实现的实现状态状态S S图4.1对象的形象表示对象的形象表示第16页,本讲稿共50页2 2、对象的定义、对象的定义 定义定义1 1 (从面向对象程序设计角度看待对象)对象是具有相同状态的一组操作的集合。对象是具有相同状态的一组操作的集合。定义定义2 2:(从信息模拟角度看待对象)对象是对问题域中某个东西的抽象,这种抽象反映对象是对问题域中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与它交互的能力。(对了系统保存有关这个东西的信息或与它交互的能力。(对象是对属性值和操作的封装)。象是对属性值和操作的封装)。定义定义3 3:(形式化的定义)对象对象:=ID-对象的标识或
21、名字对象的标识或名字MS-对象中的操作集合对象中的操作集合DS-对对象象的的数数据据结结构构MI-对对象象受受理理的的消消息息名名集集合合(对外接口)(对外接口)第17页,本讲稿共50页3 3、对象的特点、对象的特点1 1)以数据为中心)以数据为中心2 2)对象是主动的)对象是主动的3 3)实现了数据封装)实现了数据封装4 4)本质上具有并行性)本质上具有并行性5 5)模块独立性好)模块独立性好第18页,本讲稿共50页1 1、类(、类(C Classlass)类类是是对对具具有有相相同同数数据据和和相相同同操操作作的的一一组组相相似似对对象象的的定定义义,类类是是对对具具有有相相同同属属性性和
22、和行行为为的的一一个个或或多多个个对象的描述(抽象)。对象的描述(抽象)。例例如如:在在屏屏幕幕上上不不同同位位置置用用不不同同颜颜色色不不同同半半径径画画三三个个圆圆,是是三三个个不不同同的的对对象象,但但他他们们有有相相同同的的数数据据(圆圆心心坐坐标标,半半径径,颜颜色色)和和相相同同的的操操作作(显显示示自自己己,放放大大缩缩小小半半径径,在在屏屏幕幕上上移移动动位位置置等等),因因此此它它们们是是同同一一类类事事物物,可可用用“C Circleircle类类”来定义。来定义。(二)(二)其他概念其他概念第19页,本讲稿共50页2 2、实例(、实例(I Instancenstance)
23、实例就是由某个特定的类所描述的一个具体的对象。类在现实世界中并不能真正存在。如:在地球上并没有抽象的“中国人”,只有一个个具体的中国人(张三、李四)。同样也没有抽象的“圆”,只有一个个具体的圆(圆心在(100,200)半径为50的红色显示的圆,圆心在(200,300)半径为30的兰色显示的圆)。实际上,类是建立对象的“样板”,按照这个样板所建立的一个具体的对象,就是类的实际例子,通常称为实例实例。第20页,本讲稿共50页3 3、消息(、消息(M Messageessage)消息,就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常一个消息由下述三部分组成:接受消息的对象;消息
24、选择符(消息名);零个或多个变元;例如:MyCircle是一个半径4,圆心位于(100,200)的Circle类的对象,也就是Circle类的一个实例。当要求它以绿色显示时,在C中应发出以下消息:MyCircle.Show(Green);其中:MyCircle是接受消息的对象的名字;Show是消息选择符(消息名);Green是消息的变元;当MyCircle接受到这个消息后,将执行在Circle类中定义的Show操作。第21页,本讲稿共50页4 4、方法(、方法(M Methodethod)方法就是对象所能执行的操作,也就是类中定义的服务。方法描述了对象执行操作的算法,响应消息的方法。(在C+中
25、,把方法称为成员函数)例如:为了Circle类的对象能够响应让它在屏幕上显示自己的消息Show(Green),在Circle类必须给出成员函数Show(intcolor)的定义,(也就是要给出这个成员函数的实现代码)。第22页,本讲稿共50页5 5、属性(、属性(A Attributettribute)属性,就是类中所定义的数据,它是对客观世界中的实体所具有的性质的抽象。类的每个实例都有自己特有的属性值。例如:Circle类中定义的代表圆心坐标、半径、颜色等的数据成员,就是圆的属性。第23页,本讲稿共50页属性:姓名年龄单位职称工资操作:调工资评职称受聘方法:调工资 (计算公式)评职称 (步骤
26、,条件)类:教师数据结构方法体状态:李伟25计算机讲师1000行为:调工资评职称受聘李伟.调工资()数据值执行的操作人事处向对象发消息抽象方法名(参数)抽象实例对象:李伟抽象实例对象、类和消息传递第24页,本讲稿共50页6 6、封装(、封装(EncapsulationEncapsulation)面向对象的程序中把数据和实现操作的代码集中起来放在对象内部。使用一个对象的时候,只需知道它向外界提供的接口形式,而无需知道它的数据结构细节和实现操作的算法。具有封装性的条件:(1)有一个清晰的边界;(2)有明确的接口;(3)受保护的内部实现。第25页,本讲稿共50页7 7、继承(、继承(I Inheri
27、tancenheritance)广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。在面向对象的软件技术中,继承是子类自动地共享基类中定义的数据和方法的机制。第26页,本讲稿共50页A的操作A的变量类A类AA的实例变量A的实例a1B的操作B的变量类B:A的子类从A继承特性继承来的A的实例变量B的实例变量B的实例b1类B.子类子类父类的父类的实例实例父类父类子类的实例子类的实例继承具有传递性,如果类C继承类B,类B继承类A,则类C继承类A。图图4.3 实现继承机制的原实现继承机制的原理理第27页,本讲稿共50页8 8、多态性(、多态性(P Polymorphismolymorph
28、ism)来自于希腊语,意思是“有许多特性”。多态性是指子类对象可以象父类对象那样使用,同样的消息可以发送给父类对象也可以发送给子类对象。在类的不同层次中可以共享(公用)一个行为(方法)的名字,然而不同层次中的每个类却各自按自己的需要来实现这个行为。多态性机制不仅增加了面向对象软件系统的灵活性,进一步减少了数据冗余,而且显著提高了软件的可重用性和可扩充性。第28页,本讲稿共50页9 9、重载(、重载(O OververL Loadingoading)1)函数重载:是指同一作用域内若干个参数特征不同的函数可以使用相同的函数名字;2)运算符重载:是指同一个运算符可以施加于不同类型的操作数上面。在C+
29、语言中,函数重载是通过静态联编实现的,编译时根据函数变元的个数和类型,决定到底使用函数的哪个实现代码;运算符重载也是载编译时根据操作数的类型,决定使用该运算符的哪种语义。第29页,本讲稿共50页所所谓谓建建模模,就就是是为为了了理理解解事事物物而而对对事事物物做做出出的的一一种种抽抽象象,是是对对事事物物的的一一种种无无歧歧义义的的书书面面描描述述。通通常常,模模型型是是由由一一组组图图示示符符号号和和组组织织这这些些符符号号的的规规则则组组成成,利利用用她她们来定义和描述问题域中的术语和概念。们来定义和描述问题域中的术语和概念。模模型型是是一一种种思思考考工工具具,利利用用这这种种工工具具可
30、可以以把把知知识识规范地表示出来。规范地表示出来。模模型型通通过过把把系系统统的的重重要要部部分分分分解解成成人人的的头头脑脑一一次次能处理的若干子部分,从而减少系统的复杂程度;能处理的若干子部分,从而减少系统的复杂程度;在在对对目目标标系系统统进进行行分分析析的的初初始始阶阶段段,棉棉队队大大量量模模糊糊的的、涉涉及及众众多多专专业业领领域域的的、错错综综复复杂杂的的信信息息,系系统统分分析析员员往往往往感感到到无无从从下下手手,模模型型提提高高了了组组织织大大量量信信息的一种有效机制。息的一种有效机制。第三节第三节 对象模型对象模型第30页,本讲稿共50页用用面面向向对对象象方方法法开开发
31、发软软件件,通通常常需需要要建建立立三三种种形形式的模型:式的模型:对象模型对象模型:描述系统的数据结构;描述系统的数据结构;动态模型动态模型:描述系统的控制结构;描述系统的控制结构;功能模型功能模型:描述系统功能。描述系统功能。一一个个典典型型的的软软件件系系统统组组合合了了上上述述三三个个方方面面的的内内容容:它它使使用用数数据据结结构构(对对象象模模型型),执执行行操操作作(动动态态模模型型),并完成数据值的变化(功能模型)并完成数据值的变化(功能模型)。用用面面向向对对象象方方法法开开发发软软件件,在在任任何何情情况况下下,对对象象模型始终都是最重要、最基本、最核心的。模型始终都是最重
32、要、最基本、最核心的。第31页,本讲稿共50页对对象象模模型型表表示示静静态态的的、结结构构化化的的系系统统的的“数数据据”性性质。为建立动态模型和功能模型提供了实质性的框架。质。为建立动态模型和功能模型提供了实质性的框架。现有的建立对象模型的表示方法包含下列符号:现有的建立对象模型的表示方法包含下列符号:表示类的符号(应该既能表示属性又能表示服务);表示类的符号(应该既能表示属性又能表示服务);表示对象(类实例)的符号:表示对象(类实例)的符号:表示继承关系的符号;表示继承关系的符号;表示类和(或)对象间其他关系的符号;表示类和(或)对象间其他关系的符号;第32页,本讲稿共50页1 1、类、
33、类-&-&-对象对象“类类-&-&-对对象象”是是一一个个专专用用术术语语,含含义义是是“一一个类及属于该类的对象个类及属于该类的对象”。(一)(一)表示类表示类-&-&-对象的符号对象的符号表示类-&-对象的图形符号表示类的图形符号(虚线框代表属于该类的对象)类名服务属性类名服务属性图6.4 表示符号第33页,本讲稿共50页2 2、命名、命名命名应遵守的三条规则:1)使用标准术语;“交通信号灯”比“信号单元”好;“传送带”比“零件传送设备”好2)使用具有确切含义的名词;“库房”比“房屋”或“存物场所”更确切;3)必要时用名词短语做名字;“最小的领土单元”,“公司员工”等。第34页,本讲稿共5
34、0页1 1、归纳关系、归纳关系 一一般般和和特特殊殊的的关关系系,它它反反映映了了一一个个类类和和若若干干个个互互不不相相容容的的子子类类之之间间的的分分类类关关系系。高高层层类类(基基类类)说说明明一一般般性性的的属属性性;低低层层类类(派派生生类类)说说明明特特殊属性。殊属性。(二)(二)表示结构的图形符号表示结构的图形符号一般化类具体类1具体类2.图4.5 表示归纳关系的图形符号第35页,本讲稿共50页2 2、组合关系、组合关系就就是是“整整体体和和部部分分”“关关系系,它它反反映映了了对对象象之之间间的的构构成成关关系系。(也也称称聚集关系)。聚集关系)。整体部分1部分21,m0,n图
35、4.6 表示组合关系的图形符号第36页,本讲稿共50页教材教材封面封面前言前言目录目录章章节节习题习题1,m1,n图4.7 描绘教材结构的聚集树第37页,本讲稿共50页3 3、关联关系、关联关系 反映对象之间相互依赖、相互作用的关系。通常把两反映对象之间相互依赖、相互作用的关系。通常把两类对象之间的二元关系再细分为一对一、一对多、多对多等类对象之间的二元关系再细分为一对一、一对多、多对多等三种基本类型。三种基本类型。1)表示符号表示符号:用相互依赖、相互作用的两个对象之:用相互依赖、相互作用的两个对象之间的连线表示。间的连线表示。2)阶阶:参与关联的对象的个数。:参与关联的对象的个数。3)链属
36、性链属性:关联链的性质。:关联链的性质。4)限定限定:一个受限的关联由两个对象及一个限定:一个受限的关联由两个对象及一个限定词组成。可把限定词看作一种特殊的链属性。利用限定词组成。可把限定词看作一种特殊的链属性。利用限定词能有效地减少关联的阶数。词能有效地减少关联的阶数。5)消息连接消息连接:反映一个对象对另一个对象的处理:反映一个对象对另一个对象的处理依赖性。依赖性。第38页,本讲稿共50页教师教师书书1+图6.8 教师与属于他的书之间的关联关系文件文件用户用户1+图4.9 链属性的表示方法1+访问权限第39页,本讲稿共50页文件文件名目录图4.10 一个受限的关联发送者发送者接受者接受者图
37、4.11 消息连接的表示符号第40页,本讲稿共50页例子例子 某公司有许多部门,部门名唯一地确定一个部门;某公司有许多部门,部门名唯一地确定一个部门;每个部门由一名经理管理,也有的经理并不管理任何一每个部门由一名经理管理,也有的经理并不管理任何一个部门;每个部门生产多种产品,每种产品仅由一个部个部门;每个部门生产多种产品,每种产品仅由一个部门生产。该公司有许多名员工为之工作,员工又进一步门生产。该公司有许多名员工为之工作,员工又进一步划分为经理和工人两类。每名工人可参加多个工程项目,划分为经理和工人两类。每名工人可参加多个工程项目,每个项目需要多名工人;每位经理可以主持多个项目,每个项目需要多
38、名工人;每位经理可以主持多个项目,每个项目仅有一人主持。每个项目仅有一人主持。相应的对象模型如下。相应的对象模型如下。第41页,本讲稿共50页员工姓名地址身份证号码工资工人经理.项目项目名预算优先级公司名字电话号码主要产品地址部门名部门产品产品名成本重量服务1+1+1+1+1+参加主持管理 0,1生产为之工作第42页,本讲稿共50页动动态态模模型型表表示示瞬瞬时时的的、行行为为化化的的系系统统的的”控控制制“性质,它规定了对象模型中的对象的合法变化序列。性质,它规定了对象模型中的对象的合法变化序列。一一旦旦建建立立起起对对象象模模型型之之后后,就就需需要要考考察察对对象象的的动动态态行行为为。
39、通通常常,用用状状态态图图来来描描绘绘对对象象的的状状态态、触触发发状状态转换的事件、以及对象的行为(对事件的响应)。态转换的事件、以及对象的行为(对事件的响应)。每每个个类类的的动动态态行行为为用用一一张张状状态态图图来来描描绘绘,各各个个类类的的状状态态图图通通过过共共享享事事件件合合并并起起来来,从从而而构构成成系系统统的的动动态态模模型型。动动态模型是基于事件共享而互相关联的一组状态图的集合。态模型是基于事件共享而互相关联的一组状态图的集合。第四节第四节 动态模型动态模型第43页,本讲稿共50页1 1、事件、事件事事件件是是某某个个特特定定时时刻刻所所发发生生的的事事情情,它它是是对对
40、引引起起对对象象从从一一种种状状态态转转换换到到另另一一种种状状态态的的现现实实世世界界中中的的事事件件的的抽抽象象。时时间间没没有有持持续续时时间间,是是瞬瞬间间完完成成的的。(事事件件就就是是引引起起对对象象状状态转换的控制信息)。态转换的控制信息)。2 2、状态、状态状状态态就就是是对对象象在在其其生生命命周周期期中中的的某某个个特特定定阶阶段段所所处处的的某种情形,它是对影响对象行为的属性值的一种抽象。某种情形,它是对影响对象行为的属性值的一种抽象。状态有持续性,它占用一段时间间隔。状态有持续性,它占用一段时间间隔。状状态态和和事事件件密密不不可可分分,一一个个事事件件可可分分为为两两
41、个个状状态态,一一个状态隔开两个事件。事件表示时刻,状态表示时间间隔。个状态隔开两个事件。事件表示时刻,状态表示时间间隔。3 3、行为、行为行为是指对象达到某种状态时所做的一系列处理操作。行为是指对象达到某种状态时所做的一系列处理操作。(一)(一)术语术语第44页,本讲稿共50页状状态态用用圆圆形形框框或或椭椭圆圆表表示示,框框内内可可标标上上状状态态名名,行行为在框内用关键字为在框内用关键字DODO:表明;表明;状状态态图图即即可可以以表表示示循循环环运运行行过过程程,也也可可以以表表示示单单程程生命周期。生命周期。(二)(二)表示方法表示方法状态状态1do:行为行为1状态状态2do:行为行
42、为2初始事件初始事件事件事件条件条件1结束事件结束事件第45页,本讲稿共50页闲置拨号振铃Do:振铃通话断线接通中Do:试接通拨号音Do:响拨号音存储的信息Do:播放信息超时Do:响蜂鸣音忙音Do:响忙音已接通数字占线受话人回话有效号码拿起听筒数字受话人挂断电话挂断电话挂断电话超时超时无效号码信息播完第46页,本讲稿共50页功功能能模模型型表表示示变变化化的的系系统统的的“功功能能”性性质质,它它指指明明了了系系统统应应该该“做做什什么么”,因因此此更更直直接接地地反反映映了了用用户户对对目目标标系统的需求。系统的需求。第五节第五节 功能模型功能模型功能模型由一组数据流图组成。一般说来,与对象
43、功能模型由一组数据流图组成。一般说来,与对象模型和动态模型比较起来,数据流图并没有增加新的信模型和动态模型比较起来,数据流图并没有增加新的信息,但是建立功能模型有助于软件开发人员更深入地理息,但是建立功能模型有助于软件开发人员更深入地理解问题域,改进和完善自己的设计。解问题域,改进和完善自己的设计。(一)(一)表示方法表示方法第47页,本讲稿共50页三三种种模模型型从从三三个个不不同同的的侧侧面面描描述述了了所所要要开开发发的的系系统统。这这三三种种模模型型互互相相补补充充、互互相相配配合合,使使我我们们对对系系统统开开发发的的认认识识更全面:更全面:功能模型功能模型-系统应该系统应该“做什么
44、做什么”;动态模型动态模型-规定什么时候做;规定什么时候做;对象模型对象模型-定义了做事情的实体。定义了做事情的实体。(二)(二)与其他两种模型的关系与其他两种模型的关系第48页,本讲稿共50页下面从下面从7 7个方面说明三种模型之间的关系个方面说明三种模型之间的关系针对每个类建立的动态模型,描述了类实例的生命周期针对每个类建立的动态模型,描述了类实例的生命周期或运行周期;或运行周期;状态转换驱使行为发生,这些行为载数据流图中被映射成处状态转换驱使行为发生,这些行为载数据流图中被映射成处理,与对象模型中的服务相对应;理,与对象模型中的服务相对应;功能模型中的处理,对应于对象模型中类功能模型中的
45、处理,对应于对象模型中类-对象所提供的对象所提供的服务;服务;功能模型中的数据存储,以及数据的源点功能模型中的数据存储,以及数据的源点/终点是对象终点是对象模型中的对象;模型中的对象;功能模型中的数据流,对应着对象模型中的属性值,也可功能模型中的数据流,对应着对象模型中的属性值,也可能是整个对象;能是整个对象;功能模型中的处理可能产生动态模型中的事件;功能模型中的处理可能产生动态模型中的事件;对象模型描述对象模型描述 了功能模型中的动作对象、数据存储以及数了功能模型中的动作对象、数据存储以及数据流的结构。据流的结构。第49页,本讲稿共50页作业:作业:P92P92习题四习题四5 5,6 6,7 7,8 8第50页,本讲稿共50页