基于 Web 的遗失物品管理系统

基于 Web 的遗失物品管理系统 一,摘 要 在许多社区或校园里,常常有人遗失物品或者捡到物品,个人物品的遗失是普遍存在的一个现象,物品的遗失对于失主的工作

本文包含相关资料包-----> 点击直达获取<-------

基于 Web 的遗失物品管理系统

一、摘 要

在许多社区或校园里,常常有人遗失物品或者捡到物品,个人物品的遗失是普遍存在的一个现象,物品的遗失对于失主的工作、生活将会造成较大影响,特别是部分有特殊价值的物品,对于失主来说意义更大,而捡到失物者却因为无法联系到失主而失去了拾金不昧的机会,他们由于没有一个良好的消息交流平台,而给生活带来了极大的不便。

本系统就是为失主和捡到物品的人搭建一个发布信息的平台。失主可以通过网络进入到本系统,查询自己丢失的物品是否已被好心人拾到并交给了招领中心和对好心人表示感谢等;拾到物品的人可以通过该系统直接发布拾到物品的信息;管理员可通过本系统对失物信息、报失信息、留言信息等进行有效的管理。基于 Web 的遗失物品管理系统就是对遗失物品进行有效的管理和宣传,尽可能的实现物归原主,在减少失主损失的情况下,还能使拾金不昧的良好道德风尚得以发扬。

关键字:遗失物品管理系统 B/S 架构 JSP SQL server

二、Abstract

In many communities or on campus, people often pick up lost items or items, which is a common phenomenon for loss of items for the owner who will be in a great impact in his life and work. Especially, some special value items are very meaningful for the owner, but who picked up the lost can’t contact the owner, therefore, they lost the opportunity of returning lost money, because they do not have a good message exchange platform that enables the owner failed to even find lost property, bring to life a great deal of inconvenience.

This system is for the owner and the person picked up items to build a platform for information dissemination. Owner can access to the system through the network, check whether the items lost his good-hearted people have been picked up and handed over to the center and on the well-intentioned people claiming gratitude, etc.;picked up items directly through the system who can picked up by articles published information;administrator of the system through the lost property information, missing information, message information, and easy to manage. "WEB-based management system for missing items" is for effective management and publicity on the missing items, as far as possible to achieve restitution and in case of loss reduction of owner, at the same time, to carry forward the good morality of returning money.

Keyword:management system for missing items B/S JSP SQL server

三、引言

3.1 选题来源及意义

这次设计的课题正是互联网与社会生活之间的紧密关系的体现。现今的社会,人们已经离不开了网络,网络已经成为人与人之间交流的一种形式。失物招领在线交易平台的建设能够使失主最快的领回自己丢失的物品。而且通过这次开发,提高自己的编程水平,为将来走上社会打下坚实的基础。

近年来计算机技术的快速发展,特别是计算机网络的发展,越来越深刻的改变了人们生活的方方面面。使得人们能以更低廉的价格,开发出更方便、更实用的网络工具。各种在线服务系统,更是深刻的影响了人们的联系方式,使得人们可以在远隔千里之遥随时通讯,普通的失主招领方式,例如登报,张贴寻物启事的方式,已经不能满足现代生活的需要。失物招领在线交易平台作为一种方便失主与拾获者之间联系的实用系统便应运而生。失物招领在线交易平台是为失主与拾获者之间进行失物招领提供的一个联系交易的快捷方式。

3.2 选题的研究现状

从国内关于网站可用性的研究现状可知,国内对失物招领在线交易平台可用性的研究成果相对较少,与国外同类研究相比还存在着很大的差别。我国对失物招领在线交易平台的可用性研究还停留在比较初级的阶段,实证性的研究凤毛麟角,可用性评价指标体系不全,尚不能对失物招领在线交易平台的可用性做出客观全面的评价,失物招领在线交易平台可用性的研究还有待于深化。

而国外的失物招领在线交易平台已经领先国内很长一段时间,用户可以通过失物招领在线交易平台来实现招领失物的目的,所以应该向国外的先进的失物招领在线交易平台学习,建立起自己的失物招领在线交易平台网站,使失物招领更快地进入计算机网络时代。

四、系统分析

4.1 系统需求分析

采用 Web 应用开发技术设计并实现一个失物招领在线交易平台。该系统能够实现用户浏览查询功能,用户登录,管理员管理失物招领信息等功能。系统采用 B/S 模式。整个系统最关键的就是数据库系统,一个强大的数据库可以支持完善一个优秀的软件设计,通过软件系统与数据库系统的连接来实现通过软件界面观察和处理操作数据。系统搭建模式图如图 2.1 所示。

图 2.1 系统模式图

系统采用三层结构,在客户端用户通过浏览器完成数据下载与模拟操作,浏览器端的表现逻辑通过 JSP 网页完成。而系统内部复杂的业务逻辑主要通过 JavaBean 的组件即 Component 实现,JavaBean 组件在 WWW 服务器上运行,通过 JSP 返回到客户浏览器。通过表现逻辑与业务逻辑的分离,使网页内容简洁,系统的可维护性和可扩充性增强。在服务器端,系统使用 JDBC 中间件访问数据库,数据库服务器定义了本系统所需要的事务逻辑和数据逻辑。本系统使用 JSP 技术作为表现手段,服务器采用 Tomcat 6.0 作为 JSP 引擎,系统业务逻辑由 JavaBean 组件完成,使用 JDBC 3.0 驱动程序访问数据库。由于系统测试需要成熟的数据库支持,因此系统采用 SQL Server 2008 数据库作为数据库服务器。

4.2 本系统采用的关键技术

4.2.1 JSP 技术

JSP 是由 Sun 微系统公司于 1999 年 6 月推出的一项技术,是基于 JavaServlet 以及整个 Java 体系的 Web 开发技术,利用这一技术可以建立先进、安全和跨平台的动态网站。JSP 技术在多个方面加速了动态 Web 页面的开发。它主要有如下几个方面的特点:

将内容的生成和显示进行分离

使用 JSP 技术,Web 页面开发人员可以使用 HTML 或者 XML 标识来设计和格式化最终页面。使用 JSP 标识或者脚本来生成页面上的动态内容,因此内容是根据请求来变化的,例如请求帐号信息或者一本书的价格。生成内容的代码被封装在 Servlet 和 JavaBean 组件中,并且结合在脚本中,所有的脚本在服务器端运行。

JSP 引擎解释 JSP 标识和脚本程序,生成所请求的内容,例如,通过访问 JavaBean 组件,使用 JDBC 技术访问数据库,或者包含文件,并且将结果以 HTML 或者 XML 页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于 HTML 的 Web 浏览器的完全可用性。

强调组件的重用

绝大多数 JSP 页面依赖于可重用的、跨平台的组件(JavaBean 或者 Enterprise JavaBean 组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行组件,或者使得这些组件为更多的使用者或者客户团体所使用。此方法加速了总体开发进程。

采用标识简化页面开发

Web 页面人开发人员不都是熟悉脚本语言的编程人员。JSP 技术封装了许多功能:访问和实例化 JavaBean 组件、设置和检索组件的属性、下载 Applet 以及执行用其他方法更难于编码和耗时的功能。

JSP 技术可以通过开发定制的标识库进行扩展。第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得 Web 页面开发人员能够使用熟悉的工具和如同标识一样执行特定功能的组件来工作。

当与 Java2 平台、J2EE 和 Enterprise JavaBean(EJB)技术整合时,JSP 页面将提供企业级的扩展性和性能,这对于在企业中部署基于 Web 的应用是必需的。

与微软公司的 ASP 技术相比,JSP 具有如下优点:

开放的技术:JSP 技术基于平台和服务器的相互独立,技术支持来自广泛的、专门的、各种工具包,有服务器的组件和数据库产品开发商提供。相比之下,ASP 技术主要依赖 MICROSOFT 支持。

平台和服务器的独立性:JSP 编写的代码可运行在任何符合 Java 语法结构的环境中。这样 JSP 就能够运行在多种 Web 服务器上并支持来自多家开发商提供的各种工具包。

开放的开发过程,开放的源码:自 1995 年以来,SUN 用开放过程方法同国际 Java 组织合作开发和修改 Java 技术和规范。

JSP 标记可扩充性:JSP 技术能够为开发者扩展 JSP 标记,充分利用与 XML 兼容的标记技术强大的功能,大大减少对脚本语言的依赖。

JSP 跨平台的可重用性:JSP 组件(EJB,JavaBean 或定制的 JSP 标记)都是跨平台可重用的。

4.2.2 JavaBean 技术

JSP 作为一个很好的动态网站开发语言得到了越来越广泛的应用,在各类 JSP 应用程序中,JSP + JavaBean 的组合成为了一种事实上最常见的 JSP 程序的标准. JavaBean 是描述 Java 的软件组件模型,有点类似于 Microsoft 的 COM 组件概念。在 Java 模型中,通过 JavaBean 可以无限扩充 Java 程序的功能,通过 JavaBean 的组合可以快速的生成新的应用程序。对于程序员来说,最好的一点就是 JavaBean 可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意义。JavaBean 通过 Java 虚拟机(Java Virtual Machine)可以得到正确的执行,具有平台无关性。一个 JavaBean 有三个部分组成:

属性(Property)

Bean 的属性就是对象的属性,但提供了属性读取和设置的接口支持。例如一个时钟 Bean 可以有时区和镇铃属性,日历 Bean 可以有年份和月份属性。每个属性通常遵守简单的方法命名规则。这样可以很方便的找出 Bean 提供的属性,然后查询属性值或改变属性值,对 Bean 进行操作。

方法(Method)

由于 Bean 本身是 Java 对象,调用这个对象的方法是与其交互作用的唯一途径。JavaBean 严格遵守面向对象的类设计逻辑,不让外界访问其任何实例字段(没有 Public 字段)。这样,方法调用的是接触 Bean 的唯一途径。

事件(Event)

Bean 与其他软件组件交流信息的主要方式是发送和接收事件。这与对象之间通过消息通信类似。

JavaBean 传统的应用在于可视化的领域,如 AWT 下的应用。自从 JSP 诞生后,JavaBean 更多的应用在非可视化领域,在服务器端应用方面表现出来了越来越强的生命力。利用非可视化 JavaBean, 来封装事务逻辑、数据库操作等等,可以很好地实现业务逻辑和前台程序(如 JSP)的分离,使得系统具有更好的健壮性和灵活性。

4.2.3 JDBC 技术

JDBC 是 Java 的开发者——Sun 的 JavaSoft 公司制定的 Java 数据库连接 JavaDataBaseConnectivity 技术的简称,是为各种常用数据库提供无缝联接的技术。JDBC 在 Web 和 Internet 应用程序中的作用和 ODBC 在 Windows 系列平台应用程序中的作用类似。JDBC 有一个非常独特的动态连接结构,它使得系统模块化。使用 JDBC 来完成对数据库的访问包括以下四个主要组件:Java 的应用程序、JDBC 驱动器管理器、驱动器和数据源。简单地说,JDBC 具有同一个数据库建立连接,向数据库发送 SQL 语句和处理数据库返回结果的功能。

JDBC 是一种可用于执行 SQL 语句的 JavaAPI(ApplicationProgrammingInterface,应用程序设计接口)。它由一些 Java 语言写的类、界面组成。JDBC 给数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯 Java 语言编写完整的数据库应用程序。

使用 JDBC,开发人员可以很方便地将 SQL 语句传送给几乎任何一种数据库。也就是说,开发人员可以不必写一个程序访问 Sybase,写另一个程序访问 Oracle,再写一个程序访问 Microsoft 的 SQL Server。用 JDBC 写的程序能够自动地将 SQL 语句传送给相应的数据库管理系统(DBMS)。不但如此,使用 Java 编写的应用程序可以在任何支持 Java 的平台上运行,不必在不同的平台上编写不同的应用。Java 和 JDBC 的结合可以让开发人员在开发数据库应用时真正实现,一次编写,到处运行。

Java 具有健壮、安全、易用等特性,而且支持自动网上下载,是一种很好的与数据库线连接而使用的编程语言。它所需要的是 Java 应用如何同各种各样的数据库连接,JDBC 正是实现这种连接的关键。

JDBC 扩展了 Java 的能力,如使用 Java 和 JDBCAPI 就可以公布一个 Web 页,页中带有能访问远端数据库的 Applet。或者企业可以通过 JDBC 让全部的职工(他们可以使用不同的操作系统,如 Windwos,Machintosh 或 UNIX)在 Intranet 上连接到几个全球数据库上,而这几个全球数据库可以是不相同的。

4.2.4 用 JDBC 访问数据库

所有的数据库的对象和方法都在 java.sql. 里面,所以首先要 import java.sql. ,要想连接数据库,首先要将驱动程序调入。

c++ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");这是JDBC-ODBC 的驱动程序。

要想连接一个指定的数据库,必须创建 Connection 类的一个实例。

c++ String url = "jdbc:odbc:Grocery prices"; Connection con = DriverManager.getConnection(url);

注意在此用到的数据库名称是在 ODBC 设置控制面板中输入的数据资源名。URL 语法对于不同类型的数据库会很不一样。 语法是这样的: jdbc:subprotocol:subname 开头都是 JDBC,后面是子协议,然后是 ODBC 名称。

若要使用纯 JDBC 驱动程序,必须安装第三方软件提供的驱动程序,一般在数据库的官方网站上可以找到这里不做讨论。

本系统采用 JDBC-ODBC 的驱动程序连接数据库,并使用 JavaBean 组件,有效的避免了代码的重复,具体过程如下:

c++ String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver"; //JDBC-ODBC驱动程序 String strDBUrl="jdbc:odbc:exam"; private Connection conn=null; private Statement stmt=null; ResultSet rs=null; //<!--注册数据库驱动程序--> public ExamBean() { try { Class.forName(strDBDriver); } //<!—异常处理--> catch(java.lang.ClassNotFoundException e) { System.err.println("exam():"+e.getMessage()); } } //<!—建立数据库连接及定义数据查询--> public ResultSet executeQuery(String sql) { rs=null; try { conn=DriverManager.getConnection(strDBDriver); //创建数据库连接对象 stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//支持数据回滚 rs=stmt.executeQuery(sql); } catch(SQLException ex) { System.err.println("aq.executeQuery:"+ex.getMessage()); } return rs; } //<!—定义数据更新操作--> public void executeUpdate(String sql) { stmt=null; try { conn=DriverManager.getConnection(strDBDriver); stmt=conn.createStatement(); stmt.executeUpdate(sql); stmt.close(); } catch(SQLException ex) { System.err.println("aq.executeQuery:"+ex.getMessage());

五、系统概要设计

5.1 功能模块图

根据系统的功能需求分析,将本系统划分为以下几大模块。如图 3.1 所示。

本系统包括管理员、和用户两种不同权限的用户。管理员能够对注册用户信息、管理员信息、失物信息以及留言板信息进行删除。用户能够注册、修改信息,发布和查找遗失物品信息并且可以通过留言板与其他用户交流。

整个系统也随着两种用户级别的不同而分成两大块,但是核心的功能只有增删改查以及由用户查看和留言板交流的功能,所以在接口设计上,本系统将主页定为 users ,将页面分为上中下两个部分,分别调用了 head.JSP、bottom.JSP、index.JSP 其中 head 和 bottom 只提供类似页眉页脚以及登录与注册的功能。Index.jsp 来连接其他功能模块,使系统外观简洁,代码重用率高,减少重复的代码设计工作。

图 3.1 功能模块图

5.2 系统用例图

用户可以实现对自己信息的注册和修改、遗失物品信息添加、留言板信息的添加,但只有管理员能够实现对所有信息的删除。本系统将主要功能提供给用户,当用户注册成为会员时,可以使用系统的发部分功能。系统用例图如图 3.2 所示。

图 3.2 系统用例图

5.3 系统结构图

系统结构图来体现系统的整体设计思路,从用户登录到数据库更新,宏观展现失物招领系统。用户主要是发布功能,而管理员主要是信息的管理、删除功能。如图 3.3 所示。

图 3.3 系统结构图

六、系统详细设计

6.1 数据库设计

数据字典是系统分析阶段的重要文档,也就是对数据流图中包含的所有元素的定义的集合。数据字典是为了数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项作出说明。任何字典最主要的用途是在软件分析和设计的过程中给人提供关于数据的描述信息。

数据字典中包含的每个数据元素的控制信息是很有价值的。因为列出了使用一个给定的数据元素的所有程序,所以很容易估计改变一个数据将产生的影响,并且能对所有受影响的程序或模块做出相应的改变。数据流图表达了数据和处理的关系,数据字典则是系统中关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据字典的作用正是在软件分析和设计过程中给人提供关于数据的描述信息。一般说来,数据字典应该由下列 4 类元素的定义组成:数据流、数据流分量、数据存储、处理 。

下面为本系统的数据字典:

数据流名称:用户登录信息

别名:无

简述:用户登录时填写的信息

来源:用户

去向:用户登录

数据流量:500 份/天

组成:用户名和密码

表 4.1 login 表

名称 类型 说明 备注
Username Varchar 用户名 pk
Userpwd Varchar 用户密码

数据流名称:用户注册信息

别名:无

简述:用户注册时填写的信息

来源:用户

去向:用户注册

数据流量:10 份/天

组成:用户名、用户真实姓名、密码、电邮、联系电话、性别、联系地址、邮编。

表 4.2 register 表

名称 类型 说明 备注
Username varchar 用户名 pk
Realname varchar 用户真实姓名
Password varchar 密码
Email varchar 电邮
Tel varchar 联系电话
Sex varchar 性别
Address varchar 联系地址
post varchar 邮编

数据流名称:失物/拾物的一般信息

别名:无

简述:用户添加失物/拾物时填写的信息

来源:失物/拾物信息的添加

去向:失物/拾物信息表文件

数据流量:50 份/天

组成:失物/拾物名称、失物/拾物简介、失物/拾物类别、图片名称

表 4.3 lost_infor 表

名称 类型 说明 备注
Lostname varchar 名称 pk
Type varchar 类型
Intero varchar 介绍
Photo varchar 图片
Link varchar 联系人
Tel varchar 电话
Remark varchar 备注信息

数据流名称:失物/拾物组成明细

别名:无

简述:用户添加失物/拾物时填写的信息

来源:失物/拾物信息的添加

去向:失物/拾物组成明细添加

数据流量:50 份/天

组成:失物名称和数量

表 4.4 lost_add 表

名称 类型 说明 备注
Name varchar 失物/拾物名称 pk
Num varchar 数量

数据流名称:各种相关信息

别名:无

简述:管理员录入数据或读取数据时的信息

来源:录入

去向:数据文件

数据流量:10 份/天

组成:各类信息

表 4.5 inform 表

名称 类型 说明 备注
Title varchar 标题 pk
Contetn varchar 内容
Addtime varchar 添加时间

6.2 处理流程设计

6.2.1 系统操作流程

系统主要功能由登录、验证、信息管理、遗失物品查看等功能组成。用户进入登录界面,点击登录,然后输入登录用户名及密码。若用户名与密码验证成功后,即可登录,若验证失败,提醒用户注册。

登录成功后,用户即可浏览、发布、查找遗失物品信息、留言等。发布信息成功,或找到遗失物品时,即可发布失物信息,等待失主联系。系统流程图如图 4.1 所示。

图 4.1 系统操作流程图

6.2.2 数据增加流程

添加信息时,编号字段由系统自动生成,且不能修改,其他信息由用户输入,之后对数据进行合法判断,合法则写入保存至数据库,不合法则重新输入数据。

当拾取用户/遗失用户发布拾物/失物信息时,每一项都会有必填项提示,用户必须对每项填写相关信息,若没有信息描述时,可以写“无”。当用户发现信息填写有误时,可以删除所写信息,或点击【重置】按钮,可以实现所有已填写信息清除。

当用户填写完相关信息,并核对无误后,点击【提交】按钮,数据会写入数据库。数据增加流程图如图 4.2 所示。

图 4.2 数据增加流程

6.2.3 数据修改流程

在修改信息时,先选中一条待修改的记录,然后直接输入数据,判断合法性,合法则保存至数据库,不合法重新输入。数据修改流程图如图 4.3 所示。

图 4.3 数据修改流程图

6.2.4 数据删除流程

当用户选定一条记录时,单击【删除】按钮,会提示用户是否确定删除,然后删除数据库相关内容。数据删除流程图如图 4.4 所示。

图 4.4 数据删除流程图

6.3 系统模块设计

6.3.1 管理员登陆

当登陆时,首先出现的是一个用户登陆的界面,主要是维护系统的安全性和完整性。界面如图 4.5 所示。

图 4.5 管理员登陆

主要代码如下:

```c++

用户名:
密码:
``` ### 6.3.2 认领信息管理 管理员可以对认领信息管理。界面如图 4.6 所示。 ![](https://www.writebug.com/myres/static/uploads/2022/5/27/30b9d7d71f07faaa394fdd3b68f31aba.writebug) 图 4.6 认领信息管理 主要代码如下: ```c++ <% ArrayList lost = array.getLost(); if(lost != null && lost.size() != 0) { for(int i = 0; i < lost.size(); i++) { ArrayList alRow = (ArrayList)lost.get(i); %> <%=i+1 %> <%=alRow.get(2) %> <%=alRow.get(4) %> <%=alRow.get(5).toString().substring(0,16) %> <%=alRow.get(6) %> <%=alRow.get(7) %> <%=alRow.get(8) %> <%=alRow.get(10) %> 删除 <% } } %> ``` ### 6.3.3 学生信息管理 管理员可以对学生进行管理,包括删除和回复等操作。界面如图 4.7 所示。 ![](https://www.writebug.com/myres/static/uploads/2022/5/27/aa06f3c4dc97269826ddfabaafa7fb97.writebug) 图 4.7 学生信息管理 主要代码如下: ```c++ <% ArrayList users = array.getUsers(); if(users != null && users.size() != 0) { for(int i = 0; i < users.size(); i++) { ArrayList alRow = (ArrayList)users.get(i); %> <%=i+1 %> <%=alRow.get(1) %> <%=alRow.get(3) %> <%=alRow.get(4) %> <%=alRow.get(5) %> <%=alRow.get(6) %> <%=alRow.get(7) %> <%=alRow.get(8) %> <%=alRow.get(9) %> 删除 <% } } %> ``` ### 6.3.4 注册会员 游客可以进行会员注册,注册会员需要填写用户的用户名、登陆密码、真实姓名、性别、出生日期、籍贯、email、密码提示问题、提示答案。界面如图 4.8 所示。 ![](https://www.writebug.com/myres/static/uploads/2022/5/27/1ded9b85af31d974458b1c5f02702ff4.writebug) 图 4.8 会员注册 主要代码如下: ```python
用户名:
密码:
重复密码:
学号:
学院:
班级:
真实姓名:
联系电话:
联系地址:
电子邮箱:
``` ### 6.3.5 信息查询 会员可以进行查询遗失信息或招领信息,支持模糊查询。界面如图 4.9 所示。 ![](https://www.writebug.com/myres/static/uploads/2022/5/27/e42854f859a0119dc4d02f892a239575.writebug) 图 4.9 信息查询 主要代码如下: ```c++ <% for(int i = 0; i < lost.size(); i++) { ArrayList alRow = (ArrayList)lost.get(i); %> ``` ### 6.3.6 网站首页设计 网站首页,显示了注册用户所有可用功能,包括修改密码、发布信息查询、发布遗失物品信息、查询物品信息等主要功能。界面如图 4.10 所示。 ![](https://www.writebug.com/myres/static/uploads/2022/5/27/37646bcd6120cb6ede86e11ab7a37f62.writebug) 图 4.10 网站首页 # 七、系统调试与测试 ## 7.1 程序调试 在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据、计算公式的逻辑理解错误而导致的错误结果。这类错误隐蔽性强,会随机出现,因此,对这一类动态发生的错误进行排查非常耗时费力。 ## 7.2 程序的测试 ### 7.2.1 测试的重要性及目的 测试的重要性 软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。 在编写代码的过程中,也在不断进行着测试,测试可以及时发现代码中的错误。测试与代码编写同样重要,因此工作量也同样可观,所以在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这些错误认识可以概括成以下几方面:(1) 认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感; (2) 以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定; (3) 测试工作枯燥无味,不能引起人们的兴趣; (4) 测试工作是艰苦而细致的工作; (5) 对编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法。 这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。在学习过程中必须在努力研究和改正对软件测试的看法和态度,力高自己的软件测试能力。 测试的目的 如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。软件测试的目的可以概括成以下几个方面: 软件测试是为了发现错误而执行程序的过程; 测试是为了证明程序有错,而不是证明程序无错误; 个好的测试用例是在于它能发现至今未发现的错误; 个成功的测试是发现了至今未发现的错误的测试。 这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。 首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。 ### 7.2.2 测试的步骤 与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成: - 模块测试:在这个测试步骤中所发现的往往是编码和详细设计的错误。 - 系统测试:在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。 - 验收测试:在这个测试步骤中发现的往往是系统需求说明书中的错误。 ### 7.2.3 测试的主要内容 - 为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试、确认测试和系统测试。 - 单元测试 - 单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。 - 集成测试 集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。 确认测试 确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能是否如同用户所合理期待的那样。 系统测试 软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。 单独对系统的测试主要从以下几方面入手: 功能测试:测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。 强度测试及性能测试:测试系统能力实际最高限度,即软件在一些超负荷情况下功能实现的情况。 安全测试:验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。针对本系统主要是对权限系统的测试和对无效数据、错数据、和非法数据干扰的能力的测试。 经过上述的测试过程对软件进行测试后,软件基本满足开发的要求,测试宣告结束。 # 八、结论 ## 8.1 系统评价 本文通过本系统设计与开发,从而得出下列结论: 学习一门新技术,最重要的是实践,只有多动手才能尽快掌握学到的技术,通过这次毕业设计,我在实践中学会了 JSP 技术。 个系统的开发,经验是最重要的,经验不足,就难免会有许多考虑不周之处,在开发过程中,我走了许多弯路,但同时也获得许多宝贵经验。 要想吸引更多的用户,系统的界面必须要美观、有特色、友好,功能要健全。不过由于经验不足,我设计的图形界面比较简单。只是对基本功能进行了开发。 本次开发,我参考了很多本类系统的例子,吸取了一些别的系统的长处,对自己的毕业设计进行了完善,但是还有很多的不足之处,有待以后进一步学习。 实践证明,本系统有着很好的发展前景,经测试运行。本文所制作的系统界面友好、使用灵活、操作简单、功能齐全、表现方式独特,已基本具备了成熟的技术理论。 由于时间仓促,本次设计由我完成本系统的制作,对我这样一个 JSP 新手而言所制作的模块还有不完善的地方。数据库的设计也比较简单。还有很多毕业设计中用到 JSP 语言的知识也不够全面,还有很多地方不能够作到完全的理解和掌握。通过这次毕业论文的设计制作使本人受益匪浅。首先,由于毕业设计所用的 JSP 技术和其中用到 JSP 语言的其他部分是在课堂上没有接触过的,要用它来做设计必须通过大量自学来掌握,在这个过程中,不仅大大提高了我的自学能力而且让我对 JSP 的学习有了进一步的认识 。由于是独立完成在毕业设计的过程遇到了很多的困难,我求教了不少老师和同学,在这个过程中让我体会到了,一个团队的重要性。 ## 8.2 安全性问题 Web 开发中安全性是必须考虑的一个很重要的方面,特别是在诸如个信息等敏感数据的模块中更是关键,所以这也是后期开发需要引起重视的。下面就这方面的技术和解决方案加以讨论。 安装防火墙:安装防火墙并且屏蔽数据库端口能有效地阻止了来自 Internet 上对数据的攻击。 输入检查和输出过滤:用户在请求中嵌入恶意 HTML 标记来进行攻击破坏,防止出现这种问题要靠输入检查和输出过滤,而这类检查必须在服务器端进行,一旦校验代码发现有可疑的请求信息,就将这些可疑代码替换并将其过滤掉。 # 九、致谢 在本次毕业论文过程中,得到了指导老师余浚老师的指导与支持。在此特别感谢余老师的大力帮助。通过指导老师的悉心指导和大力支持,在总体结构、功能的把握上给予了非常大的帮助,同时根我们提供了非常优越的设计环境,并对我在编程、数据库设计等细节工作上给予了耐心的指导,对于我顺利完成这次毕业论文起到了关键性的作用。 我还要感谢我的母校,以及在大学四年生活中给予我关心和帮助的老师和同学,是他们教会了我专业的知识和做人的道理。通过这次毕业论文我还明白了作为一名计算机专业的大学毕业生,我们要会的不仅仅是编写代码,更重要的是要有整体把握系统设计的能力。我会在以后的工作和学习中不断完善自己,为我最热爱的母校争光,为自己翻开辉煌的新篇章。 # 十、参考文献 BruceEckel.JAVA 编程思想. 机械工业出版社,2003 年 10 月:1-378 FLANAGAN.JAVA 技术手册. 中国电力出版社,2002 年 6 月:1-465 赛奎春.JAVA 工程应用与项目实践. 机械工业出版社, 2002 年 8 月:23-294 孙一林,彭波.JSP 数据库编程实例. 清华大学出版社,2002 年 8 月:30-210 耿祥义,张跃平.JSP 实用教程. 清华大学出版社,2003 年 5 月 1 日:1-354 孙涌.现代软件工程.北京希望电子出版社,2003 年 8 月:1-246 LEE ANNE PHILLIPS.巧学活用 JSP.电子工业出版社,2004 年 8 月:1-319 飞思科技产品研发中心.JSP 应用开发详解.电子工业出版社,2003 年 9 月:32-300 萨师煊,王珊.数据库系统概论.高等教育出版社,2002 年 2 月:3-460 清宏计算机工作室.JSP 编程技巧. 机械工业出版社, 2004 年 5 月:1-410 Brown 等.JSP 编程指南(第二版). 电子工业出版社 ,2003 年 3 月:1-268
<%=i+1 %> <%=alRow.get(2) %> 地点:<%=alRow.get(4) %> 时间:<%=alRow.get(5).toString().substring(0,16) %> 信息类型:<%=alRow.get(10) %>

参考文献

  • 基于物联网的物流管理系统设计与实现(电子科技大学·李俊)
  • 基于JSP技术的仓库管理货物系统的设计与实现(吉林大学·徐炳轩)
  • 车载WIFI设备物流管理系统设计与实现(北京工业大学·张磊)
  • 中小型物流企业物流信息平台设计与实现(西安电子科技大学·孙瀚渝)
  • 基于JSP技术的仓库管理货物系统的设计与实现(吉林大学·徐炳轩)
  • 中小型物流企业物流信息平台设计与实现(西安电子科技大学·孙瀚渝)
  • 统一用户管理系统开发与设计(南昌大学·郭妍)
  • 基于JSP技术的仓库管理货物系统的设计与实现(吉林大学·徐炳轩)
  • 中小型物流企业物流信息平台设计与实现(西安电子科技大学·孙瀚渝)
  • 基于WEB和JAVA的网络管理系统(昆明理工大学·李欢欢)
  • 基于WEB和JAVA的网络管理系统(昆明理工大学·李欢欢)
  • 统一用户管理系统开发与设计(南昌大学·郭妍)
  • 现代综合性物流管理系统的设计与实现(电子科技大学·杜云飞)
  • 基于Android的校园失物招领平台的设计与实现(内蒙古大学·唐志婧)
  • 基于Android的校园失物招领平台的设计与实现(内蒙古大学·唐志婧)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕设项目助手 ,原文地址:https://m.bishedaima.com/yuanma/36082.html

相关推荐

发表回复

登录后才能评论