首页 > 其他分享 >统一过程(Unified Process,UP)

统一过程(Unified Process,UP)

时间:2022-09-07 15:58:54浏览次数:87  
标签:Unified 架构 迭代 Process 模型 UP 阶段 里程碑

统一过程(Unified Process,UP)是由Rational公司开发的一种迭代的软件过程,是一个优秀的软件开发模型,它提供了完整的开发过程解决方案,可以有效地降低软件开发过程的风险,经过裁剪的UP可以适应各种规模的团队和系统。

1、UP的二维模型

UP是一个很有特色的模型,它本身是一个二维的结构,如图所示。对于UP而言,时间主线就是横轴的阶段,随着时间的流逝,软件开发活动总要经过初始、细化、构建和交付这4个阶段方能完成。而纵轴的工作流程则描述了在不同的阶段需要进行的主要工作。例如在初始阶段,软件组织需要进行大量的调研,对软件进行业务建模、需求,同时进行一些设计以验证建模的合理性,还要进行一些实施甚至测试和部署的工作,用以验证需求和设计的工作及开发系统原型,当然配置与变更管理、项目管理和环境是在任何阶段都是不能缺少的。

 

 

从这个模型中可以看出UP迭代的特点。任何一个阶段的工作都不是绝对的,都是相互交叠配合的。但每一个阶段都有其侧重点:
在初始阶段,开发者刚刚接入系统,此时最重要的工作是界定系统范围,明确系统目的。在这一阶段,业务建模和需求工作成了重头戏。
在细化阶段,开发者需要抽象出软件的逻辑模型,设计出软件的架构,在这一阶段,分析设计工作是最主要的工程活动。
在构建阶段,开发者需要基本完成系统的构建,使之成为一个完整的实体,并进行测试和部署,在这一阶段,实施和测试是最主要的活动。
当进入交付阶段(该阶段也经常被称为转移阶段),软件系统需求已经完全成熟或产品化,或进入下一个版本。在这一阶段不可避免地要对软件系统进行重构、修改、测试和部署。
在这4个阶段中,各有侧重点,但也不是像瀑布模型那样完全不允许其他活动的存在。在初始阶段,为了验证开发者的想法,就需要进行一部分的实施和测试;而即使到了交付阶段,需要也可能会发生变化,仍然需要进行部分业务建模、需求和设计的活动。
在每个阶段中,系统推进不是一蹴而就的。在图中将细化阶段划分为第1次细化和第2次细化,将构建阶段也划分为3个小阶段。在实际开发中,可以根据实际的需要划分为更多的小阶段来完成。

对于纵轴而言,业务建模、需求、分析设计、实施、测试、部署、配置与变更管理、项目管理、环境称为UP的9个核心工作流。可以把这9个工作流进行简单的分类以帮助理解,业务建模、需求、分析设计、实施、测试和部署是工程活动,而配置与变更管理、项目管理和环境是管理活动。
在这9个工作流中,前8个可以说是绝大多数人都耳熟能详的东西,而“环境”工作流则相对难以理解。“环境”工作流很重要,也可以称之为“环境管理”。俗语说,“巧妇难为无米之炊”,“环境”工作流就是为软件开发准备“米”的活动。在软件开发中,需要为各种工作准备相应的工作环境,在工作环境中需要包含必需的工具、活动的指南、活动的流程规范、工作产品的模板、基本的开发设施等。在很多组织中,“环境”工作流没有得到应有的重视,或者完全被忽视,以为为开发者提供了工作台和计算机就万事大吉了,其实这种做法是错误的。每一个开发团体都有自己特定的活动准则和规范,这些准则和规范是团体协作的基础,万万少不得。没有合理的工具配备,没有充分的指南、规范和模板,软件开发的活动肯定是放羊式的管理,管理者除了一些“羊毛”外什么也收获不到。观察UP模型就可以发现,在每一阶段的最开始,“环境”工作流都有一个小小的波峰。在这里面,开发团队需要为开发环境进行相应的准备并在后续活动中为开发环境提供支持。

2、UP的生命周期
前面已经提到,UP模型的时间主线是阶段,UP的生命周期也是与阶段一一对应的。在UP的生命周期中共有4个里程碑:
(1)目标里程碑。目标里程碑对应着先启阶段的结束,当开发者可以明确软件系统的目标和范围时即达到了该里程碑。
(2)架构里程碑。架构里程碑是UP生命周期中的第二个里程碑,在这个里程碑前,开发者需要确定稳定的系统架构。
(3)能力里程碑。当系统已经足够的稳定和成熟并完成Alpha测试后,认为达到了第3个里程碑。
(4)发布里程碑。在达到发布里程碑前,需要完成系统的测试、完成系统发布和用户培训等工作。
在经过这4个里程碑后,即为一个完整的生命周期,开发出一个新的版本。此时可以关闭该产品的开发,也可以迭代进入下一版本。


3、UP的特点
UP是一个特点鲜明的开发模型,下面列出UP的一些特点:
(1)UP是一个迭代的二维开发模型,在生命周期的每一阶段都可以进行需求、设计等活动。UP不但给出了迭代的生命周期,还给出了生命周期每一阶段的迭代指南。
(2)采用不同迭代方式的UP可以演变为演化模型或增量模型。
(3)UP的迭代特点使得更容易控制软件开发的风险。
(4)虽然UP是一个迭代的开发模型,但UP本身并不属于敏捷方法。相反,一般认为,未经裁减的UP是一个重载过程。
(5)在实际应用中可以根据具体问题对UP进行裁减,从而使其可以适应各种规模的软件和开发团队。

4、架构设计师在UP中的活动

架构设计师在UP活动中承担着非常重要的角色。在UP中,架构设计师除了需要建立系统架构模型外,还需要:
(1)同需求人员和项目管理人员密切协作。
(2)细化软件架构。
(3)保持整个架构的概念完整性。
具体地说,架构设计师不但需要设计系统架构,还需要定义设计方法、设计指南、编码指南、评审设计等工作。因此,有人也称UP是一个以架构为中心的开发模型。

标签:Unified,架构,迭代,Process,模型,UP,阶段,里程碑
From: https://www.cnblogs.com/callbin/p/16665718.html

相关文章

  • 【AR Engine】集成AR Engine,ARSession.update方法抛出ARFatalException
    ​【问题描述】在App中接入了AREngine,在日志监控中发现个别终端用户在程序调用ARSession.update方法时,AREngine抛出了ARFatalException。通过查看日志发现,这个问题在此......
  • oracle 存储过程 update 更新 不报错 但是没有更新成功
    原因是:定义的入参的参数名称和库表字段名称一样,当入参长度和库表字段长度不一样的入参就变成了'BC_3109814'='BC_3109814'导致不相等,从而更新不成功解决:修改存储过程入......
  • SVN: E155004: THERE ARE UNFINISHED WORK ITEMS IN ''; RUN 'SVN CLEANUP' FIRST
    eclipse开发过程中,检出项目时报错执行项目右键-team-runcleanup-也还是会报这个错误;解决办法下载软件https://www.sqlite.org/download.html解压放到项目.svn目录......
  • python数据类型之元组Tuple
    1.元组Tuple说明元组是另一个数据类型,类似于List(列表)。元组用()标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。Python的元组与列表类似,不同之......
  • 【WPF】更改WPF桌面应用程序的 启动窗口(StartupUri或Startup)
    WPF更改StartupUri方式StartupUri指定WPF应用程序启动窗口,默认为MainWindow窗口。修改方式:(1)直接修改StartupUri属性,例如:StartupUri="TestWindow.xam“"在login项目的......
  • Cgroup学习笔记1—Cgroup 抽象层
    一、理论介绍1.新版本Android不建议在init.rc初始化脚本来安装其他cgroup,需要在cgroups.json文件中描述相应的组,并在task_profiles.json文件中定义新的任务配置文......
  • XtraBackup
    目录XtraBackup一、安装1.1从Percona存储库Yum安装PerconaXtraBackup1.2从二进制压缩包安装PerconaXtraBackup二、准备部分2.1权限问题三、备份周期3.1全量备份3.1......
  • CodeLab:一款让你体验丝滑般的云化JupyterLab
    摘要:从AI开发特点着手,华为云AIDTSE技术布道师陈阳在DTT第五期带来主题为《云化JupyterLab:华为云CodeLab介绍》技术分享。DTSETechTalk是华为云开发者联盟推出的技术公......
  • 使用appuploader工具如何生成发布证书和描述性文件教程
     之前用AppCan平台开发了一个应用,平台可以同时生成安卓版和苹果版,想着也把这应用上架到AppStore试试,于是找同学借了个苹果开发者账号,但没那么简单,还要用到Mac电脑的钥......
  • NamedTuple技巧用法
    PS:第一眼看到这个代码的时候,就联想到了go中的构造函数,虽然知道go中的构造函数其实就类比于python中的构造函数__init__,但是不得不说,这个太像了在日常编码中,我们经常需要......