《Iterative and Incremental Development-A brief history》有感

随着信息技术的发展, 互联网的普及和发展迅猛,软件开发的重要性也逐渐的显著,软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。软件的应用能够帮助人们处理很多繁琐的工作,给人们的工作、生活、娱乐提供了很大的帮助。而这些软件都是由软件公司程序员编写出来的,其内部代码更是繁琐。一款软件开发完成后总是会调试好多次来检查各部分功能。软件开发,是人们要告诉电脑自己要做什么事而编写的,电脑能够理解的一串指令叫代码、也可以叫程序。济南软件公司多年来一直致力于软件外包、软件开发、网站建设等,不断走向更高的技术领域。

《 Iterative and incremental developments. a brief history》论文讲述了迭代和增量开发模式的历史,清晰地展现出了软件开发模式的发展。这个简短的历史表明,独立同分布的概念是著名的推荐实践,软件工程思想领袖,十年,与许多成功的大型项目有关,并由标准板推荐。文中This description of projects and individual contributions provides compelling evidence of iterative and incremental development’s (IID’s) long existence. Many examples come from the 1970s and 1980s—the most active but least known part of IID’s history. We are mindful that the idea of IID came independently from countless unnamed projects and the contributions of thousands and that this list is merely representative. We do not mean this article to diminish the unsung importance of other IID contributors.对项目和个人捐款的描述,提供令人信服的迭代证据,增量开发的(IID)长期存在。许多例子源于20世纪70年代。80年代最活跃但最不为人所知的部分,我们的历史。我们都知道,信息化教学设计的理念独立于无数无名项目成千上万的贡献,这份名单只是代表性的。

软件开发模式的四种主要模式为瀑布、迭代、螺旋、敏捷;1、瀑布模型是由W.W.Royce在1970年最初提出的软件开发模型,瀑布式开发是一种老旧的计算机软件开发方法。瀑布模型式是最典型的预见性的方法,严格遵循预先计划的需求分析、设计、编码、集成、测试、维护的步骤顺序进行。步骤成果作为衡量进度的方法,例如需求规格,设计文档,测试计划和代码审阅等等。瀑布式的主要的问题是它的严格分级导致的自由度降低,项目早期即作出承诺导致对后期需求的变化难以调整,代价高昂。瀑布式方法在需求不明并且在项目进行过程中可能变化的情况下基本是不可行的。

迭代式开发也被称作迭代增量式开发或迭代进化式开发,是一种与传统的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率。每次只设计和实现这个产品的一部分, 逐步逐步完成的方法叫迭代开发,每次设计和实现一个阶段叫做一个迭代. 在迭代式开发方法中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代。每一次迭代都包括了需求分析、设计、实现与测试。采用这种方法,开发工作可以在需求被完整地确定之前启动,并在一次迭代中完成系统的一部分功能或业务逻辑的开发工作。再通过客户的反馈来细化需求,并开始新一轮的迭代。迭代式开发,可以降低风险,得到早期用户反馈,持续的测试和集成,使用变更,提高复用性;

螺旋开发,1988年,巴利·玻姆(Barry Boehm)正式发表了软件系统开发的“螺旋模型”,它将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。“螺旋模型”刚开始规模很小,当项目被定义得更好、更稳定时,逐渐展开。“螺旋模型”的核心就在于您不需要在刚开始的时候就把所有事情都定义的清清楚楚。您轻松上阵,定义最重要的功能,实现它,然后听取客户的意见,之后再进入到下一个阶段。如此不断轮回重复,直到得到您满意的最终产品。

敏捷软件开发又称敏捷开发, 是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力。它们的具体名称、理念、过程、术语都不 尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织 型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发中人的作用。

这四者,传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好。特别是前期阶段,设计的越完美,提交后的成本损失就越少。迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目的,以最短的时间,最少的损失先完成一个“不完美的成果物”直至提交。然后再通过客户或用户的反馈信息,在这个“不完美的成果物”上逐步进行完善。螺旋开发,很大程度上是一种风险驱动的方法体系,因为在每个阶段之前及经常发生的循环之前,都必须首先进行风险评估。敏捷开发,相比迭代式开发两者都强调在较短的开发周期提交软件,但是,敏捷开发的周期可能更短,并且更加强调队伍中的高度协作。敏捷方法有时候被误认为是无计划性和纪律性的方法,实际上更确切的说法是敏捷方法强调适应性而非预见性。适应性的方法集中在快速适应现实的变化。当项目的需求起了变化,团队应该迅速适应。这个团队可能很难确切描述未来将会如何变化。

This brief history shows that IID concepts have been and are a recommended practice by prominent software-engineering thought leaders of each decade, associated with many successful large projects,and recommended by standards boards.Yet, even though the value of IID is well known among literate, experienced software engineers,some commercial organizations, consulting companies,and standards bodies still promote a documentdriven single-pass sequential life cycle as the ideal.We conclude with this recommendation: In the interest of promoting greater project success and saving taxpayer or investor dollars, let’s continue efforts to educate and promote the use of IID methods. 论文最后提到:尽管众所周知的是我们的价值,在有知识、有经验的软件工程师中,一些商业组织、咨询公司,标准机构仍然提倡单遍连续生命周期为理想。我们最后以这项建议为目的:促进更大项目的成功和节约,纳税人或投资者美元,身为软件工程专业的大学生,我也在心中更加笃定,自己的发展方向,跟随各个学者和专家的角度,继续努力,教育和促进信息化教学方法的运用。

 

 

 

 

 

 

 

 

 

参考资料

1、论文Iterative and Incremental Development-A brief history》迭代和增量开发的简短历史

  1. 软件开发模式https://www.cnblogs.com/tianguook/p/4004726.html

3、软件开发https://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91/3448966?fr=aladdin

4、教材《软件工程过程》清华大学出版社

 

猜你喜欢

转载自blog.csdn.net/nanaz11/article/details/81148270