本科毕业设计校园旧货交易系统卖方角色模块设计与开发Word文档格式.docx
《本科毕业设计校园旧货交易系统卖方角色模块设计与开发Word文档格式.docx》由会员分享,可在线阅读,更多相关《本科毕业设计校园旧货交易系统卖方角色模块设计与开发Word文档格式.docx(43页珍藏版)》请在冰点文库上搜索。
第一章引言
1.1课题来源
从1990年以来,随着我国国民经济的发展与产业结构的快速升级,我国旧货业发展迅速。
1998年,我国旧货交易额仅为300亿元,到2003年底就已经突破了1200亿元,年均增长达到41.42%。
然而,由于我国旧货市场的价格体系还不够完善,不可避免地会出现旧货非规范定价的问题,从而损害了消费者的利益,影响到旧货的正常流通。
[1]
因此,对旧货市场而言,信息的媒介作用就显得非常重要。
构建合理的收售网络、加强信息沟通,成为必要。
随着Web技术的不断进步,旧货交易系统和旧货交易网站蓬勃发展起来。
例如国外的“电子港湾”,国内的“当当”,都开辟了自己的网上二手商品市场。
开发设计校园旧货交易系统有两个方面的现实意义:
一是解决了同学们,特别是即将毕业的同学旧物无法处理的困难;
二是使急需这些物品的同学,以较低廉的价格购买到想要的东西,实现了资源的合理利用。
1.2开发工具的选择
现在用来构建网上交易系统的语言和技术种类非常丰富,我们此次设计和开发的校园旧货交易系统主要采用C#、ASP.NET2.0、ADO.NET等语言和技术,在MicrosoftVisualC#2005Express、MicrosoftVisualWebDeveloper2005Express和MicrosoftSQLServer2005等开发工具和开发环境下进行。
C#是微软公司在C、C++之后发布的一种新的编程语言,它对C、C++做了重大改进,在继承前两者强大功能的同时,去掉了它们的一些复杂特性,成为一种高效的、现代的面向对象的程序设计语言。
[2]
ASP.NET2.0并不是在ASP基础上的简单升级,而是全新一代的动态网页实现系统。
ASP程序是面向过程的,语句是被HTML包围,一条一条执行,在程序上难于维护,在效率上和速率上也都大打折扣,查看代码也很吃力。
ASP.NET作为一种全新的Web开发技术,给了设计者一种全新的设计概念。
它将软件设计和Web设计融为一体。
它和VB.NET、VC.NET、VC#.NET这些程序设计语言使用同一个.NETFramework对象开发库,故其可实现的功能非常强大,加上高系数的安全性、快捷的处理速率、条理清晰的类代码以及许许多多的集成功能,使从前在ASP中难以实现的功能在ASP.NET2.0中可以轻松实现。
[3]
ADO.NET是由.NETFramework为了与数据库中的数据进行交互而提供的一组对象类的名称,它可以与许多类型的对象交互,不仅有存储在数据库中的数据,还有存储在电子邮件服务器、文本文件、应用程序文档(例如Excel电子表格)和XML中的数据。
ADO与ADO.NET都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且具有易于使用、高速度、低内存支出和占用磁盘空间较少、支持用于建立基于客户端/服务器端的Web应用程序的主要功能。
但是ADO使用OLEDB接口并基于微软的COM技术,而ADO.NET拥有自己的ADO.NET接口并且基于微软的.NET体系架构。
因为.NET体系不同于COM体系,ADO.NET接口也就完全不同于ADO使用的OLEDB接口,这也就是说ADO.NET和ADO是两种数据访问方式。
ADO.NET相对于ADO的最大优势在于对于数据的更新修改可以在与数据源完全断开联系的情况下进行,然后再把数据更新情况传回到数据源。
这样大大减少了连接过多对于数据库服务器资源的占用。
[4]
第二章.NET框架
2.1.NET整体框架
微软新一代的平台名称为“Microsoft’sNextGenerationWindowsServices”,即“新一代Windows服务”。
这个平台的注册商标是“Microsoft.NET”。
Microsoft.NET是MicrosoftXMLWebService平台。
XMLWebService允许应用程序通过Internet进行通讯和共享数据,而不需要考虑采用的是哪种操作系统、设备或编程语言。
Microsoft.NET平台提供创建XMLWebService并将这些服务集成在一起。
Microsoft.NET将开创互联网的新局面,使基于HTML的Web界面通过基于XML的信息得到扩展与增强。
2.1.1NGWSFramework的定义
.NET作为一个崭新的运行平台,它使用关键的结构提供对所有.NET下应用程序以及Web程序的支持,包括对ASP.NET的支持。
图2.1说明Framework支持ASP.NET和Windows应用程序的方式。
图2.1.NET模型
2.1.2NameSpace定义
对象是Windows开发环境中程序开发的中心,在不同的开发环境下,会具备不同的对象。
.NET所使用的对象就是命名空间(NameSpace)。
在经典的ASP中,只有Server、Request、Response等六个对象。
而ASP.NET可以使用.NET类库中非常丰富的对象。
.NET类库中丰富的对象都有对应的名称定义,例如,要调用SQL数据库就必须使用System.Data.SqlClient,要使用文本文件就必须使用System.IO,要使用XML就必须使用System.Xml,这些就是命名空间。
在命名空间里面包含类(Class),这些类都可以被看作为对象,它们有自己的属性、方法。
因此每个命名空间可以看作是同类型对象的集合。
所以在ASP.NET中需要用到某个对象时,就需要引入相应的命名空间。
.NET类库、命名空间、类之间的关系可以用图2.2表示。
图2.2.NET类结构模型
因此,简单地说,.NET框架就是通过Framework提供对.NET的支持,并使用其丰富的类库进行程序的开发。
[5]
2.2Web应用程序模型
早期Web上的所有信息都是静态的,Web服务器仅仅对从本地文件系统下载静态的HTML的请求做出响应,并把该网页发送给发出请求的客户。
静态技术的优点在于可以以很高的效率提供信息的访问,并且站点的架设与开发都相当容易。
随着Web的迅速普及,人们开始给静态的HTML网页添加动态的内容以开发各种丰富的应用领域。
动态Web的技术发展主要有两个方向:
服务器端技术和客户端技术。
服务器端技术指在Web服务器端,根据客户的请求,动态生成相应的内容,然后发送给客户端浏览器。
早期的服务器端技术有CGI(CommonGatewayInterface,通用网关接口),ISAPI(InternetServerApplicationProgrammingInterface,因特网服务器应用程序编程接口),FastCGI等,后期有Serverlet、JSP、ASP、PHP等。
[6]
我们仅仅简单研究一下ASP然后过渡到我们构建系统时所使用的ASP.NET。
ASP属于一种较新的服务器端动态技术,它只能和微软的IIS(InternetInformationServer,因特网信息服务器)配合使用。
ASP技术的核心是ASP文件,每一个ASP文件由脚本语言与HTML语言混合写成。
Web服务器在收到客户浏览器的请求后,首先在一个独立的环境中加载ASP文件,然后分析文件中嵌入的脚本并编译与执行这些脚本指令,最后Web服务器把脚本执行的输出结果返回到客户端。
2.2.1ASP.NET的基本概念
ASP.NET是用于创建动态Web内容的一种强大的服务器端技术,较之ASP是一个质的飞跃。
ASP.NET与其底层框架.NET紧密结合,为动态的Web开发技术提供了丰富而强大的类库资源。
ASP.NET与.NETFramework的结合关系如图2.3所示。
图2.3ASP.NET与.NETFramework
ASP.NET将事件模型引入到Web应用程序的开发领域。
与事件模型对应的应用程序模型是传统的顺序执行模型。
最早的基于字符界面的应用程序采用的就是顺序执行模型,也就是由应用程序来控制用户的交互流程,当程序需要用户输入某些信息时,在屏幕上就会出现提示。
随着Windows应用的兴起,事件模型成为图形用户界面(GraphicsUserInterface,GUI)的应用程序的标准,这种模型下用户控制应用程序的运行流程。
用户通过鼠标、键盘向应用程序发出事件,程序响应这些事件以完成相应的功能。
[7][8]
最早的Web应用程序模型也采用顺序执行模型。
服务器端的脚本一次处理所有的脚本指令,然后把生成的动态信息发送给客户端。
随着Windows图形界面程序的普及,HTML表单也越来越趋近于Windows程序的交互风格,用户通常需要和页面进行各种复杂的交互。
从理论上讲,这种图形界面的应用采用事件模型更为合理,但由于底层协议的问题,绝大部分的Web开发技术还是采用了顺序模型。
图2.4显示了事件模型与顺序模型的区别。
图2.4事件模型与顺序模型
ASP.NET可以使用多种语言开发。
从原理上说,凡是可以在.NET平台开发应用的语言以及可以生成微软中间语言代码(MSIL)的编译器,都可用来开发ASP.NET。
目前主要的语言有VisualBasic.NET、C#、Jscript.NET以及受托管的C++(ManagedC++)等。
采用这些语言书写的源程序被编译为微软中间语言以后,其底层代码没有任何区别,可以互相调用各自生成的对象。
ASP.NET文件类型如表2.1。
表2.1ASP.NET的文件类型
文件扩展名
用途及说明
Global.asax
ASP.NET系统环境设置文件,相当于ASP中的Global.asa
.aspx
内含ASP程序代码的文件,如同过去的ASP,浏览器可执行此文件,向服务器提出浏览请求
.asmx
制作WebService的原始文件
.sdl
制作WebService的原始文件XML格式的文件
.vb或.cs
在非ASP.NET环境下,执行WebService的文件
.aspc
可重复使用多个.aspx文件,此文件内容可含有控件
2.2.2NGWSRuntime
ASP.NET是一种编译型编程框架,它的核心是NGWSRuntime。
NGWSRuntime提供一种运行时环境,叫做公用语言运行时,它管理代码的执行,并提供使编程更容易的服务,这些服务包括:
●交叉语言集成。
●自动内存管理。
●交叉语言异常处理。
●增强安全。
●版本支持。
●组件交互简化模式。
[9]
2.2.3ADO.NET
(1)ADO.NET简介
ADO.NET是ADO的升级版本。
在ADO.NET中,通过ManagedProvider提供的应用程序编程接口(API),可以轻松地访问各种数据库资源。
ADO.NET中对数据库的访问接口分为两类,通用接口和专用接口。
通用接口主要支持ODBC和OLEDB两大接口的数据库,而这两个接口几乎能访问所有的数据库。
专用接口访问的数据库比较特殊,例如SqlClient数据库接口只能访问SQLServer数据库,MySqlClient接口只能访问MySql数据库,Oracle接口只能访问Oracle数据库。
专用接口在性能方面一般优于通用接口。
因此在程序的数据库不需要变动的情况下,采用专用接口是比较科学的。
ADO.NET中最重要的两个概念是ManagedProvider和DataSet。
ManagedProvider
在以前的ASP中,通过ADO的数据存取采用了两层的基于连接的编程模型。
随着多层应用需求的不断增加,程序员需要无连接的模型。
ManagedProvider就是多层次的无连接编程模型。
它提供DataSet与数据库之间的联系,包括存取数据库的一系列接口,主要包括以下三个部件。
1Connection、Command和Parameter。
这三个对象提供DataSet与数据库之间的接口。
DataCommand接口定义数据列和表映射,并最终返回DataSet供程序操作。
2数据流提供高性能的数据存取机制,通过DataReader可以高效地访问数据流。
3通过更底层的对象允许连接到数据库,然后执行数据库的特定命令,提供高性能的数据库访问操作。
DataSet
DataSet是ADO.NET的中心概念,称为数据库容器,可认为其是保留在内存中的数据库。
DataSet可以屏蔽各种数据库的差异,所有的数据源通过DataSet获得一致的编程模式。
DataSet支持表、表间关系、数据约束等功能,这和关系型数据库的基本模型是一致的。
1DataTable对象
DataSet里的表是用DataTable来表示的。
DataSet可以包含很多个DataTable,这些DataTable构成DataCollection对象。
在DataTable中包含ColumnsCollection对象,它代表数据表的各个列;
还包含RowCollection对象,它代表数据表中的各个行。
2DataRelation对象
多个DataTable可以通过DataRelation建立关系,这些DataRelation形成集合,称为RelationConnection,它是DataSet的子对象。
Relation表示数据表之间的主键与外键的关系,当两个有这种关系的表之中的某个表的记录指针移动时,另一个表的记录指针也随之移动。
当有外键的记录更新时,如果不满足主键-外键关系,更新将会失败。
(2)使用ADO.NET访问数据库
ADO.NET中最重要的概念是DataSet,DataSet是不依赖于数据库的独立数据集合。
即便数据连接断开,DataSet依然可用。
通过DataSet,ADO.NET访问数据库的步骤为:
1创建与数据源的连接。
2请求数据集合。
3将集合放入DataSet中。
4如果需要的话,可以再请求另外的数据集合。
5关闭数据连接。
6在DataSet上进行所需要的操作。
7如果需要,将DataSet的变化更新到数据库中。
在Windows平台下ADO.NET主要由三种数据库访问模式:
OLEDB模式、ODBC模式、SqlClient模式。
我们这里主要研究和使用SqlClient模式。
SqlClient只用于访问MSSqlServer数据库,是ADO.NET中的比较特殊的组件。
使用SqlClient模式时需要引入的命名空间有System.Data和System.Data.SqlClient。
(i)连接数据库(SQLServer的连接)
SqlClient模式是ADO.NET中对SQLServer数据库推荐使用的访问模式,是专门针对SQLServer而设计的访问接口,能提供高效、稳定的数据库访问服务。
在设定数据库连接时需指定SQLServer服务器、具有所需数据库访问权限的用户名及密码、所要访问的数据库名称等参数。
常见连接数据库的格式为:
SqlConnectionmyConnection=newSqlConnection("server=服务器;
uid=用户名;
pwd=密码;
database=数据库");
(ii)使用Command执行数据库操作
使用Command执行数据库操作一般需要三个步骤:
⑴建立数据库连接,使用Connection对象的Open()方法。
⑵执行数据库操作,使用ExecuteReader()或ExecuteNonQuery()执行数据库命令。
⑶关闭数据库连接,使用Connection对象的Close()方法。
[10][11]
第三章系统总体设计
软件系统的设计大约要经历可行性分析,项目开发计划,需求分析总体设计,详细设计,编码,测试以及维护等七个阶段。
可行性分析和项目开发计划在前面已经叙述,下面所要做的是进行软件需求分析,概要设计和详细设计。
编码过程将在下一节论述,而测试和维护过程不在本文叙及。
3.1系统需求分析
校园旧货交易系统主要面向管理员、卖方和买方三个角色。
角色是与系统交互的人或事,可以向系统发送消息,从系统中接受消息,或是在系统中交换信息。
在这三个角色中,系统管理员对系统具有最高权限,可以进行除信息发布、查询、删除、更改等一般操作外,还可以对系统功能单元、页面布局、成员资料进行合理修改。
卖方和买方在某种程度上属权限受限用户。
在经过前一阶段的角色分化之后,本课题主要研究校园旧货交易系统中“卖方角色”模块的设计与开发。
现在所要做的是要准确定义卖方角色在系统中的工作以及系统必须具备的功能。
使用用例图分析校园旧货交易系统中卖方角色要实现的功能。
用例代表的是一个完整的功能。
UML中的用例是动作步骤的集合。
动作是系统的一次执行。
用例所代表的功能必须由角色激活,而后才能执行。
用例必须为角色提供实在的值,虽然这个值并不总是重要的,但是能被角色识别。
UML中的用例用椭圆表示,用例的名字写在椭圆的内部或下方。
用例位于系统边界的内部。
角色与用例之间的关联关系用一条直线表示。
如图3.1,可知卖方角色在系统中的功能主要包括四个
图3.1校园旧货交易系统(卖方)用例图
方面:
浏览商品信息、注册用户、发布商品信息以及回复买方关于商品信息咨询的留言。
[12]
为了使系统运行时更符合实际情况,我们还必须考虑卖方角色在交易系统中的行为变化。
我们使用状态图来描述这一过程。
状态图主要用来描述对象、系统、子系统的生命周期。
通过状态图可以了解到一个对象所能到达的所有状态以及对象收到的事件对对象状态的影响,而改变对象状态的事情称为事件。
一个状态图可以有一个起点和多个终点。
起点用一个黑圆点表示,终点用一个黑圆点外加一个圆表示。
状态图中的状态用一个圆角四边形表示。
状态之间的状态转移,用一条带箭头的线表示。
如图3.2。
图3.2校园旧货交易系统(卖方)状态图
卖方用户进入交易系统后,首先是进入商品信息浏览页面。
这将碰到多种情况:
一是用户没有新的商品信息要发布(这种情况下,用户被默认为合法的卖方用户),只是查看买方对以前商品的评论并回复留言,然后退出系统;
二是仅仅需要联系管理员,咨询相关问题或发出请求,然后退出系统;
最典型的一种情况是,卖方用户有新的商品需要销售,准备发布新的商品销售信息。
当用户具有合法身份时,可以进入商品信息发布区直接发布商品信息。
若为非合法用户,需先注册用户信息获得一个合法的身份ID号,然后再进入商品信息发布区发布商品信息。
完成后退出系统。
[13]
图3.2只是简要描述一下卖方角色在系统中的行为流程,而没有考虑用户可能因为某种原因而在两个状态间往复的情况。
例如用户在注册身份信息时,可能第一次注册失败,需要重新注册的情况;
或是在成功发布商品信息后,并不愿退出系统,而是希望继续查看商品信息的情况。
简洁化状态图,可以使卖方在系统中所要完成的功能更加明晰,更利于划分系统的功能模块。
3.2系统功能模块分析
根据前面的设计思想进行分析,按照系统开发的基本观点对网站进行分解,从内容上可对网站作如下划分:
1.商品信息浏览按照商品的类别实现对商品信息的查询,同时可以查阅特定商品的细节信息。
2.商品信息发布合法卖方可发布所售商