UML软件开发过程和支持环境研究论文
国际上,软件工程领域在近3年内取得了前所未有的发展,其成果超过软件工程领域过去10至15年来的成就总和。其中最重要的、具有划时代意义的成果之一就是统一建模语言UML(Uni—fiedModelingLanguage)的出现。
UML是继80年代末和90年代初面向对象建模技术高潮后,出现方法学大战,应市场对统一建模语言的要求,由世界著名的面向对象技术专家Booch>Jacobson和Rumbaugh发起,在著名的Booch表示法、OOSE方法和OMT方法的基础上,广泛征求意见,集众家之长,几经修改而完成时。在美国,截至1996年10月,UML已经获得工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用UML语言作为建模语言。
到1997年11月17日UML被OMG(ObjectManagementGroup)米纳为基于面向对象技术的建模语言标准。这标志着面向对象技术中建模语言的争论暂时告一段落。
作为建模语言,UML可以说是一种定义良好、易于表达、功能强大且普遍适用的建模语言,
它为用户建模提供了完整的符号表示和不同层次的兀模型(metamodel)如用例图(uses—casedia—gram)包图(packagediagram)、类图(classdiag—ram)、状态图(statediagram)、X寸象图(objectdia—gram)、活动图(activitydiagram)、顺序图(se—quencediagram)合作图(collaborationdiagram)组件图(componentdiagram)、配置图(deploy—mentdiagram)等。它的作用域不仅支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程,但如何恰当地将这些可视化图形建模技术用于解决软件开发所面临的问题以及对建模过程的研究和支持工具的研究,仍是目前该领域的热点问题。
目前,在基于UML的开发方法和环境方面国际上已经进行了一些研究和实际开发工作。Ra—tional公司正致力于它称之为Objectory过程的研究,并试图将其原有支持OMT的工具作进一步扩充,以期支持UML建模,并支持对OMT模型的升级。国内对UML的研究尚处于起步阶段。
本文从当前对软件开发过程的需求出发,提出了UML柔性软件开发过程,并设计了相应的集成化支持环境的组成框架。
1UML柔性软件开发过程
电子计算机技术和现代通讯技术的飞速发展正迅速改变着人们对时间和空间的概念,世界在物理上正变得越来越小,而内容却比以前任何时候都复杂。全球经济竞争、信息高速公路等近代信息技术都迫使各个企业面临着新的挑战。为了能在瞬息万变的市场和激烈的竞争中保住一席之地,负责信息技术机构的主管人员将不得不学会应变管理技术(changemanagement)。在软件开发领域,需要改变其开发与生产的范式,以满足这种新的需求。
传统的软件开发模式越来越难以满足当前企业和市场的需求。新的产品开发周期已不再是一次性的从需求定义、软件设计、实现和交付,迭代式增量开发方式已得到广泛采用。这是由于软件系统的规模越来越大,其复杂程度不断提高,而与此同时又不得不面临激烈的竞争对手和瞬息万变的市场。时间就是效益,谁先占领市场,谁就是胜利者。但是占领市场和击败对手的条件除了时间之外,更重要的是过硬的质量和提供用户真正需要的产品。因此将新的.软件开发模式归结为图1所示的迭代式开发和图2所示的柔性软件开发模型。
所谓柔性软件开发是指软件开发过程应在需求工程的牵引下,首先建立系统模型,对模型进行模拟、分析和调整,进行从需求到建模的“自顶向下建模,由底向上修改”即从需求工程出发,首先明确用户要求,确定需求优先级;在此基础上为系统建立模型,该模型应是可模拟的,通过对模型的模拟运行,以分析模型是否满足用户需求和满足的程度。整个建模过程是自顶向下逐层细化的,而模拟修改则由底向上地进行。
然后在保证模型正确的基础上,进行代码的生成,同时还应考虑到对需求修改的灵活性和快速响应能力,因此应能进行‘闭环开发”即不仅能支持从模型到代码的自动生成,将新的模型转换为代码,还应能支持从代码到模型的逆向变换,将原有的代码转化成模型,进行再次分析、修改和调整,进行新一轮的开发,从而为增量式开发提供支持,能分阶段提交产品,也提高了对用户需求变化的响应速度和应变能力,满足用户不断变化的需求。
2UML软件开发支持环境
为此,新一代集成化UML软件开发环境应是能无缝集成以上2个阶段的一个柔性软件开发环境。其组成应包括UML可视化建模系统、UML模拟系统、UML代码生成系统、UML逆向变换系统及其支持环境等,且这些环境的创建均应基于UML的定义,除了语法规则外,还包括详细的语义定义,如图3所示。从而支持系统建模、模拟和“闭环式开发'。
1)UML可视化建模系统UML可视化建模系统支持从系统需求、系统分析到系统设计的整个建模过程,提供UML图形的编辑和美化工具,保证得到语法正确、语义完整的UML图形模型,并提供包括文档管理、图形打印等辅助支持。可进一步分为以下几个子系统,如图4所示。
()可视化模型建造系统由于UML不仅支持对系统的对象建模,还支持对需求和系统体系结构的建模;不仅支持系统的静态模型,还支持对系统动态模型的描述。因此模型建造系统应支持以下模型的创建和编辑:需求模型。包括静态模型和动态模型。静态模型即功能模型,在UML中通过用例图描述系统功能和各功能的潜在用户及它们之间的关系;动态模型通过活动图支持对业务过程或事务处理过程的描述。
系统对象模型。同样包括静态模型和动态模型。通过包图、类图和对象图定义系统对象及对象间的静态关系。通过顺序图、合作图和状态图描述对象间的交互关系和交互顺序、对象的生命周期以及生命周期中对象可能存在的状态以及状态间的转换约束。
系统体系结构模型。通过组件图、配置图支持软件体系结构和硬件体系结构以及通信机制的定义。进一步还应支持软硬件系统之间的合作关系的可视化表示。
(2)UML语法正确性检测机制