软件工程与实践 第8章 面向对象与uml语言.ppt
《软件工程与实践 第8章 面向对象与uml语言.ppt》由会员分享,可在线阅读,更多相关《软件工程与实践 第8章 面向对象与uml语言.ppt(57页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第8 8章章 面向对象与面向对象与umluml语言语言8.1 传统方法学传统的生命周期方法学主要存在以下问题:传统的生命周期方法学主要存在以下问题:(1 1)生产率提高的幅度远不能满足需要;)生产率提高的幅度远不能满足需要;(2 2)软件重用度很低;)软件重用度很低;(3 3)软件仍然很难维护;)软件仍然很难维护;(4 4)软件往往不能满足用户需要。软件往往不能满足用户需要。面向对象的方法学可以用下列式子来概括:面向对象面向对象的方法学可以用下列式子来概括:面向对象=对象对象+类类+继承继承+消息通信。消息通信。面向对象方法学的主要优点是:面向对象方法学的主要优点是:(1 1)从应用设计到解
2、决问题的方案更加抽象化而且具有极)从应用设计到解决问题的方案更加抽象化而且具有极强的对应性。强的对应性。(2 2)在设计中容易与用户)在设计中容易与用户沟通沟通。(3 3)把数据和操作封装到对象之中。)把数据和操作封装到对象之中。(4 4)设计中产生各式各样的部件,然后由部件组成框架,)设计中产生各式各样的部件,然后由部件组成框架,以至于整个程序。以至于整个程序。(5 5)应用程序具有较好的重用性、易改进、易维护和易扩)应用程序具有较好的重用性、易改进、易维护和易扩充。充。8.2面向对象方法的基本概念面向对象方法的基本概念 对象是具有相同状态的一组操作的集合,是对象是具有相同状态的一组操作的集
3、合,是封装了数据结构及可以施加在这些数据结构上的操作的封封装了数据结构及可以施加在这些数据结构上的操作的封装体,这个封装体有可以惟一地标识它的名字,而且向外装体,这个封装体有可以惟一地标识它的名字,而且向外界提供一组服务界提供一组服务(即公有的操作即公有的操作)。对象中的数据表示对象的状态,一个对象的状态只对象中的数据表示对象的状态,一个对象的状态只能由该对象的操作来改变,只能由其他对象向该对象发送能由该对象的操作来改变,只能由其他对象向该对象发送消息。对象响应消息时,按照消息模式找出与之匹配的方消息。对象响应消息时,按照消息模式找出与之匹配的方法,并执行该方法。法,并执行该方法。8.2.1对
4、象对象在面向对象的软件技术中,在面向对象的软件技术中,”类类”就是对具有就是对具有相同数据和相同操作的一组相似对象的定义,也就相同数据和相同操作的一组相似对象的定义,也就是说,类是对具有相同属性和行为的一个或多个对是说,类是对具有相同属性和行为的一个或多个对象的描述象的描述 。例如:植物,飞行器,人等都是类。例如:植物,飞行器,人等都是类。“人人”这个类具有:身高、姓名、性别、年这个类具有:身高、姓名、性别、年龄、家庭住址等属性(静态特征);龄、家庭住址等属性(静态特征);另外,另外,“人人”这个类还具有:跑步,开车,这个类还具有:跑步,开车,吃饭,思考等行为(动态特征)。吃饭,思考等行为(动
5、态特征)。8.2.2类 实例就是由某个特定的类所描述的实例就是由某个特定的类所描述的一个具体的对象。一个具体的对象。当使用当使用”对象对象”这个术语时,既可以这个术语时,既可以指一个具体的对象,也可以泛指一般的对象,指一个具体的对象,也可以泛指一般的对象,但是,当使用但是,当使用”实例实例”这个术语时,必然是这个术语时,必然是指一个具体的对象。指一个具体的对象。8.2.3实例实例消息就是要求某个对象执行在定消息就是要求某个对象执行在定义它的那个类中的某个操作的规格说义它的那个类中的某个操作的规格说明。明。通常,一个消息由下述通常,一个消息由下述3部分组成:部分组成:接收消息的对象;消息选择符接
6、收消息的对象;消息选择符(也称为也称为消息名消息名);零个或多个变元。;零个或多个变元。8.2.4消息方法就是对象所能执行的操作,也就方法就是对象所能执行的操作,也就是类中所定义的服务。方法描述了对象执是类中所定义的服务。方法描述了对象执行操作的算法、响应消息的方法。在行操作的算法、响应消息的方法。在C+C+语语言中把方法称为成员函数。言中把方法称为成员函数。我们前面介绍过,类由属性(静态数据)我们前面介绍过,类由属性(静态数据)和行为(操作)组成,实际上,这里的和行为(操作)组成,实际上,这里的“行为行为”就是面向对象中讲到的就是面向对象中讲到的“方法方法”。例如:例如:(1 1)飞行器这个
7、类的方法有:)飞行器这个类的方法有:飞行,落地等一些操作。(飞行,落地等一些操作。(2 2)“人人”这个这个类的方法:跑步,开车,吃饭,思考等。类的方法:跑步,开车,吃饭,思考等。8.2.5 方法8.2.6属性属性就是类中所定义的数据,它是对属性就是类中所定义的数据,它是对客观世界实体所具有的性质的抽象。类的客观世界实体所具有的性质的抽象。类的每个实例都有自己特有的属性值。在每个实例都有自己特有的属性值。在C+C+语语言中把属性称为数据成员。言中把属性称为数据成员。例如:飞行器这个类的属性有:颜色,例如:飞行器这个类的属性有:颜色,身长,形状等。身长,形状等。8.2.6继承继承是子类自动地共享
8、父类中定义的数据继承是子类自动地共享父类中定义的数据和方法的机制。一个类的上层可以有父类,下层和方法的机制。一个类的上层可以有父类,下层可以有子类。这种层次结构系统的一个重要性质可以有子类。这种层次结构系统的一个重要性质是继承性,一个类直接继承其父类的全部描述是继承性,一个类直接继承其父类的全部描述(数据和操作数据和操作)。继承具有传递性。继承具有传递性。例如:飞机是飞行器的子类,它继承了飞行器的例如:飞机是飞行器的子类,它继承了飞行器的所有属性和方法,但是它还有自己的属性和方法。所有属性和方法,但是它还有自己的属性和方法。飞机的属性除具有飞行器属性外,还有:飞机的属性除具有飞行器属性外,还有
9、:乘客容量。乘客容量。8.2.7 多态性在面向对象的软件技术中,多态性是在面向对象的软件技术中,多态性是指子类对象可以像父类对象那样使用,同指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发样的消息既可以发送给父类对象也可以发送给子类对象。送给子类对象。然而不同层次中的每个类却各自按自己然而不同层次中的每个类却各自按自己的需要来实现这个行为。当对象接收到发的需要来实现这个行为。当对象接收到发送给它的消息时,根据该对象所属于的类送给它的消息时,根据该对象所属于的类动态选用在该类中定义的实现算法。动态选用在该类中定义的实现算法。8.2.8重载重载有两种:函数重载和运算符重载。
10、重载有两种:函数重载和运算符重载。函数重载是指在同一作用域内的若干个参函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字;数特征不同的函数可以使用相同的函数名字;运算符重载是指同一个运算符可以施加于运算符重载是指同一个运算符可以施加于不同类型的操作数上。不同类型的操作数上。8.3UML建模语言建模语言UML(UML(统一建模语言统一建模语言)是面向对象建模语言的标准,是面向对象建模语言的标准,它可以对任何具有静态结构和动态行为的系统进行它可以对任何具有静态结构和动态行为的系统进行建模,它的主要作用是帮助用户进行面向的描述和建模,它的主要作用是帮助用户进行面向的描述和建模
11、,它可以描述软件从需求分析到软件实现和测建模,它可以描述软件从需求分析到软件实现和测试的全过程。试的全过程。作为一种建模语言作为一种建模语言,UML,UML的定义包括的定义包括UMLUML语义和语义和UMLUML表示法两个部分。表示法两个部分。(1)UML(1)UML语义语义 (2)UML(2)UML表示法表示法(1 1)模型帮助我们按照实际情况或按照我们所)模型帮助我们按照实际情况或按照我们所需要的样式对系统进行可视化。需要的样式对系统进行可视化。(2 2)模型允许我们详细说明系统的结构和行为。)模型允许我们详细说明系统的结构和行为。(3 3)模型给出一个知道我们构造系统的模板。)模型给出一
12、个知道我们构造系统的模板。(4 4)模型对我们的决策进行文档化。)模型对我们的决策进行文档化。8.3.1为什么要建模 UMLUML有两套建模机制:静态建模机制和动态建模有两套建模机制:静态建模机制和动态建模机制。机制。静可描形,动可描行。动和静是辩证的两面,静可描形,动可描行。动和静是辩证的两面,在在UMLUML中,静态建模可以描述系统的组织和结构,中,静态建模可以描述系统的组织和结构,而动态建模则可描述系统的行为和动作。而动态建模则可描述系统的行为和动作。静态建模机制包括用例图、类图、对象图、包、静态建模机制包括用例图、类图、对象图、包、组件图和配置图。组件图和配置图。动态建模机制包括消息、
13、状态图、时序图、协动态建模机制包括消息、状态图、时序图、协作图和活动图。作图和活动图。8.3.2UML建模机制建模机制(1 1)UMLUML基本构造元素:事务、关系和图。基本构造元素:事务、关系和图。(2 2)UMLUML的事务有四种:结构事务、行为事务、分组事的事务有四种:结构事务、行为事务、分组事务和注释事务。务和注释事务。(3 3)UMLUML的关系有四种:依赖、关联、泛化、实现。的关系有四种:依赖、关联、泛化、实现。(4 4)UMLUML的图有十种:用例图、类图、对象图、包图、的图有十种:用例图、类图、对象图、包图、状态图、活动图、序列图、协作图、组件图、部署状态图、活动图、序列图、协
14、作图、组件图、部署图(有的书叫实施图)。图(有的书叫实施图)。8.3.3UML的结构的结构1.1.结构事物结构事物 结构事物主要包括结构事物主要包括7 7种,分别是类、接口、协作、用例、活动类、组种,分别是类、接口、协作、用例、活动类、组件和节点。件和节点。类是具有相同属性、相同方法、相同语义和相同关系的一组对象的类是具有相同属性、相同方法、相同语义和相同关系的一组对象的集合。集合。接口是指类或组件所提供的、可以完成特定功能的一组操作的集合,接口是指类或组件所提供的、可以完成特定功能的一组操作的集合,换句话说,接口描述了类或组件的对外的、可见的动作。换句话说,接口描述了类或组件的对外的、可见的
15、动作。协作定义了交互的操作,是一些角色和其他元素一起工作,提供一协作定义了交互的操作,是一些角色和其他元素一起工作,提供一些合作的动作。些合作的动作。用例定义了系统执行的一组操作,对特定的用户产生可以观察的结用例定义了系统执行的一组操作,对特定的用户产生可以观察的结果。果。活动类是对拥有线程并可发起控制活动的对象(往往称为主动对象)活动类是对拥有线程并可发起控制活动的对象(往往称为主动对象)的抽象。的抽象。组件是物理上可替换的,实现了一个或多个接口的系统元素。组件是物理上可替换的,实现了一个或多个接口的系统元素。节点是一个物理元素,它在运行时存在,代表一个可计算的资源,节点是一个物理元素,它在
16、运行时存在,代表一个可计算的资源,如一台数据库服务器等。如一台数据库服务器等。8.3.4UML中的事务中的事务2.2.行为事物行为事物 行为事物主要有两种:交互和状态机。行为事物主要有两种:交互和状态机。在在UMLUML图中,交互的消息通常画成带箭头的直线状态图中,交互的消息通常画成带箭头的直线状态机是对象的一个或多个状态的集合。机是对象的一个或多个状态的集合。3.3.组织事物组织事物 组织事物是组织事物是UMLUML模型中负责分组的部分,可以把它看模型中负责分组的部分,可以把它看作一个个盒子,每个盒子里面的对象关系相对复杂,而作一个个盒子,每个盒子里面的对象关系相对复杂,而盒子与盒子之间的关
17、系相对简单。盒子与盒子之间的关系相对简单。组织事物只有一种,称为包。组织事物只有一种,称为包。包是一种有组织地将一系列元素分组的机制。包是一种有组织地将一系列元素分组的机制。4.辅助事物辅助事物辅助事物,也称注释事物,属于辅助事物,也称注释事物,属于这一类的只有注释。这一类的只有注释。注释即是注释即是UML模型的解释部分。模型的解释部分。在在UML图中,一般表示为折起一角的图中,一般表示为折起一角的矩形。矩形。1.1.关联关系关联关系 关联关系是关联关系是”.has a.”.has a.”(具有)的关系。在(具有)的关系。在UMLUML图图中,关联关系用一条实线表示中,关联关系用一条实线表示
18、。有一些修饰可以应用于关联。有一些修饰可以应用于关联。(1 1).名字:可以给关系取名字。见图名字:可以给关系取名字。见图8-18-1。8.3.5UML中的关系中的关系(2)角色:关系的两端代表不同的两种角色。见图8-2。(3)重数:表示有多少对象通过一个关系的实例相连。见图8-3。2.2.聚合关系聚合关系 聚合关系指的是整体与部分的关系。通常在定义一个整体类后,聚合关系指的是整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。和组成类之间就形成了聚合关系。例
19、如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力例如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇等。需求描述中攻击潜艇等。需求描述中”包含包含”、”组成组成”、”分为分为部分部分”等等词常意味着聚合关系。见图词常意味着聚合关系。见图8-58-5。聚合是聚合是”.owns a.”.owns a.”(拥有)的关系。(拥有)的关系。它的它的UMLUML表示法:空心菱形表示法:空心菱形 +实线实线 +箭头箭头 ,见图,见图8-68-6 3.3.组合关系组合关系 组合关系也表示类之间整体和部分的关系,但是组合关组合关系也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的
20、生存期。一旦整体对象不存在,系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。死的关系。组合关系是组合关系是”.is a part of.”.is a part of.”(是(是的一部的一部分)的关系。分)的关系。它的它的UMLUML表示法:实心菱形表示法:实心菱形 +实线实线 +箭头箭头 ,见图,见图8-78-7。聚合和组合的区别在于:聚合和组合的区别在于:(1)(1)聚合关系是聚合关系是”has-a”has-a”关系,组合关系是关系,组合关系是”contains-contains
21、-a”a”关系;关系;(2)(2)聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系表示整体与部分的关系比较弱,而组合比较强;(3)(3)聚合关系中代表部分事物的对象与代表聚合事物的对聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。部分事物的对象。我们用浅显的例子来说明聚合和组合的区别。我们用浅显的例子来说明聚合和组合的区别。”国破家国破家亡亡”,国灭
22、了,家自然也没有了,国灭了,家自然也没有了,”国国”和和”家家”显然也是组合显然也是组合关系。关系。(4 4)在聚合关系中,部分可以独立于聚合而存在,部分的所有)在聚合关系中,部分可以独立于聚合而存在,部分的所有权也可以由几个聚合来共享,比如打印机就可以在办公室内被广权也可以由几个聚合来共享,比如打印机就可以在办公室内被广大同事共用。大同事共用。(5)(5)组合比聚合对于组合者和被组合者的关心定义的更加有约组合比聚合对于组合者和被组合者的关心定义的更加有约束,组合者不但要知道被组合者的情况,他们的生命周期都是由束,组合者不但要知道被组合者的情况,他们的生命周期都是由组合者来控制的。组合者来控制
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程与实践 第8章 面向对象与uml语言 软件工程 实践 面向 对象 uml 语言
限制150内