1、网上图书销售系统说明书文件编号:T-50-J-2010-06-04生效日期:密级:机密版本号:1.1总页数24正文22附录编制:审核:批准:发行受控编号组员:哈尔滨华夏计算机职业技术学院目录引言2概述21、可行性分析22、需求分析32.1系统总体的功能需求32.2用户接口模块42.3管理员接口模块52.4运行环境需求73、系统的UML建模73.1建立初始模型73.2系统的用例
2、图73.3系统的时序图与协作图93.4系统的活动图143.5类图的生成143.6各类这间的关系153.7系统的配置与实现164、概要设计174.1系统设计目标174.2系统设计思想174.3系统功能模块划分184.4系统结构设计194.5系统功能简介204.5.1系统基本功能204.6数据库设计204.6.1数据库需求分析204.6.2数据库概念结构设计204.7数据库逻辑结构设计225、详细设计245.1程序描述245.1.1功能245.1.2可用性
3、245.1.3可靠性245.1.4性能255.1.5联机用户文档和帮助系统需求255.1.6接口255.2总体设计255.2.1数据层255.2.2应用层285.2.3表示层29引言随着Internet国际互联网的发展,越来越多的企业开始建造自己的网站。基于Internet的信息服务,商务服务已经成为现代企业一项不可缺少的内容。很多企业都已不满足于建立一个简单的仅仅能够发布信息的静态网站。现代企业需要的是一个功能强大的,能提供完善的电子商务服务的动态商务网站。同时人们的生活方式也在随着发生改变,传统的购物方式已不能
4、满足人们的需求。概述随着时代的发展,信息技术、Internet/Intranet技术、数据库技术的不断发展完善,网络进程的加快,传统的购物方式也越来越不能满足人们快节奏的生活需求,使得企业的IT部门已经认识到Internet的优势,电子商务就是在这样一个背景下产生发展起来的。伴随着电子商务技术的不断成熟,电子商务的功能也越来越强大,注册用户可以在网上搜索购买到自己想要的各种商品,初步让人们体会到了足不出户,便可随意购物的快感。网上图书销售系统就是一个电子商务系统的开发。1、可行性分析商业企业在运营过程中,经常会受到以下一些条件的限制:l产品的宣传受到限制,采购商或顾客只
9、理客户的订单,可以阅览网站商品的销售情况、销售走势,以便根据不同的情况及时的调整经营战略,将库存成本和资金占有用率降到最低的限度。3.数据服务模块数据服务器模块是系统正常运行的基础,包括客户的查询,定单的保存;网站工作人员的定单处理;网站管理员的销售情况查询与分析。2.2用户接口模块用户接口模块包括如图2-2所示的几个方面。图2-2用户接口模块1.用户信息维护每个使用该系统的用户必须经过注册,而注册的用户名是用户的唯一标识。系统可以接收更多可用的客户信息,比如购物方面的喜好、经济能力等。系统的后台程序会自动记录
18、件允许的情况下,应该尽量使用高速稳定的配件。2.软件设备操作系统Windows98/Windows2003/Windowsxp数据库系统SQLSERVER20003、系统的UML建模3.1建立初始模型选择菜单[File-New]“CreateNewModel”对话框,选择J2EE模式,然后点击[OK]按钮。此时,RationalRose会自动加载J2EE本身的一些构架模型。加载完成后,就可以开始设计自己的模型,在此之前先保存该模型,并且将该模型取名为“网上图书销售系统”。3.2系统的用例图用例图(UseCase
19、View)强调从用户的角度看到的或需要的系统功能,是被称为参与者的外部用户所能观察到的系统功能的模型图。1.确定参与者在本系统的UML建模中,可以创建以下的参与者。(1)顾客:(2)管理员:(3)一般员工。2.创建用例根据业务流程,网上图书销售系统可以分为以下的几个用例(UseCases)。(1)订单处理:(2)订单维护:(3)订单状态查询:(4)个人信息维护:(5)订购:(6)接收发货:(7)库存查询:(8)缺货拒绝:(9)商品查询:(10)商品信息维护:(11)销售
23、图3-6顾客建立订单协作图(5)顾客删除订单协作图如图3-7所示。图3-7顾客删除订单协作图(6)管理员处理订单协作图如图2-8所示。图3-8管理员处理订单协作图3.4系统的活动图活动图可以分为垂泳道,每个泳道进表示工作流中不同的参与者。查看泳道中的活动,就可以知道某个参与者的责任。通过不同泳道中活动的过渡,可以了解谁要与谁进行通信。这些信息在建模或理解业务程时非常重要
26、图3-11系统中的其他类(1)book是图书类。它的属性包括图书ID、图书名称(name)、图书介绍(introduce)、图书作者(author)、图书价格(price),商品类的方法有add()用于添加。(2)Orders是订单类。它的属性包括订单ID、用户ID、商品ID、订单日期(date)。订单类的方法包括添加订单add()。查询订单select()、删除订单delete()。这些方法中select()供person类使用,delete()供Custome类使用。(3)Record存储记录类。该类存储了所有的用户操作,包括用户的查询和订购操作,这些
27、数据是后台程序分析的基础。该类的属性包括记录ID、用户ID、图书ID、操作类型、数量,方法查询select()、打印print()、添加add()、删除delete()。3.6各类这间的关系网上图书销售系统各类这间的关系如图3-12所示。图3-12类间关系图〖类图说明〗一个操作员可以处理多个订单。一个管理员也可以处理多个订单,并且管理员具有数据查询的权限。一个订单中包括了多个商品,一条历史记录中也包括了多个商品,一个顾客只能对应一条历史记录,但他有多个订单的记录。3.7系统的配置与实现
28、下面介绍系统的组件图与配置图。3.7.1系统的组件图系统的组件图如图3-13所示,包括系统服务、客户服务和数据服务3个组件。图3-13系统组件图3.7.2系统的配置图系统由多个节点构成,应用服务器负责整个系统的总体协调工作,数据库负责数据管理。客户机通过互联网与应用服务器相连,这样管理员可以通过互联网管理应用服务器,客户可以通过互联网访问应用服务器得到图书销售服务。系统的配置图如图3-14所示。图3-14系统配置图
30、的图书,并可展示最新图书及特价图书。l为顾客提供一个方便、快捷的图书信息查询功能。采用模糊查询查询数据。l实现网上购物。l商品销售排行,以方便顾客了解本商城内的热销商品及帮助企业领导者做出相应的决策。l查看商城内的公告信息。l用户随时都可以查看自己的订单。l对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。l系统最大限度地实现了易维护性和易操作性。l系统运行稳定、安全可靠。4.2系统设计思想本系统采用三层架构设计,它的工作原理如图4-1所示。图4-2三层结构原理图采用三层构架以后,用户界面层通过统一的接口向业
31、务层发送请求,业务层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。这样用户界面层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。4.3系统功能模块划分根据需求分析及三层架构设计的思想,设计出客户系统功能如图4-3图4-3客户端系统后台管理的系统功能图如图4-4图4-4后台管理系统功能图4.4系统结构设计根据面向对象和三层结构设计的思想,可得出如图3-5所示的系统结构设计图。图4-5系统结构图4.5系统功能简介
33、以更好的拓展销售规模。4)订单处理根据购物车中的信息,以及用户所选择的送货方式和付款方式,和用户对应的个人信息生成订单,便于后续工作的处理。在该模块中,用户可以随时查阅自己的订单,并对其进行取消等处理操作。4.6数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致[10]。4.6.1数据库需求分析针对网上图书销售系统的需求分析,得出如下需求信息。订单分为单张详细订单和总订单。一个用户可以购买多本图书。一个用户对应一张
35、管理员实体的E-R图,如图4-7所示。图书分类实体的E-R图,如图4-8所示。用户信息实体的E-R图,如图4-9所示。图书实体的E-R图,如图4-10所示。订单实体的E-R图,如图4-11所示。订单列表实体的E-R图,如图4-12所示。图4-7管理员实体的E-R图图4-8图书分类实体E-R图图4-9用户实体E-R图
36、图4-10图书实体E-R图图4-11订单实体E-R图图4-12订单列表实体的E-R图4.7数据库逻辑结构设计本系统数据库采用SQLServer2000数据库,系统数据库名称为bookshop,下面分别给出数据表概要说明、数据表关系概要说明及主要数据表的结构。1、数据表概要说明数据表树型结构图如图4-13所示,该数据表树型结构图包含系统所有的数据表图4-13数据表树型结构图2、各个表的的结构如下表表4-1为图书信息列表,记录书店现有的图书信息。表4-1Book表列名数据类型长度允许
37、空注释IDInt4图书编号BookNamevarchar40否图书名称BookClassInt4否图书分类AuthorVarchar25是作者PublishVarchar150是出版社BookNoVarchar30是书号Contenttext300是内容Pricefloat8是价格Amountint4是总数量Leav_numberint4是剩余数量RegTimedatatime
40、信息。表4-4订单总表列名数据类型长度允许空注释IDInt4否总订单编号OrderIDInt4否订单号BookNoInt4否书号Amountint4是数量表4-5为订单表,记录但张订单的具体信息。表4-5订单表列名数据类型长度允许空注释IDInt4否订单IDOrderIDVarchar50否总订单IDUserIdVarchar50否用户I
42、长度允许空注释IDVarchar30否分类编号ClassNamevarchar30否分类名5、详细设计5.1程序描述5.1.1功能(1)顾客可以方便地查看图书信息,及了解每天的特价图书。(2)顾客可以方便地队购物车中的图书进行增加、删除、修改和下订单。(3)顾客可以反馈自己的满意和部满意意见。(4)图书管理员可以方便地添加、删除、修改图书。(5)订单管理员可以方便地查看订单,可以方便地进行发货操作和记录缺货的处理情况。(6)顾客反馈信息管理员可以方便地查看顾客反馈信息和记录反馈信息的处理情况。
44、1000人同时使用。5.1.5联机用户文档和帮助系统需求联机用户文档、帮助系统需求说明书。5.1.6接口(1)用户界面本系统的用户界面分为用户程序和网络程序两个部分。程序是标准的Windows程序,提供图形化的用户界面。(2)外部接口本系统使用的是数据库开发技术,采用了ADO技术访问数据库。系统各个模块所访问的数据都存储在数据库中,杜绝了文件访问,具有很高的安全性和保密性。因此本系统与外部是接口主要是数据库与外部的接口。(3)内部接口本系统与数据库通过ADO与ODBC连接。Client/Server采用ODBC接口实现数据库的调用,Browser/
45、Server采用ADO接口调用5.2总体设计5.2.1数据层数据服务是一组包装了对数据库进行各种操作(如连接数据库、获取数据、关闭连接等)的类。(1)Base类该类主要提供一些基本的数据库操作方法。方法名称描述ProtectedstaticintExecuteSql(stringstrSQL)执行SQL命令。通过使用SqlCommand对象的ExecuteNonQuery方法来判断执行结果。ProtectedstaticintExecuteSqlEx(stringstrSQL)执行SQL命令的另一种方法。通过SqlD
46、ataReader.Read方法来判断执行结果。ProtectedstaticDataSetExecuteSql4Ds(stringstrSQL)将SQL命令执行结果填充到一个数据集中,并返回该数据集。ProtectedstaticintExecuteSql4Value(stringstrSQL)返回一个单一的值。使用SqlCommand对象的ExecuteScalar方法执行查询,并返回查询所返回的结果集中第一行的第一列。ProtectedstaticobjectExecuteSql4ValueEx(stringstrSQL)与ExecuteS
48、licDataViewGetBookTop10()返回销售榜前十。PublicSqlDataReaderGetBookByHits()返回点击率最高的前十本书。PublicDataViewGetBookCover(intbookID)返回某一本书的封面。PublicDataRowGetBookDetail(intbookID)返回某一本书的详细信息。PublicSqlDataReaderGetBookMessage(intbookTypeid)返回某一本书的简介。PublicDataViewGetNewBook()返回新
52、(stringname,stringoldPassword,stringnewPassword)更改密码。PublicstaticboolCheck(stringname,stringmail)忘记密码时,检查是否存在该用户。PublicstaticvoidDelete(intid)通过用户id删除该用户。PublicstaticvoidDelete(stringname)通过用户名删除该用户。PublicstaticvoidDeleteGroup(stringnames)同时删除多个用户。Publicstati
55、eleteGroup(stringids)删除多条书籍信息。PublicstaticDataSetGetLackRecords()返回没有管理员回复的所有书籍。PublicstaticDataSetGetLackRecords(intuserid)返回某个用户希望增加的那些书籍。PublicstaticboolIsExist(stringname,stringpublisher)确认库存中是否确实没有该书。PublicstaticvoidSetReply(intid,stringreply)添加回复。Publicst
57、etails(intorderid)获得订单中某一书籍的详细信息。PublicstaticDataSetGetOrder(intorderid)返回某一订单。PublicstaticDataSetGetOrders()返回所有未处理订单。PublicstaticDataSetGetOrders(intids)返回某用户所下的所有订单,以及订单的相应状态。PublicvoidRemove(intitemid)通过OrderDetails表中的ID字段来删除订单中的某一本书。PublicvoidRemoveAt(intin
59、PublicstaticvoidAdd(intbookID,intuserID)添加书籍到临时购物车中。PublicstaticvoidClear(intuserID)清空当前用户购物车中的所有书籍。PublicstaticvoidDelete(intbookID,intuserID)从购物车中删除某一本书。PublicstaticDataSetGetBooks(intuserID)获得当前用户购物车中所有的图书。PublicstaticboolIsExist(intbookID,intuserID)查询当前用
60、户的购物车中是否已经有了该书。5.2.2应用层对于管理数据库来说,书籍访问类已经足够了,因为添加、编辑或删除记录时没有特殊的规则需要遵循。简单的规则,例如防止添加已经存在的记录的规则在设计数据库的时候就已经指定了。然而,如果需要处理更复杂的商务规则,或者需求用更加面向对象的方法来访问数据,者时候,数据层只能提供基本的功能,而不能提供描述对象与其它对象(子类对象、父类对象)之间关系的属性。因此,需要创建另一些类来提供这些功能,并且把商务逻辑层与数据层分开。这是必须的,因为较底层不应该访问适用于其它层的信息,如果需要此信息,那么它就应该作为方法的参数传递。应用层是基于数据层之上的,并
61、且有提供实体的完整的面向对象的描述的类,也有操作它们的方法。它能隐藏数据层的详细信息,并能防止直接访问被保护的记录。Functions类该类包括许多本系统所有使用的通用函数、过程,这样可以通过代码的重用来优化系统。方法名称描述PublicstaticstringDeTranssform1(stringstr)对字符串进行解密。PublicstaticstringDeTranssform3(stringstr)另一种解密字符串的方法。PublicstaticstringDe(stringstrCookie,inttype)
62、根据type的值选择不同的解密方法。PublicstaticstringDecrypt(stringPassword)解密用户的密码。PublicstaticstringDecryptCookie(stringstrCookie,inttype)解密Cookies。PublicstaticstringTransform1(stringstr)加密方法1。PublicstaticstringTransform2(stringstr)加密方法2。PublicstaticstringTransform3(strings
63、tr)加密方法3。PublicstaticstringEn(stringstrCookie,inttype)根据type的值选择不同的加密方式。PublicstaticstringEncrypt(stringPassword)对密码使用FormsAuthenticationTicket对象进行加密。PublicstaticstringEncrypt(stringPassword,intFormat)对密码进行SHA1(Format=0)或MD5(Format=1)加密。PublicstaticstringEncrypt(stri