nAML:一种全新的 .NET 应用程序建模方式!






3.15/5 (19投票s)
除了规范、示例和工具,一种新的可视化建模技术被引入,称为“nAML”(.NET 应用程序建模语言),它以一种革命性的方式克服了传统建模语言的局限性!
引言
nAML(.NET Application Modeling Language,发音为“namel”)是一种可视化建模语义,用于对具有广泛具体细节的 .NET 应用程序进行建模。它包含极其强大的可视化符号和语义,可以轻松地说明复杂的应用程序组件、流程和操作。它通过提供一个单一的空间来描述应用程序系统及其结构和行为、以及物理和逻辑组件,克服了传统建模语言的局限性。nAML 最强大的目标之一是,从读者的角度来看,理解应用程序系统几乎不需要符号语义知识。
示例:例如,使用 nAML,软件架构师可以在单个可视化图表中,针对最终用户、Web 界面、.NET 类、数据库对象、物理层(Web 服务器、业务逻辑服务器、数据库服务器等)之间的交互、通信和结构,来对整个或部分 Web 应用程序进行建模。
nAML 的主要目标可以考虑如下:
- 提供一个单一的空间,以可视化的方式描述一个或多个应用程序系统的结构和行为组件。
- 提供一个单一的空间,以可视化的方式描述一个或多个应用程序系统的逻辑和物理组件。
- 提供一个单一的空间,以可视化的方式从顶层到底层描述一个或多个应用程序系统。
- 提供一个单一的空间,以可视化的方式描述一个或多个应用程序系统的部分或全部。
- 从读者和设计者的角度来看,极其简单易懂且易于学习。
- 专注于 .NET 应用程序及其相关的逻辑和物理实体(用户界面、应用程序逻辑、业务逻辑、数据库等)。
术语和定义
元素
定义
元素(Element)是一种结构化符号,它是包含一个或多个物理和/或逻辑对象的物理或逻辑对象。
符号
示例
在 ASP.NET Web 应用程序中,ASP.NET 页面可以是一个元素,其中嵌入的控件是子元素,定义的事件处理程序方法是其中的操作。对于 .NET 类,成员元素是属性、数据字段等。对于物理数据库,其成员元素是表。
操作 (Operation)
定义
操作(Operation)是一种行为化符号,它是定义在元素中的、要执行的一个或多个动作的集合。
符号
或
示例
例如,ASP.NET 页面代码隐藏类可以作为一个元素,其中包含控件事件处理程序(如按钮的单击事件处理程序)作为操作。对于 .NET 类,成员元素是方法等。对于物理数据库,“操作”可以在存储过程、函数中定义。
关联
定义
关联(Association)是一种结构化符号,它说明元素或操作如何与其他元素或操作连接。
符号
Attribute
定义
属性(Attribute)是一种结构化符号,它是描述元素、操作或关联的元数据信息。
符号
属性的表示法可以是简单的文本,用于表示一个元素、操作作为另一个元素或操作的特征。
示例
对于 .NET 类“Employee”,可以有一个属性,如:类名:Employee
元素生命线
定义
元素生命线(Element Lifeline)是一种行为化符号,表示在其中说明了与相应元素相关的所有活动的时间跨度。生命线还显示了元素的活动和非活动状态。给定元素的每个生命线仅适用于该元素的一个实例。
符号
示例
如果正在创建一个 .NET 类的实例,那么它的激活将从创建的那一刻开始说明。
通用语义指南
- 为了区分系统的结构和行为组件,请将实线图视为行为组件,将虚线图视为结构组件。
- 元素生命线仅反映行为组件的时间跨度,而非结构组件。
Hello World! 示例
下面说明的示例显示了一个 ASP.NET 标签服务器控件中的“Hello World”消息,当用户单击一个 ASP.NET 按钮服务器控件时显示。
现在让我们看看在此示例中实现的相应 nAML 符号。
链接和下载
nAML 项目站点:http://code.msdn.microsoft.com/nAML
从此处下载最新的 nAML 教程规范、示例和 Visio 2003 模板。
从此处下载 nAML 的 Visio 2003 模板。
关注点
在我过去几年的软件开发生涯中,我曾参与过几个中大型项目,从系统分析、架构设计、实现到测试。为了表达需求和技术概念,可视化建模对我来说变得至关重要,尤其是在处理非常复杂的问题和相应的候选解决方案时。我曾是(现在仍然是)UML 的忠实粉丝,它拥有强大的符号和语义,可以从不同角度直观地描述系统。这种智能可视化建模语言使我的软件开发生活轻松了许多,即使在我长时间回顾需求和技术模型时也是如此。
在许多情况下,在我最近的软件项目中,我一直感到需要一种更简单的语义符号,我可以在单个图表中对现有和建议的系统进行建模,既从结构(静态)和行为(动态)的角度,也从物理到逻辑的角度,而且,最重要的是,它足够简单,可以快速实现,只需一小组符号。在一个图中同时包含结构和行为组件以及低级别视图,可能需要相当大的空间。然而,对于复杂的系统和/或概念,将整个模型绘制在一个宽大的白板或墙上,使系统利益相关者和架构师能够更深入地查看系统,这是可以考虑的。
在确立了 nAML 的符号和语义并成功实现后,我只想与他人分享这个想法,以便他们也能受益。使用 nAML 并不意味着您必须放弃现有的建模实践,但如果新概念真的能为您的开发者生活带来一些益处,请不要忘记提供您自己的反馈,以使 nAML 变得更好。
历史
2008 年 9 月 12 日:发布文章。
2008 年 9 月 11 日:nAML v1.0 (Beta 1) 在 code.msdn.microsoft.com 发布。