系统架构设计

我们在进行系统架构设计时,往往将一个系统分解成若干个子系统,每个子系统又分解为若干个程序模块,分解后的子系统和程序模块都会执行一些相对独立的功能,在这里子系统也可以看作是较大的程序模块。分解后的这些子系统和程序模块组成了系统的一个层次结构。

系统的层次结构并没有在前面讨论的系统流程图中反映出来,这就需要另外一种设计模型来反映系统的层次结构,这就是我们将要讨论的系统结构图。

系统结构图也称为层次图,它以层次方式描述了系统从顶层到最底层的功能分解。这种功能分解方法非常适合于设计复杂系统,将复杂系统层层分解,功能由粗到细,由复杂到简单。假如要设计一个图书馆借书系统,我们可以使用功能分解方法来设计这个系统,下面给出系统功能逐层分解的步骤。

根据前期的需求调研,系统分析员和系统设计师得知图书馆借书系统会涉及到图书的管理和读者的管理两个业务,同时还要有维护借书系统的业务。因此,他们把图书馆借书系统分解为三个子系统,这三个子系统分别是图书管理子系统、读者管理子系统和系统维护子系统。下图是第一层功能分解的结构图。

图1 图书馆借书系统第一层分解结构图图

上图中的矩形表示一个子系统或模块,一个子系统可以包含多个模块,一个模块可以表示为一个函数、过程或子程序,或者一个独立的可编译的代码文件。向下带箭头的直线表示高层功能调用底层的功能,上图中图书馆借书系统会分别调用图书管理子系统、读者管理子系统和系统维护子系统。

下面我们来考虑图书馆借书系统第二层功能的分解,第二层功能是三个子系统。从前期的需求调研中可以得知图书管理子系统需要提供图书入库、图书借还、图书查询三个模块;读者管理子系统需要提供读者管理、借阅查询、借阅管理三个模块;系统维护子系统需要提供权限管理、图书备份二个模块。下图是具有三层功能分解的结构图。

图 2 图书馆借书系统三层分解结构图

上图是图书馆借书系统三层分解结构图,对一般规模的系统来说,三层分解结构是比较好的功能分解结构。分解层次过多会导出程序设计趋于复杂,也会增加大量的编码工作。分解层次过少不利于程序模块化,日后的系统维护也会异常困难。

另外,结构图在表示调用结构上是一个严格的体系,一个低层模块是不能够调用高层模块的。通常情况下,高层模块会请求低层模块提供功能和数据,同时也向低层模块传入必要的信息,低层模块处理完毕返回所要求的数据

在一些结构图中也会绘制一些小箭头表示数据在模块间的传递,以及各个模块的输入与输出。下图是带数据传递信息的结构图。

图 3 带数据传递信息的结构图

上图展示了数据是如何在模块间传递的,带空心圆的箭头叫数据耦合,表示传递给和传递出模块的数据。一个数据耦合可以是一个单独的数据项(如一个读者的账号),也可以是更高层次的数据结构(如一个数组、记录或其它数据机构)。结构图每一层所用的数据耦合类型与层次传递数据的细粒度有关,较高层次的数据耦合往往使用高度耦合的数据结构,而较低层次的数据耦合往往是一些单独数据项或较小的数据结构。

现在我们结合前面学过的系统结构图的知识,来绘制人脉项目系统结构图。系统结构图可以使用Visio工具的基本流程图来绘制,系统结构图的主要图形符号见下表。

人脉系统经过前期需求调研(请参见前面的文章),已经确定了需求功能。根据人脉系统的业务分析和角色用例,可以把人脉系统划分为三个子系统,每个子系统下面包含若干个程序模块,这是一个典型的三层结构系统。下图是绘制的系统结构图。

图 4 人脉系统结构图

上图给出了人脉系统三层结构图,图中描述了系统的模块划分、模块调用和模块间的数据传递关系。实际上各模块间不但有纵向的层次关系,也存在横向关系。例如图中的名片子系统和用户子系统就会调用数据库子系统的存取模块,这些关系都反映在系统流程图中。另外,图中也没有绘制下层模块向上层模块的数据回传,上图的存储模块、查询模块都会有数据回传的要求,图中没有绘制数据回传线,主要是考虑到再绘制数据回传的话,结构图会显得比较混乱,不容易看明白。

系统结构图以层次结构描述了系统在纵向上进行的功能分解,从复杂的大系统层层分解为小的程序模块;系统流程图从较高的功能层次上描述了系统各模块间的横向关系。因此在进行系统架构设计时,系统流程图和系统结构图都需要绘制,才能全面反映系统的体系结构。

(0)

相关推荐

  • 软件架构、框架、模式、模块、组件、插件、中间件一文打尽

    一.架构 软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计.软件架构是一个系统的草图.软件体系结构是构建计算机软件实践的基础.也称为软件 ...

  • 不容错过的灰度发布系统架构设计

    重磅干货,第一时间送达 来自:小杨互联网 大家好,我是你们帅气的喵哥! 灰度发布的定义 互联网产品需要快速迭代开发上线,又要保证质量,保证刚上线的系统,一旦出现问题可以很快控制影响面,就需要设计一套灰 ...

  • 混合动力车辆OBD系统架构设计

    文章来源:中国汽车技术研究中心有限公司 OBD系统(on-board diagnostic system)是嵌入车辆各控制器的一套车载诊断系统,通过监测排放控制系统的性能,确保有效控制在用机动车辆的排 ...

  • 复杂系统架构设计<1>

    这两天开始读由Edward Crawley(爱德华 克劳利).Bruce Cameron(布鲁斯 卡梅隆).Daniel Selva(丹尼尔 塞尔瓦)著作的系统架构,一开始看目录以为是介绍系统软件架构 ...

  • 下一代自动驾驶域控制器系统架构设计

    近年来,随着计算机和通信等技术的发展,汽车产业的发展逐渐呈现出以下几个主要特点:智能网联化.电动化.轻量化和国际化.智能网联汽车的出现不仅为汽车交通事故.交通拥堵等问题提供了良好的解决方案,也为我国汽 ...

  • 架构设计:数据服务系统0到1落地实现方案

    本文源码:GitHub·点这里 || GitEE·点这里 一.基于业务 数据服务通常有很多种业务模式,也就导致系统的架构与业务都会很复杂,不同的业务都具有自身的能力和复杂度,数据管理本身就是一件不容易 ...

  • 支付系统高可用架构设计实战,可用性高达99.999!

    作者:冯忠旗 juejin.im/post/5cfde01bf265da1bba58f863 一.背景 对于互联网应用和企业大型应用而言,多数都尽可能地要求做到7*24小时不间断运行,而要做到完全不间 ...

  • 整车电控系统及架构设计技术

    来源 :电动学堂 引言:本文的目的是基于我们对域控制设计方法的研究,提出相关的设计过程和规则,从而设计出我们3年后的新电控系统及架构平台,也就为实现软件定义汽车和硬件通用化提供可能性.同时,也希望能为 ...

  • 美国国家网络靶场系统架构与设计原理剖析②

    试验建模技术设计思路 本小节将从美国"国家网络靶场"总体技术设计思路方面对"国家网络靶场"进行描述和思考,综合诸多文献,作者尝试从靶场的试验对象设计.试验方法设 ...

  • 干货 | 整车电控系统及架构设计技术

    本文的目的是基于我们对域控制设计方法的研究, 提出相关的设计过程和规则, 从而设计出我们3年后的新电控系统及架构平台, 也就为实现软件定义汽车和硬件通用化提供可能性. 同时, 也希望能为国内电控系统及 ...