软件工程课程设计报告SafeHome项目报告文档格式.docx
《软件工程课程设计报告SafeHome项目报告文档格式.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计报告SafeHome项目报告文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
作者
日期
出版单位
软件工程——实践者的研究方法
RogerS.Pressman
2.任务概述
2.1目标
通过设计软件工程的学习方法,主要使用visualC++技术,以Acess为数据库开发程序。
全中文软件界面,操作简便明了;
系统数据库初始数据的设置可支持表单格式数据输入;
支持电子地图显示,能够在小区总平面图和住户房型图上实时反映系统的报警状态,可声光指示报警点地址,记录报警时间、警情类别、处警情况等;
报警时能自动弹出报警对话框,具有报警语音提示和报警确认功能;
具有多种记录存储:
报警记录、报警确认记录、布防记录、撤防记录、系统日志记录等;
并可按住户、报警类型、报警时间、布、撤防记录、家居报警等进行分类查询等。
2.2系统(或用户)的特点
本软件主要有2个参与者,房主(用户),配置管理人员(类似房主,但扮演不同角色)。
本系统用户友好,界面简单易懂,房主可以直接进行使用,无需特殊培训。
本系统适用于所有的用户,尤其适用于长期从事户外工作的用户。
房主可以通过计算机或报警控制面板等多种方式同住宅安全功能系统进行交互。
一旦用户注册成功,用户只需要通过输入密码,就可已进入系统的界面,对住宅进行全程监控。
本系统的远程监控系统功能强大,可以将住宅中最真实的情况动态的反应到系统界面中,满足此用户对住宅安全情况信息的需求。
配置人员主要负责对于系统参数及系统进行各项指标值的初始化配置。
(如反应时间、默认报警号、一氧化碳浓度底限值等等)。
系统的控制面板相当于用户与系统进行人机交互最主要的场所,用户可以在控制面板中输入用户设定的个人信息和需要的监控操作等等。
系统中需要在用户家中配置若干烟雾检测器以检测家中是否有火灾发生,若干门窗检测器来检测是否有非法入侵的情况,若干房屋地基水位监测器用以检测住宅中是否有漏水情况的发生,同时需要具有一台可以自动连接网络计算机,它是系统与用户进行交互最主要的媒介,若干动态监测器、一个电话。
3.假定和约束
开发日期:
2011-5至2011-6
本系统开发人员为6人
本系统适合市面上的所有产品
对于用户的安全以及保密方面要求较高,要求不能够被别人非法侵入本系统,窃取房主的密码破坏系统而给房主带来财产损失。
4.需求规定
4.1软件功能说明、
本系统主要有两大功能用户设置和检测报警功能
4.1.1用户设置
1、用户首次使用时需要对系统进行初始化,通过个人化的信息设置(如密码、报警的电话号码,住宅房间基本情况)使得系统可以唯一识别用户的住宅,为日后的检测工作提供原始数据
2、同时,系统需要支持用户在使用过成中对系统设置的修改。
用户在使用过程中可以对系统的设置进行修改,在此修改设置之后,系统可以按照用户修改后的数据继续正常的工作。
3.倘若用户没有对系统进行初始化设置,则系统按照默认的信息依然可以运作,但是不能对用户的住宅进行监测,由于没有将用户的住宅情况输入系统,系统无法识别需要用户的监测操作信息。
4.1.2检测报警
1、检测是否有火灾发生,若有则向用户指定的号码发送信息或提示
2、检测是否有人非法入侵,若有则向用户指定的号码发送信息或提示
3、检测是否有一氧化碳超标的现象,若有则向用户指定的号码发送信息或提示
4、检测是否有漏水现象,若有也给出用户提示
5、检测是否门窗已经关闭,若未关好则给出用户提示
4.2对功能的一般性规定
功能名称
功能详细
1.用户设置
*作用介绍
a.本功能的数据库全部来自SafeHome。
b.本功能主要作用就是使用户可以设置。
*使用说明
a.进入该功能界面后,输入房主的首次使用激活码
b.激活后对于个人的密码以及预设的电话号码进行设置。
c.电话号码可以备选有多个。
d.用户输入密码三次错误则系统应向预设手机发送报警信息
e.若用户为进行设置,其进行默认操作(不会进行报警)
2.1.1检测是否有火灾发生
本功能主要是针对可能出现的火灾进行监测与报警
a.系统火灾探测技术来检测是否有火灾发生
b.若有,则向用户发送提示并且拨打火警电话。
屋内发出提示声
*使用介绍
a.用户在住宅内安装火灾探测器(前提条件),安装此safehome系统
b.用户登录系统后,在系统控制面板上选择火灾监测和安全警报系统
c.火灾探测器自动运行,用户无需随时监控,如有异常情况系统会发出警报信号
2.1.2检测是否有人非法入侵
本功能主要是针对可能出现的非法入侵进行监测与报警
a.系统通过窗户与门上传感器技术来检测是否有人非法入侵。
b.若有,则向用户发送提示并且屋内发出提示声,以阻止非法入侵行为的继续发展。
如何提示无效后,则向有关部门进行报警。
a.用户安装了摄像头等监视非法入侵的装置
b.用户选择启动非法入侵检测
c.探测器自动运行,用户无需随时监控,如有异常情况系统会发出警报信号
2.1.3检测是否一氧化碳超标的现象
本功能主要是针对一氧化碳超标的现象进行监测与报警
a.系统通过煤气上方的探测器进行检测
b.若有,则向用户发送提示并且拨打报警电话。
2.1.4检测是否门窗已经关闭
本功能主要是针对门窗已经关闭进行监测与报警
a.门窗上的探测器进行检测
b.若有,在用户离开之前发出警报
c.如果用房不在,发短信给用户。
4.3.1时间特性要求
检测报警功能:
在检测到后立即进行反应,尽量减少用户的损失
对于各种故障进行预设,设置只有用户知道的reset密码,防止系统出现异常而无法处理
4.5其他专门要求
在进行网络连接时要注意网络的安全与加密
5.运行环境规定
5.1设备
烟雾检测器、流量检测器、传感器、电脑、网线、自动报警器、系统历史记录器(不做要求)、信号发射器
二,分析建模
1,系统功能模块
1.1登陆设置模块
1.2检测与监视模块
1.3报警模块
2,系统及各模块用例
2.1系统总体
2.2系统默认运作
2.3非法入侵的用例
2.4检测门窗是否关闭
2.5一氧化碳气体检测处理
2.6火灾监测--安全警报
1,SafeHome主要功能模块如下:
1.1登录设置模块
用户只要通过控制面板和系统交互,通过输入密码登陆系统。
在验证成功,登录到系统后,用户才有资格进行系统设置。
设想提供两种用户身份验证方式:
(1)通过登录窗口输入密码,系统进行判断,如果密码验证成功,则登录系统,若不成功,则提示密码错误,三次机会,若三次都错误,则发出警报,并向主人设置的电话号码发送警报。
(2)指纹识别,在系统初次使用时,采集住人的指纹,进行设置,登录时用指纹判断,判断流程同
(1)
1.2:
检测与监视模
检测模块与【信息处理单元】相互配合,各个检测器负责采集周围信息,以每秒一次的频率向【信息处理单元】发送数据,根据消息的发送先后顺序,信息被暂时存储于一个队列中,【信息处理单元】不断从队列中读取信息进行判断,每处理完一条,则从队列中删除一条消息,在消息处理过程中,一旦消息达到警情,则【信息处理单元】产生一个事件,向户主设置的电话发送警情,并发出警报,如果没有达到警报级别,则不做任何事情,【信息处理单元】继续处理下一条信息。
1、检测是否有人非法入侵
2、检测是否有火灾发生
3、检测是否有一氧化碳泄漏的现象
4、检测是否有漏水现象
5、检测是否门窗已经关闭
1.3:
报警模块
【信息处理单元】一旦检测到有警情发生,则向用户设置的号码发送警报,如果没有响应,则继续发送警报,并且发出报警声音,如果再没有响应,则需要马上报警,同时记录报警信息
2.1用例:
SafeHome总系统
如下所示,细节在设计阶段提供,总共有三个参与者,用户,数据库,各类检测器
2.2用例:
系统默认运作
主要参与者:
SafeHome系统、房主
目标:
在用户为进行初始化设置时依旧可以正常运作
前提条件:
系统正常识别各种传感器
触发器:
房主打开系统未进行设置却已离开
场景:
1、房主:
打开系统
2、系统:
未接到任何初始化命令,进行默认操作
异常:
1、系统不能打开:
房主检查相应设置是否就位
2、系统不能使用默认信息:
房主通过控制面板对其进行自检
优先级:
最高
何时可用:
房主为设置任何信息时
使用频率:
不常用,低
使用方式:
通过控制面板接口
次要参与者:
技术支持人员、传感器
次要参与者使用方式:
技术支持人员;
电话线;
传感器;
有线或无线接口
未解决的问题:
1、默认信息如何设置?
2、屋主未设置而离开则无法实现SafeHome功能,无法提供安全保障,如何可以实现基本功能?
3、此功能是否需要用户激活?
4、此时SafeHome各传感器是否可以正常记录数据?
5、当系统遇到异常启动等其他异常时,是否进行重启?
6、当遇到停电时,是否启用备用电源?
7、系统默认操作时,用户是否可以使用系统?
用例图和活动图:
系统默认操作用例图
系统默认操作活动图
2.3用例:
检测是否有人非法入侵
用例:
检测是否有人非法入侵的检测
安全家居系统、房主
系统通过窗户与门上传感器技术来检测是否有人非法入侵。
若有,则向用户发送提示并且屋内发出提示声,以阻止非法入侵行为的继续发展。
如果提示无效后,则报警。
软件系统,各个附属传感器警报器网络通信硬件设施运行正常,以及房主的信息接收装置运转正常。
窗户与门上传感器检测到异常情况,则初步判定为非法入侵情况发生。
1,检测窗户与门上传感器检测到异常情况,并进行初步判断有人非法入侵成立。
其他设备工作正常。
2,系统将会发出警报,提示非法入侵者离开,点亮危险指示灯,鸣响报警喇叭。
3,立即进行检测用户位置设置状态,立即向房主发送非法入侵的报警信号,如果房主在一定时间内没有回复,并且窗户与门上的传感器一直在发出异常信号,则直接拨打报警电话进行报警。
如果房主做出了回复,则按照回复内容执行(房主可选消除警报或报警)
4,继续检测窗户与门上传感器,如果遇到相同的情况提醒用户时,当用户选择类似情况不进行警报,那么系统将进行记录,再遇到相同的情况则不进行警报。
1,用户关闭报警系统,或遇到停电等情况
2,系统附属硬件(传感器,警报器,通信设备)故障
3,软件工作异常。
4.设备之间的通信互相干扰
高优先级,优先处理。
何时有效:
第一个增量。
少。
安全部门、消防部门。
1,播报信息的
2,用户未反应的时间超过多少才进行自动报警?
3,如何对硬件故障进行自我检测以提高报警的准确率?
4,如何使门窗的传感器更加准确的判断是否有人入侵?
有没有什么判断标准?
5,当房主取消报警了以后,在较短时间内遇到同样的情况,还要不要继续提醒房主?
6,当系统出现故障时,要不要进行重启?
用例图与活动图:
2.4用例:
检测门窗是否关闭
房主,门窗检测器
在房主离开或者是睡觉或者是任意设置时,检测门窗是否关闭
系统已经打开,房主进行正确的设置,并且系统正常运行
门窗检测器
房主:
登录SAFEHOME产品的官方网站
输入用户名及密码,进入系统
设置报警情况,在门窗出现异常情况的时候及时向房主反馈情况
如果有异常情况(门窗没有关闭)房主收到报警信号
检测器:
检测信号
向系统返回捕捉到的信号
房主操作失误,导致设置失误
检测器失灵
可以不实现
房主离开房间或者房主睡觉时进行设置
每天
通过系统的硬件接口与系统连接
有关检测部门
电话或者电脑收到报警信号
未解决问题:
1..当房主在房内休息,且系统打开时,是否有必要进行报警检测
2.是否有必要进行报警级别的设置,比如门窗打开了一点点和门窗完全打开是否应该区分
3.当用户没有对警报做出反应的时候,系统等待多长时间进行报警?
2.5用例:
一氧化碳气体检测处理:
一氧化碳气体检测处理。
安全家居系统,房主。
监控一氧化碳气体的浓度,如果气体的浓度超过系统的默认值,便认定为危险情况并发出警报,通知房主和医院或消防部门。
软件系统,各附属传感器警报器网络通信硬件设施运行正常。
检测一氧化碳浓度超标,而其他设备无异常。
1,系统检测一氧化碳浓度超标,而其他设备无异常报告。
2,系统发出警报,点亮危险指示灯,播放一氧化碳超标警告声音。
3,检测用户位置设置状态,如果显示“在家”,循环播放处理信息。
若用户对警报无应答,或浓度不下降,则向消防部门以及医疗部门发送求救信息,报告危险情况。
5,检测用户位置状态,如果显示“不在家”,系统向用户移动终端打电话,发送警报信息。
若没有应答,向消防部门发出求救信号,报告危险情况。
6,循环检测一氧化碳浓度正常,停止警报。
1,用户人为关闭警报系统。
3,软件设备工作异常。
4.报警系统工作异常
安全家居系统。
户主,消防部门,医疗部门。
1,一氧化碳浓度为多少时发出相应警报?
2,循环播报信息的周期应该为多少?
3,从联系用户,到确定用户无应答,时间间隔为多少?
4,如何对硬件故障进行自我检测以提高报警的准确率?
5,当系统出现故障时,要不要进行重启?
如何判断是否发生故障?
6,如报警发生,用户没有应答,此时应该怎么做?
一氧化碳检测处理用例图
一氧化碳检测处理活动图
2.6用例:
火灾监测--安全警报
参与者:
房主
火灾探测器(核心部件),safehome安全监测系统
环境目标:
通过火灾监控器对整个整个住宅范围内的任何角落进行监控,从而感知火灾的是否发生的情况
用户在住宅中完整的安装了safehome安全监测系统,并通过用户设置获得了有效的用户验证信息,如用户ID和密码等,并且确保火灾探测器正常工作,与safehome系统正常连接,同时还要与房屋监控功能相互支持。
住宅的某些局部地区温度高于标准值或住宅中的火焰光亮程度高于标准值(系统中采用感温火灾探测器和感光火灾探测器这两种比较常见的探测器)
1.房主登录SafeHome产品网站;
2.房主输入住宅ID(唯一标识房主住宅的标识符);
3.房主输入验证信息,在此,将用户的密码作为能够唯一标识用户身份的标识符;
4.房主在系统控制面板中的主要功能按钮中选择“火灾监测与安全警报”的功能按钮;
5.系统显示住宅的平面设计图,并显示出提示对话窗口,提示用户火灾监测与安全警报系统已经开始工作;
6.火灾监测与安全警报系统进入工作状态,对住宅房屋的每一个角落的温度情况,烟雾浓度情况进行监测;
7.此时,房主最小化用户界面,转而做其他的事情;
8.如果有火灾情况发生,系统会自动弹出对话框并同时发出火灾警报声音提醒用户火灾的发生。
与此同时,系统会在住宅的平面设计图中标示出火灾发生的具体位置,火灾的严重程度,以及引发火灾的大致原因(待定)
9.如果在系统工作时间中,如果火灾监测与安全警报系统没有监测到火灾的发生,则向房主反馈安全信息;
若果房主对信息没有进行回复,在一定时间内,如果警报未接触,根据火灾等级进行报警
10.火灾监测与安全警报系统将持续对住宅的火灾情况进行监测,直到房主退出SafeHome系统为止。
异常情况:
1.ID或密码不正确
阅读用例:
“确认ID和密码”。
2.没有为该系统配置火灾监测与安全警报系统
系统显示恰当的错误提示;
“配置火灾监测与安全警报系统”。
3.平面设计图不可用或没有配置
显示恰当的错误消息,阅读用例:
“配置平面设计图”。
4.火灾监测与安全警报系统运行出现故障
显示恰当的错误消息,并告知用户系统需要重新配置或修理
中等优先级,必须要在基础功能实现之后实现
第三个增量
不经常
参与者的联系渠道:
通过电脑,网络与火灾监测与安全警报系统的内部互连结构,将这三个模块通过基于电脑的浏览器和Internet连接到SafeHome网站。
系统管理员,摄像头,火灾监测与安全警报系统配置人员
次要参与者的渠道:
1.系统管理员:
基于计算机的系统
2.摄像头:
无线连接
3.火灾监测与安全警报系统配置人员:
1.如果在给出火灾警报后,房主长期没有应答,火灾警报系统应该执行哪些操作?
2.在给定摄像头视图所要求的带宽下,可以接受系统通过Internet的响应么?
3.如何判断火灾监测与安全警报系统是否出现故障,如果出现故障将如何解决?
4.引入火灾监测与安全警报系统的SafeHome的安全系数到底是否有提升?
安全性能如何?
5.如何解决系统之间的兼容问题?
6.当系统出现故障时,要不要进行重启?
三,设计模型
1,系统基于类的设计模型
2,子系统详细设计
2.1系统设置类
2.2非法入侵类
2.3火灾检测类
2.4查看历史记录类
2.5漏水检测类
2.6一氧化碳检测类
系统基于类的设计建模
系统类图如上,用MFC模拟各种功能
注:
每个检测器以一个窗口模拟,检测器检测的数据以手动输入模拟,产生反应如报警等达到报警设置条件时,用某种形式模拟,如播放警笛等
2.以下对每个子系统进行详细分析设计:
2.1系统设置模块
LogIn(wchar_tuserPassword)userPassword为用户重新设置的密码值
Display()显示用户是否成功登录,是否有警情等等,显示在屏幕上
Reset(wchar_tnewPassword)用户输入新的密码,对密码的重设
Query()查看个传感器是否到位,返回布尔值、
Modify(unsignedintmodiParamter,intnbrSensor)对于系统参数的修改,nbrSensor指明是哪个传感器,modiParamter表示要修改的值
Call(unsignedintphoneNbr)phoneNbr为有警情所需要拨打的号码,该操作为报警动作
SystemID:
用户ID
VertificationPhoneNumber:
为用户设置的合法的用户电话号码
systemStatus标识系统当前的状态,显示是否正常启动
delayTime为系统检查到警情后作出反应的时间
emergencyNumber报警电话
FireCall火警电话
hostPassword户主密码
numberTries为用户尝试登录的次数
系统设置顺序图
2.2非法入侵类图分析
systemStatus表示系统状态,正常为1,异常为0
Breakin_position表示案发地点
Get_status()返回状态
Get_breakin_position()返回案发地点
Ring_alarm()警铃响起
Voice_warn()驱逐警报
Call_host()通知用户
Call_police()进行报警
非法入侵状态图
非法入侵顺序图
(1)火灾检测类图分析
Inception_Standard就是说火灾探测器探测火灾情况报警的标准,在什么样的情况下才会报警的标准
Position代表火灾发生的具体位置
Inspect()运行火灾监测
Mark_FloorPlan()在平面设计图上表示火灾发生的位置
Exception_Handle()异常处理
Ring_Alarm()遇到火灾情况进行报警
Quit()退出火灾探测系统
Load_Map()在火灾探测窗口中加载平面设计图
Show_FirePosition()返回火灾发生的具体位置
火灾检测状态图
火灾检测顺序图
2.4查看历史记录类
m_strStyle保存用户选择的查找类型
m_strKey保存用户数据的查找关键字
GetKey()获取用户输入的查找关键子
Query()打开数据库进行查找,并返回结果
查找历史数据状态图
查找历史记录顺序图
2.5一氧化碳检测类图分析
COMonitor类(一氧化碳检测类)
说明:
主要功能:
接受传感器传来的一氧化碳浓度,判断浓度是否异常,如果异常,启动报警信息,向用户发送警报,想医疗消防部门发出求救信息。
属性:
Indata,传感器获得的一氧化碳浓度值。
默认为正常值1.0(毫克/立方米)
COstatus,一氧化碳浓度的状况,默认为false,表示为超标。
操作:
GetStatus()获得一氧化碳浓度状态,返回bool类型,表示CO是否超标。
SetStatus()设定一氧化碳浓度状态,返回void类型。
Alarm()启动报警器,发出报警信息。
SendUserMsg()向用户发送警报信息。
SendHelpMsg()向医疗和消防部门发送求助信息。
一氧化碳检测处理状态图
一氧化碳检测顺序图
传感器检测一氧化碳浓度,将检测数据交给系统,系统判断浓度是否异常,如果异常,