近日正在研读《Head First Software Development》一书,很喜欢深入浅出系列的书籍,语言流畅、行文活泼又不失风趣。同时又可以顺便学习一下英文,其实该系列书籍都挺流畅,只要英文不是特别差读起来就不费任何力气。
其实本书根据软件开发的整个流程,讲了很多的切实可行、可用的实践来帮助我们开发出伟大的软件----(Deliver what the customer want, on time ,on buget!)
Greate software developent --Pleaing your customer
软件存在的最终的价值在于能够满足客户的需求为客户创造价值。如果开发出来的软件不能够使的客户满意,就不是成功的软件,就更谈不上伟大!所以伟大的软件开发在于能够开发出来使得客户满意的软件!
每一个程序员、每一个开发团队都想开发出来伟大的软件,但是从客户一个模糊的主意到一款伟大软件的出生并非易事。所以业界提出很多软件工程方面的理论,希望能够像建筑那样来建造软件,但是没有实体软件并不是实体建筑,业界也已经有定论在---软件开发领域没有银弹
!
并不是每一个士兵都想成为将军,有时候我们需要就是“在一定的时间、一定预算内开发出来客户需要软件
”--这就是我们的目标,所以我们可以使用已经证明有效的开发过程或实践来开发出来相对较好的软件。迭代式开发就是其中的之一!
软件开发过程有两个主要的问题一直困扰着我们,也使所有的开发人员痛恨不已.....
1.用户不知道他们到底需要什么,或者是说不清楚他们需要什么。
2.需求的变化和增加。
于是我们想出各种办法去弄清楚用户的需求,去获取用户的所有需求。我们希望在项目开始进入设计和编码之前把这些问题都解决掉。但是不幸的是人不是机器,
对事物的认识是有一个过程的,变化总是在发生!所以我们就像一条在不停追逐自己尾巴的狗一样,永远也赶不上。
- 迭代式开发可以启发用户澄清和挖掘需求
。通过短期的开发迭代,我们在每一个迭代结束时产生一个可以工作的软件给用户演示、使用。让用户帮我们核对我们开发有没有偏离方向,是不是他们需要的,因此迭代开发相当于设了一系列的检查点来矫正我们的开发方向。同时,通过可以工作的软件来启发用户,让他们把一些潜在的需求挖掘出来,没有澄清的需求进一步的澄清。
- 迭代式开发可以有效的应对需求的变化和增加。
由于把整个开发过程分为一系列的子开发,所以我们可以灵活在后续的迭代过程中添加和改动需求。同时调整我们的迭代顺序,而不至于因为一开始的完全设计使得没有办法进行调整。
还有一点需要说明的是,可能提到迭代开发就想到敏捷开发、极限编程。但是迭代开发并不是他们专有的,迭代开发超越了开发过程。
分享到:
相关推荐
平行平面镜--自在现模形成过程--Fox-Li数值迭代法 % 参数初始化 clc;clear; lambda=600e-9; %波长 L=100*lambda; %腔长 a=25*lambda; %腔镜线宽 k=2*pi/lambda; %波矢 x1=linspace(-a,a,1000); %取1000个点积分;...
软件迭代开发计划模板,项目管理文档参考用
自己整理编写的软件开发流程与质量管理的资料,具有实战意义。
matlab开发-迭代复合函数TimeEscapeFractalExplorer。一个用于探索迭代复杂函数分形的图形用户界面。例如Julia Sets。
深入浅出 ES6(一):ES6 是什么 深入浅出 ES6(二):迭代器和 for-of 循环 深入浅出 ES6(三):生成器 Generators 深入浅出 ES6(四):模板字符串 深入浅出 ES6(五):不定参数和默认参数 深入浅出 ES6...
matlab开发-迭代关闭点方法。在刚体变换下将一组数据点拟合到一组模型点
matlab开发-迭代学习运动控制。在位置控制系统中实现了具有遗忘功能的基本重复补偿。
matlab开发-迭代nTHPowerRootImageEqualization。这是一个图像均衡代码……
用MATLAB语言进行Jacobi迭代法、Gauss-Seidel迭代法、SOR迭代法三种算法的计算
RUP迭代开发过程,喜欢研究面向对象的软件开发模式的朋友可以看看。
matlab开发-使用gnewton方法迭代一个变量。程序迭代给定的与x轴相交的函数值。
matlab开发-迭代trimmed和runcatedmeanalgorithmfilterittmfilter。ITTM滤波器用于噪声抑制和图像处理。
软件开发的各个阶段之间的关系不可能是顺序且线性的,而 应该是带有反馈的迭代过程。在软件工程中,这个复杂的过程用软件开发模型来描述和 表示。 软件开发模型是跨越整个软件生存周期的系统开发、运行和维护所实施...
RUP迭代式开发全中文资料---强烈推荐
matlab开发-迭代约束成员提取。该算法可用于卫星遥感和高光谱近红外成像。
Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球。虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:Scrum ofScrums....
matlab开发-迭代约束成员提取.zip.zip
令 n=10、50、100、200,分别绘制出算法的收敛曲线,横坐标为迭代步 数,纵坐标为相对误差。比较 Jacobi 迭代法、Gauss-Seidel 迭代法、逐次超松弛迭代法、 共轭梯度法与高斯消去法、列主元消去法的计算时间。改变...
matlab开发-设计模式迭代器行为。迭代器行为设计模式的matlab®oop实现
----icm---条件迭代算法,条件迭代算法基于MRF----ICM----