详谈软件工程之需求工程(二)- UML统一建模语言

题外话:本篇博客讲的是软件工程中需求工程的面向对象方法(UML统一建模语言)。博主根据自己的理解整理了以下相关知识,若有讲的不对的地方请多多指教。

一、简介:

统一建模语言(英语:Unified Modeling Language,缩写 UML)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它融入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。

在UML系统开发中有三个主要的模型
功能模型:从用户的角度展示系统的功能,包括用例图。
对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。
动态模型:展现系统的内部行为。包括序列图,活动图,状态图。

二、UML结构:

UML的结构包括基本构造块、支配这些构造块如何放在一起的规则(架构)和一些运用于整个UML的机制。如下图:
在这里插入图片描述

1.构造块

UML有三种基本的构造块,分别是事物(thing)关系(relationship)图(diagram)
事物是UML中重要的组成部分,关系把事物紧密联系在一起,图是很多有相互相关的事物的组。

2.公共机制

公共机制是指达到特定目标的公共UML方法,主要包括规格说明(详细说明)、修饰、公共分
类(通用划分)和扩展机制四种

(1)规格说明:规格说明是事物语义的文本描述,它是模型真正的核心。
(2)修饰:UML为每一个事物设置了一个简单的记号,还可以通过修饰来表达更多的信息。
(3)公共分类:包括类与对象(类表示概念,而对象表示具体的实体)、接口和实现(接口用
来定义契约,而实现是具体的内容)两组公共分类。
(4)扩展机制:包括约束(添加新规则来扩展事物的语义)、构造型(用于定义新的事物)、
标记值(添加新的特殊信息来扩展事物的规格说明)。

3.规则

UML用于描述事物的语义规则分别是为事物、关系和图命名。给一个名字以特定含义的语境,
即范围;怎样使用或看见名字,即可见性;事物如何正确、一致地相互联系,即完整性;运行或模
拟动态模型的含义是什么,即执行。
在这里插入图片描述

4:UML-4+1视图在这里插入图片描述

UML对系统架构的定义是系统的组织结构,包括系统分解的组成部分、它们的关联性、交互、
机制和指导原则等这些提供系统设计的信息。而具体来说,就是指5个系统视图,分别是逻辑视图、
进程视图、实现视图、部署视图和用例视图

(1)逻辑视图:以问题域的语汇组成的类和对象集合
(2)进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描绘了
所设计的并发与同步结构
(3)实现视图:对组成基于系统的物理代码的文件和构件进行建模。
(4)部署视图:把构件物理地部署到一组物理的、可计算的节点上,表示软件到硬件的映射及
分布结构

(5)用例视图:最基本的需求分析模型
另外,UML还允许在一定的阶段隐藏模型的某些元素、遗漏某些元素以及不保证模型的完整
性,但模型逐步地要达到完整和一致。
在这里插入图片描述

5:包含、扩展、泛化关系

包含关系:其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们。

图中A为基本用例,B为抽象用例,箭头指向是基本用例指向抽象用例。

在这里插入图片描述
扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样使捕述可能更加清晰。

图中A为基本用例,B为扩展用例,箭头指向是扩展用例指向基本用例。

在这里插入图片描述
泛化关系:当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成
为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用列的一
种特殊形式,子用例继承了父用例所有的结构、行为和关系。
在这里插入图片描述

三种关系如下图:

在这里插入图片描述

列题:
在某银行业务的用例模型中 “取款”用例需要等到“存款”用例执行之后才能执行,两个用例之间的关系属于(); “取款”和“存款”两个用例中都需要执行查询余额的功能, 将查询余额提取成独立的用例,那么“取款”和“存款”用例与“查询余额”用例之间的关系属于()。
A、关联关系 B、扩展关系 C、使用关系 D、依赖关系
A、扩展关系 B、使用关系 C、依赖关系 D、继承关系

答案解析:正确答案D、B。在实际中,有种说法说“依赖关系”包括了包含关系和扩展关系,所以第一空选D,而“使用关系”又称之为包含关系,故选择B

三:图型
1、用例图:在这里插入图片描述

(1)用例图应具有的信息如下所述:

1、用例名称
开通课程(UC02)
2、简要说明:
为用户开通学习课程的权限 将其标记为“学员’\同时修改所选修课程的选修人数。
3. 事件流:
3.1 主事件流
客服人员向系统发出“开通课程”请求。
系统要求客服人员选择开通课程的类型(软考、 PMP、通信课程)。
客服人员做出选择后,系统显示相应界面,让客服人员输入信息并自动根据权限规则生成权限。
客服人员输入学员的相关信息,包括学员用户名、所交费用、交费时间、选修课程名称。
系统确认学员所交费用和所选修课程的规定费用一致。
系统将所输入的信息存储建档,开通学员课程权限。
3.2 备选事件流
a、如果学员所交费用少于所选修课程的规定费用 则显示所选修课程的规定费用,并要求客服人员选择修改或取消输入。
b、客服人员选择取消输入,则结束用例,不做存储建档工作。
c、客服人员选择修改用户所交费用后转到a。
d、如果学员所交费用多于所选修课程的规定费用,则显示多余的费用数量…
4、非功能需求
无特殊要求
5. 前置条件
客服人员登录在结教育平台系统。
6. 后置条件
修改学员权限 修改课程选 人数。
7.扩展点
无。
8.优先级
最高(满意度 ,不满意度 )。

2、类图与对象图在这里插入图片描述

关联关系中的数字含义:

1:表示一个集合中的一个对象对应另一个集合中 个对象。
o…*:表示一个集合中的一个对象对应另一个集合中的 个或多个对象。
(可以不对应)
1…*:表示一个集合中的一个对象对应另一个集合中的一个或多个对象。
(至少对应一个)
*:表示一个集合中的一个对象对应另一个集合中的多个的对象。

在这里插入图片描述

箭头指向问题:一般是箭头指向数量少的一方

列题:
UML 用关系把事物结合在一起 ()描述一个事物发生变化会影响另一个事物的语义; ()描述特殊元素的对象可替换一般元素的对象。
A.、聚合关系 B、关联关系 c、包含关系 D、依赖关系
A、实现关系 B、聚合关系 c、泛化关系 D、关联关系
答案:D、C

3、顺序图(又叫做序列图):

在这里插入图片描述
使用场景:具体在某个环节中有具体的交互,比如用户登陆、订单下单

4、活动图:在这里插入图片描述

活动图类似于传统的流程图,能够表现在系统中的基本操作流程是什么样的。
粗横线代表的是并发的起始,可以并行去执行的。
在这里插入图片描述
甬道图主要是区分哪些活动是哪些人来执行的。用甬道图可以一目了然的展现出来

5、状态图

状态图(state diagram )。状态图描述一个状态机 它由状态、转移、事件和
活动组成。状态图给出了对象的动态视图。它对于接口、类或协作的行为建模尤为
重要,而且它强调事件导致的对象行为,这非常有助于对反应式系统建模。
如下两个例子:
在这里插入图片描述
在这里插入图片描述

在订单处理的过程中 会员可以点击“取消订单”取消该订单。如果支付失败,该订单将被
标记为挂起状态,可后续重新支付,如果挂起超时30分钟未支付 系统将自动取消该订单。
订单支付成功后,系统判断订单类型:
(1 )对于常规订单 标记为备货状态,订单信息发送到货运部 完成打包后交付快递发货;
(2 )对于定制订单 会自动进入定制状态 定制完成后交付快递发货。会员在系统中点击”收
货”按钮变为收货状态,结束整个订单的处理流程。

状态图和活动图的区别:

状态图节点当中展现的是某种状态,边上面都是有触发条件的,而活动图是没有的。活动图中每个节点是要完成的动作要做的事情,而状态图节点当中表现的是状态信息。

6、通信图(协作图):

通信图(communication diagram )。通信图也是一种交互图。它强调收发消息的对象或参与者的结构组织。)顺序图和通信图表达了类似的基本概念,但它们所强调的概念不同, 顺序图强调的是时序,通信图强调的是对象之间的组织结构(关系)。
在这里插入图片描述

更多资讯请扫描以下二维码或关注微信公号“愿为最亮星”,为您提供更深层次的解答。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华星详谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值