您当前所在位置:首页 > 论文 > 计算机论文 > 软件项目管理

浅议UML集成化软件开发环境的设计思想

编辑:sx_chengl

2016-08-17

UML/Designer目前已在部分企业和北航研究生中进行了试用,反映良好。这里是一篇集成化软件开发环境的设计思想,接下来让我们一起来看看吧~

摘要:统一建模语言UML(Unified Modeling Language)的出现为研制和开发集成化面向对象软件开发环境奠定了基础。针对当前软件开发方法中所表现出的新特点,结合用户在项目开发中的实际需求,讨论了基于UML的集成化软件开发环境的设计思想及应具备的主要功能,介绍了基于该思想开发的可视化建模工具UML/Designer的功能体系结构和实现情况。

关键词:建立模型;统一建模语言;面向对象;软件开发环境;可视化建模

1997年11月,OMG(Object Management Group)将统一建模语言UML (Unified Modeling Language)[1]采纳为面向对象建模语言的工业标准以来,学术界和工业界相继推出了许多基于UML的可视化建模工具产品,对软件工业化发展起到了重要的推动作用。但已有的工具在不同的方面各自存在着大大小小的缺陷,开发人员对建模工具也不断提出新的需求。因此,如何设计和实现基于UML的集成化软件开发环境仍然是软件工程领域中一个值得研究和探讨的问题。

本文结合近20年来研制和应用CASE工具以及近7年来研制和应用UML开发环境的经验和教训,针对当前软件开发方法学呈现出的新特点,讨论了UML集成化软件开发环境的设计思想,并介绍了基于该思想开发的可视化建模工具UML/Designer的实现情况。

1 UML软件开发环境的设计思想

UML是一种“语言”而不是一种“方法”,单靠UML本身并不能解决软件开发中涉及的各种问题,如设计元素的选取、系统结构的设计、项目管理、风险缓解等。UML的应用离不开科学的开发方法的指导。因此,UML支持工具的设计,必须把需求牵引和技术驱动紧密结合起来。

1.1 软件开发方法特点分析

随着系统规模和复杂度的不断提高,软件开发呈现出许多新的特点,如系统的需求分析、设计、实现和集成等越来越困难;系统开发周期长,费用高,进度难以控制;激烈的市场竞争要求软件必须在尽可能短的时间内推向市场;群组协作和并行开发成为软件开发的主要形式,要求加强开发人员之间的协作和交流等。针对软件开发的这些新需求,当前主流的面向对象软件开发方法,如RUP(Rational Unified Process),OPEN(Object-oriented Process,Environment and Notation)和XP(eXtreme Programming)等也相应地呈现出一些新的特点:

1)针对软件开发的复杂性和高要求,融入了大量工程管理的思想和方法,以在整个软件生命周期中,对人员、产品、开发活动等进行有效的控制和管理,保证整个项目在计划的指导下有序地进行。

2)在传统数据抽象和信息隐藏等软件工程精华的基础上,更加强调构件重用和模式重用等思想,基于构件的软件开发CBD(Component-BasedDevelopment)已经成为软件开发的主导思想。

3)采用迭代增量式的软件开发模式,将整个软件开发过程分为多个阶段,每个阶段由一次或多次迭代组成,每次迭代包含经典软件生命周期的所有阶段,分步逐次提交可应用的子系统,以避免软件生产的非规模经济的负面影响。

4)软件开发过程的可定制性。软件开发情况千差万别,不可能有适用于任何情况的统一的软件开发过程。因此,软件开发方法中的具体实施过程可以根据实际情况进行调整,以满足不同的开发需求。

根据大量报道证明,这些机制对于解决当前软件开发中所面临的问题和挑战是相当有效的,因而是必不可少的。因此,设计和开发集成化软件开发环境,必须能对软件开发方法的上述特点进行很好的集成。

1.2 UML软件开发环境的设计思想

根据上述软件开发方法所呈现的新特点,并结合用户进行项目开发的实际需求,基于UML的集成化软件开发环境主要应具备以下功能。

1.2.1 基本建模能力

UML提供了多种模型图,分别从不同侧面描述系统的不同特性,基于UML的软件开发环境必须能够对UML的图符表示提供全面的支持,并尽可能与UML的版本更新保持同步。在编辑环境中,要能为模型的拷贝、粘贴、删除、选取、查找、排

版等操作提供全面的支持。

在编辑环境的设计方面有2种做法值得考虑:一种是向用户提供一种宽松灵活的建模环境,允许用户插入其它外来图符,既支持UML的正确使用,但又不把用户仅仅限制在UML的图符上;另一种是向用户提供一种严格的建模环境,不允许用户添加任何不符合UML规范的图符。UML尚处于进化、发展之中,在某些方面的描述能力还非常有限。前一种做法可以使用户根据需要定制图符,从而能够更为灵活地表达设计思想。但若给予用户过多的自由,则又很容易破坏UML的“标准性”;后一种做法更容易保证所建模型的标准性,以及语法、语义的正确性和一致性,但在某些情况下可能会制约用户设计思想的表达。在这2种做法之间进行合理的权衡,寻求一种较为理想的方案,是工具设计者应该考虑的重要问题之一。

1.2.2 模型的一致性检查和可追踪性

UML有着较为严格的语法和语义规则,为保证UML模型符合UML的语法定义,系统中应提供语法正确性检查机制。此外,由于UML支持用户在不同的开发阶段、不同的抽象层次上、从多个不同的角度描述系统,UML模型间的依赖和约束关系错综复杂,如图1所示。如果模型间一致性关系单靠开发者手工来维护,不仅烦琐而且经常会造成差错或遗漏,极不现实。作为建模支持系统,必须提供模型间的一致性检查和维护机制。模型的可追踪性[1,2]为模型一致性的维护提供了重要的依据。在设计和实现UML支持环境时,可将二者结合起来进行考虑。

1.2.3 模型的组织和浏览

对于大型项目,模型图及模型图元的数目会随着开发工作的推进急剧增加。开发环境必须提供一种组织和管理模型元素的机制,清晰地体现出被设计系统的逻辑结构,以方便用户查找和浏览特定的模型图和模型图元。此外,还必须提供在模型间方便的“导航”能力。如,由用例应能方便地找到参与该用例实现所涉及的类及描述类的实例交互过程的交互图;由类能找到其状态图;由组合活动能方便地浏览到其内嵌套的任意子图等。

1.2.4 模型的正逆向变换

建立模型不是软件开发的最终目的,软件开发是为了生成可执行系统。因此,基于UML的集成化软件开发环境应提供可视化模型向特定语言代码的自动生成功能。完成这部分功能的系统称为正向变换子系统。该子系统提供的功能可以为开发人员节省大量用于编写类、属性和操作等代码的琐碎工作时间。

另一方面,在迭代增量的开发模式中,后续迭代过程中,很可能会对前序迭代中的模型或代码进行修改。为了保持模型与代码的一致性,要求必须研究由代码向模型转换的逆向变换功能,完成逆向变换功能的系统称为逆向变换子系统。

有了正、逆向变换子系统,才能真正实现一个由模型到代码、再由代码到模型不断补充、不断完善的“闭环式开发”的集成化软件开发环境。

1.2.5 信息共享和群组开发

对于大型项目来说,信息共享、构件重用以及群组并行开发是不可回避的。在理想的情况下,与项目有关的所有信息,包括项目前景视图、业务决策、系统模型、重用构件等,都应放入信息仓储库中,进行统一的管理。通过在适当级别上定义所有权和共享权来实现项目信息的共享,开发人员之间也可以合作进行单一构件的开发[3]。通过提供对仓储库的标准访问接口,还可以实现与其它开发工具的信息交换。

为了很好地协调小组成员之间的开发,支持工具中还必须有版本管理机制。这不仅能够保持、查看或重建已有版本的代码,便于错误的跟踪和恢复,还是群组开发能够顺利进行所必不可少的。

1.2.6 文档自动生成

开发环境应支持需求描述、体系结构描述、面向对象分析和设计等文档资料的自动生成,并提供必要的模板。应能为UML模型及其相关信息生成HTML文档,以便用户可以通过浏览器查看模型信息,而不必启动开发工具本身[3]。

1.2.7 打印和打印预览

除了能将模型信息保存到文件,开发环境中还应允许模型图以及图的相关信息通过打印机输出。既应允许将一张大图打印到多个页面,也应允许将一张图缩放到单页打印;还可以选择只打印一幅图中的某个部分;选择只打印某种类型的图(如只打印类图),或一次性全部打印;对打印页面的标题、页号等信息的设置也必须提供周密的支持;并允许用户在打印之前预览打印效果。

1.2.8 扩展编程接口

软件开发受多种因素影响,譬如软件的种类、项目的规模、开发人员的素质、公司文化等,所以很难定义一种适合于所有类型软件开发的通用过程。与软件开发方法的这一特点相对应,一个集成化软件开发环境应是可扩展的,应能向外提供可扩展的编程接口,允许用户通过该接口访问模型对象信息,从而根据需要添加其它功能。

本文并不是要给出UML开发环境的完整的功能列表。除了上面提到的,还有许多其它特性必须考虑,比如健壮性、易用性等,由于这些因素是所有开发环境都必须考虑的共性问题,不是基于UML的开发环境所特有的,在此不再详述。

2 工具实现:UML/Designer

基于上述思路,设计开发了基于UML的面向对象开发工具UML/Designer,其功能体系结构如图2所示。

UML/Designer的整体功能框架建立在对象管理系统(OMS)、图形支持库(GSL)和结构化图形编辑器生成器(SGEG)3个可重用子系统之上。OMS提供了对模型信息的存取及管理机制,扮演着数据库系统的角色;GSL是一个由C++对象组成的库,主要完成对二维图形对象的操作;SGEG可根据用户对图形编辑器的描述生成目标编辑器。这3个子系统为可视化图形编辑环境的快速生成提供了底层的基础框架。

在模型建造子系统的设计中,严格遵循了UML的语言规范。为了在保证模型正确性的前提下,不影响用户建模过程的灵活性,UML/Designer在模型的正确性和一致性检查方面,根据不同情况,分别制定了正确引导、实时检查、自动维护、静态检查等4种策略,大大降低了模型出现错误和不一致性的机会。在模型的组织和管理上,建立了用例、逻辑、构件和配置4种视图,清晰地反映了系统不同方面的特性;双向变换、可重用资产库等功能的设计和实现在文献[4]中有详细的介绍;此外UML/Designer在打印、文档生成等方面也提供了丰富的功能。

目前,UML/Designer的开发工作仍在进行之中,尚未完全实现第2节中所述功能,尤其在信息共享、对外编程接口以及模型的可追踪性等方面尚待完善。

3 结束语

本文讨论了基于UML的集成化软件开发环境的设计思想,并介绍了面向对象可视化建模环境UML/Designer的实现机制。UML/Designer目前已在部分企业和北航研究生中进行了试用,反映良好。

参考文献(References)

[1] Rumbaugh J, Jacobson I, Booch G。 The unified modeling language reference manual[M]。 MA: Addison-Wesley, 1999

[2] Tsumaki T, http://www。51lunwen。com/  Morisawa Y。 A framework of requirements tracing using UML[A]。 Seventh Asia-Pacific Australian Software Engineering Conference[C]。 Singapore, 2000。206~213

现在大家知道集成化软件开发环境的设计思想的内容了吧!希望大家可以好好利用!

相关推荐:

探析信息工程项目管理能力建设  

计算机机房管理系统的研发设计探析  

免责声明

精品学习网(51edu.com)在建设过程中引用了互联网上的一些信息资源并对有明确来源的信息注明了出处,版权归原作者及原网站所有,如果您对本站信息资源版权的归属问题存有异议,请您致信qinquan#51edu.com(将#换成@),我们会立即做出答复并及时解决。如果您认为本站有侵犯您权益的行为,请通知我们,我们一定根据实际情况及时处理。