(revision 1.0)
拟制人: 葛平军
审核人: 王振铎
批准人: 修 宇
Software Analysis Description
2006年11月1日
需求分析报告
§1概述
§1.1背景
任何一个组织或是集体,实现它内部人员及事物的管理或是各个部门的协同工作
都是必要的。作为一个实验室,要管理许多不同种类设备的购入、报修、报废又要实现信息共享,愈来愈成为实验室管理员管理设备的一个难题。因此,一个便利的实验室设备管理系统在众人的期盼中需要实现。随着因特网发展的日新月异,人们利用网络来实现相互之间的协同工作以及资源共享越来越成为时代的潮流,一个不可扭转的趋势。目前,因特网已经深入到我们生活的各个领域——学校,银行,医院,公司,企业等等。因此,我们在这里用因特网来实现实验室的设备管理更是顺应了时代发展的方向。我们要实现的系统主要面向实验室管理员。管理员的主要任务是实现相应的信息发布,更新,录入工作,而学生、老师可以进行相应的查询事件。要实现这个系统,需要先调研,弄清楚实现成功管理的需求情况,以便于有的放矢。程序完成以后,需要调试运行,整个实现需要一个月左右。
§1.2 系统目标
该软件是一个相对独立的个体软件,便于实验室设备的管理,方便查看有关实验室设备的情况。实验室设备管理系统主要实现对设备信息的记录和查询,包括设备的入库(购入)、出库(报废、保修)登记,以及设备库存的查询。另外,设备要求按类别和时间段查询,每种设备属于一个具体的类别。设备的基本信息包括设备类别、设备号、编码、设备名、规格、单位、单价、数量、购置日期、生产厂家购买人等。
该软件绝大部分功能聚集在实验室设备的出入管理和实验课所需设备的安排上。是一个相对小型的独立系统,它最终要实现的目标就是要让大量实验室设备的管理变得更轻松。
§1.3运行环境
本系统针对Microsoft Windows 系统开发。运行于Windows98、ME Windows2000 sp3、WindowsXP。不支持Windows2003的操作系统环境。建议硬件配置PII以上 64M内存 300M硬盘空间。
§1.4用户特点
用户为管理实验室的老师,文化程度较高有一定的计算机操作基础。所以设计上尽量规范化正规化。符合一般软件的统一使用方法可以方便学习操作。
§2用户需求
§2.1 业务需求
1、使用范围
学校、科研机构、大型实验室
2、功能要求
(1)设备类别管理
设备类别管理功能主要用来实现对设备按类别管理的需求,我们知道设备类别分为各大类,每个大类下又包括若干小类,这正好可以用树状结构来进行管理。因此,只需提供建立类别、建立子类别和删除类别几项功能,就可以完成对设备类别的维护。 由于每类设备下可能包括子类别,也可能包含多种设备,因此在对设备类别进行删除时,如果该类别下有子类别则不能删除,如果该类别包含设备信息也不能删除。若不存在上述两种情况,则可以删除该类别。 (2)设备字典维护
设备字典维护用来记设备的基本信息,包括设备的类别、编码、设备名、设备号、规格、单价、数量、购置日期、生产厂家、购买人。在设备管理系统中建立了设备字典后,就可以根据每一设备进行设备的入库、出库和查询了。设备字典维护中提供增加和删除设备信息的功能。
设备信息的增加需要在一个设备类别下进行,这样所增加的设备就属于该设备类别。当删除设备信息时,需要判断入库或出库记录中是否有该设备,如果有就不能删除设备,否则可以进行删除。
(3)设备入库登记
设备入库登记主要提供设备入库信息的增加和删除功能。设备入库时可以从设备字典中选择设备,然后输入本次入库数量,这样就可以在入库台账中登记一笔入库信息,设备的基本信息自动从设备字典取得,入库日期则由系统自动赋值。 (4)设备出库(报修、报废)登记
与设备入库类似,设备出库登记也提供增加和删除功能。设备因报修或报废而出库时从设备字典中选择要出库的设备,并输入本次报修或报废的数量,此时系统需要判断库存的每类设备是否能够满足基本需用,如果不满足的话,系统将自动提示申请购置该类设备。
(5)设备查询
设备查询主要提供设备的入库、出库以及库存情况的信息查询功能。在系统管理过程中,可以随时统计、查询当前各种设备的购置入库、库存、报修、报废的情况。同时系统还提供按照设备类别和时间段(某日期之前)查询。 具体功能模块如图1所示
§2.2 性能需求
该设备管理系统主要实现的是信息的录入,删除,更新,因此,不管对设备管理的需要或是管理员获知信息的需要以及各个部门之间的紧密衔接关系,数据必须具有高度的完整性和准确性,这就要求系统的高度安全性,可维护性,可靠性及灵活性。比如设备购入信息管理,管理员在录入信息的时候或是数据库出现异常而产生差错,可能会影响正常使用,这就要求系统具有高度的安全性,可维护性和可靠性;灵活性指的是系统要具有强大的功能以适应不同层次的用户不同的需求。另外,系统的操作界面要求简便,通俗,以便于操作。
§2.3运行需求 §2.3.1用户界面
用户界面要求简洁明了,而且表单操作要求尽量避免使用鼠标。所以数据的填写,控件焦点的转换要自动进行。提交和撤销使用 回车 和 Esc。不同种类数据填写的顺序—即Tab的顺序要符合实际操作的习惯。而且要求在某些同样数据重复次数较多的控件上使用可选或记忆功能,简化操作。
§2.3.2软件接口
与外界数据库的连接接口。使软件通过网络使用公共数据库达到信息数据同步的功能。
数据交换图
§2.4 其他需求
要求界面适当美观,幽雅,通用性、操作性比较强
3.数据说明
3.1 动、静态数据
操作员信息、设备基本信息;
购买申请、购买记录、维修记录、报废记录、统计报表、口令信息。
3.2 数据文件描述
购买申请:由于申请的内容较少,所以不需要使用Excel表格的形式打印,本系统采用文本文件来保存申请表的购买信息;
统计报表:由于报表的内容比较多,需要用文档的形式保存并可打印。
3.3 数据流图与数据字典
数据字典是关于数据信息的集合,主要描述数据流、数据存储、数据元素的详细内容以及加工逻辑。它把数据的最小组成单位看作是数据元素,数据流和数据存储是由数据元素按一定的数据结构组成。
本系统的数据流程图如下图所示:
得出的WORD格式申请表
修理要求 = 管理员根据设备现有的损坏情况得出的需要修理信息 修理信息 = 修理人员根据修理要求,对设备进行修理后。根据实际的修理情况整理出的详细修理信息 批示意见 = 领导根据管理员递交的书面申请表中的详细信息,反馈给管理员的对申请同意与否的意见 控制命令 = 增加 | 删除 | 查询 | 修改 增加 = 通过系统向数据库添加新信息
删除 = 通过系统将数据库中的错误或陈旧数据删除
查询 = 根据提供的条件,对数据库进行查找,并返回查找结果 修改 = 通过系统对数据库的已有数据进行修改,保证数据的正确
操作信息 = 根据控制命令对系统进行操作,得出的操作结果
处理信息 = 管理员得到的关于设备购买、修理反馈回来的详细信息
收集信息 = 系统操作过程中得到的、新的、需要存入数据库的信息,更新数据库
存储信息 = 数据库中存储的信息,根据系统的操作要求需要传递给系统的信息
统计报表 = 修理信息统计表 | 报废信息统计表 | 设备资金统计表
修理信息统计表 = 一月一次的对实验室的设备修理信息进行汇总得出的书面表格
报废信息统计表 = 一月一次的对实验室的报废设备信息进行汇总得出的书面表格
设备资金统计表 = 一月一次的对本月实验室资金使用情况的统计表格 3 数据存储
数据库=用户信息表 | 申请信息表 | 设备记录表 | 购买记录表 | 修理信息表 | 报废记录表
用户信息表 = 数据库中存储管理员允许创建的,合法的用户信息存储表 申请信息表 = 数据库中存储所有申请记录的存储表
设备记录表 = 数据库中存储实验室现有设备详细信息的存储表 购买记录表 = 数据库中存储购买设备信息的存储表 修理信息表 = 数据库中存储设备修理信息的存储表
报废记录表 = 数据库中存储所有报废设备详细信息的存储表
3.3.2 1级数据流图的数据字典 1 数据处理 申请管理 = 整理、处理零散的申请信息,并以表格形式反馈给管理员 统计、管理及查询处理 = 管理设备信息,提供各种设备信息查询,及对各种设备信息进行统计以表格形式输出 购买处理 = 整合申请表信息及设备购买要求形成详细设备购买信息送部门采购人员 修理处理 = 根据系统传递过来的修理要求整合成详细修理要求送修理人员 报废处理 = 根据管理员的报废命令,对需报废设备进行信息整理,操作相应数据库表,形成报废信息送数据库 2 数据流 提出 = 管理员根据需要调用申请管理模块的控制命令 已批申请表 = 包括领导同意信息和设备需求信息的申请表 报废 = 管理员根据需要调用报废管理模块的控制命令 申请信息 = 所有设备购买申请记录详细信息 报废信息 = 响应管理员报废命令,经过报废处理后整理的详细设备报废信息
.3、2级数据流图数据字典 1 数据处理
用户命令识别 = 识别控制命令,分别调用各处理模块 处理信息存储 = 接受购买、修理等信息,存入数据库 整理操作信息 = 整理系统操作信息,显示送管理员处 申请命令处理 = 接受命令,调用申请模块
统计命令处理 = 接受统计命令,读取数据库信息,统计整理信息,产生月设备资金统计表,修理/报废注销表,购买申请表
实验室设备管理系统 概要设计说明书
[DN1.0]
拟制人:葛平军 审核人:王振铎 批准人:修 宇 [2006年11月18日]
1.引言....................................................................... 1.1 编写目的................................................................. 1.2 编写背景................................................................. 1.3 术语说明................................................................. 1.4 参考资料................................................................. 2. 任务概述.................................................................. 2.1 目标..................................................................... 2.2 运行环境................................................................. 2.3 需求概述................................................................. 2.4 条件及限制............................................................... 3. 总体设计.................................................................. 3.1 处理流程................................................................. 3.2 总体设计及模块外部设计................................................... 3.3 功能分配................................................................. 4. 接口设计.................................................................. 4.1 外部接口................................................................. 4.2 内部接口................................................................. 5. 数据结构设计.............................................................. 5.1 逻辑结构设计............................................................. 5.2 物理结构设计............................................................. 5.3 数据结构与程序的关系..................................................... 6. 运行设计.................................................................. 6.1 运行模块的组合........................................................... 6.2 运行控制................................................................. 6.3 运行时间.................................................................
7. 出错处理设计.............................................................. 8. 安全保密设计.............................................................. 9. 维护设计..................................................................
概要设计说明书
1.引言 1.1编写目的
该设计说明概括了实验室设备管理系统的整体结构和相关模块分类。为详细设计阶段的工作指导方向。主要帮助系统设计人员确立模块种类,分解系统的功能。
1.2 说明
系统名称:实验室设备管理系统
2.总体设计 2.1运行环境
(1) 设备需求:实验室设备管理部门的电脑(PIII CPU以上,256MB内存)。 (2) 操作系统:Windows2000/XP/NT Service。
(3) 系统开发工具是Delphi 7.0,以SQL server为后台数据库。
2.2处理流程
处理流程图
2.3总体结构和模块外部设计
系统模块设计图
2.4功能分配
3. 运行设计 3.1运行模块的组合
模块功能的组合:
模块功能组合图
3.2运行控制
键盘输入查询标志进行查询:键盘输入查询的标志,点击查询按钮在相关
位置显示查询结果。
4.出错处理设计 4.1出错输出信息
1、表单填写时输入错误查询条件:“输入错误!” 2、表单填写时出现错误格式:“格式有误,请重新填写!”
3、查询时条件空缺:“请输入查询条件!” 4、查询时输入条件格式有误:“查询条件格式不正确!” 5、查询时没有与查询标志相吻合届结果:“设备表为空,不能查询” 6、设备因缺损空缺:“该设备已损,不能安排使用!”
4.2出错处理对策
1-5类错误重新填写或补填即可解决。6类错误核对设备情况重新作安排。
5.安全保密设计
设置系统管理员权限和操作员权限两个级别。管理员有更改操作权限和备份与恢复数据库的权利。操作员只有查询和新设备入库的权利。管理员和操作员各设置自己的不同密码。密码要求最少6位,数字与字母相结合。
实验室设备管理系统
详细设计说明书
[DN1.0]
拟制人:葛平军 审核人:王振铎 批准人:修 宇 [2006年11月17日]
详细设计说明书
1.引言 1.1编写目的
该书明书详细描述了该系统的详细功能和结构。是开发实施阶段编写代码的依据。程序编写人员要严格依照该说明书的要求编写代码以实现内部的功能。
1.2 说明
系统名称:实验室设备管理系统
1.3参考资料
《软件工程与软件开发工具》 张虹 编著 ——北京:清华大学出版社 《数据库系统概论》萨师煊 王珊 编著 ——高等教育出版社 《软件工程》齐治昌 谭庆平 宁洪 编著 ——高等教育出版社
2.总体设计 2.1需求概述
开发一套能够适用于我校各个学院实验室的实验室设备管理系统,能够使
实验室设备的管理达到方便快捷无纸化的程度。
该软件是一个相对独立的个体,绝大部分功能聚集在实验室设备的出入管理和实验课所需设备的安排上。是一个相对小型的独立系统,它最终要实现的目标就是要让大量实验室设备的管理变得轻松明了。课程所需设备的安排上简洁准确。
2.2软件结构
软件结构图
3.程序描述 3.1算法
A:入库操作:
1:入库单初始化 设备名称的输入
declare my_cursor dynamic cursor for sqlsa;
prepare sqlsa from "select 设备名称 from t_shebeizidian order by 设备编号";
open dynamic my_cursor;
fetch my_cursor into:ls_sbmc; do while sqlca.sqlcode = 0 ddlb_2.additem(ls_sbmc)
fetch my_cursor into :ls_sbmc; loop
close my_cursor;
进货人的选择
declare my_cursor1 dynamic cursor for sqlsa;
prepare sqlsa from "select 进货人 from t_ruku order by 设备编号"; open dynamic my_cursor;
fetch my_cursor into:ls_jinhuoren; do while sqlca.sqlcode = 0
ddlb_4.additem(ls_jinhuoren)
fetch my_cursor1 into :ls_jinhuoren; loop
close my_cursor1;
在库位置的输入
declare my_cursor2 dynamic cursor for sqlsa;
prepare sqlsa from "select 在库位置 from t_kucun order by 流水号";
open dynamic my_cursor2;
fetch my_cursor2 into:ls_weizhi; do while sqlca.sqlcode = 0 ddlb_5.additem(ls_weizhi)
fetch my_cursor2 into :ls_weizhi; loop
close my_cursor2;
if ddlb_5.totalitems()>0 then 提取上次操作信息
ls_lastkucun=profilestring("weizhi.ini","位置信息","上次入库位置","")
if ls_lastkucun="" then ddlb_5.selectitem(1) else
ddlb_5.selectitem(ls_lastkucun,0)
end if end if
提取流水号
SELECT t_liushui.liushui INTO :ls_liushui FROM t_liushui ; sle_3.text=ls_liushui
em_1.text=string(today(),"yyyy/mm/dd/ hh:mm")
2:提交入库单:
检查数据录入窗口是否填写完整
if em_2.text="" or isnull(em_2.text) then messagebox("缺少数据","请输入设备编号!") em_2.setfocus() return
elseif sle_4.text="" or isnull(sle_4.text) then messagebox("缺少数据","请输入设备规格!") sle_4.setfocus() return
elseif ddlb_2.text="" or isnull(ddlb_2.text) then messagebox("缺少数据","请输入设备名称!") ddlb_2.setfocus() return
elseif sle_1.text="" or isnull(sle_1.text) then messagebox("缺少数据","请输入设备数量!") sle_1.setfocus( ) return
elseif ddlb_3.text="" or isnull(ddlb_3.text) then messagebox("缺少数据","请输入计量单位!") ddlb_3.setfocus( ) return
elseif ddlb_4.text="" or isnull(ddlb_4.text) then messagebox("缺少数据","请输入进货人姓名!") ddlb_4.setfocus( ) return
elseif ddlb_5.text="" or isnull(ddlb_5.text) then messagebox("缺少数据","请输入库存的位置!") ddlb_5.setfocus( ) return
elseif em_1.text="" or isnull(em_1.text) then messagebox("缺少数据","请输入入库时间!")
em_1.setfocus( ) return
elseif sle_2.text="" or isnull(sle_2.text) then messagebox("缺少数据","请输入保管员姓名!") sle_2.setfocus( ) return end if
把得到数据赋值给变量
ls_number=trim(em_2.text) ls_name=trim(ddlb_2.text) ls_shuliang=trim(sle_1.text) ls_danwei=trim(ddlb_3.text) ls_jinhuoren=trim(ddlb_4.text) ls_weizhi=trim(ddlb_5.text)
ls_baoguanyuan=trim(sle_2.text) ls_guige=trim(sle_4.text) ls_liushui=sle_3.text ls_zhuangtai=sle_5.text ld_date=date(em_1.text)
向数据库存入数据 向入库单存入数据 INSERT INTO t_ruku ( 设备编号, 设备数量, 入库时间, 进货人, 保管员, 流水号)
VALUES ( :ls_number, :ls_shuliang, :ld_date,
:ls_jinhuoren, :ls_baoguanyuan, :ls_liushui); 向库存单存入数据
INSERT INTO t_kucun ( 设备编号, 数量, 在库位置, 流水号, 状态) VALUES ( :ls_number,
:ls_shuliang,
:ls_weizhi,
:ls_liushui,
:ls_zhuangtai);
结束一次录入操作
em_1.text=""
em_2.text=""
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
ddlb_2.text=""
ddlb_3.text=""
ddlb_4.text=""
ddlb_5.text=""
em_2.setfocus( )
open(w_sucessruku)
B:设备查询
查询所有设备
dw_1.dataobject="dw_kucun"
dw_1.settransobject(sqlca)
dw_1.retrieve()
查询损坏设备
dw_1.dataobject="dw_sunhuai"
dw_1.settransobject(sqlca)
dw_1.retrieve()
按名称查询
sql_syntax =" SELECT t_kucun.设备编号,t_shebeizidian.设备名称," + &
"t_shebeizidian.设备规格,t_kucun.数量,t_kucun.在库位置 " + & " FROM t_kucun,t_shebeizidian " + &
" WHERE t_kucun.设备编号 = t_shebeizidian.设备编号 and " + & " t_kucun.设备编号 = '" + ls_cx + "'"
presentation_str = "style(type=grid)"
dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax, &
presentation_str, ERRORS)
IF Len(ERRORS) > 0 THEN
MessageBox("Caution", &
"SyntaxFromSQL caused these errors: " + ERRORS)
RETURN
END IF
dw_1为空数据窗口
dw_1.Create( dwsyntax_str, ERRORS)
IF Len(ERRORS) > 0 THEN
MessageBox("Caution", &
"Create cause these errors: " + ERRORS)
RETURN
ELSE
dw_1.settransobject(sqlca)
dw_1.retrieve()
END IF
C:登录密码判断
setpointer(hourglass!)
declare my_cursor dynamic cursor for sqlsa;
prepare sqlsa from "select id from t_userid order by id"; open dynamic my_cursor;
fetch my_cursor into:ls_opid;
do while sqlca.sqlcode = 0
ddlb_1.additem(ls_opid)
fetch my_cursor into :ls_opid;
loop
close my_cursor;
if ddlb_1.totalitems()>0 then
ls_lastid=profilestring("user.ini","操作员信息","上次登录操作员姓名","")
if ls_lastid="" then
ddlb_1.selectitem(1)
else
ddlb_1.selectitem(ls_lastid,0)
end if
end if
D:课程管理
设备名称的输入
declare my_cursor dynamic cursor for sqlsa;
prepare sqlsa from "select 设备名称 from t_shebeizidian order by 设备编号";
open dynamic my_cursor;
fetch my_cursor into:ls_sbmc;
do while sqlca.sqlcode = 0
ddlb_1.additem(ls_sbmc)
fetch my_cursor into :ls_sbmc;
loop
close my_cursor;
3.2存储分配
数据库结构关系图:
3.3测试要点
表单提交过程的准确性和排课的准确性
多台计算机使用和提交同类数据时互斥操作和数据安全性。
(revision 1.0)
拟制人: 葛平军
审核人: 王振铎
批准人: 修 宇
Software Analysis Description
2006年11月1日
需求分析报告
§1概述
§1.1背景
任何一个组织或是集体,实现它内部人员及事物的管理或是各个部门的协同工作
都是必要的。作为一个实验室,要管理许多不同种类设备的购入、报修、报废又要实现信息共享,愈来愈成为实验室管理员管理设备的一个难题。因此,一个便利的实验室设备管理系统在众人的期盼中需要实现。随着因特网发展的日新月异,人们利用网络来实现相互之间的协同工作以及资源共享越来越成为时代的潮流,一个不可扭转的趋势。目前,因特网已经深入到我们生活的各个领域——学校,银行,医院,公司,企业等等。因此,我们在这里用因特网来实现实验室的设备管理更是顺应了时代发展的方向。我们要实现的系统主要面向实验室管理员。管理员的主要任务是实现相应的信息发布,更新,录入工作,而学生、老师可以进行相应的查询事件。要实现这个系统,需要先调研,弄清楚实现成功管理的需求情况,以便于有的放矢。程序完成以后,需要调试运行,整个实现需要一个月左右。
§1.2 系统目标
该软件是一个相对独立的个体软件,便于实验室设备的管理,方便查看有关实验室设备的情况。实验室设备管理系统主要实现对设备信息的记录和查询,包括设备的入库(购入)、出库(报废、保修)登记,以及设备库存的查询。另外,设备要求按类别和时间段查询,每种设备属于一个具体的类别。设备的基本信息包括设备类别、设备号、编码、设备名、规格、单位、单价、数量、购置日期、生产厂家购买人等。
该软件绝大部分功能聚集在实验室设备的出入管理和实验课所需设备的安排上。是一个相对小型的独立系统,它最终要实现的目标就是要让大量实验室设备的管理变得更轻松。
§1.3运行环境
本系统针对Microsoft Windows 系统开发。运行于Windows98、ME Windows2000 sp3、WindowsXP。不支持Windows2003的操作系统环境。建议硬件配置PII以上 64M内存 300M硬盘空间。
§1.4用户特点
用户为管理实验室的老师,文化程度较高有一定的计算机操作基础。所以设计上尽量规范化正规化。符合一般软件的统一使用方法可以方便学习操作。
§2用户需求
§2.1 业务需求
1、使用范围
学校、科研机构、大型实验室
2、功能要求
(1)设备类别管理
设备类别管理功能主要用来实现对设备按类别管理的需求,我们知道设备类别分为各大类,每个大类下又包括若干小类,这正好可以用树状结构来进行管理。因此,只需提供建立类别、建立子类别和删除类别几项功能,就可以完成对设备类别的维护。 由于每类设备下可能包括子类别,也可能包含多种设备,因此在对设备类别进行删除时,如果该类别下有子类别则不能删除,如果该类别包含设备信息也不能删除。若不存在上述两种情况,则可以删除该类别。 (2)设备字典维护
设备字典维护用来记设备的基本信息,包括设备的类别、编码、设备名、设备号、规格、单价、数量、购置日期、生产厂家、购买人。在设备管理系统中建立了设备字典后,就可以根据每一设备进行设备的入库、出库和查询了。设备字典维护中提供增加和删除设备信息的功能。
设备信息的增加需要在一个设备类别下进行,这样所增加的设备就属于该设备类别。当删除设备信息时,需要判断入库或出库记录中是否有该设备,如果有就不能删除设备,否则可以进行删除。
(3)设备入库登记
设备入库登记主要提供设备入库信息的增加和删除功能。设备入库时可以从设备字典中选择设备,然后输入本次入库数量,这样就可以在入库台账中登记一笔入库信息,设备的基本信息自动从设备字典取得,入库日期则由系统自动赋值。 (4)设备出库(报修、报废)登记
与设备入库类似,设备出库登记也提供增加和删除功能。设备因报修或报废而出库时从设备字典中选择要出库的设备,并输入本次报修或报废的数量,此时系统需要判断库存的每类设备是否能够满足基本需用,如果不满足的话,系统将自动提示申请购置该类设备。
(5)设备查询
设备查询主要提供设备的入库、出库以及库存情况的信息查询功能。在系统管理过程中,可以随时统计、查询当前各种设备的购置入库、库存、报修、报废的情况。同时系统还提供按照设备类别和时间段(某日期之前)查询。 具体功能模块如图1所示
§2.2 性能需求
该设备管理系统主要实现的是信息的录入,删除,更新,因此,不管对设备管理的需要或是管理员获知信息的需要以及各个部门之间的紧密衔接关系,数据必须具有高度的完整性和准确性,这就要求系统的高度安全性,可维护性,可靠性及灵活性。比如设备购入信息管理,管理员在录入信息的时候或是数据库出现异常而产生差错,可能会影响正常使用,这就要求系统具有高度的安全性,可维护性和可靠性;灵活性指的是系统要具有强大的功能以适应不同层次的用户不同的需求。另外,系统的操作界面要求简便,通俗,以便于操作。
§2.3运行需求 §2.3.1用户界面
用户界面要求简洁明了,而且表单操作要求尽量避免使用鼠标。所以数据的填写,控件焦点的转换要自动进行。提交和撤销使用 回车 和 Esc。不同种类数据填写的顺序—即Tab的顺序要符合实际操作的习惯。而且要求在某些同样数据重复次数较多的控件上使用可选或记忆功能,简化操作。
§2.3.2软件接口
与外界数据库的连接接口。使软件通过网络使用公共数据库达到信息数据同步的功能。
数据交换图
§2.4 其他需求
要求界面适当美观,幽雅,通用性、操作性比较强
3.数据说明
3.1 动、静态数据
操作员信息、设备基本信息;
购买申请、购买记录、维修记录、报废记录、统计报表、口令信息。
3.2 数据文件描述
购买申请:由于申请的内容较少,所以不需要使用Excel表格的形式打印,本系统采用文本文件来保存申请表的购买信息;
统计报表:由于报表的内容比较多,需要用文档的形式保存并可打印。
3.3 数据流图与数据字典
数据字典是关于数据信息的集合,主要描述数据流、数据存储、数据元素的详细内容以及加工逻辑。它把数据的最小组成单位看作是数据元素,数据流和数据存储是由数据元素按一定的数据结构组成。
本系统的数据流程图如下图所示:
得出的WORD格式申请表
修理要求 = 管理员根据设备现有的损坏情况得出的需要修理信息 修理信息 = 修理人员根据修理要求,对设备进行修理后。根据实际的修理情况整理出的详细修理信息 批示意见 = 领导根据管理员递交的书面申请表中的详细信息,反馈给管理员的对申请同意与否的意见 控制命令 = 增加 | 删除 | 查询 | 修改 增加 = 通过系统向数据库添加新信息
删除 = 通过系统将数据库中的错误或陈旧数据删除
查询 = 根据提供的条件,对数据库进行查找,并返回查找结果 修改 = 通过系统对数据库的已有数据进行修改,保证数据的正确
操作信息 = 根据控制命令对系统进行操作,得出的操作结果
处理信息 = 管理员得到的关于设备购买、修理反馈回来的详细信息
收集信息 = 系统操作过程中得到的、新的、需要存入数据库的信息,更新数据库
存储信息 = 数据库中存储的信息,根据系统的操作要求需要传递给系统的信息
统计报表 = 修理信息统计表 | 报废信息统计表 | 设备资金统计表
修理信息统计表 = 一月一次的对实验室的设备修理信息进行汇总得出的书面表格
报废信息统计表 = 一月一次的对实验室的报废设备信息进行汇总得出的书面表格
设备资金统计表 = 一月一次的对本月实验室资金使用情况的统计表格 3 数据存储
数据库=用户信息表 | 申请信息表 | 设备记录表 | 购买记录表 | 修理信息表 | 报废记录表
用户信息表 = 数据库中存储管理员允许创建的,合法的用户信息存储表 申请信息表 = 数据库中存储所有申请记录的存储表
设备记录表 = 数据库中存储实验室现有设备详细信息的存储表 购买记录表 = 数据库中存储购买设备信息的存储表 修理信息表 = 数据库中存储设备修理信息的存储表
报废记录表 = 数据库中存储所有报废设备详细信息的存储表
3.3.2 1级数据流图的数据字典 1 数据处理 申请管理 = 整理、处理零散的申请信息,并以表格形式反馈给管理员 统计、管理及查询处理 = 管理设备信息,提供各种设备信息查询,及对各种设备信息进行统计以表格形式输出 购买处理 = 整合申请表信息及设备购买要求形成详细设备购买信息送部门采购人员 修理处理 = 根据系统传递过来的修理要求整合成详细修理要求送修理人员 报废处理 = 根据管理员的报废命令,对需报废设备进行信息整理,操作相应数据库表,形成报废信息送数据库 2 数据流 提出 = 管理员根据需要调用申请管理模块的控制命令 已批申请表 = 包括领导同意信息和设备需求信息的申请表 报废 = 管理员根据需要调用报废管理模块的控制命令 申请信息 = 所有设备购买申请记录详细信息 报废信息 = 响应管理员报废命令,经过报废处理后整理的详细设备报废信息
.3、2级数据流图数据字典 1 数据处理
用户命令识别 = 识别控制命令,分别调用各处理模块 处理信息存储 = 接受购买、修理等信息,存入数据库 整理操作信息 = 整理系统操作信息,显示送管理员处 申请命令处理 = 接受命令,调用申请模块
统计命令处理 = 接受统计命令,读取数据库信息,统计整理信息,产生月设备资金统计表,修理/报废注销表,购买申请表
实验室设备管理系统 概要设计说明书
[DN1.0]
拟制人:葛平军 审核人:王振铎 批准人:修 宇 [2006年11月18日]
1.引言....................................................................... 1.1 编写目的................................................................. 1.2 编写背景................................................................. 1.3 术语说明................................................................. 1.4 参考资料................................................................. 2. 任务概述.................................................................. 2.1 目标..................................................................... 2.2 运行环境................................................................. 2.3 需求概述................................................................. 2.4 条件及限制............................................................... 3. 总体设计.................................................................. 3.1 处理流程................................................................. 3.2 总体设计及模块外部设计................................................... 3.3 功能分配................................................................. 4. 接口设计.................................................................. 4.1 外部接口................................................................. 4.2 内部接口................................................................. 5. 数据结构设计.............................................................. 5.1 逻辑结构设计............................................................. 5.2 物理结构设计............................................................. 5.3 数据结构与程序的关系..................................................... 6. 运行设计.................................................................. 6.1 运行模块的组合........................................................... 6.2 运行控制................................................................. 6.3 运行时间.................................................................
7. 出错处理设计.............................................................. 8. 安全保密设计.............................................................. 9. 维护设计..................................................................
概要设计说明书
1.引言 1.1编写目的
该设计说明概括了实验室设备管理系统的整体结构和相关模块分类。为详细设计阶段的工作指导方向。主要帮助系统设计人员确立模块种类,分解系统的功能。
1.2 说明
系统名称:实验室设备管理系统
2.总体设计 2.1运行环境
(1) 设备需求:实验室设备管理部门的电脑(PIII CPU以上,256MB内存)。 (2) 操作系统:Windows2000/XP/NT Service。
(3) 系统开发工具是Delphi 7.0,以SQL server为后台数据库。
2.2处理流程
处理流程图
2.3总体结构和模块外部设计
系统模块设计图
2.4功能分配
3. 运行设计 3.1运行模块的组合
模块功能的组合:
模块功能组合图
3.2运行控制
键盘输入查询标志进行查询:键盘输入查询的标志,点击查询按钮在相关
位置显示查询结果。
4.出错处理设计 4.1出错输出信息
1、表单填写时输入错误查询条件:“输入错误!” 2、表单填写时出现错误格式:“格式有误,请重新填写!”
3、查询时条件空缺:“请输入查询条件!” 4、查询时输入条件格式有误:“查询条件格式不正确!” 5、查询时没有与查询标志相吻合届结果:“设备表为空,不能查询” 6、设备因缺损空缺:“该设备已损,不能安排使用!”
4.2出错处理对策
1-5类错误重新填写或补填即可解决。6类错误核对设备情况重新作安排。
5.安全保密设计
设置系统管理员权限和操作员权限两个级别。管理员有更改操作权限和备份与恢复数据库的权利。操作员只有查询和新设备入库的权利。管理员和操作员各设置自己的不同密码。密码要求最少6位,数字与字母相结合。
实验室设备管理系统
详细设计说明书
[DN1.0]
拟制人:葛平军 审核人:王振铎 批准人:修 宇 [2006年11月17日]
详细设计说明书
1.引言 1.1编写目的
该书明书详细描述了该系统的详细功能和结构。是开发实施阶段编写代码的依据。程序编写人员要严格依照该说明书的要求编写代码以实现内部的功能。
1.2 说明
系统名称:实验室设备管理系统
1.3参考资料
《软件工程与软件开发工具》 张虹 编著 ——北京:清华大学出版社 《数据库系统概论》萨师煊 王珊 编著 ——高等教育出版社 《软件工程》齐治昌 谭庆平 宁洪 编著 ——高等教育出版社
2.总体设计 2.1需求概述
开发一套能够适用于我校各个学院实验室的实验室设备管理系统,能够使
实验室设备的管理达到方便快捷无纸化的程度。
该软件是一个相对独立的个体,绝大部分功能聚集在实验室设备的出入管理和实验课所需设备的安排上。是一个相对小型的独立系统,它最终要实现的目标就是要让大量实验室设备的管理变得轻松明了。课程所需设备的安排上简洁准确。
2.2软件结构
软件结构图
3.程序描述 3.1算法
A:入库操作:
1:入库单初始化 设备名称的输入
declare my_cursor dynamic cursor for sqlsa;
prepare sqlsa from "select 设备名称 from t_shebeizidian order by 设备编号";
open dynamic my_cursor;
fetch my_cursor into:ls_sbmc; do while sqlca.sqlcode = 0 ddlb_2.additem(ls_sbmc)
fetch my_cursor into :ls_sbmc; loop
close my_cursor;
进货人的选择
declare my_cursor1 dynamic cursor for sqlsa;
prepare sqlsa from "select 进货人 from t_ruku order by 设备编号"; open dynamic my_cursor;
fetch my_cursor into:ls_jinhuoren; do while sqlca.sqlcode = 0
ddlb_4.additem(ls_jinhuoren)
fetch my_cursor1 into :ls_jinhuoren; loop
close my_cursor1;
在库位置的输入
declare my_cursor2 dynamic cursor for sqlsa;
prepare sqlsa from "select 在库位置 from t_kucun order by 流水号";
open dynamic my_cursor2;
fetch my_cursor2 into:ls_weizhi; do while sqlca.sqlcode = 0 ddlb_5.additem(ls_weizhi)
fetch my_cursor2 into :ls_weizhi; loop
close my_cursor2;
if ddlb_5.totalitems()>0 then 提取上次操作信息
ls_lastkucun=profilestring("weizhi.ini","位置信息","上次入库位置","")
if ls_lastkucun="" then ddlb_5.selectitem(1) else
ddlb_5.selectitem(ls_lastkucun,0)
end if end if
提取流水号
SELECT t_liushui.liushui INTO :ls_liushui FROM t_liushui ; sle_3.text=ls_liushui
em_1.text=string(today(),"yyyy/mm/dd/ hh:mm")
2:提交入库单:
检查数据录入窗口是否填写完整
if em_2.text="" or isnull(em_2.text) then messagebox("缺少数据","请输入设备编号!") em_2.setfocus() return
elseif sle_4.text="" or isnull(sle_4.text) then messagebox("缺少数据","请输入设备规格!") sle_4.setfocus() return
elseif ddlb_2.text="" or isnull(ddlb_2.text) then messagebox("缺少数据","请输入设备名称!") ddlb_2.setfocus() return
elseif sle_1.text="" or isnull(sle_1.text) then messagebox("缺少数据","请输入设备数量!") sle_1.setfocus( ) return
elseif ddlb_3.text="" or isnull(ddlb_3.text) then messagebox("缺少数据","请输入计量单位!") ddlb_3.setfocus( ) return
elseif ddlb_4.text="" or isnull(ddlb_4.text) then messagebox("缺少数据","请输入进货人姓名!") ddlb_4.setfocus( ) return
elseif ddlb_5.text="" or isnull(ddlb_5.text) then messagebox("缺少数据","请输入库存的位置!") ddlb_5.setfocus( ) return
elseif em_1.text="" or isnull(em_1.text) then messagebox("缺少数据","请输入入库时间!")
em_1.setfocus( ) return
elseif sle_2.text="" or isnull(sle_2.text) then messagebox("缺少数据","请输入保管员姓名!") sle_2.setfocus( ) return end if
把得到数据赋值给变量
ls_number=trim(em_2.text) ls_name=trim(ddlb_2.text) ls_shuliang=trim(sle_1.text) ls_danwei=trim(ddlb_3.text) ls_jinhuoren=trim(ddlb_4.text) ls_weizhi=trim(ddlb_5.text)
ls_baoguanyuan=trim(sle_2.text) ls_guige=trim(sle_4.text) ls_liushui=sle_3.text ls_zhuangtai=sle_5.text ld_date=date(em_1.text)
向数据库存入数据 向入库单存入数据 INSERT INTO t_ruku ( 设备编号, 设备数量, 入库时间, 进货人, 保管员, 流水号)
VALUES ( :ls_number, :ls_shuliang, :ld_date,
:ls_jinhuoren, :ls_baoguanyuan, :ls_liushui); 向库存单存入数据
INSERT INTO t_kucun ( 设备编号, 数量, 在库位置, 流水号, 状态) VALUES ( :ls_number,
:ls_shuliang,
:ls_weizhi,
:ls_liushui,
:ls_zhuangtai);
结束一次录入操作
em_1.text=""
em_2.text=""
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
ddlb_2.text=""
ddlb_3.text=""
ddlb_4.text=""
ddlb_5.text=""
em_2.setfocus( )
open(w_sucessruku)
B:设备查询
查询所有设备
dw_1.dataobject="dw_kucun"
dw_1.settransobject(sqlca)
dw_1.retrieve()
查询损坏设备
dw_1.dataobject="dw_sunhuai"
dw_1.settransobject(sqlca)
dw_1.retrieve()
按名称查询
sql_syntax =" SELECT t_kucun.设备编号,t_shebeizidian.设备名称," + &
"t_shebeizidian.设备规格,t_kucun.数量,t_kucun.在库位置 " + & " FROM t_kucun,t_shebeizidian " + &
" WHERE t_kucun.设备编号 = t_shebeizidian.设备编号 and " + & " t_kucun.设备编号 = '" + ls_cx + "'"
presentation_str = "style(type=grid)"
dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax, &
presentation_str, ERRORS)
IF Len(ERRORS) > 0 THEN
MessageBox("Caution", &
"SyntaxFromSQL caused these errors: " + ERRORS)
RETURN
END IF
dw_1为空数据窗口
dw_1.Create( dwsyntax_str, ERRORS)
IF Len(ERRORS) > 0 THEN
MessageBox("Caution", &
"Create cause these errors: " + ERRORS)
RETURN
ELSE
dw_1.settransobject(sqlca)
dw_1.retrieve()
END IF
C:登录密码判断
setpointer(hourglass!)
declare my_cursor dynamic cursor for sqlsa;
prepare sqlsa from "select id from t_userid order by id"; open dynamic my_cursor;
fetch my_cursor into:ls_opid;
do while sqlca.sqlcode = 0
ddlb_1.additem(ls_opid)
fetch my_cursor into :ls_opid;
loop
close my_cursor;
if ddlb_1.totalitems()>0 then
ls_lastid=profilestring("user.ini","操作员信息","上次登录操作员姓名","")
if ls_lastid="" then
ddlb_1.selectitem(1)
else
ddlb_1.selectitem(ls_lastid,0)
end if
end if
D:课程管理
设备名称的输入
declare my_cursor dynamic cursor for sqlsa;
prepare sqlsa from "select 设备名称 from t_shebeizidian order by 设备编号";
open dynamic my_cursor;
fetch my_cursor into:ls_sbmc;
do while sqlca.sqlcode = 0
ddlb_1.additem(ls_sbmc)
fetch my_cursor into :ls_sbmc;
loop
close my_cursor;
3.2存储分配
数据库结构关系图:
3.3测试要点
表单提交过程的准确性和排课的准确性
多台计算机使用和提交同类数据时互斥操作和数据安全性。