软件工程基础
1. 软件
1.1 软件
- 软件是程序、数据、文档构成的集合
- CMU SEI的Watts Humphrey指出:软件产品必须首先提供用户所需要的功能,如果做不到这一点,什么产品都没有意义。
1.2 软件分类
- 系统软件
操作系统、编译程序、汇编程序、网络软件、数据库管理系统
- 应用软件
事物处理软件、工程与科学计算软件、实时处理软件、人工智能软件
- 支撑软件(工具软件)
需求分析工具软件、编译工具软件、测试工具软件、维护工具软件
1.3 软件危机
- 需求增长
- 开发难控
- 质量难保
- 难以维护
- 成本提高
- 生产率低
2. 软件工程
2.1 软件工程的概念
-
==软件工程:==应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
-
其目的是提高软件生产率、提高软件质量、降低软件成本
-
其核心思想是把软件当作一个工程产品来处理
2.2 软件工程三要素
- 方法是完成软件工程项目的技术手段
- 工具支持软件的开发、管理和文档生成
- 过程支持软件开发的个环节的控制和管理
2.3 软件生命周期
- 将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期
- 分为软件定义、软件开发及软件运行维护3个时期。维护是持续时间最长,花费代价最大的一个时期。
- 软件工程学的一个目的就是提高软件的可维护性,降低维护代价
2.4 软件生命周期3个时期的8个阶段
- 定义阶段:
- 问题定义可行性研究
- 需求分析
- 开发阶段:
- 概要设计
- 详细设计
- 实现
- 测试
- 运行维护阶段
- 使用
- 维护
2.5 软件需求分析
-
需求分析:确定系统的逻辑模型。参加人员有用户、项目负责人和系统分析员。
-
其工作:
- 需求获取
需求获取的目的是确定对目标系统的各方面需求。涉及到的主要任务是建立获取用户需求的方法框架,并支持和监控需求获取的过程。
- 需求分析
-
需求分析是对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型。
-
软件需求是指用户对目标软件软件系统在功能、行为、性能、设计约束等方面的期望。需求分析的任务是发展需求、求精、建模和定义需求的过程。需求分析将创建所需的数据模型、功能模式和控制模型。
- 编写需求规格说明书