`

(转载)总体设计-模块化 层次图 结构图

 
阅读更多

总体设计-模块化 层次图 结构图

 

1、模块化设计的原理包括什么?为了提高软件的可维护性,其中,模块独立性最重要的,是评价软件结构质量的首要标准。

模块化就是把程序划分成独立命令且可独立访问的模块,每个模块完成一个字功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。

2、模块独立性度量(描述)的两个指标:内聚、耦合;什么是内聚,什么是耦合(P97);在面向数据流的方法中,内聚、耦合各分为哪几级,每级的具体含义分别是什么?强度从弱到强如何排列?

耦合:它是对一个软件结构内不同模块之间互连程度的度量;

内聚:它标志着一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。

耦合分为
(1)数据耦合
(2)控制耦合
(3)特征耦合
(4)公共耦合
(5)内容耦合;

原则:尽量使用数据耦合,小用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合

内聚分为:
低内聚:
(1)偶然内聚
(2)逻辑内聚
(3)时间内聚;
中级内聚
(1)过程内聚
(2)通信内聚;
高内聚
(1)顺序内聚
(2)功能内聚;

原则设计时力求高内聚,并且能够辨认出低内聚的模块,有能力通过修改设计提高模块的内聚程度并且降低模块间的耦合程度,从而获得较高的模块独立;内聚和耦合都是进行模块化设计的有力工具,但是实现表明内聚更重要。

3、软件总体结构描述工具的概念和使用:软件层次图、软件结构(SC)图、HIPO图:什么是,基本符号和表示的结构,画法。
软件层次图(H图):

用来描绘软件的层次结构

组成元素:

一个矩形框代表一个模块
方框间的连线表示调用关系而不像层次方框图那样表示组成关系。

结构图(SC):

描述了软件的模块结构,表示了一个系统的层次分解关系;反映了模块间的联系以及块内联系;反映了模块间的信息传递。

(1) 组成元素:


方框,内有名称,表示模块;
直线,表示上层模块对下层模块的调用;
尾部带空心圆的箭头,表示按方向传递的数据信息;
尾部带实心圆的箭头,表示按方向传递的控制信息;
(2) 注意:层次图和结构图并不严格表示模块的调用次序,层次图和结构图只表明一个模块调用那些模块,至于模块内还有没有其他成分则完全没有表示。
(3) 作用:描述模块间参数交换情况、评价模块间耦合情况、确定模块间的接口。结构图一般不列入设计文档,只用于设计阶段检查模块设计的正确性和模块独立性。

HIPO图:

即层次图 + 输入/处理/输出图 的英文缩写,由一张H图和一组IPO图组成。

H图,是给每个模块加上编号的层次图。
IPO图,要为H图中的每个模块画一张IPO图。
通常将HIPO图作为软件结构的描绘,列入设计文档。
4、结构化设计(SD)方法(面向数据流的设计方法)中,如何将分析的结果(数据流图)逐层分解、转换成设计的初步结果(软件层次图)?

第1步:复查基本系统模型
第2步:复查并精化数据流图
第3步:确定数据流图具有变换特性还是事务特性
第4步:确定输入流和输出流的边界,从而孤立出变换中心
第5步:完成“第一级分解”
第6步:完成“第二级分解”
第7步:使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化

题目1、数据流的划分。

1、变换流:信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统;
2、事务流:这种数据流是“以事务为中心的”,数据沿输入通路到达一个处理T,这个处理输入数据的类型在若干个动作序列中选出一个来执行。

题目2、 结构化分析、结构化设计的实质是什么?

结构化分析就是一种建立模型的活动,通常建立数据模型、功能模型和行为模型等三种模型。使用数据流程图、数据字典、结构化语言、判定表和判定树等工具,来建立一种新的、称为结构化说明书的目标文档-需求规格说明书。结构化体现在将软件系统抽象为一系列的逻辑加工单元,各单元之间以数据流发生关联。

题目3、什么是软件结构?

软件结构是指一种层次表况,由软件组成成分构造软件的过程、方法和表示。软件结构主要包括程序结构和文档结构。

题目4、数据流图怎么转换成软件结构图?

面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构。面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。

题目5、为每种类型的模块耦合举一个具体的例子。

(1) 非直接耦合—例如,两个模块没有直接关系(模块1和模块2),模块独立性最强。

(2) 数据耦合—例如,如下图

(3) 特征耦合—例如,如下图

“住户情况”是一个数据结构,图中模块都与此数据结构有关。“计算水费”和“计算电费”本无关,由于引用了此数据结构产生依赖关系,它们之间也是标记偶合。
(4) 控制耦合--模块A通过传送开关、标志、名字等控制信息,明显地控制选择模块B的功能,例如下图

(5) 外部耦合—例如,如下图,模块A、B均需使用共享打印机

(6) 公共环境耦合—例如,如下图,模块A、B、C共享全局变量数组

(7) 内容耦合—例如,一个过程非正常地进入另一个过程

Sub AA(...)
...
...
goto L
End sub

Sub BB(...)
...
...
L: ...
...
End sub

题目6、用面向数据流的方法设计下列系统的软件结构:
(3)患者监护系统(需求见习题2-4)
功能级数据流图:


软件结构图:


本文链接:http://www.itzhai.com/overall-design-modular-hierarchy-chart.html

分享到:
评论

相关推荐

    ISO软件工程模板(6)概要设计说明书-转载

    2. **总体设计**: - **需求规定**:详细描述系统的主要功能、性能需求,如精度、时间特性、可靠性、灵活性等,以及输入输出、数据管理、故障处理和其他特殊需求。 - **运行环境**:涵盖系统运行所需的硬件设备、...

    短信平台设计方案.pdf

    面向对象设计和实现的重点是多个对象的网状组织结构和协同 计算,而不是过程调用的层次结构,这样就在本质上适应了并发、分布 系统及互联网的计算特征。 2.2、系统总体框架 在整个系统的设计上,在保证系统效率的...

    支持pyramid2.x的kotti web代码

    Kotti 是一个基于 Pyramid 框架的 Python 内容管理系统(CMS),适合用来搭建中小型网站、文档库、企业展示平台、知识库等需要灵活内容结构和权限模型的项目。它本身更像一个可以二次开发的 CMS 框架,比 WordPress、Drupal 这类“一装就用”的系统更倾向于开发者定制和扩展。 这是支持pyramid2.x版本的kotti! tar -xzvf kotti1.0.tar.gz 解压缩 进入目录执行 pip install -e . 来安装, 然后执行pserve app.ini 启动。 用浏览器浏览127.0.0.1:5000 即可浏览。 用户名admin ,口令qwerty

    cmd-bat-批处理-脚本-hello world.zip

    cmd-bat-批处理-脚本-hello world.zip

    知识付费系统自动采集V3.0 跳转不卡顿+搭建教程

    知识付费系统自动采集V3.0 跳转不卡顿+搭建教程,不和外面的一样跳转卡顿,这个跳转不卡顿,支持三级分销。

    基于Matlab实现图像形状纹理颜色特征提取

    在Matlab环境下,对图像进行特征提取时,主要涵盖形状、纹理以及颜色这三大关键特征。其中,对于纹理特征的提取,采用灰度梯度共生矩阵这一方法来实现。通过灰度梯度共生矩阵,可以有效地捕捉图像中像素灰度值之间在不同方向和距离上的相互关系,进而量化地反映出图像的纹理特性,为后续的图像分析、分类等任务提供重要的纹理信息依据。

    实证数据-2010-2023年上市公司-管理层情感语调数据-社科经管.rar

    该数据集为2010-2023年中国A股上市公司管理层情感语调的年度面板数据,覆盖45,320条样本,数据源自年报及半年报的"管理层讨论与分析"部分。通过构建中文金融情感词典(融合《知网情感分析用词典》与L&M金融词汇表),采用文本分析方法计算情感语调指标,包括:正面/负面词汇数量、文本相似度、情感语调1((积极词-消极词)/总词数)和情感语调2((积极词-消极词)/(积极词+消极词))。同时包含盈利预测偏差、审计意见类型等衍生指标,可用于研究信息披露质量、市场反应及代理问题。该数据复刻了《管理世界》《财经研究》等期刊的变量构建方法,被应用于分析语调操纵对债券市场的影响,学术常用度与稀缺度较高。

    cmd-bat-批处理-脚本-FTIME.zip

    cmd-bat-批处理-脚本-FTIME.zip

    1747829038637.png

    1747829038637.png

    2025年自动化X光检查机项目大数据研究报告.docx

    2025年自动化X光检查机项目大数据研究报告.docx

    基于Logisim的原码与补码一位乘法器设计

    在计算机组成原理课程设计中,我全程跟随老师的指导,独立完成了以下两项任务:一是利用Logisim软件进行原码一位乘法器的仿真设计,通过逐步搭建电路、配置逻辑单元,实现了原码乘法运算的完整流程,深入理解了原码乘法的原理和实现机制;二是完成了补码一位乘法器的Logisim仿真,同样按照老师讲解的步骤,精心设计电路,确保补码乘法运算的正确性,进一步掌握了补码乘法的运算规则和电路实现方法。通过这两个项目,我不仅巩固了理论知识,还提升了动手实践能力和逻辑思维能力。

    cmd-bat-批处理-脚本-msvc2017.zip

    cmd-bat-批处理-脚本-msvc2017.zip

    cmd-bat-批处理-脚本-virtualcam-install.zip

    cmd-bat-批处理-脚本-virtualcam-install.zip

    二十四节气之立秋介绍.pptx

    二十四节气之立秋介绍.pptx

    cmd-bat-批处理-脚本-shift.zip

    cmd-bat-批处理-脚本-shift.zip

    二十四节气之小雪介绍.pptx

    二十四节气之小雪介绍.pptx

    java、SpringBoot面试专题,6页面试题

    java、SpringBoot面试专题,6页面试题

    cmd-bat-批处理-脚本-GenerateUnionWinMD.zip

    cmd-bat-批处理-脚本-GenerateUnionWinMD.zip

    二十四节气之大暑节气.pptx

    二十四节气之大暑节气.pptx

    python实现五子棋游戏源码

    python实现五子棋游戏源码

Global site tag (gtag.js) - Google Analytics