1.软件工程概述
1.1 模型
1.1.1 增量模型
增量模型又称之为渐增模型,也称之为有计划的产品改进模型;可以在增量开发的过程中逐步理解需求。
它从一组给定的需求开始,通过构造一系列可执行中间版本来实施开发活动,在上一版本基础上纳入一部分需求以完成下一版本,依次类推,直至系统完成(核心产品即优先级高的产品往往首先开发,因此经历最充分的“测试”,第一个可交付版本所需的成本低,时间少,不必等到整个系统开发完成就可以使用),需注意,不是每个增量都必须要进行风险评估
增量模型是瀑布模型和原型进化模型的综合,对软件设计具有更高的技术要求,特别是对软件体系结构,要求它具有更好的开放性和稳定性,能够顺利地实施构件 的集成(容易理解,管理成本低)
增量模型是把软件产品作为一系列增量构建来设计,编码,集成和测试,每个构建由多个相互作用的模块组成,并且能够完成特定的功能
该模型的难点:如何进行模块的划分
扩展:基于构件的软件开发,强调使用可复用的软件“构件”设计和构建软件系统,对所需的构件进行合格性检验,适应性修改,并把它集成到新系统中。
1.1.2 瀑布模型
瀑布模型将开发过程描述为从一个阶段瀑布般转换到另一个阶段的过程,将软件生命周期各个活动定为线性顺序连接的若干阶段的模型,规定了由前至后的固定次序
瀑布模型可以有效地捕获系统需求
1.1.3 原型模型
开发人员快速地构造整个系统或者系统的一部分以理解或澄清问题。
原型模型是快速构建软件的原型,从初始的原型逐步演化为最终软件产品,特别适用于对软件需求缺乏准确认识的情况。
1.1.4 喷泉模型
开发过程中以用户需求为动力,以对象为驱动,适合于面向对象的开发方法。
克服了瀑布模型不支持软件重用和多项开发活动集成的局限性
1.1.5 螺旋模型
是风险驱动的,将开发活动和风险管理结合起来,以减小风险。
是一种演化软件开发过程模型,它兼顾快速原型的迭代特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件再无法排除重大风险时有机会停止,以减小损失。
同时,再每个迭代阶段构建原型是螺旋模型用以减少风险的途径,螺旋模型更适合大型的昂贵的系统级别=的软件应用
1.1.6 演化模型
在获取一组基本的需求后,通过快速分析构造出该软件的一