1、 西 南 交 通 大 学 专科毕业设计(论文) 基于 .net 的 PSP 系统的软件设计和实现 年 级: 2011 级 姓 名:谭琳 专 业:软件开发 指导老师:任挺 2012 年 6 月 西南交通大学 专 科毕业设计(论文) 第 I 页 院 系 信息科学与技术学院 专 业 软件开发 _ 学 号 姓 名 谭琳 _ 题 目 指导教师 评 语 指导教师 (签章 ) 评 阅 人 评 语 评 阅 人 (签章 ) 成 绩 答辩委员会主任 (签章 ) 年 月 日 西南交通大学 专 科毕业设计(论文) 第 II 页 摘 要 本系统主要使用了 Jsp、 Struts2、 Spring 以及 Hibernat
2、e 技术,采用目前网站开发中较为流行的 MVC 设计架构。 Struts2 技术主要用于处理页面的跳转和对业务方法的调用,目的是为了分离视图层和控制层。 Spring 技术主要用于在 Struts 与 Hibernate技术之间的解耦操作,提高程序的重用性、 可维护性以及健壮性。 Hibernate 技术是为了实现用面向对象的思想来管理和使用数据库技术,实现程序与数据库之间的低耦合。 文章介绍了使用 java 和 xml 技术开发网站系统的详细过程,介绍了项目背景和开发意义,同时包含了对系统开发环境与技术的介绍。在系统分析与设计部分,对系统功能做出了详细的描述,并对各个功能模块进行了分析,包括
3、模块显示界面、使用的数据及函数调用过程等。使用类图阐述了本系统的设计思路,使用用例图和时序图来协助说明系统的设计方案。在系统实现与测试阶段,使用了流程图进一步展现了系统功能的实 现过程。 该系统将会给各钟表销售门店带来方便,其功能需求也会进一步提高和稳定。我们期待该系统能为当今社会更好的服务。 西南交通大学 专 科毕业设计(论文) 第 III 页 目 录 第 1 章 绪论 . 4 1.1 开发背景 . 4 1.2 开发思路及主要方法 . 4 1.3.我的管理 . 5 第 2 章 开发语言 . 6 2.1.1 系统开发工具与运行平台 . 6 2.1.2 开发语言 . 7 2.2 相关技术简介 .
4、 8 2.2.1 动态编程 . 8 2.2.2 系统采用技术介绍 . 13 第 3 章系统分析与设计 . 14 3.1 用户需求的获取 . 14 3.2 系统用户分析 . 14 3.3 系统功能分析 . 14 3.4 数据库分析与设计 . 15 3.5 系统详细设计 . 15 3.5.1 系统页面设计 . 15 第 4 章 系统实现与测试 . 16 4.1 重要模块说明 . 16 结论 . 18 致谢 . 20 参考文献 . 21 西南交通大学 专 科毕业设计(论文) 第 4 页 第 1 章 绪论 1.1 开发背景 个人软件过程 ( PSP)是一种可用于控制、管理和改进个人工 作方式的自我持续
5、改进过程,是一个包括软件开发表格、指南和规程的结构化框架。 PSP 与具体 的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。 PSP 能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。 其中, SP 又包括过程改进,时间管理,制订计划缺陷管理几个方面。 在 CMM1.1 版本的 18 个关键过程域中有 12 个与 PSP 有关,据统计,软件项目开发成本的 70%取决于软件开发人员个人的技能、经验和工作习惯。因此, 一个单位的软件
6、开发人员如能接受 PSP 培训,对该单位软件能力成熟度的升级是一个有力的保证。CMM 侧重于软件企业中有关软件过程的宏观管理,面向软件开 发单位, PSP则侧重于企业中有关软件过程的微观优化,面向软件开发人员。二者互相支持,互相补充,缺一不可。 按照 PSP 规程,改进软件过程的步骤首先需要明确质量目标,也就是软件将要在功能和性能上满足的要求和用户潜在的需求。接着就是度量产品质量,有了目标还 不行,目标只是一个原则性的东西,还不便于实际操作和判断, 因此,必须对目标进行分解和度量,使软件质量能够 “测量 “。然后就是理解当前过程,查找问题, 并对过程进行调整。最后应用调整后的过程,度量实践结果
7、,将结果与目标做比较,找出差距,分析原因,对软件过程进行持续改进。 就象 CMM 为软件企业的能力提供一个阶梯式 的进化框架一样, PSP 为个体的能力也提供了一个阶梯式的进化框架,以循序渐进的方法介绍过程的概念,每一级别都包含了更低一级别中的所有元素,并增加了 新的元素。这个进化框架是学习 PSP 过程基本概念的好方法,它赋予软件人员度量和分析工具,使其清楚地认识到自己的表现和 潜力,从而可以提高自己的技能和 水平。 1.2 开发思路及主要方法 在上这门选修课之前,我对个人软件过程可以说是一点都不了解,只知道是一款游戏机。经过了老师的讲解,我才对个人软件过程有了初步的了解。 原来,我以为开发
8、软件靠的只是技术,只要掌握了编程技巧,把相应的语言学好,就能开发出优秀的软件。可是,学习几节课后,听了您对西南交通大学 专 科毕业设计(论文) 第 5 页 的讲解,我才明白要要想开发出好的软件,不仅需要真才实干,还要有好的规划好自己的时间和其他方面。由于我是计算机专业的学生,可能对这些知识接触较少,有说的不太对的地方,还 请老师以后多指教。 我认为包括了很多方面,其中有对代码的不断修改,通过测量来发现问题,并改正问题。还有对自己的时间的合理利用,做切实可行的计划,按照计划进行工作,这样可以了解计划存在哪些问题,有助于更好的计划下一个项目。按照好的计划完成工作,由于软件中的许多错误都是由于粗心大
9、意引起的,所以合理利用时间,计划工作是很有用的,可以有效的减少这些错误。 我认为也是一种很好的工作和学习的方法,它可以使我们更好的学习和工作,最大化的利用时间,提高工作效率。这就是我对的的认识,以后的工作中我会通过 对自己的工作做较好的计划,更好的体会给工作带来的益处,对它进一步的了解。 1.3.我的管理 (1)制定计划 每天要做的事情很多,如果不制定一个很好的计划就总会不能按计划完作,尤其到了周六日的时候,早晨一睡就是一上午,会浪费很多时间,所以我自已制定了周日一天的计划。 (2)过程改进 需要不断的改进。 就是在不断的测量中发现问题和改正错误。这学期的 c 语言作业中我就通过不断的调试,发
10、现错误,然后改进,并完善程序。我编的是一个贪食蛇的小游戏,编好后,我发现只能实现玩家控制一条小蛇吃蛋,增加长度。 虽然做好了,但是和我玩过的绝大多数游戏比起来,简直太简单了,可玩性相当差,于是我又在头脑中形成了我想要的游戏的样子,以那样的为目标,一点点改进我程序。如加入音乐,加入其他食物(得分食物,加速食物等),增加主菜单,增加一些关卡, 调试过程也是一个不断与目标看齐,改进程序的过程,就像一开始我加入音乐时,发现是在游戏之前播放音乐,播放完成后,才能进入游戏,于是我查找书籍,反复调试,最后成功达到音乐做为背景音乐的效果。就这样朝着目标不断改进,最后终于达到了期望的结果。 西南交通大学 专 科
11、毕业设计(论文) 第 6 页 第 2 章 开发语言 2.1.1 系统开发工具与运行 平台 由于 Linux 是一套具有 Unix 全部功能的免费操作系统,它在众多的软件中占有很大的优势,为广大的计算机爱好者提供了学习、探索以及修改计算机操作系统内核的机会。 操作系统是一台计算机必不可少的系统软件,是整个计算机系统的灵魂。一个操作系统是一个复杂的计算机程序集,它提供操作过程的协议或行为准则。没有操作系统,计算机就无法工作,就不能解释和执行用户输入的命令或运行简单的程序。大多数操作系统都是由一些主要的软件公司支持的商品化程序,用户只能有偿使用。如果用户购买了一个操作系统,他就必须满足供应商所要求的
12、一切条件。因为操作系统是系统程序,用户不能擅自修改或试验操作系统的内核。这对于广大计算机爱好者来说无疑是一种束缚。 要想发挥计算机的作用,仅有操作系统还不够,用户还必须要有各种应用程序的支持。应用程序是用于处理某些工作(如字处理)的软件包,通常它也只能有偿使用。每个应用程序的软件包都为特定的操作系统和机器编写。使用者无权修改这些应用程序。使用 Linux,可以将操作系统变成一种操作环境。 由于 Linux 是一套自由软件,用户可以无偿地得到它及其源代码,可以无偿地获得大量的应用程序,而且可以任意地修改和补充它们。这对 用户学习、了解 Unix操作系统的内核非常有益。 学习和使用 Linux,能
13、为用户节省一笔可观的资金。Linux 是目前唯一可免费获得的、为 PC 机平台上的多个用户提供多任务、多进程功能的操作系统,这是人们要使用它的主要原因。就 PC 机平台而言, Linux提供了比其他任何操作系统都要强大的功能, Linux 还可以使用户远离各种商品化软件提供者促销广告的诱惑,再也不用承受每过一段时间就升级之苦,因此,可以节省大量用于购买或升级应用程序的资金。 Linux 不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。用户 不但可以从 Internet 上下载 Linux 及其源代码,而且还可以从 Internet 上下载许多 Linux 的应用程序。可以说,
14、Linux 本身包含的应用程序以及移植到 Linux上的应用程序包罗万象,任何一位用户都能从有关 Linux 的网站上找到适合自己西南交通大学 专 科毕业设计(论文) 第 7 页 特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。这对 Windows NT、 Windows98、MS-DOS 或 OS 2等商品化操作系统来说是无法做到的。 Linux 为广大用户提供了一个在家里学习和使用 Unix 操作系统的机会。尽管Linux 是由计算机爱好者们开发的,但是它在很多方面上是相当稳定的,从而为用户学习和使用目前世界上最流行的 Uni
15、x 操作系统提供了廉价的机会。现在有许多 CD-ROM 供应商和软件公司( Linux 操作系统。 Linux 成为 Unix 系统在个人计算机上的一个代用品,并能用于替代那些较为昂贵的系统。因此,如果一个用户在公司上班的时候在 Unix 系统上编程,或者在工作中是一位 Unix 的系统管理员,他就可以在家 里安装一套 Unix 的兼容系统,即 Linux 系统,在家中使用Linux 就能够完成一些工作任务。 2.1 系统语言 2.1.2 开发语言 2.0 是一种动态网站高级 编程语言 。 2.0 是 微软 公司的最新版本,是一种建立在 公共语言运行库 上的编程框架,可用于服务器上开发强大的
16、web 应用程序 。 2.0 不但执行效率大大提高,对 代码 的控制也做的很好。并且支持 web controls 功能和多种语言。以提高安全性,以管理性和高扩展性。 技术从 1.0 升级到 1.1 的变 化不大,但是升级到 2.0,却发生了相当大的变化,在开发过程中, 微软 公司深入市场,针对大量开发人员和 软件使用者,进行了卓有成效的研究,并为其指定了开发代号, 2.0 设计目标的核心,可以用一个词来形容简化。因为其设计目的是将 应用程序 代码 数量减少百分之七十以上,改变过去那种需要编写很多重复行代码的状况,尽可能做到写很少的代码就可以完成任务。对于 软件工程师 来说, 2.0 是 w
17、eb 开发史上的一个重要的 里程碑 ! 2.0 的新特性: 生产效率 ,使用新增的 2.0 服务器控件和包含新增功能的现有控件,可以轻松的创建 2.0网页和 应用程序 。 灵活性和 可扩展性 ,很多 2.0 功能都可以扩展。这样可以轻松的将自定义功能集成到 应用程序 中。 性能,使用如 预编译 ,西南交通大学 专 科毕业设计(论文) 第 8 页 可配置缓存和 sql 缓存失效等功能。安全性,现在向 web 应用程序 添加 身份验证 和授权非常简单。完整性,新增功能和现用功能 协同工作 ,可以创建解决实时 web 开发挑战的端对端方案。 编辑本段 .无论如何, .NET 4.0已经在叩开新年的大
18、门之时,以高调的姿态迎来一片掌声。广大 的技术爱好者不会等待太长的时间,就能感受 C#发展中的又一次变革。随着 .NET 4.0在 2009年的发布,我们对于 C# 4.0的关注也将与日俱增。总体而言, C# 4.0的重头戏主要着眼在以下几个方面 : 动态编程 并行计算 后期绑定 协变与逆变 废话少说,接下来我们一一领略 C# 4.0中的语言特性 。 2.2 相关技术简介 2.2.1 动态编程 众所周知, C#是静态 强类型语言 。而在很多情况下,提供 “动态 ”行为,是常常发生的事情,例如通过反射在运行时访问 .NET 类型、调用 动态语言 对象、访问 COM 对象等,都无法以静态类型来获取
19、。因此, C# 4.0 引入的又一个全新的关键字 dynamic,也同时引入了改善静态类型与动态对象的交互能力,这就是动态查找( Dynamic Lookup)例如:就像一个 object 可以代表任何类型, dynamic使得类型决断在运行时进行,方法调用、属性访问、委托调用都可动态分派。同时,动态特性还体现在构建一个动态对象,在 C# 4.0 实现 IDynamicObject 接口的类型,可以完全定义动态操作的意义,通过将 C#编译器 作为运行时组件来完成由静态编译器延迟的操作,例如: dynamic d = new Foo(); .MyMethod(s,3,null); 在具体执行过程
20、中, C#的运行时绑定器基于运行时信息,通过反射获取 d 的实际类型 Foo,然后在 Foo 类型上就 MyMethod 方法进行方法查找和 重载 解析,并执行调用,这正是动态调用的背后秘密: DLR。在 .NET 4.0 中将引入重要的底层组件 DLR( Dynamic Language Runtime, 动态语言 运行时),除了实现 动态查找的基础支持, DLR 也同时作为基础设施为类似于这个特性非常简单,有些JavaScript 的影子,我们可以统一使用使用 “var“关键字来声明 局部变量 ,而不再需要指明变量的确切类型了,变量的确切类型可通过声明变量时的初始值推断出来。这样一来,可以
21、大大简化我,由于 变量 的类型是通过变量初始值推断而来西南交通大学 专 科毕业设计(论文) 第 9 页 的 ,所以在声明变量的同时必需为变量指定初始值。并且, 变量 并不是没有类型的,变量一旦初始化之后,类型就确定下来了,以后就只能存储某种类型的值了,比如上面的 stringValue 的类型经推断为 string,所以该变量就只能保存 string类型的值了。 2.2 系统采用技术简介 1 Visual Basic 是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬 zz 件的操作不太容易实现。但它可以通过动态链接库技 术将 C/C+或汇编语言编写的程序加入到 Visual Basi
22、c 应用程序中,可以像调用内部函数一样调用其他语言编写的函数。此外,通过动态链接库,还可以调用 Windows应用程序接口 (API)函数,实现 SDK 所具有的功能。 图 1-1 Struts 2 的 MVC 实现示意图 工作流程: 1. 用户提交 Request 请求信息。 2. FilterDispatcher 询问 ActionMapper 是否需要调用某个 Action 来处理这个( HttpServlet Request)请求,如果 ActionMapper 决定需要调用某个Action, FilterDispatcher 则把请求的处理交给 ActionProxy。 3. Act
23、ionProxy 通过 Configuration Manager( struts.xml)询问框架的配置文件,找到需要调用的 Action 类。 4. ActionProxy 创建一个 ActionInvocation 实例,同时 ActionInvocation 通过代理模式调用 Action。但在调用之前, ActionInvocation 会根据配置加载 Action 相关的所有 Interceptor(拦截器)。 核心控制器 FilterDispatcher 视图 View Jsp , Struts Tags Struts. properties Struts.xml Action Model 业务 逻辑 Request Responsee Interceptors Results