智能控电柜系统软件架构设计说明书.docx
《智能控电柜系统软件架构设计说明书.docx》由会员分享,可在线阅读,更多相关《智能控电柜系统软件架构设计说明书.docx(31页珍藏版)》请在冰点文库上搜索。
智能控电柜系统软件架构设计说明书
智能控电柜系统
构架设计说明
项目名称:
智能控电柜系统
单位:
深圳市利谱信息有限公司
一、简介
1.编写目的
本文档全面地表述了智能控电柜的构架,并通过使用多种视图来从不同角度描述本项目的各个主要方面,以满足相关人员对本项目的不同关注焦点和需求。
本文档记录并表述了项目架构的设计人员对系统构架方面做出的重要决策。
项目经理将根据构架定义的构件结构制定项目的开发计划;程序设计员将据此进行各构件的详细设计;测试设计员按照构架设计系统的总体测试框架;另外构架文档还用于指导各构件的实施、集成及测试。
本文档的预期阅读人员为项目经理、程序设计人员、测试人员和其他有关的工作人员。
2.文档范围
本软件架构说文档适合于智能控电柜总体应用架构。
3.定义
(1)Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的(Servlet是Java技术对CGI编程的回答。
Servlet程序在服务器端运行,动态地生成Web页面。
与传统的CGI和许多其他类似CGI的技术相比,JavaServlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资;JavaServerPages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。
但是包括Servlet在内的大多数CGI技术及其变种,总是通过程序生成整个页面。
JSP使得我们可以分别创建这两个部分。
)。
(2)Spring的一个最大的目的就是使J2EE开发更加容易。
同时,Spring之所以与Struts、Hibernate等单层框架不同,是因为Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。
可以说Spring是一个提供了更完善开发环境的一个框架,可以为POJO(PlainOldJavaObject)对象提供企业级的服务。
(3)Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。
(4)Tomcat:
自从JSP发布之后,推出了各式各样的JSP引擎。
ApacheGroup在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet,这样Tomcat就诞生了。
Tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品,同时它又是sun公司官方推荐的servlet和jsp容器,因此其越来越多的受到软件公司和开发人员的喜爱。
servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。
其次,Tomcat是完全免费的软件,任何人都可以从互联网上自由地下载。
Tomcat与Apache的组合相当完美。
4.参考资料
《Struts+Hibernate+Spring开发入行真功夫》,电子工业出版社。
《文档写作指南》,清华大学出版社。
《智能控电柜需求说明书》。
《智能控电柜概要设计说明书》。
《智能控电柜可行性分析报告》。
《智能控电柜市场调研报告》。
二、架构表示方式
本架构设计文档以一系列的视图(View)来表示系统的软件构架,主要包括用例视图、逻辑视图、进程视图、部署视图、实施视图等,每个视图拥有一个或多个模型(Model)。
并围绕相关视图来描述系统的基本结构、组成机制与工作原理等。
本软件架构设计文档还将系统的构架机制描述也放在了逻辑视图之下。
本文档主要使用统一建模语言(UML)来充当相关模型的表达语言;主要图表(Diagram)引用自图书杂志采购和借阅系统的RoseModel。
三、架构设计目标与约束
描述构架设计最主要目标就是满足关键系统功能需求和质量约束,这些功能需求和质量要求对软件构架有重大的影响,并决定了构架的设计。
本节同时还列明影响构架的其他相关因素,如软件的复用策略、使用商业构件、设计与实施的策略等。
1.关键功能需求
按照需求分析文档的规格要求,智能控电柜的设计分成了以用户功能模块以及管理员功能模块为主的二大模块进行开发,而在此二大模块的的基础上,又细分成了房间购电信息表、电量表、用户信息表、系统参数表等子功能模块。
系统的开发主要是为了使用电的管理工作更加规范化、系统化和程序化,提高预付费用电的速度和准确性。
其功能模块示意图如下所示:
功能模块示意图
✧房间购电信息表
房间购电量表包含“公寓号、房间号、总购电金额、初始电量、供电状态、补电量、退电量、用电累计、剩余电量、房间类型、通电日期、购电日期”等功能;
✧电量表
电量表包含“公寓号、房间号、房间状态、房间类型、初始电量、剩余电量、总购电量、总用电量、总退电量、供电状态”等功能;
✧权限表
包含“级别、权限”等功能,设置不用级别的权限不一样;
✧房间类型表
包括“房间号、购电单价、房间最大功率”等功能;
✧公寓表
公寓名称;
✧楼层表
公寓号;
✧房间表
包括“房间状态、楼层号、房间类型”等功能;
✧换房表
包含“公寓、楼层、房间号、房间类型、换房日期、换房原因”等功能;
✧操作日志表
包含“操作人、操作日期、事件”等功能;
✧登录日志表
包含“操作人、操作日期、事件”等功能;
✧退费表
包含“公寓、楼层、房间号、房间类型、退费日期、退费原因”等功能;
✧免费电量表
包含“公寓、楼层、房间号、房间类型、免费时长”等功能;
✧定时控电表
包含“公寓、楼层、房间号、房间类型、允许用电时长”等功能;
✧负荷表
包含“公寓、楼层、房间号、房间类型、最大负荷电量”等功能;
✧用户信息表
包含“用户名、登录密码、用户组号”等功能;
2.关键质量需求
1、控制功能:
欠费控制、定时控制、补助电发放、大功率过载控制、恶性负载控制、透支用电等。
2、查询功能(网络/电话查询):
用户用电情况查询、提示购电用户查询、各种财务报表查询、历史数据查询等。
3、系统设置功能:
系统初始化设置(建立数据库、楼宇设置、硬件设置、管理员设置)、用户初始化设置(用户入住、退房、换房)、控制参数设置(透支电量、提示电量、功率限制、定时时间等)。
4、保护功能:
系统防雷,接地保护、静电保护、信号干扰隔离保护等;
5、财务操作功能:
售电、月补电量、制作售电报表、用电日报表、月报表、年报表等。
6、学生宿舍用电计量计费:
学生通过管理器预交电费后,计算机直接将数据传给控电柜各个学生宿舍单位,系统对学生宿舍预存电量自动进行核减。
免费电量和付费电量单独统计,强行合闸之后所用电量仍从用户中扣除,避免管理部门的损失。
7、预购电量无费关断:
用户剩余电量为零时,系统自动切断该用户用电,用户重新购电后,系统立刻恢复对该用户的供电。
8、定时控电:
对用户用电进行时间上的控制,系统把定时控制时间设置到管理器上,管理器根据系统时间对所管辖的计量模块进行统一控制。
不同的管理器可以设定不同的时间。
9、免费基础电量设置:
系统可以按不同用户类型对用户每月的免费基础用电量进行分组设置。
此处的设置以管理器为单位进行设定。
10、调换进行数据转换:
当用户调换房间后,系统计算机上该用户宿舍的剩余电量进行数据转换。
11、退费管理:
用户需要退费时(学生毕业时),系统可打印出所有用户退费明细表。
12、用电储值查询:
管理部门可以随时到系统中查询用户宿舍各个阶段用电量及缴费信息并可以打印报表。
13、可实时功率显示功能:
通过操作管理软件可实时显示出用户的用电功率、功能因数等准确数据,大大方便了物业管理工作。
14、短路自动保护:
电表系统所用的空气开关采用国内知名品牌。
15、故障自动报警:
当用电系统发生故障、通讯不正常、用电用户关断失效时将自动报警。
16、24小时不停机全天候营业,支持中途调换操作员。
17、对帐户的各项操作可以逐一或批量进行。
18、掉电数据保护,断电恢复。
19、操作功能可分级、分权管理,管理和操作分开。
20、本系统能与校园一卡通系统无缝连接。
21、预付费管理基础上的多种可选管理模式;
A)、预付费管理,先购电后用电;
B)、先用电后交费,可为用户先预置最大电量;
C)、用电统计不断电;
22、最大用电功率设置及控制管理;
23、短信、电子邮件、可增加大屏幕设备,实现低电量通告;
24、数据存储、备份、运行日志、密码保护、分级授权;
25、当负载端短路时,能实现断电保护,还可查询每一户(宿舍)用电信息,还能实现全通全断或部分通断。
时段、时间计算机设定,系统自动执行断电动作。
26、电表具有低电量报警功能:
可设置报警电量,当用户剩余电量低于报警值时,电表报警,提示用户购电。
而无需对单元断电。
1)、显示屏显示报警
2)、利用用户宿舍电话报警
3)、系统自动打印报表后张贴公布
4)、数据管理器上蜂鸣器报警
27、恶性负载识别功能:
要求系统具备恶性负载识别功能,及时识别房间使用的违章电器(热吹风、热得快、电炉等违章电器),而正常学习设备负载在60A范围内能正常使用。
系统自动识别,自动断/送电;
28、双回路双控制功能,每个回路具备单独设立、定时通断、独立控制、负载识别功能,满足现代化公寓用电需求。
29、具有用电统计报表功能,预付费表应能够同后付费表一样对每户月用电量、累计用电量进行统计。
30、具有电价、电量调整功能,即当前电价变化时,用户剩余电量应根据电
价进行自动调整。
31、除联网功能外,具备实现“射频卡售电、查询、恢复供电”的功能,读卡器具有液晶显示屏,可实现剩余电量查询、参数设置、恢复供电等功能。
32、服务器数据存储:
为防止客户端数据丢失等情况发生,要求数据库可存放数据库服务器,与客户端分开存放,同时具备查询开放功能,方便多级管查询.
33、系统安全与数据安全设施
A、数据统计分析:
监控中断不仅可以提供用户购电电量,剩余电量等用电数据及历史记录,还可实现用电终端与总表的数据统计分析功能,便于物业的管理工作。
B、系统具备数据存储功能:
在系统掉电时,历史记录的存储时间不小于12个月,并具备数据备份功能。
恢复供电后,系统能自动对设备恢复供电。
C、负载控制及监测:
为保护主点网运行安全,防止主电网长期在超载或满负载情况下运行,系统对各用户可实现负载控制及监测。
34、可在线读取用户的用电状态:
通过操作管理软件可在线读取用户的用电状态,如果有断电用户,系统则自动分析出用户断电原因(强制关断、欠费关断、恶性负载识别、超功率、定时等),方便物业工作人员管理工作。
35、具有全屏监控功能:
可通过计算机对每个用户进行监控,第一时间掌握用户用电信息剩余电量,恶性负载情况。
36、数据导出功能:
随着用户用电时间的增加,管理中心计算机的用户用电数据也会增多,为了不影响计算机的运行速度,可以将用户用电数据导出以方便数据保存。
3.开发策略
软件复用策略
系统中重要基础构件应当具备较高的设计与构建质量,可以在产品中复用。
使用开源架构
程序研发结构采用B/S主流远程服务器通信方式,并以MyEclipse6.0作为开发平台,使用了Struts、Spring、hibernate等开发框架,采用MySQL作为数据库管理系统,采用Tomcat作为应用服务器。
(1)Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的(Servlet是Java技术对CGI编程的回答。
Servlet程序在服务器端运行,动态地生成Web页面。
与传统的CGI和许多其他类似CGI的技术相比,JavaServlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资;JavaServerPages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。
但是包括Servlet在内的大多数CGI技术及其变种,总是通过程序生成整个页面。
JSP使得我们可以分别创建这两个部分。
)。
(2)Spring的一个最大的目的就是使J2EE开发更加容易。
同时,Spring之所以与Struts、Hibernate等单层框架不同,是因为Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。
可以说Spring是一个提供了更完善开发环境的一个框架,可以为POJO(PlainOldJavaObject)对象提供企业级的服务。
(3)Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。
(4)Tomcat
自从JSP发布之后,推出了各式各样的JSP引擎。
ApacheGroup在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet,这样Tomcat就诞生了。
Tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品,同时它又是sun公司官方推荐的servlet和jsp容器,因此其越来越多的受到软件公司和开发人员的喜爱。
servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。
其次,Tomcat是完全免费的软件,任何人都可以从互联网上自由地下载。
Tomcat与Apache的组合相当完美。
Tomcat目录
Tomcat
|---binTomcat:
存放启动和关闭tomcat脚本;
|---confTomcat:
存放不同的配置文件(server.xml和web.xml);
|---doc:
存放Tomcat文档;
|---lib/japser/common:
存放Tomcat运行需要的库文件(JARS);
|---logs:
存放Tomcat执行时的LOG文件;
|---src:
存放Tomcat的源代码;
|---webapps:
Tomcat的主要Web发布目录(包括应用程序示例);
|---work:
存放jsp编译后产生的class文件;
四、用例视图
1.概述
用例视图从用户使用的角度描述系统构架的基本外部行为特性,通常包含业务用例模型与系统用例模型。
业务用例模型不适用于本系统,这里只关注系统用例。
这里选取了用例模型中对系统构架的内容产生重大影响的应用场景与用例集合,这些用例代表了系统主要的核心功能,决定了系统构架的基本组成元素。
有些用例强调或决定了构架的某些具体然而重要的细节,通常也可以列在本节内,总之所列的用例集合应基本覆盖系统构架的主要方面。
2.关键用例
◆用户表
用户信息表说明:
user
字段
字段含义
主键/外键
字段类型
是否为空
id
自动增长
主键
Int(11)
Notnull
username
用户名
Varchar(30)
Notnull
password
登录密码
Varchar(40)
Notnull
user_group_id
用户组号
外键
int(11)
Notnull
◆用户组
用户组表说明:
group
字段
字段含义
主键/外键
字段类型
是否为空
id
自增ID
主键
Int(11)
Notnull
type
组类型(系统管理员/操作员)
Varchar(30)
Notnull
jurisdiction_id
级别号
外键
int(11)
Notnull
◆权限表
权限表说明:
jurisdiction
字段
字段含义
主键/外键
字段类型
是否为null
id
自动增长编号
主键
Int(11)
Notnull
grade
级别(1级/2级/3级)
Varchar(30)
Notnull
jurisdiction
权限
Varchar(500)
Notnull
◆
房间类型表
房间类型表说明:
room_type
字段
字段含义
主键/外键
字段类型
是否为null
id
自增ID
主键
Int(11)
Notnull
type
房间类型
Varchar(40)
notnull
purchase_price
购电单价
Varchar(30)
Notnull
max_rate
房间最大功率
Varchar(30)
Notnull
◆公寓表
公寓表说明:
apartment
字段
字段含义
主键/外键
字段类型
是否为空
id
自增ID
主键
Int(11)
Notnull
name
公寓名称
Varchar(20)
Notnull
◆楼层表
楼层表说明:
floor
字段
字段含义
主键/外键
字段类型
是否为null
id
自增ID
主键
Int(11)
Notnull
apartment_id
公寓号
外键
Int(11)
Notnull
◆
房间表
房间表说明:
room
字段
字段含义
主键/外键
字段类型
是否为空
id
编号,自动增长
主键
Int(11)
Notnull
floor_id
楼层号
外键
Int(11)
Notnull
type_id
房间类型
外键
Int(11)
Notnull
room_state
房间状态
Varchar(30)
Notnull
◆电量表
电量表说明:
electric
字段
字段含义
主键/外键
字段类型
是否为null
id
自增ID
主键
Int(11)
Notnull
apartment_id
公寓号
外键
Int(11)
Notnull
room_id
房间号
外键
Int(11)
Notnull
room_state
房间状态
Varchar(20)
Notnull
type_id
房间类型
外键
Int(11)
Notnull
initial
初始电量
Varchar(20)
Notnull
residue
剩余电量
Varchar(20)
Notnull
total_buy
总购电量
Varchar(20)
Notnull
total_apply
总用电量
Varchar(20)
Notnull
total_quit
总退电量
Varchar(20)
Notnull
power_supply
供电状态
Varchar(20)
Notnull
◆房间购电信息表
房间购电信息表说明:
purchase
字段
字段含义
主键/外键
字段类型
是否为null
id
自增ID
主键
Int(11)
Notnull
apartment_id
公寓号
外键
Int(11)
Notnull
room_id
房间号
外键
Int(11)
Notnull
purchase_money
总购电金额
Int(11)
Notnull
initial
初始电量
Varchar(20)
Notnull
power_supply
供电状态
Varchar(20)
Notnull
repair
补电量
Varchar(20)
Notnull
quit
退电量
Varchar(20)
Notnull
total
用电累计
Varchar(20)
Notnull
residue
剩余电量
Varchar(20)
Notnull
type_id
房间类型
外键
Int(11)
Notnull
purchase_date
通电日期
Varchar(40)
Notnull
buy_date
购电日期
Varchar(40)
Notnull
◆操作日志表
操作日志表说明:
login_log
字段
字段含义
主键/外键
字段类型
是否为null
id
自增ID
主键
Int(11)
Notnull
name
操作人
Varchar(20)
Notnull
date
操作日期
Varchar(40)
Notnull
event
事件
Varchar(50)
Notnull
◆登录日志表
登录日志表说明:
operate_log
字段
字段含义
主键/外键
字段类型
是否为null
id
自增ID
主键
Int(11)
Notnull
name
操作人
Varchar(20)
Notnull
date
操作日期
Varchar(40)
Notnull
event
事件
Varchar(50)
Notnull
◆系统参数表
系统参数表说明:
system
字段
字段含义
主键/外键
字段类型
是否为null
id
自增ID
主键
Int(11)
Notnull
min
电量下限
Varchar(20)
Notnull
hint
提示电量
Varchar(20)
Notnull
quit_price
退电单价
Int(11)
Notnull
power
功率限制
Varchar(20)
Notnull
num
断电次数
Int(11)
Notnull
buy_price
购电电价
Int(11)
Notnull
◆换房表
换房表说明:
trade
字段
字段含义
主键/外键
字段类型
是否为null
id
自增ID
主键
Int(11)
Notnull
apartment_id
公寓
外键
Int(11)
Notnull
floor_id
楼层
外键
Int(11)
Notnull
room_id
房间号
外键
Int(11)
Notnull
type_id
房间类型
外键
In