`
sunnyshuhai
  • 浏览: 41550 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

深入浅出软件开发-----(一)超越过程的迭代式开发

阅读更多

      近日正在研读《Head First Software Development》一书,很喜欢深入浅出系列的书籍,语言流畅、行文活泼又不失风趣。同时又可以顺便学习一下英文,其实该系列书籍都挺流畅,只要英文不是特别差读起来就不费任何力气。

 

      其实本书根据软件开发的整个流程,讲了很多的切实可行、可用的实践来帮助我们开发出伟大的软件----(Deliver what the customer want,  on time ,on buget!)

 

      Greate software developent --Pleaing your customer

 

        软件存在的最终的价值在于能够满足客户的需求为客户创造价值。如果开发出来的软件不能够使的客户满意,就不是成功的软件,就更谈不上伟大!所以伟大的软件开发在于能够开发出来使得客户满意的软件!

 

       每一个程序员、每一个开发团队都想开发出来伟大的软件,但是从客户一个模糊的主意到一款伟大软件的出生并非易事。所以业界提出很多软件工程方面的理论,希望能够像建筑那样来建造软件,但是没有实体软件并不是实体建筑,业界也已经有定论在---软件开发领域没有银弹

 

       并不是每一个士兵都想成为将军,有时候我们需要就是“在一定的时间、一定预算内开发出来客户需要软件 ”--这就是我们的目标,所以我们可以使用已经证明有效的开发过程或实践来开发出来相对较好的软件。迭代式开发就是其中的之一!

 

       软件开发过程有两个主要的问题一直困扰着我们,也使所有的开发人员痛恨不已..... 

       1.用户不知道他们到底需要什么,或者是说不清楚他们需要什么。

       2.需求的变化和增加。

于是我们想出各种办法去弄清楚用户的需求,去获取用户的所有需求。我们希望在项目开始进入设计和编码之前把这些问题都解决掉。但是不幸的是人不是机器, 对事物的认识是有一个过程的,变化总是在发生!所以我们就像一条在不停追逐自己尾巴的狗一样,永远也赶不上。

 

  •       迭代式开发可以启发用户澄清和挖掘需求 。通过短期的开发迭代,我们在每一个迭代结束时产生一个可以工作的软件给用户演示、使用。让用户帮我们核对我们开发有没有偏离方向,是不是他们需要的,因此迭代开发相当于设了一系列的检查点来矫正我们的开发方向。同时,通过可以工作的软件来启发用户,让他们把一些潜在的需求挖掘出来,没有澄清的需求进一步的澄清。

 

  •      迭代式开发可以有效的应对需求的变化和增加。 由于把整个开发过程分为一系列的子开发,所以我们可以灵活在后续的迭代过程中添加和改动需求。同时调整我们的迭代顺序,而不至于因为一开始的完全设计使得没有办法进行调整。

 

     还有一点需要说明的是,可能提到迭代开发就想到敏捷开发、极限编程。但是迭代开发并不是他们专有的,迭代开发超越了开发过程。

 

 

 

 

 

 

1
0
分享到:
评论

相关推荐

    深入浅出Android--Google手持设备应用程序设计

    《深入浅出Android--Google手持设备应用程序设计》是一本针对Android开发者的权威指南,它旨在帮助初学者和有经验的开发者全面理解Android平台,并掌握在Google手持设备上设计和构建应用程序的技能。这本书以深入浅...

    Rational迭代化软件开发

    在软件开发领域,Rational迭代化是一种高效且灵活的方法,它源自IBM公司的Rational统一过程(RUP)。Rational迭代化软件开发强调将整个项目分解为一系列小的、可管理的迭代周期,每个周期都包含计划、设计、实现、...

    自在现模形成过程--Fox-Li数值迭代法.doc

    《自在现模形成过程——Fox-Li数值迭代法在Matlab中的模拟》 在光学领域,自由空间模(自在现模)是描述电磁场在无约束空间中的传播模式。自由空间模形成过程的研究对于理解激光腔内光场的分布、光学谐振腔的设计...

    软件工程中的迭代开发方法.pptx

    - 软件工程是一种系统化的、规范化的、可度量化的方法论,旨在指导软件的开发、维护及运行过程。 - 其目标在于提升软件的质量、开发效率以及可靠性。 - **软件工程原则**: - **可信度原则**:确保软件的准确性...

    迭代化软件开发

    总之,迭代化开发是一种更为灵活和高效的软件开发方法,它通过将大型项目分解成一系列可控的小型迭代,从而有效地解决了传统开发方法中存在的诸多问题。这种方法不仅提高了项目的成功率,还提升了产品的质量和用户的...

    编程之-迭代法

    这一方法适用于解决各种问题,如计算数学中的数值分析、数据结构的遍历、算法设计以及软件开发过程等。 在编程中,迭代法通常体现在循环结构中,如for、while和do-while循环。这些循环语句允许程序员重复执行一段...

    计算机软件开发规范_GB_8566-88

    - **优点**:支持迭代和渐进式开发,有助于深入理解需求。 - **缺点**:缺乏明确的阶段划分,可能导致管理上的混乱。 5. **软件测试模型(V模型和W模型)**: - **V模型**:强调测试活动与分析设计活动的关系,...

    软件开发的过程与管理

    6. 迭代开发:现代敏捷开发方法强调迭代和增量式开发,快速交付可用软件,并根据反馈持续改进。 三、相关工具和技术 - 使用需求管理工具(如JIRA)来跟踪和管理需求。 - 使用版本控制系统(如Git)进行代码管理。 ...

    [深入浅出:使用Python编程]

    《深入浅出:使用Python编程》一书采用了迭代学习的方法来教授编程知识。这种方法的核心思想是通过不断迭代代码,逐步增加功能并完善程序,让学习者能够在实践中逐步理解编程概念。这种方式模仿了真实世界中的软件...

    快速软件开发 -- pdf

    快速软件开发,也被称为敏捷开发,是现代软件工程领域中的一种重要方法论,旨在通过灵活、迭代和增量的方式提高开发效率,同时确保软件产品的质量和满足客户需求。这一概念自20世纪90年代末以来逐渐兴起,是对传统...

    迭代软件开发流程参考.pdf

    迭代软件开发流程是一种应对传统瀑布模型中问题的现代软件开发策略。传统的瀑布模型强调文档驱动,按照需求分析、设计、编码、测试和维护等顺序进行,这种线性方式容易导致需求变化带来的返工,项目延期和成本超支,...

    软件开发过程规范文档

    此文档是关于如何规范软件开发过程的一份指导性文件,它不仅包含了技术过程的规范,还涉及了管理过程的规范。这有助于确保软件项目的高效性和质量。 #### 二、规范目的 - **目的**: 明确整个软件开发过程,使其更加...

    Jacobi-雅可比迭代法、高斯-赛德尔迭代法.zip

    它在每次迭代时使用当前的估计值,而不是前一次的估计值,使得迭代过程更加高效。具体迭代公式如下: x_i^(k+1) = (1/D_i) * (b_i - Σ_j(L_ij*x_j^k) - Σ_j(U_ij*x_i^k)),对于i=1,2,...,n 这里,x_i^(k+1)是第i...

    深入浅出ES6

    ### 深入浅出ES6 #### ES6概述与重要性 ES6,即ECMAScript 2015,是JavaScript编程语言的一个重要版本,它引入了一系列新特性和改进,极大地提升了开发者的工作效率和代码质量。由于前端技术领域的快速发展,新...

    软件开发过程 软件开发过程

    一个有效的软件开发过程能够确保软件产品质量,提高开发效率,并满足客户需求。 #### 二、软件开发过程的关键概念 **1. CMM(能力成熟度模型)** - **定义**:CMM是一种用于评估组织在软件开发和维护方面的能力...

    MATLAB编写的JACOBI,G-S迭代法

    MATLAB是一种广泛应用于科学计算、数据分析和工程领域的高级编程语言,尤其在数值计算方面具有强大的功能。本资源包含MATLAB编写的JACOBI(雅可比)和Gauss-Seidel(高斯-赛德尔)迭代法实现。这两种迭代方法是求解...

    软件工程与软件迭代开发方法.pptx

    敏捷开发是一种以迭代、增量方式进行软件开发的方法论,强调在项目进行过程中及时响应客户需求变化。 **敏捷开发的原则:** - **重视个体之间的交流与合作:** 强调人的作用大于工具流程。 - **可工作的软件胜过...

Global site tag (gtag.js) - Google Analytics