软件工程
软件工程现状
软件工程问题
- 软件开发进度和成本难以控制
- 产品难以满足需求
- 质量难以得到保证
- 产品难以维护
- 文档难以管理
- 生产率难以得到提高
软件危机出现原因
- 缺乏正确的理论指导
- 与用户缺乏充分的交流
- 对开发过程缺乏整体认识
- 缺乏有效一致的质量评价标准
软件工程实施原则
- 做好需求分析
- 选取适宜的开发模型
- 采用成熟的设计方法
- 选择高效的开发环境
- 保证有效的维护过程
- 重视软件过程管理
软件过程模型
瀑布模型
原型模型
软件人员根据初步的、不明确的需求快速开发出系统原型。
增量模型
增量模型对软件项目中的功能以一系列增量的方式来开发,也成为渐增式开发模型,是一种非整体开发模型。
螺旋模型
螺旋模型适用于庞大并且复杂,高风险的项目,在需求不明确的情况下,便于风险控制和需求变更。
与增量模型的区别:增量模型先做整体需求分析和设计,在编码和测试中逐个迭代开发,在上次增量的基础上提交新的一部分软件;螺旋模型在开发周期内简化瀑布模型,每次迭代都提交一个新的完整的软件版本。
敏捷开发
特点
- 重视交流
开发团队要能做到团结协作,人与人面对面的交流、沟通是最快速、最有效的途径。 - 客户参与
开发团队与客户频繁沟通,获取反馈,促使项目成功。 - 适应变化
传统的软件开发强调清晰的需求、详细的文档,按照计划开发、测试,但这样无法应对用户需求的实时更改。而敏捷开发则是以最简的方式迎接变化,客户在整个过程都是参与者,不断适应需求的变更。