【软件工程】软件工程学概述复习资料
一、软件的概念与特点
概念
- 满足功能要求和性能的指令或计算机程序集合
- 处理信息的数据结构
- 描述程序功能以及程序如何操作和使用所要求的文档
特点
- 抽象性:逻辑实体而非物理实体
- 智力产品:知识技术的转换产物
- 无磨损:不存在机械老化问题
- 系统依赖性:受计算机系统限制
- 手工开发:尚未完全自动化
- 高成本:开发费用日益昂贵
二、软件危机
定义
在计算机软件开发和维护过程中遇到的一系列严重问题
表现
- 开发效率跟不上计算机普及速度
- 软件成本占比逐年上升
- 开发人员与用户沟通不充分
- 质量难以保证
- 可维护性差
- 重用性低
- 文档不完善
产生原因
- 软件生产本身的复杂性
- 开发方法和技术局限
三、软件工程方法学三要素
方法、工具、过程
四、软件生命周期
三个时期
-
软件定义时期
- 问题定义
- 可行性研究
- 需求分析
-
软件开发时期
- 总体设计
- 详细设计
- 编码和单元测试
- 综合测试
-
运行维护时期
五、软件开发模型
1. 瀑布模型
核心思想:按工序化简问题,分离功能实现与设计
特点:
- 阶段顺序性和依赖性
- 推迟实现观点
- 质量保证(阶段评审)
存在问题:
- 不适合需求模糊的系统
适用场景:操作系统、编译系统等系统软件开发
2. 快速原型模型
特点:
- 快速建立功能子集原型
- 用户通过试用了解系统概貌
3. 增量模型
特点:
- 瀑布模型顺序特征 + 原型迭代特征
- 将软件视为相互联系的增量
其他模型
- 螺旋模型
- 敏捷模型(XP极限编程)
- 喷泉模型
- 微软过程模型