elegant coding
elegant coding with c#, Oracle, delphi and java

导航

 

http://www-106.ibm.com/developerworks/blogs/dw_blog_comments.jspa?blog=317&entry=67637&ca=dgr-jw22MSrejectsUML

MS最近推出了software factory和DSL(domain definition language)的概念, 也遭到了很多人的攻击。 该文出自UML三友之一的Grady. 这里是文中和根贴里的一些观点。

There's no doubt that reuse at the level of design patterns or, even better, vertically-oriented architectural patterns is a Good Thing, but what Microsoft is proposing to do is not exactly like the manufacturing metaphor, and so their use of the term is a bit misleading (although Steve has curiously used the image of a conveyor belt when describing the Microsoft factory process).

毫无疑问, 用design patterns或vertically-oriented architectural patterns 来实现reuse是好事, 但MS打算作的和制造业用的方法确不大一样。所以software factory这个词导致一点误解。


I think factory methods for software are dead wrong, witless, and counter-effective. Organizations that build good software know that software is an R&D activity, not a production activity. Organizations that try to make it into a production activity produce bad software (though potentially lots of it).

我认为工厂方式是绝对错的、好的软件企业知道软件业是R&D 行为, 而不是生产行为。


"A careful look at the specialization mechanisms for UML reveals their limitations. Stereotypes and tagged values allow you to change icons etc, although even simple alterations like decorating a box to show the state of some property isn't within range. You can't change the semantic constraints, or invent new sorts of diagram or new categories of element."
好好看一下UML的spec, 可以看出他的不足。用Stereotypes 和tagged values 你可以改变图标, 甚至一些简单的变动比如显示有的属性的状态不在范围内,但你不可以改变semantic constraints, 或发明新的diagram和元素分类。(注: Stereotypes 和tagged values 是用来作UML标记,定义和扩展的)


UML only includes certain types of graphical format. If you want your language to include tree-structured diagrams, or tables, or math formulae, or block-structured text, or prose, or if you want hyperlinks - well, I think you'd have a hard time. While our initial offering won't include all those styles, we'd certainly like to support them at some stage in the future
UML只包括一定种类的图形格式, 如果你想你的语言包括树结构或表或数学公式。。你就有麻烦了,不过我们最初不会包括所有的格式, 当然我们会在未来支持他们(注: 这是MS的人说的)

To produce a software a factory-like stile we need two things which made contemporary engineering posssible: 1) a draft-like language which presents software in a way that makes it easy to validate it; 2) a system of measurement or validation which allows QA person to say immediately that this module passed or failed

要象一个工厂一样的做软件, 我们需要两个东西, 一是一个草稿一样的语言,他可以用简单的方法去验证表达一个软件, 二是一种验证的测量方法, QA就可以用他很快判断出模块的结果。

For building DSL, you will have to design your model and then use it (run time phase). Microsoft will offer a complete suite for building DSL (you can try the beta now!), and will also offer some pre-defined dialects for usage in its tools. I see Microsoft DSL vision more as a "configuration language" building set (see the Microsoft Dynamic System Intitative at http://www.microsoft.com/windowsserversystem/dsi/default.mspx).

要想写DSL脚本, 你必须设计你的模块并且用他, MS会提供一些完整的工具, 还有一些定义好的方言。看上去DSL更象一种配置语言。

UML has its range of applicability. UML is well suited for identifying and visualizing the structure and the collaborations of the components in a system. It is also an invaluable aid in the iterative process of discovering and refining requirements. On the other hand, a UML tool may not be the best suited for modeling UI components, or for creating business rules or even writing math formulae

UML有他的应用范围, 他适用于标记和视觉化构件的结构和互动。 他也有很助于需求定义和挖掘的循环过程。但UML不是很适用于建模, 或创建商业逻辑和数学公式。


What Microsoft is doing with Domain Specific Languages serves two purposes: First, it addresses a broader spectrum of need than current generation UML tools, by starting a a conceptual architecture level, then moving down through a logical and physical deployment, based on reference architectures. It's the reference architectures which today have higher economic value to an enterprise. Second, DSL's create economic opportunities for ISV's to add value by providing standardized visual components which cannot be seperated from implementation details

DSL有两个用途, 一是他比UML更全面, 从架构概念层开始, 然后一直到软件的物理和逻辑分发。他基于引用架构, 而是他创造了给软件商提供了商业机会去提供标准构件。

posted on 2004-12-24 10:58  yyanghhong  阅读(1227)  评论(0编辑  收藏  举报