11. 软件开发模型
主要介绍不同的模型
可以分为
也是我们接下来要介绍的重点
我们首先依次讲述下不同模型的区别
- 瀑布模型
经典的开发模型,分为了如下流程
大致可以分为三个步骤
定义阶段,开发阶段, 维护阶段
一个软件的会从定义开始,到开发,到交互,最后到维护
优点是一目了然,但是拥有比较大的缺陷
那就是在于当前的互联网环境中,往往不是所有的需求都是特定的
而是需求在不断的变化,所以这个结构中的第一个定义阶段往往是不确定的
这就是瀑布模型的一个缺点,无法快速迭代,快速变化。
然后是其他的经典模型
演化模型,又名变化模型
其中最主要的概念是原型,这个概念指的是先以一种基本的,无需交互的方式设计出一个产品原型,然后是不断的演化,变化,得到最终的产品
然后是增量模型
先做一个最小的原型,然后不断的在最小模型上做增量,最终成为一个可操作可发布的产品
其次是螺旋模型,对于这个模型最主要的特点是引入了风险分析
除了基本的需求分析,确认,开发,测试,就是在需求之后引入了风险分析这个概念
之后便是V型
其主要的特点在于将测试阶段进行了细分
在主要的分析的阶段,就初步构建测试的步骤
进行一一对应的构建,也就是V型模型重点是测试
然后是构件组装模型
主要是利用构件进行复用
主要是在不断的设计开发中创建新的构建库
然后方便后续开发的复用
对于统一过程,主要如下图
之后是新推崇的一种开发模式。敏捷开发模式
其主张的特点有
并且带有着一些最佳实践
从此引申出来的编程方法有
自适应开发, 水晶方法,特征驱动开发,SCRUM, 极限编程
相关的开发方法,我们亦可以总结如下
分别是结构化法,讲究区分工作阶段,每个阶段都有任务和成果
系统开发过程工程化,文档资料标准化,但是缺点在于自顶向下,需要大量的管理时间
面向对象方法,拥有更好的复用性,建立一个完整的模型
原型法,可以创建一个不完整,甚至无法使用的原型,从而进行开发
面向服务的方法,一个不完善的开发方式,主要是抽取不同的服务进行开发
之后是开发中的需求分析
主要分为了,业务需求,用户需求,系统需求 分别是一个系统的业务相关,和使用者角度,以及系统基本需求这几个角度出发的
之后延伸出来了功能需求,性能需求,设计约束
最后则是对于用户,可以分为基本需求,期望需求,兴奋需求
还有就是系统的结构化设计
主要是自顶向下,逐步求精,信息隐蔽尽量保证信息的不对外暴露
模块独立,保证各个模块之间信息独立,做到高内聚,低耦合,复杂度降低
还有各个模块的设计概要