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