关于软件测试的理论基础与发展Word文档下载推荐.docx
《关于软件测试的理论基础与发展Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《关于软件测试的理论基础与发展Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
4功能需求:
1)功能齐全:
界面操作灵活方便,设计包括以下基本功能:
2)学生信息管理、教师信息管理、财务信息管理、班级信息管理、课程信息管理、成绩信息管理、打印信息管理、教室信息管理、综合信息查询、系统管理等,至少实现其中的三个功能,且每个功能至少包括两个子功能。
3)按照软件工程的要求进行分析、设计和开发。
4)界面友好:
界面友好、输入有提示、尽量展示人性化。
5)可读性强:
源程序代码清晰、有层次、主要程序段有注释。
6)健壮性好:
用户输入非法数据时,系统应及时给出警告信息。
二.概要设计
1.功能模块:
2数据流图:
(1)学生端
(2)管理员端
学生端功能:
A登录,学生登录后,验证成功,进入其信息展示页。
管理员端功能:
B登录,管理员登录后,验证成功,进入学生信息列表,可以对学生信息进行修改,删除,按班级查询,按学号查询,按名字查询。
上传图片,更新图片等操作。
三.详细设计及实现
数据库设计:
学生表:
教师表:
2.环境要求
1).软件支持:
本软件开发是使用JAVA语言编写
2).数据库SQL企业版-MySQLGUI-[Mysql-root@localhost]
3).编写语言工具MyEclipseJavaEnterprise
3).AdoDreamweaverCS3
4).设备支持:
WindowsXP,512MB内存
四.测试
测试可以写javascript方法。
用到了正则表达式如:
只能为中文:
varpatrn1=/^[\u4E00-\u9FA5]+$/;
//中文
身份证号码:
varpatrn3=/^[0-9]{17}([0-9]|[x])$/;
//身份证18位,前十七位是数字,最后一位是数字或字母x
电话号码:
varpatrn4=/^[0-9]{11,11}$/;
//电话是11位数字
1、用户名密码或验证码不匹配时无法登录。
包括了一些输入项不为空,输入非法和不符合要求的数据。
验证系统的健壮性和可维护性。
2、添加或更新学生信息时,名字必须为汉字,身份证号码必须为18位(最后一位是数字或字母)等。
5.难点:
显示checkbox选项时,要实现的功能为,勾选checkbox的选项,在下面的列表框中即可显示相应的选项。
实现方法。
通过Ajax将前台选项传给后台servlet进行处理,拼接成相应的字符串,获取信息转发给前台页面显示。
要在servlet中定义数组接受多项checkBox的值。
6.参考资料
[1]《数据库系统概论》萨师煊、王珊编著高等教育出版社
[2]《JAVA项目开发全程实录》苗春义编著清华大学出版社
[3]《JAVA》通用范例开发金典李树青编著电子工业出版社
[4]《网络数据库应用教程》袁枚编著北京人民优点出版社
[5]《软件工程导论》张海潘编著清华大学出版社
七.设计中的问题及解决方法
在设计的时候,遇到的最大的问题就是测试程序,系统是做好了,但是没能达到很便捷的操作,这点很让自己不满意,而且也发现自己掌握的知识真的很不牢固。
开发一个系统,恒心和毅力也是不可缺少的,通过网络和同学的热心帮助,最终完成了调试。
八.课程设计感想
做了两周的课程设计,有很多的体会,整个设计通过了软件的测试。
我想这对于自己以后的学习和工作都会有很大的帮助。
在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。
一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。
对于网上购物系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。
因此在整个设计过程中大部分时间是用在程序上面的。
很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。
因此可以说系统的设计是软件和硬件的结合,二者是密不可分的。
9.核心代码
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
request.setCharacterEncoding("
UTF-8"
);
response.setContentType("
text/html;
charset=utf-8"
PrintWriterout=response.getWriter();
StringTStuClass=request.getParameter("
stuclass"
StringStuClass=newString(TStuClass.getBytes("
ISO8859-1"
),"
utf-8"
StringTStuName=request.getParameter("
stuname"
StringStuName=newString(TStuName.getBytes("
StringToolscheckBox=request.getParameter("
checkbox"
System.out.println(ToolscheckBox);
StringTStuId=request.getParameter("
stuid"
StringStuId=newString(TStuId.getBytes("
Stringsql=null;
StudentDAOImplsDaoImpl=newStudentDAOImpl();
Stringtemp[]=ToolscheckBox.split("
"
out.print("
<
tablewidth='
100%'
bordercolor='
#CCCCCC'
border='
1'
>
"
out.print("
trheight='
30'
bgcolor='
blue'
>
th>
学号<
/th>
姓名<
所在班级<
性别<
for(inti=0;
i<
temp.length;
i++){
if(temp[i].equals("
Address"
)){
out.print("
家庭住址<
/th>
}
IDCard"
身份证<
Sort"
综合排名<
Father"
父亲姓名<
Mother"
母亲姓名<
Fnumb"
父亲联系电话<
Mnumb"
母亲联系电话<
}
}
<
/tr>
if(StuClass!
="
&
StuName=="
StuId=="
){
sql="
select*fromstudinfowhereClass='
+StuClass+"
'
andquanxian='
学生'
;
elseif(StuClass=="
StuName!
sql="
select*fromstudinfowhereName='
+StuName+"
"
}
StuId!
select*fromstudinfowhereSId='
+StuId+"
elseif(StuClass!
andName='
}
else{
select*fromstudinfowherequanxian='
List<
StudentInfo>
stuList=sDaoImpl.getStudent(sql);
stuList.size();
StudentInfostudent=stuList.get(i);
Stringcolor=null;
if(i%2==0){color="
grey"
}else{color=null;
}
out.print("
trstyle='
text-align:
center;
background:
+color+"
height='
30px'
td>
+student.getSID()+"
/td>
ahref='
ManagerShow?
uname="
+student.getName()+"
/a>
+student.getClassnow()+"
+student.getSex()+"
for(intj=0;
j<
j++){
if(temp[j].equals("
out.print("
+student.getAddress()+"
}
+student.getIDcard()+"
+student.getSort()+"
if(temp[j].equals("
+student.getFather()+"
+student.getMother()+"
+student.getFnumb()+"
+student.getMnumb()+"
}
/table>