- Posted by: Mike Adams
- Posted on: May 23 2003 06:07 EDT
Why UML is not suited for Component Modeling?
UML is ideal for modeling of object-oriented software, but it is not suitable for modeling J2EE-based applications.
UML treats class and operation as fundamental concepts and provides a visual representation of class interactions. But, J2EE components are a set of classes (related as per the J2EE-specification) and XML metadata; and each component is complete in itself making it an aggregate abstraction. Showing interaction between these classes is redundant when doing application design. Moreover, UML does not capture the information contained in the metadata. Modeling of flow constructs such as JSP Forward, JSP Include, EJB 2.0 CMRs cannot be reflected by UML diagrams.
When UML is used for design in the initial phase of software development cycle, there are no tools that help in keeping the model and Java source code in synch. The only way to check is by reverse engineering the UML model from the source code. And that only gives a complex and inadequate view of class diagrams without any information about component interactions and sequencing.
I'm afraid I have to disagree. I have a collegue who has used his UML model to great effect. He's written a system to take his UML (output as XML) and generate all the required interfaces from it. He defines the relationships between the classes and the interfaces and away it goes. I think it can be used and used well for building J2EE apps. Just because it doesn't have specific operators for J2EE constructs and concepts doesn't mean it's not suited to it. Regarding the JSP forward point the fact that flow models can be modeled in Sequence diagrams, with method calls representing the actions means they most certainly can be modelled in UML.
With regards to data relationships (CMR reference) this could very well be reflected, in your data relationship model. Also, readup on Components as entities in UML.
When considering what UML is good for, try to get away from the specifics of XML metadata or technology specific issues. The model can and should be abstracted from your underlying technology.
Whatdya think? Am I way off?
What about MDA (Model Driven Architecture)?
I did attend a presentation by Compuware on OptimalJ wherein models (using UML) can be converted into J2EE apps.
I recently started working with ArcStyler (+ Rational Rose) and until now I haven't got any problems by getting J2EE based application from UML. I haven't done anything really big yet, but I don't see any problems so far.
ArcStyler is so called architectural IDE for OMG's Model Driven Architecture. When interested, take a look at the following links: