结构化设计的几个工具

传统的软件设计使用结构化设计技术,结构化设计是以结构化分析的数据模型、功能模型和行为模型为基础,完成数据设计、体系结构设计、接口设计和过程设计。这些设计活动分别采用不同的工具进行。

  1. 数据设计

数据设计是把分析阶段创建的信息域模型转变成实现软件所需要的数据结构。

数据结构可以使用Jackson图来表示。

Jackson图和描绘软件结构的层次图形式相近,但是含义却有很大相同:

  • 层次图中的一个方框通常代表一个模块;Jackson图中的一个方框并不代表一个模块,通常只代表几个语句;

  • 层次图表现的是模块的调用关系;Jackson图表现的是组成关系。

Jackson图示例如下:

  1. 体系结构设计

体系结构设计确定了程序的主要结构元素(即程序构件)之间的关系。

体系结构可以使用HIPO图和Yourdon提出的结构图来表示。

  • HIPO图

HIPO图是美国IBM公司发明的“层次图加输入/处理/输出图”的英文缩写。

层次图使用矩形框表示一个模块,用框间的连线表示模块的调用关系。如下图所示:

HIPO图在层次图里把除了顶层的方框之外的每个方框都加了编号,然后再使用一张IPO图描述这个方框代表的模块的处理过程。

IPO 图的基本形式是在左边的框中列出输入数据,在中间的框中列出数据处理,在右边的框中列出输出数据。如下图所示:

或者使用IPO表来表示,如下图:

  • 结构图

结构图和层次图类似,也是用一个方框代表一个模块,在框内注明模块的名字或主要功能,用方框之间的箭头(或直线)表示模块的调用关系。同时,在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息,并且用注释箭头尾部的形状来区分数据信息和控制信息:尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。此外,还可以使用一些附加的符号表示模块的选择调用或循环调用。

结构图示例如下:

  1. 接口设计

接口设计的结果描述了软件内部、软件与协作系统之间以及软件与使用它的人之间的沟通方式。

接口用于传递数据,因此,数据流图提供了接口设计所需要的信息。

  1. 过程设计

过程设计把程序体系结构中的结构元素,变换成对软件构件的过程性描述。

过程设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。过程设计工具有很多种,包括图形、表格和语言3类。

  • 程序流程图

程序流程图又称为程序框图,它是我们最熟悉、使用最广泛的工具。

但是,由于程序流程图有很多缺点,诸如“诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构”、“不易表示数据结构”等,所以很多专家都建议停止使用它。

  • 盒图(N-S图)

Nassi和Shneiderman提出的盒图(所以被称为N-S图)就是一种不允许违背结构程序设计精神的图形工具。

使用盒图可以很容易实现以下目标:

  • 程序员在进行设计时必须符合结构设计原则,而不能随意转移控制。

  • 可以很容易地确定局部和全程数据的作用域。

  • 可以很容易地表现嵌套关系。

盒图的基本符号如下图:

  • 判定表和判定树

判定表能够非常清晰地表示多重嵌套的条件选择关系。

一张判定表由4部分组成,左上部列出所有条件,左下部是所有可能做的动作,右上部是表示各种条件组合的一个矩阵,右下部是和每种条件组合相对应的动作。如下图所示:

但是当条件变得更多时,判定表会显得很复杂,不够简洁。这时可以使用判定树。

判定树是判定表的变种,它是以树枝的形式表示复杂的条件组合与应做的动作之间的对应关系。如下图:

判定树比判定表更直观,但简洁性却不如判定表。但是当数据元素的同一个值往往要重复写很多遍,而且越接近树的叶端重复次数越多。

  • 过程设计语言

过程设计语言(Program Design Language,PDL)也称为伪码,它使用一种语言(通常是某种自然语言)的词汇,同时却使用另一种语言(某种结构化的程序设计语言)的语法,以表示数据和处理过程。

这正是:

设计工具很丰富,有图有表有语言

覆盖设计全过程,认真表达仔细选

参考书目:软件工程(第4版),作者:张海藩 吕云翔,出版社:人民邮电出版社有限公司

(0)

相关推荐

  • 2021年9月计算机二级公共基础知识押题101-130

    101.下面属于工具(支撑)软件的是( ) A)IOS系统 B)数据库管理系统 C)财务管理系统 D)Studio.NET [解析]支撑软件是介于系统软件和应用软件之间,协助用户开发的工具性软件,包括 ...

  • 后台界面设计的7条原则

    B端界面设计越来越受到重视,但设计师单从界面设计总感觉没有太多值得发挥的地方,其实对于B端界面设计来说,视觉在其中的作用真的很有限,需要设计师有更多的深度思考.今天这篇文章就从更加深入的角度去反思B端 ...

  • 练习瑜伽要是不能助力生活,这个工具还有神马用?

    我经常说瑜伽是一个工具; 其实如果要把瑜伽比喻为一个工具,可能我首先会想到的是镜子.... 瑜伽练习是生活的一面镜子:它映照着你的情绪,你的情感,你的疑虑和你的期望.在练习中观察自己,就像照镜子一样, ...

  • 一款工具,提升你的逻辑思维能力

    内容来源:本文为六人行图书出品书籍<培养你的逻辑脑>书摘,作者为宋欣桐,笔记侠作为合作方,经出版社审核授权发布. 作者简介:宋欣桐,个人发展学会专家合伙人,工商管理硕士,知名考研辅导机构一 ...

  • 觅新|NEAR:彩虹桥跨链工具 金色财经

    <觅新>是金色财经推出的一档区块链项目观察类项目,覆盖行业各领域项目发展情况,具体设计到项目概况.技术进展.募资情况等,力图为您呈现热门新潮的项目合辑. 风险提示:"金色财经·觅 ...

  • 画流程图工具:用它可以直接套用流程图模板

    最近,我因为工作原因,需要绘制一份公司管理业务的流程图,但个人是刚踏出校园的大学生,在画流程图方面并没有多少经验,因此有点发愁.不过好在我所在办公室部门有一些乐于助人的同事,他们推荐了一个好方法给我, ...

  • 高质量工具 篇五十八:精心分享6个小巧却强大的电脑端小软件,让人大开眼界!

    谢邀!分享6个小巧却强大的电脑端小软件 1.PotPlayer PotPlayer是一款非常强大的PC端播放器软件,支持多种媒体格式,启动速度极快,播放稳定,还支持给视频加字幕,设置个性皮肤等. Po ...

  • PS'文字形状'工具,让文字变成你想要的形状!

    PS&#39;文字形状&#39;工具,让文字变成你想要的形状!

  • 可以快速出片的视频制作工具分享

    视频剪辑这种操作需求在如今短视频如此火热的时代,需求真的是越发旺盛了.这个波及的年龄层范围非常之广,很多老人小孩也都非常热衷视频形式的生活分享传播!那么大家知道视频制作软件哪个好吗?这专业人士自然是不 ...

  • 业务流程梳理方法工具一览

    近期公司业务与架构发生变化和调整,在业务和架构定型的过程,自然会涉及业务流程和权责的梳理,过程中也不断使用添加了很多方法,梳理出来以期有用. 01 APQC流程框架 APQC(美国生产力和质量中心)流 ...

  • 业务和组织诊断最佳工具--BLM模型

    现在的组织管理基本是组织效率管理,只要懂得组织运行规律(如激励理论及解决方案),就可以做组织诊断,从而发现组织效率问题.组织诊断工具是跨行业的.所谓的六盒子组织诊断基本仅仅限于组织效率(执行力)诊断. ...