软件开发中为什么使用形式化方法
1、边做边改模型(build-and-fixmodel)这种模型一般不会使用。
是不断的修正版本不断的供用户使用,如果出现错误或是新的需求又不断的修改代码的过程。
缺点: 缺少规划和设计环节。
忽略需求环节,风险大。
周期长费用高。
2、瀑布模型(Waterfall-model)较常用。
提供了一种有效的管理视图。
每项开发活动均处于一个质量环节。
文档驱动,以项目阶段评审和文档控制为手段有效的对整个开发过程进行指导。
主要是针对客户的需求较明确。
缺点:缺乏灵活性,太过于理想化。
如果开发其中,客户难以明确需求,需求错误在后期就难以纠正。
软件的开发严格的按照线性方式进行,当前活动的工作结果,实施完成所需要的工作结果需要验证,如果验证通过,则结果作为下一项活动的输入,继续。
否则返回。
3、快速原型(rapid prototype)快速原型是运行的模型 在功能上等价产品的一个子集。
适用于 用户需求不明确。
一旦需求确定,原型将被抛弃。
原型内部结构不重要,重要的是能迅速的构建原型,并迅速修改以满足客户的需求。
适用于:小型或是交互型式的系统。
大型系统的某些部分,例如用户界面。
生命周期较短的。
特点:快速模型克服瀑布模型的特点,减少由于软件需求不明确带来的开发风险,具有显著的效果第一步:建造一个快速的模型。
第二步:是建造一个快速的模型。
4、增量模型(incremental model)是渐增演化的过程,软件被看作是一系列的增量构建来设计、实现、集成和测试,每一个构建由多种相互作用的模块所形成的提供特定功能呢的代码片段构成。
开发出一部分就向用户展示一部分,及早的发现问题。
先开发一个原型模型的软件,完成模型的主要功能。
展示给用户征求意见。
特点:缩短时间开发人员与用户可以通过原型充分的交流;有利于用户的培训和开发的同步。
加入构建必须不破坏已构造好的体系结构。
模型的灵活性可以使其适应需求的变化,但也很容易退化为边做边改模型。
5、螺旋模型(Spiral Model)特点:强调了风险分析主要是分为如下的活动:制定计划:明确软件的目标,选定实施方案,弄清项目开发的限制条件。
风险分析:分析评估所选方案,考虑如何识别和消除风险。
实施工程:实施软件开发和验证客户评估:评估开发工作,提出修正建议,指定下一步计划。
6、形式化模型方法形式化模型方法采用数学方法将系统描述转化成为可执行的程序。
适用:适用于对于那些安全性和保密性要求极高的软件系统,这些需要在投入运行前进行验证。
优点:犹如教学方法具有的严密和准确性,形式化方法开发过程中所交付的软件信息具有较少的缺陷和较高的安全性。
缺点:费时费力,开发人员需要经过特殊的训练。
难以进行形式化描述。
7、基于组建的开发模型基于组建的开发技术是使用技术是使用可重用的组建或是商业组建建立复杂的软件系统。
组建开发急速的两个重要的因素。
基于组建的软件体系。
基于组建的开发过程。
优点:充分体现软件复用的思想,实现快速的交付。