毕业论文-(2)

来源:卫生职称 发布时间:2020-09-10 点击:

 本科毕业设计( ( 论文) )

 题目 :

 于 基于 WEB 的软件工程案例教学平台---- 案例库及检索子系统的设计

 院 (系):

 计算机科学与工程学院

 专

 业:

  网络工程

 班

 级:

  120614

 学

 生:

  薛斌

 学

 号:

  120614112

  指导教师:

  徐飞

  6 2016 年 年 6 06 月 月

 本科毕业设计( ( 论文) )

 题目 :

 于 基于 WEB 的软件工程案例教学平台---- 案例库及检索子系统的设计

 院 (系):

  计算机科学与工程学院

 专

 业:

  网络工程

 班

 级:

  120614

 学

 生:

  薛斌

 学

 号:

  120614112

  指导教师:

  徐飞

  6 2016 年 年 6 06 月 月

 西安工业大学 毕业设计(论文)任务书

 院(系)

 计算机科学与工程学院

  专业

  网络工程

 班级

 120614

  姓名

  薛斌

  学号

 120614112

 1.毕业设计(论文)题目:

 题目:基于 WEB 的软件工程案例教学平台----案例库及检索子系统的设计

 2.题目背景和意义:

 背景:随着网络技术、通信技术和计算机技术的迅猛发展,教育正逐步走向了网络化、信息化和现代化。网络教学是利用计算机技术、网络技术以及多媒体技术,在互联网络环境下实行教育教学的一种新途径,作为一种重要的辅助手段,补充传统的课堂教学。网络教学可以充分依靠先进的教学手段、教学技术教学资源、教学思想,给广大用户提供了良好的自主学习环境,大幅度的促进并提升了教学效率、教学效果和教学水平。

 该系统能把不同形式的教学资源有机的结合起来,并提供一个层次化、科学化、便捷化的应用平台,使教学资源的利用高效化,提高了教学的服务质量。现代教育教学系统是建立在高效的案例教学平台的基础上的,也是现代教育教学系统中必不可少的、重要的基础系统。

  意义:案例教学是一种通过模拟或者重现现实生活中的一些场景,让学生把自己纳入案例场景,通过讨论或者研讨来进行学习的一种教学方法。在多种教学方式中,案例教学很早就被各国名牌学校所引进,于此同时也表现出来它的优势。在教育方法中,得到了有很好的称赞。由于教育资源分配不均以及其他一些软件、硬件方面的因素,使得教育差异化比较大。而当代互联网的高速发展,各种资源逐步在实现高度共享。将案例教学整合到互联网上,不仅可以解决各地教育资源分配不均衡,同时利用互联网的创新方式,可以不断的创新和改革教育模式,提高教育质量。本系统指在提高老师或同学更加有针对性的获取教育资源,将案例教学分类管里,提供检索入口,简化老师和学生在寻找资源中的无用操作。

 3.设计(论文)的主要内容(理工科含技术指标):按照软件工程的方法进行系统需求分析、设计及开发,主要有以下功能:

 (1)

 学生用户:

 用户登陆、信息浏览、密码修改、案例查询、案例检索、案例下载、案例评论等功能。

 (2)

 教师用户及管理员:用户登陆、信息浏览、密码修改、案例查询、案例添加、案例检索、案例修改、案例删除、案例类别管理、案例答疑等功能。

 其中:案例库及检索子系统设计主要可根据关键字、案例名、开发者、案例简介等进行检索,同时提供便捷的数据查询 WebService 接口以供不同的客户端使用。

 4.设计的基本要求及进度安排(含起始时间、设计地点):

 (1)

 必须掌握一门面向对象语言;

 (2)

 熟悉 Mysql 数据库的设计;

 (3)

 具有软件开发的基本技能。

 第 1—3 周

  选题、收集相关资料并撰写开题报告进行开题答辩

  第 4—6 周

  根据客户需求完成需求分析报告并完成详细设计报告

  第 7—9 周

  系统设计、数据库设计、开发环境搭建

  第 10—15 周

  完成系统所有模块开发工作,同时完成功能测试

  第 16—17 周

  对整个系统进行完整测试、运行

  第 18 周

  修改完善论文并准备毕业答辩

 5.毕业设计(论文)的工作量要求

 ① 实验(时数)

 * 或实习(天数):

  3 月至 6 月

  ② 图纸(幅面和张数)

 * :

 A4 纸

  ③ 其他要求:

 论文字数要求 15000

 指导教师签名:

 年

 月

 日

  学生签名:

  年

 月

 日

 系(教研室)主任审批:

 年

 月

 日 说明:1 本表一式二份,一份由学生装订入附件册,一份教师自留 。

  2 带*项可根据学科特点选填。

 于 基于 WEB 的软件工程案例教学平台 ---- 案例库及检索子系统的设计 摘 摘

 要 随着互联网的快速发展,现代互联网教育、教学平台的范围不断扩张,但是基于软件工程的案例教学领域尚未普及,结合目前案例教学的实际表现:没有一个统一的管理平台来管理老师和学生;网络资源复杂,获取有针对性的案例信息比较困难;案例管理比较复杂,分类管理比较麻烦。因此,本课题从学生用户对案例资源检索需求出发深入调查研究之后,发现学生很难找到一个相关案例检索的平台,最终在研究相关资源需求和技术需求的基础上,提出《基于 web 的软件工程案例教学平台—案例库及检索子系统的设计》这一课题。

 本课题主要研究案例教学平台的案例库的构建和检索子系统的实现,采用现在流行的 J2EE 开发框架。在项目开发阶段始终坚持代码的低耦合、高内聚,使系统维护更新比较方便。整个系统主要分为案例库系统和检索系统两大模块。在案例库中主要有案例增加、批量上传案例相关文件、案例信息修改、案例查询、案例删除等功能;检索子系统主要包含根据案例名称模糊检索案例,根据上传用户名检索案例,根据案例名称、案例上传用户名、案例相关关键字、案例相关技术等一项或多项组合进行高级查询。

 基于软件工程的案例教学平台中案例库和检索子系统的设计,采用 B/S 架构,初步实现了案例库和检索子系统的相关功能。本系统摆脱传统的 C/S 架构所带来的部署不方便,在互联网技术应用更加深入和普及的今天,此系统一定会在将来的更好的服务于广大用户,使用户更加方便、快捷、高效的工作。

 关键词:软件工程;案例库;检索系统;struts2;java

 Software engineering case teaching platform based on WEB--- Case base and retrieval subsystem Abstract With the rapid development of the Internet, the scope of the modern Internet education, teaching platform continues to expand, but case-based teaching software engineering is not yet universal, the actual performance of the current Case Teaching: Without a unified management platform to manage teachers and students; network complex resources, access to targeted information more difficult cases; more complex case management, category management is too much trouble. Thus, after the subject from the student user demand for Case Retrieval departure thorough investigation and study, we found that students difficult to find a related case retrieval platform, ultimately based on research related resources and technical needs on the proposed "web-based software engineering case Teaching platform - case database and retrieval subsystem design, "the subject. Construction and retrieval subsystems to achieve this project platform Case Teaching main case base, using the now popular J2EE development framework. In the project development phase always adhere to the code of low coupling, high cohesion, to make the system more convenient maintenance updates. The whole system is divided into case library and retrieval systems two modules. In the case of the library there are cases of increased bulk upload documents relevant to the case, modify case information, case inquiry, case delete functions; retrieval subsystem comprising the Case Name Case fuzzy search, retrieval based on user name Upload the case, according to the case name, case Upload a user name, a combination of one or more keywords related cases, case-related technology and other advanced queries. Design Case Teaching Platform Software Engineering in the case base and retrieval subsystem based on the use of B / S structure, the initial realization of the features of the case library and retrieval subsystem. The system away from the traditional C / S structure brought about by the deployment of convenient, more in-depth application of Internet technology and the popularity of tomorrow, the system will be in the future to better serve the majority of users, allowing users to more convenient, fast, efficient work. Key Words: Software engineering;case library; retrieval system;struts2; java

 目录 摘

 要 ................................................... I

 Abstract ................................................ II

 1

 绪论 ................................................... 1

 1.1

 背景介绍 ................................................... 1

 1.2

 系统设计的意义 ............................................. 1

 1.3

 国内外相关研究情况 ......................................... 1 1.4

 课题研究内容 ............................................... 1 1.5

 论文结构 ................................................... 2 2

 软件开发相关的技术 ..................................... 3

 2.1

 JSP 简介 .................................................... 3 2.2

 Struts 2.X 简介 ............................................ 3 2.3

 Spring 简介 ................................................ 4 2.4

 MySql 简介 .................................................. 4 3

 需求分析 ............................................... 6

 3.1

 需求分析概述 ............................................... 6 3.2

 系统功能需求分析 ........................................... 6 3.3

 系统非功能需求 ............................................. 8 4

 系统详细设计 ........................................... 9

 4.1

 系统结构 ................................................... 9 4.1.1 系统框架图 ............................................. 9 4.2

 模块介绍 .................................................. 10 4.3

 数据库结构设计 ............................................ 10 4.3.1 数据表 E-R 图 ......................................... 11 4.3.2 数据表概要说明 ....................................... 11 4.3.2 物理结构设计 ......................................... 12 5

 系统实现 .............................................. 15

 5.1

 开发环境及工具 ............................................ 15 5.2

 模块说明程序流程设计 ...................................... 15 5.2.1 功能设计 ............................................. 15 5.2.2 程序结构设计 ......................................... 16 5.2.3 系统界面设计 ......................................... 17 5.2.3 系统页面效果如下图所示:

 ............................. 17 5.3

 重要模块实现细节 .......................................... 19 5.3.1 案例库管理模块设计 ................................... 19 5.3.2 案例库检索模块设计 ................................... 23 5.3.3 用户模块设计 ......................................... 25 6

 测试 .................................................. 30

 6.1 软件测试的目标 ............................................. 30 6.2 测试计划及执行情况 ......................................... 30 6.3 测试评价 ................................................... 35 7

 结论 .................................................. 36

 参考文献 ................................................. 37

 致

 谢 ................................................... 39

 毕业设计(论文)知识产权声明 ............................. 40

 毕业设计(论文)独创性声 明 ............................... 41

 附

 录 ....................................... 错误! ! 未定义书签。

 1

  绪论

 1.1

 背景介绍

 随着现代互联网技术的快速发展,传统教育也在寻求新的教育教学方式,逐渐的也走向了网络化、信息化和现代化。网络技术的快速发展改变了教学方法、手段的同时也带来了教学理念、教学内容的急速变更,其中应用计算机进行案例教学已成为现代教育技术改革创新的热点之一。网络教学是利用计算机技术、网络技术以及多媒体技术,在互联网络环境下实行教育教学的一种新途径,作为一种重要的辅助手段,补充传统的课堂教学。网络教学可以充分依靠先进的教学手段、教学技术、教学资源、教学思想,给广大用户提供了良好的自主学习环境,大幅度的促进并提升了教学效率、教学效果和教学水平。案例教学,是一种开放式、互动式的新型教学方式。案例教学可以充分依靠先进的教学手段、教学技术教学资源、教学思想,给广大用户提供了良好的自主学习环境和项目导向,大幅度的促进并提升了教学效率、教学效果和教学水平,还可以促进高校教师和学生之间的交互联系与沟通,在传统课堂教学过程一些弊端得以弥补。为此,为广大师生开发建设案例教学平台已成为一种重要需求。

 1.2

 系统设计的意义

 案例教学是一种通过模拟或者重现现实生活中的一些场景,让学生把自己纳入案例场景,通过讨论或者研讨来进行学习的一种教学方法。在多种教学方式中,案例教学很早就被各国名牌学校所引进,于此同时也表现出来它的优势。在教育方法中,得到了有很好的称赞。由于教育资源分配不均以及其他一些软件、硬件方面的因素,使得教育差异化比较大。而当代互联网的高速发展,各种资源逐步在实现高度共享。将案例教学整合到互联网上,不仅可以解决各地教育资源分配不均衡,同时利用互联网的创新方式,可以不断的创新和改革教育模式,提高教育质量。本系统指在帮助老师和学生更加有针对性的获取教育资源,将案例教学分类管里,提供检索入口,简化老师和学生在寻找资源中的无用操作。

 1.3

 国内外相关研究情况

 在欧美,在政府的大力支持下,各个学校纷纷对教学进行数字化改造,加强了各学校案例教学案例库的建设。早在 70 年代的时候,国外就已经有人开始研究了案例教学,并最早应用于医学上,现在已经应用于很多教学领域。随着互联网的快速发展,案例教学也被迁移至互联网上,来应对信息的快速传播。案例库的建设也成了必然的需要,这不仅可以加快信息共享,也方便了学生、

 教师对资源获取的便捷性。

 在 2013 年电子科技大学徐天南的毕业设计课题中研究过网络教学的案例库系统,他主要是建立了一个老师和学生的交流平台。老师可以提供案例方案或者上传案例文件,来供学生浏览下载学习。这也是一个完整意义上的案例教学系统。本科题主要在案例库建设和检索系统中进行进一步的优化,使得案例库整个组织架构更加的丰富,检索效率更高,更有针对性。

 1.4

 课题研究内容

 本课题是案例教学平台的一个重要组成部分,主要包括案例库和检索子系统。在研究过程中本课题结合现有的临近教学平台的相关经验,同时结合软件工程案例教学平台独有的特点,进行综合分析、调研。最终确定研究的主要内容。

 在本课题中将实现一个操作简单、功能丰富的案例库子系统和检索子系统。其中案例库子系统要实现对案例的分类存储,灵活的管理;检索子系统要提供简单、快捷的检索方式。本课题主要实现两种检索方式:一种是根据案例标题检索,另一种是根据案例的分类、标题、关键字、相关技术、上传用户等条件中的一种或几种进行联合检索。

 1.5

 论文结构

 基于案例库和检索子系统的相关需求,作者设计并实现案例库和检索子系统。本文组织结构如下:

 第一章:绪论部分。简单介绍案例库及检索子系统的研究意义、选题背景,并根据应用现状,提出研究内容和实现目标。

 第二章:相关技术介绍。简单介绍本课题采用的相关技术,同时对使用的struts2、hibernate、spring 等开源框架进行简单介绍。

 第三章:案例库和检索子系统需求分析。包括需求分析、系统用例分析、业务流程分析、数据库设计以及总体技术路线。

 第四章:案例库和检索子系统概要设计。系统体系结构、数据库设计以及总体设计路线。

 第五章:案例库和检索子系统功能模块设计与实现。包括案例库和检索子系统总体设计、案例库模块设计、案例检索模块设计、案例管理模块和相关关键技术的应用。

 第六章:系统测试。对系统进行整体测试,并对测试结果进行说明。

 第七章:总结。对本课题的研究过程和结果进行总结。

 2

 软件开发相关的技术

 2.1

 P JSP 简介

 JSP 技术是用 JAVA 语言作为脚本语言的,JSP 网页为整个服务器端的 JAVA库单元提供了一个接口来服务于 HTTP 的应用程序。

 JSP(JavaServer Pages)是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。

 在传统的网页 HTML 文件(*.htm,*.html)中加入 Java 程序片段(Scriptlet)和JSP 标记(tag),就构成了 JSP 网页(*.jsp)。Web 服务器在遇到访问 JSP 网页,首先执行其中的程序片段,然后将执行结果以 HTML 格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无 Plugin,无 ActiveX,无 Java Applet,甚至无 Frame。

 JavaServer Pages(JSP) 技术提供了一种简单快速的方法来创建显示动态生成内容的 Web 页面。由业界处于领先地位的 Sun 公司制定了相关的 JSP 技术规范,该规范定义了如何在服务器和 JSP 页面间进行交互,还描述了页面的格式和语法。

 JSP 页面使用 XML 标签和 scriptlets(一种使用 Java 语言编写的脚本代码),封装了生成页面内容的逻辑。它将各种格式的标签(HTML 或者 XML)直接传递回响应页面。通过这种方式,JSP 页面实现了页面逻辑与其设计和显示的分离。

 JSP 技术是 Java 系列技术的一部分。JSP 页面被编译成 servlet,并可能调用 JavaBeans 组件(beans) 或 Enterprise JavaBeans 组件(企业 beans),以便在服务器端处理。因此,JSP 技术在构建可升级的基于 web 的应用程序时扮演了重要角色。JSP 页面并不局限于任何特定的平台或 web 服务器上。JSP 规范在业界有着广泛的适应性。

 2.2

  Struts 2.X 简介

 Struts2 是一个基于 MVC 设计模式的 Web 应用框架,它本质上相当于一个servlet,在 MVC 设计模式中,Struts2 作为控制器(Controler)来建立模型与视图的数据交互。Struts 2 是 Struts 的下一代产品,是在 struts 1 和 WebWork 的技术基础上进行了合并的全新的 Struts 2 框架。其全新的 Struts 2 的体系结构与 Struts 1 的体系结构差别巨大。Struts 2 以 WebWork 为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与 ServletAPI 完全脱离开,

 所以 Struts 2 可以理解为 WebWork 的更新产品。虽然从 Struts 1 到 Struts 2 有着太大的变化,但是相对于 WebWork,Struts 2 的变化很小。

 2.3

  Spring 简介

 Spring 是一个开源框架,它由 Rod Johnson 创建。它是为了解决企业应用开发的复杂性而创建的。Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。

 Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

 轻量——从大小与开销两方面而言 Spring 都是轻量的。完整的 Spring 框架可以在一个大小只有 1MB 多的 JAR 文件里发布。并且 Spring 所需的处理开销也是微不足道的。此外,Spring 是非侵入式的:典型地,Spring 应用中的对象不依赖于 Spring 的特定类。

 控制反转——Spring 通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了 IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为 IoC 与 JNDI 相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。

 面向切面——Spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

 容器——Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个 bean 如何被创建——基于一个可配置原型(prototype),你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring 不应该被混同于传统的重量级的 EJB 容器,它们经常是庞大与笨重的,难以使用。

 框架——Spring 可以将简单的组件配置、组合成为复杂的应用。在 Spring中,应用对象被声明式地组合,典型地是在一个 XML 文件里。Spring 也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。

 所有 Spring 的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为 Spring 中的各种模块提供了基础支持。

 2.4 4

 l MySql 简介

 MySQL 是一个精巧的 SQL 数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应

 用编程接口(API)以及精巧的系统结构,受到了广大自由软件爱好者甚至是商业软件用户的青睐,特别是与 Apache 和 PHP/PERL 结合,为建立基于数据库的动态网站提供了强大动力 MySQL 是一个真正的多用户、多线程 SQL 数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL 是以一个客户机/服务器结构的实现,它由一个服务器守护程序 mysqld 和很多不同的客户程序和库组成。

  SQL 是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用 SQL 语言为一个网站检索产品信息及存储顾客信息,同时 MySQL 也足够快和灵活以允许你存储记录文件和图像。

  MySQL 建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管 MySQL 仍在开发中,但它已经提供一个丰富和极其有用的功能集。

 3

 需求分析

 3.1

 需求分析概述

 依据软件工程的原理和方法,以及对系统的前期分析,初步规划系统所要实现的功能模块,满足前期的报告中提出对系统的功能要求;可行性分析也称为可行性研究,即是在系统调查的基础上,针对新系统的开发是否具备必要性和可行性,对新系统的开发从技术、经济、管理的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。

 (1)经济可行性 主要是对项目的经济效益进行评价,软件开发周期一般为3-4个月,开发所需硬件软件很普遍,该软件系统的安装、部署、运行和维护,开发费用不高。所以该系统在经济上是可行的。

 (2)技术可行性 技术上的可行性分析主要分析技术条件是否能顺利完成开发工作,硬、软件能否满足开发者的需要。本系统采用Java语言编写程序,基于web浏览器上使用了MyEclipse开发平台,运用了MySql数据库和JSP技术, 能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。硬件方面,可靠性越来越强,足够满足系统的开发 (3)操作可行性 现在大部分计算机都可以运行本系统,并且用户很容易的就可以操作本系统。因此从操作可行性的角度来衡量,本系统的开发方案也是可行的。

 综合三方面的因素,开发基于web的软件工程案例教学平台案例库和检索系统是可行的。

 3.2

 系统功能需求分析

 根据需求分析中的模块划分,进行系统架构和网页结构设计,对模块的功能有一个初步的设计,并且将系统模块的功能流程有初步的分析,实现了部分模块的功能。下边分别对于不同用户存在的功能差异进行简单介绍。

 (1)普通用户,即学生用户使用系统的功能用例图如图3.1所示:

  图 3.1 学生用户功能用例图 说明:

 学生用户是本系统中权限最低的用户,也是系统的主要使用者。在本系统中学生用户只拥有修改自己信息的权限,同时也只能管理自己收藏夹中收藏的案例,并且只能选在收藏或者取消收藏案例的操作,本操作不会改变案例的任何信息,只是删除收藏夹中的案例之后,不会再出现在自己的收藏夹中。

 (2)老师用户使用系统的功能用例图如图3.2所示:

 图3.2 老师用户功能用例图 说明:

 老师用户是本系统案例的主要提供者和对学生提出的疑问的主要回答者,他所拥有的权限较学生用户的权限要高。老师用户可以上传案例,并且对自己上传的案例进行增、删、改等维护操作。同时老师用户也可以浏览其他老师用户的案例,并且进行评价和收藏的等操作。

 (3)管理员用户使用系统的功能用例图如图3.3所示:

  图3.3 管理员用户功能用例图

 说明:

 管理员用户是本系统的主要管理者,拥有本系统的所有权限。本系统属于内部学习平台,对所有用户不提供注册功能,全部由管理员用户进行分配用户。管理员用户可以管理本平台下的所有案例,对所有案例拥有增、删、改等操作;同时、管理员用户也负责管理平台下的所有用户,对所有用户进行增、删、改操作,同时还负责用户权限的分配工作。

 3.3

 系统非功能需求

 (1)可用性:基于Web的软件工程案例教学平台案例库和检索子系统保证所有功能正常使用,界面设计合理,操作简单,且页面响应速度快。

 (2)性能:基于Web的软件工程案例教学平台案例库和检索子系统启动时间不超过10秒,且可进行案例相关文件的批量上传。

 (3)可维护性:基于Web的软件工程案例教学平台案例库和检索子系统任务书、设计文档和实现代码都有完整的备份。

 (4)技术的成熟性:

 本系统以java作为开发语言,使用了现在比较流行的ssh(struts2、hibernate、spring)框架进行整合开发,无论是在业务逻辑处理还是系统运行性能都做了很好的优化。采用ssh进行整合开发,使用MVC架构,使各层逻辑分开,大大的提高了代码的内聚性,降低了逻辑之间的耦合性,方便了以后的维护。

 4

 系统详细设计

 4.1

 系统结构

 本课题研究的案例库和检索子系统是整个案例教学平台的一部分,所以在整个设计过程中都应当以案例教学的目标来实现,同时与另一课题的演示子系统相结合,尽量做到很好的整合工作。

 本课题要实现的案例库子系统是对不同案例进行很好的分类整理,进行有效的存储。在设计过程中,作者采用数据库存储一些案例的相关信息,对于案例的相关的文件则采用本地存储。为了实现同一课题可能包含多个文件,本课题在设计过程中实现了多个文件批量上传的功能。同时为了不影响整个程序的响应性能,在实现上传文件的过程时,全部进行分离在子线程中进行操作。

 检索子系统是以案例库为基础,提供了对案例库的简单检索。本课题的目标是实现两种检索方式:即按案例的标题进行模糊检索和按案例的标题、上传作者、关键字、相关技术等检索条件中的一种或者几种进行组合后进行模糊检索。

 1 4.1.1 系统框架图

 结合上述基本设计目标,整个案例库和检索子系统的功能结构图如下,如图4.1所示:

 图 4.1 系统功能结构图

 4.2

 模块介绍

 系统总共分为以下五个模块:

  用户管理模块:用户管理模块主要包含新增用户、修改用户、用户密码初始化、用户权限分配、用户删除等操作。

  导航管理模块:本模块主要是为了实现首页导航栏目可以动态维护,主要包括导航的增加、修改、删除等操作。

  案例管理模块:本模块是案例库构建的重点,主要是实现案例的增加、案例分类管理、案例相关文件的上传、案例信息的修改登操作。

  检索模块:本模块主要实现了系统所需要的检索功能,其中包括用户简单检索、案例简单检索、案例详细检索等主要功能。

  案例文件上传下载模块:本模块提供一些系统公共的上传下载的工具类,主要是在增加案例是对案例相关文件的批量处理管理。

 4.3

 数据库结构设计

 数据库设计是在既定的数据库管理系统基础之上建立数据库的过程。其过程是将现实存在的数据及其应用处理关系进行抽象,从而形成数据库结构。具体实现时,应首先明确用户对数据的需求,在此基础上,建立数据库的概念模型,概念模型主要是用来反映用户的现实环境和需求,它独立于具体的数据库管理系统,并且与数据库怎样实现无关,建立概念模型的主要工具为实体关系E-R 图;在建立数据库概念模型之后,要真正实现与数据库管理系统的结合,即能够由既定的数据库管理系统所支持,还必须进行逻辑结构的设计,在逻辑设计阶段,主要完成建立数据库的逻辑模型,并解决数据的完整性、一致性、安全性和有效性等问题;最后一个阶段是数据库的物理结构设计,其任务是为系统逻辑结构模型确定合理的存储结构、存取方法、以及数据表示和数据存储空间分配等内容,从而得到具体的数据库物理结构。

 经过前边的分析,案例库和检索子系统主要抽象出如下实体模型:

 ( (1)

 )

 用户模型:

 主要包含管理员、学生、老师等一些基本信息。

 ( (2)

 )

 案例模型:

 主要包含案例的相关信息。

 ( (3)

 )

 案例文件模型:

 在设计过程中为了实现一个案例多文件管理的需求,在此作者抽象出一个实体主要存放文件。

 ( (4)

 )

 导航模型:

 在设计的时候需要对案例进行分类,同时为了满足首页导航信息也可以动态展示,在这里作者抽象出一个导航模型。用来管理案例的分类和导航栏目的显示。

 ( (5)

 )

 评论模型:

 因为本课题是案例教学平台的一个子系统,为了与演示子系统相结合,这里也使用了另一课题的一个数据模型,即评论模型。这里主要包含用户对相关案例的评论信息,同时也包含不同用户对相关评论的回复信息。

 4.3.1

 数据表 E E- -R R 图

 数据表 E-R 图如图 4.2 所示:

 图 4.2 系统 E-R 图 4.3.2

 数据表概要说明

 从各实体的 E-R 图到在 MySql 中为整个系统建立了一个数据库,储存各类数据和控制信息。包含以下几层:(1)表示层:展现给用户的界面,主要是显示数据和接收用户输入数据。

 (2)服务层:针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。

 (3)数据访问层:对数据库进行操作。

 (4)Model 层:定义数据库字段。

 其中 Model 层中定义的表如表 4.1 所示:

 表4.1 Model层包含的实体模型表 表名称 说明 User 所有用户表 Work 所有案例信息表 WorkFile 案例相关文件表,存放案例相关文件 Navigate 系统首页导航信息表 Comment 案例相关评论、回复表 4.3.3 3

 物理结构设计

 (1)名称:用户表(user),如表 4.2 所示,包括 userId,userName,userAccount,userPassword,userGender,userEmail,userSchool,userBirthday,userEducation,userPhotos,userCollege,userMajor,userClass,userType 等字段,与评论表、案例表相关联。

 表4.2:用户表 (user)

 字段名 类型 是否主/外键 是否可为空 说明 userId Bigint(10) 主键 否 自增 userName varchar(50) 否 否 真实姓名 userAccount varchar(50) 否 否 登录名 userPassword varchar(50) 否 否 默认:123456 userGender varchar(10) 否 否 默认:0 男 userEmail varchar(50) 否 是 邮箱 userSchool varchar(50) 否 是 学校 userBirthday date 否 否 生日 userEducation varchar(50) 否 是 学历 userPhotos varchar(50) 否 是 照片 userCollege varchar(50) 否 是 学院 userMajor varchar(50) 否 是 专业 userClass varchar(50) 否 是 班级 userType varchar(10) 否 否 用户类型 (2)名称:案例表(work),如表 4.3 所示,包括 workId,workName,workKeyWords,navigateId,workDestribute,workTechnology,workUploadDate,workClickNum,userId 等字段,与导航表、用户表,案例文件表相关联。

 图4.3:案例表 (work)

 字段名 类型 是否主/外键 是否可为空 说明 workId bigint(20) 主键 否 自增 workName varchar(50) 否 否 案例名称 workKeyWords varchar(255) 否 是 关键字 navigateId bigint(20) 外键 是 分类名称

 workDestribute varchar(255) 否 是 简介 workTechnology varchar(255) 否 是 相关技术 workUploadDate datetime 否 都 更新时间 workClickNum Int(11) 否 否 初始值 0, userId bigint(20) 外键 否 用户 ID (3)名称:案例文件表(workFile),如表 4.4 所示,包括 fileId,,,workId等字段,与案例表相关联。、 图4.4:案例文件表 (workFile)

 字段名 类型 是否主/外键 是否可为空 说明 fileId bigint(20) 主键 否 自增

 varchar(50) 否 是 文件名称

 varchar(250) 否 是 文件路径 workId bigint(20) 外键 否 外键,workId (4)名称:用户——案例表(user_work),如表 4.5 所示,包括 user_id,work_id 等字段,此表为中间表,链接用户表和案例表。

 图4.5:用户——案例表(user_work)

 字段名称 类型 是否主/外键 是否可为空 说明 user_id bigint(20) 主键 否 userId 联合主键 work_id bigint(20) 主键 否 workId 联合主键 (5)名称:评论表(comment),如表 4.6 所示,包括 commentId,commentMessage,commentDate,toUserId,formUserId,parentId 等字段,与用户表、案例表相关联。

 图4.6:评论表(comment)

 字段名称 类型 是否主/外键 是否可为空 说明 commentId bigint(20) 主键 否 自增 commentMessage longtext 否 是 文本 commentDate datetime 否 是 日期 toUserId bigint(20) 外键 否 userId fromUserId bigint(20) 外键 否 userId parentId bigint(20) 外键 否 commentId (6)名称:导航表(navigate),如表 4.7 所示,包括 navigateId,navigateName,parent 等字段,与次表相关联,形成上下级映射。

 图4.7:导航表(navigate)

 字段名 类型 是否主/外键 是否可为空 说明 navigateId bigint(20) 主键 否 自增 navigateName varchar(20) 否 否 导航名 parent bigint(20) 外键 否 父导航名

 5

  系统实现

 5.1

  开发环境及工具

 开发平台:Windows 10 运行环境:Windows 10 系统 ,Tomcat 7.0 服务器 开发工具:MyEclipse;MySql 开发语言:Java、JavaScript、Html 5.2

 模块说明程序流程设计

 5.2.1 功能设计

 ( (1 )案例库功能设计:

 案例库主要包含案例增加、案例修改、案例删除、案例相关文件上传等功能。详细功能结构图如 5.1 所示:

 图:5.1

 案例库子系统详细功能设计图 ( (1 )检索子系统功能设计:

 检索子系统主要包含案例检索和用户检索。其中用户检索是根据用户名进行模糊检索;案例检索包含根据案例名称模糊检索、根据上传用户名模糊检索、根据案例关键字和关键技术模糊检索、根据案例分类相关检索以及这几种方式的随意组合进行条件模糊检索。详细功能框架图如图 5.2 所示:

  图 5.2:检索系统详细设计功能图

 5.2.2

 程序结构设计

 xuebin 为项目的名称,也是项目的根目录。该目录下主要包含 Src 源码目录、项目所需的配置文件 config 目录、相关测试用例源码目录 test 文件、WebRoot等。

 WebRoot 为 Web 目录,包括程序初始化载入页面 main.jsp、案例上传目录uploadFile、用户头像上传目录 uploadPhoto、图片目录 images、 样式文件 css、相关 js 验证文件 js 文件夹、WEB-INF 文件夹目录。其中 css 文件夹中包含styles.css 样式文件; js 文件包含 jquery.validate.js、jquery1.42.min.js、myjs.js等 js 文件; WEB-INF 中包含存放项目必须的 jar 文件的 lib 文件夹、存放 jsp文件的 jsp 文件夹和 web.xml 文件等。

 Src 源码目录包含如下几个部分:

 com.xuebin.bs.domain:项目中所用到的实体类和 hibernate 操作相关的实体配置文件*.hbm.xml 等文件。主要有 Comment.java、Comment.hbm.xml、Navigate.java 、 Navigate.hbm.xml 、 User.java 、 User.hbm.xml 、 Work.java 、Work.hbm.xml、Work、Work。

 com.xuebin.bs.base:包含项目所需要的公共 Action 操作类 BaseAction.java、公共 Dao 操作接口 DaoSupport.java、公共 Dao 实现类 DaoSupportImpl.java 和公共 Service 接口 ServiceSupport.java。

 com.xuebin.bs.converter:主要存放项目的全局自定义转换器工具类。DateConverter.java xwork-conversion.properties:该文件是自定义转换器的配置文件。

 com.xuebin.bs.utils:该包中主要存放项目所使用到的公共工具类。主要有:DigestMD5Utils.java 密码进行 MD5 加密工具类、InitListener.java Tomcat 服务器启 动 时 的 初 始 化 数 据 监 听 工 具 类 、 案 例 相 关 评 论 处 理 工 具 类ListAllCommentUtils.java、分页工具类 Page.java、文件上传工具类 Upload。

 com.xuebin.bs.dao:提供数据库相关操作的接口方法。该包下的文件有以下

 接口文件:CommentDao.java、NavigateDao.java、UserDao.java、WorkDao.java、Work。

 com.xuebin.bs.dao.impl:提供数据库相关操作接口的实现类。该包下的文件有以下接口实现类文件:

 CommentDaoImpl.java、NavigateDaoImpl.java、UserDaoImpl.java、WorkDaoImpl.java、Work。

 com.xuebin.bs.service:定义项目服务层相关接口。主要包括以下文件:CommentService.java、NavigateService.java、UserService.java、WorkService.java、Work。

 com.xuebin.bs.service.impl:主要包含服务层相关接口的实现类。主要包含以 下 文 件 :

 CommentServiceImpl.java 、 NavigateServiceImpl.java 、UserServiceImpl.java、Work、WorkServiceImpl.java。

 config 源码文件夹中主要包含 struts2、hibernate、spring 等开源框架的配置文件。

 test 源码文件夹中主要包含相关测试代码。

 5.2 2. .3 3

 系统 界面设计

  系统总提页面采用 jsp、css、js 技术相结合来实现,其中 js 技术用来处理一些动态样式、页面的简单处理,实现导航菜单的联动显示,css 技术用来页面布局样式效果。

 根据需求分析,系统总体页面结构如下图 5. 3 所示:

 图 5.3

 总体页面结构图 说明:

 user、work、Navigate 等几个的修改和添加是同一页面。

 user、work、Navigate 等的列表在 loginback.jsp 页面中展示。

 5.2 2. .3 3

 系统页面效果如下图所示:

 个人信息效果页,如图:5.4 所示:

  图 5.4 个人信息效果页 用户列表效果页,如图 5.5 所示:

 图

 5.5 用户列表效果页 导航信息列表效果页,如图:5.6 所示:

 图

 5.6 导航信息列表页 案例信息列表效果页,如图 5.7 所示:

  图

 5.7 案例信息列表 搜索功能效果页,如图 5.8 所示:

 图

 5.8 搜索效果页 5.3 3

 重要模块实现细节

 5.3. 1 案例库管理模块设计

 ( (1)

 )

 业务流程设计 根据需求分析,案例库模块主要包含案例的相关操作功能,主要有案例查询、案例上传、案例修改、案例删除。其业务流程设计图如下图 5.9 所示:

  图 5.9 案例库模块业务流程图 ( (2)

 )

 案例库管理模块实现 本模块主要介绍案例库模块的具体实现。模型构造中抽象的模型名称和主要功能如下表 5.1 所示:

 表 5.1 模型设计表

 文件名 实现功能 Work.java 封装案例的相关信息 Work 分装案例的相关文件信息 User.java 封装与案例相关的用户的基本信息 Navigate.java 封装案例相关的分类信息 控制层的设计中主要使用的 struts2,相关 Action、处理方法和功能介绍如下表 5.2 所示:

 表 5.2 控制层设计表 Action 动作类名称 处理方法名称 实现功能

  WorksAction.java addWorks 添加案例并上传相关文件。

 editWork 修改案例和相关文件。

 findAll 查询所有案例。

 deleteWork 删除案例和相关文件。

 workMessage 查看案例信息 workMessageStudy 查看案例详细信息。

 服务层主要对模型进行一些业务逻辑处理,提供公共接口方法,实现代码低耦合和提高重复使用率。主要内容如下表 5.3 所示:

 表 5.3 服务层设计表 接口 实现类 方法 说明

  WorkService

  WorkServiceImpl findAllSearchAdmin 管理员搜索案例。

 findAllSearchUser 用户搜索案例。

 findAllPageAdmin 管理员搜索案例需要在当前页面显示的案例。

 getTotalCountAdmin 查询总的案例条目 findAllPageSearch 检索案例分页,当前页面要显示的数据。

 findAllRelated 查询与本案例相关的案例 findAllByUser 查询用户上传的所有案例。

 在删除案例的时候,系统先试用 js 提示用户是否要真的删除本条案例记录和相关文件,以防止用户错误删除。实现代码使用 onclick="return confirm("确认是否要案例删除?") "。如果用户确认要删除案例,则会调用 deleteWork 方法删除相应案例和案例相关的文件。

 数据层主要提供一些访问数据库的相关接口和实现类,方便用户操作过程中与数据库的交互。主要内容如下表 5.4 所示:

 表 5.4 数据...

推荐访问:毕业论文
上一篇:学校表彰大会讲话稿
下一篇:会发言致辞集锦2020

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有