基于UML的需求分析和系统设计

基于UML的需求分析和系统设计

原文地址:基于UML的需求分析和系统设计

一、项目开始阶段

通过与用户的访谈,确认待开发系统“要做什么”,从企业角度研究:

  • 是否能做
  • 是否能盈利

抓住重点:

  • 项目的范围:找出目前已存在的系统,~是否提供了相关的集成接口。
  • 必要的业务流程:初期应该捕捉“必要的”业务流程,避免对细节的研究。
  • 项目的技术限制:包括使用的技术以及其他系统间的交流接口规范。
  • 项目成功关键因素:了解利益相关方对整体项目成功与否最关切的问题是什么,并且评估问题和项目成败的风险是否相关。

上述四个重点,一开始就决定了项目是否会成功,如果项目开始就落入细节性的讨论,反而容易造成项目的失败。

二、需求分析阶段

与客户(领域专家)沟通,进行需求的收集和分析,标准文书表达,形成需求规格说明书,交由设计人员进行后续的系统设计工作。
UML的用户例图是用于需要收集和表达的有力工具,但非易事,可能是零散的、没有系统性的。
因此在分析用户例前,可先对企业级的业务流程进行规划和设计,抓住企业的本质工作流,为后续进行详细的需求收集和用例分析做好准备。

1、业务流程设计

可以通过“企业级的用例”来完善工作流程规划与设计,不过,大部分领域专家对“用例”的接受度较差,因此可用另一个工具进行企业的建模,即Eriksson和Penker所提出的一个活动图的构造型,称为“Eriksson-Penker业务扩展模型”

1)业务流程规划--Eriksson-Penker业务扩展模型

Eriksson-Penker业务扩展模型是一种“目标导向”的流程分析方式,主要是将与业务流程相关的重要人、事、物以及这个业务流程所要实现的目标做一个链接,描述了企业重要的人、事、物与流程的关系。
在项目开始队阶段,需求分析人员可以通过“Eriksson-Penker业务扩展模型”找出要开发系统的重要性,利用“目标导向 ”方式,对业务流程进行适当的切割。

Eriksson-Penker业务扩展模型示例

2)业务流程分析--活动图

表达业务流程的活动图示例

2、需求收集--用例图

业务流程相关的用例图示例

三、系统设计阶段

前一阶段的主要产物是用例图,后续的设计与开发都将以用例驱动,系统设计阶段的主要工作,便是实现用户例。

1、实现用例

实现用例的目的在于保证系统的设计可以满足用户的功能性需求,在实现用例过程种,应该利用Jacobson所分类的三种分析类:

  • 控制对象:
  • 实体对象:
  • 边界对象:

1)勾勒用例的控制对象

2)针对控制对象绘制序列图

3)找出用户例的实体对象

4)系统设计阶段的开发流程

2、建立领域模型

上面的实体对象与领域模型的关系???

1)“领域模型”的概念

2)使用类图表达领域模型

3)实际安全演示

(1)住出院系统业务流程

在项目立项之后,需求分析师与医院的领域专家通过面对面的访谈,整理出了医院实际上的住院出院流程,并绘制成活动图。


住出院系统业务流程

(2)住出院系统用例模型

需要分析师基于企业的业务流程图,与领域专家通过进一步沟通,进行需求的收集,最终绘制出用例图。当然下图中没有包含用例叙述。


住出院系统用例模型

(3)住出院系统领域模型

在得到用例图之后,便进入实现用例的阶段,可以通过上一节所介绍的有三种分类找到问题领域工勤上的重要概念,从而得到领域模型,然后通过类图来表达。
比如针对上一节用例图中的“登记出院记录”用例,通过分析可以得到一个控制对象(登记出院记录BPO)和多个实体对象(病床、病人、医生、护士、病症等),并绘制成如下的类图。

住出院系统领域模型

(4)包图

通常领域模型中会包含很多的类,必须对这些类进行分类,放置在不同的命名空间中,利用命名空间之间的关系图,来限制住不同分类对象之间的访问,这就是“包图”的使用场景。
“包图”是一个高阶的视图,由于所有的类都必须属于某一个包,因此当包之间的关系被限定时,该包内部所有的类,都会受到包图中设置的影响。

比如最基本的分类就是按照上面所说的三种分析类,对上面的领域模型,按照这种方式进行分类,便可绘制出如下包图:


包图

3、表达对象交互

1)序列图


登记出院记录序列图

2)通信图


登记出院记录通信图

3)交互概述图

4、表达微观设计

1)对象图


住出院系统对象图

2)状态机图


病床状态机图

3)时间图
过期取消预定时间图

总结和展望

其它UML图形:

  1. 总则图
  2. 组合结构图
  3. 组建图
  4. 部署图

其它资源


建模工具说明

用例图

用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。

参与者
参与者不是特指人,是指系统以外的,在使用系统或与系统交互中所扮演的角色。

用例
用例是对包括变量在内的一组动作序列的描述,系统执行这些动作,并产生传递特定参与者的价值的可观察结果。用例是参与者想要系统做的事情。

系统边界
系统边界是用来表示正在建模系统的边界,系统边界在画图中用方框来表示。因为系统边界的作用有时候不是很明显,所以我个人理解,在画图时可省略。

箭头
箭头用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动

UML建模工具

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容