顺义便宜的建站公司,网站入口首页,网站的软文推广,做网站的有哪些公司软件的“生命周期”一般分为6个阶段#xff0c;即制定计划、需求分析、设计、编码、测试、运行和维护。在软件工程中#xff0c;这个复杂的过程一般用软件开发模型来描述和表示。常见的软件开发模型有#xff1a;以软件需求为前提的瀑布模型#xff0c;渐进式开发模型(如螺…软件的“生命周期”一般分为6个阶段即制定计划、需求分析、设计、编码、测试、运行和维护。在软件工程中这个复杂的过程一般用软件开发模型来描述和表示。常见的软件开发模型有以软件需求为前提的瀑布模型渐进式开发模型(如螺旋模型、增量模型等),以形式化开发方法为基础的变换模型敏捷开发方法等。
▶1.瀑布模型
瀑布模型的核心思想是使用系统化的方法将复杂的软件开发问题化简将软件功能的实现与设计分开。将开发划分为一些基本活动如制定计划、需求分析、软件设计、程序编写、程序测试、软件运行和维护等基本活动。如图2-30所示瀑布模型的软件开发过程自上而下相互衔接如同瀑布流水逐级下落。 瀑布模型是最早出现的软件开发模型在软件工程中占有重要的地位。瀑布模型的本质是一次通过即每个活动只执行一次最后得到软件产品。
瀑布模型有利于大型软件开发过程中人员的组织和管理有利于软件开发方法和工具的研究与使用从而提高了大型软件项目开发的质量和效率。然而软件开发的实践表明瀑布模型存在以下严重缺陷。 一是开发模型呈线性当开发成果未经测试时用户无法看到软件效果这样软件与用户见面的时间较长增加了一定的风险二是软件开发前期没有发现的错误传到后面开发活动中时错误会扩散进而可能造成整个项目开发失败三是在软件需求分析阶段完全确定用户的所有需求非常困难甚至可以说是难以达到的目标。 互联网硅谷创业权威保罗·格雷厄姆(Paul Graham)指出有些创业者希望软件第一版就能推出功能齐全的产品满足所有的用户需求这种想法存在致命的错误。美国硅谷创业者最忌讳的就是“完美”。因为一方面用户需求是多样的不同人群有不同的需求另一方面开发者想象的需求往往和真实的用户需求有偏差。在美国硅谷Shipping it是一个流行词汇意思是把你的产品从仓库里拿出来给客户除了字面上的意思其实还有一种精神层面的意义你的东西要到客户手中才会有价值而这是你一直以来追求的目标。
▶2.增量模型
使用增量模型时第一个增量往往是产品的核心即它实现了系统的基本需求但很多补充的特征还有待发布。客户对每一个增量功能的使用和评估都作为下一个增量发布的新特征和功能这个过程在每一个增量发布后不断重复直到产生了最终的完善产品。增量模型本质上是迭代的它强调每一个增量均是一个可操作的产品。 增量模型是刚开始不用投入大量人力资源。它先推出产品的核心部分如果产品很受欢迎则增加人员实现下一个增量。此外增量能够有计划地管理技术风险。 增量模型的缺点是如果增量包之间的关系没有处理好就会导致系统的全盘分析和重新建立。这种模型较适应于需求经常改变的软件开发过程。
▶3.敏捷开发方法
敏捷开发是近年兴起的一种轻量级软件开发方法它的价值观是沟通、简单、反馈、勇气、谦逊。它强调适应性而非预测性强调以人为中心而不是以流程为中心强调对变化的适应和对人性的关注。皱捷方法强调程序员团队与业务专家之间的紧密协作面对面的沟通频繁交付新的软件版本很好地适应需求变化更加注重软件开发中人的作用。敏捷开发借鉴了软件工程中的迭代与增量开发敏捷开发方法包括极限编程(XP)、Scrum(短距离赛跑的意思一种达代式增量开发)、Crystal(频繁交付和紧密沟通)、上下文驱动测试、精益开发、统一过程等。
敏捷开发遵循以下基本原则
(1)最重要的是通过尽早和不断交付有价值的软件满足客户需要。
(2)即使在开发后期也欢迎用户改变需求利用变化来为客户创造竞争优势。
(3)经常交付可以工作的软件从几星期到几个月时间尺度越短越好。
(4)敏捷方法要求尽可能少的文档最根本的文档应该是程序代码。
(5)在项目开发期间业务人员和开发人员必须天天在一起工作。
(6)文档的作用是记录和备忘最有效率的信息传达方式是面对面地交谈。
(7)每隔一定时间团队需要对开发工作进行反省并相应地调整自己的行为。
(8)确定开发中的瓶颈对于瓶颈处的工作应该尽量加快减少重复。
敏捷开发也有局限性如对那些需求不明确优先权不清楚或者在“较快、较便宜、较优”三角结构中不能确定优先级的项目采用敏捷开发方法很困难。