科技学院
课程设计报告
( 2011-- 2012年度第2学期)
名称:软件工程课程设计
院系:信息工程系
班级:软件09K2 学号: 0919******** 学生姓名:何少华
指导教师:宋雨郭丰娟
设计周数: 2 成绩:
日期:2012年 6 月28
整理为word格式
《软件工程》课程设计
任务书
一、目的、要求
通过该课程设计要使学生树立起强烈的工程化意识,用工程化思想和方法开发软件。切实体会出用软件工程的方法开发系统与一般程序设计方法的不同之处,学生在对所开发的系统进行软件计划、需求分析、设计的基础上,实现并测试实际开发的系统。通过一系列规范化软件文档的编写和系统实现,使学生具备实际软件项目分析、设计、实现和测试的基本能力。
二、主要内容
要求学生掌握软件工程的基本概念、基本方法和基本原理,为将来从事软件的研发和管理奠定基础。每个学生选择一个小型软件项目(内容参照《计算机综合实践指导》,宋雨等编著,清华大学出版社出版),按照软件工程的生命周期,完成软件计划、需求分析、软件设计、编码实现、软件测试及软件维护等软件工程工作,并按要求编写出相应的文档。具体的方法可以选用传统的软件工程方法或者面向对象的方法,开发环境和工具不限。
三、进度计划
四、设计成果要求
1.至少提交4个文档,包括软件计划、软件需求规格说明书、软件设计说明书、软件测试计划,要求文档格式规范、逻辑性强(可参考《计算机综合实践指导》中给出的要求及格式)、图表规范;
2.独自实现了系统的某些功能,基本达到了要求的性能,经过了测试,基本能运行。
五、考核方式
(1)提交的文档规范,工作量大,文档逻辑性强、正确,按《计算机综合实践指导》标准考核(附《软件工程课程设计》实验报告评分表)占60%(2)系统验收、讲解、答辩占25%(3)考勤占15%
整理为word格式
学生姓名:
指导教师:
2012年6 月17 日《软件工程课程设计》实验报告评分表
整理为word格式
1 需求分析
所谓需求分析是软件工程数据库信息管理系统开发的很重要的一步,在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。需求分析阶段的任务是确定软件系统功能,下面重两个方面来说明试卷管理系统的需求分析。
1.1 市场需求分析
学校教务管理工作中一项重要的工作是考试管理工作,每学期从各科目考试,从组织出卷到试卷的印刷及试卷的管理等工作非常繁琐且工作量大,这种组织管理方式不仅工作任务繁重而且试卷的标准化程度、难易程度、题量大小等各方面难以控制,难以形成有效的试题库,不利于充分发挥历年来的优秀试题以及试卷的作用,给试题和试卷的管理带来很多问题和困难。鉴于这种情况,利用计算机进行试卷的自动生成并逐步积累形成有效的试题库,对试题和试卷的管理将变的高效和快捷,对提高工作效率,使试卷管理逐步走向正规化和自动化将起到十分重要的作用。它解决传统手动出卷的很多问题。例如:避免了不必要的重复劳动,节约了人力资源及时间;使用科学的衡量、评价及统一试卷难易度、试卷的质量的有效手段;大幅度降低了试卷出现错漏缺的机率,减少了不必要的麻烦。
1.2 功能需求分析
题库管理:根据用户需求,系统应该能够维持一个存有数千道以上试题的题库。系统应当允许教师在获得权限的情况下随时能够进行试题补充.且试题的题型可有多种多样.试题难度、区分度也有不同。操作员能够按照自己的需要,随时可以对题库中已有的试题进行修改、删除,同时还可以查询和浏览试题。
出卷管理:根据用户提出的要求,可以进行人工组卷。另外,从题库中抽取全部所需的试题之后,要求系统能够按照一般试卷的编排要求,将抽取的试题进行排版,并以标准的格式输出到Word文档中。同时,也应能够生成试卷的标准答案并输出到Word文档中。
权限管理:系统管理员可以增加或删除操作人员并指定操作人员的权限,可对用户权限
整理为word格式
进行修改,从而保证系统在实施中的灵活性。
整理为word格式
该系统已基本满足教学需要,为实现教学改革,改变传统的出卷方式,实现教考分离起到了积极的促进作用。但程序仍还有诸多有待完善的地方,程序并未充分优化。随着计算机技术的不断发展和普及,将会对教学工作提出更高的要求,该系统必须要不断地改进,从而使得教学工作更加合理和快捷。
具体的功能实现
●试题库的建立和基本维护,包括试题的录入、删除、修改以及查看题库中试题的基本信
息、试题所带图形的装入与维护。
●指定出题,包括试题的手工移入、移出等;
●自动出题,试卷组装,word编辑,包括选定试题类型后通过随机函数执行自动出题功
能并输出到word进行编辑;
●系统管理,包括用户权限的设置和修改,增加和删除用户。
1) 试题库管理
试题管理的主要目的是维护题库中的试题及各项参数输出及题库查询。其中包括题库编辑、试题查询。
题库编辑;其内容包括创建题库,题库中试题的修改和增添、删除。
试题查询:本模块的主要功能是按照用户设置的查询条件对试题进行快速查询。用户可以根据章节号、题型、难度、试题编号等信息来查询试题的内容及答案等信息。
2) 试卷管理
该模块可根据要求实现试卷的自动/人工出卷,自动生成的试卷试题由系统随机抽取,由于题库中的试题按照试题的类型分类,故随机抽出的试题难易适中,既可满足一般考试的要求又避免了人为因素,增强了试卷的可信度,尽管自动生成试卷符合规范化考试的要求,但为了满足不同用户的特殊需要,特设置了手工出卷的操作,这样就增加了系统的通用性与灵活性。此外,该模块还可根据用户的要求生成关于相应试卷的文档。
3) 系统管理
可增加删除系统操作人员,并设定操作人员的权限。通过对用户进行权限管理范围设定,减轻操作内容,也可对单个用户权限及范围进行修订,从而保证系统在实施中的灵活性。同时用户也对密码进行修改,保证安全性。
1.3 技术可行性分析
现在计算机几乎是全国所有公司上班的必备物品,计算机以后和人们的生活工作息息相关了,在加上现在做WEB服务的软件也越来越成熟,为我能成功的租出这套系统提供很高的硬件环境及技术上的基础。
本系统主要是使用JSP + Servlet+ sqlserver2008实现,Web服务器用tomcat。
整理为word格式
这些技术都是现在比较发展快而且很成熟的技术,所以也为我能更好更快的做出此系统提供了大量的现成的代码和思想。
1.4 性能分析
所开发的系统集试题管理和试卷命题等功能为一体可以使教师便捷地对试卷库中的试题进行管理。按要求命题生成试卷以及对试卷质量做综合评价。使每套试卷都具有结构合理性和覆盖全面性。系统为教师和学生提供了一个功能强大的平台,通过这个平台,教师可以根据实际教学状况来组成相应的试题和试卷,学生可以对课程进行有效的复习。在实际应用中不仅可以减轻教师工作量,而且还为学生提供了一种新的学习途径。
2.各子系统的数据流程图
2.1系统管理子系统
图2-1 系统管理子系统的数据流程图
2.2题库管理子系统
整理为word格式
图2-2 题库管理子系统的数据流程图
2.3总的流程图
3.概要设计和逻辑设计
3.1概要设计
根据需求分析和数据流图的结果:由于各个表之间是否具有索引关系,因此得到各E-R图以及关系模型:
整理为word格式
图3-1 用户的E-R 图
题库的E-R图
图3-2
.
整理为word格式
图3-4 系统总的E-R 图
3.2 逻辑设计
根据总E-R图中的实体与实体之间的联系以及转换的一般原则,得到如下的关系模型:
1.用户表(用户名,用户密码,用户类型)
2.注册表(用户名,用户密码,用户证件号,用户类型)
3.题库表(试题编号,试题科目,试题难度,试题类型,知识点,试题答案,)
函数依赖关系分别为:
1.
图3-5 用户表的依赖关系
整理为word格式
图3-6 题库表的依赖关系
4.数据库设计
数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型等。SQL server2008就是一种关系型数据库管理系统。
根据概要设计和逻辑设计,数据库原理试卷库生成系统后台数据库有3张表组成,分别为用户表,注册表,题库表。
4.1 用户表的设计
用户表主要包含系统用户的基本信息:用户名、用户密码、用户类型。用户类型有三种,分别为学生,老师和管理员,不同的用户身份权限不一样。如系统管理员可以进入系统管理、题库管理、试卷管理和辅助功能,但学生只能进入系统管理的修改密码,试卷管理和辅助功能。考虑到char和varchar的类型的不同。Varchar的字节数可变,而且char的字节数固定,如果输入的字符少于规定的字节数,会自动填充。因此,选择了varchar类型,这样比较容易判断用户名和密码是否正确。
表4-1 用户表
4.2 题库表的设计
题库表主要包含了题目的各项信息,如试题编号,试题难度,章节,类型,试题内容以及答案。考虑到在自动出卷的时候,要根据试题难度进行选题,所以试题难度的数据类型为
整理为word格式
varchar。试题内容和试题答案都可以插入图片,因此数据类型为image。试题编号设置为自动编号。试题类型主要为五种,分别为选择题、填空题、简答题、设计题和综合题。试题难度分为难、中、易。试题分值一般规定为选择题和填空题为3分,后面类型的题目由系统管理员自行定义。
整理为word格式
表4-2 题库表的设计
4.3注册信息表的设计
注册信息表主要是用来注册新用户的各项信息。它包含了用户名,用户密码,用户证件号,用户类型各项属性。且信息表号是采用自动编号。
表4-3 注册信息表
整理为word格式
5.系统的详细设计和实现
该系统设计主要包括五大模块,分别为登录模块、注册模块、主界面模块、系统管理模块、题库管理模块、
在与各种数据库建立连接的时候,用到了通过编写DB类存储Web应用所用到常用据库操作的方法,供Web调用;
代码:import java.sql.*;
public class DBConn {
Connection conn=null;
Statement state=null;
String sql="";
String driverName =
"com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载JDBC
驱动
String dbURL = "jdbc:sqlserver://localhost:1433;
DatabaseName=PaperManagerDB"; //连接服务器和数据库sample
String userName = "sa"; //默认用户名
String userPwd = ""; //密码
public static Connection getConnection(){
Connection conn=null;
Statement state=null;
String driverName =
"com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433;
DatabaseName=PaperManagerDB";
String userName = "sa"; //默认用户名
String userPwd = ""; //密码
try {
Class.forName(driverName);
conn = DriverManager.getConnection(dbURL, userName,
整理为word格式
userPwd);
整理为word格式
//System.out.println("Connection Successful!"); //如
果连接成功控制台输出Connection Successful!
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
public static void closeStatement(PreparedStatement pstate){
try{
if(pstate!=null){
pstate.close();
pstate=null;
}
}catch(SQLException e){
e.printStackTrace();
}
}
public static void closeConnection(Connection conn){
try{
if(conn !=null&&!conn.isClosed()){
conn.isClosed();
}
}catch(SQLException e){
e.printStackTrace();
}
}
public static void closeResultSet(ResultSet res){
try {
if (res!=null) {
res.close();
res=null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
整理为word格式