1、软件体系结构课程设计 设计题目: 实验室设备管理系统 姓 名: 学 号: 同组组长: 同组其他成员: 实验指导教师: 实验地点: 完成日期: 目 录一、 概述(目的、任务、开发环境、参考资料)二、 采用的主要方法与技术三、 需求分析 四、 设计五、 实现过程与步骤六、 遇到的困难与获得的主要成果七、 测试与运行记录八、 完成结果分析与总结九、 附录(软件配置、个人完成的程序模块和文档清单)一、 概述(目的、任务、开发环境、参考资料) 21世纪以来,人类经济高速发展,人们发生了日新月异的变化。随着时代的发展,教育越来越需要实验,让学生从实验中得到更多,更扎实的知识。因此学校也需要对实验室的实验设
2、备进行更多的投入,而投入之后就带来了管理方面的问题。我们做的这个系统主要是对设备的购买、维修、报废等方面进行了一定的管理,可以让设备进行有序、有效的管理,为管理人员节约一些因为管理混乱而浪费的时间。不过系统的功能还不够完善,性能也还不够稳定,有待于以后不断的进行完善。 实现的功能如下:(1) 对于已彻底损坏的做报废处理,同时详细记录有关信息。(2) 对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。(3) 对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单
3、价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容。(4) 随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等查询。 二、 采用的主要方法与技术 软件工程是一门从技术和组织管理两个角度研究如何用系统化、规范化和数量化等工程原理与方法去进行软件开发和维护的学科。软件工程学研究的范围非常的广泛,包括技术方法、工具、和管理等许多方面。软件生命周期的各个阶段可分为:问题定义:确定系统的基本功能可行性研究:确定系统是否能够实现及是否值得实现需求分析:确定系统必须完成的各种功能总体设计:确定如何实现软件详细设计:详细设计实现系统编码和单元测试:写出正确的容易理
4、解和维护的程序模块综合测试:通过各种类型的测试及调试使软件达到预订的要求 软件维护:通过各种必要的维护活动使系统持久的满足用户需要采用软件工程的技术开发本系统,通过以上八个阶段组成的软件生存期。它是指从提出开发要求开始直到该软件报废为止的整个时期。分阶段进行,就把规模庞大、结构复杂和管理复杂的软件变得很容易控制和管理。 本系统主要利用Visual Basic作为前端的应用开发工具,利用ACCESS作为后台的数据库,利用Windows XP作为系统平台。 Windows xp以其友好的图形界面、易学易用的操作方法、强大的多任务功能、健全的内在管理以及先进的程序设计方法为广大数据库软件开发人员嗦熟
5、悉。对它的操作环境熟悉,使得我们在其开发数据库应用程序更加方便、可靠。三、 需求分析 (该过程参考西方和本国制定的软件需求规范说明书相关标准)管理员可以对实验室设备信息进行查询及相关实验室设备的使用情况查看。管理员可以根据本人用户名及密码登录系统。在信息系统中,后台数据库存储的地位相当重要,数据库的设计不但对数据的操作速度有影响,还直接关系到软件系统的质量和生存周期,本系统数据库中包括教师资料数据表、借用设备表、仪器表、用户登录表。系统首先必须维护实验室中详细资料的数据表,程序能对该表进行写入和读出数据的操作。相应的,该表还有记录读者的借用情况,系统通过该表判断读者是否满足借用条件。系统还要管
6、理员信息表,记录管理员的资料,检验管理员的登录,管理员的权限等。1、目的 1)便于用户、分析人员和软件设计人员进行理解和交流 2)希望系统的外部项均支持目标软件系统的确认。根据需求规格说明书中确立的可测试标准进行测试,并得到确认。 3)控制系统进化过程2、软件产品的作用范围 学校、科研机构、大型实验室 3、功能需求 1)设备预订:实现实验人员在系统平台上查询库内实验设备的状态及其在某一时段的使用状态,若无损坏且未被预订使用,则用户可以预订使用。 2)设备管理:实现现在仓库中的每样设备信息的登记和新设备的入库登记,旧设备的报修、报废处理、以及设备状态的更改。 3)设备的借出:按照教师所需设备给予
7、借出,并在数据库中更改这些设备的使用状态 4)设备的归还:按照教师所还设备而进行入库登记,并在数据库中更改这些设备的使用状态。 5)设备报修:实验人员在实验过程中如果发现设备损坏,通过此系统报告给管理员,同时修改数据库中的设备状态。 4、数据库需求 用户的需求具体体现在各种信息的提供、保存、更新和查询,要求数据库结构能够充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详细的数据字典。四、 设计(该过程参考西方和本国制定的软件设计规范说明书相关标准) 1、总体设计 原理:总体设计的基本目的就是回答“概括的说,系统应该如何实现?”这个问题。因此,总体设计又称为概要设
8、计或初步设计。通过这个阶段的工作将计划分出组成系统的物理元素-程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互之间的关系。 总体设计工程通常有两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计确定软件机构,也就是要确定系统中每个程序拥有哪些模块组成,以及这些模块之间的关系。在详细设计之前进行总体设计可以站在全局的高度上,花较少的成本,从中选出最佳的方案和最合理的软件结构,从而用较低的成本开发出高质量的软件系统。
9、2、详细设计 数据库的概念设计:根据对数据流图和数据字典的分析,确定该应用中的实体、属性、和实体之间的联系,并画出系统总体E-R图。概念设计可以分为三部进行:首先设计局部E-R模式,然后把各局部E-R模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。 局部E-R模式设计:实体和属性的定义。ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个
10、实体类型之间是否存在联系,等等。 利用ER方法进行数据库的概念设计,可以分三个步骤进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后把全局ER模式进行优化,得到最终的模式。所有局部ER模式设计好了之后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。 1)局部ER模式的合并 合并的原则是:首先进行两两合并;先合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部机构。 2)消除冲突 冲突分为三类:属性冲突、结构冲突、命名冲突。 设计全局ER模式的目的不在于把若干全
11、局ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。 3)全局ER模式的优化 在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面的反映用户功能需求外,还应该满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能的少;实体类型间联系无沉余 “实验室设备管理系统”数据流图与数据字典 书面申请表 批示意见 购买申请及后续批示 电子申请表 操作信息 统计报表 控制命令 采购信息 处理信息 修理信息 采购要求 修理要求 收集信息 存储信息图(1) “ 实验室设备
12、管理系统”顶层数据流图管理员领导修理人员采购人员实验室设备管理系统数据库1、顶层数据流图的数据字典:1)外部实体:管理员=系统的唯一管理人员,拥有对系统的最高使用权限。负责对系统数据的录入、分析和处理。同时根据其他外部实体或系统输出信息,作出相应的处理。修理人员 = 根据系统提供的修理要求,对设备进行修理的专门人员,并负责将详细的修理信息送交管理员2) 数据流电子申请表 = 系统根据管理员的输入信息,按照申请表的格式将信息整理,得出的WORD格式申请表修理要求 = 管理员根据设备现有的损坏情况得出的需要修理信息修理信息 = 修理人员根据修理要求,对设备进行修理后。根据实际的修理情况整理出的详细
13、修理信息批示意见 = 领导根据管理员递交的书面申请表中的详细信息,反馈给管理员的对申请同意与否的意见控制命令 = 增加 | 删除 | 查询 | 修改增加 = 通过系统向数据库添加新信息删除 = 通过系统将数据库中的错误或陈旧数据删除查询 = 根据提供的条件,对数据库进行查找,并返回查找结果修改 = 通过系统对数据库的已有数据进行修改,保证数据的正确操作信息 = 根据控制命令对系统进行操作,得出的操作结果处理信息 = 管理员得到的关于设备购买、修理反馈回来的详细信息收集信息 = 系统操作过程中得到的、新的、需要存入数据库的信息,更新数据库存储信息 = 数据库中存储的信息,根据系统的操作要求需要传
14、递给系统的信息统计报表 = 修理信息统计表 | 报废信息统计表 | 设备资金统计表修理信息统计表 = 一月一次的对实验室的设备修理信息进行汇总得出的书面表格报废信息统计表 = 一月一次的对实验室的报废设备信息进行汇总得出的书面表格设备资金统计表 = 一月一次的对本月实验室资金使用情况的统计表格3) 数据存储数据库=用户信息表 | 申请信息表 | 设备记录表 | 购买记录表 | 修理信息表 | 报废记录表用户信息表 = 数据库中存储管理员允许创建的,合法的用户信息存储表申请信息表 = 数据库中存储所有申请记录的存储表设备记录表 = 数据库中存储实验室现有设备详细信息的存储表购买记录表 = 数据库
15、中存储购买设备信息的存储表修理信息表 = 数据库中存储设备修理信息的存储表报废记录表 = 数据库中存储所有报废设备详细信息的存储表书面申请表批示意见 购买申请及后续批示 电子申请表 控制命令 统计 报表 处理信息 操作信息修 采 提理 购 出详 详 已情 情 批 申 请 表 购买 要求 申 请 信 修 报 息 购 理 废 存储信息 买 要 收集信息 信 求 息 报废信息 修理信息图(2)“实验室设备管理系统”1级数据流图管理员领导修理人员数据库申请管理统计管理及查询处理购买处理修理处理报废管理采购人员2、1层数据流图的数据字典1) 数据处理申请管理 = 整理、处理零散的申请信息,并以表格形式反
16、馈给管理员统计、管理及查询处理 = 管理设备信息,提供各种设备信息查询,及对各种设备信息进行统计以表格形式输出购买处理 = 整合申请表信息及设备购买要求形成详细设备购买信息送部门采购人员修理处理 = 根据系统传递过来的修理要求整合成详细修理要求送修理人员报废处理 = 根据管理员的报废命令,对需报废设备进行信息整理,操作相应数据库表,形成报废信息送数据库2) 数据流提出 = 管理员根据需要调用申请管理模块的控制命令已批申请表 = 包括领导同意信息和设备需求信息的申请表报废 = 管理员根据需要调用报废管理模块的控制命令申请信息 = 所有设备购买申请记录详细信息报废信息 = 响应管理员报废命令,经过
17、报废处理后整理的详细设备报废信息 提出 申请命令 购买要求控制命令 购买命令 修理命令 修理要求 查询命令 统计命令 处理信息 存储信息 存储信息 存储处理信息 统计报表 操作信息 图(3)“统计管理及查询处理” 2级数据流图用户命令识别整理操作信息处理信息存储申请命令处理修理命令处理查询命令处理购买命令处理统计命令处理3、 级数据流图数据字典1) 数据处理用户命令识别 = 识别控制命令,分别调用各处理模块处理信息存储 = 接受购买、修理等信息,存入数据库整理操作信息 = 整理系统操作信息,显示送管理员处申请命令处理 = 接受命令,调用申请模块统计命令处理 = 接受统计命令,读取数据库信息,统
18、计整理信息,产生月设备资金统计表,修理/报废注销表,购买申请表五、 实现过程与步骤 1、“实验室设备管理系统”的顶层数据流图如下:管理员领导实验室设备管理系统采购人员数据库“实验室设备管理系统”数据字典的定义如下:1、 顶层数据流图的数据字典: 1) 外部实体:管理员=系统的唯一管理人员,拥有对系统的最高使用权限。负责对系统数据的录入、分析和处理。同时根据其他外部实体或系统输出信息,作出相应的处理。修理人员 = 根据系统提供的修理要求,对设备进行修理的专门人员,并负责将详细的修理信息送交管理员 2) 数据流修理要求 = 管理员根据设备现有的损坏情况得出的需要修理信息修理信息 = 修理人员根据修
19、理要求,对设备进行修理后。根据实际的修理情况整理出的详细修理信息批示意见 =管理员根据递交的书面申请表中的详细信息,给员的出对申请同意与否的意见控制命令 = 增加 | 删除 | 查询 | 修改增加 = 通过系统向数据库添加新信息删除 = 通过系统将数据库中的错误或陈旧数据删除查询 = 根据提供的条件,对数据库进行查找,并返回查找结果修改 = 通过系统对数据库的已有数据进行修改,保证数据的正确操作信息 = 根据控制命令对系统进行操作,得出的操作结果处理信息 = 管理员得到的关于设备购买、修理反馈回来的详细信息收集信息 = 系统操作过程中得到的、新的、需要存入数据库的信息,更新数据库存储信息 =
20、数据库中存储的信息,根据系统的操作要求需要传递给系统的信息统计报表 = 修理信息统计表 | 报废信息统计表 | 设备资金统计表修理信息统计表 = 一月一次的对实验室的设备修理信息进行汇总得出的书面表格报废信息统计表 = 一月一次的对实验室的报废设备信息进行汇总得出的书面表格设备资金统计表 = 一月一次的对本月实验室资金使用情况的统计表格3) 数据存储数据库=用户信息表 | 申请信息表 | 设备记录表 | 购买记录表 | 修理信息表 | 报废记录表用户信息表 = 数据库中存储管理员允许创建的,合法的用户信息存储表申请信息表 = 数据库中存储所有申请记录的存储表设备记录表 = 数据库中存储实验室现
21、有设备详细信息的存储表购买记录表 = 数据库中存储购买设备信息的存储表修理信息表 = 数据库中存储设备修理信息的存储表报废记录表 = 数据库中存储所有报废设备详细信息的存储表2、在将分析报告转换成设计报告的过程中,采用变换分析方法,根据数据流图转换成程序结构的模块,具体的模块结构和各个模块之间的关系如下图所示:“实验室设备管理系统”程序结构“雏形”设备管理系统执行新数据输入控制模块信息输出获取用户信息输入新数据分块管理申请信息数据库存储信息损坏设备的情况六、 遇到的困难与获得的主要成果 通过对本实验室设备管理系统的设计,使我们认识到软件开发过程实际上就是描述现实世界的过程。而由现实世界像软件模
22、型的转化过程是其中最核心的过程。在课程设计的过程中我们遇到了许多问题,如在分析阶段不能完全正确的把握住系统的功能描述,设计数据流图时出现了很大的问题,在与同学们的讨论过程中,解决了这些问题。 本次实验使我们得到一次难得的锻炼机会,加深了对理论知识的理解,丰富了实践经验,让我从整体的程序开发到具体软件的设计都有了一个全面的掌握,为我们即将从事的工作打下了坚实的基础!该系统还有许多不尽人意的地方,用户界面设计的不够完美,统计功能还不完善等,这些都有待进一步的改善。但本次实验提高了我们实际操作的能力,从以前的理论上升到实践,从感性认识上升到理性认识,真正做到学有所用。七、 测试与运行记录1引言1)
23、目的以文件的方式记载组装测试和确认测试的结果、发现问题以及分析评价,它是作为软件验收的依据之一。2测试结果软件测试步骤有:单元测试、集成测试、确认测试和系统测试,在此就只对单元测试进行叙述,其他均略。3软件功能结论1) 模块名称(“添加新设备”模块)2) 功能 主要就上实现那些由采购人员买入的新设备,通过一个申请表的形式添加到系统的数据库中,同时添加一些这些设备的基本情况。以便与日后的查询,使用和管理。4分析摘要1) 能力本系统基本完成了用户的软件需求。2) 缺陷和影响3) 软件错误4) 评价 该系统虽然基本完成了用户的软件需求,但还有很多地方还需要改善和完善。例如:系统的界面,还有系统的功能
24、还没有完善,稳定性不够等。运行记录: 这个模块的主要功能:为软件建立数据库,在运行时提供数据的连接。八、 完成结果分析与总结1. 管理员登入界面1)模块的功能描述: 本模块主要是为实验室的管理人员提供管理的有保护的登入。阻止一些非法的用户进入。2) 界面设计 3)代码实现(主要部分)String s1,s2select *into :s1,:s2from Useridwhere userid=:sle_1.text;if sqlca.sqlcode=100 thenmessagebox(提示信息,用户名或密码错误!)elseif sqlca.sqlcode=-1 thenmessagebox(
25、提示信息,连接数据库失败!) elseif s2=sle_2.text thenopen(w_main)close(w_login)end if2. 系统主界面1)系统主界面的功能描述: 此模块主要是管理员可以在这里查看到目前系统中总共有多少设备在库以及各个设备的一些基本情况。还可以实现排序和登入各个子模块实现具体的各个操作。2) 界面设计3)代码实现在这里主要代码都是通向各个子功能模块的,由于这个系统的各个子功能都是通过按扭打开一个新的窗口,在新的窗口中来具体实现各种功能的。因此这里的代码大部分都是一些很简单用于打开新窗口的,当然还有实现排序等方面的。(1)添加设备 (2)报废处理 (3)维
26、修登记 在三个模快在具体实现的时候再加以介绍。在这里主要是排序的代码:if rb_1.checked=true thendw_1.setsort(#5 a)dw_1.sort()end ifif rb_2.checked=true thendw_1.setsort(#5 d)dw_1.sort()end if3. 添加新设备界面1)功能描述: 当采购人员将新的设备买进来之后,就要在这里通过一个申请表格的形式将它添加到数据库中去。当然管理员可以在这里通过设备的型号可以查询到是否库中还有库存。2) 界面设计3)代码实现(主要部分) 插入按扭 if sle_1.text= then elseif s
27、le_2.text= then elseif sle_3.text= then elseif sle_4.text= then elseif sle_5.text= then elseif sle_6.text= thenmessagebox(提示信息,该条记录不能为空!) elseif sqlca.sqlcode=100 then messagebox(提示信息,插入失败)sle_1.text=sle_2.text=sle_3.text=sle_4.text=sle_5.text=sle_6.text=elseif sqlca.sqlcode=-1 then messagebox(提示信息,
28、连接失败)sle_1.text=sle_2.text=sle_3.text=sle_4.text=sle_5.text=sle_6.text=else insert into wh values(:sle_1.text,:sle_2.text,:sle_3.text,:sle_4.text,:sle_5.text,:sle_6.text); messagebox(提示信息,插入成功!) open(w_f11)end if 查询按扭String s1,s2,s3,s4,s5,s6select *into :s1,:s2,:s3,:s4,:s5,:s6from whwhere sno=:sle_2
29、.text;if sqlca.sqlcode=100 thenmessagebox(提示信息,没有找到要查找的信息)sle_2.text=elseif sqlca.sqlcode=-1 thenmessagebox(提示信息,连接数据库失败)sle_2.text=elsesle_1.text=s1sle_3.text=s3sle_4.text=s4sle_5.text=s5sle_6.text=s6end if 删除按扭if sle_2.text= thenelseif sle_3.text= thenelseif sle_1.text= thenelseif sle_4.text= then
30、elseif sle_5.text= thenelseif sle_6.text= thenmessagebox(提示信息,记录不能为空)elsedelete from wh where sno=:sle_2.text;messagebox(提示信息,该条记录已经删除)sle_1.text=sle_2.text=sle_3.text=sle_4.text=sle_5.text=sle_6.text=end if 查看按扭查看有单独的窗口来显示:包括原来在的和刚刚插入的4. 维修登记界面1)功能描述: 是对在使用之后出现了一定问题的那些设备,要将其单独列出,以便与厂商联系,尽快的将其问题解决。并
31、要记下维修的厂家与负责人。2) 界面设计3)代码实现(主要部分) (1)保存按扭insert into xeixiuvalues(:sle_1.text,:sle_2.text,:sle_3.text,:sle_4.text,:sle_5.text);if sqlca.sqlcode=100 thenmessagebox(提示信息,保存失败)sle_1.text=sle_2.text=sle_3.text=sle_4.text=sle_5.text=elseif sqlca.sqlcode=-1 thenmessagebox(提示信息,连接失败)sle_1.text=sle_2.text=sl
32、e_3.text=sle_4.text=sle_5.text=elseif sle_1.text= then elseif sle_2.text= then elseif sle_3.text= then elseif sle_4.text= then elseif sle_5.text= then messagebox(提示信息,记录不能为空)elsemessagebox(提示信息,保存成功)open(w_s22)end if(2)查询按扭String s1,s2,s3,s4,s5select *into :s1,:s2,:s3,:s4,:s5from weixiuwhere sno=:sl
33、e_2.text;if sqlca.sqlcode=100 then messagebox(提示信息,没有找到要查找的信息)sle_2.text=elseif sqlca.sqlcode=-1 thenmessagebox(提示信息,连接数据库失败) sle_2.text=else sle_1.text=s1sle_3.text=s3sle_4.text=s4sle_5.text=s5end if(3)查看按扭 与添加新设备的模块一样,在这里查看也是通过打开一个新的窗口来查看那些原来就在和新增加进来的设备的。5、 报废处理界面 1)功能描述: 对于经过长期使用或者是使用不当而报废的设备,管理员
34、也可以通过此模块将起单独的列出来,也或者可以直接把这些设备的记录删除,以达到清理实验室的目的。 2)界面设计 3)代码实现(主要部分) (1)保存按扭insert into baofeivalues(:sle_1.text,:sle_2.text,:sle_3.text);if sqlca.sqlcode=100 thenmessagebox(提示信息,保存失败)sle_1.text=sle_2.text=sle_3.text=elseif sqlca.sqlcode=-1 thenmessagebox(提示信息,连接失败)sle_1.text=sle_2.text=sle_3.text=el
35、seif sle_1.text= then elseif sle_2.text= then elseif sle_3.text= then messagebox(提示信息,记录不能为空)elsemessagebox(提示信息,保存成功)open(w_t33)end if (2)查询按扭String s1,s2,s3select *into :s1,:s2,:s3from baofeiwhere sno=:sle_1.text;if sqlca.sqlcode=100 then messagebox(提示信息,没有找到要查找的信息)sle_2.text=elseif sqlca.sqlcode=
36、-1 thenmessagebox(提示信息,连接数据库失败) sle_2.text=else sle_2.text=s1sle_3.text=s3open(w_t33)end if (3)删除按扭 if sle_2.text= thenelseif sle_3.text= thenelseif sle_1.text= thenmessagebox(提示信息,记录不能为空)elsedelete from baofei,wh,xeixiu where sno=:sle_1.text;messagebox(提示信息,该条记录已经删除)sle_1.text=sle_2.text=sle_3.text=end if(4)查看按扭 与之前的两个模块一样,也是通过新的窗口来查看那些已经报废了的设备。 总结: 本次实验要求我们自己动手设计完成一个实验室设备管理系统,要求能对实验室设备进行统计查询,对设备维修、报废情况的处理记录,能够申请购买新设备拨哪个更新申请