版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网上售楼系统的设计与实现前言在网络日趋普及的今天,基于因特网的一种新的商业模式已经开始走进很多人的生活,其特征是商务活动在因特网上以数字化电子方式完成。1.1课题的研究背景网上楼房销售系统是一种新兴的楼房销售平台。随着全球经济一体化的逐步发展和深入,再加上计算机和网络技术的迅猛发展,传统建筑商因企业成本高、规模小,品种少已经阻碍了楼房市场的发展,网上楼房销售系统的应运而生,它有着其他形式的建筑商所不能比拟的优势:不受时空的限制,一天24小时的营业时间。全世界范围内都可以销售;它不需要店铺和庞大的销售网络,通过在网上直接订购、支付、结算,减少了中间的环节和开支,它以成本低,楼房数量多、品种齐全而备受消费者的青睐。因此,在网上购买楼房已成为购买楼房的主要手段。为了满足广大顾客的需要,所以推出了网上楼房的解决方案。1.2国内现状无论是出于仿效,还是迫于竞争,一些老牌的楼房销售商也加入网上建筑商的行列,如庞诺建筑商(B),疆界建筑商(B)等。至少在1997年,国外网上建筑商达两百家以上。而在国内,自杭州新华建筑商创办第一家网上建筑商后,网上建筑商如雨后春笋般涌现出来。其中最为有名的莫过于1999年1月1日开通的上海销售商网上建筑商和3月9日正式营业的北京楼房大厦网上建筑商。现在,国内网上建筑商数量数不胜数,因此我们很容易能看出国内网上建筑商竞争的激烈性。1.3研究意义楼房销售系统在国际互联网上可以实现的商务功能已经多样化,从基本的对外沟通展示功能、信息发布功能、在线楼房展示功能、到在线洽谈功能、在线交易功能、在线采购功能、在线客户服务功能、在线网站管理功能等等,几乎以往传统商店功能都可以在互联网上进行电子化的高效运作。同传统的建筑商相比,网上楼房商店具有如下三点优势:1)企业上网不仅给消费者和企业提供了更多的选择消费与开拓销售市场的机会,而且也是提供了更加密切的信息交流场所,从而提高了企业把握市场和消费者了解市场的能力。同时企业上网扩大了企业的竞争领域,使企业从常规的广告竞争、促销手段等领域的竞争扩大到无形的虚拟竞争空间。2)网上建筑商改变了企业竞争的交易成本。网上建筑商具有投入成本低、批发数量大及用户多的优势。电子商务也使企业规模影响竞争力的基础发生了改变。例如在传统的销售渠道中,大书商与小书商之间的竞争差别很大。电子商务使大书商与小书商之间规模差距的竞争变得几乎微不足道。美国西雅图亚马逊公司在网上开办了一家大型建筑商,提供250万册楼房供在线购买。只有两个人管理的网上建筑商提供的书目和服务,几乎可以与200人管理的传统建筑商提供的书目和服务一样。3)网上建筑商的经验表明,如果网上建筑商可以为顾客提供品种齐全的楼房、折扣以及灵活的条件、可靠的安全性和友好的界面,在线购物者一般都愿意在网上进行楼房交易。展望未来,网上楼房超市势必成为社会发展不可缺少的一部分,而其自身的发展趋势也必然更专业化、高质量化。那么就要求我们提供的不仅仅是简单的在线查询、购买这么一个功能,而是要做到以客户的需求、爱好等各方面因素来改进我们的服务,使之更加专业,更有特色1.4本章小结本章介绍楼盘销售系统的可行性研究,其系统的目的,系统意义的简要介绍,对于系统开发前期阶段和过程起着重要的意义。相关技术介绍本章介绍了在网上售楼系统中主要使用到的相关技术,如MVC、J2EE等。本系统的设计与实现需要使用者对这些技术有一定的理解。2.1JAVA开发语言的选择现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行,使用最多,最为先进的可用作企业级开发语言的产品有:SUN公司的JavaMicrosoft公司的VisualBasicMicrosoft公司的VisualCBorland公司的DelphiPOWERSOFT公司的POWERBUILDER在目前市场上这些众多的程序开发工具中,有些强调语言的弹性与执行效率;有些偏重于可视化程序开发工具所带来的便利性与效率的提高,各有各的优点和特色,也满足了不同用户的不同需求。我的网站选择Java语言开发,其原因基于以下几点:Java是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的语言[1]。1)简单:Java的风格类似于C++,并且摒弃了C++中容易引发程序错误的地方,如指针和内存管理。此外Java提供了丰富的类库。2)面向对象:面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的。Java支持静态和动态风格的代码继承及重用。3)分布式:Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库[2]。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。4)健壮:Java致力于检查程序在编译和运行时的错误。Java自己操纵内存减少了内存出错的可能性。Java提供Null指针检测数组边界、检测异常出口、字节代码校验。5)安全:Java的安全性可从两个方面得到保证。一方面,在Java语言里,像指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。6)结构中立:为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。Java源程序被编译成一种高层次的与机器无关的byte-code格式语言[3],这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。7)可移植的:Java的可移植性一直是Java程序设计师们的精神指标,也是Java之所以能够受到程序设计师们喜爱的原因之一,最大的功臣就是JVM的技术[4]。JAVA编译器产生的目标代码(J-Code)是针对一种并不存在的CPU--JAVA虚拟机(JAVAVirtualMachine),而不是某一实际的CPU。JAVA虚拟机能掩盖不同CPU之间的差别,使J-Code能运行于任何具有JAVA虚拟机的机器上。8)高性能:Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码的速度与C/C++的性能没什么区别。9)多线程:Java支持多线程,多线程功能使得在一个程序里可同时执行多个小任务。线程,有时也称小进程,是一个大进程里分出来的小的独立的进程。10)动态:Java的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。2.2MVC设计模式MVC(Model-View-Controller的简称)是XEROXPARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用,目前是J2EE应所最常见的体系结构,它是一种设计模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。视图是用户看到并与之交互的界面,也即应用程序的外观。作用包括接收用户的输入,它并不包括任何实际的业务逻辑,它只是将数据转发给控制器。同时,视图还负责展现模型传递给用户的数据,当后台模型更新数据时,视图也应当随之更新它的显示。模型表示业务数据和业务逻辑,是应用程序的主体部分。一个模型能为多个视图提供数据,因此提高了代码的可重用性。控制器接受用户的输入并调用模型和视图去完成用户的需求。当Web用户单击Web页面中的递交按钮来发送HTML表单时,控制器本身不输出任何东西和做任何处理。控制器接收请求并决定调用哪个模型组件去处理请求,然后决定调用哪个视图来显示模型处理返回的数据。MVC的优点表现在如下几个方面:1)
首先,最重要的一点是多个视图能共享一个模型。同一个模型可以被不同的视图重用,大大提高了代码的可重用性。2)
由于MVC的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松偶合的构件。3)
此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。MVC的缺点表现如下:在于它没有明确的定义,所以一个开发人员完全理解MVC并不是很容易。使用MVC也需要精心的计划,由于它的内部原理比较复杂,所以开发者需要花费相当可观的时间去考虑如何将MVC运用到应用程序之中。同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。一旦构件经过了测试,就可以毫无顾忌的重用它们了。还有开发MVC系统比简单的JSP开发要复杂许多,它需要更多的时间学习和掌握。同时新东西的引入会带来新的问题,在选择MVC开发模式时必须仔细考虑这下问题:1)必须基于MVC组件的方式重新思考和设计应用结构。原来通过建立一个简单的JSP页面就能实现的应用现在变成了多个步骤的设计和实现过程。2)
所有的页面和组件必须在MVC框架中实现,所以必须进行附加地开发工作。MVC本身就是一个非常复杂的系统,所以采用MVC实现Web应用时,最好选一个现成的MVC框架,在此之下进行开发,从而取得事半功倍的效果[1]。2.3Struts简介Struts是Apache软件基金会(ASF)赞助的一个\o"开源"开源项目。它最初是Jakarta项目中的子项目,并在2004年3月成为ASF的顶级项目。它通过采用Java、\o"Servlet"Servlet/JSP技术,实现了基于JavaEE
\o"Web"Web应用的Model-View-Controller〔MVC〕设计模式的应用框架〔Web
\o"Framework"Framework〕,是MVC经典设计模式中的一个经典产品[6]。很多开发人员认为Struts目前尚不成熟,应用的成本较高。附带的一点点建议:Struts的优点主要集中体现在两个方面:TAGLIB和页面导航。TAGLIB是Struts的标记库,灵活动用,能大大提高开发效率。Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。2.4wel.xml配置web.xml是JavaSERVLET规范所必需的web应用程序配置描述。SERVLET/JSP容器使用这个文件来装载、配置应用程序,它用来通知SERVLET容器如何配置SERVLET和其他应用程序需要的高级对象。struts-config.xmlstruts-config.xml是Struts中核心文件[7]。该文件配置各种组件,包括数据源DATASOURCE、表单类FORMBEAN、全局异常GLOBALEXCEPTION、全局转发GLOBALFORWARD、行为映射ACTIONMAPPINGS、控制器Controller、消息资源MESSAGERESOURCE及插件PLUGINS。2.5tomcat容器Tomcat是一个免费的开源的SERVLET容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成[8]。由于有了Sun的参与和支持,最新的SERVLET和JSP规范总能在Tomcat中得到体现。Tomcat被JAVAWORLD杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。Tomcat4.0x中采用了新的SERVLET容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范[9]。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(WebArchive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的SERVLET类和JSP或SERVLET所依赖的其它类(如JAVABEAN)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的WEBAPP目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为Tomcat要将JSP转化为SERVLET文件,然后编译[10]。编译以后,访问将会很快。Tomcat不仅仅是一个SERVLET容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理JSP和SERVLET.这种集成只需要修改一下Apache和Tomcat的配置文件即可。2.6本章小结本章首先介绍的JAVA开发语言的相关概念和基础知识,然后进一步介绍MVC高内聚低耦合的开发模式的基本概念,最后介绍了本系统开发使用的开发语言及其搭建服务器的相关概念。需求分析与概述网上楼房销售系统是一个基于内部网和外部网的应用程序,采用J2EE技术,提高系统数据的共享性,增加系统服务的对象。3.1功能结构描述3.1.1本系统主要分为5大功能模块,楼盘管理模块,订单管理模块,交易管理模块,用户管理模块,管理员管理模块,各大模块中又分为多个2级模块,用户登录系统后便可以浏览楼盘信息,购买楼盘,查看订单信息,交易记录信息。管理员登录系统可以添加,删除,更改楼盘信息等。具体的功能细节如下图:图3-1功能结构图3.1.1根据功能结构描述和需求分析制定系统的数据流向,具体的管理员管理和用户管理的数据操作流向见下图:图3-2系统数据流图3.2系统整体分析与概述本节将从功能,可行性,性能分析本系统。3.2.1整个功能分为两大分类,用户管理和管理员管理,用户登录后可以查看购买楼盘等,管理员的登录后可以添加,更改楼盘信息等,具体的需求如下。(1)顾客可以方便地查看楼房信息,及了解每天的特价楼房。(2)顾客可以方便地队购物车中的楼房进行增加、删除、修改和下订单。(3)顾客可以反馈自己的满意和不满意意见。(4)管理员可以方便地添加、删除、修改楼房和添加和删除、楼房类别。(5)管理员可以方便地查看订单,可以方便执行订单。(6)管理员可以方便地查看顾客留言信息和记录反馈信息的处理情况。(7)管理员可以方便地添加、删除、修改推荐楼房,新上架楼房,畅销楼房。(8)管理员可以方便地查看和冻结用户信息。3.2.1本系统采用JSP开发语言,使用TOMCAT服务器,在windowsXP下开发网站,使用B/S结构开发系统其性能特性如下:(1)响应时间:对远程查询访问响应的平均时间是3秒,最长是10秒;Intranet程序的响应时间少于1秒。(2)吞吐量:每秒处理的事务数达到2000条。(3)容量:系统可以容纳的客户数是1000人同时使用。具体是开发环境为应用的开发工具是JDK1.5、Tomcat6.0、DreamweaverMX8.0和MYSQL,设计的模块和性能将受到上述开发工具的约束。3.2.1使用数据对象关联查询提交楼盘检索速度,订单和交易记录分离管理降低功能模块的耦合,用户可以清晰的了解系统的模块分类。3.2本章小结本章介绍了系统的功能需求,并从功能,可行性,性能等方面详细对系统进行了描述。使用数据楼房浏览模块楼房浏览模块是互联网程序,它的用户是顾客。顾客可以分不同楼房种类浏览楼房的名称、种类、价钱、建造商和建造日期等;顾客可以输入楼房关键字查询楼房信息。3.1.2楼房管理模块是应用程序,它的用户是后台系统管理员。楼房信息管理员可以添加、删除、修改楼房的种类和楼房。3.1.4订单管理模块订单管理模块是应用程序,它的用户是后台系统管理员。管理员负责查看订单的详细信息和执行订单。3.1.7楼房类别信息管理模块楼房类别信息管理模块是应用程序,它的用户是后台管理员。管理员可以查看、增加、删除楼房类别信息。3.1.9顾客的注册、登录模块顾客的注册、登录模块是互联网程序,它的用户是顾客。顾客需求登录楼房销售系统才可以选购楼房。3.1.10后台信息管理的登录模块信息管理的登录模块是应用程序,它的用户是后台管理员。管理员登录通过验证,可以对后台信息进行操作。3.1.11用户管理模块用户管理模块是应用程序,它的用户是后台管理员。管理员可以查看用户的详细信息、冻结或解冻用户信息。3.1.17新建楼房上架显示模块新建楼房上架信息显示模块是互联网程序,它的用户是顾客。顾客可以查看最新的上架楼房列表,可以将新上架楼房放入购物车。3.1.19分类浏览楼房模块分类浏览楼房模块是互联网程序,它的用户是顾客。顾客可以点击楼房类别,然后显示该类别的所有楼房,可以将楼房放入购物车。数据库设计4.1数据库的概念本网站将使用一直以来使用都最为广泛的关系模型作为数据库的建设依据。在用户的观点下,关系模型中数据的逻辑结构是一张二维表,一个关系对应通常说的一张表,并且关系的每一个分量必须是一个不可分的数据项。而一个基于关系模型的数据库则是由若干个二维表组成的。对于一些大型和中型的数据库,如Oracle,SQLServer2000/7.0等都属于关系型数据库,同时它们所带有的数据库管理工具是其他小型数据库所没有的,而同时这些工具又为管理员的工作节省了很多的时间和财力。4.2数据库的三层结构1、用户视图层:这一层面向各个具体用户。从满足用户需求出发而设计的各种各样的文件结构,在系统中称为子模型。子模型用图、表来表示,给人以直观清晰、一目了然之感。用户看到的是一些视图,它只提供用户所需的信息,以免用户访问到其它无关的信息。例如,在银行中的顾客看到的是数据库顾客账户的信息,他们不能访问银行雇员的工资信息。然而计算机是不会认识这些图表的。为了让计算机认识它,DBMS设置了一种数据定义语言(DLL)。用DLL精确定义数据模型的程序称为模式。除非整体改动,否则数据库模式一般是部经常变化的。用户视图的这种语言形式定义称为子模式。由图可见,对于同一数据库,系统提供许多的用户视图。也就是说,一个数据库可以有多个不同的子模式。2、逻辑层:这一层面向全局,它综合各用户的信息需求,设计了一个全局性的、完整的而又无冗余的系统框架,称为逻辑模型。逻辑层的简单数据结构的操作要与复杂的物理层结构相联系,但用户不用担心这些,因为逻辑层是由数据库管理员来使用的。逻辑模型的语言形式定义为逻辑模型。用户的信息来自逻辑层,而逻辑层又从物理层获的信息。3、物理层:这一层完全面向物理存储。物理层详细的描述了复杂的底层数据结构。在完成存放基本文件的前提下,考虑物理存储的最佳组织形式,我们把不考虑用户需求而仅仅着眼于物理存储的模型称为物理模型。用DDL定义的语言形式称为物理模式。物理模式是逻辑模式的具体实现。数据库系统具有几个模式。在最底层是物理模式,中间层是逻辑模式,在最高层是子模式。总而言之,数据库系统支持一个物理模式,一个逻辑模式和几个子模式。在某一层上修改一个模式而不影响其它层的模式定义的能力称为数据独立性。有两种独立性。物理独立性:是指当数据的物理存储设备、物理存储结构和存取方法发生变化时,数据的逻辑结构和定义可以不变,应用程序也可以不变的能力。逻辑独立性:是一种应用程序可以不管逻辑模式定义的改变而正确执行的能力。从另一方面说,用户要求的改变,应对用户的子模式的影响最小。逻辑独立性比物理独立性更加难以实现。因为应用程序更大程度上依赖于它们所访问的数据的逻辑结构。数据独立性概念与现代编程语言中抽象数据类型概念的许多方面相似。两者都对用户隐藏了底层信息,而用户关系的只是普通结构。4.3数据库的选择4.3.1数据库的概念本网站使用MYSQL实现关系型数据库。MYSQL是一个真正的多用户、多线程SQL数据库服务器,是一个客户机/服务器结构的应用,它由一个服务器守护程序MYSQL和很多不同的客户程序及相关的库组成。它有较好的数据承载能力,一个环境有超过
40
个数据库,包含
10,000个表,其中500多个表超过7百万行,总数据大约有100GB的数据库系统可以很好的被MYSQL所支持,而MYSQL本身不会像Oracle那样对系统及硬盘空间有很高的要求,同时用户权限设置简单、有效。这也是本网站选用MYSQL作为后台数据库系统的一个重要原因之一。4.4数据库表的描述概念模型是对信息世界建模,其表示方法有很多,其中最为常用的是实体-关系模型,即E-R模型,它是用E-R图来描述现实世界的概念模型。本系统中,每个楼盘信息对应着特定的楼盘类型,用户可以浏览楼盘信息并且预定楼盘信息,用户可以预定多以楼盘信息,预定成功后生成订单数据,当系统处理完订单后,生成交易信息表,其中交易表和订单表是一一对应的。具体数据对象之间的关系如图4—1。图4-1本系统的实体-关系模型图
4.5数据库设计与实现通过上节数据表的映射关系图,根据本系统的功能需求,设计具体数据表单的内容结构,一下详细描述各个数据表的字段信息。4.5.1用户信息表(CUSTOMER)用户注册后生成用户信息,内容主要包括用户的名字,密码,用户身份证,真实姓名,性别和用户图片。具体字段类型如表4-1:字段描述字段名称字段类型是否主键是否为空用户IDID自动编号是否用户名称NAME字符类型否否用户密码PASSWD字符类型否否身份证号码CREDIT字符类型否否用户积分MARK整数类型否否真实姓名REALNAME字符类型否否用户性别SEX布尔类型否否用户照片IMG字符类型否否表4-1用户信息表4.5.2楼盘信息表管理员通过登录后添加楼盘信息,添加楼盘信息需要输入楼盘名称,楼盘介绍,楼盘价格,楼盘类型,楼盘图片主要信息,其中楼盘类型和楼盘类型表以外键的方式关联起来。具体字段类型如表4-2:字段描述字段名称字段类型是否主键是否为空楼盘IDID自动编号是否楼盘名称BUILDNAME字符类型否否楼盘介绍CONTENT字符类型否否楼盘价格PRICE整数类型否否楼盘类型BUILDSTYLE整数类型否否楼盘图片IMG字符类型否否楼盘提示TOOLTIP字符类型否否是否上架UP布尔类型否否出售时间DURTIME时间类型否否点击量CLICK整数类型否否表4-2楼盘信息表4.5.3楼盘类型表楼盘信类对应着楼盘类型,楼盘类型包括楼盘类型名称,类型介绍。具体字段类型如表4-3:字段描述字段名称字段类型是否主键是否为空类型IDID自动编号是否类型名称STYLETITLE字符类型否否类型介绍CONENT字符类型否否表4-3楼盘类型表4.5.4楼盘订单用户可以查看楼盘然后预订楼盘,生成订单,订单具体信息包括楼盘ID,用户ID,添加时间和是否处理。具体字段类型如表4-4:字段描述字段名称字段类型是否主键是否为空订单IDID自动编号是否楼盘IDBUILDING整数类型否否用户IDCUSTOMER整数类型否否添加时间ADDTIME时间类型否否是否提交SUBMIT布尔类型否否表4-4楼盘订单表4.5.5楼盘交易用户订单处理后,生成交易表,记录用户和楼盘的交易信息。具体字段类型如表4-5:字段描述字段名称字段类型是否主键是否为空交易IDID自动编号是否订单IDBUILDORDER整数类型否否用户IDCUSTOMER整数类型否否交易介绍CONTENT字符类型否否添加时间ADDTIME时间类型否否表4-5楼盘交易表4.5.6管理员信息管理员信息不许具体的信息,只包括名称和密码。具体字段类型如表4-6:字段描述字段名称字段类型是否主键是否为空管理员IDID自动编号是否管理员名称NAME字符类型否否管理员密码PASSWD字符类型否否表4-6管理员信息表第五章基于UML的系统建模5.1UML概述及系统分析步骤5.1.1UML概述统一建模语言(UML是UnifiedModelingLanguage的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。UML是用面向对象图的方式来描述任何类型的系统,具有很广泛的应用领域。特别是在建立软件系统的模型中,它支持从系统需求、系统分析到系统设计的整个建模过程,提供UML图形的编辑和美化工具,保证得到语法正确、语义完整的UML图形模型,并提供包括文档管理和图形打印等辅助支持。它不仅支持建立系统的静态模型,还支持描述系统的动态模型。UML由以下四部分组成:1)视图。视图是表达系统的某一方面特征的UML建模元素的子集,视图并不是图,它是由一个或者多个图组成的对系统某个角度的抽象。在建立一个系统模型时,通过定义多个反应系统不同方面的视图,才能对系统做出完整、精确的描述。2)图。视图由图组成,UML通常提供9种基本的图,把这几种基本图结合起来就可以描述系统的所有视图。3)模型元素。UML中模型元素包括事物和事物之间的联系。事物描述了一般的面向对象的概念,如类、对象、接口、消息和组建等。事物之间的关系能够把事物联系在一起,组成有意义的结构模型。常见的联系包括关联关系、依赖关系、泛化关系、实现关系和聚合关系。同一个模型元素可以在几个不同的UML图中使用,不过同一个模型元素在任何图中都保持相同的意义和符号。4)通用机制。UML提供的通用机制可以为模型元素提供额外的注释、信息和语义。这些通用机制同时提供扩展机制,扩展机制允许用户对UML进行扩展,以便适应一个特定的方法和过程、组织或用户。UML的各种图时UML模型的重要组成部分,在本系统的建模过程中用到了用例图和活动图,以下是9种具体的描述:1)用例图用例图(UseCaseDiagram)显示多个外部参与者以及他们与系统提供的用例之间的连接。用例是系统中的一个描述参与者与系统之间交互作用功能单元。用例仅仅描述系统参与者从外部观察到的系统功能,并不描述这些功能在系统内部的具体实现。用例图的用途是列出系统中的用例和参与者,并显示哪个参与者参与了哪些用例的执行。2)类图类是对应领域或应用解决方案中概念的描述。类图(ClassDiagram)以类为中心组织,类图中的其他元素或属于某个类,或与类相关联。类可以以多种方式相互连接:关联、依赖(一个类依赖或使用另一个类)、特殊化(一个类是另一个类的特殊化),这些连接成为类之间的关系。所有的关系连同每个类的内部结构都在类图中显示。关系用类框之间的连线表示,不同的关系用连线上和连线端口处的修饰符来区别。3)对象图对象图(ObjectDiagram)是类图的变体,它使用与类图相似的符号描述,不同之处在于对象图显示的是类的多个对象实例而非实际的类。可以说,对象图是类图的一个例子,用于显示系统执行时的一个可能的快照,即在某一时间点上系统可能呈现的样子。对象图和类图表示的不同之处在于它用带下划线的对象名称来表示对象,显示一个关系中所有的实例。4)状态图状态图(StateDiagram)是对类描述的补充,它用于显示类的的对象可能具备的所有状态,以及引起状态改变的事件。状态的变化称之为转换。状态图由对象的各个状态和连接这些状态的转换组成。每个状态对一个对象在其生命周期中满足某种条件的一个时间段建模。事件的发生会触发状态间的转换,导致对象从一种状态转换为另一种状态。实际建模时,并不需要为所有的类都绘制状态图,仅对那些具有多个明确状态并且这些状态会影响和改变其行为的类才有绘制状态图的必要。此外,还可以为系统绘制整体状态图。5)时序图时序图(SequenceDiagram)显示多个对象之间的动作状态,重点是显示对象之间发送的消息的时间顺序。时序图也是显示对象之间的交互,就是在系统执行时,某个指定时间点将发生的事情。时序图的一个用途是用来表示用例中的行为顺序,当执行一个用理性为时,时序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。6)协作图协作图(CollaborationDiagram)对一次交互中有意义的对象和对象间的链建模。除了显示消息的交换以外,协作图也是显示对象以及他们之间的关系。时序图和协作图都可以表示各个对象间的交互关系,但它们的侧重点不同。时序图用消息的几何排列关系来表达消息的时间顺序,各个角色之间的关系是隐含的。协作图用各个角色的几何排列表示角色之间的关系,并用消息来说明这些关系。在实际运用中可以根据需要选用这两种图:如果需要重点强调时间或顺序,那么选择时序图;如果需要重点强调上下文。那么选择协作图。7)活动图活动图(ActivityDiagram)是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动。动作状态代表了一个活动,即一个工作流程步骤或一个操作的执行。活动图由多个动作态组成,当一个动作完成之后,动作态将会改变,转换为另一个新的状态(在状态图内,状态在进行转换之前需要标明显示的事件)。这样,控制就在这些相互连接的动作状态之间流动。此外,在活动图中还可以显示决策和条件,以及动作状态的并发执行。8)组件图组件图(ComponentDiagram)用代码来显示代码物理结构,组件图可以是源代码组件、二进制组件或一个可执行的组件。一个组件包含它所实现的一个或者多个逻辑类的相关信息,根据组件图中显示的组件之间的依赖关系,可以容易地分析出某个组件的变化将会对其他组件产生什么样的影响。通常说来,组件图用于实际的编程工作中。9)配置图配置图(DeploymentDiagram)用于显示系统中的硬件和软件的物理结构。配置图可以显示实际的计算机和设备(节点),还可以显示它们之间的连接和连接的类型。在配置图中显示哪些节点内,已经分配了可以执行的组件和对象,以显示这些软件单元分别在那个节点上运行。5.1.2基于UML面向对象的系统分析步骤UML是一个功能强大的、面向对象的可视化系统分析的建模语言,它采用一套成熟的建模技术。它的各个模型可以帮助用户开发人员更好地理解业务流程,建立更可靠、更完善的系统模型,从而使用户和开发人员对问题的描述表达到相同的理解,以减少语义差异,保障分析的正确性。运用UML进行面向对象系统分析设计,通常都要经过如下3个步骤。1)识别系统的用例和角色。首先要对项目进行需求调研,分析项目的业务流程图和数据流图,以及项目中涉及的各级操作人员,识别出系统中的所有用例和角色;接着分析系统中个角和用例间的关系,使用UML建模工具画出系统的用例图;最后,勾画出系统的概念层模型,借助UML建模工具描述概念层的类图和活动图。2)进行系统分析并抽象出类。系统分析的任务是找出系统的所有需求并加以描述,同时建立特定领域模型,建立域模型有助于开发人员考察用例。从实际需求中抽象出类,并描述各个类之间的关系。3)设计系统,并设计系统中的类及其行为。设计阶段由结构设计和详细设计组成。结构设计是高层设计,其任务是定义包、包间的依赖关系和主要通信机制。包有利于描述系统的逻辑组成部分以及各个部分之间的依赖关系。详细设计主要用来细化包的内容,清晰的描述所有的类,同时使用UNL的动态模型描述在特定环境下这些类的实例的行为。5.2楼房管理模块的结构图楼房信息管理员可以查看楼房种类的信息,可以添加、删除、修改楼房的种类和楼房。如图5-1楼房管理楼房管理添加修改删除楼房种类楼房楼房种类楼房楼房种类楼房图5-1楼房信息管理结构图5.3购物车模块的结构图顾客可以通过购物车模块购买楼房、下订单和删除订单。如图5-2购物车购物车购买楼房下订单删除订单图5-2购物车结构图5.4留言信息管理模块的结构图管理员可以查看顾客的留言信息(包括:用户名、留言主题、留言内容、留言时间),同时也可以进行没用的留言信息的删除,图5-3为结构图留言信息管理留言信息管理查看留言回复留言删除留言修改留言图5-3留言管理结构图第六章系统实现6.1网站总体架构及实现6.1.1系统总体结构图图6-1为网站的总体结构楼房浏览模块楼房浏览模块楼房管理模块楼房管理模块购物车模块购物车模块订单管理模块系统入口订单管理模块系统入口留言信息模块留言信息模块顾客留言信息管理模块顾客留言信息管理模块楼房类别信息管理模块楼房类别信息管理模块推荐楼房信息显示模块推荐楼房信息显示模块顾客的注册、登录模块顾客的注册、登录模块后台信息管理的登录模块后台信息管理的登录模块用户管理模块用户管理模块图6-1网站的总体结构6.1.2用户首页界面风格网上楼房销售系统的主页面向用户展示了推荐楼房信息、新上架楼房信息、最畅销楼房信息、系统的公告信息、对自己喜欢的楼房类别进行投票和查看楼房类别的入口。如果用户想购买楼房和发表楼房的评论必须登录系统,才能进行操作。图6-1为网站的首页截图图6-1网站首页截图6.2楼房信息查询6.2.1功能描述用户在查询楼房文本域中输入楼房名称,点击查询按钮进行站内搜索,然后将搜索结果列出。6.2.2模块流程图如图6-2是楼房信息查询的流程图图6-2楼房查询信息流程图6.2.3界面风格如图6-3是楼房查询模块截图图6-3楼房查询模块截图6.2.4实现算法
Stringbuildingkey=request.getParameter("buildingkey");//获取查询参数
BuildingLogicbuildingLogic=newBuildingLogic();
ArrayListresult=null;//结果集
HttpSessionsession=request.getSession();
session.removeAttribute(Contant.KEY_SEARCHBUILDING_RESULT);
if(buildingkey==null||buildingkey.equals("")){
//调用业务逻辑层的buildingsearch()
result=(ArrayList)buildingLogic.buildingSearch("all");
session.setAttribute(Contant.KEY_SEARCHBUILDING_RESULT,result);
//将结果存到session中
}else{
result=(ArrayList)buildingLogic.buildingSearch(buildingkey.trim());session.setAttribute(Contant.KEY_SEARCHBUILDING_RESULT,result);//将结果存到session中}
buildingLogic.buildingsearch()代码如下:StringBuffersql=newStringBuffer("selectid,BuildingName,publisherfromtb_buildinginfo");
BuildingDaobuildingdao=newBuildingDao();
if(buildingkey.equals("all")){result=(ArrayList)buildingdao.buildingInfoSearchBykey(sql.toString());}else{
sql.append("whereBuildingNamelike'%"+buildingkey+"%'");result=(ArrayList)buildingdao.buildingInfoSearchBykey(sql.toString());
}
returnresult;第七章系统测试软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。7.1测试概述软件测试是软件开发过程的重要组成部分,是用来确认一个程序的质量和性能是否符合开发要求。最终是否可以提交给客户的一个重要衡量标准。系统在提交给客户使用之前必须进行严格反复的测试,测试可以分为如下几个方面的测试:功能测试、性能测试、可用性测试、客户端兼容测试、安全测试等。测试过程中要及时填写测试报告,认真详细的填写,并且及时上交测试报告,可以根据测试报告及时发现问题并提出解决方案,便于系统维护与升级还有就是要注意运行环境的测试,充分考虑到用户可能使用的操作系统及其他软件,使用虚拟机进行充分的运行环境测试。7.2测试用例设计测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小实体。表7-1楼房查询的测试用例用例描述前提条件用例步骤期待结果实际结果楼房查询服务器正常运行输入框信息为空提示输入不能为空与期待结果相同楼房查询服务器正常运行输入长度超过40个字符的查询关键字报错,该数据库连接名称长度超过40字符与期待结果相同楼房查询服务器正常运行输入有正确关键字正常运行,返回有效数据与期待结果相同修改楼房信息的测试用例如表7-2所示。表7-2修改楼房信息的测试用例用例描述前提条件用例步骤期待结果实际结果修改楼房信息服务器正常运行修改楼房种类修改成功,给出提示,种类更改与期待结果相同修改楼房信息服务器正常运行修改楼房种类不存在提示楼房种类不存在,种类不做更改与期待结果相同修改楼房信息服务器正常运行修改楼房名称正常运行,返回有效数据与期待结果相同修改楼房信息服务器正常运行修改后的楼房的名称超过40个字符提示信息,楼房的名称不能超过40是字符与期待结果相同7.3本章小结通过本次测试,本系统基本完成用户需求,实现了设计中所有的业务流程。但是还存在一些小的问题,比如大数据量的压力测试,通过专业软件测试时,系统有可能崩溃。在执行效率上,还没能达到预期那么好的效果,还需要对本系统进行优化和改造。测试用例的设计上也可能存在环境的障碍。结论在前面章节中,我们对网上售楼系统的建设过程从需求分析、设计、实现等阶段分别做了介绍。本次论文设计,主要是针对管理模块的。为用户提供了一个管理售楼系统的模块。在本项目的开发过程中,采用规范的软件工程开发流程,因此在需求分析阶段、数据库设计阶段,都花费了大量的时间,做了大量的工作。在后期为本系统编码的过程中,前期工作都起到了很好的指导作用,致使编码工作得已顺利完成,整个系统能够及时完成。从本论文中也可以看出,需求分析以及数据库设计的重要性。在本模块的具体功能设计上,可重用性以及通用性做的还是比较好的,大量封装的自定义控件,承载了控件大部分的功能,其他人可以随意的使用已经在本系统中封装好的所有自定义控件。参考文献Y.DanielLiangIntroductiontoJavaProgramming,Comprehensive(7thEdition)PrenticeHall,2008-05:21-33. Cay.S.Horstmann,GaryCornellCoreJava2,VolumeI–Fundamentals,SeventhEditionPrenticeHallPTR,2006-08:97-102.RichardNiemiecOracleDatabase10gPerformanceTuningTips&TechniquesMcGraw-HillOsborneMedia,2008-12-19:37-45.CarS.Horstmann、GaryCornell著叶乃文等译,Java2核心技术卷1:基础知识(原书第七版),北京:机械工业出版社,2006-05:25-74.三扬科技,开发者突击Struts2核心技术与JavaEE框架整合开发实战,北京:业出版社2008-10:30-55.郭峰,Spring从入门到精通,北京:清华大学出版社,2006-10:23-57.刘中兵、许晓昕、薛道铭,精通Tomcat—javaweb应用开发、框架分析与组件配置、系统集成与案例实战,北京:清华大学出版社,2007-04:101-115.李建中、王珊,数据库原理系统,北京:电子工业出版社,2005:87-150.阎宏,Java与模式,北京:电子工业出版社,2002-10:34-45.史济民、顾春华、李昌武、苑荣,软件工程—原理、方法与应用(第二版),北京:高等教育出版社,2002-12:35-57.朱振元、朱承、刘聆,数据结构教程—java语言描述,西安:西安电子科技大学出版社,2007-12:99-132.田应福,张声俊.考试质量分析的方法与在计算机上的实施.安顺师范高等专科学校学报2006黄燕妮.高校课程考试管理研究的现状与发展[J].湖南农业大学学报,2006-10鲁春燕,孙娟.浅析C/S模式和B/S模式的优缺点[J].福建电脑,2008-06]欧阳小松.考务管理简论.理论观察2006年第17期(总第13期)吕岚.论SQLServer构架数据完整性约束的实现技术.甘肃科技2008-03教育部考试中心主编.考试的教育测量学基础.[M]北京:高等教育出版社,第2版,2006-03:400-510[教育部考试中心主编.考试的统计分析方法.[M]北京:高等教育出版社,第5版.2006-04毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:日期:
学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名: 日期:年月日导师签名:日期:年月日
致谢时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。致谢四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。最后,我要特别感谢我的导师刘望蜀老师、和研究生助教吴子仪老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡村一体化工作制度
- 五四八小时工作制度
- 乡安办分管工作制度
- tdk公司工作制度
- 代煎工作制度及流程
- 办公室办文工作制度
- 加拿大政府工作制度
- 劳动法课堂工作制度
- 医学生实习工作制度
- 医药办公室工作制度
- 2025课堂惩罚 主题班会:马达加斯加企鹅课堂惩罚 课件
- 《市域(郊)铁路设计规范》条文说明
- 法人代表代持协议书
- 物理化学课件 04章-多组分系统热力学
- 第17组 情系雨花台
- 缅怀革命先烈-感恩幸福生活-主题班会方案
- 关于房屋征收工作重难点的调研报告
- GB/T 39532-2020能源绩效测量和验证指南
- GA/T 1344-2016安防人脸识别应用视频人脸图像提取技术要求
- 基础教育精品课《杨氏之子》课件模板
- 2022年青岛前进船厂招聘笔试题库及答案解析
评论
0/150
提交评论