Object Role Modeling at ADNUG

Last night I attended the Austin .NET User Group (ADNUG) monthly meeting to network and learn a little bit more about my profession.  The presentation was about Object Role Modeling or ORM and how it can be used to help when gathering requirements.

The speaker, Joshua Arnold, is local technologist at ProAce Technology Services.  ProAce is a custom software house which mainly focuses on building .net applications using the latest technologies.  I had a nice conversation with one of their engineers (Jarrod?) who said they use ASP.NET MVC but are considering switching to FUBU MVC for better testability (FUBU MVC is a competing MVC framework written by Jeremy Miller over at Dovetail software here in town).  If you are one of my coworkers, go check out this case study… as I think it hits close to home.

Object Role Modeling (ORM)

ORM is similar to UML in that it is a notation system used to capture system requirements.  The presentation used an open source Visual Studio plug-in called Norma to demonstrate some of the tooling that exists around ORM today.  With the right tooling, ORM could be used to construct a data model, domain model, or documentation from a diagram with the click of a button.  Mr. Arnold demonstrated last night that automatic generation is still not a reality at this time for all but the simplest of software architectures.

Norma ORM Notation

Above is a sample Norma diagram using ORM v2 notation.  The most powerful feature of ORM, versus something like UML, is that the visual diagram is also “verbalized” into something that reads more like what a customer or business analyst can understand.  For example, once an ORM diagram has been created, you can literally read the verbalization of it to a customer and ask them if it makes any sense.  See below for a verbalized version of the diagram.

Norma Verbalization Browser

Notice the verbs used are domain specific, ala Domain-Driven Design (DDD).  So the Women own Shoes as opposed to borrow or hoard them is actually part of the technical documentation. This, IMO, is the most useful part of ORM in that it helps create what the DDD guys call a Ubiquitous Language.  This is a language shared among developers and business experts to promote better understanding of the business domain.

ADNUG

Despite the fact that some people (you know who you are ;)) joke that these events are “simply for nerds”, I’ve found my experience attending these free events very rewarding.  While some guys certainly could use some pointers in social interaction ;), I see a group of professionals who take their craft seriously and want to better themselves.

Anyone who thinks of themselves as a serious .net professional would do well to network at one of these events as well.  Last night I heard of 3 companies who were looking to hire.  Speaking of… these events are only free because of generous sponsors and last night Incisent Technologies simply printed out their job postings and handed them out at the name badge table.  So I’d like to say ‘Thank You’ for sponsoring the event and thanks for the great idea, hmm…

I don’t know what the next meeting topic will be but hopefully I’ll remember to go.  They don’t have the next event posted on the Adnug site yet.  I wish they had an RSS feed!

Book References

Domain-Driven Design: Tackling Complexity in the Heart of Software
by Eric Evans