软件工程:数据流图和结构图怎么画?

软件工程:数据流图和结构图怎么画?文章目录Step1:根据软件的功能描述,绘制数据流图:Step2:根据数据流图,分级绘制结构图:•边界划分:•第一级分解:•第二级分解:•精化减少耦合:Step1:根据软件的功能描述,绘制数据流图:问题表述:假设的仪表板将完成下述功能:(1)通过模数转换实现传感器和微处理机接口;(2)在发光二极管面板上显示数据;(3)指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等;(4)指示加速或减速;(5)超速警告:如果车速超过55英里/小时,则发出超速警告铃声。首先了

大家好,又见面了,我是你们的朋友全栈君。

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,(ノ´▽`)ノ♪-》点击这里->一个宝藏级人工智能教程网站

Step 1:根据软件的功能描述,绘制数据流图:

问题表述

假设的仪表板将完成下述功能:(1) 通过模数转换实现传感器微处理机接口;(2) 在发光二极管面板显示数据;(3) 指示每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等;(4) 指示加速减速;(5) 超速警告:如果车速超过55英里/小时,则发出超速警告铃声。

首先了解数据流图的4种基本符号

在这里插入图片描述

然后,对从问题描述中提取数据流图的4种成分

数据流图的成分 映射—>方法或实体
数据处理: 读取(轮胎)旋转信号,读取(尾气)燃料流信号,计算gph,计算燃料消耗mpg,计算里程,产生mpg显示,产生mpg显示,产生里程显示,发出超速警告,产生加速/减速显示等等。
数据源点: 传感器
数据终点: 发光二极管面板
数据存储文件:
数据流: (轮胎)旋转信号,(尾气)燃料流信号,每小时英里数(mph),行驶的里程,每加仑油行驶的英里数(mpg)等等。

难点在于我们是否在进行问题的描述之后对问题的流程有详细的理解我们很难通过单一的问题描述去把所有的数据流图的成分去映射完整,从而对问题的描述到实际的系统流程设计发生概念性的理解错误

总而言之,对问题的描述部分的理解决定了一个系统的框架走向,因此,对问题的描述进行深入的咨询专业人士在实际的工业生产中也是必不可少的

在这里插入图片描述

是的,我们只考虑系统的设计部分,省略了数据源点和数据终点。术业有专攻,在实际的数据流图的绘制中加入了一些我们外行人根本看不懂的东西(“读和校验”,“收集和求平均”等等),学习的是思想,切勿纠结于细枝末节,我们继续,看完我们会有所收获的

在这里插入图片描述

伏尔泰说过,常识并不是大家都知道的,常见的东西。

Step 2:根据数据流图,分级绘制结构图:

•边界划分:

接下来,确定输入流和输出流的边界,从而孤立出变换中心

在这里插入图片描述

•第一级分解:

软件结构代表对控制的自顶向下的分配,所谓分解就是分配控制的过程(说白了,就是把系统分成3个部分,输入部分,转换处理部分,输出部分):

在这里插入图片描述

•第二级分解:

把数据流图中的每个处理映射成软件结构中一个适当的模块(说白了,就是针对已经划分好的输入部分,转换处理部分,输出部分进行内部的结构划分):

以“接收传感器信号”部分为例,进行结构图的绘制,仔细观察结构图的层次关系,不就是把数据流图中接收传感器信号的部分按箭头顺序拎起来了嘛??是这样吧<—doge.gif)

在这里插入图片描述

“数据转换控制”的结构图如下:

在这里插入图片描述

“驱动仪表板”的结构图如下:

在这里插入图片描述

•精化减少耦合:

软件结构进一步精化,对初步分割得到的模块进行再分解或合并

具体到数字仪表板的例子,可做如下某些可能的修改:(1)输入结构中的模块“转换成rpm”和“收集sps”可以合并;(2)模块“确定加速/减速”可以放在模块“计算mph”下面,以减少耦合;(3)模块“加速/减速显示”可以相应地放在模块“显示mph”的下面

在这里插入图片描述

•添加数据/控制信号流向:

结构图中一个方框代表一个模块,框内注明模块的名字或主要功能。

方框之间的箭头(或直线)表示模块的调用关系。位于上方的方框代表的模块调用下方的模块。(尾部是空心圆表示传递的是数据。实心圆表示传递的是控制信息。)
在这里插入图片描述

最后,希望这篇博文对你有实际的帮助和加深理解。软件工程,画图并不难,难的是如何将问题描述转化为项目功能的具体需求,难的是结构的设计和统筹

都看到这里了,确定不点赞收藏再走嘛==(ಥ_ಥ)== !

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147943.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SNMP协议测试_nmap测试udp端口

    SNMP协议测试_nmap测试udp端口SNMP测试上文介绍了net_snmp的移植,移植完成之后需要测试,现在就介绍一下如何进行snmp的功能测试,还是在基于高通9607芯片开发的ME3630模块上进行测试,这里需要用到一个工具就是mibbrowser可以在其官网上下载http://ireasoning.com/mibbrowser.shtml是付费软件,我们可以下载个人版,但是个人版好像不支持v3版本的snmp,企业版是全部支持的但是只有30天的使用期限,这个项目里我只是做功能测试,30天足够了,就下载了企业版,对各个版本的SNMP都

    2022年10月16日
    1
  • ubuntu 通过命令行 卸载软件_命令提示符卸载软件

    ubuntu 通过命令行 卸载软件_命令提示符卸载软件1、在终端里apt-get安装的软件:安装软件sudo apt-getinstallsoftname1softname2softname3……卸载软件sudoapt-getremovesoftname1softname2softname3……卸载并清除配置sudo apt-getremove–purgesoftname1更新软件信息数据库sudoapt-getu…

    2022年9月9日
    0
  • pycharm 激活码 2021【2021.10最新】

    (pycharm 激活码 2021)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~2JTX0APX6F-eyJsaWNlbnNlSWQiOi…

    2022年3月30日
    43
  • Delphi2007 下安装ActiveX控件[通俗易懂]

    Delphi2007 下安装ActiveX控件[通俗易懂]此英文文章来自codegear官方网站,但是是讲在BDS2006 下如何安装,我在delphi2007下用此方法,一样通过,原文如下 Description:HowtoimportanActiveXcontrolinBDS2006?Answer/Solution:Herestheprocedureforimportingandinstalling

    2022年5月14日
    36
  • [数据库] 一文搞懂case when所有使用场景「建议收藏」

    [数据库] 一文搞懂case when所有使用场景「建议收藏」前几天,为了给产品分析当前用户数据结构,写sql的时候使用到了casewhen,今天来总结一下casewhen的使用方法,以此为戒,感觉写的不好请拍砖,感觉写的还可以,给哥们点个赞,或者回复一下,让我意识到我不是一个人在战斗,好了废话不多说了,进入正题。关于casewhen的使用情况,我总结下来有三种,第一、等值转换,第二、范围转换,第三、列转行操作。等值转换咱们在设计数据库的…

    2022年9月5日
    4
  • 国产Linux系统下替代QQ和微信的不二之选

    国产Linux系统下替代QQ和微信的不二之选在2019年,UOS宣布成立至今,原深度系统得到资金之后,发展速度直线上升,目前已经完全可以使用Deepin系统进行办公和日常使用了UOS是Deepin的专业版,前者收费,后者免费,和红帽一样的运营策略但是,众所周知,在去年QQ迎来了距离上一次更新十年前后的第一次更新,更新效果一如既往的被吐槽,因为真的太敷衍了,而微信至今为止,并未有过真正的Linux平台的cs客户端,有的只是一个残废的网页封装版,所以如果使用国产系统去使用腾讯家族的东西,那将是一种折磨。幸好,互联网新秀字节跳动退出了覆盖全国产.

    2022年5月16日
    69

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号