SafeHome软件工程概要设计.docx
《SafeHome软件工程概要设计.docx》由会员分享,可在线阅读,更多相关《SafeHome软件工程概要设计.docx(19页珍藏版)》请在冰豆网上搜索。
![SafeHome软件工程概要设计.docx](https://file1.bdocx.com/fileroot1/2023-1/5/67bb91b2-b5f7-49bd-bd85-e668ec2ec391/67bb91b2-b5f7-49bd-bd85-e668ec2ec3911.gif)
SafeHome软件工程概要设计
实验报告
(2012/2013学年第二学期)
课程名称
软件工程
实验名称
safehome系统概要设计说明书
实验时间
2013
年
5
月
12
日
指导单位
南京邮电大学计算机学院
指导教师
刘志鹏
学生姓名
班级学号
实验小组成员
学院(系)
通达学院
专业
计算机通信
1功能模块分析3
2引言3
2.1原始需求4
2.2开发目的4
2.3项目背景4
2.4开发环境4
2.5参考资料4
3总体设计4
3.1处理流程4
3.2总体结构和模块外部设计6
3.2.1总体结构6
3.2.2外部模块设计11
4数据结构设计15
4.1逻辑结构设计15
4.2物理结构设计17
4.3数据结构与程序的关系17
5运行设计18
5.1运行模块的组合18
5.2运行控制19
5.3运行时间19
6出错处理19
6.1出错输出信息19
6.2出错处理对策19
1.功能模块分析
序号模块名称功能简述
住宅安全功能烟火监测,水位监测,行人运动,Internet网上修改等
住宅监视功能通过摄像头对住宅监视、记录监视、Internet查看
住宅管理功能用具、家电控制,度假/外出模式
通信管理功能自动应答机功能,电子邮件,个人电话本,PDA连接
2.引言
2.1原始需求
1)对safehome(住宅安全)系统进行设计建模,形成概要设计说明书,可以包括部署图、体系结构模型图、safehome部分系统的OCL描述等,以及相关的文字说明。
2)行为模型:
某分析类的状态图、某功能的顺序图。
2.2开发目的
根据《需求规格说明书》,在仔细考虑讨论之后,我们又进一步对《SafeHome》软件的功能划分、数据结构、软件总体结构、数据库有了进一步的认识。
我们把讨论的结果记录下来,作为概要设计说明书,并做为进一步详细设计软件的基础。
2.3项目背景
在计算机技术日益普及的今天,传统的家庭生活模式已经融入了计算机,网络,通信等方面的技术,尤其当今国家对物联网的大力支持、引导,发展新型、智能、安全的家庭模式变得尤为重要。
SafeHome系统软件SFHV1.0是一套功能比较完善的数据管理软件,具有数据操作方便高效迅速等优点。
该软件采用功能强大的数据库软件开发工具进行开发,具有很好的扩展性,可在应用范围较广的Linux,WINDOWS系列等操作系统上使用。
。
2.4开发环境
●一台或多台pc电脑,各种壁挂和/或手持控制面板、各种传感器和用具/设备控制器。
●通过无线协议(802.11b)通信,将在新房屋或者房屋内使用。
●除了新的无线盒之外,所有硬件都不需要单独定制。
2.5参考资料
(1)教材(有safehome系统多处介绍,可归纳整理形成报告的部分内容);
(2)图书馆系统的概要设计说明样本;
(3)社区医院系统的概要设计说明样本;
(4)几道课堂相关讨论题。
(5)《软件工程》RogerS.Pressman著郑人杰马素霞译,机械工业出版社
(6)《软件工程初级教程》陶华亭主编,清华大学出版社
(7)《软件工程:
theoryandpractice》(美)ShariLawrencePfleeger,(加)JoanneM.Atlee著,人民邮电出版社
3.总体设计
3.1处理流程
1.住宅安全流程:
2.住宅监视管理流程
3.通信管理功能
3.2总体结构和模块外部设计
3.2.1总体结构
项目主模块
系统维护模块
1)住宅安全结构
2)住宅监视结构
图:
住宅监视功能图例
3.2.2住宅监视功能:
a)连接安装在屋内/屋外的一个或多个摄像头
b)摄像头全景/缩放控制
c)设置摄像头监视范围
d)在PC上显示监视图像
e)通过Internet查看监视图像
f)可选择数字化记录摄像内容
g)摄像内容重放
3.2.3系统启动的使用实例
1.房主观察SafeHome系统的控制面板以确定系统是否已准备好接收输入,如果未准备好,房主必须关闭窗户/门,以使系统就绪。
(未准备好的指示器表明某传感器是开着的,即某道门或窗户是开着的。
)
2.房主使用键盘键入四位密码,和存放在系统中的合法密码比较如果密码不符,控制面板将鸣叫一次并复位等待再次输入。
如果密码正确,控制面板等待进一步的动作。
3.房主选择并键入stay或away以启动系统,stay仅仅启动外围传感器(不启动内部的运动检测传感器),away启动所有传感器。
4.当启动进行时,房主可以观察到一个红色警灯。
以类似的方式开发其他的房主交互的使用实例。
要注意,必须仔细地复审每个使用实例。
如果交互的某些元素是含混不清的,对使用实例的复审将可能指出问题。
每个使用实例提供了参与者和软件间交互的明确的场景,它也用于刻划时序需求或对场景的其他约束。
3.2.4启动监视功能
在用户输入密码后,屏幕将显示所有的SAFEHOME功能,用户可选择住宅监视功能,系统可能会要求我确认我是谁,要求我的地址或电话号码或其他什么,然后显示一张图片监视功能:
允许房主远距离检查房屋,记录并回放捕获的录像,录像数字的,保存在硬盘上
图:
监控传感器精化后的程序结构
3.2.5显示摄像头视图
如果房主位于远方,房主可以使用任何计算机上的合适的浏览器软件登陆SAFEHOME产品网站。
输入房主的用户ID和两极密码,一旦被确认,房主就可以访问已安装的SAFEHOME系统的所有功能。
为取得每个摄像头视图,从显示的主功能按钮中选择“监视”,然后选择“选取摄像头”,将会显示房屋内平面的设计图,再选择感兴趣的摄像头。
另一种可选的方法是通过选择了“所有摄像头时”可以同时从所有的摄像头查看缩略视图快照。
当选择了某个摄像头时,可以选择“查看”,然后以每秒一帧速度显示的图像就可以在窗口中显示。
如果希望切换摄像头,选择“选择摄像头”,原来窗口信息消失,并且再次显示房间平面设计图,然后就可以选择感兴趣的摄像头,以便显示新的查看窗口。
3.2.6监视功能的用例模板
用例:
访问摄像头监视设备—显示摄像头视图
主参与者:
房主
环境目标:
从任何远程地点通过Internet查看遍布房间的摄像头输出
前提条件:
系统必须被完整配置;必须获得正确的用户ID和密码
触发器:
房主出门在外是决定查看房屋内部
场景:
1.房主登录SafeHome产品网站
2.房主输入用户ID
3.房主输入两个密码
4.系统显示所有的主要功能按钮
5.房主从主要功能按钮中选择“监视”
6.房主选择“选取摄像头”
7.系统显示房屋的平面设计图
8.房主从房屋的平面设计图中选择某个摄像头图标
9.房主选择“视图”按钮
10.系统显示一个由摄像头ID确定查看窗口
11.系统在查看窗口中每秒一帧显示视频输出
出现异常及解决方案:
1.ID或密码不正确或不被识别----阅读用例:
“确认ID和密码”
2.没有为该系统配置监视功能----系统显示恰当的错误消息,阅读用例:
“配置监视功能”
3.房主选择“查看所有摄像头的缩略图快照”----阅读用例:
“查看所有摄像头缩略视图快照”
4.平面设计图不可用或还没有配置----显示恰当的错误消息,阅读用例:
“配置平面设计图”
5.满足报警条件----阅读用例:
“满足报警条件”
3)住宅管理模块
3.2.7外部模块设计
1.主模块:
输入:
操作系统传递至的各种消息以及用户的输入数据;
输出:
主界面显示;
2.住宅安全查询功能:
输入:
需要查询监视器的编号;
输出:
监视器的工作状态,当前的状态参数界面;
3.传感器解除/启用模块:
输入:
需要设定传感器的编号及参数;
输出:
传感器关闭/开启后的状态界面;
4.功能退出模块:
输入:
无
输出:
显示主界面功能界面;
5.更改口令模块:
输入:
用户的操作输入
输出:
操作结果显示
6.住宅管理查询功能
输入:
选择需要查看的区域
输出:
查看区域的工作状态,出现问题的,进行相关的处理
7.退出系统模块:
输入:
无
输出:
提示系统退出界面;
3.3功能分配
浏览查看:
住宅安全查询模块住宅管理查询模块
打电话模块
查询功能:
系统维护模块住宅安全查询模块
住宅管理查询模块
留言查询邮件查询
修改功能:
更改口令模块解除/启用模块
关闭/启用相关模块系统对局区域的维护模块
邮件功能:
发送邮件接收邮件
删除功能:
系统维护模块
插入功能:
住宅新进入物件插入模块
3.4接口设计
3.4.1外部接口
1.用户界面
按Windows应用软件用户界面的规范来设计,使用以对话框为主的用户界面,便于用户使用。
1)主功能界面:
用户显示区:
显示当前用户的名称和家庭角色;
功能显示区:
菜单栏上显示住宅安全,住宅监视,住宅管理,通信管理,系统维护,退出
菜单显示具体功能;
信息显示区:
显示紧急告警通知;
2)住宅安全界面:
用户显示区:
显示当前用户的名称和家庭角色;
功能显示区:
菜单栏上显示门窗运动体监测,烟火一氧化碳监测,房屋地基水位监测,屋外行人运动监测,登录Internet安全设置,激活/解除传感器,返回上一级,退出
菜单显示具体功能;查看,设定
信息显示区:
显示通知;
3)住宅安全传感器查看列表界面:
信息区:
网格显示显示功能传感器的采集的图像或参数信息图样;
数据区:
列表显示各传感器传送的量化数据;
报警区:
选择通知对象:
物业,屋主,120.119,110等
设定按钮:
跳转选择的传感器设定界面;
返回上一级:
返回住宅安全界面;
4)住宅安全传感器设定界面:
信息区:
文本框输入参数,选择菜单选择状态;
功能显示区:
显示设定后采集的数据;
5)登录Internet设定界面:
信息区:
文本框输入用户名和密码;
验证区:
验证用户的电子证书;
功能显示区:
提示用户输入的信息;
6)住宅管理界面
用户显示区:
显示当前用户的名称和家庭角色;
功能显示区:
菜单上显示住宅各个区域内的需要管理的物件,灯具控制,用具控制,HVAC控制,视频/音频控制,度假外出“一键控制”模式;
信息显示区:
显示通知,并提醒做出相应处理;
7)住宅管理传感器查看列表界面
信息区:
显示查看区域传感器采集的图像或数字信息;
报警区:
选择通知相关对象,并做相关及时处理;
设定按钮:
跳转选择的传感器设定界面;
8)住宅安全传感器设定界面:
信息区:
文本框输入参数,选择菜单选择状态;
功能显示区:
显示设定后采集的数据;
9)打电话界面:
用户显示区:
显示当前用户的名称和家庭角色;
功能显示区:
菜单栏显示根据关键字或号码查看被拨用户信息,返回上一级,退出
菜单显示具体功能;查看,设定
信息显示区:
显示通知;
10)查看留言信息界面:
信息区:
显示用户留言号码、姓名等信息;
数据区:
显示用户留言时间;
设定按钮:
跳转选择的留言界面;
返回上一级:
返回主界面;
11)发送邮件界面:
用户显示区:
显示当前用户的名称和家庭角色;
功能显示区:
菜单栏显示根据关键字或地址查看发送人地址信息,返回上一级,退出
菜单显示具体功能;查看,设定
信息显示区:
显示通知;
12)查看邮件界面:
信息区:
显示发件人地址、姓名等信息;
数据区:
显示发件人发送邮件时间;
设定按钮:
跳转选择的留言界面;
返回上一级:
返回主界面;
3.4.2内部接口
采用三层架构模式:
程序分为业务层,控制层,数据层。
数据库连接模式:
ODBC连接池模式。
数据库:
建表使用E-R关系模型。
4.数据结构设计
4.1逻辑结构设计
Family表:
账号(username);每个可进入Home的成员拥有的唯一的账号
口令(password);用户登录系统的密码。
家庭角色(role):
用户分别在家里的角色;
成员状态(status):
1为有效,0为过期。
权限等级(level):
标明用户成员的角色。
IC卡口令(icid);手持卡刷卡信息。
采用双重验证,保证安全。
电子证书号(e_Id):
用于Internet登录的标识号,唯一。
联系方式:
手持电话的链接方式,用于通知。
Email:
用于通知成员Home内各系统的运行状态。
Facility表:
设备类型(f_type):
标明设备的类型。
设备编号(f_id):
对每个受控的设备按功能区进行编号。
设备功能区(f_area):
设备按功能模块划分后的功能区代号。
设备有效性(f_validity):
设备的有效性1为可用,0为受损不可用。
Safe_yun表:
运动体编号(Syun_id):
受传感的门窗以及其他运动体得编号。
传感器编号(Syun_senorId):
标识运动体受控于的传感器的编号;
功能有效性(Syun_validity):
1表示有效,,0表示;
设备功能区(Syun_area):
运动体所属模块的编号。
运行状态(Syun_status);1表示关闭,0表示开启;
监测时间(Syun_time):
监测的时间。
Safe_fire_gas表:
设备编号(Sfg_id):
传感器设备的编号;
温度(Sfg_temperature):
抽样得来的烟火的温度;
烟浓度(Sfg_thickness):
烟或者一氧化碳的浓度;
扩散度(Sfg_diffusance):
烟火、一氧化碳的扩散范围;(1-5级)
检测时间(Sft_time):
传感器的检测时间;
设备状态(Sft_status):
设备当前的运行状态;
Safe_water_level表:
设备编号(Swl_id):
传感器的编号;
测量开始时间(Swl_starttime):
开始时间;
测量结束时间(Swl_endtime):
结束时间;
水基位高度(Swl_height):
高出水平面的高度;
设备状态(Swl_status):
设备的运行状态(1为正在运行;0为未运行)
Safe_灯具表:
传感器编号(Syun_senorId):
标识灯具受控于的传感器的编号;
功能有效性(Syun_validity):
1表示有效,,0表示;
设备功能区(Syun_area):
运动体所属模块的编号。
运行状态(Syun_status);1表示关闭,0表示开启;
监测时间(Syun_time):
监测的时间。
Safe_用具表:
传感器编号(Syun_senorId):
标识物体受控于的传感器的编号;
设备功能区(Syun_area):
运动体所属模块的编号;
物体受损区(Syun_destroy):
物体是否受损,1表示受损,0表示正常。
监测时间(Syun_time):
监测的时间。
Safe_HVAC表:
传感器编号(Syun_senorId):
标识物体受控于的传感器的编号;
功能有效性(Syun_validity):
1表示有效,,0表示;
运行状态(Syun_status);1表示关闭,0表示开启;
监测时间(Syun_time):
监测的时间。
Safe_视频/音频表:
传感器编号(Syun_senorId):
标识物体受控于的传感器的编号;
功能有效性(Syun_validity):
1表示有效,,0表示;
运行状态(Syun_status);1表示关闭,0表示开启;
监测时间(Syun_time):
监测的时间。
Safe_度假外出表(一键控制):
传感器编号(Syun_senorId):
标识物体受控于的传感器的编号
功能有效性(Syun_validity):
1表示有效,,0表示;
运行状态(Syun_status);1表示关闭,0表示开启;
监测时间(Syun_time):
监测的时间。
Telephone表:
联系人类型(T_type):
标明联系人类型。
联系人编号(T_id):
每个联系人的号码。
联系人信息(T_information):
每个联系人的基本情况;
E_email表:
E编号(E_id):
用户的账号是唯一标示用户的。
口令(E_password);用户登录系统的密码。
家庭角色(role):
用户分别在家里的角色;
成员状态(status):
1为有效,0为过期。
权限等级(level):
标明用户成员的角色。
E_address表:
联系人类型(EA_type):
标明联系人类型。
联系人编号(EA_address):
每个联系人的地址。
联系人信息(EA_information):
每个联系人的基本情况;
4.2物理结构设计
采用链表结构,首先考虑顺序链表。
4.3数据结构与程序的关系
主模块:
连接数据库。
登录模块:
连接数据库,查询Family表账号,密码,有效性,角色,权限等级验证用户的角色的有效性,并提示结果。
门窗运动体监测模块:
查询Facility表,设备功能区为Safe_Movement,状态为“正在运行”,设备编号以及采集的数据;并对Safe_yun表中的功能有效性,运行状态做更新。
烟火、一氧化碳监测:
查询Safe_fire_gas表,设备功能区为“Safe_FireGas”,设备状态,并根据传感器采集的数据对表中浓度,温度,扩散度做插入新数据。
房屋水基位监测:
查询Safe_water_level,设备功能区为“Safe_Water”的水基位,监测开始时间,结束时间。
灯具控制模块:
查询Safe_灯具表,设备功能区为Syun_validity,状态为正在运行,设备编号以及采集的数据;并对Safe_灯具表中的功能有效性,运行状态做更新。
用具控制模块:
查询Safe_用具表,设备功能区为Syun_area,状态为用具完好,根据用具的状态,进行相关的功能模块。
HVAC控制模块:
查询Safe_HVAC表,设备功能区为Syun_validity,区域内的各个指标都显示正常,如果某方温度或湿度超出正常控制范围,进行报警,并进行相关其他的功能块。
视频/音频控制模块:
查询Safe_视频/音频表,设备功能区为Syun_validity,运行时1表示关闭,0表示开启,并开放监测时间,到相应时间进行关闭。
度假外出控制模块:
查询Safe_度假外出表(一键控制),设备功能区为Syun_validity,对各区域的设备进行检查,如果没有问题,进行全面的关闭,1表示关闭,0表示开启。
打电话模块:
查询Telephone表,查看用户的电话号码或基本信息以及不打电话。
查看邮件模块:
查询E_Address表,查看用户的邮件地址或用户基本信息以及。
5.运行设计
5.1运行模块的组合
程序启动后,进入主模块,用户的单击对话框按钮事件触发主模块调用各下层模块,进入对应的子对话框,同样由用户的输入触发这些模块调用其下层模块,完成相应操作。
5.2运行控制
本软件控制流程:
主程序运行,等待用户的输入,根据用户的输入调用各子模块
5.3运行时间
检索业务响应时间<3s;
运行响应时间<1s;
6.出错处理
6.1出错输出信息
根据不同的出错情况给出不同的出错信息,一般用对话框给出。
6.2出错处理对策
对一般错误,给用户提示信息,让用户重新输入或退出。
对于严重错误,启动备份文件恢复,建议使用帮助文件。
6.3维护设计
由于此项目开发周期比较短,除了严格按照软件工程的科学方法开发软件、认真建立文档、编码阶段写详细的注释外,后续需要对项目进行权限级别的细致控制,以及强化安全性。
让SafeHome更安全。