一分钟了解统一软件开发过程RUP的那点事

94ed016011484b848dc05d183ab8a3f1.png

曾经几乎一统天下的统一软件开发过程RUP(Rational Unified Process)即使是现在看来,它也是一套非常先进并完整的理论体系加工具集合。虽然目前来看,敏捷开发方法似乎更优秀,但是到今天为止,几乎大部分的政府和国企项目中都在使用RUP,所以了解它也是一件必然的事情。

那么统一软件开发过程RUP到底是什么呢?

所谓的统一软件开发过程,便是将9个核心工作流在项目中迭代使用。这9个核心工作流分别是:

业务建模、需求、分析和设计、实现、测试、部署、配置和变更管理、项目管理、环境

业务建模

业务建模(Business Modeling)是为了用来理解和描述业务流程、角色、责任和业务目标用的。它关注于如何优化和改进业务操作。比如:创建一个业务流程图以改进客户服务流程,定义角色和职责以提高效率。

这里用一个ERP的销售报价流程为例:

495c5400301740358dcdbd5d52e9d50d.png

需求

需求(Requirement)是为了描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织和文档化;最重要的是,要能理解系统所解决问题的定义和范围。

那么该怎么来描述需求呢?我这里有个小技巧,不知道大家有没有写过用户故事,我觉得这是一种非常棒的需求描述方式,它的格式也是固定的:“作为一个 [角色],我希望 [功能],以便 [目标/利益]。”

就比如上面的商品估价可以这么写:

商品估价:

  • 作为一个 财务人员,
  • 我希望 系统允许对商品估价进行手动调整,
  • 以便 我可以根据市场变化和业务需求调整商品的价格策略。

除了用户故事以外,原型法也是常见的需求描述手段。

原型法通过构建可视化模型(原型)来展示和测试系统的功能和界面。这有助于用户更直观地理解系统,并提供反馈。

  • 原型法 可以在 用户故事 的基础上进行,帮助细化和验证用户故事中的需求。
  • 用户故事 可以作为原型设计的基础,确保原型中展示的功能符合用户的实际需求和期望。

至于需要写到什么程度,要和客户达成多少共识,这个和实际情况,项目工期,团队规模,客户约定都有关系,并不可以一概而论。

分析和设计

分析和设计(Analysis & Design)便是将需求转化成未来系统的设计方法。

这里我只用面向对象的分析和设计来进行说明:

  • 面向对象分析(OOA) 聚焦于需求和对象建模,帮助理解和定义系统的需求。

主要包括用例图、类图、对象图等,这些图示帮助描述系统的功能和对象之间的交互。

  • 面向对象设计(OOD) 聚焦于如何实现这些需求,通过详细设计来创建系统的结构和功能。

主要包括类图、时序图、状态图等,描述系统的内部结构和对象之间的交互细节。

至于需要写到什么程度,这个也和实际情况有关,理论上虽然是越详细越好,但是往往在实际项目建设中会受限于经费和时间影响,只能选择一部分来进行设计。

实现

  1. 组织代码:定义代码的层次结构和组织方式。
  2. 开发组件:使用源文件、二进制文件和可执行文件等方式来实现类和对象。
  3. 测试和集成:对开发的组件进行单元测试,并将它们整合起来,确保它们能够共同工作,形成一个可执行的系统。

测试

  1. 验证互动:检查对象之间的交互是否如预期。
  2. 检查集成:确保所有的软件组件能够正确集成。
  3. 需求确认:验证所有需求是否已经正确实现。
  4. 缺陷识别:发现和处理缺陷,最好是在软件正式发布前。
  5. 迭代测试:在整个项目开发过程中反复测试,以尽早发现缺陷,减少修改缺陷的成本。测试通常从可靠性、功能性和系统性能三个方面进行。

部署

  1. 软件打包:将软件打包为最终用户可以使用的格式。
  2. 安装:将软件安装到用户的环境中。
  3. 提供帮助:为用户提供必要的支持和帮助。
  4. 其他活动:可能包括进行测试版发布、迁移现有软件和数据等。

配置和变更管理

  1. 控制产物:管理项目中多个产物的版本和变体。
  2. 跟踪版本:记录和跟踪软件开发过程中的不同版本。
  3. 审计记录:保存关于产品修改的详细记录,包括修改的原因、时间和责任人员。

项目管理

  1. 平衡目标:协调和管理可能产生冲突的目标。
  2. 管理风险:识别和应对项目中的风险。
  3. 克服约束:解决项目执行中的各种限制和障碍。
  4. 提供框架:为项目的规划、人员配备、执行和监控提供实用的准则。

环境

  1. 提供开发环境:为开发团队提供必要的软件开发工具和过程。
  2. 配置项目:支持项目开发过程中所需的活动。
  3. 开发规范:指导如何在组织中实现开发过程,提供逐步的指导手册。

软件开发过程RUP中的每一个工作流都有许多的方法论和工具组,我不可能讲全它们,否则我都可以写三本书了:《系统分析师》、《系统架构师》、《项目管理师》,这里我只是简单的介绍了一下各个工作流和其中用到的少量工具,希望大家喜欢。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值