(一)传统软件工程:
分析→设计编码→测试→维护
(二)现代软件工程
1、OOA面向对象 OOD、设计方法等
2、CMMI 软件成熟度模型
CMMI 5:优化级 特征:关注持续过程改进
CMMI 4:量化管理级 特征:关注组织量化
CMMI 3:定义级 特征:关注组织过程的标准化
CMMI 2:管理级 特征:关注基本的项目管理
CMMI 1:初始级 特征:混乱无序
(三)软件生命周期
可行性分析 →需求分析→设计→编码→测试→ 维护
(四)软件开的模型
1)瀑布模型
• 瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水逐级下落,最终得到软件产品。
•瀑布模型的核心思想是按工序将问题简化,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为可行性研究与计划、需求分析、设计、编码、测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。如果需求发生变化,而需要逐级返回,修改所有相关的文档及代码。
优点:
•为项目提供了按阶段划分的检查点。
•当前一阶段完成后,才需要去关注后续阶段。
缺点:
•在项目各个阶段之间极少有反馈,它们之间依靠文档来传达所有信息。
•只有在项目生命周期的后期才能看到软件产品。
•通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
•瀑布模型的突出缺点是不能有效地适应用户需求的变化。
2)原型模型
•在项目开发的初始阶段,人们对软件的需求认识往往不够清楚,因而使得开发项目难以做到一次开发成功,出现返工再开发在所难免。
•原型模型的基本思想:在获得用户基本需求说明的基础上,投入少量人力和物力,快速建立一个原始模型,使用户及时运行和看到模型的概貌和使用效果,并对需求说明进行补充和精化,提出改进意见,开发人员进一步修改完善,如此循环迭代,直到得到一个用户满意的模型为止。
优点:
•改进了用户和软件开发人员的信息交流方式
•对用户需求的变化响应较快,用户满意程度提高
•开发出的软件产品能更好地满足用户的要求
•减少了用户培训时间,简化了管理
缺点:
•开发者为了使一个原型快速运行起来,往往在实现过程中采用折衷的手段,软件系统的组
成部分可能会打折扣。
•资源规划和管理较为困难,随时更新文档也带来麻烦。
•解决复杂系统和大系统问题很困难。
一般使用场合:
•开发者在不了解的应用领域开发
•客户不清楚其所开发软件项目的最终目标。
**原型模型仅用于小项目