论软件架构建模技术与应用

Posted 王三丰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论软件架构建模技术与应用相关的知识,希望对你有一定的参考价值。

摘要:2010年,我参加了湖南某矿业的污水监控平台的开发,在这个项目中,我担任系统设计和开发的工作。这个系统主要是对辰州矿业的排污进行数据采集,实时监控,超标报警,数据统计和管理。本文结合作者的实践,以辰州矿业监控平台弟弟系统架构建模为例,论述了4+1视图模型在工作中的运用。本论文先介绍4+1模型,然后结合我参与项目的实际情况,详细说明在这次项目中所涉及的软件架构,最后是分析该项目取得实践效果。

                                                                                                          正文

    软件架构用来处理软件高层次结构的设计与实施,它以精心选择的形式将若干结构元素进行装配,从而满足系统的主要功能和性能需求。软件架构设计的首要问题是如何表示系统架构,即如何对软件架构建模。根据建模的侧重点不同,可以将软件架构模型分为结构模型,框架模型,动态模型,过程模型和功能模型。Kruchten于1995年提出了4+1视图模型,将这5种模型有机的结合了一起。

    4+1视图模型分为为:逻辑视图,物理视图,场景,进程视图和开发视图。逻辑视图,主要是支持系统的功能需求,即体现了系统提供一个什么样的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自于功能域.在OO技术中主要是通过类的继承,封装和抽象,用类图来描述逻辑视图。物理视图,即软件如何映射到硬件上,它通常考虑的是系统的拓扑结构,系统安装和通信等问题。场景,将4种视图有机的联系起来,在UML中一般用用例图来表示。进程视图,体现了系统在运行中表现出来的特性,如分布性,并发性和容错能力,系统集成性。它定义了逻辑视图的各个类操作具体是在哪一个线程中执行的。开发视图,主要描述系统的组织,与逻辑视图精密相关,在UML中对应的是实现图。其中用户对应的是逻辑视图,开发人员对应的是开发视图,系统工程师对应的是物理视图,系统集成工程师对应的是进程视图。

    辰州矿业监控平台是一个对矿业排污进行数据采集,根据集团领导的需求:公司的监测人员能够随时监测排污的数据,当污染数据超标时能够即时通知相关的负责人员,能够查询历史的排污数据记录,管理员能够通过工控机操作并管理各个数据采集仪。经过我们的分析,结合需求,我们做了如下设计:系统由B/S和C/S两部分组成。其中B/S主要的功能包括:实时污染数据的监测和显示,数据统计和管理,超标报警等,由矿业的PC客户端浏览器和应用服务器,数据库服务器组成。C/S的主要功能包括:控制数据采集仪器,进行数据采集,将采集的污染数据持久化,实时污染数据的显示等,由工控机,数据采集仪,和数据库服务器组成。

    在这次系统架构建模的工作中,我们用到的建模工具是Microsoft Visio,用到的架构描述语言是UML,结合项目的实际情况,用4+1视图模型进行建模:

     1.对情景进行建模:经过我们的分析,结合客户的需求,在这个系统中有两类角色,一类是矿业集团办公室的负责排污监测的各位工作人员,即用户类,他们一般会进行排污的数据查询工作,另外当排污超标时,系统会进行报警并通知。另外一类是矿业监控室的管理人员,他们一般在现场值班,负责对数据采集仪和工控机进行管理,监测各项排污数据,和进行排污数据的维护工作。所以系统的主要用例有如下几个:数据查询,超标报警,数据实时显示,数据采集,数据维护。用例图如下所示:
 
技术分享图片

技术分享图片


 

     2.对逻辑视图进行建模:在这个系统中,我们用UML的包图来描述逻辑视图,经过我们的分析,在C/S部分,工控机和数据采集仪之间进行如下职责划分:

* 应用层负责设备状态的显示,并提供模拟控制台供用户发送调试命令。

* 应用层使用通讯层和嵌入层进行交互,但应用层不知道通讯的细节。

* 通讯层负责在SOCKETC协议之上实现一套专用的"应用协议"。

* 当应用层发送来包含调试指令的协议包,由通讯层负责按SOCKET协议将之传递给嵌入层。

* 当嵌入层发送来原始数据,由通讯层将之解释成应用协议包发送给应用层。

* 嵌入层负责对调试设备的具体控制,以及高频度地从数据采集器读取设备状态数据。

* 设备控制指令的物理规格被封装在嵌入层内部,读取数采器的具体细节也被封装在嵌入层内部。

在B/S部分,客户端PC和应用服务器进行如下职责划分:表现层,逻辑业务层和数据访问层。

技术分享图片

技术分享图片



 

     3.对物理视图进行建模:我们用UML的部署图来描述进程视图,对系统的拓扑结构和通信进行描述。整个系统分为B/S和C/S两部分,B/S中的客户PC端和应用服务器,应用服务器和数据库服务器都通过局域网进行连接。C/S中工控机和数据库服务器通过局域网进行连接,工控机和采集仪通过数据专线进行连接,工控机和采集仪之间采用串口SOCKET通信,工控机和数据库采集仪之间通过TCP/IP进行通信,客户PC端和应用服务器通过HTTP进行通信。部署图如下图所示:

 技术分享图片

    4.对进程视图进行建模:在C/S部分,表示层分为三类线程:数据持久化线程,数据显示线程和采集控制线程,分别用来对数据进行持久化,图形的显示,以及对采集仪进行控制,进行数据的采集。对应的UML建模图如下所以:

                                                                                            

               技术分享图片

    通过对4+1视图的情景,逻辑视图和物理视图建模,分别从系统提供的服务和功能,系统的网络拓扑结构和通信进行了建模,对系统进行了详细的分析,为系统的设计和接下来的项目开发提供了有力的支持。

以上是关于论软件架构建模技术与应用的主要内容,如果未能解决你的问题,请参考以下文章

[转]论基于DSSA的软件架构设计与应用

[架构之路-133]-《软考-系统架构设计师》-软件工程-3-软件系统的建模与UML

论软件的模块化与架构

软考高级系统架构设计师系列论文五十七:论软件项目管理技术及其应用

软考 系统架构设计师论文范文④ 论基于构件的软件开发

[架构之路-96]:《软件架构设计:程序员向架构师转型必备》-6-需求与用户用例User Case/Senario建模