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: 1108a1,a86f1b04a0a258b4,start X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,a86f1b04a0a258b4,start X-Google-Attributes: gid103376,public From: nobody@REPLAY.COM (Anonymous) Subject: Re: UML & Ada Date: 1998/06/17 Message-ID: <199806171349.PAA16505@basement.replay.com>#1/1 X-Deja-AN: 363512330 Content-Transfer-Encoding: 7bit References: <35868F4A.FC463980@email.mot.com> Content-Type: text/plain; charset=us-ascii Organization: Replay Associates, L.L.P. Mail-To-News-Contact: postmaster@nym.alias.net X-001: Replay may or may not approve of the content of this posting X-002: Report misuse of this automated service to X-URL: http://www.replay.com/remailer/ Newsgroups: comp.lang.ada,comp.object Date: 1998-06-17T00:00:00+00:00 List-Id: On Tue, 16 Jun 1998 08:29:14 -0700, Dennis Miller wrote: > Although Ada is considered an object-based language (not including Ada > 95) as opposed to a OO language, is it possible to construct code in Ada > from UML notation and vice versa? Better yet, is it possible to get a > high level of functionality from an OO notation system and implementing > it with a object-based language? > > Dennis Miller > If you define "object oriented" as "implemented using inheritance and dispatching", then Ada 83 was not an OO language and Ada is. This is a common "definition" of OO; however, it makes no mention of objects, so it is not a definition of OO. If, instead, you define OO as "structured around problem-domain objects; directly representing these objects in software; encapsulating data structures with their operations; providing a visible interface and hiding both the definition of the data structures and the implementation of the operations", then Ada has always been an OO language. You can, and have always been able to, implement a high-quality OO design directly in Ada; it follows that you can represent such an implementation in a notation that describes such a design. In Ada 83, you must use the technique known as "composition": You define your most concrete types first, then create composites of such types to create more abstract types. If you require dispatching operations, you must explicitly create such operations. This requires writing a little more code than if inheritance and dispatching features of a language are used, but has the benefit that the resulting code is much more easily read and understood than code that uses inheritance and dispatching, making it easier to modify. Ada now has inheritance and dispatching features, but the benefits of composition argue against using them. Jeff Carter PGP:1024/440FBE21 My real e-mail address: ( carter @ innocon . com ) "We call your door-opening request a silly thing." Monty Python & the Holy Grail Posted with Spam Hater - see http://www.compulink.co.uk/~net-services/spam/