资源描述
本科毕业设计(论文) 基于SSH框架的经贸学院信息系统的设计与开发 学 院 管理学院 专 业 信息管理与信息系统 年级班别 2008级(2)班 学 号 3108006259 学生姓名 凌 志 强 指导教师 聂 小 东 2012 年 6 月摘要广东工业大学经济与贸易学院于2009年与管理学院分拆成为一个新的学院,急需一个属于自己学院的官方网站用于协助学院的日常事务管理。然而此前的学院信息系统开发采用的技术相对落后,而且存在相对多的漏洞,在此背景之下,我们进行了针对符合经济与贸易学院实际情况的管理信息系统的研究与开发。本信息系统通过采用面向对象UML分析技术,分别进行了业务建模、需求分析和系统分析,明确了系统设计的内容。在系统设计开发部分,本系统采用了基于B/S设计模式的MVC设计模式,并通过运用当前比较流行和适用的SSH框架技术实现了系统的诸多功能,例如新闻发布、科研信息发布、文件共享等功能。另外本系统还采用了页面静态化技术,加快了网页的打开速度,提高了用户体验。关键词:经济与贸易学院;管理信息系统;面向对象UML分析;SSH框架注:本论文题目来源于教师的校级科研项目AbstractGuangdong University of Economics and Trade Institute School of Management in 2009 and split into a new college, the need for a belonging to their own official website of the Institute used to assist in the daily affairs of the School of Management. However, previous college information system development using the technology is relatively backward, but there is relatively more vulnerability, in this context, we carried out the research and development of the management information system for the actual situation of the School of Economy and Trade.The information systems through the use of object-oriented UML analysis, business modeling, requirements analysis and systems analysis, clear the contents of the system design. In the system design and development part of the system based on B / S design pattern MVC design pattern, and many of the features of the system through the use of the technology of the more popular and applicable SSH framework, such as press releases, research information, the file-sharing and other functions. In addition the system also uses the page static technology to speed up the pages open faster, and improve the user experience.Key words: School of Economics and Trade; management information system; object-oriented UML analysis; SSH framework目录1绪论11.1选题背景11.2我国高校信息系统建设现状11.3选题意义11.4可行性分析21.4.1经济可行性分析21.4.2技术可行性21.4.3社会可行性22需求分析22.1系统描述32.1.1基本数据维护功能需求32.1.2基本业务功能需求52.2系统目标92.3系统范围和系统边界92.4参与者102.5系统用例102.6细化用例132.7系统用例场景163系统分析213.1分析对象213.1.1系统基本用例实现223.1.2系统业务用例实现253.2分析模型384系统设计444.1系统平台说明444.1.1编程语言选择分析454.1.2系统开发模式说明454.1.3系统架构设计464.2数据库设计484.3搭建系统开发环境544.3.1系统开发软件及框架的版本544.3.2系统配置544.3.3添加SSH框架支持584.4代码设计614.4.1实现持久化对象层614.4.2实现数据访问层634.4.3实现业务逻辑层644.4.4实现Web表现层644.4.4 struts2和Spring的配置655系统测试66结论80参考文献81致谢82801绪论1.1选题背景进入21世纪以来,互联网在中国迅猛发展,整个中华大地各行各业都掀起了一股信息化建设的浪潮,各种门户网站,企业网站纷纷建立。同时,作为信息化人才的培养基地,各高校也相继建立起自己的学校和院系信息系统。如今各种高校的管理信息系统在高校中扮演者各种各样的角色,有的是图书管理系统协助图书管理、有的是排课系统协助教学工作提供工作效率、有的是科研项目管理系统协助高校的项目管理等等。信息系统的建立提高了高校的管理效率,强化教学质量、促进科研教研、提升服务水平、教学资源管理、科研管理、后勤与服务管理的全面整合,实现信息化增值服务。总之高校信息管理系统已经成为高等教育办学中必不可少的一部分,是信息经济条件下高等院校发展的大势所趋,也是我过高校向世界一流大学迈进的必有之路。1.2我国高校信息系统建设现状我国高校信息系统建设近年来取得了巨大的成就,绝大部分的院校都拥有自己的管理信息系统,但是我国的高校信息系统建设存在部分管理信息系统信息更新慢、信息系统所应用的技术落后跟不上互联网发展的需求、网页打开速度慢、容易出现网页崩溃等问题。这样问题严重影响到了学校院系的对外形象,也严重影响到了高校的管理效率,阻碍了我国高校的信息化建设。1.3选题意义目前我校信息化建设发展良好,拥有众多的信息管理系统,为我校的教学质量的提高和管理效率的提高都做出了重要的贡献。2009对于经济系和国际贸易系从管理学院分离出来成立了经济与贸易学院,在社会信息化的时代大背景之下,新生的经济与贸易学院急迫需要一个属于自己的学院信息管理系统以协助学院的日常工作管理。然而此前经贸学院的学院网站信息管理系统存在加载速度慢、页面不美观、功能不完善等缺点。所以我们很有必要采用新的技术开发出一个适应现在互联网发展需求和符合经贸学院需求的信息管理系统。该信息系统除了协助学院的日常管理工作外还会作为一个学院主页向外界展示经贸学院的风采,让更多的师生、家长都可以了解到经贸学院,为经贸学院的信息化建设作出应有的贡献。因此,本信息系统的建立具有积极的重要意义。1.4可行性分析我们主要是从以下三个方面进行该信息系统的可行性分析:1.4.1经济可行性分析 本信息系统的研究与开发主要的成本来自于时间成本,经济成本几乎是很小的。完成改系统的开发需要的硬件环境是:一个办公地点、4台电脑、桌子椅子各4套、网线路由等。而我们所使用的开发软件版本都是免费的,不存在较大费用问题。所以说本信息系统的开发在学校的支持下在经济条件方面是可行的。1.4.2技术可行性 根据我们项目小组的学习经验来说,开发完成本信息系统需要应用到SSH的框架技术,而根据我们小组成员的学习经验,尽管我们之前没有相关项目的开发经验,但是从技术的角度来看并不存在技术上解决不了的问题。通过不断地学习和实践,我们有足够的信心可以完成该信息系统的开发。所以,从技术可行性的角度来看,我们完成该信息系统实现业务目标是可行的。1.4.3社会可行性目前绝大部分的高校院系都拥有自己的管理信息系统,在教育信息化的背景下,缺少信息管理系统的工作效率是低下的,而且作为一个本科院校的学院,如果连一个院系的网站都没有,这样不单与自身身份不匹配,而且有损学校院系的声誉。从社会的角度来看,一个学院的网站就是其对外的形象的体现,学生、家长和各种社会人士都可以通过学院网站来了解一个学院的概括。因此,从社会的角度来看,建立经贸学院网站信息系统不单从学院自身管理角度来说是必要的,而且从社会公众的角度来说是一种社会公众所潜在的需求。所以说从社会可行性来说,建立该信息系统也是可行的。2需求分析 分析的一般步骤是先建立业务用例模型,然后根据业务用例模型在精化成概念用例模型,接下来才到需求分析。毋庸置疑,业务用例模型是很重要的,但是业务用例模型是针对商业组织建模的,并非所有的系统都需要从业务用例建模开始。由于本系统的系统需求并不是很复杂,只是属于一个小型的管理信息系统,不涉及复杂的业务,系统需求比较明确,因此本系统的开发将直接由需求分析开始。2.1系统描述通过参考个方面的资料和小组的讨论,我们认为本系统应该满足用户基本信息的管理、用户权限管理、公告新闻的发布管理、科研相关信息管理、消息留言管理、资源下载管理等需求,另外为了提高网页的打开速度,系统还应该包括对前台页面进行页面静态化处理的功能。其中用户基本信息的管理包括学生信息管理、班级信息管理、专业信息管理、教师信息管理;用户权限管理包括功能设置、角色设置、密码找回;公告新闻发布管理包括通知公告管理、学院新闻管理;消息留言管理包括消息管理、留言管理。本信息系统计划由4个人组成的小组完成,在小组内我们做了细致化的分工,本人主要负责的是与科研相关信息管理模块,下面简称为信息管理模块。该模块包括的主要功能有学院科研信息管理、科研动态管理、科研论文管理、科研著作管理、科研获奖信息的管理、横向项目管理、纵向项目管理。在下面的分析中,本文将主要围绕科研相关信息管理模块来进行的。2.1.1基本数据维护功能需求 各个模块的基本数据维护功能包括数据的增加、修改、查询和删除。1、 增加数据,如图2.1所示。增加数据要求系统必须要记录改动作的操作者以便以后的信息分类。输入数据保存到数据库显示输入数据后结果 图2.1增加数据示意图2.修改数据,如图2.2所示。修改数据必须要经过相关的验证,通过验证后才能进行数据的修改。 选择要修改的数据是否可修改修改数据否查看数据详细是 图2.2修改数据示意图3、查询数据,如图2.3所示。查询数据要求可以实现按条件精确查找和模糊查找两种查询方式。输入需要查询的条件根据查询条件到数据库查询相关数据显示相关数据列表选择精确查询或模糊查询 图2.3查询数据示意图4、删除数据,如图2.4所示。删除数据必须要经过相关的验证,通过验证后才能进行数据的删除。 选择要删除的数据是否可删除删除数据否查看数据详细是确定删除 图2.4删除数据示意图2.1.2基本业务功能需求 无论系统业务功能是什么,怎么变化,其功能的实现都离不开数据的增删改查基本功能。但是因为增加是实际的业务,情况可能会变得复杂,每一个管理功能都不会是通过单一的数据增删改查即能实现,下面我们对信息管理功能模块进行详细的系统业务分析。 信息管理功能模块包括科研信息管理模块、科研动态管理模块、科研论文管理模块、科研著作管理模块、科研获奖管理模块、横向项目管理模块、纵向项目管理模块共7个模块。每个模块包括的子模块包括发布信息、查看已发布信息、审核已发布信息、查看最新发布信息。每个管理模块功能结构图如图2.5所示。信息管理发布信息查看已发布信息审核发布信息查看最新发布信息 图2.5管理模块功能结构图1、 发布信息每个管理模块下发布信息的内容不一样但是原理和业务是一样的,如图2.6所示。 发布信息保存到数据库显示已发布信息列表 图2.6发布信息示意图 前置条件:用户已登陆系统管理后台并且该拥有发布信息权限。 信息的发布包括以下7方面信息的发布:(1) 科研论文的发布。发布内容包括:论文题目、第一作者、第二作者、第三作者、发表刊物名称、卷号、期号、页码范围、文献标识码、出版年月、地方刊号、Intergral、CN号、ISBN号、ISSN号、EI、SCI、ISTP、统计源、学科门类、是否是核心期刊、全文转载、国外发行、外刊、论文集市国外还是国内的、课题资助来源、作者归属和附件。(2) 科研信息的发布。发布内容包括:发布单位、发布时间、信息标题、信息内容、附件。要求该功能可以实现科研信息的编辑和发布,且信息标题和内容不能为空。(3) 科研动态的发布。发布内容包括:发布单位、发布时间、信息标题、信息内容、附件。要求该功能可以实现科研动态的编辑和发布,且信息标题和内容不能为空。(4) 科研著作的发布。发布内容包括:著作第一作者、著作名称、出版时间、出版社、ISBN号和附件。(5) 科研获奖信息的发布。发布内容包括:获奖者、项目名称、授予单位、获奖等级、项目类型、出版时间和附件。(6) 横向项目的发布。发布内容包括:项目编号、项目名称、合作单位、负责人、项目时间、合作单位、项目资金、来款情况、发布时间、备注信息和附件。(7) 纵向项目的发布。发布内容包括:项目编号、项目名称、项目时间、项目来源、项目等级、负责人、项目资金、来款情况、发布时间、备注信息和附件。2、 查看已发布信息当信息发布之后,我们可能会遇到需要修改删除信息的情况,因此要求系统提供一个查看自己发布的信息的模块,通过该模块可以实现对自己发布的信息的详情查看和改删除。查看已发布信息模块只有发布人才可以进入,其他人一概没有权限进入。在该管理模块中,每个管理模块的查看已发布信息模块大致相同,如图2.7所示: 输入需要查询的条件根据查询条件到数据库查询相关信息显示相关信息列表是否已审核查看、修改、删除信息否查看信息详细是 图2.7查看已发布信息示意图前置条件:用户已登陆系统管理后台进入查看已发布信息模块。3、 审核发布信息审核发布信息,如图2.8所示。信息发布之后不能立刻对外公布,必须要经过管理员的审核。信息的审核状态有4种,分别是院内、院外、不通过、未审核。选择待审核信息进行审核显示审核结果 图2.8审核发布信息示意图前置条件:用户进入审核发布信息模块。4、 查看最新发布信息最新发布是已经经过了审核的信息,如图2.9所示:进入查看最新信息模块查看信息详情显示详情结果图2.9查看最新科研论文示意图前置条件:用户已登录系统管理后台。5、 上传附件我们在发布某些信息时,往往需要附带发布信息的附件,例如发布一条申报某科研项目的通知,那么就有存在要同时发布申报表的需求。因此要求系统有上传附件的功能。在发布科研论文时用户可以选择是否上传附件附件可以添加多个,附件可选的格式包括doc、docx、xls、xlsx、ppt、pptx、pdf、exe、bin、zip、htm、html、gif、bmp、jpeg、mpeg。上传附件示意图如图2.10所示:上传附件保存到数据库显示上传结果 图2.10上传附件示意图前置条件:用户登录到发布信息页面。6、 下载附件下载附件如图2.11所示。进入信息详情页下载附件下载成功 图2.11附件下载示意图前置条件:用户进入到信息详情页面。7、 信息批量导入如果存在大量的信息需要发布,我们不能一条一条地发布,这样的效率很低,因此要求系统必须具备信息批量导入的功能,但信息批量导入要求导入文件符合系统提供的导入模板。如图2.12所示:进入发布信息页面选择批量导入信息下载样板文件上传批量信息文件显示上传结果页面 图2.12科研信息批量导入前置条件:用户登陆系统管理后台。8、 信息批量导出信息的批量导出如图2.13所示:进入对应论文列表选择批量导出确定导出 图2.13信息批量导出示意图前置条件:用户登录系统管理后台。2.2系统目标1、为各种科研相关信息的管理提供一个操作平台,提高工作效率和管理效能。2、提供一个友好的信息展示平台,方便信息的快速公布,同时方便读者快速查阅相关信息。2.3系统范围和系统边界由上述系统描述我们可以知道科研相关信息管理的系统范围包括科研信息发布管理、科研动态管理、科研论文管理、科研著作管理、科研获奖管理、横向项目管理、纵向项目管理,系统边界就上面各个模块的边界,参与者处在系统系统边界之外,不属于系统方位之内。他们关系如下图所示: 图2.14系统边界2.4参与者由系统描述可以知道系统的参与者有游客、用户和管理员。1、游客:游客可以通过登录该系统的前台网站查看展示出来的相关信息,同时拥有下载附件的权限。2、用户:用户的权限由管理员根据实际情况任意授予,在本系统中根据经贸学院的实际情况,用户包括的参与者有:院长、党委书记、副院长、党委副书记、老师等。因为用户的具体权限要根据实际情况而定,现阶段是不确定的,为了分析方便,所以后面的分析中对院长、党委书记、副院长、党委副书记、老师等参与者统一以用户统称并且假设在信息管理模块中用户不拥有信息的审核权限。3、管理员:管理员拥有所有系统权限。2.5系统用例在大型复杂的系统中,系统用例都是来源于业务用例,但是由于本系统的业务并不复杂,如果进行业务用例分析的话只能是将简单问题复杂话,因此我们直接由系统描述去分析出系统用例。信息管理模块具有7个子模块,每个子模块的功能需求如下:1、科研信息管理模块科研信息管理模块包括科研信息的编辑发布、查看已发布科研信息,审核已发布科研信息、查看最新发布科研信息、附件的上传和下载。2、科研动态管理模块科研动态管理模块包括科研动态的编辑发布、查看已发布科研动态,审核已发布科研动态、查看最新发布科研动态、附件的上传和下载。3、科研论文管理模块科研论文管理模块包括科研论文发布、查看已发布科研论文,审核已发布科研论文、查看最新发布科研论文、附件的上传和下载、科研论文的批量导出和导入。4、科研著作管理模块科研著作管理模块包括科研著作发布、查看已发布科研著作,审核已发布科研著作、查看最新发布科研著作、附件的上传和下载、科研著作的批量导出和导入。5、科研获奖管理模块科研获奖管理模块包括科研获奖发布、查看已发布科研获奖,审核已发布科研获奖、查看最新发布科研获奖、附件的上传和下载。6、横向项目管理模块横向项目管理模块包括横向项目发布、查看已发布横向项目,审核已发布横向项目、查看最新发布横向项目、附件的上传和下载、横向项目的批量导出和导入。7、纵向项目管理模块纵向项目管理模块包括纵向项目发布、查看已发布纵向项目,审核已发布纵向项目、查看最新发布纵向项目、附件的上传和下载、纵向项目的批量导出和导入。从上面的分析可以找到,每个子模块的系统用例很类似,因此我们只需要从中选出科研信息管理和科研论文管理两个具有代表性的子模块来进行系统用例详细分析,其他具有类似系统用例的子模块只要参考这两个子模块就可以了。其系统用例关系图如图2.15和图2.16所示: 图2.15科研信息管理子模块系统用例图图2.16科研论文管理子模块系统用例图2.6细化用例根据实际业务,分别对子模块下的系统用例进行细化分析,具体如下。1、科研信息管理模块。该模块下面有4个用例,每个用例的细分用例如下图所示: 图2.17发布科研信息细化系统用例图 图2.18查看已发布科研信息细化系统用例图 图2.19审核已发布科研信息细化系统用例图 图2.20查看最新科研信息细化系统用例图2、科研信息管理模块。该模块下面有4个用例,每个用例的细分用例如图: 图2.21发布科研论文细化系统用例图 图2.22查看已发布科研论文细化系统用例图 图2.23审核已发布科研论文细化系统用例图 图2.24查看最新科研论文细化系统用例图 在修改信息的子用例中还包括了附件管理的子用例,包括附件的修改、删除、下载,下面以修改科研论文为例说明,如图2.25所示: 图2.25修改科研论文细化系统用例图2.7系统用例场景系统用例场景与业务用例场景一样,都是描述用例的执行过程;不同的是,业务用例场景单单描述现实业务,而系统用例场景则是描述现实业务在结合新系统后如何执行的过程,系统的参与者如何使用这些系统用例来完成业务目标。绘制系统用例场景同样可以使用活动图、顺序图、协助图等交互图来描述。本项目为了更好地描述系统参与者使用系统用例的执行过程,明确各参与者的职责,因此使用活动图来绘制系统用例场景,描述系统用例实现的执行过程。下面通过绘制活动图,从而完整地展示系统用例场景。 1、科研信息管理用例场景 (1)用户登录管理信息系统,编辑科研信息,有必要时可选择添加附件,然后提交信息。 (2)显示已发布科研信息列表,科研信息未经过审核前用户可以修改、删除科研信息。另外还可以查看科研信息详细、查询科研信息。 (3)管理员审核新发布的科研信息,进行审批,审核的状态有4钟,分别是未审核、不通过、院内、院外,审核完成后显示最新审核信息列表。管理员可以查看科研信息详细,另外还可以查询、修改、删除科研信息。 (4)游客通过经贸学院网站查看最新科研信息。用户和管理员还可以在网站管理后台的查看最新科研信息子模块查看最新科研信息。所有参与者都可以下载附件。 图2.26是某特定情况下科研信息管理的系统用例场景: 图2.26某特定情况下科研信息管理的系统用例场景2、科研论文管理用例场景 (1)用户登录管理信息系统,填写科研论文信息,有必要时可选择添加附件,然后提交信息。此外用户还可以通过批量导入科研论文。 (2)显示已发布科研论文列表,科研论文未经过审核前用户可以修改、删除科研论文。另外还可以查看科研论文详细、查询科研论文、批量导出科研论文。 (3)管理员审核新发布的科研论文,进行审批,审核的状态有4钟,分别是未审核、不通过、院内、院外,审核完成后显示最新审核信息列表。管理员可以查看科研论文详细,另外还可以查询、修改、删除科研论文和批量导出科研论文。 (4)游客通过经贸学院网站查看最新科研论文。用户和管理员还可以在网站管理后台的查看最新科研信息子模块查看最新科研论文。所有参与者都可以下载附件。 图2.27是某特定情况下科研论文管理的用例系统场景:图2.27某特定情况下科研论文管理的系统用例场景3系统分析统一过程把分析与设计合并为一个核心工作流,即当成一个阶段来看。其实,分析设计阶段,也就是我们通常所说的概要设计与详细设计。本项目将系统分析与设计分为两个阶段,旨在表示在系统分析阶段与设计阶段的不同,分析阶段是通过分析类,建立分析模型,描述系统如何使用对象来实现系统需求。同时,分析阶段未涉及实现语言与方式,抽象层次较高。因此,用分析阶段作为需求到设计的过渡,来保持与系统需求一致。3.1分析对象既然我们采用的是面向对象的方法,那么,自然就要通过对象之间的交互来描述需求的实现。因此,我们从分析系统的对象开始,进入系统分析阶段。在UML的分析模型,使用的MVC模式,使用边界对象、控制对象、实体对象,这个三者来建立用例场景的对象模型。因此,回顾以上分析,仔细分析系统用例场景中的活动,以此发现和定义各个用例的对象,并得知对象如何交互来实现用例的。本项目使用时序图来描述用例的对象交互。3.1.1系统基本用例实现系统的基本用例实现包括系统的登陆、信息的发布、删除、修改、查询。由于每个用例的实现前提都是要求用户已经登录系统,因此可以把登录功能模块单独出来,在以后的时序图中距不必要每次的画出登陆部分。在系统基本用例实现中我们以管理员为参与者,以科研论文的删除修改为,通过时序图来描述对象交互。1、系统登录,如图3.1所示: 图3.1管理员登陆系统用例实现图2、信息的修改和删除。信息的修改和删除包括各个科研信息、科研动态、科研论文和附件等的信息的修改和删除。由于每个模块的信息的修改和删除的实现方法原理都一样,因此这里以科研论文的修改和删除为例进行用例实现说明,如图3.2和3.4所示: 图3.2修改科研信息用例实现 图3.3修改科研论文分析类 图3.4科研论文删除用例实现 图3.5科研论文删除分析类3.1.2系统业务用例实现根据上述的系统描述和系统用例分析,我们可以知道系统的7个子模块拥有相似或相近的系统功能,因此我们没有必要7个模块一个一个地去进行系统用例实现的分析,我们以科研论文管理子模块为代表进行分析即可。1、发布科研论文用例实现,如图3.6所示: 图3.6发布科研论文用例实现其对应的分析类图如图3.7所示: 图3.7发布科研论文分析类2、查看已发布科研论文。这部分只有发布人有权限进入,如图3.8所示: 图3.8查看已发布科研论文用例实现其对应的分析类图如图3.9所示:图3.9查看已发布科研论文分析类图3、审核科研论文用例实现,如图3.10所示: 图3.10 审核科研论文用例实现图其对应的分析类图如图3.11所示: 图3.11 审核科研论文分析类4、查看最新科研论文。该部分主要展示已被审核的科研论文。其用例实现图如图3.12所示: 图3.12 查看最新科研论文用例实现图其对应的分析类图如图3.13所示: 图3.13查看最新科研论文分析类图5、附件上传。在发布科研论文的时候用户可以选择是否上传附件。附件上传的用例实现如图3.14所示: 3.14 附件上传用例实现其对应的附件上传分析类图如图3.15所示: 图3.15附件上传分析类6、附件下载。附件下载的用例实现如图3.16所示: 图3.16 附件下载用例实现附件下载对应的分析类如图3.17所示: 图3.17附件下载分析类图7、科研论文批量导入。科研论文批量导入要求导入文件符合系统要求的格式,科研论文批量导入用例实现图如图3.18所示: 图3.18 科研论文批量导入科研论文批量导入的分析类图如图3.19所示: 图3.19科研论文批量导入8、科研论文批量导出。科研论文批量导出用例实现如图3.20所示: 图3.20科研论文批量导出科研论文批量导出的分析类图如图3.21所示: 图3.21 科研论文批量导出3.2分析模型在项目过程中,我们可以通过分析模型对需求进行分析,得到系统视角的理解。在本节中将从WEB、BussinessControl、Entity这3个层次剖析分析类所在的层次,从而建立起分析模型。分析模型完成后我们将得到一个非常接近于设计类的模型,距离编码所使用的实现类仅一步之遥,可以真正进入系统设计阶段了。在本系统开发中,我们将使用SSH框架来实现系统,SSH是一个MVC模式的实现,由Page、Action和ActionFrom三个单元构成。1、发布科研论文的分析模型,具体的分析如下:(1)发布科研论文Web层分析模型 图3.22发布科研论文WEB层分析模型实、对应的分析类图如3.23所示: 图3.23发布科研论文WEB层分析类图(2)发布科研论文BusinessControl层分析模型图3.23仅仅是发布科研论文用例在WEB层的实现,接下来,我们还要在BusinessControl层实现它。从图3.22中我们可以看出,发布科研用例想BusinessControl层的发布科研论文Control类发出了三条消息,这三条消息在BusinessControl层的实现结果如图3.24所示。 图3.24 发布科研论文BusinessControl层实现相对应的,在BusinessControl层上,发布可以论文用例被实现如图3.25所示结构。 图3.25 发布科研论文BusinessControl层分析类图(3)发布科研论文Entity层分析模型同样道理,在Entity层应用相应的框架绘制出的发布科研论文实现如图3.26所示。 图3.26 发布科研论文Entity层分析类图相对应的在Entity层上,发布科研论文用例被实现为如图3.27所示。 图3.27 发布科研论文Entity层分析类图综合上述,我们可以得到发布科研论文用例最终分析模型,如图3.28所示 图3.28 发布科研论文用例最终分析模型 4系统设计通过上面的系统分析,我们已经明确了系统的需求,下面我们将进入系统设计阶段,分别从平台说明、搭建系统框架、代码设计三方面进行。4.1系统平台说明 在进入代码设计之前,我们必须要明确系统开发所用的平台。目前,系统开发平台有两种模式,一是C/S模式,另一个是B/S模式。C/S模式是指客户机/服务器模式,其优点是能充分利用分散的PC的处理能力,减轻服务器端的负担同时还可以提到客户端的响应速度;其缺点是必须在客户端安装客户端软件。B/S模式是指浏览器/服务器模式,其优点是不需有在客户端安装任何附加软件,只需要通过浏览器就可以登录系统,减去安装客户端软件的麻烦,但其缺点是会增加服务器端的负担,影响系统的响应速度。通过前面的系统分析,我们已经可以知道,经贸学院网站面向的用户群体有限,同时在线用户比较少,服务器端并不会因为访问量过大而造成数据堵塞,因此很明显,经贸学院网站是开发应该选择B/S模式。4.1.1编程语言选择分析确定系统平台模式之后,我们就要选择系统开发的平台。目前有.NET , JAVA ,c+ ,PHP四大主流软件开发技术平台,四种平台各有优点和缺点,不能说哪个平台是最好的。但是对于某一个具体的项目来说,选择符合项目本身特点的实现平台却是至关重要的。 首先来分析.NET。.NET是不能跨平台的,必须是基于在windwos的framework环境的,在本项目中必须要求系统可以跨平台的,因此.NET不适用本项目的系统开发,宣告退出。PHP和java一样是可以实现跨平台应用的,PHP的特点是灵活,开发速度快,可以不受限制地获得源码,这种开源的模式使得PHP具有强大的生命力。但是前辈们用自己的开发经验告诉我们,PHP并不适合大型项目的开发,比较适合中小型系统的开发。相比之下,java则是一个成熟的开发平台,拥有众多快速开发中大型项目的经典开发模式和框架。在本项目中,该系统虽然不是一个很大型的系统,但是却对代码的复用性要求比较高,因此我们选择我们自己比较熟悉的java,希望能应用我们自己所学的知识大展拳脚。 C+和java一样同是面向对象的语言,都适用于大型项目的开发,但是C+比较适用于C/S模式的开发,而java比较适用于B/S模式的开发。通过前面的分析,我们已经知道本项目要求采用B/S模式,所以C+很自然地被排除了。综上所述,我们最终选择了java开发平台。4.1.2系统开发模式说明 在java平台下,综合上面系统分析,我们可以通过采用MVC经典模式来进行该系统的开发,MVC模式就是为面向对象语言而生的。MVC是Model-View-Controller的缩写,中文翻译为模型-视图-控制器。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。MVC是一个复杂的架构,其实现也显得非常复杂。MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能jsp界面。模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。MVC的主要优点如下:1、多个视图可以对应一个模型。这样有利于代码的重用。如果模型发生改变,也容易升级和维护。2、由于模型和视图有Controler进行控制,并且模型和视图是分离的,因此,可以通过模型为视图提供不同的数据,如各种类型的数据库、XML、Excel等。3、由于控制器负责访问视图和模型,因此,可以在控制器中加入权限验证来限制用户对敏感资源的访问。4、在MVC模式中,3个层次是分离的,降低了各个层次之前的耦合性,这样有利于对系统的隔层进行拓展。4.1.3系统架构设计 目前,基于MVC模式的框架非常多,在本系统的开发中我们采用了一个轻量级的Java EE技术的应用Struts2+Hibernate+Spring,下面我们简称其为SSH框架。 SSH框架中每个框架的特点如下。Strus2框架是Strus1.x的升价版本,继承了Webwork框架的优良设计,提供了更为强大的功能。Strus2另外还提供了强大的标签库,例如taglib标签库,使用标签库可以避免jsp页面编写大量业务逻辑,是开发人员节省了宝贵的时间。如果只有jsp语言编写jsp页面,代码的工作量是很大的,很多功能用jsp语言需要写很长的代码的,而用strus2的标签却只需引用简单的标签即可达到相同的效果,笔者曾经进行过SSH框架的学习对此也是深有感触。Spring框架博大精深,是集框架之大成者,其具有IoC解耦合和AOP面向方向编程的特点,在实际项目中更多地作为其他框架的“粘合剂”作用。对其他现有框架的集成是Spring的强大之处,这些子框架之间彼此独立,当使用每个框架方案代替现有方案是,不会影响到系统其他框架的实现部分,极大降低了系统开发和维护工作量。在SSH框架中,Spring就肩负着整合Struts2和Hibernate的作用。Hibernate框架是目前最流行的ORM(对象-关系映射)框架,Hibernate框架将JDBC进行了轻量级的对象封装,实现了数据的持久化,开发人员可以方便的运用面向对象编程的思想来控制数据库。在SSH框架中,表现层、业务逻辑层和数据服务层3个层次泾渭分明,也就是说,表现层只和业务逻辑层打交道,而业务逻辑层通过数据服务层来操作数据库。表现层并不直接访问数据服务层。采用SSH框架后,本系统可以细分为以下几个层次。1、Web层:该层主要包括JSP页面、MVC中的“C”(Controler)。其中“C”就是Struts2中的Action类。在Action类中主要负责调用业务逻辑层的组件,并返回相应的结果(result)。2、业务逻辑层(Service层):该层有若干接口和类组成。在本系统业务逻辑层的接口命名原则是使用后缀Service,例如,CommonService表示处理系统基础业务逻辑的接口。实现接口类的命名原则是在接口名后面加上Impl,如CommonServiceImpl表示实现CommonService接口的类。该层的接口和类需要在Spring中进行配置。3、数据访问层(DAO层):该层和业务逻辑层类似,也是由若干接口和类组成。4、持久对象层(PO层):该层有若干实现类组成,这些需要在映射文件中配置,可以在数据访问层的实现类中通过Hibernate框架来访问时就层对象。从上面的描述可以看出,使用SSH框架可以实现持久化对象层、数据访问层、业务逻辑层和Controler,可以将这4部分成为中间层。如图4.1是本系统的基本层次结构。JSP页面中间层数据库 图4.1 系统的基本层次结构其中“中间层”中的各组件调用关系如图4.2所示。Action类业务逻辑层组件数据访问层组件持久化对象层(实体Bean) 图 4.2“中间层”各组件的调用关系 4.2数据库设计本系统一共包括33张数据库表,为了保持论文的简洁性,这里只对我负责的11张表进行性展示,如下所示。表4.1 info(信息发布)序号字段名字段类型字段长度主键外键空值备注1infoIdinteger是否自增2infoTitlevarchar 50否信息标题3infoSendervarchar50发布单位4infoTimedatetime发布时间5infoContext text否信息内容6infoReadtimesinteger否阅读次数,默认为07infoEditerinteger是与老师表的teacherId对应,发布者8auditingchar1审核状态,默认为0(0=未审核,1=院内公开,2=对外公开,3=审核不通过)9infoAssessorinteger是空审核员,与老师表对应teacherId10assessorInfovarchar100空审核信息11infoTypevarchar1否信息类型,(1=通知公告,2=滚动新闻,3=科研信息,4=科研动态,5=招生就业表2 信息附件(infoFiles)序号字段名字段类型字段长度主键外键空值备注1infoFilesIdinteger是自增2infoIdinteger是否与信息发布对应infoId3fileNamevarchar100否下载的文件名4fileUrlvarchar1000唯一档路径5fileContextvarchar500备注表3 横向项目(horizontal)序号字段名字段类型字段长度主键外键空值备注1horIdinteger是否2horNumvarchar7否项目号3horTitlevarchar50否项目名称4horCopartnervarchar500合作单位(项目委托单位)5horPrincipalvarchar50否负责人6horAccountinteger否项目资金(合同金额)7horRecinteger来款情况(到校金额)8horTimedatetime项目时间9horContextvarchar500备注10editerinteger4是与老师表的teacherId对应11auditingchar1审核状态,默认为0(0=未审核,1=院内公开,2=对外公开,3=审核不通过)12assessorinteger是审核员,与老师表对应teacherId13assessorInfovarchar100空审核信息14editedTimedatetime发布时间表4 纵向项目(vertical)序号字段名字段类型字段长度主键外键空值备注1verIdinteger是否2verNumvarchar7否项目号3verTitlevarchar50否项目名称4verCopartnervarchar500项目来源(委托单位)5verPrincipalvarchar50否负责人6verAccountinteger否项目资金(项目金额/万)7verRecinteger来款情况(到校金额/万)8verSortvarchar8排序方式【国家级 省级 市/厅级】9verTimedatetime项目日期,只写年份10verContextvarchar500备注11editerinteger4是与老师表的teacherId对应12auditingchar1审核状态,默认为0(0=未审核,1=院内公开,2=对外公开,3=审核不通过)13assessorinteger是审核员,与老师表对应teacherId14assessorInfovarchar100空审核信息15editedTimedatetime发布时间表5 科研获奖(prize)序号字段名字段类型字段长度主键外键空值备注1prizeIdinteger
展开阅读全文