家教平台系统设计

目   录

   

1  

1.1 背景

1.2 系统开发的意义

第二章 系统开发环境简介

2.1 环境配置

2.2 使用工具介绍

2.2.1 使用工具简述

2.2.2 B/S结构介绍

2.2.3 Struts+Spring+Hibernate框架介绍

2.2.4 JSP简介

2.2.5 MySQL数据库介绍

2.2.6 MyEclipse 集成开发环境介绍

第三章 系统需求分析

3.1 任务概述

3.1.1需求概述

3.1.2 系统目标

3.1.3 运行环境

3.2业务需求

3.2.1 系统用例图

3.2.2 系统角色

3.2.3 用例分析

3.3系统顶层架构

3.4 领域概念模型

3.5性能需求

3.6 运行需求

3.6.1 界面需求

3.6.2 硬件接口需求

3.6.3 软件接口需求

第四章 家教信息管理系统设计

4.1系统设计概述

4.2 系统体系结构设计

4.2.1系统的总体结构设计遵循原则

4.2.2体系结构

4.3 系统用例设计

4.3.1前端用户子系统

4.3.2后端管理员子系统

4.3.3 系统用例详细设计

4.4 数据库结构设计

4.4.1数据E-R图设计

4.4.2数据库表的设计

4.4.3 数据库的连接

4.5 界面设计

4.5.1客户端界面设计

4.5.2服务端界面设计

4.5.3客户端界面目录结构

4.6 系统实体Bean的抽象

第五章 编码与测试

5.1 编码概述

5.2 编码规范

5.2.1 命名规范

5.2.2 注释规范

5.3 软件编码

5.4 测试概述

5.5 软件测试

5.5.1测试要点

5.5.2测试内容

5.5.3单元测试

5.5.4测试用例设计

结论与展望

   

   

    

附录A 外文文献及其译文

附录B:主要参考文献的题录及摘要

插图清单

图 2-1 spring框架图 ……………………………………………………………………24

图 2-2 MVC体系结构图 ……………………………………………………………………2

图 3-1 网络拓扑图 ………………………………………………………………………12

图 3-2 系统用例图 ………………………………………………………………………17

图 3-3 系统顶层架构 ……………………………………………………………………17

图 3-4 领域概念模型图 …………………………………………………………………20

图 4-1 前端客户端子系统图示 …………………………………………………………20

图 4-2 后端管理员端子系统图示 ………………………………………………………21

图 4-3 系统体系结构图 …………………………………………………………………21

图 4-4 用户登录序列图 …………………………………………………………………22

图 4-5 学员搜索模块过程顺序图 ………………………………………………………22

图 4-6 留言用例序列图 …………………………………………………………………23

图 4-7 收藏夹用例序列图 ………………………………………………………………23

图 4-8 系统E-R图 ………………………………………………………………………24

图 4-9 首页用户登录设计界面 …………………………………………………………27

图 4-10 会员中心用户登录界面设计  …………………………………………………28

图 4-11 用户注册页面  …………………………………………………………………28

图 4-12 学员详细信息登陆页面  ………………………………………………………29

图 4-13 学员信息搜索页面  ……………………………………………………………29

图 4-14 教员信息搜索页面  ……………………………………………………………29

图 4-15 家教社区设计页面  ……………………………………………………………30

图 4-16 教员收藏夹设计页面……………………………………………………………31

图 4-17 学员收藏夹设计页面……………………………………………………………31

图 4-18 管理员登录界面…………………………………………………………………32

图 4-19 客户端界面目录结构……………………………………………………………32

图 4-20 类图………………………………………………………………………………33

表格清单

表 4-1 数据库所有表 ……………………………………………………………………25

表 4-2 用户表 ……………………………………………………………………………25

表 4-3 社区信息表 ………………………………………………………………………26

表 4-4 留言表 ……………………………………………………………………………26

表 4-5 管理员表 …………………………………………………………………………26

表 5-1 用户登录用例表 …………………………………………………………………41

表 5-2 学员信息搜索用例表 ……………………………………………………………41

表 5-3 学员注册用列表 …………………………………………………………………42

表 5-4 留言功能测试用例 ………………………………………………………………42

引   言

Internet技术以令人不可思议的速度飞速发展,各行业均被卷入了互联网的大潮之中,网络技术的应用遍及各种技术当中。新一代的数据库设计与网络设计都或多或少带上了Internet的特点。采用Internet、Intranet和Web技术的管理信息系统开始出现,普遍采用了统一的浏览器界面和以Web服务器为中心的分布式管理体系,使用极其方便,数据的共享和发布更为简单,功能更为全面,软件的二次开发更为容易,为满足目前的业务状况,又能适应未来不断增长业务需求,具有灵活的可扩充性。

在此互联网的浪潮中,基于B/S的家教管理系统应允而生,传统的家教作业已无法满足现今的趋势,利用互联网实现家教信息的交流已成为必然,所以建设一个基于BS的家教管理系统成为当今社会的一种需求。

我国传统的家教模式就是学生及家长主动找老师,学生没有多选的条件,在老师有空的时候才能做补习,不具有严格的制度。本家教交流平台是一套操作简单、应用广泛、扩展行强的交流系统. 家教交流系统的优越性在于对教,学员的资料进行动态的管理,修改,添加,删除都非常方便,查找教学员准确资料非常方便;教学员间可互选;有统一的制度;学员及家长对教员不满意可投诉;时间上的选择非常灵活。从而达到提高家教效率的目的。

第1章 绪 论

1.1 背景

网上找家教不仅是推动家教管理变革与流程创新的有效手段,更是实现人工技能网络化与信息化的桥梁。要彻底实现网上找家教,需建立信息的资源共享机制,建立相应的组织机构,完善身份认证制度,建立健全的家教信息安全机制体系。

为了进一步提高网上找家教的效率和质量,适应家教普及发展的需要,实施网上找家教是非常必要的。一直以来,找家教是个古老而又常说常新的话题,随着家教的普及以及形式的多样化,因此,对家教服务及服务质量提出了越来越高的要求。形势的发展:家长学生希望能找到专业以及符合他们诸多条件的教师,教师也希望找到一份地理位置合适,薪酬满意的家教工作。由于传统的做家教和找家教方式已经难以适用家教双方的需求,比如说,学生找老师和老师找学生,过程都过于复杂,非常影响工作效率,也不利于家教这个行业的发展等。但目前,我国信息化程度日益普及,上网已成为工作和生活的重要部分,在全国大部分地区实现网上找家教的条件已经成熟。

无可厚非,各个城市地区实现网上找家教是当今社会发展的趋势,学员可以搜索教员查询教员的详细信息,以满足自己的需求;教师也可去选择合适自己的家教工作,而且双方还可在网上通过留言进行咨询和沟通。

诚然,实施网上找家教有着人工寻找无与伦比的优势,他可以向学员和教员提供更为方便的服务。因为学员和教员可以通过留言进行咨询,有很好的灵活性与机动性强,非常适用当今家教行业的需求。对管理员来说,统计家教数据将会更加快捷,操作更加方便,从而使家教管理更加规范化、科学化,同时还能够动态掌握家教信息,及时统计相关数据,为该行业的发展提供很重要的数据支持。

1.2 系统开发的意义

由此可见,开发网上基于web的家教信息管理系统的意义在于:对学员来说,无需长途跋涉就可以查找巨大的教员库,选择符合自己教学要求的教员进行联系沟通。即省时又省力。对于教员来说,需要通过网络注册就能把自己的信息传送到网络上,供学员去选择,也能寻早已注册的学员,主动联系。达到一个学员可以选择教员,教员可以选择学员的双选效果,更加具有人性化。对于管理者来说,只需很少的管理人员就可以完成很多的人家教需求任务,使得家教管理更加规范化、科学化,人性化,同时还能够动态掌握教员和学员的信息,及时统计相关数据,为家教管理单位提供决策依据,既减少了人员的组织与花费,又提高了家教的服务水平和质量。

第二章 系统开发环境简介

2.1 环境配置

2.1.1 硬件环境

硬件在很大程度上可以决定一个系统的运行速度和使用效率,然而在本系统中,所用到的硬件配置如下:

要求CPU(P4或者更高的)主频2.4GHZ以上,内存512MB以上,硬盘1G以上,其他如光驱、软驱、和显示器等均无要求。

2.1.2 软件环境

一个系统单是有硬件支持还是无法正常运行的,还必须得通过相应的软件来支持。为此,本系统中所用到的软件环境配置如下:

操作系统:此处选WINDOWSxp系列;

数据库:此处选择MYSQL数据库 [8];

开发工具包:JAVA的开发工具包有很多版本,此处选择JDK1.5;

WEB服务器(或容器):其服务器也有很多版本,此处选择apache-tomcat- 5.5.23;

浏览器:此处选择浏览器IE5.0,推荐使用IE6.0。

2.2 使用工具介绍

2.2.1 使用工具简述

本系统使用Java语言编写,基于B/S结构开发,采用Struts+Spring+Hibernate框架,使用的技术有JSP、HTML,使用Mysql数据库,开发工具使用MyEclipse。

2.2.2 B/S结构介绍

B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

2.2.3 Struts+Spring+Hibernate框架介绍

典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。

   表现层是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。   

中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。

   Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。

Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。

DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。

PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。

    Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。

对于开发Web应用,要从头设计并开发出一个可靠、稳定的框架不是一件容易的事情,随着Web开发技术的日趋成熟,在web开发领域出现了一些现成的优秀的框架,开发者可以直接使用它们,Spring就是一个很好的框架结构,它定位的领域是许多其他流行的framework没有的。Spring关注提供一种方法管理你的业务对象。Spring是全面的和模块化的。Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。因此从你的学习中,你可得到最大的价值。例如,你可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。

本系统采用spring框架集成struts框架和Hibernate进行设计。这样非常优雅的实现的MVC模式的设计。

图 2-1 Spring框架图

视图:就是一组JSP文件,这些JSP文件没有业务逻辑,也没有模型信息,只有标签,这些标签可以是标准的JSP标签或者是客户化标签,如Struct标签库的标签。此外,通常将Strcut框架中的ActionForm Bean也划为视图模块中,ActionForm Bean是一种JAVABEAN,除了具有一些JAVABean的常规方法外,还包含了一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置默认值。Struct框架利用ActionForm Bean来进行视图和控制器之间表单数据的传递。Strcut框架将用户输入的表单数据保存在ActionForm Bean中,将它传递给控制器,控制器可以对ActionForm Bean中的数据进行修改,JSP文件使用Strcut标签读取修改后的ActionForm Bean的信息,重新设置HTML表单。

控制器:控制器由ActionServlet类和Action类实现,ActionServlet类是Struct框架中的核心组件。是这个MVC的中央控制器的角色,ActionServlet主要负责接收HTTP请求的信息,根据配置文件struct-config.xml的配置信息,将请求转发给适当的Action对象,如果该Action对象不存在,ActionServlet会先创建这个Action对象。Action类负责调用模型的方法,更新模型的状态,并帮助控制应用程序的流程,对于小型简单的应用,Action类本身也可以完成一些实际的业务逻辑。

模型:模型表示应用程序的状态和业务逻辑,业务逻辑常常由JavaBean或者EJB组件实现。

如果在Web应用开发中套用现成的Struct框架,可以简化每个开发阶段的工作,开发人员可以更加有针对性地分析应用需求,不必重新设计框架,只需在Struct框架的基础上,设计MVC各个模块包含的具体组件,在编码过程中,可以充分利用Struct提供的各种实用类和标签库,简化编码工作。

Struct框架可以方便迅速地将一个复杂的应用划分成模型、视图和控制器组件,而Struct的配置文件struct-config.xml可以灵活地组装这些组件,简化开发过程。

系统体系结构:

根据系统分析结果,该系统从结构上应满足:

  1. 基于浏览器进行显示以方便用户使用;
  2. 采用MVC的三层体系结构,分化各个功能组件;
  3. 采用JDBC技术与数据库通讯以便于数据库的转换;
  4. 采用标签技术完成动态页面的简单逻辑。

本系统的体系结构如图,它基本遵循了struct体系的MVC框架规范。

图 2-2 MVC体系结构图

表示层:用于与用户进行交互以及显示结果。包括所有的JSP,提供用户界面,接受用户输入, 还包括相应的ActionFrom Bean,用来存放表单数据,并进行表单数据验证。

控制层:包括所有的Action类,它完成三项任务:一是进行业务逻辑验证,二是调用模型组件,三是决定将合适的视图组件返回给用户。

模型:进行逻辑处理的JavaBean等。数据库采用ODBC技术以提供数据库的可移植性,

     一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常能很好的解决一个问题。然而,应用是分层的,可能每一个层都需要各自的框架。

2.2.4 JSP简介

JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。

用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。

JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

JSP是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

2.2.5 MySQL数据库介绍

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。在2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。

2.2.6 MyEclipse 集成开发环境介绍

MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。

在结构上,MyEclipse的特征可以被分为7类:

1. J2EE模型

2. WEB开发工具

3. EJB开发工具

4. 应用程序服务器的连接器

5. J2EE项目部署服务

6. 数据库服务

7. MyEclipse整合帮助

对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。

  MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。

第三章 系统需求分析

3.1 业务概述 

3.1.1需求概述

各个城市地区实现网上找家教是当今社会发展的趋势,学员可以搜索教员查询教员的详细信息,以满足自己的需求;教师也可去选择合适自己的家教工作,而且双方还可在网上通过留言进行咨询和沟通本系统为家教服务提供一个交流的平台,使学生能够在本系统中找到适合自己的家教,也使有请家教意愿的人群能够发布自己的招聘通知,开发出一套以家教服务为目标的小型的网站信息管理系统。首先,对家教服务感兴趣的网民可以查询本系统的学员和教员信息,可以查看社区的信息;其次如果要获取更进一步的操作,如:给教员或学院留言,参与社区的讨论,发布社区信息等,就必须进行注册登录;再者,管理员可以用特殊身份对本系统的信息进行管理,管理包括对信息的认证和删除。

3.1.2 系统目标

系统实现后,家教双方就能通过网络进行交流,大大方便了学员求教和教员执教,学员无需长途跋涉就可以查找巨大的教员库,选择符合自己教学要求的教员进行联系沟通。即省时又省力。对于教员来说,需要通过网络注册就能把自己的信息传送到网络上,供学员去选择,也能寻早已注册的学员,主动联系。达到一个学员可以选择教员,教员可以选择学员的双选效果,更加具有人性化。对于管理者来说,只需很少的管理人员就可以完成很多的人家教需求任务,使得家教管理更加规范化、科学化,人性化。

3.1.3 运行环境

1、硬件环境

本系统的硬件环境如下:

  1. 客户机:普通PC
    1. CPU:P4 1.8GHz以上
    2. 内存:256MB以上
    3. 能够运行IE5.0以上或者Netscape4.0以上版本的机器
    4. 分辨率:推荐使用1024*768像素
  2. WEB服务器
    1. CPU:P4 2.0GHz
    2. 内存:1G以上
    3. 硬盘:80G以上
    4. 网卡:千兆
  3. 数据库服务器
    1. CPU:P4 2.0GHz
    2. 内存:1G以上
    3. 硬盘:80G以上

2、软件环境

本系统的的软件环境如下:

  1. 操作系统:Unix/Linux/windows2000或以上版本
  2. 数据库:MySql
  3. 开发工具包:JDK Version 1.4.2
  4. 开发环境:eclipse-SDK-3.1.2-win32
  5. Web服务器:Tomcat
  6. 浏览器:IE6.0以上

3.2业务需求

3.2.1 系统用例图

图 3-2 系统用例图

3.2.2 系统角色

通过业务分析,本系统的用户有以下几种类型:

⑴user:用户类型;包括学员类型和教员类型。该类型主要是标志着一个用户已经成为该系统的一个会员。当你注册后,就是本系统的一个user。每个user都有一个收藏夹,可以发布社区信息,可以给通网站的会员留言等。

     ①student:学员用户;当用户注册成为本系统的会员后(注册时应选择是学员注册还是教员注册),就需要继续填写学员的详细信息,包括:姓名、性别、家教科目、联系人、学习现状、执教地址、教员要求等等。通过填写如上信息,你就正式成为本网站的学员用户。所有网民都可查到你所提交的这份信息。

     ②teacher:教员用户;跟学员用户一样,也需填写一份教员的详细信息,但是,教员信息要发布到网络上,还需通过本网站管理员的认证,已保证信息的真实可靠信息。

⑵common:普通用户;是正对所有网民的,任何网民只需输入本网站的域名,就可以查看本网站的所有学员和教员的基本信息,但是不能进行留言,和发布信息,也没有个人收藏夹。

⑶admin:系统管理员;角色任务是认证教员,维护系统资源。

3.2.3 用例分析

用例图描述了系统提供的功能,一下通过对主要用例的分析来理解系统的功能需求:

⑴注册成为会员

描述:未注册用户在注册新用户的界面上按要求输入必要的信息,提交到服务器,其结果是服务器将该用户保存到数据,并确定该用户是否注册成功。

参与者:家教用户

优先级:1

前提:无

主方式:从浏览器上选择选择注册进入到注册界面

异常方式:用户注册的信息不完整

⑵登陆系统

描述:用户输入登录名和密码,选择登录身份后,提交到服务器,其结果是服务器验证输入信息,并将登录信息存放到会话状态中。

参与者:家教用户

优先级:1

前提:招聘者已经注册成功

主方式:从浏览器上选择选择登录进入到登录界面

异常方式:登录名或密码不对

⑶学员信息查看

描述:用户在学员信息主界面的条件输入栏输入相应的条件,可以单条件输入,也可以多条件输入,点击查询 ,提交至服务器,服务器根据查询条件从服务器中提取相应的信息,最后分页显示到用户界面。

参与者:家教用户

优先级:1

前提:无

主方式:从浏览器上学员信息主界面上填写条件信息,点击查询就ok了。

异常方式:在用户提交的条件下没有符合条件的记录

⑷教员信息查看:

描述:用户在教员信息主界面的条件输入栏输入相应的条件,可以单条件输入,也可以多条件输入,点击查询 ,提交至服务器,服务器根据查询条件从服务器中提取相应的信息,最后分页显示到用户界面。

参与者:家教用户

优先级:1

前提:无

主方式:从浏览器上教员信息主界面上填写条件信息,点击查询就ok了。

异常方式:在用户提交的条件下没有符合条件的记录

⑸查看详细信息:

描述:用户在获取到学员或教员信息以后,就可以通过点击记录的最后一项“详细信息”就可以查询学员或教员的详细信息。同是可以把学员或教员的信息加入到收藏夹中。前提是用户需登陆。

参与者:家教用户

优先级:2

前提:查询到了记录项,并且用户已经登陆。

主方式:从浏览器上教员信息主界面上填写条件信息,点击查询就ok了。

异常方式:在用户提交的条件下没有符合条件的记录

⑹加入收藏夹:

描述:在学员或教员的详细信息页面,用户可以选择把当前信息放入个人收藏夹。

参与者:家教用户

优先级:2

前提:查询到了记录项,并且用户已经登陆。

主方式:点击详细页面上的加入收藏夹按钮,点击查询就ok了。

异常方式:用户未登录就执行该操作;用户为学员是把学员信息加入收藏夹,用户为教员是把教员信息加入收藏夹

⑺收藏夹:

描述:每个学员和教员都有个人不同的收藏夹,在收藏夹可以查看自己的收藏,修改注册信息,发布社区信息,查看留言和回复留言等操作。

参与者:家教用户

优先级:2

前提:用户登陆

主方式:点击收藏页面的菜单列表

异常方式:收藏夹为空,修改信息不成功,社区信息发布不成功,留言为空,回复留言不成功。

⑻修改会员基本信息:

描述:用户在收藏夹页面维护自己的信息的时候,就可以修改会员的基本信息。

参与者:家教用户

优先级:2

前提:用户登陆,进入收藏夹夹页面

主方式:点击收藏页面的修改会员基本信息菜单列表

异常方式:修改信息不成功。

⑼查看我的收藏

描述:用户在收藏夹页面维护自己的信息的时候,就可以查看我的收藏,对收藏信息进行删除和留言操作。

参与者:家教用户

优先级:2

前提:用户登陆,进入收藏夹夹页面

主方式:点击收藏页面的查看我的收藏菜单列表

异常方式:我的收藏为空。

⑽查看我的留言:

描述:用户在收藏夹页面维护自己的信息的时候,就可以查看我的留言,对收藏信息进行删除和回复留言操作。

参与者:家教用户

优先级:2

前提:用户登陆,进入收藏夹夹页面

主方式:点击收藏页面的查看我的留言菜单列表

异常方式:我的留言为空。

⑾发布社区信息

描述:用户在收藏夹页面维护自己的信息的时候,就可以发布社区信息,以供会员讨论和参考。

参与者:家教用户

优先级:2

前提:用户登陆,进入收藏夹夹页面

主方式:点击收藏页面的查看发布社区信息菜单列表

异常方式:社区信息发布不成功。

⑿家教社区:

描述:家教社区列出了所有会员和管理者发布的所有信息,用户可以点击标题连接进行阅读和评阅。

参与者:家教用户

优先级:2

前提:查看无前提,留言需登陆

主方式:点击主菜单的家教社区

异常方式:社区发布信息为空

3.3系统顶层架构

顶层架构的主要目的是为后续的分析和设计活动建立一种结构和划分,以便开发人员在不同的开发阶,以及同一开发阶段的不同开发人员,能够聚焦于系统的不同部分。包图是表示顶层架构的适当的机制。下图就是对家教管理系统顶层架构的设计。

图 3-3 系统顶层架构

3.4 领域概念模型

 在用户需求和相关领域中,往往有些全局性的概念对于理解需求非常重要,所以要抽取这些概念,研究这些概念之间的关系。在此,我使用标准的UML中的类表示概念,用类图示领域概念模型。

图 3-4 领域概念模型图

3.5性能需求

为了保证系统能够长期、安全、稳定、可靠、高效的运行,家教信息管理系统应该满足以下的性能需求:

(1). 系统处理的准确性和及时性

系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足大众对信息处理的需求。

由于家教信息管理系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,其准确性很大程度上决定了家教信息管理系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性。

(2). 系统的开放性和系统的可扩充性

基于web的家教信息管理系统在开发过程中,应该充分考虑以后的可扩充性。例如开通用户使用平台, 让用户自己可以查询自己的信息,同时可是开通设更丰富的文化娱乐网络空间,便于社区之间的成员的交流。同时对于学员的管理和教员的管理也会日趋完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。

(3). 系统的易用性和易维护性

基于web的家教信息管理系统是直接面对网民的,要能够吸引用户适用该系统,这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面。

(4). 系统的标准性

系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准。如规范的数据库操纵界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等;同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。

(5)、系统的先进性

目前计算系统的技术发展相当快,作为推进发展家教这个行业的重要标志,应该保证系统在下个世纪仍旧是先进的,在系统的生命周期尽量做到系统的先进,充分完成流程数据的处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。

3.6 运行需求 

3.6.1 界面需求

在用户界面部分,根据需求分析的结果,需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,考虑到用户多对WINDOW 风格较熟悉,应尽量向这一方向靠拢。在设计语言上,已决定使用 java语言进行编程,才用Eclipse作为开发工具, 使用Dreamweaver作为可视化页面设计工具向WINDOWS 风格靠近。 其中服务器程序界面要做到操作简单,易于管理。

总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。

3.6.2 硬件接口需求

在输入方面,对于键盘、鼠标的输入,可用JDK5.0的标准输入/输出,对输入进行处理。

在输出方面,打印机的连接及使用,也可用JDK5.0的标准输入/输出对其进行处理。在网络传输部分,在网络硬件部分,为了实现高速传输,将使用高速ATM。

3.6.3 软件接口需求

服务器程序可使用JDK提供的对mysql的接口,进行对数据库的所有访问。

服务器程序上可使用mysql 的对数据库的备分命令,以做到对数据的保存。在网络软件接口方面,使用一种http的网络传输协议,采用滑动窗口方式对数据进行网络传输及接收。

第四章 家教信息管理系统设计

4.1系统设计概述

本系统可以实现网上在线家教的互聘,教员和学员注册后,自己的信息就被发布到本网站上了,这样教员和学员可以互相选择,并可以留言进行沟通,达成协议,最终实现求教和执教的这个过程。本系统分为客户端子系统和管理端子系统。

客户端子系统包括,学员和教员的注册,学员和教员的信息搜索,并可以查看详细信息,把学员和教员信息加入会员收藏夹,修改会员信息,查看我的收藏,查看留言,发布我的社区信息,以及进入家教社区进行信息讨论和发布。

管理端子系统包括,管理员登陆,管理员信息维护,学员和教员信息修改和删除,教员信息认证,以及家教社区信息维护。

4.2 系统体系结构设计

4.2.1系统的总体结构设计遵循原则

①系统应具有良好的适应性:能适应用户对系统的软件环境、管理内容、模式和界面的要求;

②系统应具有可靠性:采用成熟的技术方法和软件开发平台,以保证在以后的实际应用中安全、可靠;

③系统应具有较好的安全性:应提高完善的安全机制和用户权限限制机制,确保数据的受限访问;

④系统应具有良好的可维护性:系统应易于维护、安装;

⑤系统应具有良好的可扩展性:系统应适应未来信息化建设的要求,能方便得进行功能扩展,以建立完善的信息集成管理体系。

4.2.2体系结构

根据需求分析与Spring框架的特点,设计本系统体系结构如下:

图 4-1 体系结构拓扑图

客户层主要是指用户登录的Web浏览器;中间层负责平台的业务逻辑处理和表示逻辑生成;服务层提供底层的信息数据库服务器。

1.客户层:用于与企业信息系统的用户进行交互以及显示根据特定业务规则进行计算后的结果。本系统将完全采用基于WEB的(B/S架构)客户端,即用户可以直接通过浏览器来访问和使用本系统。

2.中间层:这相当于三层标准架构中的Web应用服务层,支持诸如响应客户请求以及查询等功能。并且由中间层进行逻辑处理,再处理的结果反馈给客户或者发送到数据库中。

3.服务层:主要是数据库系统,这里的数据库系统主要是关系数据库系统(RDMS)。

4.3 系统用例设计

4.3.1前端用户子系统

图 4-2 前端客户端子系统图示

4.3.2后端管理员子系统

图 4-3 后端管理员端子系统图示

4.3.3 系统用例详细设计

A、前端用户子系统

1. 用户模块                                                                                                                                                                                                             

⑴ 模块描述

本模块的主要功能,验证用户是否属于本系统的认证会员,是则登录后为用创建一个会话,这样用户就可以对自己的收藏夹进行维护。

图 4-4 用户登录序列图

⑵ 功能

    主要是验证用户的用户名与密码是否正确。

⑶ 输入项

    用户名:有限长度为6至20的字符串,可以包含数字、汉字和英文字母。

    密码:有限长度为6至20的字符串,可以包含数字和英文字母。

    身份选项:包括学员身份、教员身份。

⑷ 输出结果

刷新当前页面,显示当前用户的用户名和身份,并显示注销登陆按钮。

2.学员或教员搜索模块

⑴ 模块描述

本模块又可以分为学员搜索和教员搜索,对不同对象进行操作,但操作方式是相同的。在条件输入栏输入你的限制条件进行搜索,也可不输入,搜索全部信息,搜索信息分页显示,每页显示20条。通过点击最后一项可以查看当前记录的详细信息,并可以把详细信息加入会员的收藏夹中,如果没有登录,则提示先登录后再执行该项操作。图4-2表示了此过程。

图 4-5 学员搜索模块过程顺序图

⑵ 功能

对感兴趣的学员或教员进行搜索查看,便于相互选择,并在登录后可以加入自己的收藏夹。

⑶ 输入项

再学员或教员信息检索条件输入栏输入相应的信息,例如:学员求教科目,学员年级,学员性别等等。

⑷ 输出结果

分页显示查询到的所有信息,并可执行查看详细信息操作。 

3.家教社区

⑴ 模块描述

家教社区分为两部分,一部分是显示所有会员发表的学习方法等,供大家参考;令一部分是会员提出的某些问题需要大家讨论和解答的。

⑵ 功能

给本站会员提供一个交流的平台,增加网站的活跃性。

4. 收藏夹

⑴ 模块描述

本模块是本系统的核心功能部分,可以分为四个子模块,包括修改用户基本信息、我的收藏、查看和回复留言、查看和发布社区信息。修改用户基本信息,是对用户的会员信息和填入的教员或学员信息的修改,系统记录最后一次修改时间。我的收藏,是学员用户收藏教员用户,教员用户收藏学员用户,可以对收藏的用户留言。查看和回复留言主要是针对会员。查看和发布自己的社区信息。

图 4-6 留言用例序列图

图 4-7 收藏夹用例序列图

⑵ 功能

维护会员个人基本信息,对收藏的信息进行留言或删除处理等,对其他会员的留言进行查看和回复,同时查看会员发布的社区信息。

⑶ 操作

   登录系统后,点击会员中心即可显示收藏夹中所有的菜单信息。

⑷ 输出结果

点击收藏夹中相应的菜单,则显示相应的结果。

B、后台系统模块介绍

1. 管理员登陆

⑴ 模块描述

本模块主要是验证管理员的登登录信息,然后对系统进行维护工作。

⑵ 功能

对管理员的用户名和密码以及权限进行验证,以保护系统安全。

⑶ 输入项

  管理员的用户名和密码

⑷ 输出结果

转入到管理员维护主界面。

2.各维护模块

⑴ 模块描述

维护模块,主要是对教员进行认证,对其他信息进行删除和修改等维护工作。

⑵ 功能

对后台数据进行维护,保证系统能正常运行。

4.4 数据库结构设计

4.4.1数据E-R图设计

通过E-R图反映现实世界中的实体、属性和它们之间的关系等的原始数据形式,建立数据库的每一幅用户视图。图是系统E-R图。

图 4-8  系统E-R图

4.4.2数据库表的设计

首先我们新建一个数据库tutor, 其中包含了4张表:用户表、社区信息表、留言表、管理员表。

数据库逻辑设计:

表4-1 数据库所有表

序号

表中文名称

表英文名称

说明

1

用户表

t_users

用户注册登录使用

2

社区信息表

t_messages

记录用户发布的社区信息

3

留言表

t_words

记录每个用户的每条留言

4

管理员表

t_admin

记录管理员信息

单个表的详细说明

  1. 用户表(s_login)

表 4-2 用户表

Ⅰ用户表(t_users)

序号

字段名称

英文符号

字段类型

字符长度

说明

1

会员主键

Id

Int

主键,自动增长

2

会员名称

username

varchar

20

非空,唯一

3

密码

pwd

varchar

20

非空

4

电子邮箱

email

varchar

50

非空,唯一

5

性别

Gender

Varchar

4

6

固定电话

Mobile

Varchar

20

7

学生年级

Sgrade

Varchar

20

8

联系人

Linkman

Varchar

20

9

辅导科目

Sgrade

Varchar

20

10

支付薪水

salary

varchar

5

11

辅导地点

address

varchar

50

12

性别要求

sexneed

varchar

5

13

学习内容上课时间

contextandtime

varchar

100

14

学习情况简介

situation

varchar

100

15

教学要求

teachrequire

varchar

100

16

教员要求

teacherrequire

varchar

100

17

学员用户信息更新时间

screatetime

varchar

Date

18

学员状态

Sstate

 varchar

Int

默认为0,0代表该学员未找到教员执教,1代表已经找到

19

毕业院校

graduate

varchar

20

20

身份证号

identify

varchar

25

21

教师类别

Tstyle

varchar

20

22

教师资历

Tlongevity

varchar

20

23

最高学历

degree

varchar

10

非空

24

授课方式

Tway

varchar

20

25

可授科目

Tsubject

varchar

20

非空

26

期望薪水

Tsalary

float

10

非空

27

期望授课地址

exceptionaddr

varchar

50

28

个人简历

resume

varchar

200

29

家教经历

experience

varchar

200

30

教师信息最后更新时间

tcreatetime

Date

31

教师类型

type

Varchar

5

默认为0,0代表为认证,1代表已认证

  1. 社区信息表(t_messages)

表 4-3 社区信息表

Ⅴt_messages(社区信息表)

序号

字段名称

英文符号

字段类型

字符长度

说明

1

信息di

id

varchar

20

主键,外键

2

编写时间

Createtime

Date

非空

3

标题

info

varchar

100

4

信息文件的路径

url

Varchar

100

5

信息类型

Type

Int

默认为0

6

管理员id

Adminid

Varchar

20

外键

7

学员id

Studentid

Int

外键

8

教员id

Teacherid

Int

外键

  1. 留言表(t_words)

表 4-4 留言表

Ⅵt_words (留言表)

序号

字段名称

英文符号

字段类型

字符长度

说明

1

留言id

id

varchar

20

主键

2

留言时间

Createtime

Date

非空

3

留言

context

varchar

300

非空

4

发送者

Sendid

int

20

5

接收者

Receiveid

int

20

  1. 管理员表(t_admin)

表 4-5 管理员表

Ⅶt_admin (管理员表)

序号

字段名称

英文符号

字段类型

字符长度

说明

1

管理员名称

adminid

varchar

20

主键

2

密码

pwd

varchar

20

非空

4.4.3 数据库的连接

在spring的框架的Applicationcontext.xml文件中配置如下参数:

<!-- 配置数据源 -->

<bean id="dataSource"

class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName">

<value>com.mysql.jdbc.Driver</value>

</property>

<property name="url">

<value>jdbc:mysql://192.168.6.100:3306/tutor</value>

</property>

<property name="username">

<value>root</value>

</property>

<property name="password">

<value>123</value>

</property>

</bean>

4.5 界面设计

4.5.1客户端界面设计

客户端主要实现用户登陆,学员信息搜索,教员信息搜索、家教社区、以及用户收藏夹等功能。

·用户登陆:通过输入用户名和密码实现用户登陆,并选择登录身份,判断登录权限。首页用户登录的界面设计如下:

图 4-9 首页用户登录设计界面

会员中心用户登录如下:

图 4-10 会员中心用户登录界面设计

·用户注册:注册之前先阅读本站的协议,让后填写会员档案,提交,转入填写详细信息页面,再提交信息。转入到收藏夹页面。用户注册页面设计如下:

图 4-11用户注册页面

学员和教员详细信息注册页面设计分别如下:

图 4-12 学员详细信息登陆页面

·学员信息搜索:点击菜单进入该页面后,分页显示所有的学员信息,在页面上方的条件输入栏上输入相应的信息,然后点击搜索,则分页显示所查询到的学员信息。条件栏包括,学员性别,年级,所授科目,资薪,性别要求,所在地区。不需填入全不信息,只需输入你想加以限制的搜索条件。然后点击详细查询则可获得该学员的详细信息,在教员登陆的情况下,可以收藏该学员的信息。页面设计如下:

图 4-13 学员信息搜索页面

·教员信息搜索:点击菜单进入该页面后,分页显示所有的教员信息,在页面上方的条件输入栏上输入相应的信息,然后点击搜索,则分页显示所查询到的教员信息。条件栏包括,教员性别,所学专业,所在学校(毕业院校),所授科目,资薪,所在地区等。不需填入全不信息,只需输入你想加以限制的搜索条件。然后点击详细查询则可获得该教员的详细信息,在学员登陆的情况下,可以收藏该教员的信息。页面设计如下:

图 4-14 教员信息搜索页面

·家教社区:点击菜单进入该页面后,显示部分社区信息,点击更多可得到更多的社区信息。会员可以对社区信息进行评价。页面设计如下:

图 4-15 家教社区设计页面

·修改会员信息:当会员登录以后,在收藏夹的菜单里点击修改会员信息,则转入到修改页面,该页面显示当前信息。修改后点击提交按钮则可更新用户的信息。

·我的收藏:在收藏夹页面的菜单点击我的收藏,则可显示当前的用户的学员或教员信息收藏。并通过记录后的留言和删除按钮来进行相应的留言和删除操作。

a.教员的收藏夹页面设计如下:

图 4-16 教员收藏夹设计页面

学员的收藏夹页面设计如下:

图 4-17 学员收藏夹设计页面

·查看我的留言:在收藏夹页面,点击我的留言菜单,则可显示所有的留言,并且可以对留言进行删除和回复等操作。

·发布社区信息:在收藏夹页面,点击发布社区信息,进入到编写社区信息页面,包括信息标题,和正文。填写完后点击发布按钮就可以发布自己的信息。

4.5.2服务端界面设计

·学员信息维护界面:点击服务端主界面学员信息维护菜单,则分页显示所有学员信息列表,按时间倒序排列。在记录后可执行查看详细信息和删除操作。在页面上方可以通过条件搜索相应的学员信息。

·教员信息维护界面:点击服务端主界面教员信息维护菜单,则分页显示所有教员想信息列表,按时间倒序,为认证的教员排前面。在记录后可以查看详细信息,删除以及通过认证等操作。在页面上方可以通过条件搜索相应的教员信息。

·家教社区信息维护界面:点击服务端主界面教员信息维护菜单,显示所有社区信息列表。可进行详细查看和删除操作。在页面上面可以通过标题搜索社区信息。

·管理员登陆界面:通过用户名和密码来验证管理员身份和权限。验证通过和转入服务端主界面。界面设计如下:

图 4-18 管理员登录界面

·管理员信息维护界面:修改管理员密码操作。

4.5.3客户端界面目录结构

图 4-19 客户端界面目录结构

4.6 系统实体Bean的抽象

类图是应用程序的一种可视表示,用于显示应用程序的类以及这些类之间的关系,一下是系统的详细类图。

图 4-20 类 图

第五章 编码与测试

5.1 编码概述

实现设计(即编写代码,简称编码或者编程)有很多种选择,有很多实现语言、工具等可供选择,但一般来说,在设计中会直接或者间接地确定了实现语言。编码有很多创造性成分,所以在实现设计的时候,有更大的灵活性。

编码过程的一个主要标准是编程与设计的对应性和统一性。如果编码没有按照设计的要求进行,设计就没有意义了。设计过程中的算法、功能、接口、数据结构都应该在编码过程中体现。如果需求发生变更,设计也对应地发生变更,同时代码页应该一致地发生变更,这可以通过配置管理控制。

5.2 编码规范

代码的标准和规范可以帮助开发人员组织自己的想法,同事避免错误。标准中文档化地说明任何更清晰和易读地编写代码。标准可以摆脱对个人的依赖,不用跟踪编程人员在做什么。标准对定位错误和变更管理和有作用,因为它对诚寻的描述很清晰,程序每部分完成什么功能有很清晰的说明。

5.2.1 命名规范

命名规范使程序更易读,从而更易于理解。它们也可以提供一些有关标识符功能的信息,以助于理解代码。

·1包(Packages)

一个唯一包名的前缀总是全部小写的ASCII字母并且是一个顶级域名,通常是com, edu, gov, mil, net, org, 或1981年ISO 3166标准所指定的标识国家的英文双字符代码。包名的后续部分根据不同机构各自内部的命名规范而不尽相同。这类命名规范可能以特定目录名的组成来区分部门(department),项目(project),机器(machine),或注册名(login names)。如:

com.sun.eng

com.apple.quicktime.v2

edu.cmu.cs.bovik.cheese

·2类(Classes) 

类名是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量使你的类名简洁而富于描述。使用完整单词,避免缩写词(除非该缩写词被更广泛使用,像URL,HTML)。3接口(Interfaces) 

大小写规则与类名相似。

·4方法(Methods) 

方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。

·5变量(Variables) 

采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。变量名应简短且富于描述。变量名的选用应该易于记忆,即,能够指出其用途。尽量避免单个字符的变量名,除非是一次性的临时变量。临时变量通常被取名为i,j,k,m和n,它们一般用于整型;c,d,e,它们一般用于字符型。

·6实例变量(Instance Variables) 

大小写规则和变量名相似,除了前面需要一个下划线,如:int _employeeId.

·7常量(Constants) 

类常量和ANSI常量的声明,应该全部大写,单词间用下划线隔开。

5.2.2 注释规范

Java程序有两类注释:实现注释(implementation comments)和文档注释(document comments)。实现注释使用/*...*/和//界定的注释。文档注释(被称为"doc comments")是Java独有的,并由/**...*/界定。文档注释可以通过javadoc工具转换成HTML文件,描述Java的类、接口、构造器,方法,以及字段(field)。一个注释对应一个类、接口或成员。若你想给出有关类、接口、变量或方法的信息,而这些信息又不适合写在文档中,则可使用实现块注释或紧跟在声明后面的单行注释。例如,有关一个类实现的细节,应放入紧跟在类声明后面的实现块注释中,而不是放在文档注释中。 

注释应被用来给出代码的总括,并提供代码自身没有提供的附加信息。注释应该仅包含与阅读和理解

在注释里,对设计决策中重要的或者不是显而易见的地方进行说明是可以的,但应避免提供代码中己清晰表达出来的重复信息。

1注释的方法

程序可以有四种实现注释的风格:块注释、单行注释、尾端注释和行末注释。

① 块注释

块注释通常用于提供对文件,方法,数据结构和算法的描述。块注释被置于每个文件的开始处以及每个方法之前。它们也可以被用于其他地方,比如方法内部。在功能和方法内部的块注释应该和它们所描述的代码具有一样的缩进格式。块注释之首应该有一个空行,用于把块注释和代码分割开来,比如:

/*

* Here is a block comment.

*/

  public class Example { ...

注意顶层(top-level)的类和接口是不缩进的,而其成员是缩进的。描述类和接口的文档注释的第一行(/**)不需缩进;随后的文档注释每行都缩进1格(使星号纵向对齐)。成员,包括构造函数在内,其文档注释的第一行缩进4格,随后每行都缩进5格。

② 单行注释

短注释可以显示在一行内,并与其后的代码具有一样的缩进层级。如果一个注释不能在一行内写完,就该采用块注释(参见"块注释")。单行注释之前应该有一个空行。以下是一个Java代码中单行注释的例子:

if (condition) {

/* Handle the condition. */

...

}

③ 尾端注释

极短的注释可以与它们所要描述的代码位于同一行,但是应该有足够的空白来分开代码和注释。若有多个短注释出现于大段代码中,它们应该具有相同的缩进。以下是一个Java代码中尾端注释的例子:

if(input==2){

     return TRUE;/*特殊处理*/

    }else{

     return isMine(input);/*调用函数isMine */

}

④ 行末注释

注释界定符"//",可以注释掉整行或者一行中的一部分。它一般不用于连续多行的注释文本;然而,它可以用来注释掉连续多行的代码段。

2开头注释

所有的源文件都应该在开头有一个类似C语言风格的注释,其中列出类名、版本信息、日期、作者以及版权声明。我们的网上招聘系统采用的头注释统一为:

    /**

* @System: Online CV System

* @Version:1.0

     * @Copyright (C) 2006 by XXX, Inc. All Rights Reserved.

     * @Class: ValidateSessionTag

     * @Summary:对用户的身份验证

     * @Create: 2006.05.2  江明

     * @Update: 2006.05.02 江明

*/

3类和接口的注释

①类/接口文档注释(/**……*/):该注释中所需包含的信息,参见"LogonAction.java"

②类/接口实现的注释(/*……*/):如果有必要的话,该注释应包含任何有关整个类或接口的信息,而这些信息又不适合作为类/接口文档注释。

5.3 软件编码

(1) 用户登陆核心

public class UsersLoginAction extends MappingDispatchAction {

private IUsersBiz userbiz;

public IUsersBiz getUserbiz() {

return userbiz;

}

public void setUserbiz(IUsersBiz userbiz) {

this.userbiz = userbiz;

}

public ActionForward login(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse responser)

throws TutorException {

try{

//获取登陆的用户名和密码

String username = request.getParameter("username");

String password = request.getParameter("password");

String type = request.getParameter("type");

System.out.println(username);

System.out.println(password);

System.out.println(type);

//如果用户名不为空,则从数据库中查找该用户是否存在

if(username!=null){

Users user = null;

if(type.equals("s")) {

user = (StudentInfo) userbiz.findUsers(username,password,type);

}else{

user = (TeacherInfo) userbiz.findUsers(username,password,type);

}

if(user!=null){

request.getSession(true).setAttribute("user", user);

return mapping.findForward("index");

}

}

return mapping.findForward("index");

}catch(Exception e){

e.printStackTrace();

return mapping.findForward("error");

}

}

(2)学员信息检索核心控制代码

String degree = request.getParameter("degree");

String tsubject = request.getParameter("tsubject");

String gender = request.getParameter("gender");

String tsalary = request.getParameter("tsalary");

int page = Integer.parseInt(request.getParameter("page"));

if(degree==null & tsubject==null & gender==null & tsalary==null) {

try {

int totalRow = tb.getTotalRow();

List<TeacherInfo> teacherinfos = tb.getFiveInfo(page);

int totalPage = totalRow / 10;

if(totalRow % 10 != 0) {

totalPage += 1;

}

request.getSession(true).setAttribute("teacherinfos", teacherinfos);

request.setAttribute("totaPage", totalPage);

request.setAttribute("currentPage", page);

} catch (TutorException e) {

e.printStackTrace();

request.setAttribute("error", e.getMessage());

}

}

if(degree!=null & tsubject!=null & tsalary!=null) {

TeacherInfo ti = new TeacherInfo();

try {

ti.setDegree(degree);

ti.setTsubject(tsubject);

ti.setGender(gender);

ti.setTsalary(Double.parseDouble(tsalary));

int totalRow = tb.getTotalRowByCondition(ti);

System.out.println(totalRow);

List<TeacherInfo> teacherinfos = tb.getInfoByCondition(page, ti);

System.out.println(teacherinfos.size());

int totalPage = totalRow / 10;

if(totalRow % 10 != 0) {

totalPage += 1;

}

request.getSession(true).setAttribute("teacherinfos", teacherinfos);

request.setAttribute("ti", ti);

request.setAttribute("totaPage", totalPage);

request.setAttribute("currentPage", page);

} catch (TutorException e) {

e.printStackTrace();

request.setAttribute("error", e.getMessage());

}

}

request.setAttribute("flag", request.getParameter("flag"));

return mapping.findForward("query");

(3)加入收藏夹代码

Users users = (Users) request.getSession(true).getAttribute("user");

if(users == null) {

return mapping.findForward("notlogin");

}else {

String flag = null;

long id = Long.parseLong(request.getParameter("id"));

if(users instanceof StudentInfo) {

flag = "0";

request.setAttribute("flag", flag);

FavortiteBean.addElement(((StudentInfo)users).getId(), tb.getById(id));

}else {

flag = "1";

request.setAttribute("flag", flag);

FavortiteBean.addElement(((TeacherInfo)users).getId(), tb.getById(id));

}

if(flag.equals("0")) {

Collection<Users> fusers = FavortiteBean.getElement(((StudentInfo)users).getId());

Collection<TeacherInfo> tis = new ArrayList<TeacherInfo>();

for(Users user:fusers) {

if(user instanceof TeacherInfo) {

tis.add((TeacherInfo)user);

}

}

request.setAttribute("teacherinfos", tis);

return mapping.findForward("siShowFavorty");

}else {

Collection<Users> fusers = FavortiteBean.getElement(((TeacherInfo)users).getId());

Collection<StudentInfo> sis = new ArrayList<StudentInfo>();

for(Users user:fusers) {

if(user instanceof StudentInfo) {

sis.add((StudentInfo)user);

}

}

request.setAttribute("studentinfos", sis);

return mapping.findForward("tiShowFavorty");

}

}

(4) 收藏夹中的信息

String flag = request.getParameter("flag");

System.out.println(flag);

request.setAttribute("flag", flag);

Collection<Users> users = FavortiteBean.getAllElement();

if(flag.equals("0")) {

Collection<TeacherInfo> tis = new ArrayList<TeacherInfo>();

for(Users user:users) {

if(user instanceof TeacherInfo) {

tis.add((TeacherInfo)user);

}

}

request.setAttribute("teacherinfos", tis);

return mapping.findForward("siShowFavorty");

}else {

Collection<StudentInfo> sis = new ArrayList<StudentInfo>();

for(Users user:users) {

if(user instanceof StudentInfo) {

sis.add((StudentInfo)user);

}

}

request.setAttribute("studentinfos", sis);

return mapping.findForward("tiShowFavorty");

}}*/

5.4 测试概述

软件测试时对软件需求分析、设计、编码实现的审查,它是软件质量保证的关键步骤。通常对测试的定义有两种描述:

(1) 软件测试是了发展错误而执行程序的过程;

(2) 软件测试是根据软件开发各个阶段的规格说明和程序的内部结构 而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试的步骤。

5.5 软件测试

5.5.1测试要点

被测特性:

  1. 对软件进行功能性测试
  2. 对软件进行非功能性测试

不被测特性:

  1. 程序源代码,逻辑等;
  2. 模块的接口,模块的错误处理,模块的局部数据结构,模块在执行时执行流的独立路径,模块在处理边界值时的情形;
  3. 单元(模块)之间的可用性等。

5.5.2测试内容

对被测软件进行系统级别的测试,针对软件的功能需求进行功能测试,验证此软件是否实现了需求分析中所定义的功能,是否正确实现了功能。针对软件的非功能性需求对其进行性能测试,在人为设置的20人负载(大数据量,大访问量)的情况下,检查系统是否发生功能上或者性能上的问题。

测试内容即测试需求,包括功能测试和性能测试。

5.5.3单元测试

单元测试是针对软件设计的最小单位——程序模块,进行正确性检验的测试工作。其目的在于发现每个程序模块内部可能存在的差错。

单元测试也是程序员的一项基本职责,程序员必须对自己所编写的代码保持认真负责的态度,这是也程序员的基本职业素质之一。同时单元测试能力也是程序员的一项基本能力,能力的高低直接影响到程序员的工作效率与软件的质量。

在编码的过程中作单元测试,其花费是最小的,而回报却特别优厚的。在编码的过程中考虑测试问题,得到的将是更优质的代码,因为在这时您对代码应该做些什么了解得最清楚。如果不这样做,而是一直等到某个模块崩溃了,到那时您可能已经忘记了代码是怎样工作的。即使是在强大的工作压力下,您也还必须重新把它弄清楚,这又要花费许多时间。进一步说,这样做出的更正往往不会那么彻底,可能更脆弱,因为您唤回的理解可能不那么完全。

通常合格的代码应该具备以下性质:正确性、清晰性、规范性、一致性、高效性等(根据优先级别排序)。

1. 正确性是指代码逻辑必须正确,能够实现预期的功能。

2. 清晰性是指代码必须简明、易懂,注释准确没有歧义。

3. 规范性是指代码必须符合企业或部门所定义的共同规范包括命名规则,代码风格等等。

4. 一致性是指代码必须在命名上(如:相同功能的变量尽量采用相同的标示符)、风格上都保持统一。

5. 高效性是指代码不但要满足以上性质,而且需要尽可能降低代码的执行时间。

5.5.4测试用例设计

软件测试的重要性是毋庸置疑的。但如何以最少的人力、资源投入,在最短的时间内完成测试,发现软件系统的缺陷,保证软件的优良品质,则是软件公司探索和追求的目标。每个软件产品或软件开发项目都需要有一套优秀的测试方案和测试方法。

    影响软件测试的因素很多,例如软件本身的复杂程度、开发人员(包括分析、设计、编程和测试的人员)的素质、测试方法和技术的运用等等。因为有些因素是客观存在的,无法避免。有些因素则是波动的、不稳定的,例如开发队伍是流动的,有经验的走了,新人不断补充进来;一个具体的人工作也受情绪等影响,等等。如何保障软件测试质量的稳定?有了测试用例,无论是谁来测试,参照测试用例实施,都能保障测试的质量。可以把人为因素的影响减少到最小。即便最初的测试用例考虑不周全,随着测试的进行和软件版本更新,也将日趋完善。

因此测试用例的设计和编制是软件测试活动中最重要的。测试用例是测试工作的指导,是软件测试的必须遵守的准则。更是软件测试质量稳定的根本保障。

  1. 用户登陆测试用例

表 5-1 用户登录用例表

项目/软件

家教信息管理系统

编制时间 

2009/5/20

功能模块名

用户登陆模块

用例编号 

User_Login

功能特性

用户身份验证

测试目的

验证是否输入合法的信息,允许合法登陆,阻止非法登陆

测试数据

用户名=wufang 密码=123456 身份= 学员用户

操作步骤

操作描述

数 据

期望结果

实际结果  

测试状态

1

输入用户名和密码

用户名= wufang密码=123456

显示进入后的页面。

同期望结果。

正常

2

输入用户名和密码

用户名=iry 密码=123456

显示警告信息“不存在该用户名或密码错误!”

同期望结果。

正常

3

输入用户名和密码

用户名= wufang密码=234567

显示警告信息“不存在该用户名或密码错误”

同期望结果。

正常

4

输入用户名和密码

用户名=“” 密码=“”

显示警告信息“用户名密码不能为空!”

同期望结果。

正常

  1. 学员信息搜索用例设计

表 5-2 学员信息搜索用例表

项目/软件

家教信息管理系统

编制时间 

2009/5/20

功能模块名

学员模块

用例编号 

Students_Search

功能特性

学员信息搜索

测试目的

验证搜索条件是否合法,查询结果是否正确

测试数据

姓名=wufang 性别=女 科目=高二英语

操作步骤

操作描述

数 据

期望结果

实际结果  

测试状态

1

输入搜索条件

姓名=wufang 性别=女 科目=高二英语

分页显示一条查询结果。

同期望结果。

正常

2

输入搜索条件

姓名=wufang 性别=女

分页显示一条查询语句”

同期望结果。

正常

3

输入搜索条件

性别=女 科目=高二英语

分页显示数条查询语句

同期望结果。

正常

  1. 学员注册用例设计

表 5-3 学员注册用列表

项目/软件

家教信息管理系统

编制时间 

2009/5/20

功能模块名

学员模块

用例编号 

Students_Register

功能特性

学员注册

测试目的

验证注册是否成功,注册数据是否合法

测试数据

用户名=wufang 密码=123456  email=sapphire@gmail.com  身份=学员

操作步骤

操作描述

数 据

期望结果

实际结果  

测试状态

1

输入注册数据

用户名=wufang 密码=123456  email=sapphire@gmail.com  身份=学员

提示:注册成功!转入收藏夹页面

同期望结果。

正常

2

输入注册数据

用户名=wufang 密码=123456  email=sapphire@gmail.com  身份=学员

提示:用户名已注册

同期望结果。

正常

3

输入注册数据

用户名=wufang email=sapphire@gmail.com  身份=学员

提示:密码不能为空

同期望结果。

正常

4

输入注册数据

密码=123456  email=sapphire@gmail.com  身份=学员

提示:用户名为空

同期望结果。

正常

  1. 留言功能测试

表 5-4 留言功能测试用例

项目/软件

家教信息管理系统

编制时间 

2009/5/20

功能模块名

收藏夹留言模块

用例编号 

Favorite

功能特性

查看留言并回复留言

测试目的

验证留言是否正确发送

测试数据

留言内容:你好!我想请你做家庭教师!能交流一下吗 ? 发送对象:张三(教员)

操作步骤

操作描述

数 据

期望结果

实际结果  

测试状态

1

搜索张三教员

姓名=张三

搜索到张三教员

同期望结果。

正常

2

查看张三详细信息

转入详细信息页面

同期望结果。

正常

3

点击留言按钮,输入数据。点击发送

留言内容:你好!我想请你做家庭教师!能交流一下吗 ? 发送对象:张三(教员)

提示:留言发送成功

同期望结果。

正常

4

张三教员查收留言

成功收到留言

同期望结果。

正常

结论与展望

本系统为家教服务提供一个交流的平台,使学生能够在本系统中找到适合自己的家教,也使有请家教意愿的人群能够发布自己的招聘通知,开发出一套以家教服务为目标的小型的网站信息管理系统。学生注册、家教注册、学生信息浏览、家教招聘信息浏览、学生信息管理、家教招聘信息管理、信息检索,收藏夹,发布社区信息,留言功能。

本系统采用spring+struts+hibernate 等java开源框架,以及mysql数据库,使用myeclips集成工具和jude与rational rose辅助工具开发的,实现了系统的基本功能要求。系统设计和开发总算告一段落。为此,现将本系统所存在的特点总结如下。

第一、界面简洁,操作简单。这是本系统的主要特点之一。本系统按照需求分析,实现了学生注册、家教注册、学生信息浏览、家教招聘信息浏览、学生信息管理、家教招聘信息管理、信息检索,收藏夹,发布社区信息,留言功能;对于不同的用户限制了其管理数据的权限,只有超级管理员才能查看所有的数据等。

第二、各功能模块之间的联系比较紧密。这也本系统的比较突出的特点之一。在本系统中,各功能模块之间的联系可谓是条分缕析,非常清楚。而模块内部各关键代码更是一环扣一环,环环相扣!

第三、系统的扩展性很好。根据“开闭原则”对修改封闭,对添加开放。 其实这也是对我们系统缺陷的一种补救,我们系统最大的缺陷是由于对业务的不熟悉,导致许多功能细节被忽略掉了,所有我们就把系统设计成非常容易扩展的方式,采用MVC的分层结构,把业务层,显示层和控制层完全分离,所以很容易维护和优化。

本系统的一个缺陷就是界面虽然很简单,很明了,但是,对于人性化的考虑还不是很全面,并且界面也不怎么美观,也就是站在用户的立场上考虑使用该系统还不是很充分,所以也有待改进。

总之,通过此次毕业设计,学到了很多以前没有学到过的东西。

无可厚非,当今世界是一个知识爆炸的世界,信息化网络化发展是21世纪的最突出的特点,人工技能朝着信息化网络化方向发展是信息时代的必然产物。

作为信息时代的一个侧面与缩影,家教信息管理系统实现了从人员管理到软件系统管理的一个过程。然而,要彻底实现家教业务流程的完全网络化,就需要建立信息的资源共享机制,建立相应的组织机构,完善身份认证制度,建立家教信息管理安全的机制体系。不过,这一观点早已经深入到人们思维理念中去了。

可以想像,在21世纪这个信息时代里,人工技能网络化有着不可估量的发展空间与前景。原因在于,家教信息管理不仅是推动业务流程网络智能化提高效率的有效手段,更是实现人工技能网络化与信息化的桥梁,更有着人工管理无法比拟的优势,他可以向各个身份的用户提供更为方便的服务。

Web 2.0 user interface technologies

Imagine that you are tasked to create a new application that will live in the Web 2.0 world. Some of your users are perfectly happy with HTML-based user interfaces while others expect every application they use to behave like Excel. Your business sponsor expects a productivity-enhancing user experience, but your CIO won't allow you to develop anything that a user needs to manually deploy. You know HTML won't cut it, but what else is out there?        

This article explores a series of Web 2.0 user interface technologies that enable you to build applications with better-than-browser user experiences. As a result, you can centrally deploy and manage them just like any other Java 2 Enterprise Edition (Java EE) application.Today's enterprise application developer feels pressure from both users and operations camps when it comes to user interfaces. At one end of the spectrum, business units that represent users want their applications to have a rich user interface that maximizes user productivity. This group wants all their applications to behave like Microsoft's Excel or another client-resident application. They want the application to provide them with instantaneous response time. If they have multiple views of the same data (for example, a table and a graph view) and one changes, they want the other view on display to instantaneously reflect that change.Alternatively, the IT operations group loves the pure server-based delivery model. While it acknowledges that the HTML user experience is less robust than a native operating system (OS)-based user interface, this group believes the cost of installing, configuring, and managing client-resident code is too high for the improved user experience it provides.

Many people in IT organizations lived through the client/server deployment model of the 1990s and don't want to go through that experience again. In fact, many Java 2 Enterprise Edition (Java EE) applications might never be built if a client-resident component existed, as the cost would kill the application's business case. The server-delivered deployment model gives IT organizations the reach and range they desire in a cost-effective manner, one only dreamed about in the '90s. Most organizations that have experienced the economics of a server-deployed Java EE application will never consider deploying code that they have to install on individual client machines, unless forced to.So what is the poor enterprise developer to do? Users don't want to lose productivity with a multiple-second delay in server-response time, and IT groups don't want to go back to the old way of deploying and managing code on client machines. How can you meet these, on the surface, conflicting requirements in a manner that satisfies both organizations?Fortunately, technologies exist that enable you to deliver a better-than-browser user experience without having to manually install code on client machines. Applications built with these technologies are sometimes referred to as Web 2.0 applications. In his article, "What Is Web 2.0? Design Patterns and Business Models for the Next Generation of Software", Tim O'Reilly states: We're entering an unprecedented period of user interface innovation, as Web developers are finally able to build Web applications as rich as local PC-based applications.

Web 2.0 applications provide the best of both worlds: the cost-effective, server-based deployment model combined with rich user experiences that are comparable to most user experiences with client-resident applications.Here are the different technology options for you to create compelling user experiences for today's Java EE applications:

  • Flex and OpenLaszlo
  • IBM® Workplace™ Managed Client and the IBM Lotus® Expeditor
  • Faces Client Components
  • Ajax
  • HTML

Flex and OpenLaszlo are similar declarative approaches to creating better-than-browser interfaces for Java EE applications. Flex is a product offering from Adobe/Macromedia while OpenLaszlo is an open source offering originally created by Laszlo Systems Inc. In both environments, you use a unique technology-specific, XML-based grammar to lay out and create the user interface.

For example, to use a button in Flex, you can code the following in MXML (Multimedia XML):<aname="code-text"><mx:Buttonlabel="Submit"</mx:Button></a>WhilewithOpenLaszlo,youcancodethefollowinginLZX (LasZlo XML): <a name="code-text"><button<Submit</ button></a> To allow different UI elements to interact and communicate with the server, you write scripts in either ActionScript (Flex) or JavaScript (OpenLaszlo).

While the two technologies have many similarities, one key difference is the runtime infrastructure they require. For the client to exchange data with the server, Flex requires a Flex Data Services Server, which communicates with the client running in the Flash Player plug-in. The server essentially mediates all communications and exchanges of data from the client to the application's server component.

OpenLaszlo's latest version has made some runtime changes that might make it more attractive to developers. One change is that Version 3 introduced a SOLO deployment mode, which eliminates the requirement for the Laszlo Presentation Server in some deployment configurations. Another major new development is the client runtime environment. The most recent release, OpenLazlo 4 now in beta, enables Laszlo-based applications to run without the Adobe/Macromedia Flash Player plug-in. Many companies concerned with being locked into a proprietary plug-in, such as Flash Player, will welcome this change.

How do you decide which is better for your organization? With Flex, the key advantage is that you have a fully supported product from Adobe/Macromedia, but you will incur costs to license the Flex Data Services Server.  For some companies,  the license cost is well worth having a fully supported product. Adobe Flex 2 applications also require Flash Player plug-in V9. While Flex can create a compelling user experience, the cost, as well as this plug-in requirement, might be an issue for some companies.

The OpenLaszlo technology was originally released as a commercial product, but in 2004, Laszlo Systems chose to open-source the technology, licensing it under the Common Public License (V1.0). Laszlo Systems does offer support subscriptions and since it's an open source project, you can choose to support it using the freely available source. With OpenLaszlo, cost is obviously not an issue, but some organizations have rather firm policies against using open source software so OpenLaszlo might not be an option for you.

Web 2.0 用户界面技术

假设您需要创建一个适合 Web 2.0 环境的新应用程序。一部分用户非常喜欢基于 HTML 的用户界面,而其他用户希望他们使用的每个应用程序都表现得像 Excel 那样的桌面应用程序。您的老板要求有工作效率高的用户体验,但是 CIO 不允许开发需要用户手工部署的任何东西。您知道 HTML 无法达到这样的目标,但是怎么做才能符合要求呢?

这里要讨论一系列 Web 2.0 用户界面技术,让您构建的应用程序具有比浏览器更好的用户体验。而且,可以像任何其他 Java 2 Enterprise Edition(Java EE)应用程序一样集中地部署和管理它们。在用户界面方面,当今的企业应用程序开发人员受到来自用户和运营部门的双重压力。一方面,代表用户的业务部门希望应用程序具有丰富的用户界面,能够最大限度地提高用户的工作效率。他们希望所有应用程序都表现得像 Microsoft  的  Excel 或者其他客户机应用程序一样。希望应用程序能够提供即时响应。此外,若有相同数据的多个视图(例如,一个表格视图和一个图形视图),那么还希望在其中一个视图中进行修改时,其他视图能够立即反映出这一修改。另一方面,IT 运营部门喜欢纯粹的基于服务器的交付模型。尽管他们知道 HTML 用户体验不如基于本机操作系统(OS)的用户界面那么健壮,但他们认为为了改进用户体验,安装、配置和管理客户机代码的成本太高了。

IT 组织中的许多人都亲身体验过 20 世纪 90 年代的客户机/服务器部署模型,不愿意再重复那样的经历。实际上,如果有客户机组件存在,许多 Java 2 Enterprise Edition(Java EE)应用程序可能不会构建起来,因为成本对于应用程序的业务目标来说太高了。服务器交付的部署模型为 IT 组织提供了低成本高效率的部署方式,这在 90 年代是 IT 组织的梦想。大多数组织都意识到了服务器部署的 Java EE 应用程序的经济优势,因此根本不会考虑部署那些必须在各个客户机上进行安装的代码, 除非是不得已。那么,企业开发人员应该怎么做呢?用户不希望由于几秒的服务器响应时间而降低工作效率,而 IT 部门又不同意采用在客户机上部署和管理代码的老方法。如何能够满足这些表面上相互冲突的需求,让双方都满意呢?幸运的是,现有的技术使您能够提供比浏览器更好的用户体验,同时不必在客户机上手工安装代码。用这些技术构建的应用程序有时候被称为 Web 2.0 应用程序。在 Tim O'Reilly 的文章 “What Is Web 2.0? Design Patterns and Business Models for the Next Generation of Software”中,他指出:我们正在进入一个前所未有的用户界面革新时代,Web 开发人员最终能够构建出与本地 PC 应用程序同样丰富的 Web 应用程序。

Web 2.0 应用程序同时提供了两种环境的优点:低成本高效率的基于服务器的部署模型,以及几乎可以与客户机应用程序媲美的用户体验。对于为当今的 Java EE 应用程序提供丰富的用户体验,有几种技术可供选择:

  • Flex 和 OpenLaszlo
  • IBM® Workplace™ Managed Client 和 IBM Lotus® Expeditor
  • Faces Client Components
  • Ajax
  • HTML

Flex 和 OpenLaszlo 是极其相似的声明式方法,用来为 Java EE 应用程序创建比浏览器更好的用户体验。Flex 由 Adobe/Macromedia 提供,而 OpenLaszlo 是最初Laszlo Systems Inc 创建的开放源码软件。在这两种环境中,都使用独特的基于 X M L 的语法来布置和创建用户界面。

例如,为了在 Flex 中使用一个按钮,可以用 MXML(Multimedia XML)编写以下代码:  < a name="code-text" > < mx: Button  label="Submit" </mx:Button> </a> 而对于OpenLaszlo,可以用 LZX(LasZlo XML)编写以下代码:<aname="code-text"><button<Submit</ button></a> 

为了允许不同的 UI 元素与服务器进行交互和通信,可以用 Action Script(Flex)或者是 JavaScript(OpenLaszlo)编写脚本。

尽管这两种技术有许多相似性,但关键的一点差异是它们需要运行时基础设施。对于需要与服务器交换数据的客户机,Flex 会需要一个 Flex Data Services Server,它会与 Flash  Player 插件中运行的客户机进行通信。在本质上,这个服务器为客户机和应用程序的服务器组件之间的所有通信和数据交换提供中介。

OpenLaszlo 的最新版本做了一些运行时改进,使它对于开发人员更具吸引力。一项改进是版本 3 引入了一种 SOLO 开发模式,使得在某些部署配置中不再需要  Laszlo Presentation   Server。另一个主要的改进是客户机运行时环境。最新版本(Open Lazlo 4)正处于 beta 测试阶段,它使基于 Laszlo 的应用程序能够不带 Adobe/Macromedia Flash Player 插件运行。许多公司不愿意被限制于某种专有的插件(比如 Flash  Player),他们会欢迎这一改进。

如何判断哪种产品更适合您的组织?Flex 的主要优点是可以从 Adobe/Macromedia 获得充分的产品支持,但是要为 Flex Data  Services Server 的许可证付费。对于某一些公司来说,付出许可证费用来换取得到充分支持的产品是值得的。Adobe Flex 2 应用程序也需要 Flash Player plug-in V9。尽管 Flex 可以创建丰富的用户体验,但是某些公司不愿意承受费用和插件限制。

Open Laszlo 技术最初是作为商业产品发布的,但是在 2004 年 Laszlo Systems 开放了这种技术的源码,采用了 Common Public License(V1.0)许可方式。Laszlo Systems 提供支持订阅,而且因为它是一个开放源码项目,您可以选择使用免费资源支持它。对于 Open  Laszlo,费用不是大问题, 但是有些组织的公司策略不允许使用开放源码软件,所以可能不能选用 OpenLaszlo。

附录B:主要参考文献的题录及摘要

1  Web服务器端的动态网页技术

【篇名】Web服务器端的动态网页技术   

【作者】杨德华;

【单位】同济大学经济与管理学院;上海;

【刊名】计算机应用研究, APPLICATION RESEARCH OF COMPUTERS, 编辑部邮箱 1999年 10期  
期刊荣誉:中文核心期刊要目总览  ASPT来源刊  中国期刊方阵  CJFD收录刊    

【中文关键词】动态网页技术;Servlet ;JSP ;GSP服务器端Java程序;

【中文摘要】WEB的动态网页已经成为WEB站点信息资源组织、共享、发布与信息交互的主要技术。本文深入地探讨WEB服务器端的动态网页的实现技术及其应用,并结合当前Java环境下动态网页的设计技术与处理软件的新进展,以实例阐述了WEB月民务器端动态网页系统的技术实现与系统建立.    

【DOI】CNKI:ISSN:1001-3695.0.1999-10-015

2 基于 B/S模式和JSP技术的网络流量动态监控系统

【篇名】基于 B/S模式和JSP技术的网络流量动态监控系统

【作者】黄美莹; 郑纬民; 汪东升; 杨广文;

【单位】清华大学计算机系高性能所; 

【刊名】计算机工程与应用, Computer Engineering and Applications, 编辑部邮箱 2002年 01期  
期刊荣誉:中文核心期刊要目总览  ASPT来源刊  中国期刊方阵  CJFD收录刊

【中文关键词】浏览器/服务器;网络流量;动态监控;JSP;

【中文摘要】网络流量监控是进行网络管理的一种手段,可以通过监控对网络资源的运行效率和配置的合理性进行全面了解。论文基于 B/S 模式和 JSP 技术,论述了一个网络流量动态监控系统的设计与实现技术。该系统具有交互性和实时性好、数据库自动维护、不影响网络运行等特点.

文章编号1002-8331-(2002)01-0144-03

3  J2EE设计模式的研究与应用

  【篇名J2EE设计模式的研究与应用

【作者】许文雨;申晓龙;谭献海; 

【单位】西南交通大学,四川成都; 

【刊名】成都信息工程学院学报 第20卷第4期2005年8月
期刊荣誉:ASPT来源刊  CJFD收录刊

【中文关键词】DAO;工厂;值对象; 

【中文摘要】讨论了DAO 、工厂方法、抽象工厂和值对象等几个J2EE 模式的用途及特点,然后介绍了学生及课程信息管理系统的设计与实现,并根据系统设计框架和类图说明了这些模式在具体实现过程中的作用,最后总结了该设计优越性及不足之处.

文章编号1671-1742(2005)04-0402-05

4 基于C/S和B/S模式的远程销售信息管理系统的设计与实现

【篇名】基于C/S和B/S模式的远程销售信息管理系统的设计与实现

【作者】周庆;甘仞初;尹秋菊;车海莺; 

【单位】北京理工大学经济与管理学院,北京; 

【刊名】计算机应用研究 , 2002年 第5期  

【中文关键词】Client/Server;Browser/Server;远程销售信息管理;Web; 

【中文摘要】以以陕西东盛医药销售信息管理系统开发为背景,阐述系统开发过程;总结运用Client/Server两种计算模式实现Internet和Intranet相结合的技术方法,以及实施医药销售信息网络化管理的经验.

文章编号1001-3695(2002)05-0097-04

5 三层结构及其在数据库系统中的应用

【篇名】三层结构及其在数据库系统中的应用

【作者】许良凤; 崔向东; 

【单位】合肥工业大学计算机与信息学院通信系; 安徽电信规划设计院; 安徽合肥;

【刊名】安徽工程科技学院学报 , Journal of Anhui Institute of Mechanical and Electrical Engineering, 编辑部邮箱 2002年 03期  
期刊荣誉:ASPT来源刊  CJFD收录刊

【中文关键词】中间件;客户/服务器模式;应用服务器;

【中文摘要】介绍了三层结构的概念及其应用,对比二层结构客户/服务器模式与三层结构客户/服务器模式的不同,阐述了采用中间件技术的三层结构客户/服务器模式在当前企业级应用中的优势.并根据中间件在系统中所起的作用和采用的技术,详细地介绍了其五种类型和各自特点.

【DOI】CNKI:ISSN:1007-5240.0.2002-03-009

6  Dreamweaver8.0中文版完全自学手册

篇名】:Dreamweaver8.0中文版完全自学手册.[M]

作者】:龙马工作室

出处】:人民邮电出版社, 北京.2006

摘要】:本书从网页制作的基础知识入手,详细介绍了如何使用Dreamweaver设计和制作网站与网页,内容包括各种网页元素的设计与制作,静态动态网站的实现,网站的管理和维护等。

7  数据库系统概论

   【书名】数据库系统概论

 【作者】萨师煊、王珊

   【出版单位】高等教育出版社

   【关键词】SQL语言; 数据库设计;数据库维护;

   【摘要】本书内容包括:数据库模型、数据库系统结构、关系数据库系统、SQL语言、复杂数据理论、数据库维护、数据库设计、关系数据库管理系统、数据库技术新进展、面向对象数据库系统、分布式数据库系统、并行数据库系统等。

   【ISBN】7-04-007494-X

8  软件工程

【书名】软件工程

作者】齐治昌等

出版单位】高等教育出版社,2005 

关键字】软件开发;技术;设计

摘要】本书主要讲述了软件工程的基本概念,软件开发模型,开发过程管理和质量控制,软件开发设计过程和一般性技术。从而可以使读者更进一步的理解并掌握软件开发的流程。

9数据库系统概论

   【书名数据库系统概论

   【作者】萨师煊、王珊

   【出版单位】高等教育出版社

   【关键词】SQL语言; 数据库设计;数据库维护;

   【摘要】本书内容包括:数据库模型、数据库系统结构、关系数据库系统、SQL语言、复杂数据理论、数据库维护、数据库设计、关系数据库管理系统、数据库技术新进展、面向对象数据库系统、分布式数据库系统、并行数据库系统等。

   【ISBN】7-04-007494-X

10 基于J2EE的物流信息管理系统的设计与实现

【篇名】基于J2EE的物流信息管理系统的设计与实现

作者】王维强;曲志斌;

单位】武汉科技大学城建学院,湖北武汉; 

刊名】武汉科技大学学报(自然科学版) , Journal of WuhanUni.of Sci.&Tech. (Natural Sciences Edition), 编辑部邮箱 2006年 2月第29卷 第1期 
期刊荣誉:ASPT来源刊  CJFD收录刊

中文关键词】J2EE ; EJB ; 管理信息系统; 物流信息管理系统; 

中文摘要】物流信息管理系统(L IMS)是一个基于网络的自动化信息系统。分析了J2EE 企业平台框架上应用多层结构模型,结合某信息管理系统中基本信息管理模块的功能设计,详细分析了该系统在J2EE 平台上多层分布式结构的实现过程,为相关系统的开发和研究提供了范例. 

文章编号】1672-3090(2006)01-0095-03

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值