UML科学建模系统研究

2010-12-02 00:38:52冯富霞李森贵
潍坊工程职业学院学报 2010年2期
关键词:范型面向对象工具

冯富霞,李森贵

(安徽工程科技学院,安徽芜湖 241000)

UML科学建模系统研究

冯富霞,李森贵

(安徽工程科技学院,安徽芜湖 241000)

本文对实际使用UML的误区进行了深入分析,针对问题给出了以可伸缩迭代—递增模型和阶段类驱动可操作任务为中心的实用RUP方法,并结合MDA指出了科学选择UML建模工具的指导思想。

UML;可伸缩迭代—递增模型;RUP;实用方法

引言

1997年推出的UML为面向对象软件开发技术提供了形式化建模语言,UML提供了建模的图符及其语义等相关内容的详细规定,但是,它仅是语言,而不是方法[1],它们像汉语词汇与文章写作的关系。实际中如何高效地使用UML,仍存在一些模糊认识。所以,为了全面地认识、正确地应用UML,需要深入探讨与分析建模过程。

1 实际中UML的使用

传统软件工程中结构化设计的思想对于软件开发人员的影响比较深刻,软件开发思路大多还是遵循结构化分析、设计与结构化编程(SA|SD|SP)的思想。尽管面向对象分析、设计、编程(OOA|OOD|OOP)的思想早已深入人心,但是,实际应用还不尽然。UML作为面向对象软件开发的标准建模语言也遭遇了同样的情况,易出现新工具老用的现象,进而不能发挥应有的作用。

1.1 以结构化范型应用UML

结构化范型以数据词典为驱动[2],具有清晰的软件生命周期阶段划分,即需求、分析、设计、实现、维护、退役6个阶段[3]。瀑布模型为典型生命周期模型,实际中很可能以此为指导思想使用UML,表现如下:

(1)分析阶段解决做什么的问题,主要分析系统工作流程以及涉及的数据,产生相关文字资料及代表性的数据流图(DFD)和实体关系图(ER);套用UML,仅使用用例图(对SA的应数据流图)。

(2)设计阶段分为概要、详细设计,解决怎么做的问题。重点在于规划软件的具体实现,除了文字说明资料外,最富代表性的图为功能模块图、流程图;套用UML,常照搬功能图,附加上用活动图(等价于SD的流程图)。

(3)后两个阶段为具体的实现阶段,没有太正规的文档资料。80年代由于大量面向对象可视化编程工具的使用(如C ++,JAVA,DELPHI等),OOP随即被人们所熟知、推崇[4]。但是,因为习惯于结构化编程思路,人们至今常常还在被动使用类、对象的概念,并没有或很少去主动地构建系统本身的类,只是在语言工具提供的组件对象中添加事件,更改其属性从而实现系统功能。

至于UML其他图由于没有设立类而无法使用。在实现阶段,UML的出现并没有改变以上现状。用这种方式使用UML是牵强的。

1.2 以面向对象的思想应用UML,但不遵循规范的过程方法

面向对象开发以用例图为驱动,已被证明是当前最有效的开发方式[5]。使用面向对象的思想肯定要建立类,因此,能充分使用UML静态、动态图,以各种视角完善建模系统。

但是,面向对象较传统软件开发是复杂的,UML内容是庞大的,如果没有规范的过程方法指导,可能UML图会随心所欲使用,缺乏条理性、逻辑理性、目的性,达不到准确、全面描述系统的目的,人为增加开发复杂性。许多介绍UML使用的案例也存在不明确过程方法、阶段性任务和最终目的不明确等问题,不能正确引导使用。此种使用虽较前者有很大进步,但仍不够科学,没有发挥UML的利用率。

2 如何系统、科学、高效地使用UML建模开发系统

2.1 全面认识面向对象范型

首先,必须对采纳UML的软件开发范型有全面、深入地认识,明确使用UML的指导思想和价值。当前最先进的软件开发技术与传统范型的系统对比见表1。

2.2 使用UML要遵循科学、规范的软件开发过程

2.2.1 UML与RUP统一过程相结合

软件工程的目的是高效率、高效益生产正确、可靠并满足用户要求的软件。软件过程是软件工程的重心。当今,流行的面向对象软件过程是1999年 Rational公司的统一过程(RUP),由前Rational公司三位著名的高级管理人员Jacobson、Booch、Rumbaught提出,其集成了其他面向对象方法的优点,并经过实践证明,对于不同过程具有自适应性。包括开始、细化、构建、移交四个阶段,采用最符合人类解决问题方式的迭代——递增周期模型,每阶段都有明确的阶段性任务,要建立翔实的文档、UML模型[6]。

表1 结构化和面向对象范型的对比

Gartner公司的Dugguan警告说:“要记住,UML只是一种符号,并不是什么方法论。”要发挥UML的利用率,解决以上2节中的问题,需UML与RUP统一过程相结合。它们之间关系为RUP的操作需借助于UML表达,UML科学、合理的使用必须借助RUP支撑。

2.2.2 统一过程的实用实施方法

统一过程并不是一系列具体的操作步骤,而是包括方法学(生命周期模型)、技术、工具、人的复杂综合性学科。全面了解、应用RUP是困难的,所以,需要对其精要进行总结、提炼,实际中指导软件开发。

统一过程实用实施方法主要包括:软件生命周期模型的选择和可操作性阶段任务。

软件生命周期模型的选择,可伸缩迭代—递增模型如图1,瀑布模型是成功的传统模型,它是迭代而不递增的,迭代—递增模型可以说是瀑布模型与递增模型的有机融合。

可操作性阶段任务,类驱动建模过程。从图1可以看出几乎每一递增阶段都涉及生命周期的所有阶段,只是工作侧重点不同。具体操作其实隐含着一条线:需求描述—分析类—设计类—实现类,其实际区别如图2,每阶段具体操作概括为:

1.以用户角度,建立商业模型。主要反映系统实际情况与用户沟通捕获需求,全面建模系统,其中以用例图为代表。

2.以开发人员角度,建立分析模型(中心分析类)。

a)用例图内容分组(包),添加设计所需包。(可选)

b)根据前阶段的系统描述,提取名词为类,并分为边界、控制、实体类。

c)提取类的属性、操作的概要信息。确定分析类之间的关系,建立系统以分析类为基础的静态、动态描述图(包图注意包的内聚、耦合性)。

注:模型中多自然语言标示。

图1 可伸缩迭代—递增模型

3.建立系统详细、可操作的设计模型(中心设计类)。

a)体系结构设计。规划系统软件制品对应的构件图和硬件设置相关的部署图。

b)由分析类建立设计类。模型中所有命名程序性标准化 ,属性细化到类型、长度描述,操作具体到可程序化的要求(活动图、状态图),建立系统以设计类为基础的静态、动态描述图。

注:模型中多程序性语言标示。

4.把设计类转化为具体编程语言相关的实现类,实现软件制品。

5.构建测试模型,测试实现。

图2 分析类—设计类—实现类

2.3 树立MDA思想,合理选择UML工具

很多人认为系统开发就是编码,当前又出现极限编程新倡导。RUP要求建立详尽的系统模型,如果这些模型只用于交流目的,就会失去建立UML模型的诱惑力,阻碍使用UML的主观能动性。MDA模型驱动体系架构是当前软件业的热点之一,倡导UML模型的自动生成性。UML2支持MDA的特性,软件架构师Shaun·Forgie认为,UML2.0版本是模型驱动开发时代到来的号角。建模文件不再是负担,由模型自动得到执行系统,这是使用UML的真正动力。

但是,MDA还处于新生阶段,实现此目标需真正支撑MDA工具的出现,目前,严格地说没有此种工具,大部分是支持生成代码框架。但是,仅此也可以减轻工作量,提高系统开发效率、效益,且长远收益是巨大的(软件架构师Shaun·Forgie说,“模型驱动架构已经使我节省了50%的开发工作量)。

使用UML要树立MDA思想,有意识地选择支持MDA的恰当工具(如:IBM等奠基的Eclipse将成为全面实现这个复杂结构的第一个开发环境),提高UML模型的最大利用价值,增强使用UML建模系统的主动性。

结语

科学实用的UML建模过程是复杂的工程,本文侧重软件开发本身,并没有从管理学、经济学等角度探讨,同时提出的观点需要在实践中进一步发展提高。

[1]Ivar Jacobson,等.统一软件开发之路[M].北京:机械工业出版社,2002:1-10.

[2]李芷,等.软件工程方法与实践[M].北京:电子工业出版社,2004:20-30.

[3][5]Stephen R.Schach面向对象与传统软件工程:统一过程的理论与实践[M].北京:机械工业出版社,2006:159-160.

[4]殷兆麟.UML及其建模工具的使用[M].北京:清华大学出版社,2004:1-10.

[6]Per Kroll,Philippe Kruchten.Rational统一过程:实践者指南[M].北京:中国电力出版社,2004:1-10.20-40.

(责任编辑:潘 敏)

Research on the Scientifically Modeling System with UML

Feng Fuxia,Li Sengui
(Anhui Engineering Technological College,Wuhu Anhui 241000)

In this papaer,the practical mistake about UML usage is analyzed deeply,useful approach aiming at the mistake is given,which is the flexible iterative-increasing model and driven-class phase manipulability tasks.At last, based on MDA,the guidance about the scientific choice on UML tool is given.

UML;flexible iterative-increasing model;RUP;useful approach

2009-11-11

冯富霞(1974-),女(汉族),河北献县人,安徽工程科技学院计算机科学与工程系讲师,硕士研究生.

TP312 文献标识码:A 文章编号:1009-2080(2010)02-0087-03

猜你喜欢
范型面向对象工具
技术社会与现代主义文学新范型
美育学刊(2021年2期)2021-04-01 08:28:18
波比的工具
波比的工具
邵雍“击壤体”的体式特征及其诗坛反响
北方论丛(2020年1期)2020-03-30 14:53:50
军队院校信息化教学模式基本范型探讨
卷宗(2019年7期)2019-03-22 02:16:32
面向对象的计算机网络设计软件系统的开发
电子测试(2018年15期)2018-09-26 06:01:34
面向对象的数据交换协议研究与应用
“巧用”工具
读者(2017年18期)2017-08-29 21:22:03
面向对象Web开发编程语言的的评估方法
寒士文学作家左思壮而不悲的范型特征