Why Do We Need Visual Models ?

modelsOne of the questions that often comes up during a discussion on Model Driven Development is “why do we even need visual models”?  The question varies based on the experience and extent of use of modeling within the target audience – but the essence of the question remains the same.

Modeling is an inherent part of human life — as they say “a picture is worth a thousand words”.  A picture can communicate information better by hiding the complexities and displaying only the relevant details.  For example, when we look for directions we tend use the map representation instead of the textual directions as the map provides us with just enough details to visualize the directions.  Models also have been used in several disciplines including science and engineering for a long time.   CAD/CAM models are used in engineering to model engineering parts and structural models are used in architecture to model large structures and buildings.  Irrespective of the problem domain, models provide a simplified abstraction of the complexity involved in that domain.  While models do not have to be visual, most models are visual and the visual representation further adds to minimization of complexity.  Different models can be used to capture different characteristics of the problem domain and the type of diagrams used to visualize the model of a specific problem domain really depends on the problem domain itself.

Visual models have also been used in software engineering to different extents depending on the context, skills, time and tools available.  Depending on the size of the organization or team working on project and the complexity involved, no modeling step may be involved in certain implementations.  Developers go directly from requirements to coding and no models are produced during the lifecycle of the project.  In other cases, models drawn on white board are used to facilitate discussions around design ideas and modeling stops when the discussion ends.  In most cases, models are used primarily for communication among various groups involved during the early stages of the project – during requirements gathering, analysis and design.  The primary intent of these models is to capture a high level view of the system under consideration and to present a common view to all parties involved.  These models could be technical architectural diagrams, data models, use case models, class diagrams, sequence diagrams, etc., and are drawn using tools such as Powerpoint or Visio or a more formal UML modeling tool.  However, these models are thrown away once the development starts since it is hard to keep the code and models in sync as the requirements change during the remaining life cycle of the project.

Today’s systems are complex with many moving parts (thanks to modern multi-tier and distributed architectures) — models enable us to cope with this complexity by providing a visual abstraction layer that focuses on the higher level concepts in the problem domain and de-couple the “what” from “how”.  For instance, imagine trying to understand the dependencies in a large system by looking at the code vs. looking at visual design models (use case models, component diagrams, class diagrams and activity diagrams, etc.).  Depending on the level of detail desired, the needs of the target stake holder and the choice of architectural framework (TOGAF, Zachman, etc.), multiple views or perspectives of the entire enterprise architecture can be captured in various models including use cases, system architecture, data flows, object models, business processes, physical network, deployment nodes, system dependencies and database schemas, etc.

In summary, visual models provide us with the following important benefits:

As I mentioned earlier, in most traditional code-based development approaches, these models are merely used as design artifacts that provide a starting point for an extensive coding exercise where the higher level details captured in these models are translated into lower level details based on the target architecture.  What if the models we created are semantically 100% complete and are immediately executable instead of merely being design artifacts?  This is the promise of Model Driven Development and more on “Executable Models” later.

Enhanced by Zemanta
Modeling, Technical

SXSW Interactive 2009 – A Wrap Up !

I was in Austin over the weekend for the SXSW Interactive 2009 conference and wanted to share some thoughts and observations with everyone.  This was my first time at this conference and I truly did not know what to expect going in.  My decision to go to the conference was pretty much last minute and I didn’t have enough time to prepare properly for the conference — other than watching an intro video “How to Rock SXSW” by Shama Hyder of Shama.tv.

Anyways, here are some of my observations:

I attended several sessions and interactive panels – but the following three stood out for me in terms of the content and information they provided:

Looking back, I now realize that I did not take full advantage of many aspects of the conference.  In the end though, I am glad I attended as I walked away with more knowledge, information and potentially more relationships.  I really enjoyed the experience, the interactive panels and most of all the interaction with people with similar interests. It’s been a truly positive and inspiring experience !

I am sure I will be back next year — only better prepared to take advantage of everything the conference has to offer !

Ashok

Enhanced by Zemanta
Conferences, SXSW 2009

Hello World!

“Hello World !” – indeed !

I was going to delete the default hello world post created by WordPress after I completed installing and configuring my blog instance with all the fancy themes and plugins – but, it seemed appropriate to just continue with it since this is my very first entry on this blog.  Though I have been thinking about starting a personal blog for over two years now – with plenty of inspiration all around me – never really got around to it due to personal and professional demands.  As they say, better late than never !

Having been in the software industry for over 14 years — from a Software Developer in Kiewit Construction Group, Inc. (Omaha, NE) to CTO of Intelliun Corporation (Plano, TX) — I expect to share posts that focus primarily on topics related to enterprise software and the corresponding enabling technologies such as Model Driven Development, Service Oriented Architecture, etc. — with a focus on how these technologies can be applied to solve real world business problems. How ever, I also intend to share my thoughts, ideas and news on all things technology as appropriate including emerging technologies, social media, start ups, and entrepreneurship.

I am quite excited about this new channel of communication and collaboration with the world and hope to contribute effectively and learn along the way.  As always, your comments, feedback and involvement are greatly appreciated.

Ashok

Uncategorized