软件工程--期末复习指南(二)
软件工程期末复习指南(二)
chapter 3:需求分析
0.第三章会考察选择题和大题。
1.需求分析的任务
准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么。
用《需求规格说明书》规范的形式准确地表达用户的需求。
2.需求过程的主要活动
- 需求获取
- 需求分析和确认
- 编写需求规格说明书
- 需求验证
- 需求管理
3.需求分析的方法
分析的方法种类繁多,其中,应用最为广泛的是结构化方法(Structured Analysis, SA)和面向对象分析方法(Object Oriented Analysis, OOA)。
4.需求分析的过程
(1)问题识别
(2)问题分析与方案综合
(3)建模
(4)规约
(5)复审
5.需求管理
有效地管理需求是项目成功的基础。
需求管理的具体任务包括变更控制、版本控制和需求跟踪等活动。
6.结构化方法概述
通常采用“自顶向下,由外而内,逐层细化”的思想。
结构化分析方法中建立的模型包括三种:
1)功能模型,描述系统应完成的功能。
2)数据模型,描述问题信息域中的数据对象及它们之间的关系。
3)行为模型,描述系统响应外部事件的行为。
面向数据流的分析方法的核心是数据字典,它描述了目标系统中使用和生产的所有数据对象。围绕数据字典建立的三个需求模型为:数据流图(DFD,功能模型)、实体-关系图(ERD,数据模型)和状态-迁移图(STD,行为模型)。

7.数据流图(DFD)
图中无具体的物理元素,只是描绘信息在系统中流动和处理的情况。


8.实体-关系图(ER)
E-R图和状态转换图只考察选择题。
实体-关系图(Entity-Relationship Diagram)是数据建模的基础。


9.状态转换图(STD)
状态转换图通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。状态图还指明了作为特定事件的结果,系统将作哪些动作(如处理数据)。


10.数据字典(DD)
常用符号一定要掌握!



chapter 4:概要设计(总体设计)
0.第四章会考察选填题和简答题,要求记忆的东西很多。
1.总体设计的目的和任务
软件设计的目的:
- 软件需求:解决“做什么”
- 软件设计:解决“怎么做”
软件设计的前提:需求分析
结构化设计(Structured Design)的前提:结构化分析
总体设计:将软件需求转化为数据结构和软件的系统结构。
软件设计在软件工程过程中处于技术核心地位
软件设计是后续开发步骤及软件维护工作的基础。如果没有软件设计,只能建立一个不稳定的系统结构。
2.总体设计原则
- 模块化
- 抽象
- 逐步求精
- 信息隐蔽和局部化
- 模块独立
3.模块独立
模块独立的两个度量准则:耦合和内聚。
耦合是模块之间的互相连接的紧密程度的度量。
内聚是模块功能强度(一个模块内部各个元素彼此结合的紧密程度)的度量。
模块独立性比较强的模块应是高内聚、低耦合的模块。
七种耦合形式要背下来!

非直接耦合的模块独立性最强。
两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。
内容耦合是最不好的耦合形式。
如果发生下列情形,两个模块之间就发生了内容耦合:
(1) 一个模块直接访问另一个模块的内部数据;
(2) 一个模块不通过正常入口转到另一模块内部;
(3) 两个模块有一部分程序代码重迭(只可能出现在汇编语言中);
(4) 一个模块有多个入口。
如何降低模块间耦合度:
(1) 尽量使用数据耦合
少用控制耦合和特征耦合
限制公共环境耦合的范围
坚决避免使用内容耦合
(2) 降低接口的复杂性
内聚形式也有七种。
4.结构化总体设计的启发式规则
七条规则要背下来!
1、改进软件结构提高模块独立性
2、模块规模应适中
3、适当的深度、宽度、扇出和扇入
4、模块的作用域应该在控制域之内
5、力争降低模块接口的复杂程度
6、设计单入口单出口的模块
7、模块功能应该可以预测

浙公网安备 33010602011771号