软件工程(导论)

成秀秀、杨玲、戚爱斌、苗世迪、温东新

目录

  • 1 软件与软件工程
    • 1.1 软件
    • 1.2 软件危机
    • 1.3 软件工程
    • 1.4 软件生命周期
    • 1.5 软件过程模型
    • 1.6 学生成果分享
  • 2 可行性研究与项目开发计划
    • 2.1 可行性研究的任务
    • 2.2 可行性研究过程
    • 2.3 进度计划
    • 2.4 学生成果分享
  • 3 需求分析
    • 3.1 需求分析的任务
    • 3.2 与用户沟通获取需求的方法
    • 3.3 分析建模与规格说明
    • 3.4 实体-联系图
    • 3.5 数据规范化
    • 3.6 状态转换图
    • 3.7 其它图形工具
    • 3.8 验证软件需求
  • 4 总体设计
    • 4.1 系统流程图
    • 4.2 数据流图
    • 4.3 数据字典
    • 4.4 设计过程
    • 4.5 设计原理
    • 4.6 启发规则
    • 4.7 描绘软件结构的图形工具
    • 4.8 面向数据流的设计方法
  • 5 详细设计
    • 5.1 结构程序设计
    • 5.2 人机界面设计
    • 5.3 过程设计的工具
    • 5.4 面向数据结构的设计方法
    • 5.5 程序复杂程度的定量度量
  • 6 软件编码
    • 6.1 程序设计语言
    • 6.2 编码风格
  • 7 软件测试
    • 7.1 软件测试基础
    • 7.2 单元测试
    • 7.3 集成测试
    • 7.4 确认测试
    • 7.5 白盒测试技术
    • 7.6 黑盒测试技术
    • 7.7 调试
    • 7.8 软件可靠性
  • 8 软件项目管理
    • 8.1 估算软件规模
    • 8.2 工作量估算
    • 8.3 人员组织
    • 8.4 质量保证
    • 8.5 软件配置管理
    • 8.6 能力成熟度模型
软件危机

一、软件危机

软件开发和维护过程中遇到的一系列严重问题。

二、具体表现

1、产品不符合用户的实际需要;

2、软件开发生产率不高,不能满足客观需要;

3、软件产品质量差;

4、对软件开发成本和进度的估计不准确;

5、可维护性差;

6、软件的文档资料不完整和不合格;

7、软件成本逐年上升。

三、产生原因:

1、宏观

(1)缺乏总体考虑,没有软件工程学概念或系统工程思想。——软件

(2)对业务了解支离破碎,需求分析不准。——软件

(3)企业依赖激情指挥,企业管理标准化、规范化、科学化程度不高,导致不能成功地应用“死板”的软件,它依赖于业务的“科学化”、“条理化”、“程序化” ——企业

(4)企业信息化程度和计算机应用水平低,导致无法准确描述需求。——企业

(5)一把手对信息管理的重视程度不够。——企业

(6)缺乏相互沟通,业务描述的详尽程度不能达到具备生活常识的人能够轻易理解。—— 企业、软件

2、微观

(1)软件的规模比较庞大,其开发和维护相当困难;

(2)开发人员虽然有经验,但还存在着不少错误观点,没有实行工程化的方法;

(3)不能与用户及时沟通,不能了解用户的实际需要;

(4)没有统一的软件质量管理规范;

(5)不能根据环境的变化而随时对产品进行改正。

补充:软件危机事件

IBMOS/360

IBMOS/360操作系统被认为是一个典型的案例,到现在为止,它仍然被使用在360系列主机中。这个经历了数十年,极度复杂的软件项目甚至产生了一套不包括在原始设计方案之中的工作系统。

IBM公司开发OS/360系统,共有4000多个模块,约100万条指令,投入5000人年,耗资数亿美元,结果还是延期交付,在交付使用后的系统中仍发现大量(2000个以上)的错误,造成无法估计的安全隐患。