《软件体系结构》课程设计.docx
《《软件体系结构》课程设计.docx》由会员分享,可在线阅读,更多相关《《软件体系结构》课程设计.docx(29页珍藏版)》请在冰豆网上搜索。
《软件体系结构》课程设计
《软件体系结构》课程设计
设计题目:
实验室设备管理系统
姓名:
李欣张丹唐蔚霖
学号:
k0308413(07+13+17)
同组组长:
李欣
同组其他成员:
张丹唐蔚霖
实验指导教师:
李超
实验地点:
9B505
完成日期:
2011-6-10
湖北民族学院信息工程学院
一、概述(目的、任务、开发环境、参考资料)
二、采用的主要方法与技术
三、需求分析
四、设计
五、实现过程与步骤
六、遇到的困难与获得的主要成果
七、测试与运行记录
八、完成结果分析与总结
九、附录(软件配置、个人完成的程序模块和文档清单)
一、概述(目的、任务、开发环境、参考资料)
21世纪以来,人类经济高速发展,人们发生了日新月异的变化。
随着时代的发展,教育越来越需要实验,让学生从实验中得到更多,更扎实的知识。
因此学校也需要对实验室的实验设备进行更多的投入,而投入之后就带来了管理方面的问题。
我们做的这个系统主要是对设备的购买、维修、报废等方面进行了一定的管理,可以让设备进行有序、有效的管理,为管理人员节约一些因为管理混乱而浪费的时间。
不过系统的功能还不够完善,性能也还不够稳定,有待于以后不断的进行完善。
实现的功能如下:
(1)对于已彻底损坏的做报废处理,同时详细记录有关信息。
(2)对于由严重问题(故障)的要及时修理,并记录修理日期、设备名、编号、修理厂家、修理费用、责任人等。
(3)对于急需修改但又缺少的设备,需以“申请表”的形式送交上级领导请求批准购买。
新设备购入后要立即进行设备登记(包括类别、设备名、编号、型号、规格、单价、数量、购置日期、生产厂家、保质期和经办人等信息),同时更新申请表的内容。
(4)随时对现有设备及其修理、报废情况进行统计、查询,要求能够按类别和时间段等查询。
参考文献:
谭浩强主编.VisualBasic程序设计
(二)教程.清华大学出版社
柳青等编.VisualBasic程序设计教程.高等教育出版社
范立南.SQLServer2000实用教程.北京:
清华大学出版社
孙燕等编.VisualBasic程序设计.高等教育出版社
萨师煊王珊编.数据库系统概论.北京:
高等教育出版社
杨志强.VisualBasic程序设计教程.北京:
高等教育出版社.
二、采用的主要方法与技术
软件工程是一门从技术和组织管理两个角度研究如何用系统化、规范化和数量化等工程原理与方法去进行软件开发和维护的学科。
软件工程学研究的范围非常的广泛,包括技术方法、工具、和管理等许多方面。
软件生命周期的各个阶段可分为:
问题定义:
确定系统的基本功能
可行性研究:
确定系统是否能够实现及是否值得实现
需求分析:
确定系统必须完成的各种功能
总体设计:
确定如何实现软件
详细设计:
详细设计实现系统
编码和单元测试:
写出正确的容易理解和维护的程序模块
综合测试:
通过各种类型的测试及调试使软件达到预订的要求
软件维护:
通过各种必要的维护活动使系统持久的满足用户需要
采用软件工程的技术开发本系统,通过以上八个阶段组成的软件生存期。
它是指从提出开发要求开始直到该软件报废为止的整个时期。
分阶段进行,就把规模庞大、结构复杂和管理复杂的软件变得很容易控制和管理。
本系统主要利用VisualBasic作为前端的应用开发工具,利用ACCESS作为后台的数据库,利用WindowsXP作为系统平台。
Windowsxp以其友好的图形界面、易学易用的操作方法、强大的多任务功能、健全的内在管理以及先进的程序设计方法为广大数据库软件开发人员嗦熟悉。
对它的操作环境熟悉,使得我们在其开发数据库应用程序更加方便、可靠。
三、需求分析(该过程参考西方和本国制定的软件需求规范说明书相关标准)
管理员可以对实验室设备信息进行查询及相关实验室设备的使用情况查看。
管理员可以根据本人用户名及密码登录系统。
在信息系统中,后台数据库存储的地位相当重要,数据库的设计不但对数据的操作速度有影响,还直接关系到软件系统的质量和生存周期,本系统数据库中包括教师资料数据表、借用设备表、仪器表、用户登录表。
系统首先必须维护实验室中详细资料的数据表,程序能对该表进行写入和读出数据的操作。
相应的,该表还有记录读者的借用情况,系统通过该表判断读者是否满足借用条件。
系统还要管理员信息表,记录管理员的资料,检验管理员的登录,管理员的权限等。
1、目的
1)便于用户、分析人员和软件设计人员进行理解和交流
2)希望系统的外部项均支持目标软件系统的确认。
根据需求规格说明书中确立的可测试标准进行测试,并得到确认。
3)控制系统进化过程
2、软件产品的作用范围
学校、科研机构、大型实验室
3、功能需求
1)设备预订:
实现实验人员在系统平台上查询库内实验设备的状态及其在某一时段的使用状态,若无损坏且未被预订使用,则用户可以预订使用。
2)设备管理:
实现现在仓库中的每样设备信息的登记和新设备的入库登记,旧设备的报修、报废处理、以及设备状态的更改。
3)设备的借出:
按照教师所需设备给予借出,并在数据库中更改这些设备的使用状态
4)设备的归还:
按照教师所还设备而进行入库登记,并在数据库中更改这些设备的使用状态。
5)设备报修:
实验人员在实验过程中如果发现设备损坏,通过此系统报告给管理员,同时修改数据库中的设备状态。
4、数据库需求
用户的需求具体体现在各种信息的提供、保存、更新和查询,要求数据库结构能够充分满足各种信息的输出和输入。
收集基本数据、数据结构以及数据处理的流程,组成一份详细的数据字典。
四、设计(该过程参考西方和本国制定的软件设计规范说明书相关标准)
1、总体设计
原理:
总体设计的基本目的就是回答“概括的说,系统应该如何实现?
”这个问题。
因此,总体设计又称为概要设计或初步设计。
通过这个阶段的工作将计划分出组成系统的物理元素-----程序、文件、数据库、人工过程和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。
总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互之间的关系。
总体设计工程通常有两个主要阶段组成:
系统设计,确定系统的具体实现方案;结构设计确定软件机构,也就是要确定系统中每个程序拥有哪些模块组成,以及这些模块之间的关系。
在详细设计之前进行总体设计可以站在全局的高度上,花较少的成本,从中选出最佳的方案和最合理的软件结构,从而用较低的成本开发出高质量的软件系统。
2、详细设计
数据库的概念设计:
根据对数据流图和数据字典的分析,确定该应用中的实体、属性、和实体之间的联系,并画出系统总体E-R图。
概念设计可以分为三部进行:
首先设计局部E-R模式,然后把各局部E-R模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。
局部E-R模式设计:
实体和属性的定义。
ER模型的“联系”用于刻画实体之间的关联。
一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。
若有联系,进一步确定是1:
N,M:
N,还是1:
1等。
还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。
利用ER方法进行数据库的概念设计,可以分三个步骤进行:
首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后把全局ER模式进行优化,得到最终的模式。
所有局部ER模式设计好了之后,接下来就是把它们综合成单一的全局概念结构。
全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。
1)局部ER模式的合并
合并的原则是:
首先进行两两合并;先合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部机构。
2)消除冲突
冲突分为三类:
属性冲突、结构冲突、命名冲突。
设计全局ER模式的目的不在于把若干全局ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。
3)全局ER模式的优化
在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。
一个好的全局ER模式,除能准确、全面的反映用户功能需求外,还应该满足下列条件:
实体类型的个数要尽可能的少;实体类型所含属性个数尽可能的少;实体类型间联系无沉余
“实验室设备管理系统”数据流图与数据字典
1、顶层数据流图的数据字典:
1)外部实体:
管理员=系统的唯一管理人员,拥有对系统的最高使用权限。
负责对系统数据的录入、分析和处理。
同时根据其他外部实体或系统输出信息,作出相应的处理。
修理人员=根据系统提供的修理要求,对设备进行修理的专门人员,并负责将详细的修理信息送交管理员
2)数据流
电子申请表=系统根据管理员的输入信息,按照申请表的格式将信息整理,得出的WORD格式申请表
修理要求=管理员根据设备现有的损坏情况得出的需要修理信息
修理信息=修理人员根据修理要求,对设备进行修理后。
根据实际的修理情况整理出的详细修理信息
批示意见=领导根据管理员递交的书面申请表中的详细信息,反馈给管理员的对申请同意与否的意见
控制命令=增加|删除|查询|修改
增加=通过系统向数据库添加新信息
删除=通过系统将数据库中的错误或陈旧数据删除
查询=根据提供的条件,对数据库进行查找,并返回查找结果
修改=通过系统对数据库的已有数据进行修改,保证数据的正确
操作信息=根据控制命令对系统进行操作,得出的操作结果
处理信息=管理员得到的关于设备购买、修理反馈回来的详细信息
收集信息=系统操作过程中得到的、新的、需要存入数据库的信息,更新数据库
存储信息=数据库中存储的信息,根据系统的操作要求需要传递给系统的信息
统计报表=修理信息统计表|报废信息统计表|设备资金统计表
修理信息统计表=一月一次的对实验室的设备修理信息进行汇总得出的书面表格
报废信息统计表=一月一次的对实验室的报废设备信息进行汇总得出的书面表格
设备资金统计表=一月一次的对本月实验室资金使用情况的统计表格
3)数据存储
数据库=用户信息表|申请信息表|设备记录表|购买记录表|修理信息表|报废记录表
用户信息表=数据库中存储管理员允许创建的,合法的用户信息存储表
申请信息表=数据库中存储所有申请记录的存储表
设备记录表=数据库中存储实验室现有设备详细信息的存储表
购买记录表=数据库中存储购买设备信息的存储表
修理信息表=数据库中存储设备修理信息的存储表
报废记录表=数据库中存储所有报废设备详细信息的存储表
2、1层数据流图的数据字典
1)数据处理
申请管理=整理、处理零散的申请信息,并以表格形式反馈给管理员
统计、管理及查询处理=管理设备信息,提供各种设备信息查询,及对各种设备信息进行统计以表格形式输出
购买处理=整合申请表信息及设备购买要求形成详细设备购买信息送部门采购人员
修理处理=根据系统传递过来的修理要求整合成详细修理要求送修理人员
报废处理=根据管理员的报废命令,对需报废设备进行信息整理,操作相应数据库表,形成报废信息送数据库
2)数据流
提出=管理员根据需要调用申请管理模块的控制命令
已批申请表=包括领导同意信息和设备需求信息的申请表
报废=管理员根据需要调用报废管理模块的控制命令
申请信息=所有设备购买申请记录详细信息
报废信息=响应管理员报废命令,经过报废处理后整理的详细设备报废信息
3、级数据流图数据字典
1)数据处理
用户命令识别=识别控制命令,分别调用各处理模块
处理信息存储=接受购买、修理等信息,存入数据库
整理操作信息=整理系统操作信息,显示送管理员处
申请命令处理=接受命令,调用申请模块
统计命令处理=接受统计命令,读取数据库信息,统计整理信息,产生月设备资金统计表,修理/报废注销表,购买申请表
五、实现过程与步骤
1、“实验室设备管理系统”的顶层数据流图如下:
“实验室设备管理系统”数据字典的定义如下:
1、顶层数据流图的数据字典:
1)外部实体:
管理员=系统的唯一管理人员,拥有对系统的最高使用权限。
负责对系统数据的录入、分析和处理。
同时根据其他外部实体或系统输出信息,作出相应的处理。
修理人员=根据系统提供的修理要求,对设备进行修理的专门人员,并负责将详细的修理信息送交管理员
2)数据流
修理要求=管理员根据设备现有的损坏情况得出的需要修理信息
修理信息=修理人员根据修理要求,对设备进行修理后。
根据实际的修理情况整理出的详细修理信息
批示意见=管理员根据递交的书面申请表中的详细信息,给员的出对申请同意与否的意见
控制命令=增加|删除|查询|修改
增加=通过系统向数据库添加新信息
删除=通过系统将数据库中的错误或陈旧数据删除
查询=根据提供的条件,对数据库进行查找,并返回查找结果
修改=通过系统对数据库的已有数据进行修改,保证数据的正确
操作信息=根据控制命令对系统进行操作,得出的操作结果
处理信息=管理员得到的关于设备购买、修理反馈回来的详细信息
收集信息=系统操作过程中得到的、新的、需要存入数据库的信息,更新数据库
存储信息=数据库中存储的信息,根据系统的操作要求需要传递给系统的信息
统计报表=修理信息统计表|报废信息统计表|设备资金统计表
修理信息统计表=一月一次的对实验室的设备修理信息进行汇总得出的书面表格
报废信息统计表=一月一次的对实验室的报废设备信息进行汇总得出的书面表格
设备资金统计表=一月一次的对本月实验室资金使用情况的统计表格
3)数据存储
数据库=用户信息表|申请信息表|设备记录表|购买记录表|修理信息表|报废记录表
用户信息表=数据库中存储管理员允许创建的,合法的用户信息存储表
申请信息表=数据库中存储所有申请记录的存储表
设备记录表=数据库中存储实验室现有设备详细信息的存储表
购买记录表=数据库中存储购买设备信息的存储表
修理信息表=数据库中存储设备修理信息的存储表
报废记录表=数据库中存储所有报废设备详细信息的存储表
2、在将分析报告转换成设计报告的过程中,采用变换分析方法,根据数据流图转换成程序结构的模块,具体的模块结构和各个模块之间的关系如下图所示:
“实验室设备管理系统”程序结构“雏形”
六、遇到的困难与获得的主要成果
通过对本实验室设备管理系统的设计,使我们认识到软件开发过程实际上就是描述现实世界的过程。
而由现实世界像软件模型的转化过程是其中最核心的过程。
在课程设计的过程中我们遇到了许多问题,如在分析阶段不能完全正确的把握住系统的功能描述,设计数据流图时出现了很大的问题,在与同学们的讨论过程中,解决了这些问题。
本次实验使我们得到一次难得的锻炼机会,加深了对理论知识的理解,丰富了实践经验,让我从整体的程序开发到具体软件的设计都有了一个全面的掌握,为我们即将从事的工作打下了坚实的基础!
该系统还有许多不尽人意的地方,用户界面设计的不够完美,统计功能还不完善等,这些都有待进一步的改善。
但本次实验提高了我们实际操作的能力,从以前的理论上升到实践,从感性认识上升到理性认识,真正做到学有所用。
七、测试与运行记录
1.引言
1)目的
以文件的方式记载组装测试和确认测试的结果、发现问题以及分析评价,它是作为软件验收的依据之一。
2.测试结果
软件测试步骤有:
单元测试、集成测试、确认测试和系统测试,在此就只对单元测试进行叙述,其他均略。
3.软件功能结论
1)模块名称(“添加新设备”模块)
2)功能
主要就上实现那些由采购人员买入的新设备,通过一个申请表的形式添加到系统的数据库中,同时添加一些这些设备的基本情况。
以便与日后的查询,使用和管理。
4.分析摘要
1)能力
本系统基本完成了用户的软件需求。
2)缺陷和影响
3)软件错误
4)评价
该系统虽然基本完成了用户的软件需求,但还有很多地方还需要改善和完善。
例如:
系统的界面,还有系统的功能还没有完善,稳定性不够等。
运行记录:
这个模块的主要功能:
为软件建立数据库,在运行时提供数据的连接。
八、完成结果分析与总结
1.管理员登入界面
1)模块的功能描述:
本模块主要是为实验室的管理人员提供管理的有保护的登入。
阻止一些非法的用户进入。
2)界面设计
3)代码实现(主要部分)
Strings1,s2
select*
into:
s1,:
s2
fromUserid
whereuserid=:
sle_1.text;
ifsqlca.sqlcode=100then
messagebox("提示信息","用户名或密码错误!
")
elseifsqlca.sqlcode=-1then
messagebox("提示信息","连接数据库失败!
")
elseifs2=sle_2.textthen
open(w_main)
close(w_login)
endif
2.系统主界面
1)系统主界面的功能描述:
此模块主要是管理员可以在这里查看到目前系统中总共有多少设备在库以及各个设备的一些基本情况。
还可以实现排序和登入各个子模块实现具体的各个操作。
2)界面设计
3)代码实现
在这里主要代码都是通向各个子功能模块的,由于这个系统的各个子功能都是通过按扭打开一个新的窗口,在新的窗口中来具体实现各种功能的。
因此这里的代码大部分都是一些很简单用于打开新窗口的,当然还有实现排序等方面的。
(1)添加设备
(2)报废处理(3)维修登记在三个模快在具体实现的时候再加以介绍。
在这里主要是排序的代码:
ifrb_1.checked=truethen
dw_1.setsort("#5a")
dw_1.sort()
endif
ifrb_2.checked=truethen
dw_1.setsort("#5d")
dw_1.sort()
endif
3.添加新设备界面
1)功能描述:
当采购人员将新的设备买进来之后,就要在这里通过一个申请表格的形式将它添加到数据库中去。
当然管理员可以在这里通过设备的型号可以查询到是否库中还有库存。
2)界面设计
3)代码实现(主要部分)
插入按扭
ifsle_1.text=""then
elseifsle_2.text=""then
elseifsle_3.text=""then
elseifsle_4.text=""then
elseifsle_5.text="then
elseifsle_6.text=""then
messagebox("提示信息","该条记录不能为空!
")
elseifsqlca.sqlcode=100then
messagebox("提示信息","插入失败")
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
sle_5.text=""
sle_6.text=""
elseifsqlca.sqlcode=-1then
messagebox("提示信息","连接失败")
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
sle_5.text=""
sle_6.text=""
else
insertintowh
values(:
sle_1.text,:
sle_2.text,:
sle_3.text,:
sle_4.text,:
sle_5.text,:
sle_6.text);
messagebox("提示信息","插入成功!
")
open(w_f11)
endif
查询按扭
Strings1,s2,s3,s4,s5,s6
select*
into:
s1,:
s2,:
s3,:
s4,:
s5,:
s6
fromwh
wheresno=:
sle_2.text;
ifsqlca.sqlcode=100then
messagebox("提示信息","没有找到要查找的信息")
sle_2.text=""
elseifsqlca.sqlcode=-1then
messagebox("提示信息","连接数据库失败")
sle_2.text=""
else
sle_1.text=s1
sle_3.text=s3
sle_4.text=s4
sle_5.text=s5
sle_6.text=s6
endif
删除按扭
ifsle_2.text=""then
elseifsle_3.text=""then
elseifsle_1.text=""then
elseifsle_4.text=""then
elseifsle_5.text=""then
elseifsle_6.text=""then
messagebox("提示信息","记录不能为空")
else
deletefromwhwheresno=:
sle_2.text;
messagebox("提示信息","该条记录已经删除")
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
sle_5.text=""
sle_6.text=""
endif
查看按扭
查看有单独的窗口来显示:
包括原来在的和刚刚插入的
4.维修登记界面
1)功能描述:
是对在使用之后出现了一定问题的那些设备,要将其单独列出,以便与厂商联系,尽快的将其问题解决。
并要记下维修的厂家与负责人。
2)界面设计
3)代码实现(主要部分)
(1)保存按扭
insertintoxeixiu
values(:
sle_1.text,:
sle_2.text,:
sle_3.text,:
sle_4.text,:
sle_5.text);
ifsqlca.sqlcode=100then
messagebox("提示信息","保存失败")
sle_1.text=""
sle_2.text=""
sle_3.text=""
sle_4.text=""
sle_5.text=""
elseifsqlca.sqlcode=-1then
messagebox("提示信息","连接失