全国高等院校应用型创新规划教材·计算机系列UML基础与建模实用教程
- ISBN:9787302511229
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:291
- 出版时间:2017-03-01
- 条形码:9787302511229 ; 978-7-302-51122-9
本书特色
《UML基础与建模实用教程》以网上书店系统建模、气象监测系统建模两个大型系统建模为样板,详细演示了系统的领域建模、用例建模和动态建模的全过程,为读者讲解了建模的每个环节中用到的建模原则、建模步骤和建模经验。《UML基础与建模实用教程》配备电子课件和电子教案、教学大纲、实验指导书和习题答案等教学资源。
内容简介
《UML基础与建模实用教程》是一本关于UML语言基础和建模方法的实践教程,以真实系统的需求、分析、设计为语境,详细介绍了UML语言的体系结构、UML符号的语义、语法规则、公共机制、表示方法及UML建模方法。同时,《UML基础与建模实用教程》以网上书店系统建模、气象监测系统建模两个大型系统建模为样板,详细演示了系统的领域建模、用例建模和动态建模的全过程,为读者讲解了建模的每个环节中用到的建模原则、建模步骤和建模经验。 《UML基础与建模实用教程》理论与建模实训紧密结合,通过学习能够真正掌握建模技术。《UML基础与建模实用教程》适合作为高等院校计算机专业及其他相关专业的教材,也可以作为培训机构计算机相关专业的培训教材。
目录
节选
第2章 UML语言体系 本章要点 1. UML语言组成、事物、关系、图。 2. 采用5种视图对系统体系结构建模。 学习目标 1. 了解UML语言体系的组成和结构。 2. 理解系统体系结构建模的重要性。 2.1 UML语言组成 UML语言是一种绘制软件蓝图的设计语言。正如中文语言是由词、语法规则组成的一样,UML语言由构造块(相当于词)、规则(相当于语法规则)和公共机制3个部分构成。其结构如图2-1所示。 图2-1 UML语言的组成 1.构造块 UML构造块又细分为3种:事物、关系和图。 (1) 事物:代表系统中的简单实体(如学生、老师、教师等)。 (2) 关系:代表实体间的联系(如同学关系、同事关系等)。 (3) 图:由多个边将多个顶点连接在一起构成的事物。这里的顶点指事物,边是指关系(如五边形图形由5个顶点和5条边组成)。如图2-2所示为构造块的3种类型。 图2-2 构造块的3种类型 2.规则 规则是指每个构造块必须遵守的语法和表示法。比如,每个构造块必须有名称、范围、可见性、完整性和可执行等属性。构造块应该遵守的规则如图2-3所示。 图2-3 构造块应遵守的规则 (1) 名称:指每个构造块代表的事物应该有一个名字。 (2) 范围:每个构造块代表的事物的作用范围。 (3) 可见性:所有的构造块一定存在于某个包中,因此构造块必然存在访问权限或者级别。正如Java语言中的类、接口都存在可见性一样,UML中的构造块也存在可见性,即访问级别。 (4) 完整性:同一构造块代表的事物在不同模型中的语义必须是一致的。 (5) 可执行:构造块代表的事物在分析、设计、编码阶段都在演化,但是它代表的事物在整个演化过程中必须是合理、有效的。比如,分析阶段的类Dog,当演化到代码中的Dog时,这个Dog必须是合理、有效的。 3.公共机制 公共机制是指每个事物必须遵守的通用规则。可以将公共机制进一步细分为详述、修饰、通用划分及扩展机制。公共机制的组成如图2-4所示。 图2-4 公共机制的组成 下面几节分别对事物、关系、图的概念、表示法进行详细介绍。 2.2 构造块:事物 事物是UML语言中*基本的构造块。根据构造块的性质,可将其划分为4类:结构事物、行为事物、分组事物和注释事物。 2.2.1 结构事物 结构事物是UML语言中的名词,通常用来描述系统中的概念或者物理实体,是模型的静态部分。结构事物进一步细分为7种,分别是类(及其对象)、接口、用例、协作、构件、结点和制品。下面分别介绍7种结构事物的概念和表示法。 1.类和对象 类是对具有相同属性、相同操作及相同关系的一组对象的共同特征的抽象,即类是对一组对象共同特征的描述。类是对象的模板,而对象是类的一个实例。 1) 类的表示 在UML中,类用一个长方形框表示。图中把一般长方形框分为3栏,第1栏列出类名,第2栏列出类的属性,第3栏列出类的操作。类名不能省略,属性和操作可以不用列出。 图2-5是Flight类(航线)的UML表示法。第1栏列出类名Flight;第2栏列出类的3个属性,分别是flightNumber、departureTime和flightDuration;第3栏列出类的两个操作,分别是delayFlight()和getArrivalTime()。 图2-5 Flight类的UML符号 2) 对象的表示 对象也用一个长方形框来表示,只是用“对象名:类名”的格式表示一个对象,并且对象名和类名下面必须带下画线。表示对象时,第2栏和第3栏可以省去。例如,图2-6所示为对象“李世民”的UML表示法。 图2-6 对象“李世民”的UML符号 3) 主动类及其表示 一个对象可以是主动的也可以是被动的。主动对象可以改变自身状态,被动对象只有在接收到消息后才会改变自身的状态。例如,定时器和时钟就是主动对象,它们可以在没有外部事件触发的情况下改变它们自身状态。银行账户就是被动对象,银行账户的属性不会发生变化,除非银行账户接收到一条设置余额(一种用于更新账户余额的操作)的消息,账户才改变状态。 用主动类创建的对象就是主动对象。主动类的表示与一般类相似,只是矩形框用粗线表示而已,如主动类(时钟)的表示方法如图2-7所示。 2.接口 因为访问类、对象或构件是通过其方法来实现的,因此把类、对象、构件的方法集合称为接口。接口向外界声明了类(或构件)能提供的服务。 接口分为供给接口和需求接口两种,供给接口只能向其他类(或构件)提供服务,需求接口(本质上不存在需求接口,它只是一种形式)表示类(或构件)需要用到接口中声明的服务,这些服务由其他类(或构件)提供。比如,一个不会讲英语的人,需要“中英文翻译”接口,在形式上,就把“中英文翻译”这个由其他构件(中英文翻译机)提供的服务作为人的需求接口。本质上,人是没有“中英文翻译”接口的,它只是说明人需要能提供“中英文翻译”的构件。 上述两种接口的表示方法如图2-8所示。 图2-7 表示主动类(时钟)的符号 图2-8 表示接口的UML符号 3.用例 把为实现某个目标而执行的一系列有序操作的集合称为场景。例如,客户小刘在柜员机上取款500元的一系列操作构成一个场景;客户小王在柜员机上取款300元的一系列操作也是一个场景。无论多少个客户,他们在柜员机上取款的一系列操作是相似的,即所有客户取款的场景是相似的,只是取款时,输入的密码、取款金额不同。 用例(用例定义,参考第13章)是对一组相似场景的共同操作的抽象。例如,可以用一个动作序列来描述所有取款客户的相同操作。因此,用例的每一次的具体执行就是一个场景,即场景是用例的一个实例,是用例的一次具体执行;用例是对所有相似场景的抽象和描述。用例与场景的关系正如类与对象的关系。 在UML中,用例是用一个实线椭圆形来表示的,在椭圆中写上用例名称,如用例“取款”的表示方法如图2-9所示。 4.协作 在系统中,把一组对象之间相互发送消息和接收消息的现象称为交互。把一组对象为了完成某个任务执行的交互现象称为协作。 用例的一次具体执行就是一个场景。在场景中,多个对象之间的相互协作实现了场景,即实现了用例描述的功能。本质上说,协作就是用例的实现。 协作用一个带两个分栏的虚线椭圆形来表示。例如,协作“销售”的表示方法如图2-10所示。 图2-10 协作“销售”的表示 图2-10表示协作“销售”由6个对象相互合作完成销售功能,其主要语义如下。 (1) 生产商生产出产品并以低价售给批发商和零售商,从中获得了利润。 (2) 批发商以比生产商较高的价格出售给销售商或中介,零售商在自己的商店得到 更高利润。 (3) 顾客以较高的价格买到自己想要的商品。 5.构件 构件也称组件,它是指系统设计中的一个相对独立的软件部件,它把功能实现部分隐藏在内部,对外声明了一组接口(包括供给接口和需求接口)。因此,两个具有相同接口的构件可以相互替换。 构件是比“对象”更大的软件部件,如一个COM组件、一个DLL文件、一个JavaBeans及一个执行文件都可以是构件。构件通常采用带有两个小方框的矩形表示,将构件的名字写在方框中,如图2-11所示。 6.结点 结点是指硬件系统中的物理部件,通常具有存储空间或处理能力,如PC、打印机、服务器、显示器等都是结点。在UML中,用一个立方体表示一个结点。例如,结点“显示器”的表示方法如图2-12所示。 7.制品 制品是系统中可以替换的物理部件,包括物理信息(比特流)。制品通常代表对源码信息或者运行时信息的物理打包。一般将制品表示为一个矩形,在制品名称的上方写上关键字《artifact》。 图2-11 表示构件的UML符号 图2-12 结点“显示器”的UML符号 2.2.2 行为事物 行为事物描述了事物的动态特征,即描述事物之间的交互、交互引起的事物状态变化以及交互引起的活动执行轨迹。行为事物分3种:交互、状态、活动。 1.交互 交互用来表示对象之间的相互作用,即发送和接收消息的现象。 一般用一条有向直线来表示对象间的交互,并在有向直线上方标注消息名称即可,如图2-13所示。 2.状态 事物处于某个特定属性值时的现象称为状态(如某人年龄处在0~12岁时,认为是处于少年状态)。 在UML中,状态用一个圆角矩形表示,状态名称写在圆角矩形框中。例如,手机处在“正在通话”状态的表示方法如图2-14所示。 图2-13 表示交互的UML符号 图2-14 表示“正在通话”状态的UML符号 3.活动 活动描述了事物执行的一系列步骤,它关注的是活动执行的流程。在第8章将详细讲解活动图。 交互强调一组对象之间的接收和发送消息的现象;状态强调的是在一个时间段内对象的生命周期;活动注重的是步骤之间的活动流程,并不关心哪个对象执行了哪个步骤。 2.2.3 分组事物 分组事物是UML语言提供的分割机制,它将系统中的事物分成多个部分进行管理。就像中文语言里,通过段标记把一篇文章分成多个段落一样。在开发大型软件系统时,通常会包含大量的类、接口及用例,为了能有效地对这些类、接口和用例进行分类和管理,就需要对其进行分组。在UML中可通过“包(Package)”来实现这一目标,即通过包对事物进行分组。 表示“包(Package)”的图形符号与Windows中表示文件夹的图形很相似,包的作用与文件夹的作用也很相似。例如,Java语言中的java.awt包,用UML符号表示则如图2-15所示。 2.2.4 注释事物 注释就是对其他事物进行解释、说明。一般用文字进行注释。注释符号用一个右上角折起来的矩形表示,解释的文字就写在矩形框中,如图2-16所示。 2.3 构造块:关系 2.2节中介绍了代表事物的构造块,本节将介绍代表事物之间关系的符号。在UML中共定义了24种关系,相应的有24种关系符号,如表2-1所示。 表2-1 UML中的关系及其符号 关系 关系 细化 UML中的关系 UML符号 关系 关系 细化 UML中的关系 UML符号 抽象 派生 依赖关系 《derive》 导入 私有 依赖关系 《access》 显现 《manifest》 公有 《import》 实现 实现关系 虚线加空心三角形 信息流 《flow》 精化 依赖关系 《refine》 包含并 《merge》 跟踪 《trace》 许可 《permit》 关联 关联关系 实线 协议符合 未指定 绑定 依赖关系 《bind》 (参数表) 替换 依赖关系 《substitu-te》 部署 《deploy》 使用 调用 《call》 扩展 Extend 《extend》 (扩展点) 创建 《create》 扩展 extension 扩展关系 实线加实心三角形 实例化 《instanti-ate》 泛化 泛化关系 实线加空间三角形 职责 《responsi-bility》 包含 依赖关系 《include》 发送 《send》 上述有24种关系,在UML中,可以归纳为关联关系、泛化关系、实现关系、依赖关系和扩展关系5种,下面介绍这些关系的表示方法。 1.关联关系 只要两个类之间存在联系,就认为这两个类之间存在关联关系。关联是人们赋予事物之间的联系。实现关系、泛化关系和依赖关系统称为关联关系,只是这些关系内涵更丰富,更明确,更具体。关联关系是对关系的*高层次的抽象,在所有关系中,关联的语义*弱。 在关联关系中有两种比较特殊的关系,它们是聚合关系和组合关系。聚合关系和组合关系能通过Java语言实现,关联关系不能通过Java语言实现,所以,在设计阶段,我们必须把分析阶段的关联关系细化为更具体的关系,如细化为聚合关系、组合关系或者依赖关系等。 1) 关联关系的表示 关联关系是比较抽象的关系,它包含的语义较少;聚合关系和组合关系是更具体的关联关系,它包含的语义更具体,内涵更丰富。在UML中,使用一条实线来表示关联关系,如图2-17所示。 图2-17 表示关联关系的UML符号 2) 聚合关系 聚合(Aggregation)是整体与部分的关系,是一种特殊形式的关联。聚合关系是一种松散的对象间关系——计算机与它的外围设备就是聚合关系。一台计算机(整体)和它的外设(部分)之间松散地结合在一起,这些外设可以与其他计算机共享,即部分可以离开整体而存在。 聚合的表示方法如图2-18(a)所示。其中菱形端表示事物的整体,另一端表示事物的部分。例如,计算机就是整体,外设就是部分。 ……
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
情感计算
¥66.8¥89.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥48.3¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
LINUX实战——从入门到精通
¥48.3¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0