一:软件开发面临的挑战
-
客户不满意:
交付的许多功能不是客户需要的
交付的日期没有保障
客户使用是发现许多Bug -
风险与成本问题
开发团队专注技术,忽视风险
无能力预测成本,导致预算超支 -
无力管理团队
无法评估开发人员能力及工作进度
困扰与如何提升团队的能力与效率 -
项目过程失控
客户需求变化频繁,无力应对
无法预见软件的交付质量
对流程盲目遵从,忽视客户业务价值
二:软件危机的原因
从事软件开发的人员对这个产业认识不充分、缺乏经验
缺乏统一的,标准化的开发过程设计,缺乏规范化的方法论进行指导
忽视软件开发前期的需求分析
文档资料不齐全、不准确
忽视测试的重要性
没有完善的质量保证体系
开发团队内部交流不顺畅,不充分
不重视维护,或由于以上原因造成维护工作的困难
三:软件的定义
软件 = 程序 + 数据 + 文档
- 程序:计算机可以接受的一系列指令,运行可以提供所要求的功能和性能
- 数据:使得程序能够适当地当代操作信息的数据结构
- 文档:描述程序的研制过程、方法和使用的图文资料
四:什么是软件工程?
1993年IEEE提出的软件工程概念
- 将系统性的、规范化的、可定量的方法应用于软件的开发、运行和维护,即工程化应用到软件上。
- 两个方面:第一方面:学科
第二方面:管理和开发技术结合,经济,高质量,按时开发,并维护
软件工程的基本原则
- 用分阶段的生命周期计划严格管理
- 坚持进行阶段评审
- 实行严格的产品控制
- 采用现代程序设计技术
- 结果应能够清楚地审查
- 开发小组的人员应小而精
- 承认不断改进软件工程实践的必要性
五:软件生命周期
- 软件定义期
软件定义
软件任务立项
项目可行性分析
需求分析 - 软件开发期
软件概要设计
软件详细设计
编码和单元测试
系统集成测试
系统确定验证 - 软件运行和维护期
软件的维护过程