1.软件工程引论
软件的概念与特征
概念
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档的完整集合
特征
1)软件是一种逻辑实体,具有抽象性
2)软件的生产与硬件不同
3)软件产品不会“磨损”
软件危机
软件工程的产生及其发展
软件工程是指导软件开发和维护的工程学科
核心思想:采用工程的概念、原理、技术和方法开发和维护软件
软件工程三要素:方法、工具和过程
软件工程七项基本原则
1)用分阶段的生命周期严格管理软件工程过程
2)坚持在软件工程过程中进行阶段评审
3)实行严格的产品控制
4)采用现代的开发技术进行软件的设计与开发
5)工作结果应当是能够清楚审查的
6)开发小组人员应“少而精”
7)承认不断改进软件工程实践的必要性
软件工程技术基础
软件工程是一种层次化技术:
工具层、方法层、过程层和质量焦点
软件工程过程
用以开发或维护软件及其相关产品的一系列活动
软件工程过程包括4种基本的活动过程
1)软件规格说明
2)软件开发
3)软件确认
4)软件演进
软件过程模型
线性顺序模型
原型模型
快速开发应用模型
演化软件过程模型
1)增量模型
2)螺旋模型
过程技术
软件重用技术
“重用”是提升软件财富的有效途径
层次
知识重用
方法重用
软件成分重用
1)分析结果重用
2)设计结果重用
3)代码重用
2 系统工程基础与软件可行性研究
计算机系统工程
硬件和硬件工程
软件和软件工程
人与人机工程(人机交互工程)
数据库与数据库工程
可行性研究与分析
主要从4个方面考虑可行性
1)经济可行性
2)技术可行性
3)法律可行性
4)对不同的方案进行评估抉择
3结构化需求分析与建模
需求分析
步骤
1)通过调查研究,获取用户的需求
2)去除非本质因素,确定系统真正的需求
3)描述需求,建立系统的逻辑模型
4)书写需求说明书,进行需求复审
原则
1)能表达和理解问题的数据域和功能域
2)复杂问题简单化
3)能够给出系统的逻辑表示和物理表示
数据建模
实体--关系模型(E--R模型)
功能建模
数据流图
作用
描述系统中数据流从输入到输出的移动变换过程
清晰地反映系统必须完成的逻辑功能
数据流模型
建立原则
1)每个加工至少应有一个输入数据流和一个输出数据流
2)数据流图中各构成元素的名称必须具有明确的含义,且能够代表对应元素的功能和内容
3)分层数据流图中任意对应的父图和子图的输入/输出数据保持一致
4)按照层次对内个加工编号
5)父图中不要出现子图中涉及的局部数据存储文件
6)数据流图只能由4种基本符号组成,说明系统应该“做什么”,而不是“怎么做”
7)数据流图的分解速度保持适中
行为建模
状态迁移图
Petri网
数据字典