《软件工程面向对象概述课件.ppt》由会员分享,可在线阅读,更多相关《软件工程面向对象概述课件.ppt(93页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程面向对象概述第1页,此课件共93页哦本章主要内容n面向对象系统概念面向对象系统概念n统一建模语言与统一建模语言与UMLnUML的模型元素的模型元素nUML图图nUML建模工具建模工具Rational Rose2第2页,此课件共93页哦主要内容n面向对象定义面向对象定义n对象对象n类与封装类与封装n继承继承n多态性和动态绑定多态性和动态绑定n消息通信消息通信n对象生存周期对象生存周期第3页,此课件共93页哦面向对象定义nCoad,Yourdon面向对象面向对象=对象对象 +类类 +继承继承 +消息通信消息通信n面向对象的主要特征:面向对象的主要特征:封装封装 (Encapsulation
2、)(Encapsulation)继承继承 (Inheritance)(Inheritance)多态性多态性 (Polymorphism)(Polymorphism)n面向对象方法面向对象方法是一种运用对象、类、继承、封装、聚合、消息是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。传递、多态性等概念来构造系统的软件开发方法。第4页,此课件共93页哦对象(Object)n现实世界中某个具体的物理实体或概念在计算现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现机逻辑中的映射和体现n对象具有的含义:对象具有的含义:在现实世界中:在现实世界中:n客观世界
3、中的一个实体客观世界中的一个实体在面向对象程序中:在面向对象程序中:n表达成计算机可理解、可操纵、具有一表达成计算机可理解、可操纵、具有一 定属性和行为定属性和行为的对象的对象在计算机世界中:在计算机世界中:n是一个可标识的存储区域是一个可标识的存储区域第5页,此课件共93页哦 静态特征:静态特征:属性(属性(attribute)一些数据,或另一个对象一些数据,或另一个对象每个对象都有它自己的属性值,表示该对象的状态。每个对象都有它自己的属性值,表示该对象的状态。动态行为:动态行为:操作(操作(operation)(也也称称行行为为、方方法法或或服服务务)规规定定了了对对象象的的行行为为,表示
4、对象所能提供的服务表示对象所能提供的服务它们的关系:它们的关系:对对象象中中的的属属性性只只能能通通过过该该对对象象所所提提供供的的操操作作来来存存取取或或修改修改第6页,此课件共93页哦第7页,此课件共93页哦类类n将现实生活中的对象经过抽象,映射为程序中的对象。对象在程将现实生活中的对象经过抽象,映射为程序中的对象。对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(类(ClassClass)。)。n例如,可以将学生对象所属的类定义为例如,可以将学生对象所属的类定义为StudentStudent。类的图形表示。类的图形
5、表示如图所示。如图所示。第8页,此课件共93页哦类类第9页,此课件共93页哦封装封装n面向对象的封装特性与其抽象特性密切相面向对象的封装特性与其抽象特性密切相关。关。封装是一种信息隐蔽技术,就是利用抽象数封装是一种信息隐蔽技术,就是利用抽象数据类型将数据和基于数据的操作封装在一起。据类型将数据和基于数据的操作封装在一起。用户只能看到对象的封装界面信息,对象的用户只能看到对象的封装界面信息,对象的内部细节对用户是隐蔽的内部细节对用户是隐蔽的n注:一个抽象数据类型可以分解为语法、注:一个抽象数据类型可以分解为语法、语义、表示和算法语义、表示和算法4 4个部分。个部分。第10页,此课件共93页哦封装
6、封装n封装的三层含义:封装的三层含义:清楚的边界清楚的边界n所有对象的内部信息被限定在这个边界内所有对象的内部信息被限定在这个边界内接口接口n即对象向外界提供的方法,外界可以通过这些即对象向外界提供的方法,外界可以通过这些方法与对象进行交互方法与对象进行交互n接口是一个没有被实现的特殊的类,它是一系接口是一个没有被实现的特殊的类,它是一系列操作的集合,我们可以把它看作是与其他对列操作的集合,我们可以把它看作是与其他对象通讯的协议。象通讯的协议。受保护的内部实现受保护的内部实现n即软件对象功能的实现细节,实现细节不能从即软件对象功能的实现细节,实现细节不能从类外访问类外访问第11页,此课件共93
7、页哦第12页,此课件共93页哦继承继承n继承是一种联结类的层次模型,为类的重用提供了方便,它提供了继承是一种联结类的层次模型,为类的重用提供了方便,它提供了明确表述不同类之间共性的方法。明确表述不同类之间共性的方法。n将公共类称为超类将公共类称为超类(superclass)(superclass)、父类(、父类(father classfather class)、祖先)、祖先(ancestorancestor)或基类()或基类(base classbase class),而从其继承的类称为子),而从其继承的类称为子类类(subclasses)(subclasses)、后代(、后代(deslen
8、danedeslendane)或导出类()或导出类(derived derived classclass)。)。第13页,此课件共93页哦多态多态n多态多态根据为请求提供服务的对象不同可以得到不同根据为请求提供服务的对象不同可以得到不同的行为的行为n动态绑定、后期绑定或运行时绑定动态绑定、后期绑定或运行时绑定在运行时对类进行实例化,并调用与实例化对在运行时对类进行实例化,并调用与实例化对象相应的方法象相应的方法n静态绑定、前期绑定或编译时绑定静态绑定、前期绑定或编译时绑定如果方法的调用是在编译时确定的如果方法的调用是在编译时确定的第14页,此课件共93页哦多态实现多态实现n方法重载方法重载是是
9、Java 实现多态性的一种方式实现多态性的一种方式指在同一个类中的两个或两个以上的方法可以指在同一个类中的两个或两个以上的方法可以有同一个名字,只要它们的参数声明不同即可有同一个名字,只要它们的参数声明不同即可n方法覆盖方法覆盖覆盖体现了子类补充或改变父类方法的能力覆盖体现了子类补充或改变父类方法的能力通过覆盖使一个方法在不同子类间表现出不同通过覆盖使一个方法在不同子类间表现出不同的行为的行为第15页,此课件共93页哦方法重载方法重载第16页,此课件共93页哦方法覆盖实现多态第17页,此课件共93页哦18消息消息(Message)n对象之间的联系是通过传递消息来实现的是对象之间的联系是通过传递
10、消息来实现的是对象之间进行通讯的一种数据结构。对象之间进行通讯的一种数据结构。n消息统一了消息统一了“数据流数据流”和和“控制流控制流”。数据方法消息到达第18页,此课件共93页哦19消息消息(Message)n消息传送与函数调用的区别消息传送与函数调用的区别函数调用可以带或不带参数函数调用可以带或不带参数消息消息至少带一个参数,它表明接收该消息的对至少带一个参数,它表明接收该消息的对象,消息中告诉对象做什么的部分称为消息操象,消息中告诉对象做什么的部分称为消息操作;作;函数名代表一段可执行的代码函数名代表一段可执行的代码消息操作名消息操作名具体功能的选定还取决于接收消息具体功能的选定还取决于
11、接收消息的对象本身的对象本身函数调用是过程式的(如何做)函数调用是过程式的(如何做)消息传送消息传送是说明式的(做什么),具体如何做,是说明式的(做什么),具体如何做,由对象根据收到的消息自行确定由对象根据收到的消息自行确定第19页,此课件共93页哦对象生存期对象生存期n对象具有动态性对象具有动态性n对象参与程序的运行,因此对象具有生存期对象参与程序的运行,因此对象具有生存期执行中,被创建执行中,被创建n实例化,自动调用该类的构造函数,初始化该实例化,自动调用该类的构造函数,初始化该对象对象完成任务时,被销毁完成任务时,被销毁n依据语言不同,销毁方式不同依据语言不同,销毁方式不同第20页,此课
12、件共93页哦本章主要内容n引言引言-面向对象技术与面向对象技术与UML发展发展n面向对象系统概念面向对象系统概念n统一建模语言与统一建模语言与UMLnUML的模型元素的模型元素nUML图图nUML建模工具建模工具Rational Rose21第21页,此课件共93页哦什么是建模什么是建模n模型模型是对现实的简化或抽象是对现实的简化或抽象它滤掉了非本质的细节,集中描绘复杂问题或它滤掉了非本质的细节,集中描绘复杂问题或结构的本质,使得问题更容易理解结构的本质,使得问题更容易理解n建立模型应注意的原则建立模型应注意的原则了解并阅读了解并阅读P64第22页,此课件共93页哦什么是建模?n建模就是认识现
13、实世界建模就是认识现实世界客观世界客观世界客观世界客观世界主观世界主观世界主观世界主观世界认识世界认识世界改造世界改造世界世界是什世界是什世界是什世界是什么样的呢么样的呢么样的呢么样的呢?第23页,此课件共93页哦模型体现现实世界n只存在同一个现实世界只存在同一个现实世界模型没有对错、只有符合建模人目的多少之分模型没有对错、只有符合建模人目的多少之分模型没有对错、只有符合建模人目的多少之分模型没有对错、只有符合建模人目的多少之分第24页,此课件共93页哦实例01-04昨天我的一个朋友结婚了昨天我的一个朋友结婚了第25页,此课件共93页哦利用UML描述分析过程完完完完整整整整故故故故事事事事情情
14、情情节节节节的的的的静静静静态态态态模模模模型型型型第26页,此课件共93页哦搞清过程的活动图第27页,此课件共93页哦拍拖过程活动图非初级阶段非初级阶段送收花送收花甜言蜜语甜言蜜语手拉手拉手手亲亲嘴亲亲嘴换戒指换戒指.进入下一轮进入下一轮告吹告吹结结婚婚初级阶段初级阶段热恋阶段热恋阶段谈婚论嫁谈婚论嫁通过通过不通过不通过通过通过不通过不通过不通过不通过通过通过第28页,此课件共93页哦求婚过程顺序图 :小伙小伙 :玫瑰花玫瑰花 :姑娘姑娘密谋密谋订购订购999999朵朵,火红火红 交货交货递交递交惊喜惊喜喜悦喜悦说说 嫁给我吧嫁给我吧!晕倒晕倒同意同意第29页,此课件共93页哦定点观察的状态
15、图初恋初恋热恋热恋苦恋苦恋亲恋亲恋爱恋爱恋首次见面首次见面(一见钟情一见钟情 )不成不成首次亲吻首次亲吻(倾情倾情 )不愉快不愉快(伤感伤感 )首次首次?(?(甜甜.不愉快不愉快(伤感伤感 )交换戒指交换戒指(戒指戒指)不愉快不愉快(伤感伤感 )痛苦痛苦(伤心伤心 )和好和好(愉快愉快 )和好和好(愉快愉快 )和好和好(愉快愉快 )和好和好(愉快愉快 )婚礼婚礼(结婚证结婚证 )不愉快不愉快(伤感伤感 )第30页,此课件共93页哦(1)(1)统一标准统一标准 UMLUML不仅统一了不仅统一了BoochBooch、OMTOMT和和OOSEOOSE等方法中的基本概等方法中的基本概念,还吸取了面向对
16、象技术领域中其他流派的长处,其中念,还吸取了面向对象技术领域中其他流派的长处,其中也包括非也包括非OOOO方法的影响。已经成为方法的影响。已经成为OMGOMG的标准。的标准。(2)(2)面向对象面向对象 UMLUML支持面向对象技术的主要概念,它提供了一批基支持面向对象技术的主要概念,它提供了一批基本的表示模型元素的图形和方法,能简洁明了地表达面向本的表示模型元素的图形和方法,能简洁明了地表达面向对象的各种概念和模型元素。对象的各种概念和模型元素。UMLUML的特点的特点第31页,此课件共93页哦(3)(3)可视化,表达能力强大可视化,表达能力强大UMLUML是一种图形化语言,用是一种图形化语
17、言,用UMLUML的模型图形能清晰地表示系的模型图形能清晰地表示系统的逻辑模型或实现模型。统的逻辑模型或实现模型。UMLUML还提供了语言的扩展机制,还提供了语言的扩展机制,用户可以根据需要增加定义自己的构造型、标记值和约用户可以根据需要增加定义自己的构造型、标记值和约束等。束等。(4)(4)独立于过程独立于过程 UMLUML是系统建模的语言,不依赖特定的开发过程。是系统建模的语言,不依赖特定的开发过程。UMLUML的特点的特点第32页,此课件共93页哦(5)(5)容易掌握使用容易掌握使用 UMLUML概念明确,建模表示法简洁明了,图形结构清概念明确,建模表示法简洁明了,图形结构清晰,容易掌握
18、使用。晰,容易掌握使用。(6)(6)与编程语言的关系与编程语言的关系 支持支持UMLUML的一些的一些CASECASE工具(如工具(如RoseRose)可以根据)可以根据 UMLUML所所建立的系统模型自动产生建立的系统模型自动产生JavaJava、C+C+等代码框架。等代码框架。UMLUML的特点的特点第33页,此课件共93页哦UML视图与图视图与图主题域视图(view)图(diagram)结构化(静态的)静态视图类图(class)设计视图内部结构(internal structure)协作图(collaboration)构件图(component)用例视图用例图(use case)动态的状
19、态机视图状态机图(state machine)活动视图活动图(activity)交互视图顺序图(sequence)通信图(communication)物理的部署视图部署图(deployment)模型管理模型管理视图包图(package),剖面(profile)第34页,此课件共93页哦剖面(profile)nUMLUML是用一个元模型(是用一个元模型(metamodelmetamodel)定义的)定义的n元模型元模型是指描述建模语言自身的模型是指描述建模语言自身的模型n剖面机制剖面机制允许在不修改基础元模型的前提下对允许在不修改基础元模型的前提下对UMLUML作有作有限的变化。限的变化。第35
20、页,此课件共93页哦UML包含三个主要的可扩展结构n约束(约束(constraintsconstraints)是以自然语言或特定形式语言的正文表示的语义条件或限制,是以自然语言或特定形式语言的正文表示的语义条件或限制,约束写在花括号中(),如约束写在花括号中(),如value0value0,ororn版型(版型(stereotypesstereotypes)是在基于现有各类模型元素的外形中定义模型元素的新类型,是在基于现有各类模型元素的外形中定义模型元素的新类型,它本质上是一种新元类(它本质上是一种新元类(metaclassmetaclass)。版型可以扩展语义,)。版型可以扩展语义,但不能扩
21、展原元模型类的结构。用但不能扩展原元模型类的结构。用标记版型,如标记版型,如signalsignaln标签值(标签值(tagged valuestagged values)是贴在任何模型元素上的被命名的信息片是贴在任何模型元素上的被命名的信息片第36页,此课件共93页哦本章主要内容n引言引言-面向对象技术与面向对象技术与UML发展发展n面向对象系统概念面向对象系统概念n统一建模语言与统一建模语言与UMLnUML的模型元素的模型元素nUML图图nUML建模工具建模工具Rational Rose37第37页,此课件共93页哦(1)UML的事物n事物是对模型中最具代表性成分的抽象,在事物是对模型中最
22、具代表性成分的抽象,在UMLUML中,可以分为结中,可以分为结构事物、行为事物、分组事物和注释事物构事物、行为事物、分组事物和注释事物4 4类。类。第38页,此课件共93页哦结构事物结构事物n结构事物是结构事物是UMLUML模型的静态部分,主要用来模型的静态部分,主要用来描述概念的或物理的元素,包括类、主动类、描述概念的或物理的元素,包括类、主动类、接口、对象、用例、参与者、协作、构件和接口、对象、用例、参与者、协作、构件和节点等。节点等。(1 1)类()类(classclass)类用带有类名、属性和操作的矩类用带有类名、属性和操作的矩形框来表示。形框来表示。第39页,此课件共93页哦结构事物
23、结构事物(2 2)主动类()主动类(active classactive class)主动类的实例应具主动类的实例应具有一个或多个进程或线程,能够启动控制活动。有一个或多个进程或线程,能够启动控制活动。第40页,此课件共93页哦(3 3)接口()接口(interfaceinterface)描述了一个类或构件的描述了一个类或构件的一组外部可用的服务(操作)集。一组外部可用的服务(操作)集。接口定义的是一组操作的描述接口定义的是一组操作的描述n而不是操作的实现而不是操作的实现接口体现了使用与实现分离的原则。接口体现了使用与实现分离的原则。第41页,此课件共93页哦(4 4)对象()对象(objec
24、tobject)对象是对象是类的实例,其名字下边加下划线,类的实例,其名字下边加下划线,对象的属性值需明确给出。对象的属性值需明确给出。(5 5)用例()用例(use caseuse case)也称用也称用况,用于表示系统想要实现的行为,况,用于表示系统想要实现的行为,即描述一组动作序列(即场景)。而即描述一组动作序列(即场景)。而系统执行这组动作后将产生一个对特系统执行这组动作后将产生一个对特定参与者有价值的结果。定参与者有价值的结果。第42页,此课件共93页哦(6 6)参与者()参与者(actoractor)也称角色,也称角色,是指与系统有信息交互关系的人、软是指与系统有信息交互关系的人、
25、软件系统或硬件设备件系统或硬件设备(7 7)协作()协作(collaborationcollaboration)用例用例仅描述要实现的行为,不描述这些行为仅描述要实现的行为,不描述这些行为的实现。这种实现用协作描述。的实现。这种实现用协作描述。n协作定义交互,描述一组角色实体和其协作定义交互,描述一组角色实体和其他实体如何通过协同工作来完成一个功他实体如何通过协同工作来完成一个功能或行为。类可以参与几个协作。能或行为。类可以参与几个协作。第43页,此课件共93页哦(8 8)构件()构件(componentcomponent)也称也称组件,是系统中物理的、可替组件,是系统中物理的、可替代的部件。
26、它通常是描述一些代的部件。它通常是描述一些逻辑元素的物理包。逻辑元素的物理包。(9 9)节点()节点(nodenode)是在运行是在运行时存在的物理元素。它代表一种时存在的物理元素。它代表一种可计算的资源,通常具有一定的可计算的资源,通常具有一定的记忆能力和处理能力。记忆能力和处理能力。第44页,此课件共93页哦行为事物行为事物n行为事物是行为事物是UML模型的动态部分,包括两类:模型的动态部分,包括两类:(1 1)交互()交互(interactioninteraction)交互由在特定的上下文环境中共同完交互由在特定的上下文环境中共同完成一定任务的一组对象之间传递的消息组成。如图所示。交互涉
27、及成一定任务的一组对象之间传递的消息组成。如图所示。交互涉及的元素包括消息、动作序列(由一个消息所引起的行为)和链(对的元素包括消息、动作序列(由一个消息所引起的行为)和链(对象间的连接)。象间的连接)。对象之间的交互对象之间的交互第45页,此课件共93页哦(2 2)状态机()状态机(state machinestate machine)描述了一个对象描述了一个对象或一个交互在生存周期内响应事件所经历的状态序或一个交互在生存周期内响应事件所经历的状态序列,单个类或者一组类之间协作的行为都可以用状列,单个类或者一组类之间协作的行为都可以用状态机来描述。态机来描述。状态机涉及到状态、变迁和活动,其
28、中状态用圆角状态机涉及到状态、变迁和活动,其中状态用圆角矩形来表示。矩形来表示。第46页,此课件共93页哦分组事物分组事物n分组事物是分组事物是UMLUML模型的组织部分。它的作用是为了降低模型的组织部分。它的作用是为了降低模型复杂性。模型复杂性。nUMLUML中的分组事物是包(中的分组事物是包(packagepackage)。)。n包是把模型元素组织成组的机制,结构事物、行为事包是把模型元素组织成组的机制,结构事物、行为事物甚至其他分组事物都可以放进包内。物甚至其他分组事物都可以放进包内。第47页,此课件共93页哦注释事物注释事物n注释事物是注释事物是UMLUML模型的解释部分,它们用来描述
29、和标模型的解释部分,它们用来描述和标注模型的任何元素。注模型的任何元素。n通常可以用注释修饰带有约束或者解释的图。通常可以用注释修饰带有约束或者解释的图。第48页,此课件共93页哦(2)UML的关系第49页,此课件共93页哦依赖关系依赖关系n依赖依赖(Dependency)(Dependency)是两个事物之间的语义关系,其中是两个事物之间的语义关系,其中一个事物发生变化会影响到另一个事物的语一个事物发生变化会影响到另一个事物的语 义,义,它用一个虚线箭头表示。它用一个虚线箭头表示。n虚线箭头的方向从源事物指向目标事物,表示源事虚线箭头的方向从源事物指向目标事物,表示源事物依赖于目标事物。物依
30、赖于目标事物。第50页,此课件共93页哦依赖关系例子你要去拧螺丝,你是不是要借助你要去拧螺丝,你是不是要借助(也就是依赖也就是依赖)螺丝刀螺丝刀(Screwdriver)来帮助你完成拧螺丝来帮助你完成拧螺丝(screw)的工的工作作public class Person /*拧螺丝拧螺丝*/public void screw(Screwdriver screwdriver)screwdriver.screw();第51页,此课件共93页哦依赖关系依赖关系第52页,此课件共93页哦依赖关系依赖关系第53页,此课件共93页哦关联关系关联关系n关联关联(association)(associatio
31、n)是一种结构关系,它描述了两个或是一种结构关系,它描述了两个或多个类的实例之间的连接关系,是一种特殊的依赖。多个类的实例之间的连接关系,是一种特殊的依赖。n关联分为关联分为普通关联普通关联、限定关联限定关联、关联类关联类,以及,以及聚合与聚合与复合复合。第54页,此课件共93页哦关联关系关联关系普通关联普通关联n普通关联是最常见的关联关系,只要类与类之间存在连普通关联是最常见的关联关系,只要类与类之间存在连接关系就可以用普通关联表示。普通关联又分为接关系就可以用普通关联表示。普通关联又分为二元关二元关联联和和多元关联多元关联。n二元关联描述两个类之间的关联,用两个类之间的一条二元关联描述两个
32、类之间的关联,用两个类之间的一条直线来表示,直线上可写上关联名。直线来表示,直线上可写上关联名。第55页,此课件共93页哦关联关系关联关系普通关联普通关联n多重性多重性(multiplicitymultiplicity):多重性表明在一个关联的两):多重性表明在一个关联的两端连接的类实例个数的对应关系,即一端的类的多少个实端连接的类实例个数的对应关系,即一端的类的多少个实例对象可以与另一端的类的一个实例相关。例对象可以与另一端的类的一个实例相关。n如果图中没有明确标出关联的多重性,则默认的多重如果图中没有明确标出关联的多重性,则默认的多重性为性为1 1。第56页,此课件共93页哦关联关系关联关
33、系普通关联普通关联n角色:角色:关联端点上还可以附加角色名,表示类的实例关联端点上还可以附加角色名,表示类的实例在这个关联中扮演的角色。在这个关联中扮演的角色。UMLUML还允许一个类与它自还允许一个类与它自身关联。身关联。第57页,此课件共93页哦关联关系关联关系普通关联普通关联n多元关联:多元关联:多元关联是指多元关联是指3 3个或个或3 3个以上类之间的关联。个以上类之间的关联。n多元关联由一个菱形,以及由菱形引出的通向各个相关多元关联由一个菱形,以及由菱形引出的通向各个相关类的直线组成,关联名可标在菱形的旁边,在关联的端类的直线组成,关联名可标在菱形的旁边,在关联的端点也可以标上多重性
34、等信息。点也可以标上多重性等信息。第58页,此课件共93页哦关联关系关联关系限定关联限定关联n限定关联通常用在一对多或多对多的关联关系中,可以限定关联通常用在一对多或多对多的关联关系中,可以把模型中的多重性从一对多变成一对一,或将多对多简把模型中的多重性从一对多变成一对一,或将多对多简化成多对一。化成多对一。n在类图中把限定词(在类图中把限定词(qualifierqualifier)放在关联关系末端的)放在关联关系末端的一个小方框内。一个小方框内。第59页,此课件共93页哦关联关系关联关系关联类关联类n关联关系的名字关联关系的名字来概括关联关系的语义来概括关联关系的语义n关联类关联类对关联关系
35、的语义做详细的定义、存储和访问对关联关系的语义做详细的定义、存储和访问用来描述关联的属性。用来描述关联的属性。第60页,此课件共93页哦关联关系关联关系聚合聚合n聚合(聚合(AggregationAggregation)也称为聚集)也称为聚集,是一种特殊的关,是一种特殊的关联。它描述了整体和部分之间的结构关系。联。它描述了整体和部分之间的结构关系。共享聚合共享聚合(shared aggregationshared aggregation)复合聚合复合聚合(composition aggregationcomposition aggregation)n如果在聚合关系中处于部分方的实例可同时参与多
36、个处如果在聚合关系中处于部分方的实例可同时参与多个处于整体方实例的构成,则该聚合称为于整体方实例的构成,则该聚合称为共享聚合。共享聚合。第61页,此课件共93页哦关联关系关联关系聚合聚合n如果部分类完全隶属于整体类,部分类需要与整体类共如果部分类完全隶属于整体类,部分类需要与整体类共存,一旦整体类不存在了,则部分类也会随之消失,或存,一旦整体类不存在了,则部分类也会随之消失,或失去存在价值,则这种聚合称为失去存在价值,则这种聚合称为复合聚合。复合聚合。第62页,此课件共93页哦关联关系关联关系导航导航n导航导航(navigabilitynavigability)是关联关系的一种特性,它通过)是
37、关联关系的一种特性,它通过在关联的一个端点上加箭头来表示导航的方向。在关联的一个端点上加箭头来表示导航的方向。第63页,此课件共93页哦泛化关系泛化关系n泛化泛化(generalization)(generalization)关系就是一般类和特殊类之关系就是一般类和特殊类之间的继承关系。间的继承关系。n在在UMLUML中,中,一般类亦称泛化类,特殊类亦称特化类一般类亦称泛化类,特殊类亦称特化类n泛化针对类型而不针对实例,因为一个类可以继承另泛化针对类型而不针对实例,因为一个类可以继承另一个类,但一个对象不能继承另一个对象。一个类,但一个对象不能继承另一个对象。n泛化可进一步划分成泛化可进一步划
38、分成普通泛化和受限泛化普通泛化和受限泛化两类。两类。第64页,此课件共93页哦泛化关系泛化关系普通泛化普通泛化n在泛化关系中常遇到在泛化关系中常遇到抽象类抽象类。n一般称没有具体对象的类为抽象类。抽象类通常作为父一般称没有具体对象的类为抽象类。抽象类通常作为父类,用于描述其他类(子类)的公共属性和行为。类,用于描述其他类(子类)的公共属性和行为。第65页,此课件共93页哦泛化关系泛化关系普通泛化普通泛化n普通泛化可以分为多重继承和单继承。普通泛化可以分为多重继承和单继承。多重继承多重继承是指一是指一个子类可同时继承多个上层父类。个子类可同时继承多个上层父类。第66页,此课件共93页哦JAVA的
39、多重继承第67页,此课件共93页哦泛化关系泛化关系受限泛化受限泛化n受限泛化关系是指泛化具有约束条件。受限泛化关系是指泛化具有约束条件。n一般有一般有4 4种约束:种约束:交叠(交叠(overlappingoverlapping)、不相交)、不相交(disjointdisjoint)、完全()、完全(completecomplete)和不完全)和不完全(incomplateincomplate)。)。第68页,此课件共93页哦实现关系实现关系n实现实现(implement)(implement)是泛化关系和依赖关系的结合,也是是泛化关系和依赖关系的结合,也是类之间的语义关系,通常在以下两种情况
40、出现实现关系:类之间的语义关系,通常在以下两种情况出现实现关系:(1)(1)接口和实现它们的类或构件之间;接口和实现它们的类或构件之间;(2)(2)用例和实现它们的协作之间。用例和实现它们的协作之间。第69页,此课件共93页哦课堂作业分析:教学管理系统的类图第70页,此课件共93页哦本章主要内容n引言引言-面向对象技术与面向对象技术与UML发展发展n面向对象系统概念面向对象系统概念n统一建模语言与统一建模语言与UMLnUML的模型元素的模型元素nUML图图nUML建模工具建模工具Rational Rose71第71页,此课件共93页哦UML的五种主要图(1)用用例例图图(Use-case di
41、agram),用用例例图图用用于于显显示示若若干干角角色色(actor)以以及及这这些些角角色色与与系系统统提提供供的的用用例例之之间间的连接关系。的连接关系。(2)静静态态图图(Static diagram),包包括括类类图图、对对象象图图和和包包图。其中类图描述系统中类的静态结构。图。其中类图描述系统中类的静态结构。(3)行行为为图图(Behavior diagram),描描述述系系统统的的动动态态模模型型和组成对象间的交互关系。和组成对象间的交互关系。(4)交交互互图图(Interactive diagram),描描述述对对象象间间的的交交互互关系。关系。(5)实现图)实现图(Imple
42、mentation diagram)第72页,此课件共93页哦用例与用例图n n场景场景:是用来描述用户和系统之间交互的顺序:是用来描述用户和系统之间交互的顺序的步骤的步骤n n用例用例:是为了达到某一用户目标而组合在一起:是为了达到某一用户目标而组合在一起的一组场景的一组场景用例图用例图:用来显示在系统(或其它实体)内的:用来显示在系统(或其它实体)内的用例与系统参与者之间的关系用例与系统参与者之间的关系主要使用场合:需求获取、定义、分析主要使用场合:需求获取、定义、分析主要使用场合:需求获取、定义、分析主要使用场合:需求获取、定义、分析第73页,此课件共93页哦用例图元语参与者参与者用例用
43、例系统边界系统边界关联关联扩展扩展包含包含泛化泛化注释体注释体注释连接注释连接第74页,此课件共93页哦(1)(1)扩展关系扩展关系向一个用例中加入一些新的动作后构成了另一个用向一个用例中加入一些新的动作后构成了另一个用例,例,这两个用例之间的关系就是扩展关系,后者这两个用例之间的关系就是扩展关系,后者通过继承前者的一些行为得来,通常把后者称为通过继承前者的一些行为得来,通常把后者称为扩展用例。扩展用例。(2)(2)使用关系使用关系当有一大块相似的动作存在于几个用例,又不想重当有一大块相似的动作存在于几个用例,又不想重复描述该动作,复描述该动作,将重复的部分分离为一个用例将重复的部分分离为一个
44、用例,两用例间关系称为使用关系。两用例间关系称为使用关系。用例图用例图第75页,此课件共93页哦示例03-01:POST系统n销售点终端(销售点终端(Point-Of-Sale Terminal,POST)系统)系统是一个计算机自动化系统是一个计算机自动化系统用来记录商品销售信息用来记录商品销售信息处理客户的支付信息处理客户的支付信息客户可以使用现金、信用卡、支票等多种支付手段客户可以使用现金、信用卡、支票等多种支付手段主要用于零售的百货商店主要用于零售的百货商店包括计算机和条形码扫描仪等硬件设备和系统运行软件包括计算机和条形码扫描仪等硬件设备和系统运行软件第76页,此课件共93页哦示例:PO
45、ST用例图启动启动AdministratorAdministrator现金支付现金支付支票支付支票支付CheckProcessingCheckProcessingCompanyCompanyCashierCashier购买商品购买商品CardProcessingCCardProcessingCompanyompany信用卡支付信用卡支付AccountAccount第77页,此课件共93页哦用例阐述Use Case:购买商品IDUC1参与者Cashier,Customer交叉引用描述顾客带着所要购买的商品来到付款处,出纳员记录下商品信息并接受付款,付款完成后,顾客带着所购买的商品离开前置条件客户
46、购买了若干件商品基本事件流:1.用例起始于顾客带着所要购买的商品到达一个销售点终端2.出纳员录入每个商品的商品号,如果出现多个商品,则还需要录入数量3.系统确定商品信息输入到正在运行的POST系统,显示当前商品信息和价格4.输入完商品信息后,出纳员向POST发出提示,提示商品信息录入完毕5.计算和显示顾客的商品价格总额6.出纳员将商品价值总额报告给顾客7.出纳员接收顾客的付款顾客的付款数可能高于商品总额8.出纳员录入顾客所付的现金总额9.系统显示出应找还给顾客的余额,打印付款收据10.出纳员收管好现金并取出要找还给顾客的现金,并支付给顾客打印付款收据11.系统记录本次交易12.顾客带着所购的商
47、品离开备选事件流:第2步:如果输入的商品号码无效,系统显示出错信息第7步:顾客没有足够的现金,则取消本次交易后置条件第78页,此课件共93页哦第79页,此课件共93页哦例例:(:(软件设计师考题)软件设计师考题)2004年上半年试题三年上半年试题三 某电话公司决定开发一个管理所有客户信息的交互式网络系某电话公司决定开发一个管理所有客户信息的交互式网络系统。系统的功能如下:统。系统的功能如下:1 浏览客户信息:浏览客户信息:任何使用任何使用Internet的网络用户都可以浏的网络用户都可以浏览电话公司所有的客户信息览电话公司所有的客户信息(包括姓名、住址、电话号码包括姓名、住址、电话号码等等)。
48、2登录登录:电话公司授予每个客户一个帐号。拥有授权帐号:电话公司授予每个客户一个帐号。拥有授权帐号的客户,可以使用系统提供的页面设置个人密码,并使用的客户,可以使用系统提供的页面设置个人密码,并使用该帐号和密码向系统注册。该帐号和密码向系统注册。3修改个人信息:修改个人信息:客户向系统注册后,可以发送电子邮件或客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。者使用系统提供的页面,对个人信息进行修改。4删除客户信息:删除客户信息:只有公司的管理人员才能删除不再接只有公司的管理人员才能删除不再接受公司服务的客户的信息。受公司服务的客户的信息。第80页,此课件共93页哦
49、问题问题1 在需求分析阶段,采用在需求分析阶段,采用UML的用例图描述系统功的用例图描述系统功能需求,如图所示。请指出图中的能需求,如图所示。请指出图中的A、B、C 和和D分别是哪分别是哪个用例个用例?第81页,此课件共93页哦本章主要内容n引言引言-面向对象技术与面向对象技术与UML发展发展n面向对象系统概念面向对象系统概念n统一建模语言与统一建模语言与UMLnUML的模型元素的模型元素nUML图图nUML建模工具建模工具Rational Rose82第82页,此课件共93页哦软件工具的概念软件工具的概念n软件工具软件工具:计算机辅助软件工程计算机辅助软件工程CASECASE工具工具指能支持
50、软件生存周期中某一阶段的需要而使指能支持软件生存周期中某一阶段的需要而使用的软件产品用的软件产品早期的软件工具早期的软件工具n主要用来辅助程序员编程主要用来辅助程序员编程n如编辑程序、编译程序、排错程序等。如编辑程序、编译程序、排错程序等。后期软件工具后期软件工具n来辅助软件工程实施来辅助软件工程实施n这些软件工具涉及到软件开发、维护、管理这些软件工具涉及到软件开发、维护、管理过程中的各项活动过程中的各项活动第83页,此课件共93页哦软件工具的分类软件工具的分类n通常可以按软件过程的活动来进行分类。如:通常可以按软件过程的活动来进行分类。如:(1)(1)支持软件开发过程的工具:支持软件开发过程