`
FRESHET
  • 浏览: 22035 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

下一代模型驱动开发

阅读更多

本文追踪了IBM Rational 自动化塑模工具的发展历程,描述了IBM Rational Software Architect的强大能力,并且帮助读者决定他们是否可以从过渡到这个工具而获利.另外,文章中也讨论了在 IBM基於 Eclipse的软体开发平台(Software Development Platform)中使用集成工具的优势.
在2004 年10月, IBM 发布了 IBM Software Development Platform, 包括新一代的塑模和模型驱动开发 (MDD) 工具.IBM Rational Software Architect是该次发布的设计和建构的中心,是一个为了建立构架良好的应用和服务,与 Unified Modeling Language (UML)一起支持MDD的广泛的,集成的设计和开发产品.
Rational Software Architect 支持使用现代软体工业技术的应用和Web 开发(静态的和动态的),包括:
Java 2, Enterprise Edition (J2EE) 和 Web services 技术
物件管理组织 (OMG)的模型驱动架构 (MDA) 和以服务为导向的架构 (SOA)
JavaServer Faces (JSF)支持快速应用开发的能力
支持基於资产开发的可重用资产规范 (RAS)
Rational Software Architect包括IBM Rational Application Developer for WebSphere Software (IBM WebSphere Studio Application Developer产品的最新版本) 的所有能力,并且将他们增加到MDD技术中.结果集结在单个产品中的一个整合的设计和开发解决方案.
本文的目的是从发展演化的 角度来讨论Rational Software Architect,这是一个明显有别於那些由先前MDD产品支持的工作流程和使用情景的下一代MDD产品.
IBM Rational 塑模工具的演化
为了理解Rational Software Architect 塑模产品演化的规模,让我们简单回顾IBM Rational产品在这个方面的历史.
Rational Rose
IBM Rational Rose 软体已经并且继续成为一个市场主导的视觉化塑模工具.它是一个独立的工具,在应用程序接口(API)层与市场主导的IDE结合,来支持各种程式语言和其它实现技术.然而,尽管Rational Rose已取得一定的成功,也推进了UML塑模实践,但是仍然只有一小部分开发人员按照规定使用塑模,Rational也已经尝试培训更多的人员.但是大 多开发人员不想放弃他们的IDE而去使用额外的工具;他们想将视觉化塑模集成在IDE里面.
Rational XDE
为 了满足这个需要,在2002年,IBM Rational推出了Rational XDE软体,为当时出现的程式技术(Java 和 Microsoft .NET)提供了一个扩展的开发环境.我们把Rational XDE看成Rational Rose的下一代;严格地说,它并不是新版本的Rose(因而名字发生了变化),而且也未必取代Rose,因为我们有目的地限制Rational XDE只支持一定的IDE和实现技术.
通过将Rational XDE构造成流行IDE的plug-in工具,我们鼓励大量开发人员采用塑模和模型驱动开发.Rational XDE藉由支持功能强大的引擎,允许模式导向的开发方式,也推进了MDD的发展;另外,也使得软体设计层重复使用达到一个新的境界.之后加入了具体的客制化的能力,为IBM Rational对 MDA提供了早期的支持.
2003年 10月,合并到IBM之后,IBM将Rational Rose 和 Rational XDE产品线加固到一个家族 -- IBM Rational Rose XDE Developer -- 这样,无论用户倾向於使用独立的塑模工具还是一个直接集成在他们IDE的工具,他们都可以购买工具组合,并根据自己的需要进行安装.
与Eclipse前所未有的结合的机会
即 使在IBM并购Rational软体之前,这两个组织也是合作夥伴,致力於开发新的,更强大的方法来将MDD的能力集成进Eclipse框架和基於 Eclipse的IDE .这项工作早期的成果是在2003年添加到WebSphere Studio Application Developer中的轻量级作用的程式码视觉化和视觉化编辑特性,这些特性是开发Java部署层模型的非常有效的方法.
该技术现 在是IBM开发MDD工具的基础.不再是简单地与Eclipse集成,IBM正在Eclipse之上建构新的MDD能力.这为Java 和 C/C++开发提供了前所未有的支持,也为集成其它生命周期工具提供了全新的能力.我们在2004年10月发布了新的工具,基於Eclipse的IBM Software Development Platform的远景逐渐变成现实.使用Eclipse我们现在能够为塑模产品实现更深入和广泛的集成.我们 能够影响基於角色的用户接口和工具扩展性;能够更好地将塑模与生命周期的其它方面集成,比如需求管理.
Rational Software Architect:集成的设计和开发
我 们这个新的,基於Eclipse的Rational Software Architect是一个完整的设计和开发工具解决方案.如同前面所提及,它包括Rational Application Developer for WebSphere Software (WebSphere Studio Application Developer的新版本) 的所有能力,拥有程式码视觉化和视觉化编辑特性;它是客户开始使用MDD的一个很好的入门.另外,它还包括Rational Web Developer for WebSphere Software (以前的 WebSphere Studio Site Developer) 全部的,更新的能力.
Rational Software Architec在Rational Application Developer的特性上建构,增加了对MDD的全力支持,包括UML 2塑模,程式码生成,模式,模型转换,以及实现 MDA开发风格的新途径.它并不是一个全新的产品,是特别为想要应用MDD的客户而设计的,展示了自然的演化和在IBM Rational工具中已拥有的能力.它特别为试图广泛应用MDD的用户而打包.
结构检查和控制
IBM已经从客户处了解到,无论你将应用系统设计和建构得多麼好,也总会在部署阶段经历程式码这个层次问题,出现未检查的现象,最终导致架构性能的降低,严重影响软体的品质.
针 对这个现象,软体架构师在部署之前检查已有的程式码,以评估其真实的设计架构和品质.做这项工作的过程中,他们往往发现各式各样的问题:从设计到反应程式码的不正确;程式码的改变引起设计和架构的依赖;编码标准,规则和样式方面不规范等.最终,应用系统的架构是由部署的程式码来呈现,所以软体架构师必须分析程式码,以评估系统的可维护性,并且在规则的辅助下,掌握架构的演化.
为了给这样的分析提供更自动的支持,Rational Software Architect引入了"Java 应用结构的检查和控制特性.它支持基於模组的规则,并且使用软体视觉化技术,允许用户看到J2EE 和 J2SE部署后的的架构.用户可以更容易地发现架构的不足之处,或者是否有"反模式",比如循环依赖,集线器之类的一些已逐渐加入到应用程序原始程式码中的问题.
通过程式码视觉化和开发人员层级的测试,进行自动结构的检查和控制之后,软体架构师能够显著地提高他们所设计和部署的应用系统的品质.IBM在Rational Software Architect中引入的先进特性将开始改变架构师和开发人员考虑开发过程的方法.
运作时支持和语言支持
在应用的运行时支持环境中设计和开发工具所扮演的重要角色.Rational Software Architect在WebSphere应用服务器上为Java应用提供了极大的运作时支持.此外,因为Rational Software Architect 包括支持BEA WebLogic Server的Rational Application Developer,所以使用Rational Software Architect部署的应用也是支援跨平台的.Eclipse C/C++ Development Tool (CDT)作为IBM Rational Software Architect的一部分而含括内,同时也扩展了对C和C++开发的支持.基於Eclipse的解决方案允许我们在Rational Software Architect中重复使用一些特性,来支持上述语言和JAVA中的MDD.
对模型驱动架构的支持
MDD为使用模型开发软体展示了许多风格,其中,模型驱动体系架构(MDA)是由物件管理组织 (OMG)提出的.MDA基於一些OMG标准之上,包括Unified Modeling Language (UML 2),以及涌现出来的关於如何最好地将塑模技术应用到软体开发过程的思维.MDA在抽像层定义了模型,然后定义映射和管理模型与各种实现技术之间关系的转换.以下是一些有用的MDA塑模层的定义:
计算无关模型 (Computation-Independent Model , CIM) - 不考虑结构或者处理的情况下,处理系统环境和需求.
平台无关模型 (Platform-Independent Model , PIM) - 不考虑与特定平台相关的细节,处理系统的操作.
平台相关模型 (Platform-Specific Model, PSM) - 将PIM和与特定平台相关的细节结合起来.
平台模型 (Platform Model, PM) - 对於使用 PIM 定义组成特定平台的技术概念,元素和服务.
转化模型(Transformation Model, TM)- 定义并指定从特定PIM转换到PSM所需的转换.
尽管MDA并不是一个标准,它明确提倡使用一些现有的OMG标准.MDA指定了:
Meta-Object Facility (MOF)用於定义原始模型.
UML 2用於指定应用开发模型和转换.
MOF Query / View / Transform (QVT)用於指定转换.
Rational Software Architect支持MDA的理论,也支持MDA建立的基本标准.但 是,我们不能将Rational Software Architect归为一个MDA工具,因为在某种程度上,MDA并不是一个标准,而且仍有一些争论.更重要的是,Rational Software Architect实际上支持一系列以程式码为中心的,基於物件导向的设计和开发范例.换而言之,它支持MDA及其它的开发风格.
你是否使用IBM Rational的其它塑模产品
如果你已在使用IBM Rational软体,建议你有必要时,考虑移植到Rational Software Architect,这个新产品的优点包括:
Eclipse 集成
通过EMF的塑模方式和高度工具扩展性.
更容易使用.
UML 2, 是最新的塑模技术.
Rational Software Architect中的新的结构检查和控制特性.
Eclipse之上,使用C++的MDD.
支援复杂转化的能力.
使用静态次序图表方法将程式码视觉化的能力.
程式码检查的能力.
在Rational Software Architect中使用Java IDE和MDD工具.
如果你的团队目前在使用Rational Rose 或者 Rational XDE,那麼对你而言,移植到Rational Application Developer也是有道理的.WebSphere Studio Application Developer的程式码视觉化和视觉化编辑特性已升级到UML 2并且在Rational Application Developer中继续存在.尽管它不支持通用塑模或者完全的MDD,却支持UML入门级的使用.如果你正使用Rational Rose 或者 Rational XDE,主要为了从程式码中截取图形档,那麼这个层次的UML支持就有可能满足了你的需要.
分享到:
评论

相关推荐

    USB驱动程序开发

    USB驱动程序开发是Windows操作系统下编程的一个重要分支,它要求开发者对USB通信协议、Windows驱动开发模型以及相关的开发工具和环境有深入的理解。USB驱动程序是计算机操作系统中一个至关重要的部分,它负责管理...

    基于事件模型的下一代的B/S开发框架ECHO

    "基于事件模型的下一代B/S开发框架ECHO"是一个创新性的技术解决方案,旨在提升Web应用程序的开发效率和用户体验。这个框架的核心理念是将HTML元素转化为可操作的“控件”,模仿Windows桌面应用中的交互模式,使得...

    WDF USB驱动开发指南.zip

    1. **WDF概述**:WDF是微软的下一代驱动模型,包括Kernel-Mode Driver Framework (KMDF)和User-Mode Driver Framework (UMDF)。KMDF适用于内核模式驱动,而UMDF则用于用户模式驱动。这两种框架都提供了一组抽象接口...

    基于人工智能和大数据驱动的新一代水文模型及其在洪水预报预警中的应用.pdf

    例如,高分辨率测雨雷达可以提供精确的实时降水数据,从而为分布式水文模型的开发提供支持,使模型能够模拟出更为真实的洪水发生情况。 在新一代水文模型中,还结合了遥感水文技术,通过卫星和雷达等遥感设备获取高...

    win10 版本21H2 + vs2022 + Windows 11 版本 22H2 WDK 驱动工程demo

    总的来说,这个压缩包提供了一个在最新Windows环境下进行驱动开发的实践平台,对于学习和理解Windows驱动程序的开发流程非常有帮助。通过研究"MyDriver1",开发者可以深入理解驱动开发的核心概念和技术,并将其应用...

    安湃软件推出下一代芯片功耗模型CPMv2.0.pdf

    安湃软件发布的CPMv2.0是下一代的芯片功耗模型,它广泛应用于芯片、封装和系统的协同分析和优化。针对无线和汽车市场,该模型特别增强了对于3DIC(三维集成电路)和SiP(系统级封装)设计的分析功能,可以评估系统...

    电动轮驱动汽车动力学仿真模型及试验验证

    试验过程中,采用开发出的电动轮驱动汽车进行测试,并将试验结果与同一工况下的仿真结果进行了对比。结果显示,模型的仿真结果与实际试验结果高度吻合,证明了该模型的有效性和实用性。 #### 五、极限行驶工况下的...

    pcidriver.pdf 讲述PCI驱动开发的一个文献资料

    “pcidriver.pdf”不仅是一份关于PCI驱动程序设计的技术文档,更是深入理解和掌握Windows驱动开发的重要参考资料。通过对PCI总线特性的了解,结合Windows驱动程序开发框架的应用,开发者可以更加高效地完成PCI设备...

    基于人工智能技术下个性化算法模型开发和应用原理的研究.pdf

    知识图谱和深度学习一起,成为推动互联网和人工智能发展的核心驱动力。 从人工智能的发展历程来看,其研究范式经历了符号主义、联结主义和行为主义三个阶段。符号主义研究范式侧重于利用数理逻辑构建知识体系,并...

    企业工程论坛合集(二):企业应用、信息系统与模型

    新一代企业应用与信息系统架构及模型驱动系统MDS的发展表明,软件行业正逐渐由传统的面向过程或面向服务的架构转向更加动态和灵活的模型驱动系统架构。在业务流程管理和工作流技术中,模型驱动的方法提供了更为清晰...

    基于PCI总线的DSP运动控制卡的Windows驱动程序开发

    综上所述,基于PCI总线的DSP运动控制卡的Windows驱动程序开发涉及到多方面的专业知识和技术应用,包括对PCI总线特性的理解、DSP芯片的选择与应用、WDM驱动程序模型的掌握以及高效通信机制的设计。通过合理的硬件选型...

    Python-RedMacDB下一代弹性分布式消息驱动和并发响应式的存储服务

    **Python-RedMacDB:下一代弹性分布式消息驱动与并发响应式存储服务** Python-RedMacDB 是一个基于Python实现的高性能、高可用性、可扩展的分布式存储服务,设计灵感来源于亚马逊的DynamoDB数据库系统。它融合了...

    AngularJS开发下一代Web应用

    **AngularJS:构建下一代Web应用** ...它简化了前端开发流程,促进了团队协作,并为构建高性能、响应式的下一代Web应用奠定了基础。通过熟练掌握AngularJS,开发者可以构建出更加健壮、易于维护的Web应用程序。

    基于EFI的USB设备驱动的开发

    为了解决这些问题,英特尔提出了EFI(可扩展固件接口),作为下一代BIOS的全新架构。EFI不仅提供了更丰富的功能和服务,而且支持多种现代设备和技术,其中包括USB设备。 #### 二、EFI架构简介 EFI是一种高度可扩展...

    windows驱动最小程序

    WDM是早期的驱动模型,适用于Win9x到Win7系统,而WDF是微软推出的新一代驱动框架,用于简化驱动开发,提高驱动程序的稳定性和安全性,适用于Win8及以后的系统。尽管如此,WDM仍被广泛使用,因为它能支持广泛的硬件...

    基于模型驱动的嵌入式应用软件 Rhapsody5.0

    2.1 模型驱动的实时嵌入式应用软件开发方法....................................................3 2.2 Rhapsody 概述............................................................................................

    cpp-WinBtrfs是一个用于下一代Linux文件系统Btrfs的Windows驱动程序

    `cpp-WinBtrfs` 是一个专为Windows平台设计的驱动程序,它使得Windows用户能够直接访问和操作下一代Linux文件系统——Btrfs。这个项目的目标是为那些需要在Windows环境中利用Btrfs特性的用户提供一个兼容层,从而...

    新一代Lora芯片sx126x的驱动源码

    新一代LoRa芯片SX126x系列,包括SX1261、SX1262和SX1268,是Semtech公司推出的高...开发者需要深入理解LoRa技术、芯片特性以及驱动开发流程,才能充分发挥这些芯片的潜力,为各种物联网应用带来卓越的性能和续航能力。

Global site tag (gtag.js) - Google Analytics