Why Do We Need Visual Models ?
One 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:
- Minimize complexity by capturing complex moving parts in multiple views, enable clear overall view of interactions
- Enable effective communication among stake holders, business analysts, enterprise architects and software developers by providing a common view, language and notation
- Facilitate collaboration via model sharing, transition and refinement between domain experts (business modeling), architects (system modeling) and software developers (analysis, design and implementation)
- Increase developer productivity and shorten the development life cycle by providing ways to generate executables from models either at design time (code generation) or run time (executable models).
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.
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 did not expect such a crowd at the conference – most of the sessions I attended were so full that some folks could not even get into the room. Despite the volume of attendees, I thought the event was very well-organized and all the sessions were right on time.
- Most of the sessions were interactive panels that are primarily intended to engage audience, cultivate conversations and spur new ideas – which is very different from other technical conferences. It was all about getting a feel for the current status of social media and overall tech landscape, and figuring out what the future can hold — I am sure more than few aspiring entrepreneurs walked away with few more ideas in their head.
- Overload of hashtags on Twitter — there were so many tweets with #sxsw hashtag that it made it impossible to search for any relevant content. I guess that goes to show the prevalence of twitter and how many people are actually using it these days.
- Response time on AT&T’s edge network left a lot to be desired — I had no service on my iPhone pretty much most of the time. You can see people lining up against the glass windows of the building during breaks, hoping to catch a bar or two ! Thanks to the excellent Wi-Fi network setup by the conference organizers, I was able to use my iPhone for browsing and twittering from inside the convention center.
I attended several sessions and interactive panels – but the following three stood out for me in terms of the content and information they provided:
- Future of social networks — by Charlene Li. Really liked the the delivery style of Charlene – very conversational and engaging. She says social networks are like air and will permeate everything we do online AND offline. According to her, the three things that are key to an ubiquitous social network are identity;who you are, contacts;who you know and activities;what you do.
- Social networking in health, e-Patients, Data & Privacy — hosted by John Grohol. I got there 10 minutes late and I could not get in — the room was packed ! Discussions in this interactive panel focused on the role of social networks in health care and the implications on privacy of health data. The audience were very engaged in the conversation and I heard a mix of optimistic and pessimistic views regarding the use of social networks in health care. In spite of the hesitations expressed by some, it’s obvious that social networking is spreading deep into health care, which is evident by the number of tech start ups in this area.
- How to fund a start up:Pitfalls & Opportunities — hosted by Jamie Rhodes and Chris Shonk. An excellent interactive panel where the hosts shared quite a bit of useful information with the audience on this very popular and generic topic. Jamie says an entrepreneur must question the need for funding at every step — a surprising advice coming from an angel investor ! Other tips included what to watch out for before signing a term sheet, how to handle investments from your friends and family, how not to dilute the coomon stock if at all possible and of course why bootstrapping is the best way to go for the first time entrepreneur !
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
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










