瀑布模型:
① 思想:从制定时间上按工序把问题化简将功能实现与制作分开便于分工协作
② 优点:---奠定了软件工程方法的基础 ---流水依赖,便于分工协作 ---推迟物理实现,易于修改文档,有复审质量保证
③ 不足:与用户见面晚,成功率低,一般为25%
④ 使用范围:适用与系统要求明确的系统;各种应用软件的开发均可使用
⑤ 开发方法:遵循软件生命期的划分,明确规定每个阶段的任务,上一个阶段完成确定的任务后就产生一定格式的文档给下一阶段,不同阶段的任务一般有不同级别的软件人员承担
⑥ 开发特点:时间的顺序性和依赖性;推迟实现的观点;质量保证的观点
演化模型:
由于在项目开发的初始阶段人们对软件的需求认识常常不够清晰,因而使得开发项目难于做到一次开发成功,出现返工再开发在所难免做两次
第一次只是试验开发,其目标只是在于探索可行性,弄清软件需求
第二次则在此基础上获得比较满意的产品
原型(渐增型):
① 基本思想:允许从部分需求出发,先建立一个不全面的系统通过测试这个系统,进一步使系统扩充和完善
② 优点:开发的始终开发人员和用户都共同参与,有问题可以随时修改。从而很好的满足了用户的需求
③ 使用范围:适用与那些知识型软件系统的开发
④ 特点:从整体结构上不如瀑布型清晰;软件的文档不如瀑布型的划分严格;周期长,成本高;与用户见面快,开发效率高
转换型:
① 思想:从软件需求的形式规格说明出发,经过一系列的程序变化,得到最终结果
② 特点:有严格的数学理论和形式化的技术支持,但目前在研究和实验阶段,不能实用
螺旋模型(多次原型反复并增加风险评估的开发模型):
螺旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动,即
制定计划—确定软件目标,选定实施方案,弄清项目开发的限制条件
风险分析—分析所选方案,考虑如何识别和消除风险
实施工程—实施软件开发
客户评估—评估开发工作,提出修正建议
喷泉模型(认为软件的各个周期是相互重叠的和多次反复的):
--迭代: --重复; --演进
--无间隙:各阶段间无明显界限(提高开发速度)
系统开发生命周期(SDLC:systems development life cycle)
三个主要的阶段
--分析阶段:理解商业需求
--设计阶段:将计算机系统解决方案概念化
--实现阶段:实现、测试并安装系统
二个附加的阶段
--项目计划阶段
--系统支持
软件工程的定义:
① Boehm:运用现代科学技术知识来设计并构造计算机程序以及为开发、运行和维护这些程序所必需的相关文件资料
② IEEE:软件工程是开发、运行、维护和修复软件的系统方法
③ Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法
软件工程三要素:方法、工具和过程
软件工程方法为软件开发提供了“如何做”的技术
软件工具为软件工具方法提供了自动的或半自动的软件支撑环境
软件工程过程定义了:方法使用的顺序;要求交付的文档资料;为保证质量和适应变化所需要的管理;软件开发各个阶段完成的里程碑
软件工程项目的基本目标
① 付出较低的开发成本
② 达到要求的软件功能
③ 取得比较好的软件性能
④ 开发的软件易于移植
⑤ 需要较低的维护费用
⑥ 能按时完成开发工作,及时交付使用