写点什么

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:198384
用户头像

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

关注

评论

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

微信标准版交易组件使用教程

frank-say

微信小程序 微信 大前端

IDEA 的 debug 怎么实现?出于这个好奇心,我越挖越深!

Java小咖秀

Java debug IDEA 調試

Mysql的事务隔离与实现

Geek_快去搞学习

MySQL 事务隔离级别 事务

TCP传输层面试中常问的问题汇总(你所不知道的传输层)

linux大本营

c++ Linux TCP 网络编程 TCP/IP

新建了一个Go项目的脚手架

soolaugust

GitHub 编程 Go 语言

模模搭古城搭建学习笔记4:完结篇

ThingJS数字孪生引擎

物联网 3D可视化 数字孪生

华为云数据库GaussDB(for Cassandra)揭秘第二期:内存异常增长的排查经历

华为云开发者联盟

云原生 内存泄漏 NoSQL数据库 华为云数据库 GaussDB(for Cassandra)

技术干货 | 轻松两步完成向 mPaaS 小程序传递启动参数

蚂蚁集团移动开发平台 mPaaS

ios android 移动开发 mPaaS

撸完腾讯T4大佬整理的ThreadLocal笔记,解决内存泄漏只是小儿科

牛哄哄的java大师

Java ThreadLocal

Vue SSR在好大夫的落地

好大夫在线技术团队

最佳实践 Vue 大前端 语言 & 开发 文化 & 方法

硬核资源!清华博士的Spring Boot中AOP与SpEL笔记,码农:膜拜

牛哄哄的java大师

Java springboot spring aop

数据结构与算法必知基础知识

bigsai

数据结构 算法

拜托阿里老表爆肝整理10W字Java高级面试精华!帮我成功入职字节

比伯

Java 编程 架构 互联网 计算机

☕【Java技术之旅】来啊!带你认识一下String字符串

洛神灬殇

JVM string 5月日更

变电站无人值守也能运筹帷幄?数据这样监控,时效节省高达90%

一只数据鲸鱼

数据可视化 3D可视化 智慧电网 变电站

这份Mybaits缓存机制总结,阿里大佬看完直呼牛批,到底有多强?

飞飞JAva

iOS 面试策略之语言工具-Swift vs. Objective-C

iOSer

ios objective-c swift 面试 移动开发

模块三总结

竹林七贤

Spring Bean生命周期、DI、IOC、AOP、循环依赖、事务管理

正亮

bean注入过程 spring aop spring事务管理

论文解读丨基于局部特征保留的图卷积神经网络架构(LPD-GCN)

华为云开发者联盟

图神经网络 图结构 图卷积神经网络 DenseNets 池化

Angular:都2021年了,你为啥还没用Angular

华为云开发者联盟

angular 数据绑定

STM32 GPIO的原理、特性、选型和配置

不脱发的程序猿

stm32 单片机 STM32 GPIO GPIO GPIO的原理、特性

Yarn的架构和原理

五分钟学大数据

hadoop YARN 5月日更

大厂常问iOS面试题汇总!

iOS猿_员

ios 面试 ios开发

软件质量指标自动度量方法

鸿渐科技_mason

代码质量 源代码 软件安全 软件质量指标 鸿渐科技

新一代运营保障体系探索

鲸品堂

运营 解决方案 运营商 通信运营商

带你快速入门Kotlin

Changing Lin

5月日更

iMazing中IPA文件的介绍与管理

懒得勤快

ios iphone imazing 苹果手机管理

如何计算STM32定时器、独立看门狗和窗口看门狗

不脱发的程序猿

定时器 stm32 单片机 看门狗

消息队列架构设计文档

高亮

架构实战营

敏捷MVP面面观

禅道项目管理

敏捷 MVP

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