《RUP导论》笔记(一)

RUP导论原书第3版 RUP的书很少,这本书是RUP首席架构师写的,值得看一下 立即下载

ξ 1.2 软件开发问题的症状和根本原因

 

☆ 失败项目的一些共同症状:

  ① 对于最终用户的需求理解得不够精确;

② 不能处理需求变更;

③ 模块之间不兼容;

④ 软件不易维护和扩展;

⑤ 对项目的严重缺陷发现较晚;

⑥ 软件质量低劣;

⑦ 软件性能让人无法接受;

⑧ 团队中人员按各自的开发方式工作,项目难以重构;

⑨ 一个不可靠的构造和发布过程。

 

☆ 失败项目的根本原因:

① 特别的需求管理;

② 模糊和不精确的交流;

③ 脆弱的架构;

④ 过度复杂;

⑤ 未检测出需求、设计和实现中的不一致;

⑥ 测试不足;

⑦ 对项目状况的评估过于主观;

⑧ 未解决存在的风险;

⑨ 无法控制变化的传播;

⑩ 自动化程度不足。

 

ξ 1.3 最佳的软件实践

 

☆ 软件开发最佳实践:

 ① 迭代开发:传统软件开发常使用瀑布模型,它将项目生命周期划分为需求分析阶段、设计阶段、编码和单元测试阶段、子系统测试阶段和系统测试阶段。该模型将项目开发各个阶段线性排列一直到项目结束,在项目交付使用前,很难拿出看得见的东西与用户沟通,而我们在开发系统的时候,往往是:“在看到东西之前,用户也不知道自己要的是什么东西”。瀑布模型的危害还表现为可能掩盖项目中存在的真正风险,而当你发现时已经太晚了。

迭代开发可以提供的解决软件开发问题的方案:

⑴ 可以在生命周期早期发现严重的需求理解错误,这是还可以修正这些错误;

⑵ 这种方法允许并鼓励用户反馈信息,从而抽取出系统的真正需求;

⑶ 这种方法使开发团队将注意力集中到项目中最关键的问题上,并屏蔽掉那些分散他们对项目中真正风险的注意力的问题。

⑷ 持续的、迭代的测试可以为项目状况给出客观的评估;

⑸ 需求、设计和实现中的不一致能够在早期被发现;

⑹ 在整个项目的生命周期中可以更加平均地分配整个团队,尤其是可以平均分配测试团队的工作量;

⑺ 团队可以在过程中总结经验教训,不断地改善开发过程;

⑻ 在整个生命周期中,项目相关人员可以通过具体证据来了解项目情况。

 

 ② 管理需求:需求在软件开发的生命周期中是具有动态性的。管理动态需求应至少包含三项活动:

  ⑴ 抽取、组织系统所需要的功能和约束并将其文档化;

  ⑵ 估计需求的变化并评估这些变化所带来的影响;

  ⑶ 跟踪并记录所做出的权衡和决定。

管理需求可以提供的解决软件开发问题的方案:

⑴ 在需求管理中构造原则性方法;

⑵ 人员之间的交流建立在已定义的需求之上;

⑶ 区分需求优先级,并进行过滤与跟踪;

⑷ 可以对功能和性能做出客观的评估;

⑸ 不一致性会尽早检测出来;

⑹ 借助适当的工具支持,使用与外部文档的自动连接,可以为系统的需求、属性和轨迹提供库支持。

 

③ 应用基于构件的架构

 使用基于构件的架构可以提供的解决软件开发问题的方案:

   ⑴ 构件有利于创建灵活性强的架构;

   ⑵ 模块化可以清晰地分离出系统中易于变化的元素;

   ⑶ 通过应用标准化的框架和商业上可获取的构件使复用更加容易;

   ⑷ 构件为配置管理提供一个非常自然的基础;

   ⑸ 可视化建模工具为基于构件的开发提供自动化的支持。

 

④ 为软件建立可视化模型

为软件建立可视化模型可以提供的解决软件开发问题的方案:

   ⑴ 通过用例和场景可以无二义性地详细说明行为;

⑵ 通过模型可以无二义性地理解软件设计;

⑶ 暴露出非模块化的和不灵活的架构;

⑷ 必要时可以隐藏细节;

⑸ 无二义性地设计可以更容易地反映出不一致性;

⑹ 高质量的应用程序应从好的设计开始;

⑺ 可视化建模工具提供对UML建模的支持。

 

⑤ 对软件的质量进行持续的验证

对软件的质量进行持续的验证可以提供的解决软件开发问题的方案:

  ⑴ 对于项目状况的评估是客观而非主观的,因为我们评价的是测试结果而非书面文档;

⑵ 这个客观的评估可以暴露出需求、设计和实现中的不一致;

⑶ 测试和验证工作关注的是高风险区域,因此增加了这些区域的质量水平和效率;

⑷ 可以尽早发现缺陷,从根本上降低修复他们的代价;

⑸ 自动化测试工具提供了对功能、可靠性和性能的测试。

 

⑥ 控制需求变更

控制需求变更以提供的解决软件开发问题的方案:

  ⑴ 定义需求变更的工作流,且需求变更的工作流是可重复的;

⑵ 变更请求使交流更加清晰;

⑶ 独立的工作空间减少了并行工作的团队成员之间的相互干扰;

⑷ 变更率统计表为客户评估项目状况提供了很好的度量;

⑸ 工作空间包含了所有制品,这样有利于保持一致性;

⑹ 变更的传播是可评估和可控制的;

⑺ 可以在一个健壮的、可定制的系统中维护变更。

 

ξ 1.4 小结

 

第一章看完,提出了六点软件开发的最佳实践。

第一是迭代开发,要做到从需求到发布的小增量迭代开发,必须要借助一些工具,比如版本控制工具、每日构建工具、自动化测试工具以及完善的缺陷跟踪机制,否则开发将陷入混乱无序的状态。

第二是动态需求管理,这里着重强调动态两个字,因为一个软件系统的开发,从头到尾,需求不变的情况几乎从来没有过。可以说第六点控制软件的变更和第二点是一个意思。正确评估需求变动对系统的影响,控制变动的传播。

对于第三点,我还是持保留意见的。面向构件的开发像空中楼阁一样,目前还看不到什么成熟的应用,COM晦涩复杂,从来就没有流行过;EJB最近更是备受质疑,事实也证明EJB2的技术并不怎么成功。一个应用确实应该有一个良好的基础框架,但不一定是面向构件的,模块化也确实是很好的思路,但粒度是否应该控制在构件一级,个人表示怀疑。

第四为建模,没什么好说的,上UML就可以了。

第五为对软件的质量进行持续的验证,在迭代开发中,每次迭代都应该进行严格的测试,确保本次迭代中测试发现的缺陷最终都被关闭。质量验证至少包含三个方面:对代码质量的验证、确保性能满足要求以及实现与需求保持一致。

 

归纳一下,到目前为之,我对RUP最佳软件实践的理解应该是:小增量迭代开发、动态需求管理、良好的基础框架、UML建模和持续的质量验证。

RUP大讲堂PDF讲义 立即下载

相关推荐

RUP导论(高清带书签)

RUP,详细系统介绍了RUP,是RUP权威著作,深入浅出,通俗易懂

书籍推荐 —— RUP导论(原书第3版)

Philippe Kruchten博士是RUP的首席架构师。他在电信、国防、航空以及运输领域的大型软件密集系统的开发方面有30多年的经验。本书的前两版已经被翻译成8种语言,前两版的销售量超过了160000本。

blackcat123的博客 577

UML与RUP简介

UML与RUP,开发设计分析技术与工具,了解整体才能分析好局部,理清了才不模糊

RUP学习笔记

RUP学习笔记 RUP(Rational Unified Process),统一软件开发过程,是一个面向对象且基于网络的程序开发方法论。

weixin_45820190的博客 692

RUP要点(清晰pdf 格式)

比较经典的RUP的要点描述,列出了各个过程的任务点和结果工件。

RUP官方中文文档模板

IBM Rational Unified Process RUP 官方中文文档模板 文档规范

读书笔记-RUP导论

软件开发问题的症状和根本原因  不同的软件开发项目可能由于不同的原因而导致失败。遗憾的是,有太多的项目最终都失败了。我们可以从这些项目中找出一些共同的症状:  1.对于最终用户的需求理解得不够精确  2.不能处理需求变更  3.模块之间不兼容  4.软件不易维护和扩展  5.对项目的严重缺陷发现较晚  6.软件质量低劣  7.软件性能无法令人接受  8.团队中人员按各自的开发方式工作,这使得对谁在

ASUKA 974

RUP定制原理

北京火龙果软件工程技术中心感谢:《软件工程——技术、方法与环境》一书的作者王立福等,《统一软件开发过程》一书的作者IvarJacobson等和译者周伯生等,《面向对象系统分析与设计》一书的作者RonaldJ.Norman和译者周之英等,《面向对象分析和设计》一书的作者宛延闿等,《可视化面向对象建模技术》一书的作者刘超等(本文中指明引用书目时依次简记作《北》《RUP》《Norman》《清》《可》)-----------------------------------前言---------------------------1.本文以“层次思维”方法论为工具,思考RUP定制实质,分析RUP定制原理

RUP简介

RUP简介           一、   RUP的概念           RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。           瑞理统一过程(RUP)是Rational软件公司(Rational公司被IBM并购)创造的软件工程方法。RUP描述了如何有效地利用商业的可靠的方法开发和部署

天高任鸟飞 7999

IEEE Transactions on Industrial Informatics(TII)投稿全流程解析:从准备到成功提交

本文详细解析了向IEEE Transactions on Industrial Informatics(TII)投稿的全流程,涵盖从投稿前的格式准备、内容结构优化到在线提交系统实操等关键环节。重点强调了遵守TII严格的格式规范、双盲评审要求以及如何构建有说服力的学术叙述,旨在帮助研究者提升稿件质量,顺利通过评审。

weixin_28396629的博客 1864

麒麟操作系统安装达梦数据库ARM版

Linux安装达梦数据库ARM版

运维@小兵的博客 8770

软件推荐书籍

软件人员推荐书目(都是国外经典书籍!!!) 转自http://guozhiwei.iteye.com/blog/650367 软件人员推荐书目(一) 大师篇  一、 科学哲学和管理哲学  【1】 "程序开发心理学"(The Psychology of Computer Programming : Silver Anniversary Edition)  【2】 "系统化思维导论"(A

chenxu6 1586

【电力系统】高压直流输电VSC-HVDC,四个变流站联合输电 / 交直流混合并网系统

本文研究了一种基于电压源型换流器(VSC)的高压直流输电(HVDC)系统,该系统通过四个变流站实现联合输电并接入交直流混合电网。文章介绍了系统的结构、工作原理以及控制策略,分析了交直流混合并网的特性,并通过仿真验证了系统的性能。结果表明,该系统具有良好的稳定性和灵活性,能够有效实现多点供电和功率协调。

2401_84610415的博客 2239

什么是RUP?

什么是RUP? 1、RUP是风险驱动的、基于Use Case技术的、以架构为中心的、迭代的、可配置的软件开发流程 2、我们可以针对RUP所规定出的流程,进行客户化定制,定制出适合自己组织的实用的软件流程。  因此RUP是一个流程定义平台,是一个流程框架。 RUP相当于计划,为开发提供步骤。所以说RUP是面向过程的。 为什么产生RUP? 软件危机推动了RUP的产生。软件危机面临的问题有难

张美红 2万+

S-function入门及案例详解(3)——S-function进阶案例

目录1.案例描述2.案例详解3.输出波形4.对输入参数进行Mask打包 1.案例描述 设计一个蹦极系统 h为离地面高度,输入参数为长度、质量、离地面高度。 2.案例详解 步骤1.可以修改sfuntmpl函数的名称(这里修改为bengji),并在括号内增加输入参数 参数len,weight,dist分别表示长度、质量、离地面高度;长度用来初始化x0,质量用来初始化m,离地面高度用来初始化h。 function [sys,x0,str,ts,simStateCompliance] = bengji(t,x,u

Wendy的博客 1万+

Uniapp-APP后台保活插件(安卓后台保活)

Uniapp-APP后台保活插件(安卓后台保活)亲测有效!

weixin_57844432的博客 1万+

什么是RUP

首先本人初次学习这个东西,很好奇RUP是什么,但是经过学习之后其实RUP没什么难的,简单理解就是一个过程,只不过这个过程叫做RUP。接下来让我们详细的来学习一些RUP 定义: 1、一个过程:是指想要达到一个目标而采取的一组有序的步骤,在软件工程中,目标是高效的,准时的提交一个满足你的业务需求的软件成品 2、RUP是一种特别适应于UML的生命周期方法 3、RUP提出了一整套以UML为基础的开发准则,...

huihui1314_的博客 1万+

程序化广告行业(23/89):深度剖析广告效果评估指标

大家好,我一直希望能和大家一起在技术领域不断探索、共同进步。在之前的文章中,我们了解了程序化广告中腾讯的业务布局和广告效果评估的基础概念,今天让我们进一步深入剖析广告效果评估的各项指标,这对理解程序化广告的运作机制至关重要

yyy173611的博客 4865

RUP

RUP

程雅丽的博客 2712

Debezium报错处理系列之第112篇:Cannot replicate because the master purged required binary logs. Replicate the

Debezium报错处理系列之第112篇:Cannot replicate because the master purged required binary logs.

zhengzaifeidelushang的博客 726

【AI for Medecine】吴恩达医学图像AI专项课程(诊断、预测、治疗)

近期需要简单了解AI4Science上的一些应用,看到吴恩达大佬的专项课程,于是开始来个“全面”的了解--医学人工智能(诊断、预测、治疗)。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 774

关于RUP的理论笔记

昨天上课老师提到了一个项目管理过程,其中有一种RUP过程RUP软件统一过程,RUP强调瀑布式的开发过程,讲究开发过程的迭代首先,RUP将软件的开发过程分为几块需求分析概要设计详细设计编码实现测试部署RUP就是Rational Unified Proces 的缩写,翻译成中文就是“统一软件过程”。RUP是一个基于6个最佳开发实践的流程定义产品。6个最佳开发实践1、迭代始开发2、需求管理3

yuezu技术专栏 1137

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

论RUP分析设计(RUP学习感悟)

 RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。根据Rational(Rational Rose和统一建模语言的开发者)的说法,好像一个在线的指导者,它可以为所有方面和层次的程序开发提供指导方针,模版以及事例支持。 RUP和类似的产品--例如面向对象的软件过程(OOSP),以及OPEN Process都是理解

大海的专栏 3371

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

UML—RUP总结

【内容】 1.RUP介绍 RUP(Rational Unified Process),统一软件开发过程,是一个面向对象且基于网络的程序开发方法论。 一个过程是指想要达到一个目标而采取的一组有序的步骤。 在软件工程中,目标是高效、准时地提交一个满足你的业务需求的软件产品。 RUP是Rational公司开发和维护的过程产品,是目前影响较大的、面向对象的软件开发过程。 RUP提供了在开发...

冯瑞姣 1209

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: 《UML用户指南》笔记(二)
下一篇: 《java与模式》笔记(一) 软件的可维护性和可复用性
plusir
博客等级 码龄24年 11粉丝 25原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值