Click here to Skip to main content
15,885,032 members
Articles / Web Development / ASP.NET
Article

nAML: A New Revolutionary Way to Model Your .NET Applications!

Rate me:
Please Sign up or sign in to vote.
3.15/5 (19 votes)
19 Sep 2008CPOL5 min read 50K   41   16
Along with specification, examples and tools, a new visual modeling technique is being introduced, termed as “nAML” (.NET Application Modeling Language), which overcomes the limitation of typical modeling languages in a revolutionary way!

Introduction

nAML (.NET Application Modeling Language, pronounced as “namel”) is a visual modeling semantics to model .net applications with wide range of specific details. It contains extremely power visual notations and semantics to illustrate complex application components, processes and operations easily. It overcomes the limitation of traditional modeling languages by providing a single space to describe an application system with its structural and behavioral, as well as physical and logical components. One of it’s the most powerful objectives is nAML requires near to zero knowledge on notation semantics to understand an application system from readers perspective.

Example: Using nAML, for instance, a software architect can model a whole or part of a web application in a single visual diagram with respect to interaction, communication and structure between end user, web interface, .net classes, database objects, physical tiers (web server, business logic server, database server etc) and so on.

The primary objectives of nAML can be considered as follows:

  • Provides a single space to visually describe one or more application systems with structural and behavioral components.
  • Provides a single space to visually describe one or more application systems with logical and physical components.
  • Provides a single space to visually describe one or more application systems from top to low level.
  • Provides a single space to visually describe a part or whole of one or more application systems.
  • Extremely simple and easy understand and learn from readers and designers perspective.
  • Concentrates on .NET applications, with its related logical and physical entities (user interface, application logic, business logic, database etc).

Terms and Definitions

Element:

Definition

An Element is a structural notation that is the physical or logical object that holds one or more physical and/or logical objects.

Notation

element.PNG

Example

In an ASP.NET web application, an ASP.NET page can be an Element, having controls embedded within it as sub-Element and the event handler methods as defined Operation within it. For a .net class, the member Elements are the properties, data fields etc. For a physical database, its member Elements is the tables.

Operation:

Definition

An Operation is a behavioral notation that is the set of one or more actions to be performed that are defined in an Element.

Notation

operation.PNG

or

operation2.PNG

Example

For instance, an ASP.NET page code behind class, as an Element, can have controls event handlers (click event handler of button etc) as Operation. For a .net class, the members Elements are the methods etc. For a physical database, its “Operation” can be defined within the stored procedure, functions.

Association:

Definition

Association is a structural notation that illustrates how the Elements or Operations are connected to other Elements or Operations.

Notation

association.PNG

Attribute:

Definition

Attribute is a structural notation that is the Meta data information that describes an Element, Operation or Association.

Notation

The notation of attribute can be simple text of an Element, Operation to be expressed as characteristics of another Element or Operation.

Example

For a .NET class “Employee” can have an Attribute as, Class Name: Employee

Element Lifeline:

Definition

An Element lifeline is a behavioral notation which is the time span within which all activities related to the corresponding Element is illustrated. The life line also shows the active and inactive state of the Element. Each lifeline for a given Element applies to only one instance of that Element.

Notation

life.PNG

Example

If an instance of a .net class is being created, then its activation will be illustrated from the moment it created.

Common Semantic Guideline

  • To distinguish structural and behavioral components of system, consider solid line diagrams as the behavioral component and dashed line diagrams as the structural component.
  • Element Lifeline reflects the time span for behavioral components only, rather structural components

The Hello World! Sample

The sample illustrated below shows the “Hello World” message in an ASP.NET Label server control, when a user clicks on a ASP.NET Button server control.

hello-world-simple.PNG

Now let’s see the corresponding nAML notations implemented in this example.

hello-world-note.PNG

Links and Download

Here is the nAML project site: http://code.msdn.microsoft.com/nAML
Download the latest specification, examples and Visio 2003 Stencil for nAML tutorial from here.
Download Visio 2003 Stencil for nAML from here.

Points of Interest

In last couple of years in my software development career, I have worked several mid and large scale projects, from system analysis, designing architecture, implementation to tester level. To express both requirements and technical concepts, visual modeling became a vital need for me, especially for very complex level problems and corresponding candidate solutions. I became (and still) a big fan of UML, which has very powerful notations and semantics to describe a system visually from different point of view. This smart visual modeling language made my software development life much easier, even while I was reviewing the requirement and technical models after a long interval.

In many cases, on my recent software projects, I have been feeling need of a simpler semantic notation, where I can model an existing and proposed system in a single diagram, both from structural (static) and behavioral (dynamic) point of view, from physical to logical point of view and moreover which will be easy enough to be implemented quickly with a small set of notations. Having both structural and behavioral components along with low level view in a single diagram, may require a considerable big space. However for a complex system and/or concept this can be considerable to have the whole model illustrated in a wide big whiteboard or wall enabling the system stakeholders and architect to view the system from deeper view.

After establishing the notations and semantics for nAML and its successful implementation, I just wanted to share the idea with others, so that others can be benefitted. Using nAML doesn’t mean that you have to leave your existing modeling practices, but if the new concept really adds some benefit on your developer life, don’t forget to have your own feedback to make nAML better.

History

Sep 12, 2008: Article posted.

Sep 11, 2008: nAML v1.0 (Beta 1) released at code.msdn.microsoft.com.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Chief Technology Officer
Bangladesh Bangladesh
Mohammad Ashraful Alam is a Software Engineer, who is dedicated to Microsoft .NET based development. This Bangladeshi national is involved with project management and development of several US based software projects from his country. Already he has managed and developed 15 software projects, which are being used by several users of different countries, such as USA, Canada, Australia, and Bangladesh. While developing and managing a team, he contains and maintains a set of well defined engineering practices developed by him and other online developer community. Beside software development, he has also written several technical articles and research papers published by IEEE Computer Society and many other worlds recognized publishers.

Before becoming engaged with software development, he was involved with Bengali literature and several Bengali news papers as freelance journalist and published around 150 articles, essays and short stories.

Due to his willingness to give effort to improve and share better software development practices, Ashraf has awarded as “Most Valuable Professional” (MVP) in ASP.NET category by Microsoft for multiple times, since 2007.

When not engaged with technical stuffs, he likes to pass time with his friends, and family members, listens music or watches TV.

Check his portfolio at: http://www.ashraful.net/.

Check his blog: http://blog.ashraful.net/.

Catch him thru mail: admin [attt] ashraful [dotttt] net (anti-spam text).

Comments and Discussions

 
GeneralI like this simple,intuitive and powerful design Pin
Liu Junfeng26-Sep-08 0:44
Liu Junfeng26-Sep-08 0:44 
GeneralRe: I like this simple,intuitive and powerful design Pin
Mohammad Ashraful Alam26-Sep-08 0:58
Mohammad Ashraful Alam26-Sep-08 0:58 
GeneralUML and nAML Pin
Mohammad Ashraful Alam14-Sep-08 22:31
Mohammad Ashraful Alam14-Sep-08 22:31 
GeneralTool to create the diagrams Pin
abdu12-Sep-08 6:00
abdu12-Sep-08 6:00 
GeneralRe: Tool to create the diagrams Pin
Liu Junfeng26-Sep-08 1:53
Liu Junfeng26-Sep-08 1:53 
QuestionHow will it work in real life? Pin
clubok12-Sep-08 4:08
clubok12-Sep-08 4:08 
AnswerRe: How will it work in real life? Pin
Mohammad Ashraful Alam12-Sep-08 4:28
Mohammad Ashraful Alam12-Sep-08 4:28 
GeneralRe: How will it work in real life? Pin
clubok12-Sep-08 4:41
clubok12-Sep-08 4:41 
GeneralRe: How will it work in real life? Pin
Mohammad Ashraful Alam12-Sep-08 5:03
Mohammad Ashraful Alam12-Sep-08 5:03 
GeneralRe: How will it work in real life? Pin
Jon Rista12-Sep-08 6:44
Jon Rista12-Sep-08 6:44 
Question'New'?? 'Revolutionary' ?? Pin
Georgi Hadzhigeorgiev12-Sep-08 1:55
Georgi Hadzhigeorgiev12-Sep-08 1:55 
AnswerRe: 'New'?? 'Revolutionary' ?? Pin
Mohammad Ashraful Alam12-Sep-08 2:19
Mohammad Ashraful Alam12-Sep-08 2:19 
GeneralRe: 'New'?? 'Revolutionary' ?? Pin
Georgi Hadzhigeorgiev12-Sep-08 7:50
Georgi Hadzhigeorgiev12-Sep-08 7:50 
AnswerRe: 'New'?? 'Revolutionary' ?? Pin
Kristofer DeMuth12-Sep-08 5:44
Kristofer DeMuth12-Sep-08 5:44 
GeneralRe: 'New'?? 'Revolutionary' ?? Pin
chriswa12-Sep-08 17:24
chriswa12-Sep-08 17:24 
AnswerRe: 'New'?? 'Revolutionary' ?? Pin
BAIJUMAX28-Sep-08 22:27
professionalBAIJUMAX28-Sep-08 22:27 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.