65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.15/5 (19投票s)

2008年9月12日

CPOL

5分钟阅读

viewsIcon

51498

除了规范、示例和工具,一种新的可视化建模技术被引入,称为“nAML”(.NET 应用程序建模语言),它以一种革命性的方式克服了传统建模语言的局限性!

引言

nAML(.NET Application Modeling Language,发音为“namel”)是一种可视化建模语义,用于对具有广泛具体细节的 .NET 应用程序进行建模。它包含极其强大的可视化符号和语义,可以轻松地说明复杂的应用程序组件、流程和操作。它通过提供一个单一的空间来描述应用程序系统及其结构和行为、以及物理和逻辑组件,克服了传统建模语言的局限性。nAML 最强大的目标之一是,从读者的角度来看,理解应用程序系统几乎不需要符号语义知识。

示例:例如,使用 nAML,软件架构师可以在单个可视化图表中,针对最终用户、Web 界面、.NET 类、数据库对象、物理层(Web 服务器、业务逻辑服务器、数据库服务器等)之间的交互、通信和结构,来对整个或部分 Web 应用程序进行建模。

nAML 的主要目标可以考虑如下:

  • 提供一个单一的空间,以可视化的方式描述一个或多个应用程序系统的结构和行为组件。
  • 提供一个单一的空间,以可视化的方式描述一个或多个应用程序系统的逻辑和物理组件。
  • 提供一个单一的空间,以可视化的方式从顶层到底层描述一个或多个应用程序系统。
  • 提供一个单一的空间,以可视化的方式描述一个或多个应用程序系统的部分或全部。
  • 从读者和设计者的角度来看,极其简单易懂且易于学习。
  • 专注于 .NET 应用程序及其相关的逻辑和物理实体(用户界面、应用程序逻辑、业务逻辑、数据库等)。

术语和定义

元素

定义

元素(Element)是一种结构化符号,它是包含一个或多个物理和/或逻辑对象的物理或逻辑对象。

符号

element.PNG

示例

在 ASP.NET Web 应用程序中,ASP.NET 页面可以是一个元素,其中嵌入的控件是子元素,定义的事件处理程序方法是其中的操作。对于 .NET 类,成员元素是属性、数据字段等。对于物理数据库,其成员元素是表。

操作 (Operation)

定义

操作(Operation)是一种行为化符号,它是定义在元素中的、要执行的一个或多个动作的集合。

符号

operation.PNG

operation2.PNG

示例

例如,ASP.NET 页面代码隐藏类可以作为一个元素,其中包含控件事件处理程序(如按钮的单击事件处理程序)作为操作。对于 .NET 类,成员元素是方法等。对于物理数据库,“操作”可以在存储过程、函数中定义。

关联

定义

关联(Association)是一种结构化符号,它说明元素或操作如何与其他元素或操作连接。

符号

association.PNG

Attribute

定义

属性(Attribute)是一种结构化符号,它是描述元素、操作或关联的元数据信息。

符号

属性的表示法可以是简单的文本,用于表示一个元素、操作作为另一个元素或操作的特征。

示例

对于 .NET 类“Employee”,可以有一个属性,如:类名:Employee

元素生命线

定义

元素生命线(Element Lifeline)是一种行为化符号,表示在其中说明了与相应元素相关的所有活动的时间跨度。生命线还显示了元素的活动和非活动状态。给定元素的每个生命线仅适用于该元素的一个实例。

符号

life.PNG

示例

如果正在创建一个 .NET 类的实例,那么它的激活将从创建的那一刻开始说明。

通用语义指南

  • 为了区分系统的结构和行为组件,请将实线图视为行为组件,将虚线图视为结构组件。
  • 元素生命线仅反映行为组件的时间跨度,而非结构组件。

Hello World! 示例

下面说明的示例显示了一个 ASP.NET 标签服务器控件中的“Hello World”消息,当用户单击一个 ASP.NET 按钮服务器控件时显示。

hello-world-simple.PNG

现在让我们看看在此示例中实现的相应 nAML 符号。

hello-world-note.PNG

链接和下载

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 发布。

© . All rights reserved.