首页 > 软件开发 >软件开发与实践 软件开发与实践实验报告

软件开发与实践 软件开发与实践实验报告

IT信息网 2024-07-16 17:26:22 0

大家好,今天小编关注到一个比较有意思的话题,就是关于软件开发与实践的问题,于是小编就整理了1个相关介绍软件开发与实践的解答,让我们一起看看吧。

敏捷开发和迭代开发是一回事么?

很多人都对敏捷理解存在误区,在没有完全明白敏捷的精髓是什么的情况下就瞎几把搞,最后搞成邯郸学步,啥也不是的地步。(包括那些推广公司,大多拿敏捷的话题来赚钱而已)。

软件开发与实践 软件开发与实践实验报告

现在说说个人对敏捷的理解,敏捷是在程序员具有高度设计分析能力,软件功能具有高度自主的基础之上的,通过实时沟通而进行的软件开发实践活动。它讲究的是知识共享与协同合作(把小步迭代也算成敏捷的精髓的话,我不太认可)。

再谈谈什么类型的项目适合敏捷。

敏捷开发和迭代开发是不同的

敏捷开发的定义是一种面对不断变化的外界环境,快速适应并持续短周期迭代的开发能力。

核心思想是:缩短周期,快速验证,不断改进。需要注意的是,敏捷开发的目的不是帮助团队在最短时间内完成项目,而是让团队能开发出顺应需求变化的真正有价值的产品。

敏捷开发并不是一个固定式的开发流程,而是能让团队更好更快的开发的所有方法理念的集合。所以团队不应该被所谓的敏捷开发方法束缚,而是以敏捷开发的核心思想切入,不断更迭出属于团队自己的开发流程和方法。

迭代开发的定义是在迭代开发中,整个开发工作被组织为一系列的短小的、固定长度(如3周)的小项目,被称为一系列的迭代。每一次迭代都包括了定义、需求分析、设计、实现与测试。

核心思想是:迭代增量式开发或迭代进化式开发,是一种与传荣的瀑布式开发相反的软件开发过程,它弥补了传统开发方式中的一些弱点,具有更高的成功率和生产率

开发就是开发。由于许多项目需要长时间持续更新调整与集成测试,为了支持在线更新,降低风险等复杂要求一些辅助工具应运而生。开始,这类工具集中在代码管理、编译、测试、打包、分发等阶段,并逐渐扩展。一些咨询机构、独立顾问、教授从各自的角度选择或重新整理包装,并以“高大上”演讲、文章向全世界最终用户、系统集成商等推广。敏捷开发和迭代开发作为工具集理解,不同点可能主要是名称。作为方法论范畴迭代开发更紧凑。

其实,运营商的运维人员和集成商的应用实施顾问可能更喜欢议论这类东西。至于真正的开发人员特别是架构设计者关注的重点是如何为应用系统提供持续更新、集成、测试的支撑能力,将需求变更作为系统的基本功能。当前普遍的做法是开发专用的脚本语言或与有种脚本语言集成。

总之,开发者不必纠结于这些虎人的说辞中。

我认为,敏捷开发的包含并大于迭代开发。

我的认知中,开发分为敏捷开发和非敏捷开发。敏捷开发的开发生命周期模型的典型代表是迭代开发。非敏捷的典型代表是瀑布开发。

举个例子。做一个产品,从需求到可行性到立项到开发到测试到上线,如果每一步的依赖都是前面一步的输出,例如要想做好可行性必须要做好需求并输出相应的文档,这种叫瀑布式开发。好处是每一步都有据可依,会把前期因为需求不明确或设计失误降到最低。每一步只有通过评审才能进行下一步。带来的问题是开发周期长,需求一旦确定,后期再变化,可能会造成项目失败。

做一个产品,将需求分解,确定的需求和不确定的需求,先做确定的需求,进行一个完整的开发周期,向客户交付,然后进一步确定不确定的需求,按照迭代升级不断的完善产品。这种方法的好处是产品可迅速出原型,可根据市场反应比较快的调整需求。同时它也就要求对产品的开发要有一个好的架构或模型,甚至要牺牲成本,有可能最后的成品需要重新迭代硬件,也就是每一次的迭代有可能只适应于当前需求,后期的迭代就要根据需求更新硬件。当然,如果产品规划的好,迭代思路明确,可以减少这方面的问题。

敏捷和非敏捷没有更好,只有更适合。工业品的开发应该更适合非敏捷,因为需求明确且不容易变,产品开发更注重稳定。消费品的开发应该更适合敏捷开发,迅速开发出原型机去验证市场或交付客户,之后一步步完善,更注重功能。或者说,可以不稳定,但一定可以不断升级。

以上

到此,以上就是小编对于软件开发与实践的问题就介绍到这了,希望介绍关于软件开发与实践的1点解答对大家有用。