《软件工程课程设计》报告设备管理器Java课程设计Word文件下载.docx
《《软件工程课程设计》报告设备管理器Java课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《《软件工程课程设计》报告设备管理器Java课程设计Word文件下载.docx(41页珍藏版)》请在冰豆网上搜索。
为了加快设备管理自动化的步伐,提高企业设备的管理业务处理效率,建立企业设备管理系统已变得十分必要
1.3项目完成情况
本项目可以有效地管理设备资源、维护设备的正常运转,从而提高工作效率。
将管理任务分成小块,落实到个人并能随时查询设备当前情况和历史情况,对设备的可靠性分析有直接作用,使管理人员从手工计算、统计工作中解脱出来。
2.项目开发相关技术及方法
本系统是以java语言作为前台开发工具,以SQLServer2008作为后台数据库实现信息管理。
2.1开发环境和开发工具
a)操作系统:
Windows7,WindowsXP
b)使用软件:
数据库:
SQLServer2008
建模工具:
RationalRose
文档编写:
MicrosoftWord2007.
c)开发语言:
JAVA
2.2相关技术及方法
struts,spring,hibernate+数据库技术+JS,AJAX,CSS
3.系统需求分析、设计及实现
随着科学技术的发展,社会进步,计算机技术迅速的发展,设备管理的方法也日新月异,以前全是由人工管理的方法现存在很多的缺点:
管理效率低,劳动强度大,信息处理速度低而且准确率也不够令人满意。
为了提高设备管理效率,减轻劳动强度,提高信息处理速度和准确性,为设备管理员提供更方便、科学的服务项目。
我选择了由计算机来设计一个设备管理系统的方案。
让计算机对设备进行自动管理,设备管理员可以直接在计算机上实现设备信息的管理,并能在一定程度上实现自动化。
通过对一些企业进行的实际深入调研,我开发出这套功能比较完整、通用性比较强、成本低廉的《企业设备管理系统》。
3.1系统需求分析
现在市场上流行的《企业设备管理系统》之类的软件通用性、灵活性稍微要差一些,不能完全提供所需的要求。
另外,该系统的价格一般相当昂贵,一般的中小型企业承受不了昂贵的支付能力。
所以应该根据企业的具体情况设计适合企业的软件系
3-0数据流程图
3.2总体设计方法
总体框图
整个设备管理系统设计方案,说明如下:
各种图形以统一的接口安插在整体调度模块之上,如图,
3.3详细设计及实现
共分六个模块,各模块内容如下:
1)设备的基本信息管理:
设备名称、规格/型号、产地、价格、原台账数、购入时间、是否在建、整机、使用时间、折价年限、设备存放车间、现台账数、车间号、新开发、性能、凭证号数、设备原号、备注。
2)设备购置申请管理:
设备名称、型号规格、数量、要求进货时间、申请理由、申请部门、申请时间、主要技术要求。
3)设备启用和封存管理:
设备名称、设备编号、型号/规格、封存地点、封存日期、启封日期、技术状况随机附件、备注,申请设备封存理由(启封)原因、使用部门意见、设备科意见、制造部意见、副总经理批准、申请单位负责人。
4)设备报废管理:
设备名称、设备编号、型号/规格、安装地点、申请设备报废原因、备注,报废设备处置方案、使用部门负责人、设备科、制造部、副总经理审批。
5)日常维修管理:
日期、机床编号、责任人、检查人。
输入完成后,自动生成上月21日到本月20日的监督内容子表,并逐条输入每日监督内容,分成包洁区卫生(生产区域卫生)类:
地面、墙壁、玻璃、工具箱;
设备类:
机床外表、导轨丝杆清洁无拉伤加油、其他;
定置摆放类:
工装刀量具摆放、余料摆放、其他;
及其他规章制度遵守情况、处置措施、检查人、监督人。
6)设备交接记录管理:
输入设备编号,自动根据设备检查项目表中得到所有项目及分数生成多条记录,自动记录日期、设备编号、检查项目及状况、标准、分数,选择班次(两班制的,1表示白班,2表示夜班;
三班制的,1表示白班1,2表示白班2,3表示夜班),输入各项目的班组自查结果,自动生成每日评分,记录交班人、接班人,如果每日评分低于合格分数的,需要输入车间处理结果和监督抽查结果。
3.3.1系统数据流图
设备管理系统数据流图
图3-1设备管理系统第0层数据流图
图3-2设备管理系统第1层数据流图
图3-3设备管理系统第2层数据流图
设备维修数据流图
图3-4设备维修数据流图
设备报废数据流图
图3-5设备报废数据流图
3.3.2系统数据实体图以及E-R图
实体图
图3-6设备实体图
图3-7设备配件实体
系统E-R图
图3-8系统E-R图
3.3.3数据库表结表
表3-1设备基本信息表
字段名
是否主键
字段类型
字段长度/B
是否允许为空
备注
EquipId
是
char
8
否
设备编号
EquipName
varchar
20
设备名称
Type
型号
EquiKindId
5
设备类型编号
ManuFacturer
50
制造厂商
ManuDate
制造日期
BuyDate
购买日期
FixDate
安装完成日期
FixPlace
安装地点
PreUseYear
int
4
预定使用年限
PreSerCyc
10
预定维修周期
Code
复杂系数
Apperance
外观尺寸
Specs
规格
Weight
重量
Parameter
100
技术参数
Condition
使用环境说明
表3-2设备购置申请表
设备编码
PriceOld
购入价格
PriceNow
折价价格
UserDep
使用单位
RecordTime
记录时间
RecordMan
记录人
表3-3设备启用和封存表
EquipKindId
StopPropeerty
停运性质
StopKind
停运类型
StopTime
停机日期时间
IntogetherDate
并网日期时间
StopReason
停运原因
StopMinutes
停运分钟数
Hitch
故障次数
HitchMinutes
故障分钟
StandbuTimes
备用次数
StandbyMinutes
备用分钟
FixTimes
大中小修次数
FixMinutes
大中小修分钟
Linjian
临检次数
LinjianMinutes
临检分钟
表3-4设备报废表
RejectTime
报废时间
RejectReason
报废原因
Manufacturer
PriceReject
报废前折价价格
表3-5设备维修记录表
NowTime
当前时间
ExamineKind
检修类别,取值为:
检修、故障维修
ExamineId
检修报告编号
ExamineTime
检修日期时间
ServiceTime
维修日期时间
ServiceDeal
维修处理描述
DealMan
负责人
Fee
费用
表3-6设备交接记录表
CheckDate
检测日期
CheckMan
30
CheckContent
运行状况表
3.3.4系统界面
图3-9用户信息管理界面
图3-10设备基本信息录入界面
图3-11设备维修记录界面
图3-12报废管理界面
3.3.5系统测试
白盒测试:
程序代码:
(管理员注册模块)
Stringname=this.yonghuming.getText();
//用户名
Stringmima=newString(jPasswordField1.getPassword());
//密码
Stringqudmima=newString(jPasswordField2.getPassword());
//确定密码
Stringselecturl="
select*fromguanliwhere用户名='
"
+name+"
'
;
regetime=newSimpleDateFormat("
yyyy-MM-dd-HH:
mm:
ss"
Locale.SIMPLIFIED_CHINESE);
Stringstrtime=regetime.format(newDate());
StringregeStr="
insertintoguanlivalues('
'
+mima+"
+strtime+"
)"
if(name.equals("
)){
JOptionPane.showMessageDialog(this,"
用户名不能为空"
"
对不起!
JOptionPane.INFORMATION_MESSAGE);
}else{
try{
rs=stmt.executeQuery(selecturl);
if(rs.next())
此用户已注册"
elseif(mima.equals(qudmima)){
stmt.executeUpdate(regeStr);
this.dispose();
注册成功"
你好!
stmt.close();
con.close();
两次密码不一致"
}
}catch(SQLExceptionse){
se.printStackTrace();
}
流程图
1.语句覆盖
1)主要特点:
语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。
2)测试用例:
空(任意)路径1
Aaa路径2
Aab路径4
Baa路径3b用户已存在
3)优点:
可以很直观地从源代码得到测试用例,无须细分每条判定表达式。
4)缺点:
由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。
在本例中去掉了语句1—〉T去掉,那么就少了一条测试路径。
在if结构中若源代码没有给出else后面的执行分支,那么语句覆盖测试就不会考虑这种情况。
但是我们不能排除这种以外的分支不会被执行,而往往这种错误会经常出现。
再如,在Do-While结构中,语句覆盖执行其中某一个条件分支。
那么显然,语句覆盖对于多分支的逻辑运算是无法全面反映的,它只在乎运行一次,而不考虑其他情况。
2、判定覆盖
1)主要特点:
判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:
程序中的每个分支至少执行一次。
每个判断的取真、取假至少执行一次。
2)用例设计:
空aa(一次假一次真)路径2
3)优点:
判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。
同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。
往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。
3、条件覆盖
1)主要特点:
条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。
空bb(一次假一次真)路径2
显然条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。
要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。
条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果
4、判定/条件覆盖
设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。
判定/条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。
判定/条件覆盖准则的缺点是未考虑条件的组合情况。
5、组合覆盖
要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。
多重条件覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。
更改的判定/条件覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次。
并且每个条件都显示能单独影响判定结果。
线性地增加了测试用例的数量。
6、路径覆盖
设计足够的测试用例,覆盖程序中所有可能的路径。
:
这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。
由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。
而在有些情况下,一些执行路径是不可能被执行的,如:
这两个语句实际只包括了2条执行路径,即A为真或假时候对B和D的处理,真或假不可能都存在,而路径覆盖测试则认为是包含了真与假的4条执行路径。
这样不仅降低了测试效率,而且大量的测试结果的累积,也为排错带来麻烦。
总结
白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱动的一种单元测试方法。
只有对程序内部十分了解才能进行适度有效的白盒测试。
但是贯穿在程序内部的逻辑存在着不确定性和无穷性,尤其对于大规模复杂软件。
因此我们不能穷举所有的逻辑路径,即使穷举也未必会带来好运(穷举不能查出程序逻辑规则错误,不能查出数据相关错误,不能查出程序遗漏的路径)。
那么正确使用白盒测试,就要先从代码分析入手,根据不同的代码逻辑规则、语句执行情况,选用适合的覆盖方法。
任何一个高效的测试用例,都是针对具体测试场景的。
逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径。
4.实践总结
4.1项目小结
系统优缺点
1.优点
1、本系统根据派企业设备的实际需求和需要进行设计和开发,切合实际。
2、通用性能好,实用性强,易于推广,可扩展性好,此系统可以运行在多种操作系统平台上(Windows9x/WindowsNT/Windows2000/WindowsXP)。
3、功能强大,综合性强。
4、有机结合计算机自动处理与人工处理。
5、用户界面友好,模块清晰,操作简单,使用方便,一看就懂,一学就会,设有帮助功能。
6、扩充性好,发展潜力大。
7、查询方便接近智能化。
8、引入了身份验证模块保密工作做到了实处。
2.缺点
本系统基本满足了设备管理的需求,但由于各个企业性质和使用设备不尽相同,因此具体问题还要具体分析,需要在现有的系统上对某些字段进行适当的修改。
此外,本系统提供的报表有限,下一步可以在此基础上增加更多的报表,扩充系统的功能。
4.2实践感想
这次的课设,是我们大学以来作得第一次大一点的程序是做的最认真的一次。
因为JAVA对我们来说,有着非比寻常的意义。
JAVA是一种简单的,面向对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。
它有着平台无关性、安全性、面向对象、分布式、键壮性。
它虽然与C和C++语言十分相似,但它又去除这两门语言中了指针运算,释放内存等一系列复杂的操作,这讲减少平常出错的50%。
正因为拥有了这些优势,JAVA也成为了现在使用最多的程序语言。
对我们来说,JAVA有着更特殊的意义。
前段时间的JAVA学习,让我们感觉到它的优越性,随着对JAVA学习和研究的深入,让我们更加热爱这么语言。
虽然学习JAVA有一段时间了,但实际上并没有进行过比较正式的程序开发,当我们自己动手时,却发现困难重重。
首先面对的是需求分析,虽然只有短短的几段话,但却是字字珠玑,理解错一个字,就会导致程序极其严重的错误到了具体编程,我们进行了分配,每个人都在自己的任务中遇到了各式各样的困难。
到了最后,连接各个模块的时候,因为平时沟通的不多,大家都是各干各的,导致模块连接不上,不得不从头开始分析其中的原因,费了一番周折,才把程序最后完成。
在这门课程的学习和课设中,让我们收获了许多东西,让我们了解了有关java数据库编程的一些知识,也得到了在团队开发中的经验,这些东西将对我们将来的职业生涯产生极大的影响。
衷心感谢安老师给我们的教导!
参考文献
[1]张海藩.软件工