问题 问答题 案例分析题

结构化软件系统建模

博学公司拟开发一个商业情报处理系统,使公司能够及时针对市场环境的变化及时调整发展战略,以获取最大的商业利益。项目组 经过讨论,决定采用结构化分析和设计方法。在系统分析阶段,为了更好地对情报数据处理流程及其与外部角色的关联进行建模,项目组成员分别给出了自己的设计 思路:

①小张提出先构建系统流程图(System Flowcharts),以便更精确地反映系统的业务处理过程及数据的输入和输出。

②小李提出先构建系统数据流图(Data Flow Diagrams),来展现系统的处理过程和定义业务功能边界,并给出了情报分类子系统的0层和1层数据流图,后者如图12-1所示。

项目组经讨论确定以数据流图作为本阶段的建模手段。工程师老王详细说明了流程图和数据流图之间的区别与联系,并指出了图12-1所示的数据流图中存在的错误。

请分析指出图12-1所示的数据流图中存在的错误及其原因,并针对图12-1所示的l层数据流图绘制出情报分类子系统的0层数据流图。

答案

参考答案:

如图12-2所示,数据流图中存在的错误有以下4种:

①"分类训练"加工:有输入没有输出,产生数据黑洞。

②"分类处理"加工:有输出没有输入,无中生有。

③"规则文件"数据流:外部实体没有经过加工处理,直接到数据存储。

④"配置信息"数据流:外部实体之间没有加工处理,存在直接数据流。

解析:

问题2是找错误数据流及根据低层数据流图来画高层数据流图。这是软件设计师的经典考查形式。在找错误数据流时,首先需要了解错误数据流的类型:一类是语法错误,包括外部实体之间、数据存储之间或外部实体与数据存储之间不经过加工而存在直接数据流;另一类是逻辑错误,包括数据黑洞(只有输入没有产生输出)、灰洞(输入不足以产生输出)和无输入。

"分类训练"加工属于数据黑洞错误。

"分类处理"加工属于无输入错误。

"规则文件"和"配置信息"数据流属于语法错误。

对于复杂系统,一般采用分层数据流图逐步细化系统的内部处理逻辑。0层数据流图是1层数据流图更高级别的抽象。"分类训练"和"分类处理"加工属于内部加工,"分类规则"数据流属于内部数据流,抽象为"情报分类子系统"加工。其中,"样本数据"、"规则文件"和"配置信息"为输入数据流:"分类结果"为输出数据流。

多项选择题
单项选择题