结构化设计
1、基本原则
模块的作用范围应该在其控制范围之内=模块的作用域应该在模块之内。
真题链接
在软件设计阶段,划分模块的原则是:一个模块的作用范围应该在其控制范围之内。
(注:下图来自《软件工程导论》(第6版)(张海藩、牟永敏主编,清华大学出版社))
(说明:当模块的作用范围不在其控制范围之内时的调整方法)
2、内聚与耦合
内容耦合的耦合程度最高;非直接耦合的耦合程度最低。
真题链接
模块A直接访问模块B的内部数据,则模块A和模块B的耦合类型为 内容耦合。
公共耦合:通过公共数据环境相互作用的那些模块间的耦合。
标记耦合:两个模块之间传递的是数据结构。
耦合程度取决于:各个模块之间接口的复杂程度、调用模块的方式 以及 通过接口的信息类型 等。
内容耦合:当一个模块直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部时,这种模块之间的耦合称为内容耦合。
逻辑内聚:模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
偶然内聚(巧合内聚):一个模块内的各处理元素之间没有任何联系。
通信内聚:模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或者产生相同的输出数据。
过程内聚:一个模块完成多个任务,这些任务必须按指定的过程执行。
顺序内聚:一个模块中的各处理元素都密切相关与同一个功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。
在划分软件系统模块时,应尽量做到 高内聚低耦合。
3、系统结构/模块结构
(注:下图来自前言中up主视频)
(说明:模块分类)
(注:下图来自前言中up主视频)
(说明:结构化设计各阶段任务)
真题链接
结构化开发方法中,过程设计 主要包含对数据结构和算法的设计。
在采用结构化开发方法进行软件开发时,设计阶段接口设计主要依据需求分析阶段的 数据流图。接口设计的任务主要是 描述软件与外部环境之间的交互关系,软件内模块之间的调用关系。
结构图 是结构化设计的输出。
结构图的基本成分包括 模块、调用和数据。
用户界面设计的黄金原则(补充)
Theo Mandel在其关于界面设计的著作中提出了3条“黄金原则”:用户操纵控制;减少用户记忆负担;保持界面一致。
真题链接
Theo Mandel在其关于界面设计的著作中提出了3条“黄金原则”:用户操纵控制;减少用户的记忆负担;保持界面一致。
采用MVC(模型-视图-控制器)体系结构进行软件系统开发的优点:有利于代码重用、提高系统的可维护性、提高系统的开发效率。
数据流图(补充)
注:具体理论内容见下午基础篇:数据流图。
真题链接
顶层数据流图描述了系统的 输入与输出。
在结构化分析中,用数据流图描述 数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模。
数据字典有以下4类条目:数据流、数据项、数据存储和基本加工。
数据流图中的元素在 数据字典 中进行定义。
在采用结构化方法进行系统分析时,根据分解与抽象的原则,按照系统中数据处理的流程,用 数据流图 来建立系统的逻辑模型,从而完成分析工作。
利用结构化分析模型进行接口设计时,应以 数据流图 为依据。
数据流图建模应遵循 自顶向下、从抽象到具体。
结构化分析的输出包括:数据流图、数据字典、加工逻辑。
系统文档(补充)
(注:下图来自《软件设计师教程》(第5版)(褚华、霍秋艳主编,清华大学出版社))