作者:李伟强李栋白耀慧龚晶柴炳荣
论文关键词:家庭自动化系统软件工程
论文摘要:以计算机和现代网络技术为特征的现代信息技术促进了社会经济的发展,也极大地加快了家用电子电器产品迈向家庭自动化(homeautomation)的步伐。建立和开发家庭自动化系统旨在适应现代人民的生活信息化和对家居产品信息化的需要。
本文根据家庭自动化系统的开发特点,遵从软件工程原理,按照软件工程设计的步骤,进行了问题定义、可行性分析、需求分析等几个重要的研究。在对系统进行非功能性和功能性需求分析的基础上,本文重点研究了如何设计家庭自动化系统。
最后对系统的设计和实现方案进行了总结,为下一步研究奠定了基础,同时也为我国家庭自动化系统信息化建设具有一定的借鉴意义。
一、问题定义
(一)、引言及相关背景
自动化在各行各业、各个领域都发挥了其巨大的作用,同时也走入了我们的家庭。随着电子技术的发展,家庭自动化时代的来临,消费电子产品(consumerelectronics)已与咨讯(computer)、通讯(communication)两项产品的技术结合在一起,成为目前所通称的3c产品,并使家用电子电器产品迈向家庭自动化(homeautomation)的方向。wwW.133229.cOm
随着全球经济的不断发展,我国的市场经济也飞速发展,人民生活水平不断提高,家庭自动化系统在美国以及国际市场都具有广阔的前景,在中国市场也是快速形成期,这些提高人类生活质量的产品将构成世界范围内后pc时代的新兴it市场。
(二)、任务描述1、专案背景
项目名称:家庭自动化系统(homeautomationsystem,简称has)
项目委托单位:xxx智能家居设备公司
软件开发单位:兰州商学院06级计算机科学与技术(1)班软件开发小组
2、目的
本系统要求能够实现家庭住宅中各个设备的自动管理和人工个性管理,该系统能控制、监视和协调家电(如室内外照明、家庭保安系统、家庭环境控制系统、空调、电视机等)。该系统会在相应的时间内各个设备发出相应的指令,完成各个设备的自动化管理。该系统应该是可以适应变化的,因此,必须侦测环境的变化,而且通过识别本系统中的变化来转变,并且所识别出的变化应该在系统中被实现。系统可以是自动适应变化或是手工适应变化。系统控制的任何设备发生异常,必须通过适当的信息来通知用户并进行异常处理。该系统必须有一个数据库,内含所有该系统所控制的设备的信息,包括每一种设备连接到系统的日期,系统用户所发布的重要动作等信息。
3、运行环境
本系统是设备控制类系统,由主机通过相应的接口部件监听和控制各个硬设备。数据库服务器由sqlserver实现。操作系统:windows2000、windowsxp以上;数据库服务器端软件sqlserver2005。
(三)、功能描述
本系统由“灯光控制”、“保安控制”、“环境控制”、“家电控制”、“用户登录及管理”等各模块组成。
灯光控制:实现对室内外所有灯光的时间周期性控制和用户的直接控制;
保安控制:实现对室内外所有视频监控设备的周期性工作控制及异常处理,和防盗防火设备的控制及异常处理;
环境控制:实现对家庭环境设备(包括花园、阳台、室内温湿度报告)的时间周期性控制以及各设备的异常处理;
家电控制:实现对家庭中各个智慧家用电器的人性化控制及各设备的异常处理;
用户登录及管理模块:实现用户对各个模块中所用设备的时间周期性定义以及对各个设备的直接管理和控制。
二、可行性分析
(一)、可行性研究的前提
家庭是高薪技术的下一个前沿阵地。对家庭中遥控、自动化和娱乐的要求呈上升态势。消费者希望自己的日常生活更简便、更安全。当然,优秀的家庭自动化产品应给具有以下的特性:
(1)、标准化:家庭自动化产品应依照国际上流行的相关协议进行设计,充分保证各厂家产品间的兼容性和相互操作能力。
(2)、开放性:家庭自动化系统应该具有开放的协议,统一的接口。
(3)、模块化:采用模块化的设计可以适应各种场合的需要,保障用户的利益,并允许系统的逐步到位。
(4)、实用性:家庭自动化产品应该切实地为用户提供各种实用化的功能和服务。
(5)、普及化:家庭自动化系统应该面向低成本,高性能的目标设计,住户对价格较为敏感,所以智能住宅采用的技术要较为经济。同时,家庭自动化系统应该能最大程度兼容用户原有的电器设备,保护用户投资。
(6)、简洁易用:好的家庭自动化产品应该简便易用、用户接口友好,并且不需要使用者花上太多的精力就能掌握。
(二)、优越性
在国内家庭自动化是一个较新的概念,虽然越来越多的厂家开始投入到家庭自动化的来发和生产中,但是由于没有统一的标准,尚处于一家一户自行开发的局面。而随着房屋的商品化,从而加强了人们对居家的要求,希望一步到位或者具有开放的协议,统一的接口,这样来保证产品能不断地适应未来发展趋势,而本系统就是基于统一的标准和接口设计的,具有充分的发展潜力。
(三)、基本的数据流图
图1、has的基本数据流模型图
图2、has的一级数据流模型图
图3、has的二级数据流模型图
(四)、经济可行性
1、支出
构建系统时的金费主要有:用户在要购买日常生活中的家电及各种电子产品是花费一定数额的资金,在购买组成系统的一些小型物理器件时会有资金的支出。
2、效益
可以高效,快捷的管理生活家电设施,提高生活的质量。
3、收益、投资比良好、可行。(五)、技术可行性
本系统有许多不同的传感器,单片机和输出报警系统以及一些异常的自动处理系统和接入的各种家电设备组成。物理设备在市场上均有售,因此,物理设备上不用多考虑,我们主要实现将不同设备按照一定的结构连接起来,使之能够完成我们的预期目标
(六)、社会因素可行性分析
1、法律因素
申请法律保护或相关保险。
法律可行性是考虑要开发系统是否存在任何侵犯、妨碍和责任问题,用户操作可行性考虑待开发软件的运行方式在用户组织内是否行得通,现行管理制度、人员素质、操作知识是否可行。
由于在本系统中是有合同作为双方合作的基础,所以不会存在任何侵犯、妨碍和责任问题。即使存在了,也可以根据合同进行分析,一定有人会负责任,所以此系统完全可以进行开发。
2、用户使用可行性
本系统面向中高阶层的人们消费,主要用于用户实现对家电的统一管理,进行各种相关操作并对家电的状态进行实时检测。
由以上经济、技术、操作和法律四方面的分析可以看出,本系统的开发时机成熟,从多种角度考虑,都是可行的。
(七)、结论
经过以上经济可行性、技术可行性以及法律因素各个方面的研究分析得出,本系统可行。
三、需求分析
(一)、家庭自动化系统工作流程分析
(1)、在用户登录时进行检查,控制不同的用户使用系统的权限;
(2)、对用户的管理,包括对用户信息的增加、删除和修改;
(3)、对指定时间内的操作记录进行管理,包括查看操作记录、手工删除操作记录、记录一次操作以及对失效的记录进行自动清除;
(4)、查看设备的状态,包括对连接到系统控制中的所有设备的状态以及是否出现异常现象进行查看;
(5)、控制子系统接受主系统发送的信息;以及向主系统发送信息;控制子系统将主系统发送的信息,发送给指定的设备;
(6)、对设备进行监控,包括启动监控设备、停止监控设备、监控设备;
(7)、对系统中的设备进行管理,包括增加设备以及删除己经连接到系统中的设备;
(二)、家庭自动化系统需求分析
1、家庭自动化系统的非功能性需求分析
设计家庭自动化系统的目的是完成对家电产品以及相关设备的管理和控制,达到远程控制和使用家电设备的目的,其最终目的是提高人类的生活质量,因此需要具备良好的性能,满足实际工作的需要是十分必要的。
家庭自动化系统的具体性能目标如下:
(1)、系统的快速反应
家庭自动化系统首先要保证的就是系统的反应速度。在设计与实施中采用先进的网络技术和系统,并在应用软件的选择或编制中尽可能采用先进的技术,最大限度地提高系统的响应速度,以便于快速查询。
(2)、系统良好的可维护行和开放性
系统设计应面向未来的发展,提供各种必要的标准接口,以使用户可以根据需要随时添加必要的设备和系统,扩充系统功能。要充分考虑到家庭自动化的发展趋势以及不断变化。
(3)、充分保证系统的安全性
家庭自动化系统中设备的使用具有安全性要求,因此,必须建立一整套的系统安全保密措施,规定一系列访问系统的不同级别的权限,杜绝非法访问。
(4)、友好的人机界面
系统的用户不可能是专业的计算机技术人员,甚至对计算机了解甚少,所以要提供清晰、友好的系统接口,提高系统的可操作性和人机交互功能,最大限度地方便用户的使用。同时系统应能提供的方便的联机再现帮助功能。
(5)、考虑家庭自动化系统中设备发生变化以后的集成
家庭自动化要实现真正的信息化,必须考虑以后系统的集成问题,这样才能使系统不至于很快的就被淘汰。
2、家庭自动化系统的功能模块分析
家庭自动化系统旨在开发出一个符合人类生活需求的家庭自动化模拟系统,该系统主要分为五个子系统:用户登录子系统,灯光控制子系统,家电控制子系统,环境控制子系统和保安控制子系统。
(三)、数据描述1、静态数据
系统中预存的各种标准数据。
2、动态数据
(1)、输入数据
系统所采集的各个实体设备的信息流。
(2)、输出数据
经过各个子系统处理后的对应到各种设备的具体操作的信息流。
3、数据词典。
数据名称:家庭自动化系统
简述:由系统管理员来负责对连接在系统中的各种家电实施具体动作。
数据条目:
系统管理要求=[用户管理|灯光控制|家电状态监测|环境监测|保安控制]
用户管理=登录+用户信息+用户权限
灯管控制=室内灯光+室外灯光
家电状态监测=接入家电数目+家电功能+家电当前状态
环境监测=温度+湿度+调节
保安控制=门窗监控+视频监控
数据文件={用户管理+灯光控制+家电状态监测+环境监测+保安控制+核心子系统+日常报表|文件}
数据量:2000次/天
峰值:每天18:00—20:00有1000次
图4、has的层次方框图
图5、家庭自动化系统的数据流图
四、总体设计
(一)、处理流程
(1)在用户登录时进行检查:控制不同的用户使用系统的权限。
(2)对用户的管理:包括对用户信息的增加、删除和修改。
(3)对指定时间内的操作记录进行管理:包括查看操作记录、手工删除操作记录、记录一次操作以及对失败的操作记录进行自动清除。
(4)查看设备的状态:包括对连接到系统控制器中的所有设备的状态以及是否出现异常现象进行查看。
(5)控制子系统接受主系统发送的信息;以及向子系统设备发送信息;控制子系统将子系统发送的信息发送给指定的设备。
(6)对设备进行监控:包括启动监控设备、停止监控设备、监控设备中。
(7)对系统中的设备进行管理:包括增加新设备以及删除已经连接到系统中的设备。
(二)、总体结构和模块外部设计
在应用系统总体设计中,以servlets为前端控制器,负责管理用户的登录,以及数据的获取等。以会话bean实现系统的工作流,将会话bean作为一个外观,来封装应用程序的业务逻辑,业务逻辑再通过实体bean组件来操作相关数据,从而形成has系统的总体结构体系。
图6、系统总体设计结构
(三)、接口设计1、用户接口
本系统的用户界面如下所示:
shape\*mergeformat
图7、用户登录界面
2、外部接口
本系统采用基于c/s模式的系统主机和系统终端的结构,接口设备不仅要完成系统主机与各个终端之间的标准化物理连接之外,还要完成数据在系统主机和各个终端之间的传送。故接口采用集成式、标准化的设备来完成,实现其功能。
(四)、数据结构设计
1、数据库三级模式结构
数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。
其中模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。内模式也称存储模式,它是数据物理结构和存储结构的描述,是数据在数据库内部的表示方式。数据库的三级模式是对数据的三个抽象级别,它把数据的具体组织留给dbms管理,使用户能逻辑的抽象的处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在内部实现这三个抽象层次的联系与转换,数据库系统在这三级模式之间提供了两层映像:外模式|模式映像和模式|内模式映像。正式这两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
影响一个系统性能的主要因素是数据库性能和客户端程序设计,所以进行数据库的设计与整个系统的性能、升级等都息息相关,在数据库设计时,要考虑的主要原则有:
(1)、命名的格式规范:为了便于系统适应不同的数据库,数据库中各种对象的命名应采用大小写敏感的形式。
(2)、索引的使用:合理使用索引,如表的规模不大、表需要频繁更新、以及查询字段不确定时,尽量不用索引。
(3)、数据的一致性和完整性:为了提高系统的响应速度,合理的冗余是必要的,所以设计时,要用有效手段保证数据的一致性和完整性。
(4)、数据库性能的调整。
2、主要表结构
将对象模型映射成数据库模型,也就是向数据表转换。转换方式如下:
(1)、一个对象类可以映射为一个以上的库表,当类间有一对多的关系时,一个表也可以对应多个类。
(2)、关系的映射可能有多种情况,但一般映射为一个表,也可以在对象类表间定义相应的外键。对于条件关系的映射,一个表至少应有三个属性。
(3)、减少表之间的冗余字段。
(4)、映射后的表进行冗余控制调整,使其达到合理的安息范式,一般达到3nf即可。
在映射应用对象时,除关系映射规范化后可能出现一对多的表映射外,大多数应用对象与表对象是一一对应的。可以将规范化处理后,有一个应用对象映射出来的多个表看成一个数据库对象。因此当部分应用需求变更时,首先,系统修改可以不涉及需求不变更的部分,其次,变更部分的修改可以基本上只限于追加或删除程序模块或追加新库表,而基本上不必修改原有程序代码或原有库表定义,从而大大减少了工作量,降低了工作难度。
根据对系统所进行的分析,以及对未来系统的扩展考虑,确定数据库中的主要数据表有以下几个:
表1、用户信息表(user–info)
名称
代码
主要的
数据类型
长度
用户代码
user-id
true
varchar(20)
20
用户类型
user-type
false
char(1)
1
用户密码
password
false
varchar(8)
8
用户名称
user-name
false
varchar(40)
40
用户手机号码
mobileno
false
varchar(20)
20
名称
代码
主要的
数据类型
长度
操作内容
message
false
varchar(300)
300
录入时间
inputtime
true
timestamp
名称
代码
主要的
数据类型
长度
家电代码
applianceid
true
varchar(10)
10
家电名称
appliancename
false
varchar(20)
20
家电通讯地址
address
false
varchar(20)
20
家电通讯端口
port
false
int
加入系统时间
inputtime
false
timestamp
名称
代码
主要的
数据类型
长度
家电代码
applianceid
true
varchar(10)
10
状态
state
false
char(2)
2
状态变更时间
updatetime
false
timestamp
(五)、运行设计