UML软件工程组织

广告管理系统的UML分析与设计
来源:www.ahcit.com 作者: 董益平 刘杰 丁铭华  

摘 要 :广告管理系统是现代报业的生命线,传统的系统分析设计方法已经难以保证开发的效率和质量,通过将 UML应用于广告管理系统建设,可以加速开发进程,提高代码质量,支持动态的业务需求,并方便地集成已有的传统广告资源。

关键字 : 广告管理系统; UML;分析;实现

中图法分类号: TP31;39 文献标识码:

一 引言

当前社会对信息系统的需求日益增长,需求变化也越来越快,软件开发的技术发展方向已经从“提升被开发系统的执行效率”转变为“提升开发效率”。面向对象(OO)技术降低了解决方法域与问题域的差别,提供了良好的复用机制,能够更加有效提高软件开发效率,完全顺应了软件开发技术的发展方向。

UML(The Unified Modeling Language,即统一建模语言) 是一种编制系统蓝图的标准化语言,可以对复杂的系统建立可视化系统模型,目前已经被工业标准组织OMG(Object Management Group)接受,一经推出便得到许多著名计算机厂商如Microsoft,HP,IBM,Oracle等支持,在国际上应用日益广泛。

本文通过一个广告管理系统的分析与设计,阐述如何通过UML降低开发难度和提高开发效率。

二 广告管理系统的基本特征和功能模块

本系统摒弃了以“订单”为核心的传统结构,构建出了以“客户”为中心的先进广告管理模式。同时,通过对集团领导决策和多报管理的支持,是系统模式有了能级的提升。

该系统具有以下一些特征:

•  先进的系统结构,面向广告流程,充分适应原有广告工作流程并进行合理的改进,从而更贴近报社的实际应用;

•  针对大型报业集团报刊数量多,广告管理复杂的特点,通过系统提供的灵活的人员权限设置和全面的财务核算方式,实现真正的集团多报管理;

•  在实现广告订单的电子化、工作流程的数字化同时,帮助集团领导提高决策的科学化水平;

•  多套广告价目表的支持,使广告管理部门能在当前激烈的市场竞争中能采取更为灵活的价格策略;

•  通过对客户信息的管理,实现对客户广告走势和重要客户情况统计和分析。

整个系统操作业务人员角色包括:预订员,财务,划版员,系统管理员和报刊领导。各个角色承担不同的系统任务,通过网络和通信系统,连接到广告管理系统,使用统一的访问界面,进行日常的广告业务操作,最终实现报业集团广告部门业务的正常运转。

总体结构如图 1所示:


    广告管理系统的软件总体结构(图 1)

三 系统的 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 工具软件绘制。

2.1广告管理系统的业务建模和需求分析

业务模型和需求分析的目的是对系统进行评估,采集和分析系统的需求,理解系统要解决的问题,重点是充分考虑系统的实用性。结果可以用一个业务用例(Business Use Case)框图表达 (图2) ,


广告管理系统业务用例框图(图 2)

模型中的活动者代表外部与系统交互的单元,包括广告客户、预订员、财务人员、划版人员、业务员、系统管理员和集团领导以及外部数据源;业务用例框图是对系统需求的描述,表达了系统的功能和所提供的服务,包括预订子系统、财务子系统、划版子系统、系统管理子系统、客户管理子系统和决策支持子系统。

对于广告客户而言,因为需求比较明确,所以可以考虑代理公司和一般个人用户区别。代理公司是指与报刊签订一段时间的特定类型广告代理合同,该报刊广告通过代理公司这个渠道进入系统,称为代理广告,代理广告涉及到与代理公司的合同履行情况跟踪;而一般客户主要是指没有通过代理公司的企业或者个人广告客户,其直接与报刊进行业务来往,其业务规律有随机性特点,所以对该类客户进行客户关系管理对报刊业务发展非常重要。尤其有一点必须注意:代理公司控制其具体广告客户的信息,而报刊本身很难直接掌握这些客户的真实信息,所以,客户管理子系统主要是用于收集对报刊有用的客户信息,尤其是一些代理公司客户的信息。

外部信息源主要是为决策支持服务的,包括央视和一些专业数据统计公司的数据,同时,竞争对手尤其是在本地区的竞争对手的数据统计情况也是必须关注的一个焦点。

图中模型元素之间的实现表示二者存在关联关系,带空心箭头的实箭线说明存在泛化关系。这里有两种情况,一种是一般与特殊的关系,如“广告客户”与“代理广告客户”、“一般客户”的关系;另一种是使用关联,表示一个模型元素需要使用另一个模型元素,如“划版子系统‘需要使用'财务子系统”和“预订子系统”生成的广告和客户数据。

图 2是广告管理系统层次的用例模型,只包含了最基本的Use Case模型,是系统的高层抽象。在开发过程中,随着对系统需求认识的不断加深,用例模型可以从顶向下不断细化,演化出更加详细的Use Case模型。

2.2广告管理系统设计

系统分析与设计是研究欲采用的实现环境和系统结构,结果是产生一个对象模型,也就是设计模型。设计模型包含了Use Case的实现,可以表现对象如何相互通信和运作来实现Use Case流的。对于系统的静态结构,可以通过类图、对象图、组件图和配置图来描述;对于系统的动态行为,可以通过顺序图、协同图、状态图、活动图描述。这些图在加上说明文档就构成一个完整的设计模型。

2.2.1系统架构设计

广告管理系统拥有大量广告信息资源,这些资源包括各种用户、广告、合同以及版面信息。其数据量大、信息变化快,非结构化信息与结构化信息共存。使用UML对广告管理系统进行基于面向对象的分析和实现,可以从开发的第一步开始,从系统的底层就把握住广告信息资源的特征,为下一步具体实现打好基础。在广告管理系统建立模型时要涉及到处理大量的模型元素,如类、进口、组件、节点、图等,可以将语意上相近的模型元素组织在一起,这就构成了UML的包,包从较高的层次来组织管理系统模型。

系统主要有以下四个包:

•  用户接口包(U ser Interface Package)
用户接口包在其他包的顶层次,为系统用户提供访问信息和服务。要注意一点,由于开发工具使用不同,该接口描述也是有区别的。如果采用java开发,就要以java AWT(Abstract Window Toolkit)为基础,如果采取Microsoft的Asp.net开发,其基础就是标准化控件组。

•  业务逻辑包 (Business Rule Package)
该包是广告管理系统业务的核心实现部分,包括广告、合同、客户等,其他包可以通过访问该包提供的接口,实现业务逻辑,如执行广告预订业务等。

•  数据持久访问包 (Data Persistence Package)
该包实现数据的持久化,也就是与数据库交互,实现数据的存取、修改等操作。

•  通用工具包(U til Package)

该包主要包括应用程序安全检查的类,可以为上面三个包提供安全检查,如客户端检查和服务器端业务规则检查等,同时包括一些系统异常检查与抛出处理以及系统日志服务等。

2.2.2系统详细设计
详细设计主要是描述在系统分析阶段产生的类,与分析阶段类的区别就是偏重于技术层面和类的细节实现。广告管理系统提供的各种服务都是建立在分布、开放的信息结构之上,依托高速、可靠的网络环境来完成的。每项服务都可以看作一个事件流,由若干相关的对象交互合作来完成。对于这种系统内部的协作关系和过程行为,可以通过绘制顺序(Sequence)框图和协作(Collaboration)框图来帮助观察和理解。此外,描述工作流和并发行为还可以通过活动框图,表达从一个活动到另一个活动的控制流。同时,可以在理解这些图的基础上,抽象出系统的类图,为系统编码阶段继续细化提供基础。

顺序图和协作图适合描述多个对象的协同关系,而状态图适合描述一个对象穿越多个Use Case的行为。状态图和活动图的区别在于,状态图描述的是对象类响应事件的外部行为,而活动图描述的是响应内部处理对象类的行为。

预订业务对普通客户的顺序框图(图三)

财务业务对代理客户的协作框图(图四)

划版业务的顺序框图(图五)

图三是一个普通客户预订广告业务的顺序框图例子。用户向预订子系统的用户接口登陆,经用户合法性验证后,向预订子系统的客户信息数据库提交查询请求,客户信息需要经过验证,保证该广告记录到该客户数据集中。比如一个客户曾经到该报刊订过 5条广告,通过该新广告同客户历史广告信息添加操作,为决策支持客户信息统计分析提供数据源。如果该客户是新客户,则需要对客户信息执行记录操作,该步操作为客户关系管理提供数据源。

通过顺序框图可以清晰看出系统用户、预订子系统的用户接口、广告客户、广告和合同模块之间时间为顺序的消息交换,这对于把握系统的控制流、顺序行为和交互行为是非常有益的。建立在分布网络环境下的广告管理系统的事件流和控制流是非常复杂的,需要从层顶到底层进行一步步分解,用多幅能反映动态结构的图来分析与说明。图四图五分别反映了财务业务对代理客户的协作框图和划版业务的顺序框图。

通过框图,设计和开发人员可以确定需要开发的类,类之间的关系和每个类操作和责任。顺序框图按照时间排序,用于通过情境检查逻辑流程。协作框图用于了解改变后的影响,可以很容易看出对象之间的通信,如果要改变对象,就可以方便地看到受影响的对象。图六是分析阶段产生的系统类图。

分析阶段产生系统类图(图六)

2.3 广告管理系统的实现、测试和系统配置

最后,在系统编码前,需要考虑系统的实际部署情况,可以利用Rose的部署视图。系统采用三层逻辑结构:界面与业务逻辑分开,业务逻辑又与数据库访问逻辑分开。同时,部署视图还需要处理一些其他问题,如系统容错、网络带宽、故障恢复和响应时间。

经过系统分析和设计后,就可以根据设计模型在具体的环境中实现系统,生成系统的源代码、可执行程序和相应的软件文档,建立一个可执行系统;进而需要对系统进行测试和排错,保证系统符合预定的要求,获得一个无错的系统实现。测试结果将确认所完成的系统可以真正使用;最后完成系统配置,起任务是在真实的运行环境中配置、调试系统,解决系统正式使用前可能存在的任何问题。

四 结束语

广告管理系统的发展方兴未艾,目前正处于传统手工、半手工管理向数字化过渡的阶段,转变过程中需要应用和集成最新的信息技术,以达到对网络信息资源最有效的利用和共享。传统的系统分析设计方法难以保证效率和质量,将 UML应用于广告管理系统的建设,可以加速开发进程,提高代码质量,支持动态的业务需求。从实际效果来看,UML可以保证软件开发的稳定性、鲁棒性,在实际应用中取得良好的效果。

 

 

版权所有:UML软件工程组织