浙江通管局 网站备案如何好注销,可制作网页的软件,桥头镇做网站,wordpress 釆集插件一、瀑布模型
1、按照传统的瀑布模型开发软件#xff0c;有下述几个特点。
①阶段间具有顺序性和依赖性
阶段间具有顺序性和依赖性#xff0c;这个特点有两重含义#xff1a;
1#xff0c;必须等前一阶段的工作完成之后#xff0c;才能开始后一阶段的工作#xff1b;…一、瀑布模型
1、按照传统的瀑布模型开发软件有下述几个特点。
①阶段间具有顺序性和依赖性
阶段间具有顺序性和依赖性这个特点有两重含义
1必须等前一阶段的工作完成之后才能开始后一阶段的工作
2前一阶段的输出文档介绍后一阶段的输入文档
因此只有前一阶段的输出文档正确后一阶段的工作才能获得正确的结果。
②推迟实现的观点
对于规模较大的软件项目来说往往编程开始得越早最终完成开发工作所需要的时间反而越长。
③质量保证的观点
软件工程的基本目标是优质高产。为了保证所开发的软件的质量在瀑布模型的每个阶段都坚持两个重要的做法。
1每个阶段都必须完成规定的文档没有交出合格的文档介绍没有完成该阶段的任务。完整、准确的合格文档不仅是软件开发时期各类人员相互通信的媒介也是运行时期进行维护的重要依据。
2每个阶段结束前都要对所完成的文档进行评审以便尽早发现问题改正错误。 事实上越是早期阶段犯下的错误暴露出来的时间越晚排除故障改正错误所需付出的代价也越高。因此及时审查是保证软件质量、降低软件成本的重要措施。
2、传统的瀑布模型过于理想化
事实上人在工作过程中不可能不犯错误。在设计阶段可能发现规格说明文档的错误而设计上的缺陷或错误可能在实现过程中显现出来在综合测试阶段发现需求分析、设计或编码阶段的许多错误。因此实践的瀑布模型是带“反馈环”的。 3、瀑布模型有许多优点
①可强迫开发人员采用规范的方法如结构化技术
②严格地规定了每个阶段必须提交的文档
③要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。
缺点
1.只能通过文档了解产品不经过实践是不切实际的
2.实际项目很少按照该模型给出的顺序进行
3.用户常常难以清楚地给出所有需求
4.用户必须要耐心等到系统开发完成
瀑布模型的成功在很的程度上是由于它基本上是一种文档驱动的模型。
但是“瀑布模型是文档驱动的”这个事实也是它的一个主要的缺点。 在可运行的软件产品交付给用户之前用户只能通过文档来了解产品是什么样的。但是仅仅通过写在纸上的静态的规格说明很难全面正确地认识动态的软件产品。而且事实证明一旦一个用户开始使用一个软件在他的头脑中关于该软件应该做说明的想法就会或多或少地发生变化这就使得最初提出的需求变得不完全适用了。事实上要求用户不经过实践就提出完整准确的需求在很多情况下都是不切实际的。总之由于瀑布模型几乎完全依赖于书面的规格说明很有可能导致最终开发出的软件产品不能真正满足用户的需要。
4、瀑布模型适用于
1需求是预知的
2软件实现方法是成熟的
3项目周期短
二、快速原型模型
所谓快速原型模型是快速建立起来的可以在计算机上运行的程序它所能完成的功能往往是最终产品能完成的功能的一个子集。 快速原型模型是不带反馈环的这正是这种模型的主要优点
软件产品的开发基本上线性顺序进行的
1能基本上做到线性顺序开发的主要原因如下
①原型系统已经通过与用户交互而得到验证据此产生的规格说明文档正确地描述了用户的需求因此在开发过程的后续阶段不会因为发现了规格说明文档的错误而进行较大的返工。
②开发人员通过建立原型系统已经学到了许多东西因此在设计和编码阶段发生错误的可能性也比较小这自然减少了在后续阶段需要改正前面阶段所犯错误的可能性。
快速原型的本质是“快速”。
按照原型的目的对原型分类
· 抛弃式目的到达即可抛弃原型不做为最终产品
· 演化式系统的形成和发展是逐步完成的是高度动态迭代和高度动态的每次迭代都要对系统重新进行规格说明重新设计和重新评价所以是对付变化最为有效的方法这也是与瀑布开发的主要不同点
· 增量式系统是一次一段地增量构造与演化式原型的最大区别在于增量式开发是在软件总体设计基础上进行的。很显然其对付变化比演化差
快速原型模型的优点
①尽早揭示软件可能存在的风险和不确定因素尤其是关于用户需求一致性方面的风险。
②用户参与降低风险节省后期变更成本提高项目成功率。
③不带反馈环基本上做到线性顺序开发。
④开发过程与用户培训过程同步系统易维护对用户更友好产品柔性好。
三、增量模型
增量模型也称渐增模型
增量模型属于非整体开发思想的产物 使用增量模型开发软件时把软件产品作为一系列的增量构件来设计编码集成和测试。
每个构件由多个相互作用的模块构成并且能够完成特定的功能。
使用增量模型时第一个增量构建往往实现软件的基本需求提供最核心的功能。
采用瀑布模型或快速原型模型开发软件时目标都是一次就把一个满足所有需求的产品提交给用户。增量模型与之相反它是分批逐步向用户提交产品使得整个软件被分解成许多增量构件开发人员一个构件接一个构件地向用户提交产品。
优点
①能在较短的时间内向用户提交可完成部分工作的产品
②逐步增加产品的功能可以使用户有充裕的时间学习和适应新产品从而减少一个全新的软件可能给客户组织带来的冲击。
缺点
①风险大必须保证新增构件不破坏原来已开发出来的产品 风险更大的增量模型 四、螺旋模型
螺旋模型的基本思想是使用原型及其他方法来尽量降低风险。 理解这种模型的一个简便方法是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型。 螺旋模型有许多优点
①对可选方案和约束条件的强调有利于已有软件的重用也有助于把软件质量作为软件开发的一个重要目标
②减少了过多的测试浪费资金或者测试不足产品故障多所带来的风险。
③在螺线模型中维护只是模型的另一个周期在维护和开发之间并没有本质区别。
螺旋模型的主要优势在于它是风险驱动的但是这也可能是它的一个弱点。除非软件开发人员具有丰富的风险评估经验和这方面的专门知识否则将会出现真正的风险当项目实际上正在走向灾难时开发人员可能还认为一切正常。
五、喷泉模型
迭代是软件开发过程中普遍存在的一种内在属性。 “喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。
图中代表不同阶段的圆圈相互重叠这说明表示两个活动之间存在交迭而面向对象的方法在概念和表示方式上的一致性保证了在各项开发活动之间的无缝过渡
事实上用面向对象方法开发软件时在分析、设计和编码等项开发活动之间并不存在明显的边界。
图中较小的圆圈代表维护圆圈较小象征着采用了面向对象范型之后维护时间缩短了。
为避免使用喷泉模型开发软件时开发过程过分无序应该把应该线性过程例如快速原型模型作为总目标。但是同时也应该记住面向对象范型本身要求经常对开发活动进行迭代或求精。