在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

Obeo 发布 Obeo 设计器 5.0

  • 2011-03-18
  • 本文字数:2603 字

    阅读完需:约 9 分钟

上周,Obeo 发布了对其 Obeo 设计器产品的一次较大规模的升级。该产品的一个核心目标就是只需基于 Eclipse GMF(图形化建模框架)而无需 GMF(或 EMF, Eclipse 建模框架)方面的知识就能提供创建域特定建模工具的能力。该工具是基于“视角”的概念:

视角这个名词是一种抽象概念,它为某一系统提供某种规范,且这一系统只存在某一系列的特定问题。在 IEEE 1471 规范中有详细介绍。在本文中,我们用它来为用户提供针对某一特定关注点的一系列可视化呈现。

针对每个视角,用户可以定义展现的内容及其图形化功能、工具面板以及相关行为。图形化部分被分离成多个行为部分。Obeo 设计器提供了不同视角之间以及和 UML 的集成。UML 建模器将在几个月后发布。

InfoQ 就这次新发布与来自 Obeo 的 Jerome Benois 和 Freddy Allilaire 进行了交谈。

InfoQ:为什么你们认为企业需要加强建模能力?

Obeo:建模从广义上是从技术中得以抽象,使其达到“为人所理解”的层次。工具也可以关注解决业务难题,而不仅仅是技术限制。使用 Obeo 设计器,业务经理和软件架构师们就有能力定义并共享一套通用的语言。建模形成了自然也就有助于他们交流的一致性。企业里的每个角色都可以根据其特定的词汇和关注点表现出某一通用的模型。

Obeo 的建模方法通过基于 DSL(领域特定语言)和视图从而上升到这种抽象层面。通过分析系统必须满足的需求和约束条件,我们可以很方便地开发一些模型去呈现系统。最初的建模工具在对待类似 MDA 和 UML 这类标准上都有些“教条化”。这些标准不能够针对客户情况进行调整从而使信息技术适配业务需求。每逢这种情况,用户只能调整其语法来适应这些工具,妥协必不可少。工具提供商不得不面临定义一套最综合全面的语言的难题。

DSLs 为每个域提供了专门的形式体系而只需要尽可能少的语法和概念。结果就是与业务更进一步的协调以及建模的简化。然而,如果一个较大的组织中存在几个截然不同的业务单元时,整套 DSL 方法开发起来还是比较困难的。这必然会导致出现针对各个业务单元的多个体系。我们认为最好是定义一套由所有利益关系人共享的通用语言,一种无所不在的语言。为了提高效率并被所有利益关系人所共享,有必要采用一种投射性的方法。IEEE 1471/D4.1 标准以在一个系统中视角的概念解构了这种方法。每个视角关注在每个给定的问题上。这种解构使得分析流程变得简化,因为流程被划分成了几个清晰定义的关注点上。各视角都针对某一既定方面的信息回答了一系列问题,分析人员使用“各个视角”来验证某一给定的架构是否符合透视的不同规则。这种方法基于的是关注点分离和完善迭代信息的原则,但主要还是从多个特定视角去挖掘统一模型。模型工程学和 MDA 是与此类方法可以达到最大的一致性的方法,因为它们能够准确无误并清楚的定义这些概念并相对应这些概念来操作统一的模型。

InfoQ:可以跟我们分享一下你们的用户使用 Obe 设计器解决的一些问题吗?

Obeo:通常,用户使用 Obeo 设计器来协同设计一些受制于很多约束的复杂项目。用户可以开发若干个工具,这归功于 Obeo 设计器不同视角(逻辑的、物理的、安全方面等等)的分离。此方法非常通用,最近,我们惊奇的发现有人已经把我们的方法应用到机器人技术上了。

在业务建模领域,我们的产品可以用来,比如,支持保险服务产品及产品目录。在财务领域,我们有客户将产品给财务分析人员使用,以一种综合的语言来进行定价和制定业务规则。

在企业架构领域,Obeo 设计器被用来支持企业转型。它从几个关键的视角对 TOGAF(开发组织架构框架)提供支持:战略视角、业务视角、数据视角、应用视角和技术视角。该单元模块支持由开放组织规范定义的核心图表和矩阵。

在系统工程学领域,用户可以使用我们的产品来支持基于硬件 / 软件一致性和功能性分析的系统验证和核对。

在进行非功能需求分析时,Obeo 设计器可以用来支持生成时间约束性分析和风险分析工件。

我们很快会在我们的站点上增加一些新的案例分析。

InfoQ:你什么时候会推荐用户创建图形化设计器而不是文本型编辑器?

Obeo:有些用户,通常比较技术的那些,更喜欢文本性标注。基于文本语法的计算指令对于我们大多数人来说会更加自然和高效。而从另一方面来看,图形化标注提供了较高层次的抽象。业务一般也倾向于使用图形化方式呈现。有些图形化呈现对人们来说很自然,比如将一个集合以树状的形式表现,或者用箭头连线几个盒子的方式呈现一个串行化过程。使用画图来展现一个工作流或设计一个奇思妙想是更为自然的方式。Obeo 设计器能为你在图形化呈现上提供很大的帮助,这也是这个产品很重要的一个价值所在。除此之外,产品还提供了其他一些呈现方式,比如图表和矩阵。你也可以在同一个编辑器里混合使用图形和文本两种建模方式,这样可以结合利用两者各自的优点。我们的产品完全能够兼容 Xtext(一种为你的域模型提供文本语法的工具)和 EEF(一种为你的域模型提供表单呈现的工具)。

InfoQ:在过去,代码生成器在融入软件构建过程中遇到了一些困难,目前有何改变呢?

Obeo:第一代代码生成器大多都是基于黑盒方法的。这些方案都不适用于特殊用户的需求。这种类型的方案仅仅可用于生成代码的框架。自然,你的入口点和与其对应生成的代码之间的同步也就很快失去了。从代码生成的观点来看,收效甚微。

我们可以注意到,代码生成其实一直都是存在的!那什么是代码编译呢?所幸目前大多数的人都不必去写汇编代码,代码生成对我们来说是完全透明的。

代码生成工具(尤其是那些基于建模的)着实有了进展:提供了更加简化的语法、高效的代码生成、可以与 IDE 工具(如 JDT)相提并论的高级特征。在 Obeo 设计器中,负责生成代码的是 Acceleo。Acceleo 是由 Eclipse 基金支持的一款基于 MDA(模型驱动架构)编程视图的开源代码生成环境。从 MOF(Meta-Object Facility,元对象机制)模型到文本语言,它推行 OMG 规范。它使得应用(或部分应用)可以自动生成,而且适用于敏捷开发活动。在应用体系中的调整可以比手工构建更快速。Acceleo 是可适配的,它提供了一些预设的满足特定需求的方案。除了 Acceleo,Obeo 设计器也提供了 Obeo 可追溯功能,可以用来探测并修正所有你的应用代码和模型之间出现的不一致和同步问题。

但是代码生成并不是万能解决方案。在开发过程中,软件架构师应该仔细地判断技术决策是归属于框架的还是代码生成器的。这没有一个统一的答案,要具体问题具体分析。


查看英文原文: Obeo Releases Obeo Designer 5.0

2011-03-18 21:198888
用户头像

发布了 52 篇内容, 共 22.5 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

单商户 V4.4,初心未变,实力依旧!

CRMEB

来看一看智能自助洗车怎么加盟?

共享电单车厂家

自助洗车加盟 加盟自助洗车 车白兔自助洗车

什么叫做信息安全?包含哪些内容?与网络安全有什么区别?

行云管家

网络安全 信息安全 数据安全

大疆车载从多家数据库中选定 TDengine 存储海量数据

TDengine

数据库 tdengine 物联网 时序数据库

webRTC SDP mslabel lable

Boll

WebRTC

通过的英特尔Evo 3.0整机认证到底有多难?忆联科技告诉你

科技之家

HiEngine:可媲美本地的云原生内存数据库引擎

华为云开发者联盟

数据库 华为云 内容数据库引擎

养不起真猫,就用代码吸猫 -Unity 粒子实现画猫咪

芝麻粒儿

游戏 Unity 特效 7月月更

Spring Cloud源码分析之Eureka篇第二章:注册中心启动类上的注解EnableEurekaServer

程序员欣宸

Java spring SpringCloud 7月月更

TDengine 社区问题双周精选 | 第三期

TDengine

数据库 tdengine 时序数据库

微帧科技荣获全球云计算大会“云鼎奖”!

微帧Visionular

更严苛的英特尔Evo 3.0,正在让合作伙伴们上瘾

科技之家

【网易云信】超分辨率技术在实时音视频领域的研究与实践

网易智企

实时音视频

Python 入门指南之Python 简介

海拥(haiyong.site)

Python 7月月更

超分辨率技术在实时音视频领域的研究与实践

网易云信

实时音视频

现在加盟自助洗车是否还来得及

共享电单车厂家

自助洗车加盟 加盟自助洗车 车白兔自助洗车

自助洗车加盟门槛如何?高不高

共享电单车厂家

自助洗车加盟费 车白兔自助洗车 自助洗车加盟门槛

视觉体验全面升级,豪威集团与英特尔Evo 3.0共同加速PC产业变革

科技之家

彻底理解为什么网络 I/O 会被阻塞?

C++后台开发

网络编程 socket 非阻塞网络I/O C++后台开发 C++开发

自助共享洗车能挣钱么?分析下

共享电单车厂家

自助洗车加盟 车白兔自助洗车 自助洗车费用

无人自助洗车机投放选址有啥要点

共享电单车厂家

自助洗车加盟 车白兔自助洗车 自助洗车机投放

leetcode 10. Regular Expression Matching 正则表达式匹配 (困难)

okokabcd

LeetCode 动态规划 数据结构与算法

直播预告|如何借助自动化工具落地DevOps(文末福利)

云智慧AIOps社区

DevOps 云原生 运维开发 自动化构建工具

CODING DevSecOps 助力金融企业跑出数字加速度

CODING DevOps

研发效能 DevSecOps CODING 代码评审 持续安全交付

Python|数据结构——列表和元组

AXYZdong

7月月更

我们为什么要学习数学建模?

图灵教育

数学 数学建模

详解SQL中Groupings Sets 语句的功能和底层实现逻辑

华为云开发者联盟

数据库 sql 聚合函数

华律网牵手观测云,上线系统全链路可观测平台

观测云

【云资源】云资源安全管理用什么软件好?为什么?

行云管家

云计算 安全管理 云资源

践行自主可控3.0,真正开创中国人自己的开源事业

极狐GitLab

git DevOps gitlab 自主可控 极狐GitLab

2022-Java后端工程师面试指南-(并发-多线程)

自然

多线程 并发 7月月更

Obeo发布Obeo设计器5.0_方法论_Jean-Jacques Dubray_InfoQ精选文章