zoukankan      html  css  js  c++  java
  • 论软件架构建模技术与应用

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

                                
       摘要: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视图的情景,逻辑视图和物理视图建模,分别从系统提供的服务和功能,系统的网络拓扑结构和通信进行了建模,对系统进行了详细的分析,为系统的设计和接下来的项目开发提供了有力的支持。
  • 相关阅读:
    model number
    LeetCode: Largest Rectangle in Histogram 解题报告
    Leetcode:Edit Distance 解题报告
    Leetcode:Interleaving String 解题报告
    Leetcode:Scramble String 解题报告
    Leetcode:【DP】Longest Palindromic Substring 解题报告
    Leetcode:Longest Substring Without Repeating Characters 解题报告
    Leetcode: Remove Duplicates from Sorted List II 解题报告
    Leetcode:Flatten Binary Tree to Linked List 解题报告
    LeetCode: Convert Sorted Array to Binary Search Tree 解题报告
  • 原文地址:https://www.cnblogs.com/wangsanfeng/p/9101059.html
Copyright © 2011-2022 走看看