介绍
本文首先介绍系统建模的定义、目的、分类,然后重点介绍分析和设计两个阶段中结构化分析的流程和工具,最后对结构化建模进行总结。
建模定义
系统建模就是建立系统模型,对系统做出抽象、无歧义的表达。通过一些工具和方法,对业务(组织)进行抽象、分解、分析和设计,最终转化为系统的模型表达(各种图形、表格和文字描述)。
建模的目的
本质上,每一个软件系统都是模型化的,哪怕是一个用几行代码实现的小工具,但模型可能只停留在程序员的头脑中。当系统达到一定规模时,需要分析人员、设计人员、程序员三者协作结构化系统分析工具,系统化的建模分析设计方法就显得尤为重要。建模分析促进系统化思维,建模表达直观、准确、易懂。
建模分类
通常采用两种建模方法:结构化分析与设计和面向对象的分析与设计。
结构化分析与设计
结构化分析与设计包括分析和设计两个阶段,分析阶段关注数据流,对业务(组织)进行系统分析,形成分析模型;设计阶段以分析模型为输入,进行系统设计(包括架构设计、概要设计和详细设计),形成设计模型。
分析阶段
分析阶段使用的主要工具有:数据流图(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
总结
面对一个新领域时,系统的分析与设计可以帮助我们梳理业务,获取领域知识,形成系统的分析与设计模型。在一些项目中,我们可能因为在某个领域长期积累了领域知识,不需要分析设计就能很快发现订单、发货单、物流单等实体,甚至实体关系、模块分解结构等。
参考文章:
暂无评论内容