实验项目:实验室设备管理系统一、项目管理:阶段时间及实验任务参与人员产生文档项目管理2009.10.27实验一确定课题,组织组员,合理分工。分工明细及项目进程表需求分析2009.10.27实验一确定软件的功能和需求、性能需求和运行环境约束,编制软件需求规格说明、软件系统的确认测试准则需求规格说明书确认测试准则概要设计2009.10.27验一建立软件系统的总体结构和模块间的关系,定义各功能模块的接口,涉及全局数据库,规定涉及约束,制定组装测试计划。概要设计说明书组装测试计划数据库设计2009.10.28实验二根据概要设计对本软件所必须的数据库进行分析及设计数据库设计说明书详细设计2009.10.28实验二对概要设计产生的功能模块逐步细化,形成若干个可编程的程序模块模块测试方案编码2009.10.282009.10.29实验三根据详细设计文档将详细设计转化为所要求的编程语言或数据库语言的程序,并对这些程序进行调试和程序单元测试,验证程序模块与详细设计文档的一致性源程序清单测试单元测试2009.10.282009.10.29实验三采用白盒测试技术进行如下测试:1.模块接口测试;2.模块局部数据结构测试;3.模块边界条件测试;4.模块中所有独立执行通路测试;5.模块的各条错误处理通单元测试报告路测试。综合测试2009.10.29实验三发现与接口有关的各种错误综合测试报告确认测试2009.10.29实验三检查软件是否满足软件需求说明书中的确认标准确认测试报告项目实施2009.10.292009.10.30实验四完善程序流图书写软件使用说明书和用户手册项目开发总结报告最终用户手册二、软件需求分析1软件系统需求描述:实验室设备管理系统是利用Eclipse作为开发工具、sqlsetver作为数据库的系统。要求实现如下功能:⑴所有工作由专门人员负责完成,其他人不得任意使用;⑵对于已彻底损坏的作报废处理,同时详细记录有关信息;⑶对于有严重问题(故障)的要即使修理,并记录修理日期、设备名、修理厂家、修理费、责任人等;⑷对于急需但又缺少的设备需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、型号、规格、单价、数量、购置日期、生产厂家、购买人等),同时更新申请表的内容;⑸随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段(某日期之前)查询。本管理系统通过计算机对实验设备进行自动管理,设备管理员可以直接在计算机实现实验设备的信息管理,并在一定程度上实现自动化,改善了工作运行效率和效果。2软件系统数据流图1)顶层数据流图设备管理员上级领导实验室设备管理系统登陆信息审核信息无效登陆信息审核结果申请/维修/报废/查询操作处理结果2)0层数据流图身份验证1处理要求2审核3登陆信息无效登陆信息合法信息合法信息处理要求审核信息审核结果处理结果3)一层数据流图身份验证1合法信息统计查询2.1维修2.2购买2.3报废2.4审核3查询信息维修设备报废设备批准申请设备批准报废设备新设备设备基本信息表维修记录表申请表新设备表报废记录表4)总数据流图设备管理员身份验证1统计查询2.1维修2.2购买2.3报废2.4生成报表3.1审核3.2上级领导登陆信息无效登陆信息设备基本信息表维修记录表新设备表申请表报废记录表报废设备登陆表查询信息维修设备新设备申请信息审核信息审核结果报表批准更新更新合法信息3软件系统数据字典:1、数据流条目①登陆信息输入:设备管理员输出:身份验证1描述:登陆信息=用户名+密码+登陆权限②查询信息输入:合法人员对设备的查询操作输出:设备信息表描述:查询信息=设备名/型号/类别/购置日期③维修信息输入:所需维修设备的信息输出:确定维修设备的记录描述:维修信息=设备名+修理日期+修理厂家+修理费+负责人④新设备输入:购买设备的信息输出:确定购买的新设备的记录描述:新设备=类别+设备名+型号+规格+单价+数量等⑤报废设备输入:所需报废的设备的信息输出:报废的设备记录描述:报废设备=类别+设备名+型号等⑥审核信息输入:审核3输出:上级领导描述:审核信息=报废设备信息/新设备购买记录2、加工条目身份验证1,统计查询2.1,维修2.2,购买2.3,报废2.4,生产报表3.1,审核3.23、文件条目①登陆表输入:身份验证1输出:身份验证1数据结构:用户名+密码+登陆权限②设备基本信息表输入:统计查询2.1数据结构:类别+设备名+型号+规格等③维修记录表输入:统计查询2.1,维修2.2输出:统计查询2.1数据结构:设备名+修理日期+修理厂家+修理费+责任人等④新设备表输入:统计查询2.1,购买2.2输出:统计查询2.1数据结构:类别+设备名+型号+规格+单价+数量+生产厂家+购买人等⑤报废记录表输入:报废2.4,统计查询2.1,生产报表3.1输出:统计查询2.1,生产报表3.1数据结构:类别+设备名+型号等⑥申请表输入:统计查询2.1,生产报表3.1输出:统计查询2.1,生产报表3.1,购买2.3数据结构:设备名+型号+规格+数量+负责人三:软件设计1实验室设备管理系统模块结构图2界面设计实验室设备管理系统系统功能操作设备管理员操作上级领导操作用户登陆管理系统维护管理设备查询管理设备维修管理设备购买管理设备报废管理审核管理3实验室设备管理系统数据设计设备管理员用户名密码登陆权限管理设备设备名设备号类型审核上级领导用户名密码4管理系统其中的3个模块的详细设计①上级领导操作模块进入操作界面开始查询审核信息等待审核?审核操作退出YN②设备管理员操作模块开始操作界面操作要求?选择操作类型设备操作管理退出YN③统功能操作模块用户登陆开始合法性检查有效登陆信息?身份验证操作界面结束NY5数据库设计①登陆表列名数据类型长度允许空用户名varchar50notnull密码varchar50notnull登陆权限char10notnull②设备基本信息表列名数据类型长度允许空设备型号varchar10notnull设备名varchar20notnull规格varchar10notnull单价float8null购买日期datetime8null生产厂家varchar20null购买人varchar10null数量Int4null③维修记录表列名数据类型长度允许空列名设备型号varchar10notnull设备名varchar20notnull维修日期datetime8null维修厂家varchar30null维修费用float8null责任人varchar10null④报废记录表列名数据类型长度允许空设备型号varchar10notnull设备名varchar20notnull报废日期datetime8null责任人varchar10null⑤申请表列名数据类型长度允许空设备名varchar10notnull日期Datatime8notnull规格varchar10notnull数量int4null申请人Varchar10Null四、编码与单元测试1、各模块示意图2、用户登录界面:packageshebeiguanli;importjava.applet.*;importjava.sql.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importcom.borland.jbcl.layout.*;/***pTitle:实验室设备管理系统登录界面/p*@authorgengdexin*@version1.0*/publicclassLogextendsJFrame{/**构建显示对象*/JPanelcontentPane;XYLayoutxYLayout1=newXYLayout();JPasswordFieldpassword=newJPasswordField();JLabeljLabel1=newJLabel();JLabeljLabel2=newJLabel();JLabeljLabel4=newJLabel();JTextFieldjTextField1=newJTextField();JLabeljLabel3=newJLabel();JLabeljLabel5=newJLabel();JLabeljLabel6=newJLabel();publicLog(){enableEvents(AWTEvent.WINDOW_EVENT_MASK);try{jbInit();}catch(Exceptione){e.printStackTrace();}}privatevoidjbInit()throwsException{contentPane=(JPanel)this.getContentPane();password.addActionListener(newLog_password_actionAdapter(this));contentPane.setLayout(xYLayout1);this.setSize(newDimension(500,400));this.setTitle(实验室设备管理系统);jLabel1.setFont(newjava.awt.Font(SansSerif,0,25));jLabel1.setForeground(Color.red);jLabel1.setText(欢迎进入实验室设备管理系统);jLabel2.setFont(newjava.awt.Font(SansSerif,0,20));jLabel2.setText(姓名);jTextField1.setText();jLabel3.setFont(newjava.awt.Font(SansSerif,0,20));jLabel3.setText(密码);jLabel4.setFont(newjava.awt.Font(SansSerif,0,20));jLabel4.setText(开发人员:耿德新蔺明亮毛冬冬);jLabel5.setFont(newjava.awt.Font(SansSerif,0,20));jLabel5.setText(李章华吕文强顾海驹);jLabel6.setFont(newjava.awt.Font(SansSerif,0,15));jLabel6.setForeground(Color.red);jLabel6.setText(交流:gengdxin@163.com);contentPane.add(jLabel1,newXYConstraints(80,10,350,34));contentPane.add(jLabel2,newXYConstraints(92,142,-1,-1));contentPane.add(jTextField1,newXYConstraints(130,145,91,26));contentPane.add(jLabel3,newXYConstraints(222,144,-1,-1));contentPane.add(password,newXYConstraints(263,144,105,28));contentPane.add(jLabel4,newXYConstraints(50,250,-1,-1));contentPane.add(jLabel5,newXYConstraints(150,280,-1,-1));contentPane.add(jLabel6,newXYConstraints(100,340,-1,-1));}protectedvoidprocessWindowEvent(WindowEvente){super.processWindowEvent(e);if(e.getID()==WindowEvent.WINDOW_CLOSING){System.exit(0);}}voidpassword_actionPerformed(