案例—某网上书店系统设计
案例—某网上书店系统设计 系统总体结构设计 系统应用软件设计
系统总体结构设计 系统总体设计原则 网上书店外部环境分析 网络环境设计 电子商务系统平台的选择
系统总体设计原则 电子商务系统设计的结果是后续开发和实施的基础。系统设计受制于许多因素。例如,技术条件、业务的规模、设计人员对系统的理解等。因此,系统设计是因人而异的,例如同是世界著名的物流公司UPS和FedEx,电子商务系统设计却有很大差别。UPS采取全球业务数据集中在公司总部处理的策略,而FedEx公司将数据处理分散到世界上的5个区域中心来完成。另外,两家公司的电子商务系统在应用处理方式、主机设备选择、系统应用软件设计等方面也有较大的差别。
本系统总体设计原则 技术的先进性; 符合企业信息化的整体技术战略; 满足开放、可扩充的要求; 与现行的应用具有良好的兼容性; 安全性。
网上书店总体结构设计 “网上书店”总体结构图
网上书店外部环境分析 网上书店系统的外部环境主要包括: 企业合作伙伴:物流公司A。企业的所有订单对物流公司A都是公开的,他们之间通过企业外部网相连,从而达到信息的共享。 与交易相关的公共信息基础设施:银行卡支付中心B。系统需要使用它来完成客户提出的网上交费的申请。因为B有自己的一套关于网上交费的系统,因此需要熟悉该系统的接口。
网络环境设计 网上书店系统是一个基于网络的系统,它的网络环境包括Internet、Intranet、Extranet三个部分,结构如下图所示:
电子商务系统平台的选择 操作系统的选择 数据库管理系统的选择 应用服务器的选择
操作系统的选择 目前支持电子商务系统的主流操作系统有Windows系列和Unix/Linux系列。 Windows系列运行在Intel的CISC芯片上,在计算机市场的占有率达到70%以上,是目前市场上最为常见的操作系统,同时它还具有便于安装和配置的特点。 因此网上书店系统选择使用Windows 2000作为服务器上运行的操作系统。
数据库管理系统的选择 目前数据库管理系统有很多,比如Microsoft的SQL Server 2000、Oracle公司的Oracle 10g、IBM公司的DB2以及开源的MySQL。 可参考系统的规模,在以上数据库中进行选择。 相对而言,Oracle和DB2是大型的数据库管理系统,操作复杂,价格昂贵。 MySQL虽然免费,但是却是小型的数据库管理系统,而且没有实现图形化操作,使用起来相对困难。 因而选择SQL Server 2000作为本系统的数据库管理系统。
应用服务器的选择 一是WebLogic在目前市场上占有率高,性能稳定,服务也很好,符合成熟性原则; 网上书店系统使用Java语言开发,支持JSP+Severlet+JavaBeans的应用服务器有许多,其中包括BEA的WebLogic、IBM的WebSphere、Jarkata的Tomcat服务器。 本系统选择使用BEA的WebLogic Server,有三方面的原因: 一是WebLogic在目前市场上占有率高,性能稳定,服务也很好,符合成熟性原则; 二是WebLogic支持多种Java技术,目前我们的网上书店系统虽然只涉及了JSP+Severlet+JavaBeans,但是从长远考虑,若要实施整个企业的信息化就必须使用Java的企业级应用,因此使用支持技术多的应用服务器不会使得二次开发太困难; 三是WebLogic的市场价格还是可以接受的。
系统应用软件设计 子系统的划分 数据库及表的设计 设计类图 交互设计 界面设计 处理过程设计
子系统的划分 从图中可以看出,系统仍然是按照功能划分模块,而各个模块的功能在规划、分析阶段已经进行了详细的说明。在设计阶段要对各个子系统进一步细化,最终可以指导编码。这就是设计阶段需要完成的任务。 系统应用软件设计
数据库及表的设计 参考前几章所分析的网上书店的内容,以及所使用的DBMS支持的数据结构可得到如下的数据库及表。 数据库名:OBS 该数据库共含有六张表: 系统应用软件设计
数据库及表的设计——管理员表:AdminUser 字段 类型 说明 AdminUser VARCHAR(50) 管理员名 AdminPass VARCHAR(20) 密码 系统应用软件设计
数据库及表的设计——用户表:User 系统应用软件设计
数据库及表的设计——书类别表:BookClass 字段 类型 说明 BookClassID VARCHAR(20) 书类别编号 ClassName 书类别名 系统应用软件设计
数据库及表的设计——图书信息表:Book 系统应用软件设计
数据库及表的设计——订单表:Indent 系统应用软件设计
数据库及表的设计——订单图书列表:IndentBookList 系统应用软件设计
各表之间的关系 系统应用软件设计
设计类图 —用户子系统 通过分析阶段对系统的了解和掌握,可以对分析的类图进行进一步细化,从中得到设计类图。设计类图的目的是指导具体编码,因此设计类图的细节应该接近编码的水平,如左图所示。 系统应用软件设计
设计类图 —用户子系统 上图中的各个类要表明所拥有的属性和方法、各个属性的数据类型和各个方法的返回值等编码级别的细节,该类图只反映了用户子系统所用到的实体类,各个界面类和控制类如左图所示。 系统应用软件设计
设计类图 —管理员子系统 对管理员子系统也按上面步骤进行分析: 系统应用软件设计
设计类图 —管理员子系统 系统应用软件设计
交互设计 有了类图后,需要描述类之间的交互,即数据是怎样在类之间传递从而实现商业逻辑的。在设计阶段描述类之间的交互的是UML中的顺序图。 系统应用软件设计
交互设计—“用户子系统”顺序图 “用户注册”模块 用户在regedit.html页面上注册,最终跳转到usershow页面。注册成功。 系统应用软件设计
交互设计—“用户子系统”顺序图 “用户(管理员)登录”模块 用户在Login.html页面提交个人登录信息。在经过login.jsp处理后,最后跳转入main.html。 系统应用软件设计
交互设计—“用户子系统”顺序图 “图书选购”模块 用户在bookview.jsp中选择要买的图书,经过在购物车中的处理,在buy.jsp页面生成订单。 系统应用软件设计
交互设计—“用户子系统”顺序图 “购物车管理”模块 用户在main.html中发出管理购物车命令,页面跳转到puchase.jsp来进行购物车的管理。 系统应用软件设计
交互设计—“用户子系统”顺序图 “查看订单”模块 用户发出订单查询指示,indentview.jsp通过Indent查找相应的记录,然后显示并处理。若用户继续选择查看详细信息,则跳转入indentdetail.jsp。 系统应用软件设计
交互设计—“管理员子系统”顺序图 “图书管理”模块 管理员有添加、修改、删除图书的权利,因此分别对应addbook、bookmodify和bookmodify_1三个不同的页面。 系统应用软件设计
交互设计—“管理员子系统”顺序图 “订单管理”模块 管理员提出修改订单指示,indentmodify.jsp调用Indent完成操作。 系统应用软件设计
界面设计—用户注册界面 系统应用软件设计
界面设计 —用户登录界面 系统应用软件设计
界面设计——图书选购界面 系统应用软件设计
界面设计——购物车管理界面 系统应用软件设计
界面设计——查看订单界面 系统应用软件设计
界面设计——图书管理界面 系统应用软件设计
处理过程设计 用户注册模块 用户登录模块 图书选购模块 购物车管理模块 查看订单模块 图书管理模块 订单管理模块 系统应用软件设计
处理过程设计——用户注册模块 系统名:用户子系统 模块名:用户注册 编号:01 由哪些模块调用:无 调用哪些模块:“用户登录”模块 模块名:用户注册 编号:01 由哪些模块调用:无 调用哪些模块:“用户登录”模块 输入:用户信息 输出:无 算法说明: 当用户提出注册请求 系统显示用户注册页面,提示用户输入个人信息 用户输入个人信息 IF 用户输入的个人信息无效 系统显示错误信息并转到错误页面,用户重新填写信息,或者取消注册 ELSE 将用户信息写入数据库,进入“用户登录”模块 ENDIF 系统应用软件设计
处理过程设计——用户登录模块 系统名:用户子系统 模块名:用户登录(管理员登录与其流程相似,省去) 编号:02 模块名:用户登录(管理员登录与其流程相似,省去) 编号:02 由哪些模块调用:“用户注册”模块 调用哪些模块:“图书选购”模块 输入:用户名和密码 输出:无 算法说明: 用户提出登录请求 系统显示登录页面,提示用户输入用户名和密码。 用户填写用户名和密码信息。 IF 用户输入无效的用户名和(/或)密码 系统显示错误信息并转到错误页面,用户重新输入用户名和(/或)密码;或者取消登陆 ELSE 进入“图书选购”模块 ENDIF 系统应用软件设计
处理过程设计——图书选购模块 系统名:用户子系统 模块名:图书选购 编号:03 由哪些模块调用:“用户登录”模块 模块名:图书选购 编号:03 由哪些模块调用:“用户登录”模块 调用哪些模块:“购物车管理”模块 输入:图书信息 输出:无 算法说明: 用户提出选购图书请求 系统显示选书页面,显示图书列表 用户提出选购某书 IF 存在所购图书 购物车中加入相应的图书信息 ELSE 屏幕显示缺货信息页面。用户选择缺货策略(放弃还是等待直到有货) ENDIF 系统应用软件设计
处理过程设计——购物车管理模块 系统名:用户子系统 模块名:购物车管理 编号:04 由哪些模块调用:“图书选购”模块 调用哪些模块:无 模块名:购物车管理 编号:04 由哪些模块调用:“图书选购”模块 调用哪些模块:无 输入:图书信息 输出:无 算法说明: 用户提出管理购物车请求 系统转到购物车管理页面 用户提出所要执行的操作 DO CASE CASE 添加图书 用户输入书号,购物车中加入相应图书 CASE 删除图书 用户单击删除按钮,相应的图书被删除 ENDCASE 系统应用软件设计
处理过程设计——查看订单模块 系统名:用户子系统 模块名:查看订单 编号:05 由哪些模块调用:用户直接调用 调用哪些模块:无 模块名:查看订单 编号:05 由哪些模块调用:用户直接调用 调用哪些模块:无 输入:用户信息 输出:订单信息 算法说明: 用户提出查看订单请求 系统列出所有符合该用户要求的订单。 系统应用软件设计
处理过程设计——图书管理模块 系统名:管理员子系统 模块名:图书管理模块 编号:06 由哪些模块调用:用户直接调用 调用哪些模块:无 模块名:图书管理模块 编号:06 由哪些模块调用:用户直接调用 调用哪些模块:无 输入:图书信息 输出:无 算法说明: 管理员提出管理图书请求 系统列出所有符合该管理员要求的图书。 管理员提出所要执行的操作 DO CASE CASE 修改图书信息 进入图书信息修改界面,修改并保存 CASE 删除错误信息 管理员单击删除按钮,相应的图书被删除并更新数据库 CASE 增加图书信息 进入图书信息添加界面,添加并保存 ENDCASE 系统应用软件设计
处理过程设计——订单管理模块 系统名:管理员子系统 模块名:订单管理模块 编号:07 由哪些模块调用:管理员直接调用 调用哪些模块:无 模块名:订单管理模块 编号:07 由哪些模块调用:管理员直接调用 调用哪些模块:无 输入:订单编号 输出:无 算法说明: 管理员提出订单管理请求 系统列出所有符合该管理员要求的图书。 管理员提出所要执行的操作。 DO CASE CASE 修改订单 进入订单修改界面,修改并保存 CASE 删除订单 管理员单击删除按钮,相应的订单被删除 ENDCASE 系统应用软件设计