软件工程学概述
软件危机
1、软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2、软件危机的主要典型表现:
- 对软件开发成本和进度的估计常常不准确
- 用户对已完成的软件系统不满意现象经常发生
- 软件产品的质量往往靠不住
- 软件常常是不可维护的
- 软件通常没有适当的文档资料
- 软件成本在计算机系统中所占的比例逐年上升
- 软件开发生成和计算机应用更新的速度不匹配
3、产生软件危机的原因一方面与软件本身的特点有关,另一方面也和软件维护的方法不正确有关即人为因素
4、软件的生命周期:软件开发经历的漫长周期。
5、软件的定义:计算机程序、方法、规则、相关的文档资料以及在计算机上运行时所必须的数据。
软件工程
1、软件工程的定义:
①早期定义:软件工程就是为了经济地获得可靠的且能在实际机器上有效运行的软件,而建立和使用完善的工程原理。
②把系统的、规范的、可度量的途径应用于软件开发、运行和维护过程,也就是把工程应用于软件,以及研究以上提到的途径。
2、软件工程的本质特性:
- 软件工程关注于大型程序的构造
- 软件工程的中心课题是控制复杂性
- 软件经常变化
- 开发软件的效率非常重要
- 和谐的合作是开发软件的关键
- 软件必须有效地支持它的用户
3、软件工程的基本原理:
- 用分阶段的生命周期计划严格管理
- 坚持进行阶段评审
- 实行严格的产品控制
- 采用现代程序设计技术
- 结果应能清楚地审查
- 开发小组的人员应该少而精
- 承认不断改进软件工程实践的必要性
4、软件工程学方法的三要素:工具、方法和过程
5、目前使用广泛的软件工程学方法,分别是传统方法学和面向对象方法学。
软件生命周期
1、概况地说,软件生命周期由软件定义、软件开发和运行维护三个时期组成
2、软件生命周期每个阶段的基本任务
- 软件定义
1.1问题定义
1.2可行性研究
1.3需求分析
2.软件开发
2.4总体设计
2.5详细设计
2.6编码和单元测试
2.7综合测试
3.运行维护
3.8软件维护
软件工程
1、软件开发设计模型:瀑布模型
- 特点:①阶段间具有顺序性和依赖性 ②推迟实现的特点 ③质量保证的特点
- 优点:可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细检查。
- 缺点:不能应对需求的变化,由文档驱动
2、Rational统一过程由RUP公司提出
最佳实践:
- 迭代式开发
- 管理需求
- 使用基于构件的体系结构
- 可视化建模
- 验证软件质量
- 控制软件变更