目录
第1关:将数据流图转换为模块结构图-认识StarUML中的相关元素
第1关:将数据流图转换为模块结构图-认识StarUML中的相关元素
面向数据流的设计方法-2
第1关:将数据流图转换为模块结构图-认识StarUML中的相关元素
- 什么是模块结构图;
- 数据流图转换为模块结构图的流程。
相关知识
模块结构图
模块结构图(Module Structure Diagram, MSD)是用来表示系统的模块划分与层次分解关系,表示模块的调用关系、模块间数据流与控制流的传递关系以及模块与外界或数据存储的信息接口的规范化图形,是结构化系统设计的一种重要的图表描述工具。
组成元素
- 方框:内有名称,表示模块;
- 直线:表示上层模块对下层模块的调用;
- 尾部带空心圆的箭头:表示按方向传递的数据信息;
- 尾部带实心圆的箭头:表示按方向传递的控制信息。
作用
描述模块间参数交换情况、评价模块间耦合情况、确定模块间的接口。结构图一般不列入设计文档,只用于设计阶段检查模块设计的正确性和模块独立性。
变换设计
变换设计就是从变换型数据流图映射出软件模块结构的过程,也称以变换为中心的设计。 变换设计的基本方法有两步:
- 分解第一层模块结构,就是把整个变换分解成输入控制模块Ci、输出控制模块Co和变换中心控制模块Ct,由主控模块控制;
图1 变换设计
图2 变换设计 - 分别设计输入、输出和处理的下层模块结构,方法是:从变换中心边界向两侧移动,分别把输入通路和输出通路的每个处理映射成输入控制模块Ci和输出控制模块Co的下属模块。变换中心的下层模块,是把每个处理映射成变换中心控制模块Ct的一个直接下属模块。
图3 变换设计
事务设计
事务设计就是从事务型数据流图映射出软件模块结构的过程,也称为以事务为中心的设计。
事务设计的基本方法有两步:
- 建立主控模块、接收输入类型分析模块和事务调度模块;
图4 事务设计 - 分别设计输入类型分析模块和调度模块的下层模块结构。方法是:将输出的每条通路作为调度模块的一个判断分支,而输入类型分析模块的下层模块与变换设计类似。
图5 事务设计
图6 事务设计
StarUML中的相关元素
由于 StarUML 中没有专门绘制模块结构图的工具,所以我们使用 Data Flow Diagram 中的元素来代替模块结构图所需元素。 其中,方框代表模块,箭头代表上层模块对下层模块的调用,也代表传递的数据信息。示例如图7所示。
图7 模块结构图示例
另外,StarUML中的线条默认是折线的形式,若想要将其改为直线或者曲线,需要选中该线条后,在界面右侧的Editors中做出修改,具体如图8所示,红框中的按钮分别代表直线和曲线。
图8 Editors
闯关要求
题目
请认真学习以上描述,并模仿图7,在StarUML中绘制出模块结构图。将答案保存至“/home/headless/Desktop/workspace/myshixun/模块结构图/submit/step_0/”目录下,文件命名为“step0.mdj”。
第2关:将数据流图转换为模块结构图-画出主模块
闯关要求
案例介绍
网上商城订单系统具有如下功能流程: (1)顾客提交订单至订单管理系统审核,在系统审核完成后会向用户反馈订单状态。在订单入库后即为“提交成功、尚未审核”状态,此时更新 订单文件;订单管理员在后台浏览到顾客提交的订单(订单文件),在审核订单并确认订单信息有效后,将订单的状态更改为“订单已审核,尚未付款”,若未通过审核,则将“订单无效”信息发给顾客。 (2)若系统读取 货物库存文件,得知商品无货信息,则向管理员通知商品无货。 该系统的数据流图如下:
图7 订单系统数据流图
题目
本题中我们将该订单子系统看作为一个独立系统,请完成下述题目: 请分析该数据流图和案例描述,找出模块结构图的主模块,在 StarUML 中画出该主模块。请将文件保存至“/home/headless/Desktop/workspace/myshixun/模块结构图/submit/step_1/”目录下,文件命名为“step1.mdj”。
第3关:将数据流图转换为模块结构图-画出输入部分
闯关要求
题目
本题中我们将该订单子系统看作为一个独立系统,请完成下述题目: 请分析该数据流图和案例描述,找出模块结构图的输入部分,在上一关的基础上,画出该输入部分。请将文件保存至“/home/headless/Desktop/workspace/myshixun/模块结构图/submit/step_2/”目录下,文件命名为“step2.mdj”。 File下的“Save As”是“另存为”按钮,可以直接将打开的文件另存到指定目录下。
第4关:将数据流图转换为模块结构图-画出变换部分
闯关要求
题目
本题中我们将该订单子系统看作为一个独立系统,请完成下述题目: 请分析该数据流图和案例描述,找出模块结构图的变换部分,在上一关的基础上,画出该变换部分。请将文件保存至“/home/headless/Desktop/workspace/myshixun/模块结构图/submit/step_3/”目录下,文件命名为“step3.mdj”。 File下的“Save As”是“另存为”按钮,可以直接将打开的文件另存到指定目录下。
第5关:将数据流图转换为模块结构图-画出输出模块
闯关要求
题目
本题中我们将该订单子系统看作为一个独立系统,请完成下述题目: 请分析该数据流图和案例描述,找出模块结构图的输出部分,在上一关的基础上,画出该输出部分。
第6关:事务型结构图
闯关要求
案例介绍
网上商城首页(购物界面)的数据流图如下:
图7 购物界面数据流图
题目
请分析该数据流图,思考下如何将其转换为模块结构图。完成选择题,补全图2中的空缺部分。
图8 事务流结构图
软件详细设计-1
第1关:判定树-网上商城系统库存模块
闯关要求
案例介绍
在网上商城系统中,管理员可以查看具体库存情况。详细描述如下: 若库存量小于等于0,则按缺货处理;否则,若库存量小于等于库存下限,则按下限报警处理;若库存量大于库存下限,而又小于等于储备定额,则按订货处理;若库存量大于库存下限,小于库存上线,而又大于储备定额,则按正常处理;若库存量大于等于库存上线,而又大于储备定额,则按上限报警处理。
题目
请根据网上商城系统库存量监控功能的处理逻辑,完成判定树的填空。
图1 判定树
第2关:判定表-网上商城系统库存模块
闯关要求
案例介绍
商城管理员根据用户欠款时间长短和现有库存情况处理用户订货的方案。对于欠款时间小于等于30天的客户,若其需求量小于库存量,则立即发货;若库存量不足,则按库存发货,进货后再补发。对于欠款时间大于30天且小于等于100天的客户,若其需求量小于库存量,则通知其先付款再发货;若库存量不足,则不发货。对于欠款时间大于100天的客户,通知其先付欠款再议。
题目
请根据上述描述,完成选择题。
第3关:PAD图-网上商城系统购买商品模块
闯关要求
案例介绍
用户在完成登陆后,可以进入到购物界面。在购物界面中,用户可以挑选商品,并且将商品加入到购物车中。之后用户可以选择是否停止购物,选择是会返回购物界面;选择否会进入确认订单页面。至此新建订单操作完成。 该模块的程序流程图如下:
图2 程序流程图
题目
请根据上述描述以及程序流程图,完成题目。