毕业设计论文.docx
《毕业设计论文.docx》由会员分享,可在线阅读,更多相关《毕业设计论文.docx(36页珍藏版)》请在冰豆网上搜索。
毕业设计论文
摘要
创业是最积极的就业,它不仅能解决劳动者的就业问题,还能通过带动更多就业产生倍增效应,但是,经过调查发现,目前大多创业类型的网站仅提供一些创业政策、成功案例等信息,没有提供一个具体的创业途径给想要进行创业的人,创业从何做起是困扰当代大学生的一个问题。
本课题运用三个轻量级开源框架Struts、Hibernate和Spring,结合开源数据库MySQL,开发了一个创业辅助系统,给想要创业的大学生提供一个创业平台,结合领域专家的指导完成一个创业的过程。
本平台结合了当前社会形势,具有一定的创新性和实用性。
本文首先对系统设计的必要性进行了分析,然后,对系统开发所需要的背景知识和所涉及的技术进行了简单介绍,接着,在需求清晰与技术成熟的情况下对系统模块进行详细设计。
本文清晰的展示了开发MIS系统需经历的需求分析、系统设计和系统实现三个基本步骤,这不仅为设计开发人员提供了详细的设计思路与方法,也为参与后续开发的人员提供了重要资料。
最后总结系统的特点、优点以及仍存在的不足,并对未来的发展和前景做了展望。
关键字:
创业、系统设计、指导
作者张春峰
指导老师周小科
Abstract
Entrepreneurshipisthemostactiveemployment,itcannotonlysolvetheemploymentproblems,butalsobringmorejobs.However,afteraninvestigation,Ifoundthatmostwebsitesnowofferonlybusinesspolicies,successstoriesandotherinformation,theydon’tprovideaspecificapproachtobusinesspeoplewhowanttostart.Howtostartacareerisaproblemtocollegestudents.Thissystemusethreelightweightopen-sourceframeworksStruts,HibernateandSpring,combinedwithopen-sourcedatabaseMySQL,developedabusinesssupportsystemforthestudentsthattheycanfinishabusinessprocessonitwiththehelpofexperts.Theplatformcombinesthecurrentsocialsituation,soitisinnovativeandpractical.
Firstly,thethesisanalysestheimportanceoftheplatform.Secondly,thethesisintroducesthetechnologyandthebackgroundknowledgeinvolved.Thisarticlecontainsanoverviewoftechnicalbackground,needsanalysis,systemdesign,systemimplementation,concludingremarksandothercomponents.Andthenthethesishasalsoprovidedtheimportantmaterialfortheparticipationfollowingdevelopmentandtheexpansion.
Atlast,thethesissummarizesthesystemfeatures,advantages,deficienciesandprospectinthefuture
Keywords:
Entrepreneurship,SystemDesign,Guide
WrittenbyZhangChunfeng
SupervisedbyZhouXiaoke
前言
如今,J2EE平台已经日趋成熟,并得到广泛应用。
在J2EE技术中发展最为迅速的当属JSP技术,几乎所有的基于Java的Web应用都使用JSP。
一些免费、开放代码的JSP/Servlet容器,如Apache软件组织提供的Tomcat,更进一步推动了JSP技术的发展。
Struts是Apache软件组织提供的一项开放源代码项目,它为JavaWeb应用提供了模型-视图-控制器(MVC)框架,尤其适用于开发大型可扩展的Web应用。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Spring是一个开源框架,它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情,任何Java应用都可以从Spring中受益。
全文主要包含六章,第一章为概述,主要对本系统进行了简单描述;第二章为技术背景,简要介绍了系统设计与实现中涉及到的相关技术背景;第三章为需求分析,详细分析了系统的需求并对总体功能进行了概述;第四章为系统总体设计,对系统的总体框架和各模块的功能进行了设计;第五章为系统实现,该章详细描述了系统的具体实现,包括界面设计、代码实现等;第六章为结束语,对系统进行了概括和总结。
第一章引言
1.1课题的提出
创业已经成为大学生毕业之后的一个选择,经过调查发现,目前大多创业类型的网站仅提供一些创业的基本信息,没有提供一个具体的创业的途径给想要进行创业的人,创业从何做起是困扰当代大学生的一个问题。
本课题就是要给想要创业的大学生提供一个创业辅助平台,结合领域专家的指导完成一个创业的过程。
本课题运用时下最流行的企业应用架构Struts+Hibernate+Spring,底层数据库采用了开源数据库MySQL。
系统分为业务逻辑层、数据访问层和实体层,清晰的分层策略大大降低了开发的难度及开发周期。
平台采用基于MVC的应用架构,打造一个交流合作平台,创业者通过专家的指导点评及建议,逐步完善自己的创业步伐,使自己更接近成功的彼岸,同时企业用户可以通过本平台了解创业者的创业动态,并可以与具有发展潜力的创业者合作并展开创业项目。
1.2课题的工作与组织结构
1.2.1本文的工作
由于本系统涉及创业者、公司、领域专家、游客、系统管理员5种角色,因此分别为他们设计了5大模块。
本系统设计先抽象出一个整体平台的总体架构,然后对每个部分进行详细的描述,不断扩充完善得到功能比较完备的创业辅助平台系统。
本文利用软件工程的方法对该创业平台进行分析与设计,展示了一种结合了SSH技术、MySQL数据库,基于B/S架构的大学生创业辅助平台的设计思想。
1.2.2本文的组织结构
本设计共6章:
第一章引言阐述了创业型网站的发展现状、利用开源框架SSH的优势以及本论文要实现的系统。
第二章相关技术与开发工具介绍了相关技术及采用的开发工具的优点。
第三章系统分析分析创业平台的各种角色的功能需求、系统框架、数据库,向读者讲解实现创业平台需要做哪些方面的工作。
第四章系统设计对系统的几个部分进行详细的设计及描述。
第五章系统实现讲解如何利用SSH框架实现各功能。
第六章总结与展望。
第二章背景技术与开发工具
2.1MVC模式
MVC是一个架构模式,它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件:
模型、视图和控制器。
它们各自处理自己的任务。
2.1.1视图
视图是用户看到并与之交互的界面。
对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括AdobeFlash和象XHTML,XML/XSL,WML等一些标识语言和Webservices.
如何处理应用程序界面变得越来越有挑战性。
MVC一个大的好处是它能为你的应用程序处理不同的视图。
在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
2.1.2模型
模型表示企业数据和业务规则。
在MVC的三个部件中,模型拥有最多的处理任务。
例如它可能用象EJBs和ColdFusionComponents这样的构件对象来处理数据库。
被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。
由于应用于模型代码只需写一次就可以被多个视图重用,所以减少了代码重复性。
2.1.3控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。
所以当单击Web页面中的超链接和发送HTML表单时,控制器(例如:
servlet)本身不输出任何东西和做任何处理。
它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。
现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
2.2SSH框架技术
2.2.1Struts
Struts框架就是基于MVC模式的框架技术。
它是一个免费的开源的WEB层的应用框架,具有很高的可配置性,和有一个不断增长的特性列表。
一个前端控制组件,一系列动作类,动作映射,处理XML的实用工具类,服务器端javabean的自动填充,支持验证的WEB表单,国际化支持,生成HTML,实现表现逻辑和模板组成了Struts的灵魂。
图2.1显示了Struts组件是如何实现MVC的。
图2.1Struts的MVC实现
Struts的ActionServlet类控制导航流,其他Struts类,比如Action,用来访问业务逻辑类。
当ActionServlet从容器接收到一个请求,它使用URI来决定哪个Action将用来处理请求。
一个Action可以校验输入,并且访问业务层以从数据库或其他数据服务中检索信息。
每个ActionMapping相对于一个特定的路径。
当某个路径被请求时,Servlet就查询ActionMapping对象。
ActionMapping对象告诉servlet哪个Actions、ActionForms和ActionForwards将被使用。
Struts是一种非常优秀的基于J2EE的MVC应用框架,它已经越来越多地运用于企业平台之上,许多大型网站已成功地应用了Struts框架。
从图2.1中我们可以知道,Struts的体系结构包括模型(Model),视图(View)和控制器(Controller)三部分。
●模型(Model)在Struts的体系结构中,模型分为两个部分:
系统的内部状态和可以改变状态的操作(事务逻辑)。
内部状态通常由一组ActinformBean表示。
根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。
大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。
比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。
小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。
当逻辑简单时这个方法很适合。
建议用户将事务逻辑(要做什么)与Action类所扮演的角色(决定做什么)分开。
●视图(View)视图主要由JSP建立,struts包含扩展自定义标签库(TagLib),可以简化创建完全国际化用户界面的过程。
目前的标签库包括:
BeanTags、HTMLtags、LogicTags、NestedTags以及TemplateTags等。
●控制器(Controller)在struts中,基本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。
对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成的,其中Action扮演了真正的业务逻辑的实现者,ActionMapping与ActionForward则指定了不同业务逻辑或流程的运行方向。
2.2.2Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Java开发人员可以方便地通过HibernateAPI来操纵数据库,无须编写繁琐的SQL语句,执行冗长的多表查询,而只需通过对象与对象之间的关联操作数据库。
只是Hibernate将原本分散的JDBC和SQL语句组合产生编程接口,封装成对象化的数据接口。
Hibernate位于应用系统与数据库的中间层,起到一个桥梁作用,如图2.2所示。
图2.2Hibernate的作用
Hibernate配备了一种非常强大的查询语言叫HQL,这种语言看上去很像SQL。
但是不要被语法结构上的相似所迷惑,HQL是非常有意识地被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的概念。
2.2.3Spring
SpringFramework是一个开源的Java/JavaEE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本。
该框架基于ExpertOne-on-OneJavaEEDesignandDevelopment一书中的代码,最初由RodJohnson和JuergenHoeller等开发。
SpringFramework提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。
Spring是一个开源框架,它由RodJohnson创建。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
●目的:
解决企业应用开发的复杂性
●功能:
使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
●范围:
任何Java应用
简单来说,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.3Div+CSS
DIV+CSS是网站标准(或称“WEB标准”)中常用术语之一,通常为了说明与HTML网页设计语言中的表格(table)定位方式的区别,因为XHTML网站设计标准中,不再使用表格定位技术,而是采用DIV+CSS的方式实现各种定位。
CSS是英语CascadingStyleSheets(层叠样式表单)的缩写,它是一种用来表现HTML或XML等文件式样的计算机语言。
HTML语言自HTML4.01以来,不再发布新版本,原因就在于HTML语言正变得越来越复杂化、专用化。
即标记越来越多,甚至各个浏览器生产商也开发出只适合于其特定浏览器的HTML标记,这显然有碍于HTML网页的兼容性。
于是W3C组织进而重新从SGML中获取营养,随后,发布了XML,XML是一种比HTML更加严格的标记语言,全称是可扩展标记语言。
但是XML过于复杂,且当前的大部分浏览器都不完全支持XML。
于是XHTML这种语言就派上了用场,XHTML语言就是一种可以将HTML语言标准化,用XHTML语言重写后的HTML页面可以应用许多XML应用技术。
使得网页更加容易扩展,适合自动数据交换,并且更加规整。
说了这么多,现在该说正题了——CSS。
其实CSS单独使用除了麻烦一点之外,我个人觉得并无明显的优于HTML的好处。
而关键就在于其与脚本语言及XML技术的融合,即CSS+Javascript+XML(实际上有一种更好的融合:
XML+XSL+Javascript)——但XSL,即可扩展样式表语言相较于CSS过于复杂,不太容易上手。
自从CSS出现之后,HTML终于摆脱了杂乱无章的恶梦,开始将页面内容与样式分离。
第三章系统分析
3.1需求分析
需求分析是一个成功系统的基础,也是编写一个好软件的先决条件,有了好的需求分析,才能对整个系统有整体的把握,这样才能对每个模块进行清晰的划分,进而才能做到整个系统实现过程中有条不紊,按部就班。
本节对创业平台中的游客、创业者、公司、领域专家和管理员进行了需求分析,明确了各个角色需要提供的功能。
3.1.1游客功能要求
本创业辅助平台为一般游客提供了一些基本功能:
●会员注册:
分为创业者注册和公司注册,只有成为本平台的创业者会员才可以进行创业或者以企业的角色发布一些招聘信息。
●职位搜索:
游客或者会员可以查看平台上提供的一些职位信息。
●站内统计:
通过查看平台上各个创业领域注册人数以及专家公司的人数来了解目前平台的一些进本情况。
●用户帮助:
给使用者了解到平台的一些基本信息。
●创业领域介绍:
给想注册成为会员的用户了解一下相关领域需要完成的任务。
●资深专家介绍:
对平台已经注册的专家进行介绍。
●注册企业浏览:
浏览平台上已经注册的企业信息。
●创业资源下载:
下载专家提供的一些创业资源。
●创业故事浏览:
浏览领域专家发布的创业故事。
●登陆:
通过登录,创业者、公司、领域专家可以进入自己的主页。
●创业建议浏览:
浏览专家发布的创业建议。
●政策信息浏览:
浏览平台发布的政策信息。
3.1.2创业者功能要求
创业者是本平台最重要的角色之一,需提供如下功能:
●创业之路:
创业者通过这个功能进行创业,可以提交创业报告,查看专家评分以及查看自己的创业过程中所记录下的文档。
●领域专家:
查看专家基本信息并可以给其留言。
●招贤纳什:
可以发布自己创业过程中所需要的职位信息并可以管理职位信息。
●企业合作:
查看企业对自己的合作意向。
●交流专区:
和领域专家进行互动交流。
●我的基本信息管理:
维护自己的信息。
3.1.3领域专家功能要求
领域专家主要负责对创业者上传的创业各个阶段的报告进行打分,并给出相应评价,并可以和创业者进行交流等,需要提供如下功能:
●创业者评价:
查看各领域的创业者所记录的文档并对其进行评价与打分。
●创业资源上传:
上传创业相关资源,如视频、文档并可以对上传的资源进行管理。
●创业建议发布:
分享自己的创业建议并可以对建议进行管理。
●创业故事发布:
发布和管理创业成功故事。
●交流专区:
可以和创业者进行互动交流。
●我的基本信息管理:
管理维护自己的信息。
3.1.4公司功能要求
公司主要发布一些创业信息,还可以和一些有潜力的创业项目进行合作,相当于一个风险投资的角色,需要提供如下功能:
●职位信息发布:
发布和管理企业所需要的职业信息。
●企业合作:
查看创业者信息及记录的文档并可以与他进行合作。
●公司信息管理:
维护公司的信息。
3.1.5管理员功能要求
创业平台需要管理员的维护才可以保持正常运行,需要提供如下的功能:
●创业者信息管理:
对创业者的信息进行维护,要负责删除一些不合法的用户。
●公司信息管理:
维护公司信息,并对注册的公司进行审核,只有点击通过审核的公司才可以登录自己的主页。
●专家信息管理:
维护专家相信,并可以添加专家。
●创业领域编辑:
编辑和添加创业领域。
●友情链接管理:
维护友情链接信息。
●政策信息管理:
维护政策信息。
3.2系统用例建模
经过详细的需求分析,我们可以抽象出本系统游客用例图(图3.1所示)、创业者用例图(图3.2所示)、领域专家用例图(图3.3所示)、公司用例图(图3.4所示)和后台管理员用例图(图3.5所示)。
3.2.1游客功能用例描述
图3.1游客用例图
3.2.2创业者功能用例描述
图3.2创业者用例图
3.2.3领域专家功能用例描述
图3.3领域专家用例图
3.2.4公司功能用例描述
图3.4公司用例图
3.2.5管理员功能用例描述
图3.5管理员用例图
第四章系统设计
4.1系统功能模块设计
4.1.1功能模块图
通过对系统功能合理地划分,集中体现在界面上的功能主要包括系列几个模块(如图4.1所示)。
图4.1系统功能模块图
4.2系统架构设计
本系统采用基于MVC的应用架构,利用Sturts框架核心控制器拦截用户的请求,用Hiberbate框架以面向对象的思想对数据库进行操作,最后采用了面向接口编程技术,利用Spring的IOC(控制反转)框架