静态结构模型类图
软件工程---交互建模之交互图,顺序图与协作图

2.5 消息
格式
[前缀][守卫条件][顺序表达式][返回值:=]消息名([参数列表])
例:
2: display ()
简单消息
1.3.1: p:=find()
带返回值的嵌套消息
[x<0] 4: invert(x, color) 条件消息
3.1 *[x = 1..10] : update() 循环消息
[ 条件子句 ] 条件子句一般用来表示分枝而不是用作守卫条件[x<0]是两个可
以用来分枝的条件子句这两个条件只能有一个为真因而只有一 个分枝被执行(即发送与分枝有关的消息) 条件子句和循环子句都可以用伪代码或真正的编程语言来表示 序列表达式用冒号结束
返回值、消息名和参数表
返回值表示一个操作调用(即一个消息)的结 果
顺序图中消息编号可显示,也可不显示。 协作图中必须显示Procedure Call) 异步(Asynchronous) 返回(Return) 自关联消息(Self Message)
2.5 消息
UML三种消息:
调用(Procedure Call) 发送者把消息发送后,等待直到接收者返回控制, 可以表示同步(synchronous message); 实心箭头符号
包括对象名和类名 类名(匿名对象) 对象名(不关心类)
2.3 生命线
生命线(Lifeline):
每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时 间内的存在
垂直的虚线 如果对象生命期结束, 则用注销符号表示 对象默认的位置在图 顶部,表示对象在交互 之前已经存在 如果是在交互过程中 由另外的对象所创建, 则位于图的中间某处。
顺序图
面向时间描述对象交互的图
协作图
浅谈UML中常用的几种图

浅谈UML中常用的几种图1 UML简介2 UML常见图分类3 用况图(用例)4 类图简单类图使用举例5 其他辅助用图●时序图(顺序图)●协作图(Collaboration Diagram/communication Diagram)/通信图●状态图●活动图(Activity Diagram)6 组件图(ComponentDiagram)、配置图(Deployment Diagram)1 UML简介统一建模语言(Unified Modeling Language,UML)又称标准建模语言,是始于1997年的一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
‘UML感兴趣的可以阅读UML 1规范,包含了UML 的所有知识内容。
注:OMG, Object Management Group 对象管理组织2 UML常见图分类UML从考虑系统的不同角度出发,定义了用况图、类图、对象图、包图、状态图、活动图、序列图、通信图、构件图、部署图等10种图。
分类:面向对象动态建模,用于建立行为的实体间行为交互的四种图:状态图(Stage Diagram),序列图(Sequence Diagram),协作图(Communication Diagram),活动图(Activity Diagram) 。
“序列图”与“协作图”表述的是相似的消息,“活动图”是“状态图”的一种。
•静态结构图Static Structure Diagram•类图Class Diagram•对象图Object Diagram•用况图Use Case Diagram•交互图Interaction Diagram•顺序图Sequence Diagram•协作图Collaboration Diagram•状态图State chart Diagrams•活动图Activity Diagrams•实现图Implementation Diagrams•构件图Component Diagram•部署图Deployment Diagram3 用况图(用例)用例图,展现了一组用例、参与者(actor)以及它们之间的关系。
第三课时:静态结构图

类图
泛化关系
存在于一般元素和特殊元素间的分类关系。 可以用于类、用例以及其他模型元素。 描述了一种“is a kind of” 的关系。 泛化主要用途: 1、多态; 2、继承。继承又分为单继承和多重继承。
序列号的生成 参考美国政府 标准EV5-2211
类图
类之间的关系
1. 依赖关系: 类之间使用关系 2. 泛化关系: 类之间一般和特殊关系 3. 关联关系: 对象之间结构关系 4. 实现关系: 类中规格说明和实现之间关系
பைடு நூலகம்
类图
依 赖 关 系
表示两个或多个模型元素之间语义上的关系。 客户以某种形式依赖于提供者。 关联、实现和泛化都是依赖关系。 依赖关系分为: 1. 使用依赖(Usage) 2. 抽象依赖(Abstraction) 3. 授权依赖(Permission) 4. 绑定依赖(Binding)
类图
2、抽象依赖
表示客户与提供者之间的关系,依赖于在不同抽象层 次上的事物,包括: 跟踪(trace) 跟踪(trace):声明不同模型中的元素之间存在一些 连接,但不如映射精确。 精化(refine) 精化(refine):声明具有两个不同语义层次上的元素 之间的映射。 派生(derive) 派生(derive):声明一个实例,可以从另一个实例导 出。
类图
1、使用依赖
表示客户使用提供者提供的服务以实现它的行为,包括: 使用(use):声明使用一个模型元素需要用到已存在的 使用(use) 另一个模型元素,这样才能正确实现使用者的功能(包 括了调用、实例化、参数和发送) 。 调用(call):声明一个类调用其他类的操作的方法。 调用(call) 参数(parameter):声明一个操作和它的参数之间的关 参数(parameter) 系。 发送(send):声明信号发送者和信号接收者之间的关 发送(send) 系。 实例化(instantiate):声明用一个类的方法创建了另一 实例化(instantiate) 个类的实例 。
UML科普文,一篇文章掌握14种UML图

UML科普⽂,⼀篇⽂章掌握14种UML图前⾔上⼀篇⽂章写了⼀篇建造者模式,其中有⼏个UML类图,有的读者反馈看不懂了,我们今天就来解决⼀哈。
什么是UML?UML是Unified Model Language的缩写,中⽂是统⼀建模语⾔,是由⼀整套图表组成的标准化建模语⾔。
为什么要⽤UML?通过使⽤UML使得在软件开发之前,对整个软件设计有更好的可读性,可理解性,从⽽降低开发风险。
同时,也能⽅便各个开发⼈员之间的交流。
UML提供了极富表达能⼒的建模语⾔,可以让软件开发过程中的不同⼈员分别得到⾃⼰感兴趣的信息。
Page-Jones 在《Fundamental Object-Oriented Design in UML》⼀书中总结了UML的主要⽬的,如下:1. 为⽤户提供现成的、有表现⼒的可视化建模语⾔,以便他们开发和交换有意义的模型。
2. 为核⼼概念提供可扩展性 (Extensibility) 和特殊化 (Specialization) 机制。
3. 独⽴于特定的编程语⾔和开发过程。
4. 为了解建模语⾔提供⼀个正式的基础。
5. ⿎励⾯向对象⼯具市场的发展。
6. ⽀持更⾼层次的开发概念,如协作,框架,模式和组件。
7. 整合最佳的⼯作⽅法 (Best Practices)。
UML图有哪些?UML图分为结构图和⾏为图。
结构图分为类图、轮廓图、组件图、组合结构图、对象图、部署图、包图。
⾏为图⼜分活动图、⽤例图、状态机图和交互图。
交互图⼜分为序列图、时序图、通讯图、交互概览图。
UML图概览什么是类图?【概念】类图是⼀切⾯向对象⽅法的核⼼建模⼯具。
类图描述了系统中对象的类型以及它们之间存在的各种静态关系。
【⽬的】⽤来表⽰类、接⼝以及它们之间的静态结构和关系。
在类图中,常见的有以下⼏种关系。
泛化(Generalization)【泛化关系】是⼀种继承关系,表⽰⼦类继承⽗类的所有特征和⾏为。
【箭头指向】带三⾓箭头的实线,箭头指向⽗类。
UML主要功能及特点

UML主要功能及特点1 UML概述2 UML主要功能3 UML特点4 UML优缺点分析1UML概述UML(Unified Modeling Language,统一建模语言)承袭面向对象分析与设计(OOAD Object Oriented Analysis and Design)的方法,是一种用来描述系统蓝图的标准模式语言。
它是由三位面向对象方法领域著名的方法学家Booch、Rumbaugh 和Jacobson提出,结合了他们以及其它众多优秀方法和思想,得到了世界知名公司如Microsoft,HP,IBM,Rational 等的使用和支持,并于1997 年11 月被OMG(Object Management Group)组织采纳作为基于对象技术的标准建模语言。
它融入了软件工程领域的新思想、新方法和新技术,不仅支持面向对象的分析和设计,还支持从需求开始的软件开发过程,是近十年来最具有划时代意义的软件技术之一。
它是一种可以应用于任何软件开发过程的标记法和语义语言)。
作为对软件解决方案的业务领域进行描述的事实上的标准,UML 是第一种获得大多数从业者、软件厂商和学术界一致认同的表示法。
UML 是一种通用的可视化建模语言,用于对软件描述、可视化处理、构造和建立软件系统制品的文档。
它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。
UML 适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。
UML 包括概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。
它可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。
UML 标准并没有定义一种标准的开发过程,但它适用于迭代式的开发过程。
它是为支持大部分现存的面向对象开发过程而设计的。
UML 描述了一个系统的静态结构和动态行为。
UML静态模型

UML静态建模—类图与对象图
关系
关联(Association)
关联用于描述类与类之间的连接。由于对象是类的实例,因此类与 类之间的关联也就是其对象之间的关联。
泛化(Generation)
又称继承,A generalization is a relationship between a more general and a more specific element。
9.
{
10.
employee = p;
11.
}
12. }
13. class Person
14. {
15.
… (略)
16. }
UML静态建模—类图与对象图
关系—组合聚合(composition Aggregation)
如果构成整体类的部分类完全隶属于整体类,则这样 的聚合称为复合聚合。换句话说,如果没有整体类则 部分类也没有存在的价值,部分类的存在是因为有整 体类的存在。
关系—共享聚合(Shared aggregation)
1. // 主程序 2. Person p = new Person(); 3. Team t = new Team(p);
4. class Team
5. {
6.
Person employee;
7.
// Constructor
8.
public Team(Person p)
由名称、属性 、方法构成
对象是类的实例。
类之间的关系一共有四种:关联、泛化、依赖、 实现化。 包(Package) 用来分类、组织类。
关联:用于表示类的对象之间的关系。其特殊
user
形式有组成关联和聚集关联。
UML2.0

计时图
下图中给出了计时图的一种示例,它是 用于表示对象“:User”的生命线的计时 图。
sd UserAcc_User 状态 WaitAccess :User WaitCard 对象 Idle Code OK {t..t+3} {d..3*d} 状态变化
CardOut 时间约束
0
1
2
t
事件
计时图
计时图
用定时图表示一个电子门禁系统的控制 逻辑,该门禁系统包括门(物理的门), 智能读卡器(读取用户的IC卡信息), 处理器(用来处理是否开门的判断)。
计时图
计时图
在这个例子中,一开始读卡器是启用的(等用 户来刷卡),处理器是空闲的(没有验证的请 求),门是关的.现在看用户使用门禁系统时, 电子门禁系统的控制逻辑:
概述
概述
一个协作有两个方面:结构和行为。
在结构方面,一个协作可以包含任意的分类符的组 合,如类、接口、组件、节点,以及它们的联系等。 但是,一个协作并不拥有参与协同的这些模型元素, 而只是引用它们。协作只是一种概念性的结构块, 而不是系统的一个物理性的结构块,在这一点上协 作与包、子系统是不同的。 在行为方面,一个协作规定了参与协同的模型元素 相互交互的动态行为。
下图表示,只接受start或stop消息 (consider{start,stop}),而且在start消息之后必须是一 个stop消息(assert操作符表示),而不能是其他消息
顺序图——表示循环和分支
consider和assert操作符
顺序图——表示循环和分支
ignore和assert操作符混用。
交互概述图
UML复习知识要点

UML 复习知识要点1.什么是UML ?用UML 进行建模的目的是什么?UML 的主要特点是什么?2.UML 中包含哪9 种图?每种图的用途是什么?3.什么是用例?什么是参与者?用例之间、参与者之间以及用例与参与者之间有分别什么关系?其表示符号是什么?根据需求分析要求能画出系统的用例图。
4.什么是交互图?什么是顺序图和协作图?二者有何异同?顺序图和协作图中分别包含哪些建模元素?5.怎么设计顺序图和协作图?会根据需求分析设计顺序图和协作图。
6.什么是类和类图?类之间的关系有哪几种?关联的命名方式?会判断类之间的各种关系。
会画类图。
7.一般可以把类图分为哪三个抽象层次?各有什么用途?8.类关联中聚集( aggregation )和组合( composition )两者之间有何区别?9.类和对象的关系?关联和链的关系?10.数据库设计可分为哪几个阶段?在Rose 中数据库设计的步骤是什么?何谓对象模型转换为数据模型?何谓数据模型转换为对象模型?11.什么是正向工程和逆向工程?12.什么是活动图和状态图?二者有何异同点?分别适用于什么场合?掌握状态图和活动图中的基本概念?会根据需求描述画系统的状态图和活动图。
13. 什么是构件图和部署图?二者有什么作用?构件有哪几种类型?熟悉部署图中的基本概念?考试题型:一、选择题(每题1分,共20分)二、填空题(每题2分,共20分)三、判断改错题(每题2分,共10分。
对的打“,错的打“X”并说明错误原因,只打“X”未说明错误原因记1分)四、简答题(约30分)五、案例分析与设计:(约20分)1、网络的普及带给了人们更多的学习途径,随之用来管理远程网络教学的“远程网络教学系统”也诞生了。
“远程网络教学系统”的功能需求包括:(a) .学生登录网站后,可以浏览课件、查找课件、下载课件、观看教学视频。
(b) .教师登录网站后,可以上传课件、上传教学视频、发布教学心得、查看教学心得、修改教学心得。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
建立静态结构模型
基本的分析过程: Step 1:从用例模型入手,识别概念类; Step 2:描述各个类的属性; Step 3:定义各个类的操作; Step 4:建立类之间的关系; Step 5:绘制类图(class diagram)
识别概念类
如何从用户的需求陈述中找到“概念类”? ——名词驱动的识别方法
并收款。付款完成后,顾客带着所购买的商品和收据离开。
明显无意义的对象:收款处
用例名称:预定房间 涉及的参与者:酒店前台 正常事件流: 1) 前台人员向系统提供需要预定房间的类型、时间和预定天数。 2) 系统确认有相应档次的空闲房间,并计算出总费用和定金。 3) 前台人员向系统提供旅客信息(姓名、地址、联系电话、证件号等)。 4) 系统记录旅客信息。 5) 前台人员确认已经交纳定金。 6) 系统记录房间已经预定,工作完成。
用例名称:预定房间 涉及的参与者:酒店前台 正常事件流: 1) 前台人员向系统提供需要预定房间的类型、时间和预定天数。 2) 系统确认有相应档次的空闲房间,并计算出总费用和定金。 3) 前台人员向系统提供旅客信息(姓名、地址、联系电话、证件号等)。 4) 系统记录旅客信息。 5) 前台人员确认已经交纳定金。 6) 系统记录房间已经预定,工作完成。
面向对象的分析模型
面向对象的分析模型
面向对象分析的过程
第一阶段:业务领域分析 分析应用领域的业务范围、业务规则和业务处理过程,确定系统的责 任、范围和边界,确定系统的需求。 在分析中需要着重对系统与外部的用户和其他系统的交互进行分析, 确定交互的内容、步骤和顺序。 ——用例模型
第二阶段:发现和定义对象和类 识别对象和类,确定它们的内部特征:属性与服务操作。 这是一个从现实世界到概念模型的抽象过程,而抽象是面向对象分析 的基本原则。 第三阶段:识别对象的外部联系 在发现和定义对象和类的过程中,需要同时识别对象与对象、类与类 之间的各种外部联系,如一般与特殊、整体与部分、实例连接(关联)、 消息连接等联系。 对象和类是现实世界中的事物的抽象,它们之间的联系也要从分析现 实世界事物的各种真实的联系中获得。
借书用例描述
用例描述如下: 1.图书管理员将读者借书卡提供给系统; 2.系统验证读者身份和借书条件; 3.图书管理员将读者所借图书输入系统; 4.系统记录借书信息,并且修改图书的状态和此种书的可借数量; 5.系统修改读者的可用限额; 6.重复3-5,直到图书管理员确认全部图书登记完毕; 7.系统打印借书清单,交易成功完成。
图书馆系统的对象
名词类别
概念类列表
显而易见的对象 明显无意义的对象
读者 借书卡 图书 借书信息 借书清单
读者身份
不确定类别的对象
借书条件 图书状态 可借数量 可用限额
• 图书状态总是和具体的图书联系在一起,不是一个独立的对象。同理, 借书数量、可用限额是读者属性。
• 可借数量是某个图书品种的特性,每本图书归属于一个图书品种,图书 品种是一个隐含概念
对用户需求陈述进行“语法分析”,找出所有的名词或名词短语,对 其标注下划线; 合并同义词; 将最终得到的每一个名词映射为一个类; 动词映射为类的操作,形容词/名词映射为类的属性。
借书用例
借书用例描述
用例描述如下: 1.图书管理员将读者借书卡提供给系统; 2.系统验证读者身份和借书条件; 3.图书管理员将读者所借图书输入系统; 4.系统记录借书信息,并且修改图书的状态和此种书的可借数量; 5.系统修改读者的可用限额; 6.重复3-5,直到图书管理员确认全部图书登记完毕; 7.系统打印借书清单,交易成功完成。
不同类别的概念
人员:系统需要保存或管理其信息的人员(如录像商店的会员、图书 馆的读者),或在系统中中扮演一定角色的人员(如录像商店的职员、 论文评阅教师)。 组织:在系统中发挥一定作用的组织机构(如录像商店的连锁店,医 疗保险系统中的医院,学校中的系)。 物品:需要由系统管理的各种物品(如录像商店的商品、图书),包 括无形事物(如学校的一门课程、毕设题目)。 设备:在系统中被使用或由系统进行监控的设备、仪器等,系统运行 中的硬件设备(如打印机)除外。 事件:需要由系统长期记忆的事件(如在自动柜员机上的每次取款事 件、每次借书事件)。
不同类别的概念(续)
规格说明:系统中关于对象的规格信息的描述。 – 如图书品种,每种图书有一个唯一的馆藏号,同时该图书还包含一些描述信
息,如书号、价格、作者、出版社等,多本图书对象共用这些规格说明。这 是一种经过了抽象的概念,应该识别为概念类。 业务规则或政策:系统中经常使用的业务规则或政策的文字描述。 – 业务规则通常会在用例文档之外以其他条款说明。如图书馆系统中,对不同 违规行为指定不同的罚款金额,商店对不同顾客或产品有不同的折扣策略等。 如果这些规则无法并入到其他对象中,则可以作为概念类建立。 – 通常规则可能仅有属性,或者仅有操作,比如折扣策略可能是一个纯粹的计 算类。
面向对象的分析
分析业务领域,找出问题解决方案,发现对象,分析对象的内部构成 和外部关系,建立软件系统的对象模型。 着重分析业务领域和系统责任,建立独立于实现的OOA模型,暂时忽 略与系统实现有关的问题。 主要使用5种图描述完整的系统需求: 用例图 类图 时序图 协作图 状态图
面向对象的分析模型
功能模型:从用户的角度获取功能需求,由用例模型表示 (已在上堂课学习过); 静态结构模型(分析对象模型):描述系统的概念实体,由 类图表示; 动态行为模型:描述对象之间的交互行为,由状态图和顺 序图表示。
第四阶段:建立系统的静态结构模型 分析系统的行为,建立系统的静态结构模型,并将其用图形和文字说 明表示出来,如绘制类图、对象图、系统与子系统结构图等,编制相 应的说明文档。 第五阶段:建立系统的动态行为模型 分析系统的行为,建立系统的动态行为模型,并将其用图形和文字说 明表示出来,如绘制用例图、交互图、活动图、状态图等,编制相应 的说明文档。
• 借书条件是一种规则,可以作为对象吗?
练习
阅读用例描述,找出概念类
用例名:购买商品 参与者:出纳员 描述:顾客带着所要购买的商带着所购买的商品和收据离开。
练习
阅读用例描述,找出概念类 用例名:购买商品 参与者:出纳员 描述:顾客带着所要购买的商品来到收款处。出纳员记录下商品信息