软件系统设计方案


系统背景

  本项目需要设计一个工业互联网平台,完成用户管理,设备管理(包括设备状态监测和设备控制)以及系统故障报警等功能。工作人员可以通过云端平台完成对设备的状态监测和控制,进而减小工作强度,提升工作效率。

   本文将对项目进行完整的分析,给出项目的设计方案和软件架构,从不同的角度以不同的视图给出对项目的描述。

一  系统设计

1.1  软件架构

  本项目是在设计一个工业互联网平台,需要大量的人机交互,所以采用了MVC架构模式来进行设计。

  MVC是三个单词的首字母缩写,分别是Model(模型)、View(视图)和Controller(控制)。MVC模式认为,程序不论简单或复杂,从结构上看,都可以分成三层。

    1)最上面的一层,是直接面向最终用户的"视图层"(View)。它是提供给用户的操作界面,是程序的外壳。

    2)最底下的一层,是核心的"数据层"(Model),也就是程序需要操作的数据或信息。

    3)中间的一层,就是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。

    这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。同时降低了系统中客户和服务构件之间耦合度,提高了服务构件的可重用性。

    在本系统中,Controller将会由业务逻辑层和数据访问层两部分共同组成。

    本项目中选择了B/S模式。B/S架构的全称为Browser/Server,即浏览器/服务器结构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,主要事务逻辑在服务器端实现。

      采用B/S架构的系统无须特别安装,只有Web浏览器即可。

      服务器可以直接部署在广域网上,通过一定的权限控制实现多客户访问即可。

      同时用户无需下载及升级多个客户端,直接升级服务器即可。

 

1.2  接口设计

   API是指应用程序编程接口,我们通过API接口可以实现特定的功能,而不需要了解其内部实现细节。可以把API接口理解为是特定服务的一种封装,将服务封装起来提供给他人调用,这样一来很多功能不需要二次开发。

接口名称 接口地址 请求方式 请求参数 响应格式
register /register POST username,email,passwd success/fail
login /login  POST username,passwd success/fail
userInfo /profile/{username} GET username userInfo
addDevice /addDevice POST deviceId,type,IPaddress success/fail
getDevSta /getDevSta GET deviceId devStaInfo
ctrDevSta /ctrDevSta POST deviceId,state success/fail
delDev /delDev POST deviceId success/fail

 

  

 

 

 

 

 

 

 

 

 

二   系统视图

2.1  分解视图

  分解是构建软件架构模型的关键步骤,分解视图也是描述软件架构模型的关键视图,一般分解视图呈现为较为明晰的分解结构(breakdown structure)特点。分解视图用软件模块勾划出系统结构,往往会通过不同抽象层级的软件模块形成层次化的结构。

 

 

2.2  依赖视图

  依赖视图展现了软件模块之间的依赖关系。比如一个软件模块A调用了另一个软件模块B,那么我们说软件模块A直接依赖软件模块B。如果一个软件模块依赖另一个软件模块产生的数据,那么这两个软件模块也具有一定的依赖关系。

  依赖视图在项目计划中有比较典型的应用。比如它能帮助我们找到没有依赖关系的软件模块或子系统,以便独立开发和测试,同时进一步根据依赖关系确定开发和测试软件模块的先后次序。

      

 

 

 

2.3  泛化视图

  泛化视图展现了软件模块之间的一般化或具体化的关系,典型的例子就是面向对象分析和设计方法中类之间的继承关系。泛化视图有助于描述软件的抽象层次,从而便于软件的扩展和维护。

   下图展示了User,Worker,Manager之间的泛化关系。

    

2.4  执行视图 

  执行视图展示了系统运行时的时序结构特点,比如流程图、时序图等。执行视图中的每一个执行实体,一般称为组件(Component),都是不同于其他组件的执行实体。如果有相同或相似的执行实体那么就把它们合并成一个。

  执行实体可以最终分解到软件的基本元素和软件的基本结构,因而与软件代码具有比较直接的映射关系。在设计与实现过程中,我们一般将执行视图转换为伪代码之后,再进一步转换为实现代码。

 

2.5  部署视图

  部署视图是将执行实体和计算机资源建立映射关系。这里的执行实体的粒度要与所部署的计算机资源相匹配,比如以进程作为执行实体那么对应的计算机资源就是主机,这时应该描述进程对应主机所组成的网络拓扑结构,这样可以清晰地呈现进程间的网络通信和部署环境的网络结构特点。

      

  

  部署视图有助于设计人员分析一个设计的质量属性,比如软件处理网络高并发的能力、软件对处理器的计算需求等。

三   数据库设计

数据库设计主要包含下列关系表:

用户表:

 
字段 类型 注释
ID String 用户编号
name String 姓名
password String 登录密码
email String 邮箱
grade int 用户等级,标识管理员或值班员

 

 

 

 

 

 

 

 

 

设备表:

字段 类型 注释
ID String 设备编号
class String 设备类型
area int 所属区域
state int 设备状态
IPaddress String IP地址

 

 

 

 

 

 

 

 

区域表(网关表):

字段 类型 注释
areaId int 区域编号
IPaddress String 对应网关IP地址
discribe String 描述信息

 

 

 

 

 

四   运行环境及技术选型

  

  开发语言:JAVA

  Web开发框架:SpringBoot

  缓存:Redis

  数据库:MySQL

  运行环境:Linux平台+Docker容器

五   系统工作机制

  概念原型是一种虚拟的、理想化的软件产品形式。具体的讲,概念原型 = 用例 + 数据模型。

  通过上述分析,总结项目的工作过程如下:

  用户成功登录后,我们根据用户等级为其赋予不同的功能。对于系统管理员,可以进行维护信息,用户管理,设备管理,接受报警信息等操作。对于值班员可以进行维护信息,设备管理,接受报警信息等操作,但设备管理中不能创建,删除以及修改设备信息。

  针对用户的不同操作请求,由业务处理层给出不同的响应,比如驱动设备完成相关操作,返回包含用户信息和设备状态的页面等。

 

  参考文献:《软件科学基础概念


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM