【软件设计师-从小白到大牛】上午题基础篇:第五章 结构化开发方法

简介: 在结构化分析中,用数据流图描述 数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模。数据字典有以下4类条目:数据流、数据项、数据存储和基本加工。

结构化设计

1、基本原则

image.png


模块的作用范围应该在其控制范围之内=模块的作用域应该在模块之内。

真题链接

在软件设计阶段,划分模块的原则是:一个模块的作用范围应该在其控制范围之内。

(注:下图来自《软件工程导论》(第6版)(张海藩、牟永敏主编,清华大学出版社))

d7ce30c0b128345c73ba4e935db059c1_03d8603124b94c92af45ff6cd2fc231a.jpeg

(说明:当模块的作用范围不在其控制范围之内时的调整方法)

2、内聚与耦合

image.png


内容耦合的耦合程度最高;非直接耦合的耦合程度最低。


真题链接

模块A直接访问模块B的内部数据,则模块A和模块B的耦合类型为 内容耦合。

公共耦合:通过公共数据环境相互作用的那些模块间的耦合。

标记耦合:两个模块之间传递的是数据结构。

耦合程度取决于:各个模块之间接口的复杂程度、调用模块的方式 以及 通过接口的信息类型 等。

内容耦合:当一个模块直接使用另一个模块的内部数据,或通过非正常入口转入另一个模块内部时,这种模块之间的耦合称为内容耦合。

逻辑内聚:模块内执行若干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。

偶然内聚(巧合内聚):一个模块内的各处理元素之间没有任何联系。

通信内聚:模块内的所有处理元素都在同一个数据结构上操作,或者各处理使用相同的输入数据或者产生相同的输出数据。

过程内聚:一个模块完成多个任务,这些任务必须按指定的过程执行。

顺序内聚:一个模块中的各处理元素都密切相关与同一个功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入。

在划分软件系统模块时,应尽量做到 高内聚低耦合。

3、系统结构/模块结构

image.png


(注:下图来自前言中up主视频)

23d4926d5490218d5fa57c8628b2d5f7_5652eb80b54d4727bc752ae082649a07.png

(说明:模块分类)

(注:下图来自前言中up主视频)

7754757f2fea3529e4bea79dec95c3b5_8c522264645a4fada94a8c8562c9214c.png

(说明:结构化设计各阶段任务)

真题链接

结构化开发方法中,过程设计 主要包含对数据结构和算法的设计。

在采用结构化开发方法进行软件开发时,设计阶段接口设计主要依据需求分析阶段的 数据流图。接口设计的任务主要是 描述软件与外部环境之间的交互关系,软件内模块之间的调用关系。

结构图 是结构化设计的输出。

结构图的基本成分包括 模块、调用和数据。

用户界面设计的黄金原则(补充)

Theo Mandel在其关于界面设计的著作中提出了3条“黄金原则”:用户操纵控制;减少用户记忆负担;保持界面一致。

真题链接

Theo Mandel在其关于界面设计的著作中提出了3条“黄金原则”:用户操纵控制;减少用户的记忆负担;保持界面一致。

采用MVC(模型-视图-控制器)体系结构进行软件系统开发的优点:有利于代码重用、提高系统的可维护性、提高系统的开发效率。

数据流图(补充)

注:具体理论内容见下午基础篇:数据流图。


真题链接

顶层数据流图描述了系统的 输入与输出。

在结构化分析中,用数据流图描述 数据在系统中如何被传送或变换,以及如何对数据流进行变换的功能或子功能,用于对功能建模。

数据字典有以下4类条目:数据流、数据项、数据存储和基本加工。

数据流图中的元素在 数据字典 中进行定义。

在采用结构化方法进行系统分析时,根据分解与抽象的原则,按照系统中数据处理的流程,用 数据流图 来建立系统的逻辑模型,从而完成分析工作。

利用结构化分析模型进行接口设计时,应以 数据流图 为依据。

数据流图建模应遵循 自顶向下、从抽象到具体。

结构化分析的输出包括:数据流图、数据字典、加工逻辑。

系统文档(补充)

(注:下图来自《软件设计师教程》(第5版)(褚华、霍秋艳主编,清华大学出版社))

46cd8868a0a504f9ea1f4da99cf03259_cd2fb45a654f4f1a89e853b819775274.jpeg

目录
相关文章
|
5月前
|
数据库 数据库管理
【软件设计师-从小白到大牛】下午题基础篇:第二章 数据库设计
ER模型:是实体联系模型,跟DBMS无关,也就是跟具体的数据库管理系统没有关系。 概念结构设计:完成ER模型的建模工作。
63 1
|
5月前
|
程序员 项目管理 监控
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(3)
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)
35 0
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(3)
|
5月前
|
敏捷开发 中间件 数据处理
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(1)
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(1)
56 0
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(1)
|
5月前
|
缓存 数据处理 芯片
【软件设计师-从小白到大牛】上午题基础篇:第一章 计算机组成与体系结构(3)
检错是指可以检查出错误;纠错是指可以在检查出错误的基础上纠正错误。
43 0
|
5月前
|
自然语言处理 编译器 C语言
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(1)
语法分析阶段可以发现程序中的所有语法错误;编译正确的程序必然不包含语法错误;“除数为0”为动态语义错误,动态语义错误只有运行时才能发现。
78 0
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(1)
|
17天前
|
存储 算法 Java
【软件设计师—基础精讲笔记12】第12章 软件系统分析与设计(下午题)
【软件设计师—基础精讲笔记12】第12章 软件系统分析与设计(下午题)
51 0
|
17天前
|
敏捷开发 算法 测试技术
【软件设计师—基础精讲笔记5】第五章 软件工程基础
【软件设计师—基础精讲笔记5】第五章 软件工程基础
41 2
|
17天前
|
存储 自然语言处理 算法
【软件设计师—基础精讲笔记6】第六章 结构化开发方法
【软件设计师—基础精讲笔记6】第六章 结构化开发方法
47 0
|
5月前
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(2)
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础
28 0
【软件设计师-从小白到大牛】上午题基础篇:第七章 程序设计语言与语言处理程序基础(2)
|
5月前
|
测试技术 Java 数据库
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(2)
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)
27 0
【软件设计师-从小白到大牛】上午题基础篇:第六章 软件工程基础(重点中的重点)(2)