第1章 网上购书信息管理系统.doc

上传人:laozhun 文档编号:3798293 上传时间:2023-03-22 格式:DOC 页数:45 大小:2.08MB
返回 下载 相关 举报
第1章 网上购书信息管理系统.doc_第1页
第1页 / 共45页
第1章 网上购书信息管理系统.doc_第2页
第2页 / 共45页
第1章 网上购书信息管理系统.doc_第3页
第3页 / 共45页
第1章 网上购书信息管理系统.doc_第4页
第4页 / 共45页
第1章 网上购书信息管理系统.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《第1章 网上购书信息管理系统.doc》由会员分享,可在线阅读,更多相关《第1章 网上购书信息管理系统.doc(45页珍藏版)》请在三一办公上搜索。

1、第一章 网上购书信息管理系统 1.1用户需求的分析 1.1.1任务描述依据电子商务的特点与基本流程以及用户需求调查报告,通过理解需求阶段的目标,给业务上下文和系统功能建模,在完整的用例模型中记录系统需求,完成需求模型报告,最后依据需求模型报告进行产品需求规格说明书的撰写。1.1.2任务分析需求分析人员要按“初始、细化、构造与移交四步走”的路线,通过“以目标为基础、以用例为中心的三次迭代式需求分析”的过程来完成对用户需求的分析。(1)第一次迭代(初始):学会进行项目目标分解、进行项目目标可研分析,构造提交项目目标模型,形成项目大纲。(2)第二次迭代(细化):学会进行用例图建模,进行客户需求分析,

2、构造提供软件功能模型,形成客户需求文档。需求验证(移交):学会从需求类型与属性角度评估需求的质量,移交产品需求说明书1.2网上购书业务流程 开始是否是会员登录注册放入购物车下订单支付结束浏览网页查看图书详情是否 (1)用例模型用例模型是系统既定功能及系统环境的模型,它可以作为客户和开发人员之间的契约。用例是贯穿整个系统开发的一条主线。一个用例模型包括了系统的所有用例,它是系统所有可能用途的总和。蓝星网上购书信息管理系统用例一览表如表1-1所示:目标角色FG1:目录管理FG2:图书管理FG3:购物车管理FG4:订单管理FG5:支付管理FG6:会员管理管理员FG1:UC1:目录创建FG1:UC2:

3、目录编辑FG1:UC3:目录撤销FG1:UC4:目录查看FG2:UC1:图书入库FG2:UC2:图书出库FG2:UC3:图书撤销FG2:UC4:图书检索FG2:UC5:图书概要信息查看FG2:UC6:图书详细信息查看FG4:UC3:订单状态编辑FG4:UC4:订单信息查看FG4:UC5:订单检索FG4:UC6:订单撤销FG4:UC7:订单明细信息查看FG4:UC8:订单状态信息查看FG6:UC1:会员注册FG6:UC2:会员撤销会员FG1:UC4:目录查看FG2:UC5:图书概要信息查看FG2:UC5:图书详细信息查看FG3:UC1:购物车图书添加FG3:UC2:购物车图书计价FG3:UC3:

4、购物车图书数量更新FG3:UC4:购物车图书信息浏览FG3:UC5:购物车图书移除FG3:UC6:购物车图书清空FG4:UC1:订单生成FG4:UC2:个人订单信息查看FG5:UC1:信用卡支付FG6:UC3:个人资料修改FG6:UC4:会员登陆游客FG1:UC4:目录查看FG2:UC5:图书概要信息查看FG2:UC5:图书详细信息查看FG6:UC1:会员注册银行账户处理系统FG5:UC2:转账(2)业务对象模型1.2.1撰写需求规格说明书产品需求规格说明书的重点是阐述“做什么”,而不是阐述“怎么做”。产品需求规格说明书应当正确、清楚、无二义性、一致、完备、可实现以及可验证。 “正确”是产品需

5、求规格说明书最重要的属性。真正的困难是开发者和用户自己都不明白用户究竟“想要什么”和“不要什么”。为确保需求是正确的,开发方和用户必须对需求规格说明书进行确认;清楚的需求让人易读易懂,不在于文档的厚度; “无二义性” 是指每个需求只有唯一的含义。如果一个人说的话,不同的人可能有不同的理解,那么这句话就有二义性。如果需求存在二义性,将会导致人们误解需求而开发出偏离需求的产品。为了使需求无二义性,人们在写产品需求规格说明书时措词应当准确,切勿模棱两可。“一致”(Consistent)是指产品需求规格说明书中各个需求之间不会发生矛盾。矛盾常常潜伏在需求文档的上下文中。“完备”(Complete)是指

6、产品需求规格说明书中没有遗漏一些必要的需求。人们往往倾向于关注系统的特色功能,而忽视了其它一些不起眼的但却是必需的功能。 “可实现”意味着在技术上是可行的,并且满足时间、费用、质量等约束。经过双方确认的产品需求规格说明书相当于商业合同,如果开发方不能够实现产品需求规格说明书中的内容,那就是违约,可能会被罚款的。产品需求规格说明书中的各项需求对用户方而言应当都是可验证的(Verifiable)。如果需求是不可验证的,那么用户就无法验收软件,可能会发生商业纠纷。 二章 系统设计 软件构架是指一个系统的基础组织,具体体现在系统的组成构件,构件之间、构件和环境之间的关系,以及指导其设计和演化的原则上。

7、2.1任务描述设计蓝星网上购书信息管理系统构架2.2任务分析RUP的整个分析与设计过程如下图所示,其中Architect即为软件架构师角色,从下图中可见系统架构从分析到设计的全部活动。图1-8 系统架构分析与设计活动 2.3安全策略网上书店的实施,其关键是要保证整个商务过程中系统的安全性。实现网上书店的关键是要保证商务活动过程中系统的安全性,即保证基于互连网的电子交易过程与传统交易的方式一样安全可靠。1密码技术采用MD5加密。2访问控制 采用授权策略和机制。保护可以从以下几个方面加以考虑:物理隔离、时间隔离、密码隔离。3防火墙技术采用分组过滤防火墙技术。 2.3.1 并发策略1.对于业务数据低

8、级并发控制由数据库事务和线程监视器自动管理,对业务服务的每一次使用都封装在一个事务中,以正确传送给数据库管理系统。2.会员不可以重复登录,只能登录一次3.在脱线状态下更新数据库数据,在凌晨使更新真正生效三 章 子系统设计 3.1任务描述完成蓝星网上购书信息管理系统子系统设计,包括类的设计、用例具体实现、用户界面设计以及数据库设计。3.2任务分析通过子系统设计将形成一个可用的、完整的解决方案,并且能够比较容易地将方案转换成程序代码。该任务在.NET标准三层系统架构的基础上,将考虑所有的实现技术问题,对分析阶段的模型进行扩展和细化,并对分析阶段定义的类进一步扩充,定义新的类来处理技术方面的问题,最

9、终形成最后的解决方案。(一)遵循类的设计原则:开闭原则:对扩展开放而对变更封闭;依赖倒置原则:依赖抽象类而非具体类;Liskov替换原则:子类应当能完全替代其基类;单一职责原则:一个类只应当承担单一和集中的职责,这样引发类进行变更的原因只有一个;接口分离原则:为客户提供多个物定的接口好过一个多种用途集于一身的接口,即客户不被强制依赖于其不需要的操作;组合复用原则:尽可能地使用对象的多态组合而非继承来实现复用所知最少原则:一个类的操作实现中,只应调用下列对象的操作:它自己、作为参数传入的对象、它创建的对象、它包含的对象。(二)实现系统用例实现系统用例的方式通常显示出用例如何通过一系列协作类进行实

10、现,这是系统内部行为的模型,它可以用两个UML 工件来描述:实现类图和顺序图。(四)数据库设计面向对象的数据库设计是从对象模型出发的,属于实体主导型设计,数据库设计(模式)是否支持应用系统的对象模型,这是判断是否是面向对象数据库系统的基本出发点。由于应用系统设计在前,数据库设计随后,所以应用系统对象模型向数据库模式的映射是面向对象数据库设计的关键。 3.3 类的列表CartManager: 字段名称 类型 说明包类名说明WebDefault前台首面页面类BookBrief前台图书概要页面类Item前台图书详情页面类ShoppingCart前台购物车页面类CheckOut前台订单页面类UserP

11、rofile前台个人设置页面类Search前台图书检索页面类Register前台会员注册页面类adminDefault后台首页页面类Category后台目录管理页面类Book后台图书管理页面类Order订单管理页面类Login后台登录页面类表1-13 类的列表 3.3.1 用例具体实现示例-购物车图书添加(放入图书到购物车):图1-14 购物车图书添加序列图 3.3.3数据库设计如在任务分析中所述,面向对象的数据库设计是从对象模型出发的,属于实体主导型设计,我们由如下图所示之业务实体出发完成向数据库概念模型的映射。ASP.NET自动生成的数据表: 表名说明aspnet_Applications

12、应用程序的基本信息:程序名、程序描述等aspnet_Membership用户的详细信息:用户名、邮箱等aspnet_Paths应用程序路径信息aspnet_PersonalizationAllUser存储所有用户的个性化信息aspnet_PersonalizationPerUser存储特定用户的个性化信息aspnet_Profile个性化配置的内容aspnet_Roles角色表aspnet_SchemaVersions各部分的版本信息aspnet_Users用户表aspnet_UsersInRoles用户与角色的关系表aspnet_WebEvent_Events存储事件日志信息 四章 网站母版

13、页及设计4.1 任务分析网站WEB对应表示层,主要应包含网页页面、用户控件等,类库BLL中包含所有业务逻辑层中的类,类库DAL中包含所有数据访问层中的类,类库Model中则包含所有业务实体类,类库COMMON包含公共类。各项目中详细内容可参见第四节子系统设计中的类的列表。如果一个类库中的类要调用另一个类库中的类,则要在该类库中添加对另一个类库的引用。在设计母版页时则要注意,母版页是一个页面模板,包含的是页面的公共部分,因此,在创建母版页之前,必须判断哪些内容是页面的公共部分,比较常见的公共部分通常有片头、页脚、功能侧栏等。单独的母版页只是一个页面模板,它不能在浏览器中被打开,只有将其应用到具体

14、的某个内容页上,在浏览器中访问该内容页,其才能发挥作用。站点地图的扩展名为.sitemap,是ASP2.0及ASP3.5提供的为站点导航控件-如本项目中使用的SiteMapPath控件提供站点的层次结构信息的标准XML文件。4.1.1 在解决方案中依次创建网站及类库BLL 、 DAL、类库Model、类库Common,解决方案创建完成如下图所示:图1-33 完整的解决方案4.1.2 在类库Model中创建业务实体类1图书目录实体类CategoryInfo2图书概要实体类BookBriefInfo3图书详情实体类ItemInfo4购物车实体类CartInfo5订单类OrdersInfo6订单明细

15、类LineItemInfo 7地址类AddressInfo 4.2 在类库Common中创建公共类数据库连接类DataBase主要方法:/ / 对数据库进行增删改方法 / / SqlCommand对象的命令类型 / SqlCommand对象的文本 / SqlCommand对象的参数 / public void ExcuteNonQuery(CommandType ct, string cmdTxt, SqlParameter cmdParms)/对数据库进行增删改方法 SqlCommand cmd = new SqlCommand(); this.Preparecommand(cmd, ct,

16、 cmdTxt, cmdParms); cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); this.Close(); / / 读取数据 / / SqlCommand对象的命令类型 / SqlCommand对象的文本 / SqlCommand对象的参数 / public SqlDataReader ExcuteDataReader(CommandType ct, string cmdTxt, SqlParameter cmdParms)/读取数据 SqlCommand cmd = new SqlCommand(); this.Preparecomman

17、d(cmd, ct, cmdTxt, cmdParms); return cmd.ExecuteReader(CommandBehavior.CloseConnection); 4.2.1 设计解决方案中网站Web的母版页母版页效果图:图1-34 母版页组成4.3 MasterPage.master.cs代码实现母版页中有登录框,和登录注销按钮,以及用来绑定图书类别信息的Repeater控件,所以我们首要介绍.NET身份验证以及Repeater控件应用的相关知识。1相关知识一: Forms 身份验证凭据FormsAuthentication 类: 为 Web 应用程序管理 Forms 身份验证

18、服务,用于在登录时验证用户的 Forms 身份验证凭据,可以存储在外部数据源中,也可以存储在应用程序的配置文件中。可通过将 authentication 配置元素的 mode 属性设置为 Forms 来启用 Forms 身份验证。通过使用 authorization 配置元素可要求所有对应用程序的请求均需包含有效的用户身份验证票证,从而拒绝任何未知用户的请求。本项目在web.config文件中将 authentication 配置元素的 mode 属性设置为 Forms 来启用 Forms 身份验证的代码:在本项目中设身份验证的默认页面为首页Default.aspx,由于网站前台页面允许匿名用

19、户浏览图书信息,所以将保护protection属性设为None,对需要身份验证后才能访问的页面如购物车订单页面、修改会员个人资料页面等,采用增加location配置节来实现要求用户请求需包含有效的用户身份验证票证,从而拒绝任何未知用户的请求,在Web.config文件的配置节中增加如下代码 /拒绝任何未知用户的请求 2. 相关知识二: ASP.NET 成员资格.NET为您提供了一种验证和存储用户凭据的内置方法-ASP.NET 成员资格,它可帮助您管理网站中的用户身份验证。ASP.NET 成员资格支持下列功能:创建新用户和密码。将成员资格信息(用户名、密码和支持数据)存储在 Microsoft

20、SQL Server、Active Directory 或其他数据存储区。对访问站点的用户进行身份验证。可以以编程方式验证用户,也可以使用 ASP.NET 登录控件创建一个只需很少代码或无需代码的完整身份验证系统。管理密码,包括创建、更改和重置密码。根据您选择的成员资格选项不同,成员资格系统还可以提供一个使用用户提供的问题和答案的自动密码重置系统。公开经过身份验证的用户的唯一标识,您可以在您自己的应用程序中使用该标识,也可以将该标识与 ASP.NET 个性化设置和角色管理(授权)系统集成。指定自定义成员资格提供程序,这使您可以改为用自己的代码管理成员资格及在自定义数据存储区中维护成员资格数据4

21、.3.1 FormsAuthentication 类与Membership 类在MasterPage.master.cs中的应用/用户登录 protected void ibtnLogin_Click(object sender, ImageClickEventArgs e) if (Membership.ValidateUser(txtUserName.Text, txtPassword.Text) FormsAuthentication.RedirectFromLoginPage(txtUserName.Text,false); /登录注销 protected void logout_Cl

22、ick(object sender, EventArgs e) FormsAuthentication.SignOut(); Response.Redirect(Default.aspx); 成员资格信息(用户名、密码和支持数据)存储位置.NET Framework默认的成员资格提供程序为AspNetSqlProvider,它将用户信息存储在.NET自带的SQL数据库ASPNETDB.MDF中,如果我们要把用户信息存储在我们自定义的SQL数据库中,则需要在web.config文件配置节中进行如下配置: 除此之外,还要运行ASP.NET SQL Server安装向导-aspnet_regsql.

23、exe,该工具所在的路径为c:WINDOWS Microsoft.NETFrameworkv2.0.50727,在我们自定义的数据库中创建成员资格的数据表和存储过程等。图1-37 ASP.NET SQL Server安装向导4.3.2 为网站Web设置主题主题是属性设置的集合可以用来定义页面和控件的外观,您可以定义单个 Web 应用程序的主题,也可以定义供 Web 服务器上的所有应用程序使用的全局主题。定义主题之后,可以使用 Page 指令的 Theme 或 StyleSheetTheme 属性将该主题放置在个别页上;或者通过设置应用程序配置文件中的 pages 元素(ASP.NET 设置架构

24、) 元素,将其应用于应用程序中的所有页。如果在 Machine.config 文件中定义了 pages 元素(ASP.NET 设置架构) 元素,主题将应用于服务器上的 Web 应用程序中的所有页。主题由外观、级联样式表 (CSS)、图像和其他资源元素组成,一个主题至少要包含外观文件。外观文件的文件扩展名为 .skin,它用来定义页面中服务器控件的外观。级联样式表扩展名为.css,CSS是Cascading Style Sheets(层叠样式表)的简称。在标准网页设计中用来负责网页内容(XHTML)的表现.主题还可以包含图形和其他资源,比如脚本文件或声音文件。图1-39 外观文件及样式文件Ski

25、nFile.skin文件代码示例: 在上面的外观文件中,为HyperLink控件和Label控件设置了外观,这种设置属于“默认外观”,也就是说这两种控件的外观适用于应用本主题的页面上的所有的HyperLink控件和Label控件。如果要想为应用程序中同一类型的控件的不同实例应用不同的外观,就要设置“已命名外观”,要在外观文件中为设置的控件指定“SkinID”属性: 已命名外观不会自动适用于同类型的所有控件,而是在应用主题的页面控件上通过设置该控件的SkinID属性(如SkinID=”hlDiff”)将已命名外观应用于控件。应用主题本项目中所有的网页均应用同一主题,这需要如下设置web.conf

26、ig文件中的 pages 配置节。如果只是在单个页面应用主题,那需要在该页的页面头部的中做如下设置1.5.10创建站点地图在解决方案资源管理器中右击网站Web,选择“添加新项”,在弹出的对话框的模板窗格中选择“站点地图”。代码清单如下: 五章 前台图书信息浏览、检索实现 5.1任务描述此模块使用网站的访问者可以匿名浏览图书概要信息、图书详情信息,或者进行图书检索。前台图书信息浏览、检索实现包括以下几个方面:1首页对图书信息分三个栏目进行显示,这三个栏目分别是:新书上架、热点推荐、经典书目2可以按照栏目或图书类别查看图书概要信息3查看图书详情信息4设置复合条件完成图书检索5.2 任务分析(一)首

27、页对图书信息分新书上架、热点推荐、经典书目三个栏目进行显示,按照图书的添加时间排序,分别显示前四位图书,按三个栏目显示图书的差别只是栏目条件不同,这也就意味着对不同栏目的前四位图书的显示要重复三次,我们是将绝大部分雷同的代码复制粘贴三次,还是定义一个用户控件调用三次,显然应该选择后者。(二)可以按照栏目或图书类别查看图书概要信息,如前面所述按三个栏目显示图书的差别只是栏目条件不同,同理,按图书类别显示图书只是类别编号不同。在完成任务时数据源我们使用SqlDataSoruce控件,如果我们将不同的查询条件定义成参数,使用时传不同的值过去,就会非常灵活的实现按照栏目或图书类别查看图书概要信息,实际

28、上我们是通过定义一个存储过程来帮助实现该功能。(三)复合条件查询的关键是按照用户选定的条件动态生成SQL语句,我们在公共类类库中编写SqlStringConstructor类来完成对SQL语句的构造。5.3 首页分栏目显示图书信息1效果图2 Default.aspx页面中主要控件及其用途控件类型控件名称用途DlBook.ascxDlBook显示“新书上架”栏目信息DlHot显示“热点推荐”栏目信息DlClassic显示“经典书目”栏目信息SqlDataSourceSqldsBook“新书上架”数据源SqldsHot“热点推荐”数据源SqldsClassic“经典书目”数据源表1-32 Defa

29、ult.aspx页面中主要控件及其用途 3相关知识:使用Web用户控件显示栏目图书信息如任务分析中所述,我们要把对栏目前四位图书的显示通过定义一个用户控件来实现,然后在首页面中三次调用该控件。用户控件是能够在其中放置标记和 Web 服务器控件的容器。然后,可以将用户控件作为一个单元对待,为其定义属性和方法。ASP.NET Web 用户控件与完整的 ASP.NET 网页(.aspx 文件)相似,同时具有用户界面页和代码。可以采取与创建 ASP.NET 页相似的方式创建用户控件,然后向其中添加所需的标记和子控件。用户控件可以像页面一样包含对其内容进行操作(包括执行数据绑定等任务)的代码。用户控件与

30、 ASP.NET 网页有以下区别:用户控件的文件扩展名为 .ascx。用户控件中没有 Page 指令,而是包含 Control 指令,该指令对配置及其他属性进行定义。用户控件不能作为独立文件运行。而必须像处理任何控件一样,将它们添加到 ASP.NET 页中。用户控件中没有 html、body 或 form 元素。这些元素必须位于宿主页中。4创建DlBook.ascx我们将创建用户控件DlBook.ascx,并在其中放置绑定数据源的控件DataList,该DataList控件用于显示栏目前四位的图书:在解决方案资源管理器中右击网站Web,选择“新建文件夹”项,将文件夹命名为UserCtrl。右击

31、文件夹UserCtrl,选择“添加新项”菜单项,在弹出的对话框的模板窗格选择“Web用户控件”,将控件命名为“DlBook.ascx”,点“确定”按钮创建该控件。5在首页中应用母版页及用户控件(1)应用母版页:在网站Web中添加新项,模板类型选择Web窗体,命名为Default.aspx,勾选“选择母版页”复选框,在弹出的“选择母版页”对话框中选择MasterPage.master。点击“确定”按钮。图1-41 勾选“选择母版页”图1-42 选择母版页(2)应用Web用户控件:切换到首页的设计视图,在解决方案资源管理器里将UserCtrl文件中的DlBook.ascx控件拖放到首页的相应位置,

32、在本实例中应拖放三次,用来显示三个栏目的前四位图书信息。拖放完成后将在页面自动生成及等,如果不用拖放的方法,也可以直接在源视图中将上面生成的语句添加到HTML代码中,以完成Web用户控件的调用。(3)从工具箱拖放三个SqlDataSource控件做为数据源备用。6 Default.aspx.cs 代码实现protected void Page_Load(object sender, EventArgs e) if (!IsPostBack) DlBook.Sqlds = SqldsBook;/绑定数据源为新书上架栏目信息 DlHot.Sqlds = SqldsHot;/绑定数据源为热点推荐栏目

33、信息 DlClassic.Sqlds = SqldsClassic;/ 绑定数据源为经典书目信息 /Default.aspx是默认的登录页,当匿名用户访问需要身份验证的网页时,会自动跳转到该页登录,使用以下代码片断显示要求登录的提示信息 if (Request.Url.AbsoluteUri.ToString().Contains(ReturnUrl) & Request.Url.AbsoluteUri.ToString().Contains(admin) this.ClientScript.RegisterStartupScript(this.GetType(), , window.aler

34、t(您尚未以管理员身份登陆,请登陆后进行此操作!); else if (Request.Url.AbsoluteUri.ToString().Contains(ReturnUrl) this.ClientScript.RegisterStartupScript(this.GetType(), , window.alert(您尚未以会员身份登陆,请登陆后进行此操作!); 5.4 按栏目或者图书类别显示图书概要信息1 图书概要页BookBreif效果图图1-43 图书概要页BookBrief.aspx2BookBrief.aspx页面中各个控件的属性设置及其用途控件类型控件名称主要属性设置用途PS

35、.ascxLocation站点导航GridViewgvBriefDataSourceID=sqldsBrief显示图书概要信息LabellblBriefText属性设置为“”显示记录条数SqlDataSourcesqldsBriefSelectCommandType=StoredProcedure执行存储过程数据源表1-33:BookBrief.aspx页面中各个控件的属性设置及其用途3相关知识:SqlDataSource数据源控件调用数据库存储过程(1)首先在数据库中创建存储过程GetBookBriefByCID以供应用程序调用:CREATE PROCEDURE dbo.GetBookBriefByCID (CategoryId smallint,opt smallint)ASif CategoryId=-1 and opt=-1select * from BookBriefels

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号