西南民族大学 UML复习.doc_第1页
西南民族大学 UML复习.doc_第2页
西南民族大学 UML复习.doc_第3页
西南民族大学 UML复习.doc_第4页
西南民族大学 UML复习.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 选择 10x1 (10分)2、 判断 10x1 (10分)3、 填空 10x1 (10分)4、 简答 5x5 (25分)5、 分析设计 4题 (45分)基本概念:UML介绍UML:Unified Modeling Language (统一 建模 语言)是一种通用的模拟语言,可用于确定、展示和记录软件系统。建模语言是建模中的一个非常关键的因素。UML中的图形标记非常适用于面向对象的软件设计。什么是UML1. 不是一种可视化编程语言,而是一种可视化建模语言。2. 不是工具或知识库的规格说明,而是建模语言的规格说明,是一种表示的标准。3. 不是过程,也不是方法,但是允许任何一种过程和方法使用它。UML的设计目标:1 运用面向对象概念来构造系统模型2 建立起从概念模型直至可执行体之间明显的对应关系3 着眼于那些有重大影响的问题4 创建一种对人和机器都适用的建模语言UML已成为用于描绘软件蓝图的标准语言,它可用于对软件密集型系统进行建模,其主要特点包括:工程化、规范化、可视化、系统化、文档化和智能化。继承、多态与接口继承:如果类B继承类A,那么类A中描述的操作和信息结构将成为类B的一部分。封装、继承、派生借助继承,可以表示类之间的类似性,并且在其他类能继承的一个类中描述这些相似性。因此,就能够复用公共的描述。继承常常被提倡为软件工业界中关于复用的一个核心思想。继承还有利于软件维护。通过抽取和共享公共特性就能够通用化一些类,并且把它们放在继承层次的更高位置。同样,如果希望增加新类,可以寻找这样一个类,它已经提供了适用于该新类的某些操作和信息结构。然后,让新类继承这个类,只需增加该新类所独有的那些内容。然后,使这个类专用化。多态指同一个实体同时具有多种形式(相同的操作会产生不同的动作)。在面向对象语言中,接口的多种不同的实现方式即为多态(同样的函数在不同的类上有不同的行为) 。比如:形状类有绘制方法(同一个函数,但是不同形状有不同的绘制方法)多态性:多态性(Polymorphism)是指同一个消息为不同的对象接收时,可产生不同的动作或执行结果。接口接口的主要目的是:为不相关的类提供通用的处理服务。接口是一种约束形式,其中只包括成员定义,不包含成员实现的内容。 当类实现一个接口,它就许诺实现在那个接口中执行所有的方法。UML对系统建模OO开发的每个阶段都可以用UML模型对系统建模,从系统不同的角度可以分为:l 类模型:包图、对象图、类图l 状态模型:状态图l 交互模型:用例图、顺序图、活动图l 针对系统构架:构件图、配置图三种模型:l 类模型:提供数据模型l 状态模型:各对象的控制结构l 交互模型:对象间信息交换,系统的整体视图UML的结构:九种图形:l 静态模型(系统结构):类图、对象图、组件图、部署图l 动态模型(系统行为):时序图、协作图、状态图、活动图、用例图n 类图:类的定义:类是具有相似结构、行为和关系的一组对象的描述符类图使用出现在系统中的不同类来描述系统的静态结构,类图用来描述不同的类和它们的关系。类的UML表示法:名字放在方框正中,首字母大写,用单数名词表示类名。比如:可视性(Visibility)标记表示:+ 公共 保护- 私用可视性也可以用以下关键字表示:public(公共)、protected(保护)、private(私用)。若可视性标记为“+”或“public”,则为公共属性,可以被外部对象访问。若可视性标记为“#或“ protected”,则为保护属性,可以被本类或子类的对象访问。若可视性标记为“-”或“ private”,则为私用属性,不可以被外部对象访问,只能为本类的对象使用。可视性可以缺省,表示该属性不可视。n 对象图:对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类对象的UML表示法:一个方框,方框里面是对象名后跟冒号和类名,对象名和类名都有下划线。 比如:n 状态图:状态图元素:起点、终点、状态、事件、转换、复合状态和子状态状态图图符(常见)事件的描述:事件名称参数表变化事件(change event)是指依赖于指定属性值的布尔表达式得到满足。这是一种一直等待直到特定条件被满足的声明方式。 在UML中,用关键字When,后面跟随布尔表达式来对一个变化事件建模。你可以用表达式来标记一个绝对时间(如:When time10:00),或对表达式作不间断地测试(如when altitude 1000)。 时间事件(time event)是指在绝对时间上或在某个时间间隔内发生的事情所引起的事件。时间(段)的UML表示法是采用关键词when或者after,后面跟着用括号括起的包含时间(间隔)的表达式。如:when( date = January 1,2000 )after( 10 seconds )调用事件(Call Event)是指一个对象对操作调用的接收。 接收的类可以选择将操作实现为一个方法或实现为状态机里的一个调用事件触发器。 信号是一个异步事件,而调用事件一般来说是同步的。也就是说,当对象调用另一对象的操作时,控制就从发送者传送到接收者,该事件触发转换,完成操后,接收者转换到一个新的状态,控制返还给发送者。 (应该还有一个信号事件)n 用例图:用例图由如下元素组成:l 角色(Actor):也称为参与者,它代表系统的用户。l 系统边界(System scope):它确定系统的范围。l 用例(Use case):它代表系统提供的服务。l 关联(Association):它表示角色与用例间的关系。所有的用例都放置在系统边界内,表明它属于一个系统。角色则放在系统边界的外面,表明角色并不属于系统。但是角色负责直接(或间接地)驱动与之关联的用例的执行。UML中的用例图描述了一组用例、参与者以及它们之间的关系。参与者用人形图形表示,用例用椭圆形符号表示,连线表示它们之间的关系。用例图包含3方面内容: 用例(Use Case) 参与者(Actor) 关系:关联关系(Association)、泛化关系(Generalization)、包含关系(Include)、扩展关系(Extend)等用例图中可以包含注释、约束以及包。参与者与用例之间l 关联关系用例与用例之间l 包含关系 (include)l 扩展关系 (extend)l 泛化关系 (generalization)参与者与参与者之间l 泛化关系 (generalization) 关联关系 描述参与者与使用用例之间的关系。在UML中,关系用实线表示,实线可以有箭头,也可以没有箭头。 包含关系(include) 包含关系指两个用例之间的关系,其中一个用例(即基本用例)的行为包含了另一个用例(即包含用例)的行为。 包含关系中箭头的方向是从 基本用例 到 包含用例。 扩展关系(extend)扩展关系允许一个用例(可选)扩展另一个用例的功能。扩展只能发生在基本用例的序列中某个特定的点上,这个点叫扩展点。扩展关系中基本用例本身是完整的。在扩展关系中,箭头的方向是从扩展用例到基本用例。包含关联与扩展关联的区别:存在包含关联的两个用例,用例必须包含被包含用例;存在扩展关联的两个用例则有使用被扩展用例的选择权。 泛化关系泛化关系其实是子类与父类的关系。和类之间的泛化关系一样,用例和参与者也可以继承另一个用例和参与者。参与者与参与者之间n 顺序图:建立顺序的步骤:1) 确定交互的范围2) 识别参与交互的对象和活动者3) 设置对象生命线的开始和结束4) 设置消息5) 细化消息n 活动图:(activity diagram)活动图:显示了组成复杂过程的步骤序列,主要用于描述算法和工作流,在设计算法和工作流的早期阶段最为有用活动图的目标:显示复杂过程内部的各个步骤以及它们之间的顺序约束注意: 1)活动图可以显示控制流,但专注于操作而不是对象 2)活动图中的各项活动要有相同的细节层次粗线条:并发线程的分流和合并主要元素:起点和终点、活动、转移、接收信号和发送信号、决策点和汇合点、分叉和汇合、控制流终点、泳道泳道:(swimlane) 泳道是为组织活动图而对活动进行的分组,用来划分状态图的状态 每个泳道代表整个活动的部分高级职责 整个活动可能最后由一到多个泳道实现 使用泳道可以把活动按照功能或所属对象的不同来进行组织。属于一个对象的所有活动都放在同一个泳道内,对象的名字放在泳道的顶部。业务模型中了解哪个组织负责某项活动时使用把一项活动放在某条泳道中表明它会由组织内的某个人或某些人执行n 组件图:组件图用来建模软件的组件及其相互之间的关系。这些图由组件和组件之间的关系构成。n 部署图:部署图用来描述系统的硬件配置、硬件部署以及软件构件和模块在不同节点上分布的模型图。描述了系统运行时的硬件节点,以及在这些节点上运行的软件构件的静态视图。显示了系统中的硬件、安装在硬件上的软件,以及用于连接异构的机器之间的中间件。部署图中通常包含2个元素l 节点(Node)l 关联关系(Association)部署图可以显示节点以及它们之间的必要连接,也可以显示这些连接的类型,还可以显示构件和构件之间的依赖关系,但是每个构件必须存在于某些节点上。 四、简答题范围:1.状态图状态图主要由起点、终点和状态组成,各状态由转移连接在一起 。状态图适合于描述跨越多个用例的单个对象的行为。 状态图由状态、事件和转换三个主要元素构成。 事件: “事件”指发生在时间和空间某点上的且能够引起某些动作执行的事情事件可以是(内部事件)也可以是(外部事件)外部事件:是在系统和参与者之间传送的事件。 内部事件:是在系统内部的对象之间传送的事件四类事件:调用事件、信号事件、变更事件、时间事件 调用事件:是表示对操作的调度 信号事件:是指发送或接收信号的事件 变更事件:因满足某种条件而引起的事件,变化条件用when表示 时间事件:满足某一时间表达式而引起的事件,时间事件用after,when表示2.类与类关联,转化为代码,类与类关系定义UML六大关系l 关联关系(Association)(又分为单向关联、双向关联、自关联、多重关联)l 聚合关系(Aggregation)l 组合关系(Composition)l 依赖关系(Dependency)l 实现(Realization)l 泛化(Generalization)关联关系association关联关系是类与类之间最常用的一种关系,它是一种结构化关系,用于表示一类对象与另一类对象之间有 (has a)联系。在UML类图中,用实线连接有关联的对象所对应的类,在使用C#、C+和Java等编程语言实现关联关系时,通常将一个类的对象作为另一个类的属性。关联是模型元素间的一种语义联系,当类之间在概念上有连接关系时,类之间的连接叫做关联。队员和球队之间的关联,可以用短语“队员为篮球队效力”来刻画,图形表示为:l 单向关联public class Personprivate Bicycle bicycle; /* 骑自行车去上班 */public void goToWork()bicycle.run();l 双向关联public class Customerprivate Product Products; public class Productprivate Customer customer; l 自关联public class Nodeprivate Node subnode; l 多重关联public class Formprivate Button buttons; public class Button 关联可加上一些约束,以加强关联的含义;用ordered表示类的对象需要排序,不允许重复值对于一对对象,二元关联通常至多有一个链接,在关联端标注bagsequence,允许在一对对象上有多重链接。袋子(bag):无序,可重复序列(sequence):有序,可重复ordered和sequence是相同的,只是前一个不允许重复值,后一个允许限定符泛化关系(Generalization)泛化关系也就是继承关系,也称为“is-a”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。在UML中,泛化关系用带空心三角形的直线来表示。在代码实现时,使用面向对象的继承机制来实现泛化关系,如在Java语言中使用extends关键字、在C+ 、C#中使用冒号“:”来实现。 public class Person protected string name; protected int age; public void move() public void say() public class Student : Person private string studentNo; public void study() 实现关系(Realization)接口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间还存在一种实现关系,在这种关系中,类实现了接口,类中的操作实现了接口中所声明的操作。在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示。 public interface Vehicle public void move(); public class Ship : Vehicle public void move() Console.WriteLine(轮船航行); public class Car : Vehicle public void move() Console.WriteLine(汽车行驶); 泛化:子类向父类抽象继承:子类对父类属性和行为的继承3.高级类建模: 类图建立系统模型时可以添加的细节,包含了:l 枚举、多重性、作用域l 可见性、关联终端、N元关联l 聚合、抽象类、多重继承l 元数据、具体化、约束l 派生数据、包 枚举(enumeration):由有限取值集合组成的一种数据类型。如:enum WeekDay Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday枚举是指同一类中具有共同属性和行为的对象,只是值不同;泛化则是指具有一些相同属性和行为的对象,但是有一些重要属性或行为不能完全相同。枚举与泛化的不同(语义和UML表达)Shape类和三角形、矩形、圆形等,父类不具有子类的特征,而不仅仅是值不同书第60页 图4-2(PPT上的 没找到)派生元素是可以从其它元素计算出来的元素不增加语义信息,但是有了派生元素可以更清楚或者更有利于设计其表示法是在派生元素的名字前加一条斜线“”从多重性导出属性值4.第12章 领域分析:领域模型:理解系统问题和应用主要包括:类模型、有时候会有状态模型,很少会包含交互模型领域模型是系统的静

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论