软件类毕业论文.doc_第1页
软件类毕业论文.doc_第2页
软件类毕业论文.doc_第3页
软件类毕业论文.doc_第4页
软件类毕业论文.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西南交通大学本科毕业设计(论文) 第II页西 南 交 通 大 学专科毕业设计(论文)基于.net的PSP系统的软件设计和实现年 级:2011级姓 名:谭琳专 业:软件开发指导老师:任挺2012年6月西南交通大学本科毕业设计(论文) 第II页院 系 信息科学与技术学院 专 业 软件开发_ 学 号 姓 名 谭琳_ 题 目 指导教师评 语 指导教师 (签章)评 阅 人评 语 评 阅 人 (签章)成 绩 答辩委员会主任 (签章)年 月 日西南交通大学专科毕业设计(论文) 第20页摘 要 本系统主要使用了Jsp、Struts2、Spring以及Hibernate技术,采用目前网站开发中较为流行的MVC设计架构。Struts2技术主要用于处理页面的跳转和对业务方法的调用,目的是为了分离视图层和控制层。Spring 技术主要用于在Struts与Hibernate技术之间的解耦操作,提高程序的重用性、可维护性以及健壮性。Hibernate技术是为了实现用面向对象的思想来管理和使用数据库技术,实现程序与数据库之间的低耦合。 文章介绍了使用java和xml技术开发网站系统的详细过程,介绍了项目背景和开发意义,同时包含了对系统开发环境与技术的介绍。在系统分析与设计部分,对系统功能做出了详细的描述,并对各个功能模块进行了分析,包括模块显示界面、使用的数据及函数调用过程等。使用类图阐述了本系统的设计思路,使用用例图和时序图来协助说明系统的设计方案。在系统实现与测试阶段,使用了流程图进一步展现了系统功能的实现过程。 该系统将会给各钟表销售门店带来方便,其功能需求也会进一步提高和稳定。我们期待该系统能为当今社会更好的服务。目 录第1章 绪论11.1 开发背景11.2开发思路及主要方法11.3.我的管理2第2章开发语言32.1.1 系统开发工具与运行平台32.1.2 开发语言42.2 相关技术简介52.2.1动态编程52.2.2系统采用技术介绍10第3章系统分析与设计113.1 用户需求的获取113.2 系统用户分析113.3 系统功能分析113.4数据库分析与设计123.5 系统详细设计123.5.1 系统页面设计12第4章 系统实现与测试134.1 重要模块说明13结论16致谢18参考文献19第1章 绪论1.1 开发背景 个人软件过程(PSP)是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体 的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。其中,SP又包括过程改进,时间管理,制订计划缺陷管理几个方面。在CMM1.1版本的18个关键过程域中有12个与PSP有关,据统计,软件项目开发成本的70%取决于软件开发人员个人的技能、经验和工作习惯。因此, 一个单位的软件开发人员如能接受PSP培训,对该单位软件能力成熟度的升级是一个有力的保证。CMM侧重于软件企业中有关软件过程的宏观管理,面向软件开 发单位,PSP则侧重于企业中有关软件过程的微观优化,面向软件开发人员。二者互相支持,互相补充,缺一不可。按照PSP规程,改进软件过程的步骤首先需要明确质量目标,也就是软件将要在功能和性能上满足的要求和用户潜在的需求。接着就是度量产品质量,有了目标还 不行,目标只是一个原则性的东西,还不便于实际操作和判断,因此,必须对目标进行分解和度量,使软件质量能够测量。然后就是理解当前过程,查找问题, 并对过程进行调整。最后应用调整后的过程,度量实践结果,将结果与目标做比较,找出差距,分析原因,对软件过程进行持续改进。就象CMM为软件企业的能力提供一个阶梯式 的进化框架一样,PSP为个体的能力也提供了一个阶梯式的进化框架,以循序渐进的方法介绍过程的概念,每一级别都包含了更低一级别中的所有元素,并增加了 新的元素。这个进化框架是学习PSP过程基本概念的好方法,它赋予软件人员度量和分析工具,使其清楚地认识到自己的表现和潜力,从而可以提高自己的技能和 水平。1.2开发思路及主要方法在上这门选修课之前,我对个人软件过程可以说是一点都不了解,只知道是一款游戏机。经过了老师的讲解,我才对个人软件过程有了初步的了解。 原来,我以为开发软件靠的只是技术,只要掌握了编程技巧,把相应的语言学好,就能开发出优秀的软件。可是,学习几节课后,听了您对的讲解,我才明白要要想开发出好的软件,不仅需要真才实干,还要有好的规划好自己的时间和其他方面。由于我是计算机专业的学生,可能对这些知识接触较少,有说的不太对的地方,还请老师以后多指教。我认为包括了很多方面,其中有对代码的不断修改,通过测量来发现问题,并改正问题。还有对自己的时间的合理利用,做切实可行的计划,按照计划进行工作,这样可以了解计划存在哪些问题,有助于更好的计划下一个项目。按照好的计划完成工作,由于软件中的许多错误都是由于粗心大意引起的,所以合理利用时间,计划工作是很有用的,可以有效的减少这些错误。我认为也是一种很好的工作和学习的方法,它可以使我们更好的学习和工作,最大化的利用时间,提高工作效率。这就是我对的的认识,以后的工作中我会通过对自己的工作做较好的计划,更好的体会给工作带来的益处,对它进一步的了解。1.3.我的管理(1)制定计划每天要做的事情很多,如果不制定一个很好的计划就总会不能按计划完作,尤其到了周六日的时候,早晨一睡就是一上午,会浪费很多时间,所以我自已制定了周日一天的计划。(2)过程改进需要不断的改进。就是在不断的测量中发现问题和改正错误。这学期的c语言作业中我就通过不断的调试,发现错误,然后改进,并完善程序。我编的是一个贪食蛇的小游戏,编好后,我发现只能实现玩家控制一条小蛇吃蛋,增加长度。虽然做好了,但是和我玩过的绝大多数游戏比起来,简直太简单了,可玩性相当差,于是我又在头脑中形成了我想要的游戏的样子,以那样的为目标,一点点改进我程序。如加入音乐,加入其他食物(得分食物,加速食物等),增加主菜单,增加一些关卡,调试过程也是一个不断与目标看齐,改进程序的过程,就像一开始我加入音乐时,发现是在游戏之前播放音乐,播放完成后,才能进入游戏,于是我查找书籍,反复调试,最后成功达到音乐做为背景音乐的效果。就这样朝着目标不断改进,最后终于达到了期望的结果。第2章开发语言2.1.1 系统开发工具与运行平台由于Linux是一套具有Unix全部功能的免费操作系统,它在众多的软件中占有很大的优势,为广大的计算机爱好者提供了学习、探索以及修改计算机操作系统内核的机会。操作系统是一台计算机必不可少的系统软件,是整个计算机系统的灵魂。一个操作系统是一个复杂的计算机程序集,它提供操作过程的协议或行为准则。没有操作系统,计算机就无法工作,就不能解释和执行用户输入的命令或运行简单的程序。大多数操作系统都是由一些主要的软件公司支持的商品化程序,用户只能有偿使用。如果用户购买了一个操作系统,他就必须满足供应商所要求的一切条件。因为操作系统是系统程序,用户不能擅自修改或试验操作系统的内核。这对于广大计算机爱好者来说无疑是一种束缚。要想发挥计算机的作用,仅有操作系统还不够,用户还必须要有各种应用程序的支持。应用程序是用于处理某些工作(如字处理)的软件包,通常它也只能有偿使用。每个应用程序的软件包都为特定的操作系统和机器编写。使用者无权修改这些应用程序。使用Linux,可以将操作系统变成一种操作环境。由于Linux是一套自由软件,用户可以无偿地得到它及其源代码,可以无偿地获得大量的应用程序,而且可以任意地修改和补充它们。这对用户学习、了解Unix操作系统的内核非常有益。 学习和使用Linux,能为用户节省一笔可观的资金。Linux是目前唯一可免费获得的、为PC机平台上的多个用户提供多任务、多进程功能的操作系统,这是人们要使用它的主要原因。就PC机平台而言,Linux提供了比其他任何操作系统都要强大的功能,Linux还可以使用户远离各种商品化软件提供者促销广告的诱惑,再也不用承受每过一段时间就升级之苦,因此,可以节省大量用于购买或升级应用程序的资金。Linux不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet上下载许多Linux的应用程序。可以说,Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一位用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。这对Windows NT、Windows98、MS-DOS或OS2等商品化操作系统来说是无法做到的。Linux为广大用户提供了一个在家里学习和使用Unix操作系统的机会。尽管Linux是由计算机爱好者们开发的,但是它在很多方面上是相当稳定的,从而为用户学习和使用目前世界上最流行的Unix操作系统提供了廉价的机会。现在有许多CD-ROM供应商和软件公司(Linux操作系统。Linux成为Unix系统在个人计算机上的一个代用品,并能用于替代那些较为昂贵的系统。因此,如果一个用户在公司上班的时候在Unix系统上编程,或者在工作中是一位Unix的系统管理员,他就可以在家里安装一套Unix的兼容系统,即Linux系统,在家中使用Linux就能够完成一些工作任务。2.1系统语言2.1.2 开发语言2.0是一种动态网站高级编程语言。 2.0是微软公司的最新版本,是一种建立在公共语言运行库上的编程框架,可用于服务器上开发强大的web应用程序。2.0不但执行效率大大提高,对代码的控制也做的很好。并且支持web controls 功能和多种语言。以提高安全性,以管理性和高扩展性。 技术从1.0升级到1.1的变化不大,但是升级到2.0,却发生了相当大的变化,在开发过程中,微软公司深入市场,针对大量开发人员和软件使用者,进行了卓有成效的研究,并为其指定了开发代号,2.0设计目标的核心,可以用一个词来形容简化。因为其设计目的是将应用程序代码数量减少百分之七十以上,改变过去那种需要编写很多重复行代码的状况,尽可能做到写很少的代码就可以完成任务。对于软件工程师来说,2.0是web开发史上的一个重要的里程碑! 2.0的新特性: 生产效率,使用新增的2.0服务器控件和包含新增功能的现有控件,可以轻松的创建2.0网页和应用程序。 灵活性和可扩展性,很多2.0功能都可以扩展。这样可以轻松的将自定义功能集成到应用程序中。 性能,使用如预编译,可配置缓存和sql缓存失效等功能。安全性,现在向web应用程序添加身份验证和授权非常简单。完整性,新增功能和现用功能协同工作,可以创建解决实时web开发挑战的端对端方案。 编辑本段.无论如何,.NET 4.0已经在叩开新年的大门之时,以高调的姿态迎来一片掌声。广大的技术爱好者不会等待太长的时间,就能感受C#发展中的又一次变革。随着.NET 4.0在2009年的发布,我们对于C# 4.0的关注也将与日俱增。总体而言,C# 4.0的重头戏主要着眼在以下几个方面:动态编程 并行计算 后期绑定 协变与逆变 废话少说,接下来我们一一领略C# 4.0中的语言特性。 2.2 相关技术简介2.2.1动态编程 众所周知,C#是静态强类型语言。而在很多情况下,提供“动态”行为,是常常发生的事情,例如通过反射在运行时访问.NET类型、调用动态语言对象、访问COM对象等,都无法以静态类型来获取。因此, C# 4.0引入的又一个全新的关键字dynamic,也同时引入了改善静态类型与动态对象的交互能力,这就是动态查找(Dynamic Lookup)例如:就像一个object可以代表任何类型,dynamic使得类型决断在运行时进行,方法调用、属性访问、委托调用都可动态分派。同时,动态特性还体现在构建一个动态对象,在C# 4.0实现IDynamicObject接口的类型,可以完全定义动态操作的意义,通过将C#编译器作为运行时组件来完成由静态编译器延迟的操作,例如:dynamic d = new Foo(); .MyMethod(s,3,null); 在具体执行过程中,C#的运行时绑定器基于运行时信息,通过反射获取d的实际类型Foo,然后在Foo类型上就MyMethod方法进行方法查找和重载解析,并执行调用,这正是动态调用的背后秘密:DLR。在.NET 4.0中将引入重要的底层组件DLR(Dynamic Language Runtime,动态语言运行时),除了实现动态查找的基础支持,DLR也同时作为基础设施为类似于这个特性非常简单,有些JavaScript的影子,我们可以统一使用使用var关键字来声明局部变量,而不再需要指明变量的确切类型了,变量的确切类型可通过声明变量时的初始值推断出来。这样一来,可以大大简化我,由于变量的类型是通过变量初始值推断而来的,所以在声明变量的同时必需为变量指定初始值。并且,变量并不是没有类型的,变量一旦初始化之后,类型就确定下来了,以后就只能存储某种类型的值了,比如上面的stringValue的类型经推断为string,所以该变量就只能保存string类型的值了。2.2 系统采用技术简介1Visual Basic是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬zz件的操作不太容易实现。但它可以通过动态链接库技术将C/C+或汇编语言编写的程序加入到Visual Basic应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能。核心控制器FilterDispatcher视图ViewJsp , Struts TagsSpertiesStruts.xmlActionModel业务逻辑RequestResponseeInterceptorsResults图1-1 Struts 2的MVC实现示意图工作流程:1. 用户提交Request请求信息。2. FilterDispatcher询问ActionMapper是否需要调用某个Action来处理这个(HttpServlet Request)请求,如果ActionMapper决定需要调用某个Action,FilterDispatcher则把请求的处理交给ActionProxy。3. ActionProxy通过Configuration Manager(struts.xml)询问框架的配置文件,找到需要调用的Action类。4. ActionProxy创建一个ActionInvocation实例,同时ActionInvocation通过代理模式调用Action。但在调用之前,ActionInvocation会根据配置加载Action相关的所有Interceptor(拦截器)。5. 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。Spring 简介:Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不仅仅限于使用 JSP 技术。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。如下图1-2是Spring的MVC实现示意图,浏览器DispacherServletHanderServiceHandlerMappingStruts.xmlViewResolverView (JSP JSTL)ModelModelAndView8HTTP相应2寻找处理器4业务处理5得到处理结果6得到处理结果7传给view显示1HTTP请求3调用处理器 图1-2 Spring的MVC实现示意图工作流程:1. DispatcherServlet接收到请求后,根据对应配置文件中配置的处理器映射,找到对应的处理器映射项(HandlerMapping),根据配置的映射规则,找到对应的处理器(Handler)。2. 调用相应处理器中的处理方法,处理该请求,处理器处理结束后会将一个ModelAndView类型的数据传给DispatcherServlet,这其中包含了处理结果的视图和视图中要使用的数据。3. DispatcherServlet根据得到的ModelAndView中的视图对象,找到一个合适的ViewResolver(视图解析器),根据视图解析器的配置,DispatcherServlet将视图要显示的数据传给对应的视图,最后给浏览器构造一个HTTP响应。DispatcherServlet是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:(1)截获符合特定格式的URL请求。(2)初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。(3)初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。Hibernate技术简介:Hibernate是一个数据持久层框架,是一种实现对象和联系之间映射(O/R Mapping)的工具,它对JDBC执行 了轻量级的对象封装,使程序员可以运用对象编程思想来操作数据库。它不仅提供了从Java类到数据表的映射,也提供了数据查询和恢复机制。相对于运用 JDBC和SQL来操作数据库,运用 Hibernate能大大的提高实现的效率。Hibernate框架用配置文件的形式来定义Java对象和数据表之间的映射联系,同时在更深的层面将数据表之间的联系解释为Java对象之间的继承及包含等联系。通过运用 HQL语句将复杂的联系算法用对象的方式描述,在很大程度上简化了对数据的查询,加快了开发的效率。在Hibernate中有一个基本而直观的API,用于对数据库所表示的对象执行查询。要建立或修改这些对象,只需在程序中与它们执行 交互,然后告诉Hibernate保存即可。这样,大量封装持久化操作的业务逻辑不再须要编写烦琐的JDBC语句,从而使数据持久层得到了极大的简化Hibernate 是一种新的 ORM 映射工具,它不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用 JDBC 和 SQL 来手工操作数据库,使用 Hibernate,可以大大减少操作数据库的工作量。Hibernate 可以和多种 Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器其体系结构如图1-3所示MVC设计模式:模式视图控制器(ModelViewController,MVC)是一种先进的设计模式。是Trygve Reenskaug教授于1978年最早开发的一个设计模版或基本结构,其目的是以会话的形式提供方便的GUI支持。三层结构的特点是:所以下层向上层提供调用的接口,具体实现细节对上层透明,层与层之间存在自上而下的依赖关系,即上层会访问下层的API层,但下层不依赖于上层。视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。其模型视图如图1-4所示。模型数据视图控制器请求jsp显示数据请求处理数据连接读取存储数据JSP页面JSP页面ACTIONSERVLET数据库文件JAVABEANNNJAVABEANNN 图1-4 MVC模型MVC是一种通过3个不同部分构造一个软件或组件的理想办法:1. 模式(Model)用于存储数据的对象 2. 视图(View)为模式提供数据显示的对象。 3. 控制器(Controller)负责具体的业务逻辑操作,即控制器根据视图提出的要求对数据做出处理,并将有关结果存储到模型中,同时负责让模型和视图进行必要的交互,当模型中的数据变化时,让视图更新显示。 从面向对象的角度看,MVC结构可以使程序更具有对象化特性,也更容易维护。在设计程序时,可以将某个对象看做“模型”,然后为“模型”提供恰当的显示组件,即“视图”。在MVC模式中,“视图”、“模型”和“控制器”之间是松散耦合结构,便于系统的维护和扩展。2.2.2系统采用技术介绍本系统采用了 .net、CMM技术,采用MVC架构。zCMM与 PSP 在20世纪 80年代后期到90年代早期,SEI开发了能力成熟度模型(CMM),为软件开发总组织级的最佳实践。SEI特别会员 Watts Humphrey决定将 CMM的基本原理应用于单个开发的软件开发实践中。个人软件过程(PSP)就是他努力的成果,为单个软件开发人员设计的五级过程。 CMM与 TSP 不久大家就发现,虽然使用 PSP可以取得优异的结果,但是如果周围的环境不能鼓励并且要守 PSP实践,这些必要的规范性是几乎不可能得到维持的。所以汉弗莱为大多数组织中最小作单位项目组,开发了团队软件过程(TSP),TSP是为项目组设计的CMM5级过程。份SEI技术报告中,记录了使用TSP在满足成本和进度估算的同时达到一流质量水平的最新CMM的演变 同时,CMM的成功也引发了相似模型的开发以覆盖系统工程(SE-CMM)、集成产品开发CMM)、软件采购(SA-CMM)以及人力资源(P-CMM)。为了缓解模型数量的过快增长,使用从未正式发布的CMM第二版、系统工程 CMM和IPD-CMM开发了能力成熟度模型集成(CMMI), 第3章系统分析与设计3.1 用户需求的获取 接到毕设任务书后,通过在网上查阅了解了一些钟表销售相关的平台,进行需求提炼总结,形成了用户需求分析的相关文档,也通过在图书馆查阅相关研究资料完善了需求分析。3.2 系统用户分析。3.3 系统功能分析随着软件工程知识的普及,软件工程师都知道,要开发高质量的软件,必须改进软件生产的过程。目前,业界公认由CMU/SEI开发的软件能力成熟度模型SW-CMM是当前最好的软件过程,并且CMM已经成为事实上的软件过程工业标准。但是,CMM虽然提供了一个有力的软件过程改进框架,却只告诉我们应该做什么,而没有告诉我们应该怎样做,并未提供有关实现关键过程域所需要的具体知识和技能。为了弥补这个欠缺,Humphrey又主持开发了个体软件过程(Personal Software Process,PSP)。 在CMM1.1版本的18个关键过程域中有12个与PSP有关,据统计,软件项目 开发成本的70%取决于软件开发人员个人的技能、经验和工作习惯。因此,一个单位的软件开发人员如能接受PSP培训,对该单位软件能力成熟度的升级是一个有力的保证。CMM侧重于软件企业中有关软件过程的宏观管理,面向软件开发单位,PSP则侧重于企业中有关软件过程的微观优化,面向软件开发人员。二者互相支持,互相补充,缺一不可。按照PSP规程,改进软件过程的步骤首先需要明确质量目标,也就是软件将要在功能和性能上满足的要求和用户潜在的需求。接着就是度量产品质量,有了目标还不行,目标只是一个原则性的东西,还不便于实际操作和判断,因此,必须对目标进行分解和度量,使软件质量能够测量。然后就是理解当前过程,查找问题,并对过程进行调整。最后应用调整后的过程,度量实践结果,将结果与目标做比较,找出差距,分析原因,对软件过程进行持续改进。就象CMM为软件企业的能力提供一个阶梯式的进化框架一样,PSP为个体的能力也提供了一个阶梯式的进化框架,以循序渐进的方法介绍过程的概念,每一级别都包含了更低一级别中的所有元素,并增加了新的元素。这个进化框架是学习PSP过程基本概念的好方法,它赋予软件人员度量和分析工具使其清楚地认识到自己的表现和潜力,从而可以提高自己的技3.4数据库分析与设计 根据对普通注册用户和系统管理员用户的分析,系统可以涉及到5大实体,分别是社区信息、用户信息、物品信息、留言信息以及评价信息。 社区信息是指用户所在社区的具体信息,其应包含的属性有社区标识、社区名称、社区地址以及社区介绍等。这样用户在注册的时候可以选择查看社区信息,以便了解自己应该注册在哪个社区从而更快捷方便的进行旧货交换活动。其他用户在搜索物品时也可以查看发布人所在的社区信息,以便决定自己要不要拿自己的东西去进行交换或者给对方留言。3.5 系统详细设计 主要介绍了钟表销售管理系统的原型设计及重要模块的详细设计实现过程,用一系列的时序图辅助文字图表等进行说明。3.5.1 系统页面设计 通过对旧货交换信息平台系统的分析,本系统的主要使用用户有两种,一是注册的普通用户,是系统主要的服务对象,二是系统管理员,负责系统日常信息的维护,因而系统原型设计可根据两种用户角色划分为不同功能的模块设计,分别是公共模块、普通用户模块和系统管理员模块。1. 公共模块设计公共模块包含了注册登录、查看修改个人信息、修改密码、查看日历,物品检索,友情链接、建议投诉等子功能模块。公共模块作为系统的前台页面显示,需要灵活的易用性和美观性,当用户登录系统后在左侧的导航栏中也会显示这些信息,和其他系统类似,在需要增加一些链接的地方也加入了公共模块的很多信息。公共模块功能层次图设计如下图3-10所示,第4章 系统实现与测试4.1 重要模块说明1. 普通用户发布物品流程图图下图4-1所示开始 实例化 GoodsDao 实例化 SysUserDao 初始化实体类Goods 根据登录id标识查询SysUsergoods对象返回查询到的 goods对象中初始化 初始化 UserService调用save()释放查询对象跳转到发布接受页面输入参数 图4-1 用户发布物品流程图 普通用户点击发布物品链接即可进入发布物品的页面,页面有相关输入框和下拉框来提示用户进行操作。输入用户参数后将通过http协议传递给GoodsManageAcion中的addGoods()方法,首先根据登录id通过SysUserDao查询用户信息,检查在数据库中是否存在,若查询成功,返回该user对象。并封装成user属性,以便将该对象输入到Goods对象中。addGoods()方法会通过GoodsService类调用GoodsDao中的save()方法,即将该记录添加到数据库表中进行保存,其他用户就可以对该物品进行搜索或查看。 物品配价功能分为两种,一种是全社区配价,一种是本社区配价,实现方式是先以价格和确定的配价范围调用GoodsDao的findBySamePrice()方法查找数据库中价格类似的物品,并返回一个Goods类型的list对象,得到该list对象后,才根据用户的选择过滤出物品所属用户与登录用户不在一个社区和过滤出自己发布的物品作为本社区配价结果,而全社区配价结果是仅仅将自己发布的物品过滤出去,再通过实例化GoodsService将该值传递给GoodsManageAction类,该类将list对象封装成http协议传递到前台页面进行显示。结论本次毕业设计的完成,使我在专业技能方面得到了大幅度的提升,对Eclipse平台下利用SSH框架技术进行系统开发有了更进一步的理解。对MVC架构的运行原理也有了更深刻的认识。系统采用SSH框架设计,典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是传统的JSP技术,其优点在于广泛的应用和稳定的表现。中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。 Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。 Service层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。 DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。 PO,持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。 Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。 采用Hibernate作为持久层技术的最大的好处在于:可以完全以面向对象的方式进行系统分析、系统设计。DAO模式需要为每个DAO组件编写DAO接口,同时至少提供一个实现类,根据不同需要,可能有多个实现类。用Spring容器代替DAO工厂 。通常情况下,引入接口就不可避免需要引入工厂来负责DAO组件的生成。Spring实现了两种基本模式:单态模式和工厂模式。而使用Spring可以完全避免使用工厂模式,因为Spring就是个功能非常强大的工厂。因此,完全可以让Spring充当DAO工厂。 由Spring充当DAO工厂时,无须程序员自己实现工厂模式,只需要将DAO组件配置在Spring容器中,由ApplicationContext负责管理DAO组件的创建即可。借助于Spring提供的依赖注入,其他组件甚至不用访问工厂,一样可以直接使用DAO实例。 Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。 除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。Taglib是Struts的标记库,灵活动用,能大大提高开发效率。MVC架构中的模型是自包含的,并且与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。如果想把数据库从MySQL移植到Sqlserver,或者改变基于RDBMS数据源到LDAP,只需改变模型即可。一旦正确的实现了模型,不管你的数据来自数据库或是LDAP服务器,视图将会正确的显示它们。由于运用MVC的应用程序的三个部件是相互对立,改变其中一个不会影响其它两个,所以依据这种设计思想能构造良好的松偶合的构件。本次毕业设计是自己第一次独立承担一个系统的开发任务,从前期的需求分析到数据库设计再到编码实现,都是自己全程参与和设计,这对自己的挑战还是很大的。从设计到实现的过程,使我认识到前期

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论