Thursday, May 1, 2008

UML as a modeling language

UML has emerged as the language for modeling. Its the common language spoken for communicating by software developers. It is very good for modeling a software system and is mostly targetted towards software engineers. But, modeling a system is mostly the domain of end-user or domain expert. Then comes a need for defining a language for the domain which is to be modeled. UML provides for profiles, it is like defining a language for modeling.

That is where i question. Are we not using UML for sake of using? How easy it will be for domain experts to model or even understand the models in created with UML profiles? The notion of stereotype is understandable for a software engineer who treats class concept as more fundamental. But a domain expert doesn't need to know what a class is. I guess its because of this that we have languages like RDF, OWL to model resources and real things. These languages are specifically designed for the domain they will be used for. Ofcourse you can always create a UML model for anything that is described using these languages and it should be done if we have enough toolset to create products from UML.

If you have to describe a banking system you need concepts like Account, Customer, Interest etc. and a way to use these to describe a particular banking system. Domain expert doesn't need to know any more. Once done, this may be translated to UML models which could lead to the product.


Modeling is human centric and needs to be simplified for that particular use.

No comments: