转载来自:https://blog.csdn.net/shadowyelling/article/details/7412336
软件的生命周期就好比人的生命周期——从婴儿时期,幼儿时期,少年时期,青年时期,中年时期到老年时期以及最后死亡的过程一样,软件也有从生产期消亡期的过程。而统一过程就是在软件生命周期过程中以用例为驱动、构架为中心来进行一次一次的增量式的迭代,每次迭代都是以上一次迭代为基础并生成包括构件的源代码体、需求说明、测试用例等的制品。每次的迭代又具体分为四个阶段:初始、细化、提交和转移,而在每个阶段又分为多个工作流:需求、分析、设计、实现和测试等。统一过程模型是基于面向对象方法和UML统一建模语言的,用这种方法论来指导软件开发主要可以解决两个问题:

  • 软件复用问题
  • 需求变化问题。

1.软件过程:

将用户需求转化为软件系统所需要的活动的集合。

2.统一过程:

不仅仅是一个简单的软件过程,而是一个通用的过程框架,可用于不同类型的应用系统、各种不同的应用领域、各种不同类型的组织、各种不同功能和规模的项目。它是基于构件(Component-based)的,即所构造的软件系统是由软件构件通过明确定义的接口相互链接所建造起来的。并且它使用统一建模语言(Unified Modeling Language,UML)来制定系统的所有蓝图。

统一软件过程的特点:用例驱动、以构架为中心、迭代和增量的软件过程框架。

(1)统一过程是用例驱动的

用户(User) :软件系统是为了解决用户的需求的,因此对于一个系统必须首先确定它的用户(User),即参与者。这个User不仅仅指人,也可以是其他系统。即用户是与系统进行交互的事物。
用例(User Case) :是用户对系统的业务需求,即用例是能够像用户提供有价值结果的系统中的一种功能。
所有的用户和用例组合在一起就是用例模型,它描述了系统的全部功能。用例图促使我们从系统对用户的价值方面来考虑问题,是站在用户的角度出发,以人为本。并且用例图不仅能确定用户的需求,还可以驱动系统设计、实现和测试的进行,也就是说用例可以驱动开发过程。用例驱动表明开发过程是沿着一个流——一系列从用例得到的工作流前进的:用例被确定、用例被设计、最后用例又称为测试人员构造测试用例的基础

(2)统一过程是以构架为中心的

什么是软件构架?
软件构架的作用与建筑构架所起的作用类似。软件系统的构架是从不同的角度描述即将构造的系统。

注意:软件架构(software architecture),是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。它描述的对象是直接构成系统的抽象组件,各个组件之间的连接明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,在面向对象领域中,组件之间的连接通常用接口来实现。
软件构架包含了系统中最重要的静态和动态特征。构架刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特性,然而“究竟什么是重要的”部分依赖于判断,而判断由来自于经验,所以构架的价值也就依赖于执行该任务的人的素质,在构架的过程中可以帮助构架师确定正确的目标。

用例和架构之间是什么关系?
每一种产品都具有功能和表现形式两个方面,其中功能与用例相对应,表现形式与构架相对应。因此用例在实现时必须适应于构架,然而随着系统的发展,用例也在不断的进化,所以构架必须设计得使系统能够进化,不仅要考虑系统的初始开发,而且要考虑将来的发展。为了能够找到这样的一种表现形式(构架),构架师必须从全面了解系统的主要功能(即主要用例)入手,这些主要的用例构成了系统的核心功能。

构架应该遵循什么步骤?
首先,从不是专门针对用例的那部分架构开始,如平台,创建一个粗略的构架轮廓。
其次,着手处理已经确定重要的用例子集,这些用例代表着即将开发系统的主要功能,详细描述每一个用例,并通过子系统、类和构件来实现。随着用例的描述趋于完善,构架的更多部分便会显现出来,从而也使更多的用例趋于完善。
最后,迭代这个工程直到确信得到一个稳定的构架为止。

(4)统一过程是迭代和增量的过程

软降开发是一项复杂的过程,因此可以将这些项目划分为切实可行并能够产生一个增量的迭代过程。

什么是迭代和增量?
迭代:工作流中的步骤;
增量:产品中增加的部分。

迭代的原则是什么?
为了获得最佳的效果,迭代过程必须是受控的(Controlled),也就是说他们必须按照计划好的步骤有选择地执行。

如何确定迭代过程中要实现的目标呢?
首先迭代过程就是用来处理一组用例的,这些用例组合起来就能够扩展所开发产品的可用性。其次迭代过程要解决最突出的风险问题。只有这样后续的迭代过程才能建立在前一次迭代过程的基础上。

迭代的过程是什么?
以选定的构架为向导,用构件来实现设计前期已经标识并详细描述好的有关用例。如果一次迭代达到了目的,就可以进入下一次迭代,如果一次迭代没有带到预期的目标,那么必须重新审核前面的方法,并尝试一种新的方法。

对增量的理解
一个增量不一定是对原有制品的增加,在生命周期初始期,增量是对最初简单设计的完善和改进;而在以后的阶段增量通常是对原有制品的增加。

3.统一过程的软件生命周期

统一过程的软件生命周期就是从软件的产生到消亡期间进行的一次次迭代,每次迭代都会产生一个产品版本,并且本次迭代是基于上次迭代的。

(1)什么是产品?

产品是包括由能够编译和运行的构件的源代码体、各种手册和交付品。它不仅能够运行还需要满足客户和产品相关人员的需求。

(2)统一开发过程中的产品所依赖的模型有哪些?

产品就是软件系统的一个构件,但是只有这些是仅仅不够的,因为环境(操作系统、数据库系统)在变化,此外随着更好的理解任务,需求本身也在变化。因此统一开发过程中每次迭代要依据一些模型来产生产品。如下图:

用例模型: 包含用例与用户之间的关系
分析模型: 更详细的提炼用例,将系统的行为初步分配给提供行为的一组对象
设计模型: 将系统静态结构定义为子系统、类和接口,并定义由子系统、类和接口之间的协作所实现的用例。
实现模型: 包括构件(表现为源代码)和类到构件的映射。
实施模型: 定义计算机的物理节点和构件到这些节点的映射。
测试模型: 描述用于验证用例的测试用例。
业务模型: 描述系统业务预警的领域模型。

所有的这些模型都是相关的,它们合起来表示整个系统。由上图从上往下看,下面的模型对上面的模型有跟踪依赖关系。这有利于系统的理解和修改。

(3)统一开发过程每次迭代都包含哪些阶段?

每次迭代分为四个阶段:初始细化构造移交

每次迭代都要经历一定的时间,这个迭代的时间又可以分为四个阶段:初始、细化、构造和移交。而在每个阶段,管理人员或开发人员又可以将本阶段的工作进一步划分为多次迭代过程以及每次迭代过程所产生的增量。每个阶段都以一个里程碑作为结束标记,并可以获得一组可用的制品来定义每个里程碑。

里程碑有什么作用?
里程碑的关键用途是能够帮助管理人员在进入下一个阶段之前据此作出某些意义重大的决定。还可以跟踪每个阶段所投入的时间和其他开销。这些对项目的控制和发展都是很有用的。

(4)每次迭代的阶段都要进行哪些工作?

迭代的每个阶段通常又进一步细分为多次迭代过程,一次典型的迭代阶段(初始、细化、构造、移交)都要经历多种工作流:需求、分析、设计、实现和测试

(5)每个阶段的主要任务是什么?

初始阶段(inception phase)
主要回答下列问题:

  • 系统向每个主要用户提供什么基本功能?(确定参与者和用例)
  • 该系统的基本粗略构架是什么?(包括主要子系统的大致轮廓)
  • 开发该产品的计划是什么?
  • 开销多大?(可行性分析)

这个阶段最主要的是确定项目的风险及其优先次序,并对细化阶段进行详细规划和对整个项目进行粗略计算。

细化阶段(elaborattion phase)
根据主要的用例描述设计出详细的系统构架。构架包括了用例模型、分析模型、设计模型、实现模型(包含一些构件)和实施模型的视图。
这个阶段主要是解决用例、构架和计划是否足够稳定可靠,风险释放得到充分控制,以便能够按照合同的规定完成整个开发任务。

构造阶段(construction phase)
将构造出最终产品。

移交阶段(transition phase)
包括产品进入beta版后的整个阶段。开发人员改正用户报告产品的缺陷和不足。

4.总结

统一过程是基于构件的,它采用新的可视化建模标准,即统一建模语言(UML),它依赖三个关键概念——用例驱动、以构架为中心及迭代和增量式的开发。为了使这些概念能够发挥作用,需要一个包括多个方面的过程,而统一过程就是一个考虑到生命周期、阶段、工作流、风险缓解、质量监控、项目管理和配置管理的软件开发过程。在这个过程中以用例驱动,以构架为中心以及迭代和增量开发的概念是同等重要的。构架提供了一种结构来指导迭代过程中的工作,而用例则确定了目标并驱动每次迭代的工作 ,去掉三个主要概念中的任何一个,都会严重降低统一过程的价值。

统一过程(UP)模型相关推荐

  1. AUP2敏捷统一过程之一:序言及降低过程的总体拥有成本

    这是敏捷统一过程系列的第一篇.(前篇,之一序言,栏目总目录) 敏捷统一过程的全称是AUP(Agile Unified Process),不过为了能区别已经被提过一次的AUP(就是RUP),这里称之为A ...

  2. 软件工程(Rational统一过程)

    Rational统一过程(Rational Unified Process,RUP)是由Rational软件公司推出的一种完整而且完美的软件过程. RUP总结了经过多年商业化验证的六条最有效软件开发经 ...

  3. 【系统设计】统一过程的类抽取

    统一过程是用例驱动的.在需求分析阶段,用例以软件产品的类描述. 统一过程有三种类: 实体类:实体类为长期存在的信息建模 边界类:边界类为软件产品和它的参与者之间的交互行为建模,通常与输入和输出相关 控 ...

  4. 一个既能做CV任务,也能做NLP任务的Transformer模型!谷歌UCLA提出统一的基础模型...

    关注公众号,发现CV技术之美 本文分享论文『Towards a Unified Foundation Model: Jointly Pre-Training Transformers on Unpair ...

  5. 开发过程---统一过程

    统一过程 统一过程(Unified Process,UP)是由 Rational 公司开发的一种迭代的软件过程,是一个优秀的软件开发模型,它提供了完整的开发过程解决方案,可以有效地降低软件开发过程的风 ...

  6. 百度凤巢 | MTMS多任务多场景统一精排模型

    上周分享了多任务多场景共享派新作,来自快手的PEPNet:千人千模 | PEPNet: 2023快手多任务多场景建模:这周分享下来自百度凤巢的多任务多场景建模工作,属于拆塔派,和共享派的做法差异较大. ...

  7. 开发方法之统一过程开发及敏捷开发

    统一过程 UP 是一个很有特色的模型,它本身是一个二维的结构.软件开发活动总要经过初始.细化.构建 和交付这 4 个阶段方能完成. 对于纵轴而言,业务建模.需求.分析设计.实施.测试.部署.配置与变更 ...

  8. 软件工程-软件开发模型(瀑布/V/喷泉/原型/演化/螺旋/统一过程/敏捷)

    软件工程-软件开发模型(瀑布/V/喷泉/原型/演化/螺旋/统一过程/敏捷开发) 目录 软件工程-软件开发模型(瀑布/V/喷泉/原型/演化/螺旋/统一过程/敏捷开发) 瀑布模型 特性 优点 缺点 适用 ...

  9. 工作流组件_过程组件模型:下一代工作流?

    工作流组件 介绍 托尼·贝尔说 BPM人来自金星,WS人来自火星 这恰好总结了BPM行业中一个可能并不明显的大部门. 术语BPM人士是指专注于流程建模的人员. 他们的出发点是对描述人员和系统如何在组织 ...

最新文章

  1. 不得不为LINQ说几句话,驳“LINQ已死”论
  2. JAVA之旅(八)——多态的体现,前提,好处,应用,转型,instanceof,多态中成员变量的特点,多态的案例...
  3. 什么是浏览器跨域访问操作,js如何实现?
  4. Advice for Students--开始学术研究
  5. HTTP/3 未来可期?
  6. 被冻结的钱,银行可以私自处理吗?
  7. 因政府禁令 微软 Windows 9 将作出重大调整
  8. java 判断object类型_Java多态的6大特性|乐字节
  9. 回头再说-006 时间音乐
  10. mysql connection.h_MySQL connector c++使用笔记
  11. EasyCHM(CHM电子书制作工具) v3.84.545 绿色版
  12. srt格式导入pr乱码_字幕文件显示乱码怎么办 网易导出的srt导入pr乱码
  13. oracle adf源代码在哪里,第 3 章 | 从设计到实践全面了解 Oracle ADF 应用程序
  14. 键盘对应的ASCⅡ码
  15. 关于video标签的视频格式在各个浏览器中的兼容问题
  16. 嵌入式硬件(一)概述
  17. springBoot学习(二)配置环境动态切换和部分注解的运用
  18. matlab 电压矢量开关,解析电压空间矢量研究及Matlab仿真
  19. Fragment嵌套Fragment
  20. 【STM32】STM32之DRV8834电机驱动(PWM方式)

热门文章

  1. ps中背影制造以及扣图后换背景的注意事项
  2. 后端node-xlsx读取excel文件后时间格式的转换 - 利用xlsx自带方法
  3. matlab中仿真中接地,基于Matlab的配电网接地故障仿真
  4. 微信记录恢复软件MMRecovery下载与使用方法
  5. 如何判断车距:车距判断技巧图解
  6. 争做“拼购村” 中国“家电之都”有了新致富路
  7. 10杯水只有一滴有毒,用四只老鼠测试,二进制的方法快速找出哪瓶有毒;
  8. android模拟器命令大全,雷电安卓模拟器命令行整理贴
  9. ERP的灵魂是管理思想
  10. 【genius_platform软件平台开发】第九十三讲:串口通信(485通信)