第10章电子商务应用系统设计本章内容10.1应用系统体系结构风格10.2子系统划分及模块设计10.3代码设计10.4计算机处理过程设计10.5数据库设计10.6用户界面设计10.7系统设计说明书电子商务应用系统设计应用系统设计阶段要根据新系统逻辑模型建立应用系统的物理模型,也即根据新系统逻辑功能的要求,根据实际的技术条件、经济条件和社会条件,以及系统的规模和复杂程度等实际条件,进行若干具体设计,确定应用系统的实施方案,解决系统“怎么做”的问题。应用系统设计基本任务大体包括总体(概要)设计和详细设计两大部分。应用系统总体设计总体设计是描述应用系统的总体结构,其内容有:①将系统划分成子系统,子系统进一步划分成模块;②确定每个模块的功能;③确定模块间调用关系。应用系统详细设计详细设计是为各个具体任务选择适当的技术手段和处理方法,其内容有:①代码设计;②数据库设计;③用户界面设计;④处理流程设计。10.1应用系统体系结构软件体系结构定义了软件的局部和总体计算部件的构成,以及这些部件之间的相互作用关系。对于电子商务应用系统这样复杂的具有分布式应用处理特点的系统,在进行具体设计之前,首先需要确定应用系统的体系结构。10.1应用系统体系结构10.1.1MVC体系结构模型-视图-控制(model-view-control,简称MVC)结构是目前最常见的J2EE应用所基于的体系结构,MVC主要适用于交互式的Web应用,10.1应用系统体系结构1.MVC体系结构视图(View)显示Model的数据,提交由Controller提供的数据。模型(Model)维护应用程序的状态和数据,可以接受来自View的查询并做出响应。同时当Model的数据发生变化时,它把变化通知给View,View根据Model的数据发生来更新自己。控制器(Controller)定义了抽象的业务逻辑,用于控制业务流程。用于描述Model如何对用户的动作做出反应,即处理事件。10.1应用系统体系结构2.MVC在Web系统中的应用电子商务系统,适合采用MVC体系结构。可以将一个应用的对象分为三类。一类就是负责显示的对象,一类对象包含商业规则和数据,一类就是接收请求,控制商业对象去完成请求。2.MVC在Web系统中的应用模型(Model)视图(View)控制(Control)模型查询更改通知视图选择用户事件模型更改方法调用事件MVC关系图10.1应用系统体系结构3.MVC的优点(1)将数据建模、数据显示和用户交互三者分开,使得程序设计的过程更清晰,提高了可复用程度。(2)当接口设计完成以后,可以开展并行开发,从而提高了开发效率。(3)可以很方便地用多个视图来显示多套数据,从而使系统能方便地支持其他新的客户端类型。(4)各部分的责任划分得很清楚,后台开发人员可以专注业务的处理,前台开发人员专注于用户交互的界面。(5)提高了系统灵活性,因为数据模型、用户交互和数据显示等部分都可以设计为可接插构件。(6)将系统分解为三部分,除了对开发带来相当的好处之外,还对系统的测试及维护带来了相当的便利,因为三部分之间的接口通常都是确定的,所以即使修改也只需在很小的范围内进行。10.1应用系统体系结构4.MVC体系结构的缺点MVC体系结构的缺点主要集中在以下几个方面:(1)增加了系统结构和实现的复杂性。对于简单的界面来说,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。(2)由于实施MVC体系结构过程而产生的开销。设计MVC体系结构需要有经验的分析人员对系统进行分析;类的数量及文件数量会增加(像C++这样的编程语言,一个类对应两个文件)。(3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。10.1.2二层C/S体系结构响应客户机服务器用户界面应用逻辑数据库服务器请求数据库C/S体系结构的示意图10.1.2二层C/S体系结构其主要缺点是:⑴客户端程序设计复杂;⑵开发成本高,且客户端程序变得越来越臃肿;⑶软件维护和升级困难;⑷二层C/S体系结构是单一服务器且以局域网络为中心的,所以难以扩展至大型企业广域网或Internet;⑸数据安全性不好。10.1.3三层体系结构响应客户机应用服务器用户界面数据库服务器请求数据库请求响应应用逻辑C/S三层结构的示意图10.1.3三层体系结构响应客户机基于web的应用服务器浏览器数据库服务器请求数据库请求响应应用逻辑B/S三层结构的示意图10.1.4多层结构Web服务器数据库服务器应用服务器Web服务器应用服务器事务服务器Web服务器数据库服务器数据库服务器Web应用层应用服务层事务服务层数据库服务层赛迪商务网Web系统层次结构示意图10.1.4多层结构多层结构的优点⑴可实现高度的可伸缩性。Web服务层、应用服务层、数据库服务层的每一层次都可以由多台计算机组成,通过计算机系统集群(Cluster)技术,实现自动的负载均衡,以提高系统的处理能力和对客户端的响应速度。⑵通过将系统划分成不同的层次,可增强整个系统的模块化程度,提高系统的灵活性。⑶通过对电子商务系统进行分层,可以使开发工作在具有不同专长的人员之间进行合理分工。便于分配适合的开发人员以完成相应的开发任务。⑷通过采用基于构件的开发方法,将电子商务系统的业务逻辑封装在应用服务层的业务构件之中,可以实现高度的代码重用。10.1.5体系结构的选择选择上述体系结构应考虑以下因素:(1)被开发的系统特点。如系统类型、用户需求、系统规模和使用方式等。(2)网络协议。不同的体系结构需要不同的网络协议支持。(3)可用的软件产品。包括网络软件、操作系统、数据库管理系统和服务器软件等。(4)建设成本等。包括硬件和软件的购买成本、软件开发成本、系统安装与维护成本等。10.2子系统划分及模块设计10.2.1结构化设计原理结构化方法设计思想基于以下几个方面:(1)自顶向下把一个大系统划分成若干子系统,再把子系统分解成规模比较小的被称之为模块的一些成分。(2)系统划分模块是按层次进行,划分工作进行到模块功能都十分简单,并易于修改。(3)模块应尽可能独立,应尽可能减少模块间的调用关系和数据交换关系。(4)模块间的关系应阐明,以便追踪和控制。(5)通过分别实现这些模块的设计,而最终实现整个系统的设计10.2.2子系统的划分1.子系统划分的一般原则子系统划分应遵循的一般原则如下:⑴子系统具有相对独立性。⑵子系统之间数据的依赖性要尽量小。⑶子系统划分应便于系统分阶段的实现。⑷子系统的划分应考虑到各类资源的充分利用。10.2.2子系统的划分2.划分子系统的方法划分子系统的方法目前主要有四类。(1)按功能划分。(2)按业务处理顺序划分。(3)按数据拟合程度来划分。(4)按业务处理过程划分子系统。10.2.3模块结构图模块(Module)是可以组合、分解和更换的单元,是组成系统、易于处理的基本单位。模块通常有以下四个特点:(1)模块具有输入和输出。(2)具有把输入转换成输出的功能。(3)仅供模块引用的内部数据。(4)用以实现模块功能的程序代码。10.2.3模块结构图数据转换符号控制调用模块模块结构图的基本符号10.2.4聚合与耦合在结构化系统设计中,一个突出的和主要的原则就是要坚持模块独立性原则。所谓的模块独立性原则,就是指在设计和划分子系统或模块时,尽可能地做到每个模块完成一个独立的特定功能,并使各模块间的接口尽可能简单。通常,用两个定性标准来衡量模块结构的独立性,它们是块间联结度(耦合)和块内紧凑度(内聚)。10.2.4聚合与耦合1.聚合(1)功能聚合。(2)顺序聚合。(3)通信聚合。(4)过程聚合。(5)时间聚合。(6)逻辑聚合。(7)偶然聚合。1.聚合聚合方式联结形式可修改性可读性通用性功能聚合好好好好顺序聚合好好好中通信聚合中中中不好过程聚合中中中不好时间聚合不好不好中差逻辑聚合差差不好差偶然聚合差差差差聚合方式10.2.4聚合与耦合2.耦合(1)数据耦合(2)特征耦合。(3)控制耦合。(4)公共耦合。(5)内容耦合。2.耦合耦合方式相互影响程度可修改性可读性通用性数据耦合弱好好好特征耦合弱中中中控制耦合强不好不好不好公共耦合强不好差差内容耦合最强差差差耦合方式10.2.5模块设计的原则模块设计的经验原则有以下几点。1.模块的独立性原则模块的独立性是指一模块与其他模块之间没有过多的相互作用。衡量模块的独立性可用聚合和耦合两个指标度量。模块的独立性原则要求将模块设计成高聚合、低耦合。10.2.5模块设计的原则2.模块规模大小适中原则该原则要求在划分模块时,模块规模既不可太大,也不可太小。太大的模块常常是系统分解不充分,使模块聚合度降低;而模块太小,则可能降低模块的独立性。另外模块的规模与开发成本有关。当系统规模一定时,单个模块的成本与系统中所有模块数成反比关系,而模块的接口成本与模块数成正比关系,模块设计时要使系统模块的总成本最低。2.模块规模大小适中原则成本模块数成本/模块接口成本系统总成本O模块数与成本关系图10.2.5模块设计的原则3.模块作用域与控制域适当原则模块的作用域是指受该模块内部的一个判断影响的所有模块的集合。模块的控制域是模块所能调用的下属模块及其本身所构成的集合,下属模块包含直接下属模块及间接下属模块。3.模块作用域与控制域适当原则1.11.21.31.41.2.21.2.11.2.2.31.2.2.21.2.2.11模块的作用域与控制域10.2.5模块设计的原则4.系统的深度与宽度适当原则深度是系统划分出的层数,宽度是系统中同层次上所包括的模块数。深度和宽度之间应有一定的比例关系,即深度和宽度均要适当。深度过大可能说明系统分割得过分细化;宽度过大,则有可能带来系统管理上的困难。10.2.5模块设计的原则5.模块的扇入与扇出原则扇出是一个模块直接控制(调用)的模块数目,扇出过大意味着模块过分复杂,需要协调和控制过多的下级模块。扇入用来衡量某模块被其他模块调用的情况。扇入越大则共享越好。10.2.6IPO图IPO图主要用来配合层次化模块结构图,详细说明每个模块内部功能的一种工具。它除了描述输入、处理、输出过程外,还包括其他一些信息,如系统的名称、设计人员、设计日期、模块名称、模块在结构图中的编号、调用本模块的模块清单、本模块调用的模块清单、全局的和局部的数据变量,以及与之相应的数据库/表,在总体结构中的位置等信息。10.2.6IPO图IPO图描述表模块编号:模块名称:所属子系统调用模块:被调用模块:模块描述:输入参数:输出参数:变量说明:相关数据表:处理:备注:设计人:设计日期:IPO图描述表10.3代码设计代码就是用数字或字母代表事物。设计出一个好的代码系统对电子商务系统的成功开发与实施影响极大。代码可以分为明码和密码。明码是对其所描述对象的简单、概括、易于理解的编码表达。10.3.1代码及其作用1.代码意义代码是一个或一组有序的易于人或计算机识别和处理的字符串,简称为“码”。在信息系统中,代码是人和机器的共同语言,是便于计算机进行信息分类、校对、汇总、统计、检索与查询等操作的关键词。代码通常用数字、字母和某些特殊符号(如“*”、“一”等)及其组合表示,是把较长的、用自然语言表达的实体或属性概括成适合于计算机处理的比较简单的字符串,例如,会计科目代码代表会计科目,固定资产代码代表固定资产实物,学号代表学生,工号代表员工等。10.3.1代码及其作用2.代码作用代码的作用主要有两个:⑴识别:这是代码最主要的功能,用来标识客观实体或属性,是识别对象的唯一标识。⑵分类:即按照一定规则进行分类。10.3.2代码设计的原则代码设计应遵循以下基本原则:⑴惟一性;⑵可扩充性;⑶简单