美文网首页
统一过程

统一过程

作者: 曹元_ | 来源:发表于2021-04-13 02:11 被阅读0次

软件的生命周期就好比人的生命周期——从婴儿时期,幼儿时期,少年时期,青年时期,中年时期到老年时期以及最后死亡的过程一样,软件也有从生产期消亡期的过程。而统一过程就是在软件生命周期过程中以用例为驱动、构架为中心来进行一次一次的增量式的迭代,每次迭代都是以上一次迭代为基础并生成包括构件的源代码体、需求说明、测试用例等的制品。每次的迭代又具体分为四个阶段:初始、细化、提交和转移,而在每个阶段又分为多个工作流:需求、分析、设计、实现和测试等。统一过程模型是基于面向对象方法和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)也是软件工程中的一个通用过程框架。UP具有三个显著的特点:用例驱动、以架构为中心、迭代和增量。 U...

  • 统一过程

    软件的生命周期就好比人的生命周期——从婴儿时期,幼儿时期,少年时期,青年时期,中年时期到老年时期以及最后死亡的过程...

  • 第四章 项目整体管理学习笔记

    定义:包括为识别、定义、组合、统一和协调个项目过程组的各种过程和活动而开展的过程与活动,兼具统一、合并、沟通和集成...

  • 黑格尔的“理念”之“概念”

    理念不是别的,就是概念,概念所代表的实在,以及这二者的统一。 ——黑格尔 这里统一的过程是一个辩证发展的过程。首先...

  • DDD 战略设计:建立统一语言

    1 如何理解“统一语言” 统一语言是提炼领域知识的产出物,获得统一语言就是需求分析的过程,也是团队中各个角色就系统...

  • SSO单点登陆

    最近项目做一个统一portal,各个应用模块统一入口,人员账号统一。单点登陆时序图 在日常调试过程中遇到的跨域问题...

  • 昱言(185)统一的方法

    统一的方法 一起出材料也是个统一意见的过程。在这个过程中,每个人参与其中,对材料的精神把握地很准、原汁原味,也同意...

  • 3月25日晨读感悟与今日话题

    【晨读感悟】 001 结果+过程=完整 对我而言,结果和过程,总是辨证存在。 因为每一件事情,都是结果与过程的统一...

  • 统一过程建模的总体思路

    拜读了谭云杰老师的《thinking in UML 大象》,很厚的一本书,主要对通过UML语言对统一过程设计的设计...

  • CAS统一认证中心,针对移动客户端的认证过程设计(APP视角)

    CAS统一认证中心,针对移动客户端的认证过程设计(APP视角) 业务场景统一认证中心CAS,用员工工号密码登录。有...

网友评论

      本文标题:统一过程

      本文链接:https://www.haomeiwen.com/subject/muxxfltx.html