一、软件危机 & 软件工程
1.1软件危机的典型表现:
- 对软件开发成本和进度的估计常常很不准确
- 用户对“已完成的”软件系统不满意的现象经常发生
- 软件产品的质量往往靠不住
- 软件常常是不可维护的(维护性差)
- 软件通常没有适当的文档资料。
- 软件成本在计算机系统的总成本所占比例逐年上升
- 软件开发生产所提高的速度,远远比不上计算计算机应用迅速普及深入的趋势(需求大
1.2软件危机怎么解决
靠软件工程解决
1.3软件工程定义
软件工程是指导计算机软件开发和维护的一门工程学科。
从管理和技术两方面研究如何更好地开发和维护软件的一门学科。
1.4软件工程基本原理
- 用分阶段的生命周期计划严格管理
- 坚持进行阶段评审
- 实行严格的产品控制
- 采用现代程序设计技术
- 结果应该能够清楚地审查
- 开发小组的人员应该少而精
- 承认不断改进软件工程实践的必要性
1.5软件工程方法学
1.传统方法学:
也称为生命周期方法学或者结构化范型
它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。
按部就班一步一步走,这一步没完成就不走下一步。
开发成功率高,但不灵活。
2.面向对象方法学:
把数据和行为看成是同等重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的 方法。
开发快速,灵活。
1.6软件生命周期
把软件的开发分为软件定义、软件开发、运行维护三个时期。
(一个软件从立项起,到废弃不用,统称为软件生命周期。
- 问题定义 — 问题定义 告
- 可行性研究 — 可行性研究 告
- 需求分析 — 需求规格说明书
- 总体设计(概要设计) — 总体设计说明书
- 详细设计 —详细设计说明书
- 编码和单元测试 —程序清单 & 单元测试 告
- 综合测试
- 维护
1.7 生命周期模型
1.瀑布模型
优点:强迫开发者规范开发,每个阶段的开发都得到保证
缺点:用户只有开发之后才能拿到软件本体;开发不灵活;依赖文档。
2.快速原型模型
快速做一个能反映客户主要需求的软件(只反映功能,不在意性能和质量)
优点:原型系统已经得到用户验证
缺点:原型系统不好做
3.增量模型(渐增模型)
软件能被拆分成多个原件。先通过正规的开发,把主要的功能交给用户,后续通过更新逐渐把整个软件提交给用户。
优点:用户可以先通过软件完成一些工作;在短时间内可以提交软件;避免突然拿到一个全新的软件造成的冲击。
缺点:如果没有密切监控开发过程,整个工程可能毁于一旦。
4.螺旋模型
也是一种先给局部软件再慢慢更新至完整系统的模型。
不同的点在于每个阶段加了风险分析。
风险分析->开发原型1->风险分析->开发原型2->…
在快速原型的每个阶段前加上风险分析。
优点/缺点:风险驱动
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!