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"的概念。
这篇文章要参考一下。
分享到:
相关推荐
Ruby-JMeter - 一个基于Ruby的DSL用于构建JMeter测试计划
Skeptick - 一个通用的DSL用于构建和运行ImageMagick命令
Main - 一个类工厂和DSL用于快速生成命令行程序
本论文是基于“元模型”的软件开发,是DSL建模语言的研究与实践,历时3个月,先后研究了“家族图谱”,“电子手表”的领域建模,通过编辑生成器,自动从模型生成最终可执行代码。即实现了普通人都可以编写软件的目的...
Declarative Authorization - 一个授权Rails插件,在同一个地方使用声明式DSL用于指定授权规则
用于Kubernetes的Kotlin DSL和基于Fabric8模型的Openshift容器平台。
DSL有两种类型的用途:一种是ADSL(非对称数字用户环线),用于要求很快的下载速度,但上传速度较慢可以接受的互联网接入领域;还有一种是SDSL(对称数字用户环线),用于对下载和上传速度都有较高要求的短距离网络...
rvcompose:一个易于使用、可扩展的kotlin dsl,用于使用recycerview构建动态可重用ui组件
groovy 一个不错的文档 实现dsl
在这篇资源中,我们将详细介绍如何使用DSL来构建复杂的查询语句,以满足各种搜索需求。首先,我们将学习DSL的基本结构和语法规则,包括查询、过滤器、聚合和排序等核心概念。通过深入了解DSL的语法,您将能够灵活地...
一个输出JSON模式的DSL
流出设计即代码待办事项:LSP:https ://github.com/ebkalderon/tower-lsp壮举:支持组件 [props, config, action]流DSL -> DSL Parser -> DSL Json ---pipe---> Node.js -> Sketch 设置每晚安装从...
DSL用于软件工程的高级主题课程 介绍 该语言的目的是生成用于制造和运输的零件,特征和资源,以模拟生产线以及计算时间,成本等。 搭建环境 将除“模拟器”之外的所有项目导入工作区 如有必要,在“ ...
这是DSL论坛的一篇学习资料,通过该文档可以让我们对DSL有一些初步的概念和认识
本文档详细的讲解了LSM6DSL的详细配置,其中讲解了数据的读取,唤醒模式,计步功能等。
用于构建自定义DSL。 设置 $ npm install --save linear-dsl 用法 解析自定义DSL查询。 const dsl = require ( 'linear-dsl' ) ; let data = dsl . parse ( 'a(foo) AND b(2 bars) OR c(4)' ) ; 验证查询映射。 ...
802Dsl 简明调试 V2008.02 用于802Dsl数控系统的安装调试。
赠送jar包:dsl-1.2.7.jar; 赠送原API文档:dsl-1.2.7-javadoc.jar; 赠送源代码:dsl-1.2.7-sources.jar; 赠送Maven依赖信息文件:dsl-1.2.7.pom; 包含翻译后的API文档:dsl-1.2.7-javadoc-API文档-中文(简体)版...
DSL工程示范站,DSL图片规划,标准化施工
本篇是哥自己根据《Gradle In Action》翻译的,继哥之前的Groovy DSL前传系列:用Groovy实现DSL领域定义语言(http://download.csdn.net/detail/vincentvalenlee/8382325)的后传翻译。通过gradle这个在项目构建领域...