[UML]UML 教程 - 第二部分
UML作为软件开发典型的开发过程
业务过程模型创建
业务过程模型被用来定义发生在企业或组织内部的高级业务活动和业务过程,并且是建立用例模型的基础。一般来说业务过程模型比一个软件系统所能实现的更多(比如:业务模型包括人力和其他过程)。
映射用例模型到业务过程模型
以精确定义你要提供的功能,并且是站在业务用户角度考虑的。每增加一个用例时,将创建一个从适当的业务过程到该用例的可跟踪链接(如:一个实现链接)。这个映射清楚地表达新系统将提供什么样的功能来满足业务过程中所描述的业务需求。这种映射也确保系统中每个用例都是有用的。
完善用例
包括需求,约束、复杂程度、注释及情形。这些信息清楚地描述用例做什么,如何做以及执行时的相关约束。这个过程要保证用例始终满足业务过程的需求,包括每个用例的系统测试定义,该定义为该用例定义了接收标准。也包括了一些用户可接受的测试脚本:这些脚本定义了用户将如何进行测试和测试接收的标准。
构建领域模型、顺序图、协作图和用户接口模型
有了业务过程模型的输入与输出和用例的详细信息,就可以开始构建领域模型(高级业务对象)、顺序图、协作图和用户接口模型。这些图描述新系统中的要素以及这些要素之间的相互作用和用户执行用例时所需各种情形的接口。
建立对象类模型
在领域模型、用户接口模型和情形图的基础上,开始建立对象类模型。这是制定系统中对象的明确规范:数据、属性、行为和操作。使用继承机制,可将领域对象抽象为类层次结构。处理各种情形的消息一般被映射到类的操作。如果使用一个现存的框架或设计模式,则可能导入现存模型的元素到新系统中。为每一个类定义单元测试、集成测试和系统测试。测试目的:1)类的功能是否如所定义的,2)类与其它类及组件的交互是否如期望的。
构造组件模型
当开发类模型时,可能需要将它分解成包和组件。一个组件代表一个可使用的软件块,它是一个类或者多个类的数据和行为的结合,并严格定义一个对外提供服务的接口。所以,从类模型的角度看,构造组件模型就是定义类的逻辑包。对于每一个组件,需要定义集成测试,以证实组件的接口满足规范要求,即与其它软件元素的关系。
整理额外需求
在完成上述工作的同时,需要获取一些额外的需求并整理成文档。例如:非功能性需求,性能需求,安全需求,义务需求,发布计划等。将这些需求在模型内部进行整合并随模型的进展而更新。
8. 部署模型定义系统的物理架构
部署模型定义系统的物理架构。这个工作可以提前开始以便于掌握系统的物理结构特性-使用什么样的硬件、操作系统、网络规模、接口与支持软件,来构成新系统,和系统部署在那里,以及出现灾难性故障时的系统恢复,系统可靠性、系统备份与支持等方面所使用的参数。随着模型开发的不断进展,物理系统模型应该不断更新以反映所开发系统的实际情况。
构造系统
构造系统:将模型的分散模块分配给一个或多个开发者。如果采用用例驱动的方法构造系统,这将意味分配一个用例给开发小组,让他们构造用户界面,业务对象,数据库表以及执行该用例所必须的相关组件。在构造每个用例时,应该同时完成单元测试、集成测试和系统测试。如果采用组件驱动的方法构造系统,则需将各个组件分配给开发小组。
查找设计缺陷
对照模型中的元素,跟踪查找出现在测试阶段的缺陷。如:查看针对用例的系统测试缺陷,查看针对对象类的单元测试缺陷等等,跟踪相关模型元素的修改以防止范围漫延。
评估每一次完善模型的结果
随着工作进展不断更新和完善模型-每次修改模型或完善模型,都要评价所做的修改或改善对后续工作的影响。在模块设计中使用反复式工作方法,评介当前构造的模块,新到达的需求,以及开发过程发现的任何问题
部署测试环境
将完整的,并经过测试的软件发送到测试生产环节。如果采用分阶段发送,那么这种软件生产方式需要从测试到生产的多次往复才能最终完成整个项目。
注意:上面描述的过程只是项目开发所必须经历的一个简要概述,还有很多没有提及。它不是告你应该如何工作,或者不遵循你已经采用的方法。它只给出如何用UML来支持软件开发项目的一个例子。
[UML]UML 教程 - 第二部分的更多相关文章
- [UML]UML 教程
统一建模语言(UML)已经迅速变成建立面向对象软件的事实标准.本教程提供了Enterprise Architect支持的13种UML图的技术概览.UML 2 详细的语义解释请看新的UML 2 教程. ...
- [UML]UML系列——类图class的关联关系(聚合、组合)
关联的概念 关联用来表示两个或多个类的对象之间的结构关系,它在代码中表现为一个类以属性的形式包含对另一个类的一个或多个对象的应用. 程序演示:关联关系(code/assocation) 假设:一个公司 ...
- [UML]UML系列——包图Package
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class ...
- [UML]UML系列——状态机图statechart diagram
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...
- [设计语言][统一建模语言][软件开发方法学][UML] UML
背景介绍 UML是一种统计建模语言. WIKI: https://en.wikipedia.org/wiki/Unified_Modeling_Language UML是OMG (object man ...
- [UML]UML系列——时序图(顺序图)sequence diagram
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图Class [UML]UML系列——类 ...
- [UML]UML系列——用例图中的各种关系(include、extend)
用例图中的各种关系 一.参与者与用例间的关联关系 参与者与用例之间的通信,也成为关联或通信关系. 二.用例与用例之间的关系 包含关系(include) 扩展关系(extend) 包含关系 (1) 概 ...
- [UML]UML系列——类图Class
相关文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) 一.类图的概念及组成 1.类图的概念 类图是描述类.接 ...
- [UML]UML系列——类图class的依赖关系
相关文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列—— ...
- [UML]UML系列——类图class的泛化关系
系列文章 [UML]UML系列——用例图Use Case [UML]UML系列——用例图中的各种关系(include.extend) [UML]UML系列——类图C ...
随机推荐
- 对设计领域中Tile和Card的理解
前端工程师离不开设计, 谈到设计就要想到大名鼎鼎的material design主题, 而material是以card为经典单元的, card即卡片, 是层次化模型的最小模块, 用于提供扁平化的信息, ...
- windows安装ruby,DevKit安装rails,svn安装
Ruby on Rails的安装,是从被称为RubyGems的包管理系统开始的.Ruby on Rails是由Ruby处理系统的类库的.被称为“gem”的格式来进行配置的.“gem”形式的类库,通过使 ...
- Qt信号槽的一些事
注:此文是站在Qt5的角度说的,对于Qt4部分是不适用的. 1.先说Qt信号槽的几种连接方式和执行方式. 1)Qt信号槽给出了五种连接方式: Qt::AutoConnection 0 自动连接:默认的 ...
- 关于Cocos2d-x中数据的存储提取和类型转换
1.获得存储在UserDefault中的变量,但是获得的变量是一个String类型的值,要用atoi函数转换为整型,但是atoi函数的传递参数是一个char*类型的值,所以用_Score.c_str( ...
- VS2013环境生成和调用DLL动态链接库
http://blog.csdn.net/u010273652/article/details/25514577 创建动态库方法: 创建动态库是生成 .dll .lib 两个个文件 文件 -> ...
- 下面关于XML叙述不正确的是( )
A.XML标记必须关闭 B.XML是大小写敏感的 C.XML文件只能跟DTD文件一块使用 D.XML和XSL结合可以在浏览器上显示 解答:C
- Ubuntu系统启动报错:The system is running in low-graphics mode
最近,不小心将自己的Ubuntu-12.04桌面系统搞坏了,主要是由于改变了/var目录下文件的属主,结果桌面系统崩溃了,启动都成问题了.不过还算幸运,可以通过其他的机器登录到我的系统上.根据别人的系 ...
- Unity3D深入浅出 -创造 物理材质(Physics Materials)
在Unity3d中已经配置好了5种常用的物理材质,Bouncy.Ice.Metal.Rubber.Wood,在菜单中依次选择Assets - Import Package - Physics Mate ...
- nodejs基础 -- 回调函数
Node.js 异步编程的直接体现就是回调. 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了. 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都 ...
- iOS获取时间、日期
//获取当前时间 NSDateFormatter *formatter = [[[NSDateFormatter alloc] init]autorelease]; [formatter setLoc ...