结构化系统分析工具 系统建模-结构化分析与设计

介绍

本文首先介绍系统建模的定义、目的、分类,然后重点介绍分析和设计两个阶段中结构化分析的流程和工具,最后对结构化建模进行总结。

建模定义

系统建模就是建立系统模型,对系统做出抽象、无歧义的表达。通过一些工具和方法,对业务(组织)进行抽象、分解、分析和设计,最终转化为系统的模型表达(各种图形、表格和文字描述)。

建模的目的

本质上,每一个软件系统都是模型化的,哪怕是一个用几行代码实现的小工具,但模型可能只停留在程序员的头脑中。当系统达到一定规模时,需要分析人员、设计人员、程序员三者协作结构化系统分析工具,系统化的建模分析设计方法就显得尤为重要。建模分析促进系统化思维,建模表达直观、准确、易懂。

建模分类

通常采用两种建模方法:结构化分析与设计和面向对象的分析与设计。

结构化分析与设计

结构化分析与设计包括分析和设计两个阶段,分析阶段关注数据流,对业务(组织)进行系统分析,形成分析模型;设计阶段以分析模型为输入,进行系统设计(包括架构设计、概要设计和详细设计),形成设计模型。

分析阶段

分析阶段使用的主要工具有:数据流图(DFD)、数据字典(DD)、状态转换图(STD)和实体关系图(ERD)。

将功能建模、行为建模和数据建模结合起来,形成结构化的分析模型,如图:

结构分析模型.png

自上而下的数据流分析

分析模型的建立并非一朝一夕就能完成的,而需要一个自上而下、从抽象到具体的模型细化过程,而细化过程依赖于数据流图的抽象、概括和层次化。

数据流层次结构.png

数据流层次中顶层数据流提供了业务的系统级抽象表达。

数据流图-顶层.jpg

分解顶层数据流,形成第一级数据流图。示例:

数据流图-1层.jpg

通过进一步细化第一层数据流,我们可以形成第二层、第三层等数据流图。同时,我们可以创建数据字典来细化数据流图的细节。数据字典示例:

名称 用途 内容 描述

购物者

数据:注册信息、产品

注册信息

处理:已注册

姓名+账户+密码+邮箱+电话

登记

数据流:注册信息

商品

代号+名称+规格+计量单位

订购信息

处理:购买

购物者 + 送货地址 + {产品 + 数量}n

+、{}n等写法请参考数据字典表示。

自下而上的概念数据模型

从数据流图和数据字典中获取关键实体和关系信息,形成局部实体关系图,再通过逐层聚合,自下而上构建全局概念数据模型,构建过程如下图所示:

图片.png

生成的概念数据模型包含实体、属性、关系三个元素。数据模型可以根据不同的用途进行细化。在作为概要设计的输入时,应尽可能细化所有元素,以保证设计的准确性。在作为系统数据草图时,核心实体+核心属性(可选)+核心关系即可。以下是系统数据草图的示例:

概念模型.jpg

设计阶段

设计阶段利用分析阶段的结果(数据流图、数据字典、状态转换图、ER图)作为输入,进行系统设计,包括架构设计、概要设计和详细设计。

架构设计充分考虑设计约束结构化系统分析工具,制定设计原则,通过应用架构、数据架构、技术架构(包括系统集成、分层架构、事务支持、错误处理机制、日志等)、部署架构对系统进行分解、集成和重用,形成功能、数据、开发、部署多维度的系统草图,指导概要设计、详细设计和开发。

在架构设计的基础上,将概要设计进一步分解为子模块层次,主要包括系统结构设计、数据设计、接口设计、错误设计等。

Begin transaction
     Queue  message   callserviceA
     Queue  message   callserviceB
End transaction
For each message in queue
     peek message
     consume message :callservice 
     remove message 
End For

总结

面对一个新领域时,系统的分析与设计可以帮助我们梳理业务,获取领域知识,形成系统的分析与设计模型。在一些项目中,我们可能因为在某个领域长期积累了领域知识,不需要分析设计就能很快发现订单、发货单、物流单等实体,甚至实体关系、模块分解结构等。

参考文章:

© 版权声明
THE END
喜欢就支持一下吧
点赞48赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容