前言
为准备考研复试整理的笔记
提示:以下是本篇文章正文内容,仅供参考
1 总体设计的任务:
根据用信息域表示的软件需求以及功能和性能需求,进行数据设计、系统结构设计、过程设计。
- 数据设计:定义数据结构
- 系统结构设计:定义软件系统各主要成分之间的关系
- 过程设计:把结构成分转换成对软件的过程性描述
2 模块化思想:
- 功能:
- 逻辑:
内部怎么做 - 状态:
使用时的环境与条件 - 外部特性:
模块的模块名、参数表、输入输出参数及对程序的影响 - 内部特性:
程序代码及模块内部数据 - 思想:
模块化是指整个软件被划分成若干单独命名和可编址的部分称之为模块 - 问题/子问题
系统/子系统||模块/子模块
3 启发式规则:
-
争取低耦合高内聚
-
增加内聚优于减少耦合
-
模块规模适中
过大不易理解,过小接口开销过大,同时分解不能降低模块独立性 -
适当控制深度、宽度、扇出、扇入
深度:分层的层数,过大则分工过细
宽度:同一层次上模块数的最大值,过大则系统复杂度大
扇出(fan-out):该模块直接调用、控制的模块数
扇入(fan-in):直接调用该模块的模块数(as much as better)
4 面向数据流的设计方法
再一次放上大佬的文章 https://blog.csdn.net/qq_15037231/article/details/60589847