Markus Völter这篇关于使用DSL来描述系统架构的文章非常有趣。
Architecture as Language: A story
使用一种形式化语言来描述系统的架构确实是一种简短而明确的做法。这篇文章的核心观点在于认为现有的ADLs(Architecture Description Languages)或UML(Unified Modeling Language)无法满足对系统架构描述的需求:系统需要表达一些新的“概念”,而不是生硬的使用已有的概念结构来构造系统。这个观点确实是有趣……
作者对UML等通用模型语言的看法:
引用
- Instead of thinking about your architectural concepts, working with UML requires you to think more about how you can use UML's existing constructs to more or less sensibly express your intentions. That's the wrong focus!
- Also, UML tools typically don't integrate very well with your existing development infrastructure (editors, CVS/SVN, diff/merge). That's not much of a problem when you use UML during some kind of analysis or design phase, but once you use your models as source code (they accurately reflect the architecture of your system, and you generate real code from them) this becomes a big issue!
- Finally, UML tools are often quite heavyweight and complex, and are often perceived as "bloatware" or "drawing tools" by "real" developers. Using a nice textual language can be a much lower acceptance hurdle.
话说我想起去年听过的一个讲座。2007-09-15,
宗平 順己氏等一行人来我们学院做了个讲座。当时做的记录如下:
引用
今天下午听了一个颇为有趣的讲座,涉及到一些以前我没接触过的软工方面.这个讲座由宗平 順己氏主讲,分为两部分:
第一部分的主题是关于软件过程的,主要讲述了waterfall, iterative与prototyping这三种模型的特征,应用场景等的比较.应该说大部分的内容都与我在大二时上的软工课上学到的差不多,不过他们有他们的角度,听起来也还不至于很闷.这部分是以日语讲授的.
第二部分的主题是以UML图来对业务模型建模,主要关注点是软件工程中的上游工程.宗平氏提出了一个叫做"To-Be"的模型,给软件工程师熟悉的UML图赋予新的含义,将其应用于业务模型建模上,以缩小软件与业务工作人员之间的理解差距.这个相当的有意思,用类图来表示业务,原本类图里应该是"方法"的地方则表示"活动",然后每个"活动"是一个具体的业务操作,用活动图来表示.它只使用了UML图中的类图/顺序图/活动图,因为这主要是面向更靠近业务方面的工作人员来实现建模,然后用于与程序员交流的方法,所以并没使用所有类型的UML图.这种建模似乎主要是针对供应链模型来做的,参考模型是APQC PCF和SCOR.这部分是以英语讲授的.
具体的资料我还需要些时间来消化,暂时就不说了.
Markus Völter是觉得UML不够用,而宗平 順己氏则是采用UML去描述业务模型。这两个思路貌似正好是相反的,不过内里说不定还有什么相似的地方呢。回头再看看。
============================================================================
嗯,要留意一下所谓"Language oriented programming"的概念。
这篇文章要参考一下。
分享到:
相关推荐
本论文是基于“元模型”的软件开发,是DSL建模语言的研究与实践,历时3个月,先后研究了“家族图谱”,“电子手表”的领域建模,通过编辑生成器,自动从模型生成最终可执行代码。即实现了普通人都可以编写软件的目的...
#### 一、DSL技术简介 DSL(Digital Subscriber Line,数字用户线路)是一种通过传统电话线提供高速数据传输的技术。它利用现有的铜线电话网络,在不干扰普通电话服务的情况下,实现宽带互联网接入。DSL技术在世界...
K8s-Kotlin-DSL项目旨在为Kubernetes提供一种更直观、更易读的配置方式,通过使用Kotlin编程语言的领域特定语言(DSL)来构建Kubernetes资源对象。 1. **Kotlin DSL的优势** - **可读性增强**:相比传统的YAML或...
Ruby-JMeter是一个强大的工具,它将Ruby编程语言与Apache JMeter测试框架相结合,为性能测试和负载测试提供了灵活且易于使用的领域特定语言(DSL)。这个工具使得测试人员和开发者能够用Ruby编写JMeter测试计划,...
文档中给出的一个例子是XSLT(XML Transformations),这是一种用于转换XML文档的语言,也是DSL的一种形式。下面是一个简单的XSLT示例,展示了如何定义一个模板来复制XML元素: ```xml *"> ()}"> *"> ()}">...
【描述】该资源可能是一个博客文章的压缩包,详细介绍了如何使用Kotlin DSL来配置Gradle构建脚本。博客链接为:https://liuguilin.blog.csdn.net/article/details/107472130 在Android Studio中,Kotlin DSL提供了...
Main是一个Ruby类工厂和领域特定语言(DSL),专门设计用于快速、简洁地生成命令行程序。 "Main"库的核心理念是通过提供一种结构化的方式来定义命令行选项和子命令,使得代码更加清晰、易于维护。它允许开发者用一...
LSM6DSL是一款由STMicroelectronics生产的高性能惯性测量模块,具有多种传感器功能,包括3D加速度计和3D陀螺仪,它们被封装在一个系统内。本文手册主要提供了关于LSM6DSL的使用信息和应用提示,深入讲解了如何进行...
Ruby-Skeptick是一个强大的开发工具,专门为Ruby程序员设计,用于构建和执行ImageMagick命令。ImageMagick是一款广泛使用的开源跨平台图像处理库,能够处理各种图像格式,并提供了丰富的图像操作功能。Skeptick作为...
在MES系统建模平台中,DSL工具如Visual Studio DSL用于创建图形化的建模环境,允许开发者通过图形界面将业务需求转化为模型。域模型是DSL的核心,它定义了领域类和领域关系,构建出模型的语法结构。通过DSL设计器,...
在这个场景中,DSL_Terra_Perl_下载.zip 提到的是一个与物理模拟相关的DSL,很可能是用于地质建模或者环境科学中的计算。Terra通常指的是地球科学或者地理信息系统(GIS)相关的领域,而Perl是一种通用的、解释型的...
DSL是一种用于特定领域的问题表示和解决的编程语言,它允许开发者以更接近他们所处理问题的自然语言来编写代码,从而提高效率和代码可读性。 DSL Tools是Visual Studio的一个扩展,它提供了一整套工具和框架,使得...
DSL(Domain-Specific Language,领域特定语言)是一种为了特定应用领域设计的计算机语言,它通常比通用编程语言更简洁、直观,更容易理解。在VHDL(Very High-Speed Integrated Circuit Hardware Description ...
DSL有两种类型的用途:一种是ADSL(非对称数字用户环线),用于要求很快的下载速度,但上传速度较慢可以接受的互联网接入领域;还有一种是SDSL(对称数字用户环线),用于对下载和上传速度都有较高要求的短距离网络...
标题中的“Node.js-一个输出JSON模式的DSL”暗示了我们将在Node.js环境中探讨一种特定的领域特定语言(DSL),这种DSL被设计用于生成或处理JSON(JavaScript Object Notation)数据。JSON是一种轻量级的数据交换格式...
**Ruby-DeclarativeAuthorization** 是一个专门为Rails应用设计的授权插件,它引入了一种声明式的领域特定语言(DSL)来集中管理应用程序的权限规则。这个插件旨在简化身份验证和授权流程,使得开发者可以在代码中...
STM32F4系列微控制器是基于ARM Cortex-M4内核的高性能MCU,常用于工业控制、自动化、智能硬件等领域,与LSM6DSL配合可以实现高精度的运动跟踪和姿态测量。 在"STM32f4的LSM6DSL程序"中,我们通常会看到以下关键知识...
在Android开发中,RecyclerViw是用于展示大量数据列表的一种高效组件,它通过复用视图来提高性能。而`RVcompose`则是一个专为RecyclerView设计的开源项目,利用Kotlin的Domain Specific Language(DSL)来简化UI组件...
840DSL v4.5 Toolbox 是一个专为西门子NCU730.3PN设计的软件工具集,它提供了对840DSL数控系统进行编程、诊断和维护的功能。840DSL是西门子的一款高端数控系统,广泛应用于精密加工中心和重型机床。这个版本的...