家庭自动化系统
作者:李伟强李栋白耀慧龚晶柴炳荣
论文关键词:家庭自动化系统软件工程
论文摘要:以计算机和现代网络技术为特征的现代信息技术促进了社会经济的发展,也极大地加快了家用电子电器产品迈向家庭自动化(homeautomation)的步伐。建立和开发家庭自动化系统旨在适应现代人民的生活信息化和对家居产品信息化的需要。
本文根据家庭自动化系统的开发特点,遵从软件工程原理,按照软件工程设计的步骤,进行了问题定义、可行性分析、需求分析等几个重要的研究。在对系统进行非功能性和功能性需求分析的基础上,本文重点研究了如何设计家庭自动化系统。
最后对系统的设计和实现方案进行了总结,为下一步研究奠定了基础,同时也为我国家庭自动化系统信息化建设具有一定的借鉴意义。
一、问题定义
(一)、引言及相关背景
自动化在各行各业、各个领域都发挥了其巨大的作用,同时也走入了我们的家庭。随着电子技术的发展,家庭自动化时代的来临,消费电子产品(consumerelectronics)已与咨讯(computer)、通讯(communication)两项产品的技术结合在一起,成为目前所通称的3c产品,并使家用电子电器产品迈向家庭自动化(homeautomation)的方向。
随着全球经济的不断发展,我国的市场经济也飞速发展,人民生活水平不断提高,家庭自动化系统在美国以及国际市场都具有广阔的前景,在中国市场也是快速形成期,这些提高人类生活质量的产品将构成世界范围内后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
表2、操作日志表(operate-log)
名称
代码
主要的
数据类型
长度
操作内容
message
false
varchar(300)
300
录入时间
inputtime
true
timestamp
表3、家电信息表(appliance-info)
名称
代码
主要的
数据类型
长度
家电代码
applianceid
true
varchar(10)
10
家电名称
appliancename
false
varchar(20)
20
家电通讯地址
address
false
varchar(20)
20
家电通讯端口
port
false
int
加入系统时间
inputtime
false
timestamp
表4、家电状态表(appliance-state)
名称
代码
主要的
数据类型
长度
家电代码
applianceid
true
varchar(10)
10
状态
state
false
char(2)
2
状态变更时间
updatetime
false
timestamp
(五)、运行设计
(1)、系统用户或者一般用户通过登录程序login登录到has系统中。
(2、用户通过菜单(主菜单main;以及用户菜单user;家电设备管理菜单appliance;操作记录日志管理菜单log)选择要执行的操作。
(3)、用户从子系统传送过来的请求,通过服务器端控制程序hasserver进行解析,并且发送到相应的类,并将处理结果返回给主系统。
(六)、出错处理设计
当系统在执行中间发现有异常情况发生或被要求执行异常操作,系统要能自动检测到并进行相应的处理或形成报告返回给用户进行相关处理会恢复操作。
1、出错输出信息
在系统进行完相关解析后形成日志保存,并有提示信息被显示给用户或系统操作员。
2、出错处理对策
(1)、联机事务处理(olap)是建立在tcp/ip协议上,有多阶段事务处理响应控制,保证事务处理前后台一致性。
(2)、数据库处理事务失败自动回滚技术,保证数据库表的数据一致性和完整性。
(3)、重要数据的校验检查。
(4)、各个子系统的操作监控,异常情况报告;并提供报表等跟踪记录。
(5)、提供友好的用户界面和帮助信息及配合严格的检查,减少用户出错机会。
五、详细设计
(一)、软件结构
图9、系统用例图
(二)、程序描述
面向对象程序设计的基本思想
(1)、面向对象的由来和发展
对象代表着待处理问题中的一个实体,在处理问题过程中,一个对象可以以某种形式与其他对象通信。从概念上讲,一个对象是既包含数据又包含处理这些数据操作的一个程序单元。类用来描述特性相同或相近的一组对象的结构和行为。该语言还支持类的继承,可将多个类组成为层次结构,进而允许共享结构和行为。
后来出现的smalltalk语言是第一个比较成功的面向对象语言,对后来面向对象语言的发展产生过重大影响。该语言丰富了simula中类和对象的概念,信息也更加隐蔽,程序设计就是向对象发送信息。20世纪80年代以后,面向对象的程序设计语言广泛应用于程序设计,并且有许多新的突破。特别是随着操作系统和软件项目日益庞大,人们日益需要一种更高效的开发方式,这更加推动了面向对象语言的发展。
(2)、面向对象的要素
面向对象的系统包含了3个要素:对象、类和继承,这3个要素反映了面向对象的传统观念。面向对象的语言应该支持这3个要素。首先,应该包括对象的概念。对象是状态和操作的封装体,状态是存储操作结果的。满足这一点的语言被认为是基于对象的语言。其次,应该支持类的概念和特征,类是以接口和实现来定义对象行为的样板,对象是由类来创建的。支持对象和类的语言被认为是基于类的语言。最后,应该支持继承,已存在的类具有建立子类的能力,进而建立类的层次。支持上述3个方面的语言称为面向对象的语言。
(三)、功能
本系统由灯光控制、保安控制、环境控制、家电控制、用户登录及管理等各模块组成。
灯光控制:实现对室内外所有灯光的时间周期性控制和用户的直接控制;保安控制:实现对室内外所有视频监控设备的周期性工作控制及异常处理,和防盗防火设备的控制及异常处理;环境控制:实现对家庭环境设备(包括花园、阳台、室内温湿度报告)的时间周期性控制以及各设备的异常处理;家电控制:实现对家庭中各个智慧家用电器的人性化控制及各设备的异常处理;用户登录及管理模块:实现用户对各个模块中所用设备的时间周期性定义以及对各个设备的直接管理和控制。
本系统将采用面向对象程序设计的基本思想编写各个模块的程序,实现其应用的各项功能。
(四)、程序逻辑
图10、用户登录模块程序流程图
图11、灯光控制模块程序流程图
图12、家电控制模块程序流程图
(五)、接口
本系统采用基于c/s模式的系统主机和系统终端的结构,接口设备不仅要完成系统主机与各个终端之间的标准化物理连接之外,还要完成数据在系统主机和各个终端之间的传送。故接口采用集成式、标准化的设备来完成,实现其功能。
(六)、测试要点
本系统的最终实现是将各个信号作用于各个实体,即各个家电设备包括照明灯、空调、洒水喷头、门窗监听器、摄像头等具体设备。所以系统测试时,可模拟具体设备的状态信号,将这些模拟的状态信号作用于本系统中,达到测试的目的。
六、软件测试
(一)、测试计划
1、测试方案
本系统的最终实现是将各个信号作用于各个实体,即各个家电设备包括照明灯、空调、洒水喷头、门窗监听器、摄像头等具体设备。所以系统测试时,可模拟具体设备的状态信号,将这些模拟的状态信号作用于本系统中,达到测试的目的。
2、测试项目
主要对各个控制子系统进行模拟测试,包括灯光控制子系统、家电控制子系统、环境控制子系统和保安控制子系统。
(二)、测试用例
1、输入
输入各种模拟设备所能出项的所有信号量值,查看系统反馈。
2、输出
首先列出对应的输入所预期的系统输出值,再从系统中获取的实际值做比较,分析误差。
3、允许偏差
给出实测结果与预期结果之间允许偏差的范围。
(三)、评价
最终经测试得出本系统良好。
七、总结和展望
(一)、总结
针对目前国内的现状,房屋的商品化,人民的生活水平日益提高,信息化产业深入到各行各业,智能家具的要求越来越高,人民希望生活在一个以住宅为平台、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境。本系统就是利用先进的计算机技术将与家居生活有关的各种设备、家电有机地结合在一起,通过统筹管理,让家居生活更加舒适、安全、有效。通过该系统可以模拟对空调等家用设备的控制。
本课题创建一个系统控制的家庭自动化系统has。是家庭自动化系统的一个原型。该系统能控制、监控和协调家电(如空调、洒水装置),同时该系统能适应变化的。通过识别出has中的变化来转变,而且所识别出的变化应该在系统中被实现。本中系统用自动适应变化和手工适应变化两种方式来实现。对于发生了故障的家电,系统通过适当的信息来通知进行故障处理。
(二)、展望
该系统还存在一系列需要优化和改善的地方,如该系统能实现的家电控制目前仅仅添加了三种家电,而且家庭自动化系统不仅仅要实现对家电和设备的管理,还应该能够和其他系统进行连接。如小区的报警系统等。以及火警的监控等。系统对硬件方面涉及较少,如家居系统的布线等。
希望本系统的进一步开发能使国内企业在生产过程中,缩短研制周期,加快产品上市时间,减小前期投资风险,从而在激烈的市场竞争中取得优势地位。同时希望本系统的开发能起到一个抛砖引玉的作用,在不久的将来,市场上能看到国内厂商生产的优秀的自动化产品。
参考文献
[1]李云洪.《家庭自动化系统的研究与实现》[a].同济大学工程硕士学位论文,2006
[2]张海藩.《软件工程导论》[m].北京:清华大学出版社,2008.2-5