UML学习整理之统一过程RUP中使用UML

之前分享了几篇UML学习之前的几篇文章,关于UML核心元素、核心视图和模型。要用好UML需要明确知道自己的目的,知道自己想要做什么,根据自己的目的寻找合适的模型,确定模型之后,再确定采用哪些视图来表达模型。

如何知道自己想要做什么呢?可以在软件过程中寻找,软件过程明确了软件的生命周期,每个周期需要什么样的模型来表示。因此学习UML,必须结合软件过程,虽然任何一种软件过程都可以使用UML,但是统一过程仍然是对UML使用最为精深的,毕竟这两者师出同源。

下面将会讲下使用UML建模时统一过程在各个阶段要执行的主要工作。我们会精简的引用一些统一过程的核心工作流,主要阐述建模过程在统一过程中的位置以及主要输出和输入,让我们看看UML的各种视图和模型是如何运用在项目的各个阶段的。

我们将举例四个最常用的工作流:

业务建模工作流
系统建模工作流
分析设计工作流
实施建模工作流

一、业务建模工作流

业务建模位于统一过程的先启阶段,主要使用到的模型包括: 业务用例模型,概念用例模型和领域模型。

工作流程如下图所示,不是所有路径和步骤都要执行:在开始之前需要评估哪些步骤要执行(在评估业务状态)



如果你面临的业务领域是客户很成熟的业务,客户没有改进业务的打算,则选第一条。
如果业务领域有改进的打算,与客户一起,建模结果需得到客户确认,执行第二条路径。
如果客户有通过信息管理改革其业务的打算,则执行第三条。信息系统不仅要实现业务,还要管理业务,负担起监控和推进管理政策的作用。
如果你面临的业务领域大部分都很清楚或者有成型的系统,则执行第四步。
(在统一过程没有专门定义概念模型的建立过程)

活动集和工件集

统一过程定义了业务建模工作流程中的主要角色以及应当执行的活动。
6.2

上图指出了为了完成一个完整的业务模型需要执行的活动。上图6.2主要列出了业务建模工作的检查点。
在统一过程中,完整的业务建模完成后可以得到下图的工件。



以上工件还需分清,哪些是可交付工件,哪些是实施工件集。可交付物正常以文档形式体系,交给客户成为项目的正是附件,实施工件只是建模时使用到。图6.3中业务流程分析员都是可交付,而业务设计员对应的工件都是实施工件。

业务建模的作用主要是用来了解对系统的需求,确定设计模型中的实体类。

二、系统建模工作流

系统建模就是通常意义上的需求过程,它主要使用系统用例模型来建立。系统建模也在统一过程中先启阶段开始,精化阶段细化。

工作流程图:

下面是统一过程对系统建模活动的指南。
首先我们需要先分析问题,去理解涉众的需求,提出一些实现,从业务角度界定解决方案。然后去定义系统,在系统定义的初期要确定以下内容: 需求构成、文档格式、需求的优先级和预计工作量等。管理项目的规模、需求变更等等,可以看图。

活动集和工件集

统一过程也定义了系统建模工作流程中的主要角色以及他们应当执行的活动。这些活动不代表都需要完成,很多时候都是可以合并或者并行的。

在统一过程中,上面的活动完成后,可以得到下面的工件集:

下面分别对上面的工件概念做一些解释:
前景:特别适用于描述产品型项目,描述即将开发的软件的商业木匾以及达到此商业目标的产品应当具有的特征、涉众需求分析、产品说明、产品要求等等。

凡是跟项目有关系的人或者组织或系统,都是涉众。先发现和定义涉众,然后再调查他们的请求。

软件需求规约,就是我们常说的需求规格说明书。它需要将用例模型(包括用例规约、用例视图等)和补充条约、系统界面原型等集中起来,作为一份完整的需求规格说明书。

用例示意板,就是用来描述界面如何使用用例这一信息。

系统建模的目的:能够使系统开发人员能够更清楚的了解系统需求,定义系统边界(限定),为计划迭代的技术内容提供基础。

系统建模工作流程与其他工作流程的关系为:

业务建模工作流程为系统建模工作流程提供了业务规则、业务用例模型和业务对象模型,包括领域模型和系统的组织环境。

分析设计工作流程从系统建模工作流程中获取主要输入(用例模型和词汇表).在分析设计中发现用例模型的缺陷。

总结:系统建模工作流程规定在计算机中将如何实现这些业务,应当理解,系统模型是业务模型到计算机系统的映射,我们可以通过系统建模得到系统开发的范围,明确计算机要做什么。

三、分析设计建模工作流

分析设计建模即我们所熟知的概要设计和详细设计过程,主要使用分析模型和设计模型来完成设计过程。

对于很多还没习惯以架构为导向的开发模型的开发人员来说,上图的流程估计跟实际工作中开发的相差很远,在现实项目中,很多人估计只有两部分设计,界面设计与数据库设计。

可是统一过程本身就是一个重量级的过程,比较适应大型或超大型的项目。下面是统一过程定义的分析和设计过程做一个概览:

统一过程中将设计和分析合并为一个流程如下图所示:
  1. 首先需要先定义和改进架构,下面是定义架构的流程图



    改进备选架构的流程图:

2、分析行为,即分析用例场景。它是使用分析类或设计类,并合并架构来实现用例场景的过程。通过分析行为可以获得对架构有重要意义的分析类和设计类。分析的时候需要提高抽象层次而屏蔽掉许多细节。

第三步,设计组件
统一过程中,组件是实施单元,他们被安放在某一位置然后由架构驱动执行。如果项目不存在可复用的基础,没有独立部署的要求,定义组件就成了鸡肋。大部分系统中可复用的部分都是系统范围的,例如日志处理、事务管理、异常处理等,但这些部分通常可以被处理为架构或者框架的一部分,其他部分没有太多复用价值。因此定义组件要用在需要用的地方。

还有组件的定义是一个复用的单元,在统一过程中还区分了实时组件和非实时组件,分别对应实时系统和非实时系统。

实时系统就是指系统对响应时间和可靠性有着严格要求的系统,许多工业软件都有实时性要求。

还有一种就是设计数据库相关的内容。

主要的活动集以及工件集

分析设计工作流程的主要角色以及他们应当执行的活动如下图所示:


产生的工件集如下:

四、实施建模工作流

实施建模的目的,是建立组件及其所在的实施子系统的集合。组件中既有可交付文件,又有用来生成可交付文件的组件。换句话说,实施模型,将开发工作分成许多工作包,因而可以协作生产这些工作包,然后组装他们以形成最终系统。

统一过程定义实施建模的工作流程如图所示:

在一个以架构为导向以迭代为生命周期的项目里,建立实施模型是很有意义的,通过实施模型,可以允许系统在多次迭代中逐步完善,每一次迭代组装出系统的一个部分直至完成。不过前提条件是设计分析过程中足够完善,以至于可以非常清楚地定义出系统地每个组件、实现这些组件的类、组件之间的依赖、接口和通信标准。

统一过程定义的实施建模的活动集和工件集如下图所示:

以上就是今天UML学习的一些内容了,明天会整理一些实践性的例子。

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

推荐阅读更多精彩内容

  • 前言 自己最早接触UML,也觉得束缚太多,比较抵触。 经历了一些开发实践之后,尤其是涉及到技术团队领导,协调开发团...
    jiaxiaolei阅读 3,080评论 0 2
  • UML定义了5类,10种模型图 五种类图定义: 1.用例图:从用户角度描述系统功能,并指各功能的操作者。 2.静态...
    淮水依依阅读 396评论 0 1
  • 在学习UML建模的时候,我们还需要思考一个软件模型从0->1这样一个诞生的过程需要经过什么,为什么模型需要这样建,...
    先生zeng阅读 658评论 0 0
  • 以前老是听到UML的大名,不过很少去真正地了解它,无非以为只是一种建模的方法,乍看这封面或许和产品经理毫无相关,但...
    mon_liu阅读 3,403评论 2 10
  • 写在前面 之前在学校比较系统的学习过统一建模语言UML,但长时间没使用遗忘了许多,最近因工作需要,所以对UML重新...
    wblearn阅读 11,021评论 9 138