销售管理系统的 UML 分析与设计
摘 要 销售管理系统是现代企业管理系统的一个重要组成部分,传统的系统分析
设计方法已经难以保证软件开发的效率和质量,通过将 UML 应用于销售管理系
统建模,可以加速软件开发进程,提高软件质量,支持动态的业务需求,并方便
地集成已有的企业管理资源。
关键词 销售管理系统;UML;分析;实现
1 引言
当前社会对信息系统的需求日益增长,需求变化也越来越快,软件开发的技术
发展方向已经从“提升被开发系统的执行效率”转变为“提升开发效率”。面向对象
(OO)技术降低了解决方法域与问题域的差别,提供了良好的复用机制,能够
更加有效提高软件开发效率,完全顺应了软件开发技术的发展方向。
UML(The Unified Modeling Language,即统一建模语言) 是一个通用的标准建模
语言,可以对复杂的系统建立可视化系统模型,目前已经被工业标准组织
OMG(Object Management Group)接受,一经推出便得到许多著名计算机厂商如
Microsoft,HP,IBM,Oracle 等支持,在国际上应用日益广泛。
本文通过一个销售管理系统的分析与设计,阐述如何通过 UML 降低开发难度
和提高开发效率。
2 销售管理系统的基本特征和功能模块
本系统以“订单”为核心,构建出了以“客户”为中心的管理模式。
该系统具有以下一些特征:
(1) 先进的系统结构,面向销售流程,能适应原有销售工作流程并进行合理
的改进,从而更贴近实际的应用;
(2) 针对大型企业销售管理人员多,销售管理复杂的特点,通过系统提供的
灵活的人员权限设置和全面的财务核算方式,实现真正的销售网络化办公;
(3) 在实现订单的电子化、工作流程的数字化同时,帮助公司领导提高决策
的科学化水平;
(4) 通过对客户信息的管理,实现对客户广告走势和重要客户情况统计和分
析。
整个系统操作业务人员包括:销售员、销售经理、仓库管理员、审计员、公司
销售主管、和系统管理员。各个角色承担不同的系统任务,通过网络和通信系统,
连接到销售管理系统,使用统一的访问界面,进行日常的销售业务操作,最终实
现销售部门业务的正常运转。
3 系统的 UML 分析与实现
UML 概述及特点
UML 是一种编制系统蓝图的标准化语言,可以对大型复杂系统的各种成分可
视化说明并构造系统模型,以及建立各种必要的文档。UML 通过三类图形建立
系统模型: Use Case 图,静态结构图(类图,对象图,组件图,配置图)和动
态行为图(顺序图,协同图,状态图,活动图),这些图可以从不同抽象角度使
系统可视化。 UML 具有面向对象、可视化、独立与开发过程和程序设计语言以
及易于掌握使用等特点。UML 适用于各种规模的系统开发,能促进软件复用,
方便地集成已有的系统并有效减少开发中的各种风险。
UML 在销售管理系统中的实际应用
UML 是一种建模语言,是系统开发的一个组成部分,本身并没有关于开发过
程概念的定义和表示符号。UML 的创始人 booch,Jacobson 和 Rum Baugh 在
rational 公司的支持下综合了多种系统开发过程的长处,提出新的面向对象的开
发过程,称为 Rational 统一过程(Rational Unified Process,RUP)。RUP 过程的
核心工作流程包括:业务建模、需求分析、系统分析与设计和实现、实现、测试
和系统部署。下面通过 UML 来分析并构造销售管理系统模型,并结合 Rational
统一过程加以描述,图形使用 Rational Rose 工具软件绘制。
销售管理系统的业务建模和需求分析
业务模型和需求分析的目的是对系统进行评估,采集和分析系统的需求,理解
系统要解决的问题,重点是充分考虑系统的实用性。结果可以用一个业务用例
(Business Use Case)框图表达,根据销售系统的基本特征和功能可得到 本系统
的用例图,如图 2。
图 1 销售管理系统业务用例框图
模型中的活动者代表外部与系统交互的单元,包括销售员、销售经理、仓库管
理员、审计员、公司销售主管、和系统管理员;业务用例框图是对系统需求的描
述,表达了系统的功能和所提供的服务,包括客户管理子系统、订单管理子系统、
销售统计子系统、产品管理子系统系统管理子系统。
图 2 是销售管理系统层次的用例模型,只包含了最基本的 Use Case 模型,是
系统的高层抽象。在开发过程中,随着对系统需求认识的不断加深,用例模型可
以从顶向下不断细化,演化出更加详细的 Use Case 模型。 根据系统的用例图,
可以对系统的持久对象进行设计,下图是本系统持久对象类及类之间关系图。
图 2 核心业务对象类及类之间关系
销售管理系统设计
系统分析与设计是研究欲采用的实现环境和系统结构,结果是产生一个对象模
型,也就是设计模型。设计模型包含了 Use Case 的实现,可以表现对象如何相
互通信和运作来实现 Use Case 流的。对于系统的静态结构,可以通过类图、对
象图、组件图和配置图来描述;对于系统的动态行为,可以通过顺序图、协同图、
状态图、活动图描述。这些图在加上说明文档就构成一个完整的设计模型。
系统架构设计
销售管理系统拥有大量销售信息资源,这些资源包括各种客户、订单、和产品
等信息。其数据量大、信息变化快,非结构化信息与结构化信息共存。使用 UML
对销售管理系统进行基于面向对象的分析和实现,可以从开发的第一步开始,从
系统的底层就把握住销售信息资源的特征,为下一步具体实现打好基础。在销售
管理系统建立模型时要涉及到处理大量的模型元素,如类、进口、组件、节点、
图等,可以将语意上相近的模型元素组织在一起,这就构成了 UML 的包,包从
较高的层次来组织管理系统模型。
系统主要有以下四个包:
(1)用户接口包(User Interface Package)
用户接口包在其他包的顶层次,为系统用户提供访问信息和服务。要注意一点,
由于开发工具使用不同,该接口描述也是有区别的。如果采用 Java Web 开发,
就要以 JSP(Java Server Pages)为基础,如果采取 Microsoft 的 开发,其基
础就是标准化控件组。本系统在此将使用 Java Web 开发,下面有关代码的描述
都是基于 Java 的。
(2)业务逻辑包(Business Rule Package)
该包是销售管理系统业务的核心实现部分,包括客户管理、订单管理、产品管
理等,其他包可以通过访问该包提供的接口,实现业务逻辑,如客户管理业务等。
(3)数据持久访问包(Data Persistence Package)
该包实现数据的持久化,也就是与数据库交互,实现数据的存取、修改等操作。
(4)通用工具包(Util Package)
该包主要包括应用程序安全检查的类,可以为上面三个包提供安全检查,如客
户端检查和服务器端业务规则检查等,同时包括一些系统异常检查与抛出处理以
及系统日志服务等。
系统详细设计
详细设计主要是描述在系统分析阶段产生的类,与分析阶段类的区别就是偏重
于技术层面和类的细节实现。销售管理系统提供的各种服务都是建立在分布、开
放的信息结构之上,依托高速、可靠的网络环境来完成的。每项服务都可以看作
一个事件流,由若干相关的对象交互合作来完成。对于这种系统内部的协作关系
和过程行为,可以通过绘制序列(Sequence)框图和协作(Collaboration)框图
来帮助观察和理解。此外,描述工作流和并发行为还可以通过活动框图,表达从
一个活动到另一个活动的控制流。同时,可以在理解这些图的基础上,抽象出系
统的类图,为系统编码阶段继续细化提供基础。下面以 Java Web 开发为例,介
绍客户管理子系统的详细设计
1.客户管理子系统的基本结构建模:下图是客户管理子系统主要类极其关系的
详细设计
图 3 客户关系子系统类的详细设计及类之间关系
2.序列图:序列图是一种对象交互图,着重强调了时间序列,而不是静态对象
的关系,通过序列图可以清楚地看到“谁在什么时间对谁说了写什么”。
图 4 客户管理的序列框图
图 5 销售人员对客户管理的顺序框图
图 4 是一个客户管理的序列框图例子。描述了先加载某个客户;显示某些状态;
再更改某些属性值,最后更新数据库状态的一次执行过程。此图可设计 Customer
类的 loadCustomer(int)和 updateCustomer()方法实现。
通过序列框图可以清晰看出系统用户、客户管理子系统的用户接口、数据库连
接模块之间以时间为顺序的消息交换,这对于把握系统的控制流、顺序行为和交
互行为是非常有益的。建立在分布网络环境下的销售管理系统的事件流和控制流
是非常复杂的,需要从顶层到底层进行一步步分解,用多幅能反映动态结构的图
来分析与说明。图 5 反映了销售人员对客户管理的顺序框图。
3.状态图适合描述一个对象穿越多个 Use Case 的行为。类的状态图表示类的对
象可以呈现的状态和这个对象从一种状态到另一种状态的转换。
图 6 Customer 对象状态图
图 6 描述了 Customer 对象的生命期中可能的状态及状态变化(从创建、更新
到消亡的转变过程),其中 insertOrder/deleteOrder 不是直接作用于当前 customer
对象,而是指当前 customer 对象所涉及的订单操作。此例说明其他对象的操作
可能改变当前对象的状态。
4.协作图:协作图和序列图相似,两种图所表达的是同一种信息,可以将序列
图转换为协作图,反之也然。但两者是有区别的,序列图强调的是交互的时间序
列,协作图强调的是交互的语境和参与交互的对象的整体组织。下图描述的是查
询一个客户信息消息传递的过程。
图 7、查询客户信息的协作图
5.活动图:用于描述业务过程和类的操作,类似与旧流程图,是对业务处理工
作流建模,在活动图中可以增加角色的可视化的维数,下图是增加了 Customer、
Saleman、Warehouse 三个角色的系统活动图,反映了在业务处理过程中,每个
角色执行的过程。
图 8 活动图
通过框图,设计和开发人员可以确定需要开发的类,类之间的关系和每个类操
作和责任。序列框图按照时间排序,用于通过情境检查逻辑流程。协作框图用于
了解改变后的影响,可以很容易看出对象之间的通信,状态图描述了对象在系统
可能中的状态,如果要改变对象,就可以方便地看到受影响的对象。
6.软件系统一般由一组部件组成,换句话说,部件是相对独立的部分软件实施,
有自己特有的功能,并可在系统中安装使用,系统中各部件是相互协作合作,给
系统提供完整的功能。下图是本系统运行时的主要部件
图 9 运行的部件图
销售管理系统的实现、测试和系统配置
系统采用五层逻辑结构:客户端只需中文浏览器;表示层用 12 个 JSP(Java
Server Page)文档实现动态页面以创建、操作业务对象;核心对象层用 6 个 Java
类以 JavaBean 形式构成业务处理的核心对象;连接层采用 JDBC2 提供两种连接
方式:一种是基于 DriverManager,主要支持 Java 应用和测试;另一种基于
DataSource;资源层即数据库服务器。
经过系统分析和设计后,就可以根据设计模型在具体的环境中实现系统,生成
系统的源代码、可执行程序和相应的软件文档,建立一个可执行系统;进而需要
对系统进行测试和排错,保证系统符合预定的要求,获得一个无错的系统实现。
测试结果将确认所完成的系统可以真正使用;最后完成系统配置,其任务是在真
实的运行环境中配置、调试系统,解决系统正式使用前可能存在的任何问题。
4 结束语
销售管理系统的发展方兴未艾,目前正处于传统手工、半手工管理向数字化过
渡的阶段,转变过程中需要应用和集成最新的信息技术,以达到对网络信息资源
最有效的利用和共享。传统的系统分析设计方法难以保证效率和质量,将 UML
应用于销售管理系统的建设,可以加速开发进程,提高代码质量,支持动态的业
务需求。从实际效果来看,UML 可以保证软件开发的稳定性、鲁棒性,在实际
应用中取得良好的效果。