From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,9e75f9dfb61221d7 X-Google-Attributes: gid103376,public From: Richard D Riehle Subject: Re: ADA 95 Child Packages and UML Date: 1999/10/25 Message-ID: <7v27ic$1th$1@nntp3.atl.mindspring.net>#1/1 X-Deja-AN: 540421126 References: <381077D9.46ACA4E9@emw.ericsson.se> <38132103.380DA624@club-internet.fr> Organization: MindSpring Enterprises X-Server-Date: 25 Oct 1999 18:29:32 GMT Newsgroups: comp.lang.ada Date: 1999-10-25T18:29:32+00:00 List-Id: In article <38132103.380DA624@club-internet.fr>, Philippe Dalleau wrote: >Hello, > >Peter Lindgren wrote: >> >> Hello! >> How do I model Ada95 child packages in UML? >> Is it possible at all? > >Sure but it depends a lot on the UML tool you choose. >With Rational Rose/Ada 95 : via a class or a component whose name >follows the rule : identifier.{identifier}. No. It is not possible to correctly model child library units in UML. There is a workaround, as described above, but it is something of a kludge. There is no UML way to properly represent an architecture built on child and private child library units. In its defense, UML is a modeling tool. Asking a question such as "Can I model xxxx in UML," is a lot like asking, "Can I program the cache in C++ (or Ada)?" One must consider the level of abstraction being addressed by a linguistic protocol. Many software architects believe UML and its various associated methods to be just the right tool for abstracting away the kind of detail that distracts from architectural considerations. On the Ada side, UML includes mechanisms that cannot be easily designed in Ada. The most compelling examples of these are the "association class" and multiple inheritance. This problem is not unique to Ada. UML does not represent every C++ construct, and vice versa. It highlights a principle described in Bertrand Meyer's, "Object-Oriented Software Construction" which he calls, "Linguistic Modular Units." The idea is that the language of modeling must correspond to that of design, that of programming, and that of testing, etc. throughout the software lifecycle. At every place in our software effort in which there is a linguistic disconnect, we increase the probability for failure. I don't know that anyone has ever done serious research on this issue. It would probably make a good Ph.d. thesis for someone. Richard Riehle http://www.adaworks.com