技术开发 频道

UML及其在网上客户服务系统中的应用

【IT168 技术文档】

    UML——统一建模语言(Unified Modeling Language),是使用面向对象概念进行系统建模的一组图形化表示法。用于对软件进行描述、可视化处理、构造和建立软件系统的制品及文档。它适用于各种软件开发方法,软件生命周期的各个阶段,各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模办法。UML是一个通用的建模语言,可供所有的建模者所使用,而且建立在计算机界普遍认同的基础上,已经成为国际软件建模标准。

一、面向对象软件开发方法的介绍

    面向对象的开发方法是指导面向对象的程序设计进行软件开发的规范,它属于软件工程的范畴。面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法和过程,接近人类认识世界解决问题的方法和过程。也就是使描述问题的问题空间与实现解法的解空间在结构上取得一致。

二、UML的主要内容

    1. UML共有5类9种图形:
    (1) 用况图(Use Case Diagram):包括用况和角色。用况是对角色如何使用系统的描述,角色是系统各功能的操作者。用况图是从用户角度描述系统的功能。
    (2) 静态图(Static Diagram)包括:
    类图:由类及类之间的相互关系组成,类是应用领域或应用解决方案中概念的描述。类图是以类为中心组织的,类图中的其他元素或属于某个类,或与类相关联。类图表示系统的静态关系,在整个生命周期中都有效。
    对象图:类图的实例,几乎使用与类图完全相同的标识。不同点在于对象图只显示类的多个对象实例,而不是实际的类。对象图存在生命周期,因此只能在系统某一个时间段存在。
    包图:一般由类和包组成。是一种拆分系统的方法,将模型分解成包的结构组件,以便于软件小组将大的系统分解成易于处理的块结构,并理解和控制各个包之间的依赖关系,在复杂的开发环境中管理模块单元。
    (3) 行为图(Behavior Diagram)包括:
    状态图:一般项目中,不对每个类创建状态图,如果一个类有一些重要的动态行为,则可以创建状态图,其中展示了类的所有可能状态和事件发生时状态的转移条件。
    活动图:活动图是一种建模事件流的方法,用于对计算流程和工作流程建模。利用文本很有用,但文本可能较难阅读和理解,特别是当逻辑复杂并有许多其他事件流时,最好采用活动图来表现事件流信息。
    (4) 交互图(Interactive Diagram):交互图能够展示出为了满足系统需求,各个对象之间如何进行通信。对一些比较重要的用例要建立它的交互图,UML定义了两种交互图,两者都能够表达相似或完全相同的消息交互。
    顺序图:采用一种类似于围栏的格式展示对象之间的交互,强调消息的顺序。
    协作图:使用图表或网格展示对象之间的交互,着眼点在于对象之间的协作关系。
    (5) 实现图(Implementation Diagram)包括:
    组件图:组件是指代码的物理模块,可以是代码库或者是运行文件。例如在java中一个java类就映射为一个组件。在组件图中包含有组件及其之间的关系,组件间的唯一关系是依赖关系,依赖关系就是要求一个类要在另一个类之前编译。
    配置图:系统软硬件的物理体系结构,包含处理器、设备、进程和处理器之间的连接。一般,每个系统只有一个配置图。

    2. 也可用静态和动态机制将UML主要内容归纳为两个类:静态建模机制(描述需求,根据需求构造系统的结构),包括用况图、类图、对象图、包图、组件图和配置图,是建模的基础;动态建模机制:包括状态图、顺序图、协作图、活动图。

三、UML各种图形的主要用途

    概括地讲,我们可以利用UML来进行:

  • 利用参与者和用况来描述系统的边界和它的主要功能
  • 通过各种交互图来描述用例的实现
  • 用类图来描述系统的静态结构和特征
  • 用状态转换图来描述对象的动态特征
  • 用组件图和配置图来描述系统的物理特征和体系结构

四、实例:网上客户服务系统

    下面以网上客户服务系统为例,详细介绍使用况图、交互图和类图。

    1.系统概述
    随着计算机技术的不断发展,软件产品越来越复杂。软件产品投入使用后,在维护阶段,用户会不断地发现系统中存在的各种问题,同时也会提出新的需求。若不能及时的记录问题,并规范地安排维护工作,会使用户反馈的问题不能及时地解决,而且也会给维护工作造成混乱,延长维护周期。“网上客户服务系统”能够减少这种状况的发生,提高工作效率。
    软件用户登录本系统,将他所发现的软件问题及新的需求录入;软件分析人员实时地查看问题列表,查找新问题,对问题进行分析与分配;程序员或数据库管理员查找需要自己修改的问题,修改完成后,把相应的修改位置及与此问题相类似的其他问题的修改情况录入,并记录完成的时间;最后由测试员对程序人员的修改结果进行测试。

    2. 分析过程
    (1) 捕获需求——定义用况
    这里给出两个例子来说明如何定义用况:
    用况一:录入问题。参与者:软件用户。类型:主要用况。描述:用户将在软件使用中发现的问题或新的需求录入到客户服务系统中。
    用况二:分配问题。参与者:软件分析人员。类型:主要用况。描述:分析用户反馈的问题,若是因为用户操作有误,则给出正确的操作方法;若是程序有错,则根据错误对应的程序模块分配给相应的程序员。
    经过需求调研,可得到以下主要用况:“登录系统”,“录入问题”,“分配问题”,“修改问题”,“测试程序”,“查看维护进程”,“查看反馈信息”等。
    根据各主要用况,建立的用况图如图1。


图1 用况图

    (2) 针对一些对系统来说比较关键的用况建立交互图,这里以用况“测试程序” 为例,所建立的协作图如图2。


图2 协作图

    (3) 建立类图:分析各用况,及根据经验,我们得出系统的类有:“问题列表”,“程序修改情况记录”,“程序分配情况记录”,“程序测试情况记录”,“系统性能信息记录”,“人员信息记录”,“用户名和密码记录”,“软件模块记录”等实体类(实体类即需要在数据库中保存的类)。还有“查询处理”等控制类(控制类主要是进行一些系统操作的类)。还包括“登录窗口”等边界类(边界类主要是指系统使用者的操作界面)。
    我们用类图来展现各个类及其相互之间的关系,类图如图3。


图3 设计类图

五、总结

    最后,作者在学习和使用UML过程中,总结了以下几点体会:

    1. UML的优点:

  • UML语言使系统建模过程标准化,统一化,规范化。
  • UML在整个软件开发过程中采用相同的概念和表示方法,在不同的开发阶段,不必转换概念和表示方法,避免了传统软件开发方法的两个鸿沟。
  • UML采用图形化的表现形式。产生的模型易于理解,易于开发人员与用户之间的沟通,从而能够及时得到用户的反馈信息。
  • 用UML进行系统建模所得到的建模制品不仅仅包括各种模型框图,还有大量丰富的文档,这些文档给系统后期的维护工作带来了便捷。
  • UML不是一门程序设计语言,但可以使用代码生成工具将UML模型转换为多种程序设计语言代码,或使用反向生成工具将程序源代码转换为UML模型。

    2. UML的缺点:
    但任何事物都有正反两个方面,UML这种新兴的建模工具也存在它本身的一些不足,总结如下:

  • 无法从语法上建立状态图与顺序图的关系。
  • 无法从语法上建立活动图与顺序图在流程描述中的关系。
  • 协作图和顺序图中与消息相伴的参数不能与类图建立关系。

注:以上各图均在Rational Rose中实现。

0
相关文章