目录
第一章 软件工程概论
1. 软件危机的概念、产生原因、解决途径;
在计算机软件开发和维护过程中遇到的一系列严重问题。
(1)开发成本和进度估计不准
延迟交付、取消项目
(2)用户对已交付软件不满意
开发人员对用户信息交流不充分,产品不符合用户需求
(3)软件产品质量靠不住
软件产品保证技术(审查、复审、测试)未坚持不懈应
用软件开发全过程
(4)软件可维护性差
开发时未考虑,很多错误难以改正
(5)软件没有适当文档资料
文档资料应在软件开发过程中产生,保证最新
把系统化、规范化、可度量的途径应用于软件开发、运行和维护过程中;研究其实现途径
2. 软件工程的概念、基本原理;
把系统化、规范化、可度量的途径应用于软件开发、运行和维护过程中;研究其实现途径
软件工程技术
软件开发方法学
软件开发过程
软件工具和软件工程环境
软件工程管理
软件管理学
软件经济学
软件心理学
3. 软件生命周期;
软件从产生、发展到成熟、直至衰亡为止
组成:
软件定义 软件开发 软件维护
国标《计算机软件开发规范》,分8个阶段:可行性研究与计划,需求分析,总体设计,详细设计,实现(编码和单元测试),集成测试,确认测试,使用和维护
4. 主要的软件过程模型:瀑布模型、快速原型模型。
4.1 瀑布模型
特点:
- 1.阶段具有顺序性和依赖性
- 前一阶段结束后一阶段开始,前一个阶段输出文档,后一个阶段输入文档。
- 2.推迟实现观点
- 瀑布模型在编码前设置系统分析、系统设计,推迟程序物理实现,保证前期工作扎实。
- 3. 质量保证观点
- 瀑布模型每阶段坚持两个重要做法:
- 一是每阶段都必须完成完整、准确的文档。软件开发时人员间通信、运行时期维护的重要依据。
- 二是每阶段结束前对文档评审。
- 优点:
- 提高软件质量,降低维护成本,缓解软件危机。
- 缺点:
- 模型缺乏灵活性,无法解决需求不明确问题。用户不经过实践提出完整准确需求不切实际。
传统瀑布模型过于理想化,但人在工作过程中
不可能不犯错误,所以实际瀑布模型带反馈环
4.2 快速原理模型:
- 优点:
- 确定需求上优于瀑布模型(通过原型与用户交互);
- 提供学习手段,通过开发原型和演示原型对开发者和使用者了解系统都有积极作用;
- 有的软件原型可以成为最终产品的一部分。
- 缺点:
- 快速建立的系统结构加连续修改可能导致产品质量低下原型系统的内部结构可能不好。
第二章 可行性研究
【考核内容】
可行性研究的任务、可行性研究过程;数据流图的概念及相关符号;数据字典的概念、内容、定义方法和用途。
【考试要求】
(1)理解软件项目可行性研究的必要性;
(2)掌握数据流图及数据字典的概念及用途。
1. 可行性研究的任务、可行性研究过程;
1. 1可行性研究的任务
1.2 可行性研究过程
2. 数据流图的概念及相关符号;
正方形(或立方体):表示数据的源点或终点 人员、部门、计算机外部设备或传感器装置
圆角矩形(圆形):代表变换数据的处理;一系列程序、单个程序或程序一个模块;人工处理过程。
开口矩形(两条平行横线):代表数据存储 文件、文件一部分、数据库元素或记录一部分,可存在磁盘、磁带、磁鼓、主存、微缩胶片任何介质上。
箭头:表示数据流,即特定数据的流动方向。在处理之间有向流动的数据项或数据集合。
2.1 数据流图命名
(1)用名词,区别于控制流。
(2)代表整个数据流(数据存储)内容,不仅仅 反映某些成分。
(3)不用缺乏具体含义名字,如“数据”、“信息”。
2.2 处理命名
(1)用动宾词组,避免使用“加工”、“处理”等 笼统动词。
(2)应反映整个处理的功能,不是一部分功能。
(3)通常仅包括一个动词,否则分解。
2.3 数据源点/终点
不属于数据流图的核心内容,可能是人员、计算机 外部设备或传感器装置。采用它们在问题域中习惯使 用的名字(如“采购员”、“仓库管理员’等)。
3. 数据字典定义方法
对四类元素定义:数据流、数据元素、数据存储、处理
3.1 数据流的描述
数据流名:
- 说明:简要介绍作用即它产生的原因和结果。
- 数据流来源:即该数据流来自何方。
- 数据流去向:去向何处。
- 数据流组成:数据结构。
- 每个数据量流通量:数据量、流通量。
3.2 数据元素描述
数据元素名:
- 类型:数字(离散值、连续值),文字(编码类型)
- 长度:
- 取值范围: 相关的数据元素及数据结构:
3.3 数据存储的描述
数据存储名:
- 简述:存放的是什么数据。
- 输入数据:
- 输出数据:
- 数据文件组成:数据结构。
- 存储方式:顺序,直接,关键码。
- 存取频率:
3.4 处理描述
处理名:
- 处理编号:反映该处理的层次
- 简要描述:加工逻辑及功能简述
- 输入数据流:
- 输出数据流:
- 加工逻辑: 简述加工程序、加工顺序
4. 数据字典定义
定义数据方法:对数据自顶向下分解。
由数据元素组成数据的方式:
- 顺序: 以确定次序连接两个或多个数据元素;
- 选择: 从两个或多个可能元素中选一个;
- 重复: 把指定数据元素重复零次或多次;
- 可选: 一个数据元素可有可无的。
定义符号
第三章 需求分析
【考核内容】
需求分析的任务;实体联系图的作用、符号意义;数据规范化三个范式的定义;状态图的符号,需求验证的内容。
【考核要求】
(1)理解软件项目需求分析的内容;
(2)能够根据陈述绘制ER图;
(3)能够根据给定条件能判断一个关系属于第几范式。
1. 状态图的符号,需求验证的内容。
软件的行为模型:状态、事件,行为。
1.1 状态:被观察到的系统行为模式。
1.2 事件:引起状态转换的外界事件抽象。
1.3 行为:进入某状态所作动作
第四章 总体设计
【考核内容】
总体设计的概念、设计步骤;模块化的概念、作用,模块化程度与软件开发工作量的关系; Miller法则,模块独立性的重要性,模块耦合及其分类,模块内聚及其分类,模块设计的几条启发式规则及与之相关的概念(深度、宽度、扇出、扇入、作用域);结构图的符号及其意义。
【考核要求】
(1)掌握总体设计的概念与设计步骤;
(2)理解软件总体设计中模块化的作用,模块化程度与软件开发工作量的关系;
(3)掌握Miller法则;
(4)理解5种模块耦合形式:数据耦合、控制耦合、特征耦合、公共耦合、内容耦合;
(5)理解7中模块内聚形式:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚;
(6)掌握模块设计的启发式规则及相关概念。