当前位置: 首页 > news >正文

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

 

 

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 说说相机标定?
  • react-问卷星项目(1)
  • 【JAVA基础】实现Tomcat基本功能
  • 2024年【起重信号司索工(建筑特殊工种)】考试题及起重信号司索工(建筑特殊工种)免费试题
  • Java中的类型转换 Day4
  • Vue+SpringBoot+数据库整体开发流程 2
  • uniapp 懒加载、预加载、缓存机制深度解析
  • 动手学深度学习(pytorch)学习记录27-深度卷积神经网络(AlexNet)[学习记录]
  • 农业小气候观测站
  • 【python】 @property属性详解 and mysql的sqlalchemy的原生sql
  • PIN AI获得a16z CSX、Hack VC和全明星天使的1000万美元融资,推出个人AI开放平台
  • HarmonyOS开发之Swiper的使用(跳转到指定索引的方法)
  • 【百日算法计划】:每日一题,见证成长(011)
  • 第二章:表操作
  • 从生成器函数Generator出发,聊聊Async await
  • [译]如何构建服务器端web组件,为何要构建?
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • android 一些 utils
  • angular2 简述
  • Centos6.8 使用rpm安装mysql5.7
  • Logstash 参考指南(目录)
  • PHP 小技巧
  • React+TypeScript入门
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 经典排序算法及其 Java 实现
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 一个项目push到多个远程Git仓库
  • hi-nginx-1.3.4编译安装
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (windows2012共享文件夹和防火墙设置
  • (超详细)语音信号处理之特征提取
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)用.Net的File控件上传文件的解决方案
  • (转)重识new
  • .net framework profiles /.net framework 配置
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET 依赖注入和配置系统
  • .NET文档生成工具ADB使用图文教程
  • .Net组件程序设计之线程、并发管理(一)
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • ??eclipse的安装配置问题!??
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @font-face 用字体画图标
  • @private @protected @public
  • [ 转载 ] SharePoint 资料
  • [AIGC] 解题神器:Python中常用的高级数据结构