An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30...

88
Data & Analysis Center for Software ITT Systems & Sciences Corporation Griffiss Business & Technology Park 775 Daedalian Drive Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv (RLIC3C B) 525 Brooks Road Griffiss AFB, MY 1344 1-451 4 Prepared by: ITT Systems (formerly Kaman Sciences Corporation) P.8, B3x 1408 Rome, NY 13442-4995 The Data & Analys~s Center for Software (3/\C:3' ir ;; I>c r:c.r.--er: 3' Defense (003) 1nforma:;cn Analys~s Center (IAC) adr~lr)ra:crea by rha D91,titze : e; l;n -a1 'i1for;r;atiorl Center (DT IC) Fa - Belvo~r, Virginia), techniC311y mansgec! by Air Fcl-~e Postarc" '.ci!)?rato:y (AFRL), Rome, Nevi York ITTSystcrns & Sciences Co-gorat~on r;lnaSes ;3;:ri oscrti:?s the DACS, serving ss 3 source for currentiy readily availabie data and infcr maon ;arcernirrg software engineer~ng arid software technologv.

Transcript of An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30...

Page 1: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Data & Analysis Center for Software ITT Systems & Sciences Corporation Griffiss Business & Technology Park 775 Daedalian Drive Rome, NY 13441-4909

An Overview of Object Oriented Design

30 April 1991

Prepared for:

Rome baboratorv (RLIC3C B)

525 Brooks Road Griffiss AFB, MY 1344 1-451 4

Prepared by:

ITT Systems (formerly Kaman Sciences Corporation)

P.8, B3x 1408 Rome, NY 13442-4995

The Data & Analys~s Center for Software (3/\C:3' ir ;; I>c r:c.r.--er: 3' Defense (003) 1nforma:;cn Analys~s Center (IAC) adr~lr)ra:crea by rha D91,titze : e; l;n -a1 'i1for;r;atiorl Center (DT IC) Fa - Belvo~r, Virginia), techniC311y mansgec! by Air F c l - ~ e Postarc" '.ci!)?rato:y (AFRL), Rome, Nevi York ITTSystcrns & Sciences Co-gorat~on r; lnaSes ;3;:ri oscrti:?s the DACS, serving ss 3 source for currentiy readily availabie data and infcr m a o n ;arcernirrg software engineer~ng arid software technologv.

Page 2: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

REPORT DOCUMENTATION PAGE fomr- OPM No. 0- tdd

An Overview of Object Oriented Design

Robert Vienneau I Kaman Sciences Corporation 258 Genesee Street Utica, NY 13502

DTIC /Dl? RL/COEE I I

a. SPOm0N-m- WYfIIAW)uIORLII(ED

Defense Technical Info Ctr Rome Laboratorl

Cameron Station Alexandria, VA 22314

10. / ? ~ ~ ~ I W O ~ M M W C Y REPORT W O E A

Griffiss AFB, NY 13441 I N/A

n. W N L ~ W A S W ~

Available from: Data & Analysis Center for Software (DACS) 258 Genesee Street Utica, NY 13502 Phone ( 3 1 5 ) 734-3696

Approved for public release, distribution unlimited

This report, An Overview of Object Oriented Design, provides a basic understanding of Object Oriented Design (OOD) and some of its features. The report briefly surmrarizes the history of OOD, includes a description of an OOD methodology, and defines and discusses various concepts and terminology used in COD. The level of support that various programning languages provide for COD is discussed in some detail. Languages covered include Modula-2, Ada, C++, Clb ject C, LISP, Smalltalk, and Eiffel. Section 4 discusses how OOD interacts with areas of current software engineering research, especially software reuse and a1 ternative life cycle models. The report also includes a glossary of OOD terms and an annotated bibliography of related papers and reports.

I Object Oriented Design, Computer Software , Computer Programning, Software Technology, Software Engineering.

- ~ . -

~ U U ~ A T U ~ ~ O A U ~ R I C T

UL 17. s~tururvu~ou~unon

f fRE?Om Unclassified

14. LECUCIW Q I L W ~ ~ O I I to. rEcuru w;*m OCM M a or A m w T ~ncfassified I Uncyaz,"ied

Page 3: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

TABLE OF CONTENTS

1 . INTRODUCTION TO OBJECT ORIENTED DESIGN ....... 1.1 Origins of OOD ................................................................................

2 . METHODOLOGY ................................................................................. 2.1 Abstract Data Types (ADTs) ........................................................

.......................................... 2.2 Designing Object Oriented Systems 2.2.1 Identify the Objects .................................................................... 2.2.2 Identify the Operations ..............................................................

...................................................................... 2.2.3 Establish Visibility 2.2.4 Establish Interfaces ................................................................... 2.2.5 Implement Each Object .............................................................

3 . LANGUAGE SUPPORT FOR OOD ........................................... 3.1 A Scaie For Measuring Object Oriented Languages ............ 3.2 Classical Languages ...................................................................... 3.3 Data Abstraction Languages ........................................................

3.3.1 Moduia-2 .................................................................................... 3.3.2 Ada ............................................................................................

3.4 Object Oriented Extensions of Classical Languages ............ 3.4.1 C Extensions .............................................................................

3.4.1.1 C++ ............................................................................... 3.4.1.2 Objective C ...................................................................

3.4.2 Lisp Extensions: Flavors and Loops ........................................ Pure Object Oriented Languages ...............................................

3.5.1 Smalltalk .................................................................................... ........................................................................................... 3.5.2 Eiffel

4 . LARGER IMPLICATIONS ............................................................... 4.1 Software Reuse ............................................................................... 4.2 Life Cycle Support for OOD .........................................................

5 . SUMMARY ..............................................................................................

6 . REFERENCES ......................................................................................

Appendix A: GLOSSARY .....................................................................

Appendix B: ANNOTATED BIBLIOGRAPHY .............................

Page 4: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

FOREWORD

This report, An Oventiew of Object Oriented Design, provides a baslc ucderstanalng of Object

Oriented Design ( 0 0 0 ) and some of its features. The report briefly summarizes the history of OOD,

includes a description of an OOD methodology, and defines and discusses various concepts and

terminology used in OOD. The level of support that various programming languages provide for OOD is

discussed in some detail. Languages covered include Modula-2, Ada, C++, Objective C, LISP. Smalltalk,

and Eiffel. Section 4 discusses how OOD interacts with other areas of current software engineering

research, especially software reuse and alternative life cycle models. The report also includes a glossary

of OOD terms and an annotated bibliography of related papers and reports.

Page 5: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

INTRODUCTION TO OBJECT ORIENTED DESIGN

Object Criented Design (GCCI grew out of work in both design methodology and language desqn.

OOD was developed to prov~de a Eatural merhod cf structuring system architectures. The resuiting

architecture can be easily changea. ?vtodule interfaces (should) prevent changes from rippling througn

the system. Language concepts criginally developea to support simulation were seen to provide

features that could easily be used to implemem such an architecture. The integration of these insights

lays the foundation for OOD.

The 1980s have seen an explosion of interest in Object Oriented Design among professional

programmers. This is evident in the history of the Object Oriented Programming Systems, Languages.

and Applications (OOPSLA) conferences. The first such conference was organized by the Association

of Computing Machinery (ACM) in 1986. By 1988. only two years later, OOPSLA was the third largest

of ACM's many technical conferences.

Within the defense community, an interest in Object Oriented Design (OOD) is almost mandated

by the use of Ada. Ada is more than a programming language; proper use of Ada requires the adoption

of various software engineering techniques, including 000. On the other hand, some OOD purists

argue that Ada does not truly support OOD. This issue. among others. will be explored in this report.

Among the wider community of programmers and computer enthusiasts. an interest in 0 0 D is

demonstrated by a plethora of products. For example, Borland International and Microsoft Corporation,

the major distributors of compilers for personal computers, both market Object Oriented versions of

several languages, such as Pascal. Graphical user interfaces, such as the Macintosh interface, have

been described as Object Oriented, although purists argue otherwise.

Certa~nly, 0 0 D is beg~nning to influence many areas of computer science. 000 is currently

important in research in reusability, user interfaces. Ada. requirements and design methodologies.

programming environments, and Data Base Management Systems (DBMS). OOD proponents claim

0 0 D will dramatically increase the productivrty and quality of software. For example. Brad Cox

compares 0 0 D to the introduction of interchangeable pans into production [Cox 19861. Just as that

innovation made possible mass production and "revolutionized manufacturing forever," so OOD

promises to transform the process of programming from the churning out of thousands of lines of code

to the assembling of systems from libraries of predefined modules.

Page 6: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

1.1 Origins of OOD

The groundwork of Object Oriented Design was laid concurrently w~th the ~ntroduction of

structured programming In the 1960s. Certaln languages developed at that tlrne provrded features that

would become basic elements of OOD.

In particular. Sirnula', a block structured language wlth a main program and nested entities such

as subroutines. introduced classes, now thought to be key for 00D. A class, in Simula, is similar to a

data type. A class may contain routines, attributes, and instructions that are automatically executed

when an instance of that class is created. Variables of user-defined types reference instances of a

class. Instances of a class later came to be known as objects, the objects that OOD gets its name

from.

The concepts introduced by Sirnula did not gain wide currencj for decades, even among

researchers. This lack of circulation may be largely because Sirnula was a solution in search of a

problem. Those features of Simula that support OOD were not clearly seen as supporting a general

purpose system design methodology. Rather, they were seen as supporting simulation, their original

justification for being introduced.

The structured programming revolution was barely begun in 1972 when David Pamas began

criticizing its inadequate support for modularizing systems. In his "On the Criteria to be Used in

Decomposing Systems into Modules," he presents an example Keyword In Context (KWIC) problem and

contrasts two methods of modularizing the solution [Parnas 721.

The first solution, which might result naturally from top down design, contains input, circular shift,

alphabetizing, and output modules. This modularization results from considering the steps needed to

solve the problem. The second solution results from considering the data structures needed to solve the

problem. Each module provides access to a different data structure2. Unlike modifications to the first

solution, changed functionality in the second solution will typically result in modifications to only a couple

of modules. The interfaces prevent changes from rippling through the system. Furthermore, the

sequence of instructions necessary to call a given routine and the routine itself are part of the same

module. Parnas' ideas inspired research embodied in CLU, Modula-2, and Ada. programming

languages introduced in the late 1970s and early 1980s.

- - - -

'Simuk somenmes known as Sirnulab7 after the year in which it was inuoduced, was designed by Oldohan Dahl and -ten Nygaard at the Univers~ty of Oslo and h e Norweg~an Compunng Center. Simuh is an extension of Algol 60 intended lo prwlde strong suppon for ampurer simuhdon.

In short. Pamas introduced the imponant conapt of 'informaoon hidng" in whch h q u e n d y changed amponenn of a System are hidden In slngle modules, not scamred through many modules nor part of h e rnocaule intenams. Pamas argues that modularizanon on rhe bas6 of data struaures will allow programs to be eawly changed. modules to be developed independenuy. and the system to be more easily understood.

Page 7: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Farallel to :i';ese aevelounenrs came S~a i i t~ ;k ' . a IanquaSe !rat bu~it cn Simu~a s innovatlor;s 2r.a

further refined COD. Smalltalk borrowed heaviiv frcm Sirnula. but ir:roduces some new notions sucn as

an aavanced implementation of innerdance. polymorcc~sm, ana dynamic binding. Variaoles can take on

many types: ambiguities are resolved at tun m e . In many ways. Smalttalk was the purest C5ject

Oriented language available in the 1980s.

More recently, the focus of OOD is on the integration of these separate strands of design

methodology, mdularization, and prograrnmlng languages. Russell Abbott and Grady Booch have

developed a OOD methodobgy for Ada, based in part on insights derived from Smalltalk ([Abbott 831,

[Abbott 861. [Booch 861, and [Booch 87bI). Cthers have attempted to integrate Object Oriented

concepts with anent practice not by developing a methodology for widely used languages. but by

extending current languages with Object Oriented canstnrcts. Finally, Bertrand Meyer has introduced

Eiffel, a pure Object Oriented language intended to be less research oriented than Smalltalk.

Efforts to extend OOD continue. Researchers have begun to explore the role of "persistent

objects." objects that remain after a program's execution has ceased. These ideas have inspired Object

Oriented Databases. created as an alternative to the traditions hierarchical, relational, or entity-

relationship models. Much current research on user interfaces has an Object Oriented flavor.

Researchers are also studying how to smoothly integrate concurrency into Object Oriented programming

languages.

' Smalltalk. was developed by Alan Kay, Adele Goldberg, and Daniel H. H. Ingalls at he Xerox Palo Alto Research Center (PARC).

Page 8: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

METHODOLOGY

The architecture of systems constructed with SOD is based on objects, not functions. Cther

design methods, most notably top down design, focus on the function of the software.' Although Object

Oriented systems are structured around data. an object is something more than a data structure. Grady

Booch defines an object [Booch 86) as an entity that:

has a state

is characterized by the operations that can be performed on it and that it requires to be able to

perform on other objects

is denoted by a name

is an instance of a class

can be viewed by its specification as well as by its implementation

In a sense. the state of an object is analogous to the value of a variable. However, important

differences exist between these concepts. Two objects can be represented by data with different values

and yet have the same state. For example. i f a stack is implemented by an array and an index to the

top of the stack, two stacks might differ in the values of those array elements which denote items that

are currently not members of the stack. Though represented by arrays with different values, these

stacks still have the same state, as shown in Figure 2.1.

+---+ I "P" I +-+ I "Q" I +---'

Top of stack --> I "A" I

+---+ I "Y" I +---+

Top of stack --> I "A" I +---+

I "B" I u I "0" I +----I-

FIGURE 2.1 : TWO STACKS WITH THE SAME STATE

' Benrand Meyer. me deugner of he Object Onenled prog-mlng language Eiffel. argues (Meyer 88) that large systems WPidly cannot usefully be charactenzed as perform~ng a single tunmon. Ramer, they perform an tntemlated group of hnc- D w . Opera~g system and Management Informanon Systems are good tllusuauons of ma the- onglnally pmpounded by Da- vid Parnas (Pamas 721.

Page 9: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Polnters e:cu::ce t;.s:ner 1aT;l:zr examcle or varlacles xlin c.:!zienI vaiues. c;rt the stme slae. 1

cenaln applications. tyro Folnters x'de the same slate li :>ey access rnemory locations where equal

values are stored. even ~f the pornters clffer ~n the aadresses lo wnlcn they po~nt.

OOD suopons the conceot ct informat~on hiding by distingu:sliing between data values and the

state of an ooject. Only aspects rdevant to the state of an object should be made available in its

spec~fication.

Objects can access other objects by the operations made available in the specification of the

accessed objects. Booch 87a. Meyer 88, and Stroustmp 88 c!assify these operations as either

constmctors, ~ ~ S ~ N C ~ O K , selectors, or iterators.

Constructors and destructors modify objects: constructors either create an object or modify its

state while dest~ctors destroy objects. The environment provided with some Object Oriented

languages performs automatic garbage collection. Hence, destructors are not needed in these

languages, a great convenience to programmers. The automatic i~vocation of certain programmer-

defined constructors in some languages when an object is declared is another convenience. This

feature allows certain invariants to be automatically established.

Selectors and iterators are used to obtain information about the state of an object. For example,

an operation that returns the top of a stack is a selector, while operations that allow one to obtain the

value of every node in a tree are iterators. Iterators permit all pans of an object to be visited.

OOD has not yet developed a uniform terminology. Hence, not all writers and language designers

use the terms constructor, destructor, selector, and iterator.

The distinction between classes and objects also varies among Object Oriented systems. In all

cases, an object is an instance ct a class. An object might be a specific stack of characters; the

corresponding class is the class cf all such character stacks. Sbject oriented systems allow the

programmer to provide names to refer to the objects. A further distinction arises between objects and

classes. In Eiffel classes are defined in the program text: they do not exist at run-time [Meyer 881.

Objects, however, only exist at run-time.=

The manner in which objects perform operations on each other suggests one type of relation

between classes. Classes can form client-supplier pairs. A supplier provides operations which other

classes can use. The classes that use these operations are known as clients of the supplier. Classes

can also relate to one another by forming ancestordescendan pairs. A descendant class is an

extension or specialization of its ancestor. The concept of descendant derives from the concept of

inheritance, which some argue is crucial for OOD.

' SmaIltalk does not make this dsuna:cn: Smalltalk dasses can exist at run-ome.

Page 10: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

2.1 Abstract Data Types (ADTs)

Classes can be regaroed as implememations of Abstract Data Types (ADTs) ([Meyer 881 and

[Booch 87bl). An ADT detines the formal properties of a data type without defining implementation

features. Hence, ADTs are one mechanism of formalizing the concept of information hiding. ADTs are

specified in formal languages, like those studies in mathematics, especially the predicate calculus, rather

than the traditional imperative programming languages6

For example, an ADT specification for a queue can be represented as shown in Figure 2.2.

The first part of the specification defines the data types for the user. This is a parameterized type;

X is the type of the elements comprising the queue. Note that the specification is totally implementation

independent. Whether a queue is a linked list, an array, or not implemented at all is not shown here.

The second section in the specification lists the functions or operations available. The notation is

borrowed from advanced mathematics. Only the syntax of the operations is given. not their meanings.

Each function maps a domain to a range with these sets on either side of the arrow. The function

"new" has an empty domain as is shown by a null left side. The function "enqueue" takes two

arguments as shown by the cartesian product on the left side.

The preconditions and the axioms give the semantics of a queue. The preconditions show the

subset of the domain of all queues to which the functions can be applied. The axioms characterize the

behavior of queues. The first element of an empty queue is not defined. Neither is the result of

dequeuing an empty queue. Consequently, the functions "first" and "dequeue" are only partial

functions. The first axiom shows that a new queue is empty, while the second axiom shows that

enqueuing an element results in a non-empty queue. The final three axioms characterize how items are

enqueued and dequeued. The notation fn(x) means apply the function n times in succession to the

variable x. Consequently, the third axiom shows the first n elements of an n element queue are

unchanged by enqueuing an element. The fourth axiom shows that enqueuing an item adds it to the

end of the queue. Finally, the fifth axiom shows that enqueuing an item increase the number of items in

a queue by one.

Once this formalism is used to specify an ADT, it can be used to reason about programs. For

example, consider the following program fragment:

- -

@ ADTs Predate 000: they wem an intermediafa phase beween Pamas' modularization criteria and OOD-

6

Page 11: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

FUNCT:CNS

is - empty: Cueue(X] --> &olean

new: -> Queue(X1

enqueue: X x Queue(4 --> Cueue(Xj

dequeue: QueuefX) --> Queue(Xj

first: QueuefX) --> X

PRECGNDITIONS

pre dequeue(q: Cueue(X1) = not is-empty(q)

pre first(q: Queue(XJ) = not is-empty(q)

AXIOMS

for all x: X, q: Queue(X)

1. is-empty(new0)

2. not is - empty(enqueue(x, q))

3. if is - empty(dequeuen(q)) then, for all k < n,

first(dequeuek(q)) = lirst(dequeuek(enqueue(x, q)))

4. if is-empty(dequeuen(q)) then

first(dequeuen(enqueue(x, q))) = x

5. if is - empty(dequeue7(q)) then

is - empty(dequeuel"~enqueue!x. q;))

FIGURE 2.2: AN ADT FOR A QUEUE

Page 12: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

After enqueuing and dequeuing a single item on a new queue. :he

resulting queue should be empty.

The first axiom states

Consider the fifth axiom with n set equal to 0. By convention.

applying a function zero times is equivalent to applying the identrty

function. Hence, the fifth axiom implies

if is - empty(new()) then is - ernpty(dequeue(enqueue!a, new())))

By inference, one can conclude

This proves that the code fragment results in an empty queue.

This exposition demonstrates that object-oriented des i~n is the construction of software systems

as structured collections of Abstract Data Type implementations [Meyer 88). ADTs are implemented as

classes. An Object Oriented system is a collection of classes. The collection is structured by the

supplierclient relationship and by inheritance.

2.2 Designing Object Oriented Systems

According to Grady Booch. 000 is performed in five stlps: ' 1. Identify the objects

2. ldentify the operations

3. Establish visibility

4. Establish interfaces

5. Implement each object.

' The broad oudine of the rnelhodology presented here ei based on "at deveiooed by Gra* Boo& In various books and papen ([Booth 86). [Booch 87aJ, [Boos 87bJ). Oisarsslon of the deta~ls cr vanous steps a m on work by Russell AbboK ([Ab- boa 83). [Abbon 86)) and 8e-d Meyer ([Meyer 881, especaally chapter 14).

8

Page 13: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

2.2.1 ldent~fy the Objects

Identifying the ocjects is acuaily performea by ident~fying the classes of whlch objects are

memcers. The pnysical s:istem that the software is modeling snould provide some obvious indications

of canaidate cojects: a phys~cai object might provlae a software object. For example, if a window-

basea user interface is being designed, potential cbjects are mice, keyboards, screens, menus, and

windows.

Libraries of classes may exist which can provide the designer with candidate objects. Aside from

queues, stacks. linked lists. hash tables, trees, and other data stnrctures in computer science

applications, these libraries might include application-oriented objects. For example, the Common Ada

Missile Packages (CAMP) includes Ada packages for Kalman filters, radars, and altimeters [CAMP 871.

Inheritance makes possible the existence of objects that may be very hard to identify. I f several

classes share similar attributes or operations, a good design might abstract these general properties into

a new class. The original c!asses wiil inherit these properties from this new class. In fact. the new

class might be inapplicable in its own right; its only purpose for existence could be to provide properties

that more usable classes could inherit.

As a design progresses, one may identify additional objects. The decentralized nature of OOD

should allow such objects to be easily added. Hence, 000 attempts to promote the learning process

that naturally occurs when designing any software system.

2.2.2 Identify the Operations

Objects often can be modeled as ADTs which should suggest operations. For example, a queue

might have operations fcr checking whether it is empty, creating an empty queue, enqueuing an

element, dequeuing an elemem, and returning the first element. Objects can also be modeled by means

of Abstract Slate Machines. their use suggesting operations. Such operations will include returning

information on the current state and switching from state to state.

Finally, one may think of the operations available on an object as a shopping list. It is allowable

for operations to be made available that no client buys (uses). Too many operations for a given class.

however, may suggest that the class be broken up into several classes.

2.2.3 Establish Vlslbillty

Once the classes. objects, and operations are determined, relationships must be established

among them. Objects can relate in terms of either client-supplier or ancestor-descendant pairs. The

decision whether a class should be an heir or a client of another class requires judgment.

Page 14: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

More researcn neeas to oe aone on now to structure reratlonsn~os between classes. Some c3c:ect

Oriented systems have no structure level at a hlgher level than classes. Yet a large system may nave

on the order of hundreds of classes at the same level, a questionable des~gn.

Various ideas on the architecture of Object Oriented systems have been proposed. Some nave

suggested that Cbject Oriented systems be aeveloped as layers of virtual machines (eg. Smalltalk

includes a metacfass as a higher level struc:Znng rnechan~sm [Cointe 871). Some have objeced to

inheritance, proposing various relationships between objects to supersede or control it ([Minsky 8T],

[Stein 8 7 , and [Lieberherr 891).

2.2.4 Edabllsh Interfaces

The step of establishing interfaces amounts to formally describing the public view of an object.

Ada package specifications, which serve this purpose. can be programmed and compiled before the

corresponding package bodies are coded. Modula-2 provides a similar facility. Both the Ada package

specification and the Modula-2 definition module establish what is available to users of an oo~ect.

Package specifications are also useful as a project management tool; they allow many programmers to

work in parallel on the package bodies with minimal communication.

2.2.5 Implement Each Object

The final step in the 00D methodology is to actually implement each object. Principles of

structured coding should be used for the detailed design of each operation. Only a limited number of

constructs (sequence, iteration, selection) should be used, and in a manner that permits formal

verification.

This step can actually be argued to belong to the coding phase. In some sense, OOD decreases

the distinction between design and coding. The goal is to provide a natural method of representing

characteristics of the problem domain in source code. Inasmuch as OOD achieves this goal. the

transition from requirements to source code should not resuit in an abrupt change in technology at the

end of the design phase and the beginning of the coding phase.

' Some Ob* Oriented languages do not provide for separateiy wmpllable interiams. Eiffel pmvides for deferred cksses. which serve the same purpose.

Page 15: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

LANGUAGE SUPPORT FOR OOD

Cbject Crientea Ces~gn IS a methocciogy that was developed In the csntext of var~ous

prograrnmlng languages. n e interact~ons of objects can make demancs of the language, as well as tr,e

development environment rtself. ?is sectlon cefines a scale for measuring the degree to wh~ch a

language supports 000 and actually compares various languages on the bass of the scale.

3.1 A Scale For Measuring Object Oriented Languages

Bertrand Meyer has proposed seven levelsg that measure how well a programming language

supports OOD.

1. Modularization on the basis of data structures

2. Ability to describe objects as implementations of Abstract Data Types (ADTs)

Automatic garbage collection

4. Equivalence of modules and (non simple) types

5. Inheritance

6. Polymorphism and dynamic binding

7. Multiple and repeated inheritance

(1) Modularization on the bask of data structures means the language allows the type

declarations, constants, and procedures pertaining to a particular data structure to be grouped together.

The collection of such declarations should be capable of being set off from the rest of the program in a

separate file or module.

(2) Data abstraction is possible if the language allows the specification of a data structure or

object to be separated from its implementation. This separation should allow the specification to be

regarded as an implementation of an Abstract Data Type. The language should automatically prevent

unauthorized access to implementation details that the programmer wants hidden.

(3) Automatic garbage collection is an implementation feature convenient for programmers.

Gafiage collection o a r s when the underlying language system automatically reclaims space occupied

by inaccessible data items.

' E n d Cox, me inventor of Objectwe C, compares 000 languages by means of eight characterisecs, four in Meyers scale. a@ Other four being mmmemal avalability, the avabbility of libraries, and two tedvl~cd pmpemes related lo polymorphlsrn (Cox 861.

Page 16: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

(d ) Equivalence of modules and types exlsts In langua5es mat GO not dlstingulsn between the

declaration of types and modules. Meyer defines a language consrrua combin~ng module ar,d type

aspeas as a class. Variables of such types are known as objects.

(5) lnheritance allows a class to be defined as an extension or specialization of another class.

lnher~tance resembles subtyping in more traditional languages. As an example of inheritance, consider

a system for a windowing user interface. For example, in a system for a windowing user interface, a

class of geometric shapes might be defined. Typically, operations would return the center and color of a

shape, expose it, hide it, save it, move it, and so forth. Classes for special shapes such as triangles.

squares, and circles would include specialized operations for areas and perimeters, as well as all of the

operations of a general geometric shape. Inheritance provides for implementing these classes without

duplicating the code for operations that apply to general shapes. The special shapes then are declared

as descendants of the class of general geometric shapes having all the properties and operations of a

shape, as well as their own special operations.

(6) Polymorphism and dynamic binding identifies the ability of an object to be a member of

different classes at different points of time during the execution of a system. In more traditional

terminology, polymorphism is the ability of a variable to take on more than one type during execution.

Dynamic or late binding allows the version of an operation which will be applied to an object to be

chosen as late as run time. Ordinarily, early binding results from a decision on the version of an

operation to be applied at compile time; polymorphism prevents this. Polymorphism and dynamic

binding support software development by allowing source code to properly localize certain design

decisions, thus leading to more understandable and easily modified code.

(7) Multiple lnheritance is achieved when a class can inherit properties from more than one class

with the possibility of inheriting properties from another class in more than one way. As an analogy,

consider the case where a father and mother are distant cousins. Any children of such an union can

refer to some of their ancestors under more than one description. Designers of Object Oriented

languages that support multiple and repeated inheritance must resolve any ambiguities on the

interpretation of an operation that may arise from repeated inheritance. Consider, for example, two

classes: one for integers and another for arrays. By defining a new class that inherits from both these

classes, one can create a class for arrays of integers [Wiener 891. This example demonstrates that

multiple inheritance can be at least as powerful as generics, although maybe not ahways as convenient.

Current languages tend to cluster in three locations on this scale (Table 3.1). First, classical

languages, such as Assembly, Basic, C, Fortran, Jovial, and Pascal. do not necessarily allow

programmen to modularize on the basis of data structures. Modern data abstraction languages such as

Ada and Modula-2 provide powerful data abstraction and information hiding facilities that allow one to

Page 17: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

LEVEL;

Fortran

Pascal

Ada A A I

Objective C A A A

Lisp extensions A D A

Smalltalk A A A

Key:

Level: 1 = Modularization on the basis of data structures 2 = Data abstraction 3 = Automatic arba age collection 4 = Module-type equivalence 5 = Inheritance 6 = Polymorpnisrn and dynamic binding 7 = Repeated inher~tance

A = Level achieved I = Achieved in some implementations D = Level achieved, but differences noted

TABLE 3.1: PROGRAMMING U N G U A G E SUPPORT OF OOD, SCALE SUMMARY

Page 18: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Implement ADTs. Ye t they ao cct f ~ : ; ? suopon CCD. Neither do they suppon colvmorpn~srn, cynamlc

binaiq, and inheritance, nor c3 they allow a type to be lcenrlfied zs a module. Finally, full Object

Oriented languages that lie on the upper end of the scale may be partitioned into two groups:

extensions of classical languages (C-, Objectrve C. Flavors, and Loops) and pure object oriented

languages (Smalltalk and Eiffel).

3.2 Classical Languages

In general, Algol style block s:mctured languages fail to even reach the first level on this scale.

Examples of such languages widely used include Fortran, Pascal, and C. The primary structuring

mechanism in such languages is the procedure or subroutine. Some awkward implementation

techniques have been discovered for simulating certain 00D concepts such as classes and inheritance

in these languages [Meyer 881. These techniques, however, violate the spirit of the language and result

in code that most conventional progammers would find faiiiy strange. In general, although one can

certainly implement an Object Oriented Design in these classical languages, the resulting code fails to

reflect the structure of the design.

3.3 Data Abstraction Languages

Two influential languages, Ada and Modula-2, introduced during the early eighties. reflected much

research in language design. Although 000 was already used in certain small research communities

by the time these languages were designed, it had yet to gain the popularity it currently enjoys.

Consequently, these languages do not fully implement some Object Oriented concepts.

Modula-2 reaches the sewed level on the scale. It allows objects to be described as

implementations of ADTs, but it does not provide for automatic garbage collection, nor for the

identification of types and modules.

Modula-2 provides a method of modularization above the procedure level and more rigorous than

that provided by an operating system's file structure. This method, as provided by Modula-2 modules,

can be used to modularize on the basis of data structures. Modula-2 also allows the definition of a

module to be separated from its implementation. The resulting modules can be viewed as

implementations of Abstract Data Types. For example, the definition module of a queue might look like

the following:

DEFINITION MODULE Queue: EXPORT QUALIFIED Queue. New. IsEmpy. Enqueue. Dequeue. First:

(' Comments can prw~de axioms for these procedures. ')

Page 19: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

-tPE S-eue: Queue or CA7iDINALs. ' :

FROCES'JZE New( VAR q: L e u e l ;

PROCEZIIRE IsEmpry(q: C~leuel: XQLEAN:

PROCESUGE Enqueue(x: CARDINAL: VAR q: Ciieue);

PROCEDURE Deaueue(VAR a: Cueue);

PROCEDURE First(q: Queue): CARDINAL:

END Cueue.

Unlike most languages. Modula-2 is case sensitive: all keywords must be uppercase. This

restriction almost mandates a certain style for user defined entities. Note the declaration of Queue in

the the above definition module for a queue. Modules and types are distinct in Modula-2, but this

example demonstrates the utility of a mechanism for combining these two concepts. 80th the module

and the type share the same name. Queue is declared as an "opaque type," Modula-2 jargon for types

made available in a definition module, but implemented in an implementation mdule. Modules that

import Cueue may only reference it by means of the operations exported from the queue module.

Hence, Modula-2 can be used to enforce information hiding and data abstraction techniques. In many

implementations. opaque types suffer from a limitation: they can only be one word long. This restriction

is overcome for objects. such as queues. that require many words of storage by implementing such

objects as pointers. The pointer itself will be a word of storage, but the entity that it points to can be

any length. Thus, to use Modula-2 to implement data abstraction techniques requires considerable use

of dynamically allocated memory. Since Modula-2 does not provide for automatic gadage collection,

the programmer must manage the heap himself. Care is required in preventing aliasing and in allocating

and deallocating memory.

3.3.2 Ada

Ada does not fully nor completely support OOD. Ada definitely allows objects to be described as

ADTs. Implementations are permitted to provide automatic garbage collection. Multitasking applications

can regard Ada tasks as both modules and types. Ada definitely does not provide polymorphism and

dynamic bindiq. Nevertheless. Ada introduces many powerful new features (whose capabilities are still

a matter of debate). 0 0 D methodologies are widely known in the Ada community, are often taught with

introductory Ada courses, and are used by the NASA Goddard Space Flight Center and other designers

of large systems.

Ada reaches, at least, the second level on our scale. Ada package specifications. like Modula-2

module definitions, allow objects to be described as implementations of ADTs. For example, the Ada

package specification for a queue might look like the followiq:

Page 20: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

;enenc :/Pe XType IS onvate:

;acKaqe Oueue IS

type Queue:

procawre NEW(0: In out Oueue);

function IS-EMPTY(0: in Oueue) return awlean:

procaaum ENOUEUE(X: in XType; 0. In out (;kreue): - Gases OVERFLOW 11 no more space can oe allocates for 0.

p r o a ~ u t s DEOUEUE(0: in out Queue); - R a w s UNDERFLOW if IS-EMPTY(0).

f unam RRST(0: in Queue) return XType: - FLires UNDERFLOW if IS-EMPlY(0).

OVERFLOW : exception: UNDERFLOW: excepoon:

ryp. Queue-Node: type Queue-Pointer IS access Queue-Node: typa Queue-Node IS record

X : x-rype: NEXT: Oueue-Pointer:

end record:

type Oueue is r e a d NUMBERJN QUEUE: Natural: THE-QUEUE- : Oueue-Pointer:

end recard:

end Oueue:

This example illustrates several differences between Ada packages and Modula-2 modules. First,

the queue defined here is generic, with the type of items stored in the queue possibly differing among

queues. No comparable feature is provided by Modula-2; the Modula-2 example queue could only

contain cardinal numbers. Second, Ada provides userdefined "exceptions." raised when anomalous

conditions arise. Control is returned to the calling procedure, but not necessarily at the point of

invocation. In effect. exceptions allow multi-exit subroutines. Finally, packages that make use of

queues cannot access any entities declared in a private part (see example), but the compiler knows how

much space to allocate for queues because of the information in the private part. In effect, information

in the private part is invisible to users of queues.

Garbage collection is an implementation decision for Ada compiler^'^. Since implementations can

refuse to provide automatic garbage collection, programmers need to be able to explicitly control the

allocation of memory. The pragma CONTROLLED and the standard procedure

UNCHECKED - DEALLOCATION are used for this purpose.

'O fhe Ada Language Reference Manual [ANSI 831 states 'An implemenlation may (but need not) reclaim the storage oc- cupled by an object created by an allocator (pmter). once mls obleu has become inaccessible (Secllon 4.81.'

Page 21: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

The nexr level on :ne sca:e. the eaulvalence of moaules E E O types. IS also panially ~nrroaucec! In

Ada. Ada Facxages are cenalnly not types, as the Queue example illustrates. However. Ada tasks can

be thougnt cf as objects with cperations implemented as task entries. Tasks are a natural way to

modularize multitasking applications. Moreover, tasks can be explicitly declared as task types. A task

can have multiple entries, each providing some service. Consequently, Ada tasks provide features of

both moaules and types. For Object Oriented language designers to adopt the Ada tasking model. Ada

tasks must be shown to be capable of simple and efficient implementation.

Inheritance is probably the most controversial requirement in considering Ada's support for OOD.

Ada has a complicated type structure with derived types and subtypes that can simulate inheritance

[Perez 881. Ada's ability to define generic packages and procedures, however, is most closely related to

inheritance. Both generics and inheritance are mechanisms for making modules more reusable and

flexible1 l.

Ada definitely does not support polymorphism and dynamic binding, the next level on the scale for

measuring language support for 000. Ada is strongly typed with binding performed at compile time.

Ada does allow liberal use of overloading; many procedures can be given the same name. In any given

case, Ada compilers decide based on the number and type of arguments what procedure is being

referenced.

3.4 Object Oriented Extensions of Classical Languages

As OOD has become more popular, various classical languages have been extended to make

0 0 D more accessible to the broad mass of programmers. Traditional programmers should feel

comfortable using them to gradually evolve to Object Oriented Design. Portions of a system, for that

matter, can comfortably reflect cfassical designs and yet be fully integrated with Object Oriented

portions.

3.4.1 C Extensions

Researchers have recently grafted Object Oriented concepts to a C base. The two most well-

known languages resulting from these attempts are C++ and Objective C.

" In h c t pmgramrners have found gene- so desirable hat they have attempted to implement genencs in Moduia-2 ([Reynolds 8 7 and 851). Beraand Meyer condudd that me applamns suppond by genencs are only a proper subset of Base supported by inhenlance. Some applicat~ons. however. am mast mnven~endy supported by genencs. lnhentance s more powerful, but a well desqned language m~ght also support carram aspects of qenenct [Meyer 861.

Page 22: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

~ c c ' ~ reaches the upper reaches of the scale for measuring language support for OOD. The

programmer can introduce classes which comoine types and functions. As in Ada. these classes can

have both a public and a private part. a specification and an implementation. For example, the

specification of a queue class might be given by the following:

c i a s QUEUE I private:

int lhe f i t thelast irnpl[MAXSIZE]; public

vod new(); BOOLEAN isempty(); void onqueue(integer); void dequeue(); int first();

1;

Not shown in this example are friend functions, a new concept introduced in C++. Unlike the member

functions defined above, friend functions require an argument denoting the object to which they are

applied. Friend functions allow C++ functions to be called from normal C code.

Cct has inheritance, polymorphism, and dynamic binding. Multiple inheritance was introduced in

Version 2. Ccc does not provide automatic garbage collection, but the ability to automatically invoke

destmctors removes much of the burden associated with memory deallocation.

3.4.1 -2 Objective C

Objective C13 is a preprocessed extension to C that fully supports OOD. It provides automatic

gahage collection, polymorphism, dynamic binding, and inheritance (including multiple inheritance).

Objects are supported by means of a new data type, an object identifier. Just as variables can be

declared as belonging to a C base type, so variables can be declared as an object identifier in Objective

C. A variable of the object identifier can be used to hold an identifier for any type of object.

3.4.2 Lisp Extensions: Flavors and Loops

OOD might be regarded as a small twist to traditional procedural oriented programming. Instead

of regarding procedures as acting on data, OOD adopts the view that objects invoke methods in

response to messages, an important new method of designing system architectures. At the lowest level,

" C++ W a r dwdoped beginning in 1980 by the same group at Bell Laboratones mat designed C. Interestingly, Bjame StfUJSWp, the invenw of C++, stam he was Inspired to develop C++ panty to devebp a simuhnon program. me appticanon

of Simula. Furthermore. Shoutwp's expenence w ~ h Sirnula exposed him to me power of Object Oriented languages [Swens 891.

" Objectwe C war designed by Brad Cox. now wilh the Stepstone Corporation. drawing on hb expenence with Smalltalk bG3use Dr. b x a not anilialed wtm ATLT, he felt himself less free to modty the base language when grafdng Object Oriented concept^ onto C Uian was done in C*.

Page 23: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

:houqn. traaitiona s t r u c ~ r a l melnoas 272 csea. a: least rn data acstractlon lanauages aca C5jecr

Oriented extensions to class~cal languages.

The fact that researchers have added Ckiect Criented extenslons to Lisp, however, suggests that

000 is a dramatic revolution. ~ i s p ' ~ has evolved out of a compfetety different tradition than block

structured languages such a s Fortran, C, Pascal, and Ada. Lisp is ubiquitous in Al research, but rare

elsewhere. I t promotes a style known as functional programmrng [Backus 781. A1 researchers to

implement a wide variety of tools and environments in Lisp. Lisp encourages programmers to disregard

the distinction between programs and data and write short, highly recursive programs. A s part of this

style, Lisp programs are weakly typed.

The most popular Lisp extensions supporting 000 are most likely the languages Loops and

flavor^:^. These Lisp extensions give very complete support to OOD, all provide classes with aspects

of both types and modules. These classes, known a s flavors in Flavors, provide a mechanism to

rnodularize on the basis of data structures. However, consistent with Lisp traditions, the resulting data

structures differ from those used in traditional block structured languages. Lisp data structures tend to

be recursive lists of lists. Accordingly, natural axioms for describing classes a s Abstract Data Types may

ditfer.

Usp itsel relies heavily on automatic garbage collection, with Lisp programmers likely to work in

very advanced programming environments. Pure Object Oriented languages are also characterized by

advanced environments, but with somewhat different features. Garbage collection is only a small aspect

of such environments.

Object Oriented extensions to Lisp support polymorphism, dynamic binding, and inheritance.

Dynamic binding is another Object Oriented feature that's fairly trivial to provide to Lisp extensions. Lisp

environments are usually interpretive, with many dynamic properties. The weak typing provided by Lisp

has important implications for how inheritance is used. The resulting class hierarchies in, say, a Flavors

system can be quite different than those supported by a comparably strongly typed language such a s

C++ [Wolf 891.

Desptte the high support for 000 of these Lisp extensions. adopting any one of them should be

carefully considered. Adopting a Lisp extensions would involve learning two new paradigms, not just

one. The interaction of these paradigms would invariably destroy the possibility of isolating the effects of

just one, OOD, on any resulting projects.

" John McC- inaoduced Lisp in the hte 1950s to suppan research in Amficid lntelligenae (Al). EssentiaJty. Lisp is an implemenlaoon of Alonzo Churcn's lambda Mu. introduced to investigare cenain (heoreocal quesuont ln computability and lagic. Related work stems horn Turing Machines and Godel's incompleteness rheorems.

" b p s was de~eloped at Xerox, orqinally as an Interlisp vanant Flavors was developed at h e Massachusefts Institute of Technology.

Page 24: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

3.5 Pure Object Oriented Languages

Pure Object Oriented languages represen! the state of the aft of OOD. Naturally, these languages

also fall in the upper end of the scale.

Srnallta~k'~ almost defines the OOD paradigm and lies at the highest end of the scale for

measuring Object Oriented languages. Classes and objects provide a natural basis for mdularization.

Smalltalk provides garbage collection, polymorphism, dynamic binding, and inheritance (including

multiple inheritance). Smalltalk provides a good commercially available means of investigating OOD, but

it is most widely viewed as a tool useful in producing prototypes, not in developing production system.

3.52 Eiffel

Eiffel is probably the most well known pure Object Oriented language introduced during the latter

half of the 1980s. Since Bertrand Meyer designed Eiffel as well as the scale used to evaluate 000

language support, Eiffel naturally is at the top of the scale.

Eiffel supports all OOD concepts discussed. The basic modularization mechanism. the Eiffel

class, combines properties of both modules and types. An Eiffel system is a collection of classes:

Control is decentralized. In particular, an Eiffel program contains no main procedure, rather the user

declares one class to be the root. This class will create other classes and may pass control to them.

Classes can relate to one another through inheritance, including repeated and multiple inheritance.

Polymorphism and dynamic binding are provided.

Eiffel borrows certain ideas from Ada including the ability to distinguish between class

specifications and implementations, generlc classes, and exceptions. Some differences between the

use of these features in Eiffel and Ada are illustrated by the example of a queue:

dass interface QUEUE[XTYPW exponed feabrres

i m p r y , number-elements, enqueue, dequeue. f i t

feature s p e c i f d o n

isanpty: BOOLEAN - Is queue empty?

number-elemenrs: INTEGER

" Snvlltalk k the must tamws progammlng environment to emeqe from the Xerox Palo Alto Research Center (PARC). Mesa and Cedar an, examples of more recent enwronmena produced by Xerox PARC.

Page 25: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

enaueuelx: X Y P E ! - Enaueue x.

ensure number-elements = old numoer-elemens + I

deweue - Delete f~rst element In aueue.

requtre not isernpry

ensure number-elerneno = old numoer-eierneno - 1

fint XrYPE - Value of fint element In queue.

requre not isempty

end interface - dau QUEUE

This is a class interface specification similar to a package specification in Ada. Since interfaces

are not coded separatety from implementations in Eiffel, the aMve is not even valid Eiffel code. This

queue interface is actually the output of a tool supplied with the compiler. In Eiffel, one codes a class as

one would cede a package body in Ada. This tool. called Short. then generates an interface

specification to provide programmers with the information to use that class while satisfying principles of

information hiding and data abstraction.

However, Short does not support project management as do Ada packages specifications. A

Short specification is only produced from a completely implemented class. Eiffel does provide a

separate facildy, the ability to defer the implementation of a class, that permits an Eiffel program to be

developed similarly to the Ada process model". But this facility is not integrated with Short.

As well as supporting inheritance, Eiffel provides generics. In fact. the sample queue specification

is a generic containing the generic parameter XTYPE. Eiffel generics are not nearly as full featured as

Ada generics. They are provided only to support those applications that are not quite as convenient to

implement with inheritance.

Eiffel is purposely designed to allow exceptions to be reasoned about formally. Ada exceptions

can be used to create programs even more difficult to reason about than those loaded with gotos. Yet

they address the need to gracefully handle malfunctioning sensors and interrupts. Eiffel formally

introduces preconditions and postconditions. These are seen in the "require" and "ensure" clauses of

the above queue example. When a precondition or postcondition is not met, an exception is raised and

control is returned to the calling procedure. Eiffel clearly restricts use of exceptions; exceptions are not

allowed to propagate willy-nilly through an Eiff el program.

Eiffel demonstrates that support for a particular programming paradigm is not the only

measurement criteria in evaluating programming languages. Efficiency. ease of reasoning about

" Ada package speafmuons allow a few skilled deslgnen to oudvle me ~nterfaces to Ihe packages In a system before many o h e n aaually lrnplernent hem. W~th Ada and Modula-2, me separanon of speaf i faao~ from lmplemenmoon allows coders ro proceed In relame r sol anon from one anoher.

Page 26: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

program. wwerful abstrac::on rr,ecnanarns. arid suupon for parallel crccesslng rnlcnt all be relevact.

Eiffel integrates pure Object Oriented capabilities wlth powerful advances brougnt forth ~n Ada unrelated

to OOD.

Page 27: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

LARGER IMPLlCATlONS

Software is inherently complex, and no foreseeable technology can be expeced to remove that

~omplexrty'~. Despde this lack of foreseeable technologtcal breakthroughs, some ongoing researcn

does ceal with the conceptual essence of software. GOD attacks essential difficulties in software

design. It also shows great promise in supporting software reuse. Finally, it has interesting implications

on alternative software lifecycle models.

Various criteria can be used to evaluate a software design methodobgy. The methodology should

result in a solution that minors the problem domain. Guidance should be provided on how to

decompose a problem into smaller, "mind sized," problems. The notation in which the design is

expressed should reflect this development and be readily comprehensible to readers. Finally, the

methodobgy should be based on a rigorous theory.

000 was developed to address certain gaps in structured programming. Top down design

scatters related matters, particularly those involving data structures throughout the code. Although the

program may have begun in terms of the problem domain, the final notation tends not to reflect this

orientation in any easily visible manner. Top down design can encourage the development of tightly

coupled procedures that depend for correct operation on the sequence in which they are called. The

resulting loss of comprehensibility and lack of composability becomes particularly debilitating on large

projects.

000 is effectively a continuation of the structured programming revolution to meet the challenges

of "programming in the large," the design of large systems over an extended period. It provides a

method for decomposing a problem without falling into the traps of structured programming. Like top

down design, 000 allows a solution to be specified in terms of the problem doma~n. The concepts from

the problem domain, however, are objects, not functions, objects (data) being more stable than

functions. Further, since decomposition is based on objects, components can be more easily combined

to sotve new problems. By allowing data and procedures in the resulting design to be grouped into

modules or classes, the final notation should clearly reflect the design and the problem domain. Finally,

the use of Abstract Data Types provides the needed formalism to clearly reason about Object Oriented

Designs.

" Thm inherent complexity rellecls (he diffidries in scaling up over many levels of absmcnon. the nonexistence of any adsauaro mahematical theory for analywg a very large number ot dscrem scams. me mquuernent mat sohvam ~ n t O r m to ar- b- ~nmdacas dictaled by the people and insotuncns it suppam. the p r a u r e s on software to clrrugndy change, and fie ditficulby In voualiring software architecum (8roakr 8q.

Page 28: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

4.1 Software Reuse

000 seems to be the most prom~sing des~gn methoa available now. OOD promises to offer

advantages particularly in encouraging sottware reuse. Reuse can include much more than code; "any

information which a developer may need in the process 0 i creating software [Freeman 87" (e.g.

specifications, plans, designs, code, and test cases) may be reused. Cataloging and retrieval schemes

for this information can be a key problem in using reuse to aevelop software. In addition to technical

concerns, reuse issues include economlc, legal, and institutional concerns. Finally, reuse requires a

certain mindset not necessarily common among many programmers. OOD, however, only addresses a

limited range of these issues.

00D promises to dramatically increase the reuse of software, thus reaping these benefits of lower

cost and increased reliability. As a technological solution to some of the problems of the software crisis.

reusability raises productivity. If a given functionality can be delivered by constructing a software system

from existing components, rather than by developing new code, that functionality will be produced at a

lower cost. Reuse has economlc benefits srnce the cost of new development can be amortized over all

future projects that reuse the products of the original development. Finally, reuse can improve the

reliability of software products since often used code should be more reliable than code developed for

one-time use only.

Adopting OOD requires a new mindset on the part of software developers. 000 encourages

programmers to concentrate on the architecture of systems and to consider systems as composed of

objects. Such an attitude should result in programmers being more willing to reuse objects without

feeling any limitations on their creativity.

Several properties suggest that 0 0 D can very successfully promote the reuse of code. Since

objects provide a convenient packaging mechanism, reused code often need not be modified. If it does.

programmers can modify objects by inheriting reused functionality from libraries and only modifying what

they need in the new objects. The library itself can remain unchanged. OOD then supports the

development of libraries of classes.

OOD researchers have developed techniques that address some of the cataloging and retrieval

difficulties of reusability. Smalltalk environments include a tool, Browser, that is useful for quickly

examining libraries of classes. When deciding whether or not to use a library component, a programmer

needs a mechanism for determining what a component does, other than reading the entire source code.

Well documerded Ada package specifications and Modula-2 module definitions provide such a

mechanism.

OOD's promise of software reusability has already been successful in a few cases. A taxonomy

for reusable software components has been proposed [Booch87a]. Components with different time and

Page 29: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

space cnaraaenslics (e.g. cynamlc arlocat~on of memory versus a fixed size at complle time) have been

develooed (stacks. lists, stnngs, queues, rings. sets, and trees) using the Object Oriented Design

methodology. Althougn not all variations permitted by Booch's taxonomy are filled yet. the resulticg

complete set of components is now commercially available.

The NASA Goddard Space Flight Center (NASNGSFC) has experimented with Ada and OOD in

the Software Engineering Laboratory (SEL) in the last few years. They concfuded that Ada needs to be

taught with a design methodology; otherwise. the result is "Adatran" code. Ada code written in a Fortran

style. As a consequence of experiments with 000, the SEL produced two OOD particularly

oriented towards producing reusable components.

Interestingly, both of these successful uses of 000 to produce reusable components produced

Ada packages. Noting that Ada does not fully support OOD, these results suggest that the reusability

benefits of 0 0 D at the least, can be achieved with only a partial implementation. The ability to

experiment with an innovation on a limited basis is one characteristic that will lead to an innovation being

rapidly adopted [Rogers 19831.

4.2 Life Cycle Support for OOD

000 can be used in a project managed with the traditional waterfall life cyclgO model. Basically,

Object Oriented Design is a method for performing the design and coding phases of the waterfall model.

In particular, 000 is strongly oriented toward the architectural design performed during preliminary

design. Because of its close connections to certain programming languages, however, 000 also

supports the detailed design (and coding) phases.

The most obvious restriction that 000 places on tools and methods occurs during the coding

phase. One of greatest benefits 0 0 0 is likely to provide is lower maintenance costs resulting from

'O One was coded in Fortran and he other in Ada. Successive pmjectr tried to reuse this code. The Forinn project fol- lowing dd not have a higher percentage of reused code than is fypical of NASAIGSFC projectr. The Ada project following, how- ever. was consated with ninety percent reused code. The SEL conduded that this pereantage b higher than can normally be expeaed. Nwerrheleu. the SEL does believe that 00D. as impiemented in Ada. leads to mom reusable mde [Seidewia 891.

Th. mterfaU model envisions software systems developing by moving in order hrough a sequence of phases. Alhouqh the exact phases vary from one model to another. a fypicd model might indude requirements, preliminary design. detailed drign. mde and unit testing, integration fasang, and system testing. DODSTD-2167A. Defense System Satware Oevebpment. &&a dw phases comprising the sobam dwebpment life cyde:

Softwars requiremen& analysis

Pdiminary design

Dotarled design

Coding and Computer Sohare Unit (CSU) tesong

Compmr Software Component (CSC) integration and tesong

Computer Software Configurauon Item (CSCI) &sung

Page 30: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

OOD's increased flexibility. Geduc~m maintenance costs Eat are 40 to 70 of the total cost for large

systems can be significant ([Boehm 811 and (Pressman 8 7 ) . Unless the coding language reflects the

Object Oriented nature of the aesign, mucn of the potential for reduc~ng this cost will be lost.

OOD can also be used as a rapid prototyping tool during the requirements phase. particularly

using the Smalltalk environment. By making a large library of predefined classes available, Smalltalk

systems allow one to rapidly construct a system by linking already existing classes. This increased

flexibility also encourages a style of exploratory programming needed for rapid prototyping.

The use of OOD as a design method, however, imposes restrictions on what methods can be

used during requirements analysis. A method oriented more toward data structures2' and less toward

system functionalitp can be expected to work better with OOD.

000 promises to give broad support for software reuse, but the waterfall model does not fit well

with reuse. No task performed under the waterfall model is explicitly oriented towards either using

existing libraries or producing reusable components. Reuse requires conscious direction by

management.

000 attempts to build more flexible systems. The rigidity of the waterfall model hinders the

continual adaptation of a design as its role becomes more precisely understood. Obviously, this rigidity

of the waterfall model counters the flexibility sought by means of 00D. Changing a life cycle model can

be very costly, but the modifications suggested for OOD fit into a natural evolution that seems to be

occurring already.

OOD, then, can fit the conventional waterfall model, but alternative models may take fuller

advantage of the increased reusability and flexibility that 00D promises. Various models have been

suggested to improve the software life cycle. A spiral model of repeated builds has been proposed

[Boehm 881. In adapting the Const~ctive Cost Model (COCOMO) for Ada. Boehm has also proposed an

Ada process model that fits comfortably with OOD. In this model a small team of designers begins by

designing class interfaces and Ada package specifications. The team grows so as to implement these

classes. The division between design and coding phases is less rigid in this model than in many

waterfall models. In particular, many Critical Design Reviews (CDRs) are conducted. each concentrating

on a particular class or subsystem.

21 The two mest well known data smtcw+o&nted methods are probably Jackon System Development (JSD) ([Jackon 751 and [Jackson 831) and Data Strucwred Systems Development. also known as the Wamieran methodobgy [Preuman 871. Grady Boo& has found 0 0 0 to w m well with JSD [Boo& 87bl.

The mast well-known reacnremenn memod oriented towards system funcaonaliry is undoubtably Strucolred Analysis (SA) [DeMarm A]. One m~ght expect SA lo work less wdl wirh 000; in tau. SA inwroorates ~ts own design merhodology which is b a r n as transform anabws. Praawners, however. have budt up a great deal at expenen03 applying SA to a wide variety of System under a wide vanety of cond~rions. Same have wen found it poss~ble to apply SA wllh 0 0 0 pard 891.

Page 31: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

The acoptlon of a new rnoael basea cn raora crc:s;:;prng nas ZiSO been suggested. Ey intenwrnrng

spec~iica:;on and implementat~on, systems users are ce!ter accommodated. Smalltalk itself grew up rn

an environment in which exploratory programming IS encouragea. This history is strong evidence that

0 0 D should fit well with these new paraaqms3 for soiraare development.

" A good ove~lew 01 lhese altername life cycle rnodeb is prwded by [Agmsn 86).

Page 32: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

5. SUMMARY

00D is an exciting design methodology that is currently Sarnerlng a lot of attention. By providing a

brief introduction to the technical features of 000 and the core elements ot the rnethodobgy, this report

has provided a sense of what the excitement is all about.

For some time now analysts have been grappling with the essential difficuhies of building large

software systems. An OOD methodobgy was presented in Section 2 that, while promising no miracle

cure, can guide system developers toward more flexible and robust solutions. As was mentioned in

Section 1, the research that led to this methodology grew out of concerns with issues not addressed by

the structured programming revolution, most notably inadequate guidance on modular decomposition

and a lack of flexibility in the resulting systems. Now that practitioners have seen these problems cause

real systems to fail, a methodobgy developed to meet these problems. OOD, is becoming increasingly

popular.

Ultimately, all software systems are expressions in some programming language. For a design

methodobgy to be successful, the resulting solution needs to be clearly stated in the programming

language. Section 3 evaluated several languages for their support for OOD. Some of these languages

are fairly obscure, but the languages that are being selected by the marketplace these days show a

strong OOD flavor. The results and scale for rating languages presented in Section 3 will help the

reader choose a programming language for his system. They will also help those who have no choice

better use the languages they have to support 00D.

Section 4 has shown that considerable benefits can be obtained from OOD, particularly in the area

of reusability. 0 0 D also fits well with the prototyping orientation of new lifecycles designed to overcome

the rigidrty of the traditional waterfall model. To obtain these benefits. Defense contractors face

potentially increased costs of gearing up for OOD, resistance to the needed paradigm changes, and

complications of applying OOD against mandated development standards. If recent history is any guide,

however, OOD will continue to become ever more widely used and will play a large role in the future

development of software engineering.

Page 33: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

6. REFERENCES iAbbott 831 Abbott. f i~cser l J., "grogram Oes~gn by Infomar Engt~sn Cescrrpt~ons.' C~mmun~catrcns c f :he ACXI. Volume 25, P-igmcer 1 : . Noverncer 1983.

[Abbon 861 Abbott. ficsse~l J. , An Integrated Aoproacn :," Sonware Development, John Wiley & Sons. 1986.

[Agrestr 861 Agrest~. 'i.';:liam W.. New Parao~gms for Sctdare Development, IEEE Computer Society, 1986.

[ANSI831 Reference Manual for the ADA Programming Language, ANSIJMIL-STD-181 SA, United States DepaFtmem of Defense. January 1983.

[Backus 781 Backus. h h n , "Can Programming be Liberated from the Von Neurnann Style? A Funct~onal Sfyle and its Algebra of Programs." Communrcations of the ACM, Volume 21, Number 8. August 1978.

[Boehm 811 Boehm. Earv W.. Software Engineering Economics, Prentice-Hall, 1981.

[Boehm 881 Boehm. 2arry W.. "A Spiral Model of Software Development and Enhancement," Computer, May 1988.

[Booch 861 Booch, rjrady, "Object-Oriented Deveropent." IEEE Transactions on Software Engineering, Volume 12. Number 12, February 1986.

[Booch 87al Booch. Grady, Software Components with Ada. BenjamiWCummings Publishing Company, Iw., 1987.

[Booch 87b] Booch, Grady, Software Engineering with Ada. BenjamiWCumrnings Publishing Company, Inc., first edition 1983, second edition 1987.

[Brooks 751 Brooks, Frederick P., Jr, The Mythical Man-Month, Addison-Wesley, 1975.

[Brooks 8 7 Brooks, 'rederick P., Jr, "No Silver eullet: Essence and Accidents of Software Engineering," Computer. April 1987.

[CAMP 8 7 "Version Cescr~ption Document tor the Misslie Sottware Parts of the Common Ada Misslie Packages (CAMP) Pro;ect," McDonnell Douglas Astronaut~cs Company, 30 October 1987.

[Cointe 8 7 Cointe, ?lerre, "?Aetaclasses are First Class: The ObiVlisp Model," Object-Oriented . .

Programmlk Systems. Languages, and Applications (OOPSLA18T) Conference Proceedings, October 1987.

[Cox 861 Cox, Brad J., Object Oriented Programming: An Evolutiomry Approach, Addison-Wesley Publishing Company, 1 386.

[DeMarco 791 DeMarc3, Tom, Structured Analysis and System Specification, Yourdon Press. 1979.

[DOD-STD-2167Al Defense System Sofiware Development. 000-STD-2167A, 29 February 1988.

[Freeman 8 7 Freeman. Peter. "Reusable Software Engineering: Concepts and Research Directions," Tutorial: SoMvare Reusabrlity, The Computer Society of the IEEE, 1987.

[Jackson 751 Jackson, rAichael A., Principles of Program Cesign, Academic Press. 1975.

Page 34: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

;Jackson 831 Jackson. Michael A . . System Deveioomenr. PrPnlice-Hall Internatronal. 1 O83.

[Lieberherr 891 Lieberhen. Karl J. and Hollano, Ian M.. 'Assuring Good Style tor Object-Orientea Programs." lEEE Sotware, Septernoer 1989.

[Meyer 861 Meyer. Bertrand. "Genencrty versus Inheritance.' Object-Oriented Programmrng Systems. Languages, and Applicatrons (00PSLA '86) Conference Prcceeaings. S ept ernb erloctober 1 986.

[Meyer 881 Meyer, Bertrand, Objed-Oriented Software Consim~lon, Prentice Hall International Limited. 1988.

[Minsky 8 7 Minsky, Naftaly H. and RozensMein. David. "A Law-Based Approach to Object-Oriented Programming," Object-Oriented Programming Systems. Languages, and Applications (OOPSLA '87) Conference Proceedings, October 1987.

[Pamas 721 Pamas, David L.. "On the Criteria to be used in Decomposing Systems into Modules." Communications of the ACM, Volume 15, Number 12, Decemoer 1972.

[Perez 881 Perez, Eduardo. "Simulating Inheritance with Ada," Ada Letters, Volume 8, Number 5, SeptemberIOctober 1988.

[Pressman 8 7 Pressman, Roger S., Software Engineering: A Practitioner's Approach. Second edition, McGraw-Hill Book Company, 1987.

[Reynolds 8 7 Reynolds, Charles W., "On Implementing Generic Data Structures in Modula-2," Journal of Pascal, Ada, & Modula-2, Volume 6, Number 5, September~October 1987.

[Rogers 831 Rogers, Everett M., Diffusion of Innovations, Third edition, Free Press, 1983.

[Seidewitz 891 Seidewitz. E. and Stark, M., "Ada in the SEL: Experiences with Operational Ada Projects," Second NASA Ada Users' Symposium, November 1989.

[Stein 87j Stein, Lynn Andrea. "Delegation is Inheritance.' Object-Oriented Programming Systems. Languages, and Applications (OOPSLA '87') Conference Proceedings, October 1 987.

[Stevens 891 Stevens, Al, "From C to C++," Dr. Dobb's Jomal, Winter 1989.

[Stroustrup 881 Stroustrup. Bjame. "What is Object-Oriented Programming?" IEEE Software, May 1988.

[Ward 891 Ward, Paul T., "How to Integrate Object Orientatron with S t ~ c t u r e d Analysis and Design," IEEE Software. March 1989.

[Wiener 851 Wiener, Richard S. and Sincovec, Richard F.. "Two Approaches to Implementing Generic Data Structures in Modula-2," ACM SIGPLAN Notices, Volume 20, Number 6, June 1985.

[Wiener 89) Wiener, Richard S. and Pinson, Lewis J., "A Practical Example of Multiple lnheritance in C++," SIGPLAN Notices, Volume 24, Number 9, September 1989.

[Wolf 891 Wolf, Wayne. "A Practical Comparison of Two CSject-Oriented Languages," IEEE Software, September 1989.

Page 35: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Appendix A.

GLOSSARY

Abstract Data Type (ADT) - A data type from wnich rrnclementat~on cetalls are tbstracted. The

propenres of an ADT are definea formally, typ~cally by a collection of axloms.

Abstract State Machine - An automaton with well defined states: a means cf detecting the current

state; and a mechanism for switching from one state to another.

Ada - A programming language mandated by the Department Of Defense (000) to be used for all

mission critical software. Ada's design began in the 1970s.

Ancestor - A class that provides features rnnerited by another class. Contrast Descendant.

C++ - An Object Oriented extension of the programming language C.

CIass - 1. A type and its associated attributes and operations. Instances of a class are known as

objects. 2. A language construct combining module and type aspects.

Cllent - A class that makes use of the services provided by a given class. Contrast Supplier.

CLU - A programming language developed at the Massachusetts Institute of Technology during the

1970s. CLU has many Object Criented features, althougn it does not supprt inhentance.

Constructor - An operation that either creates an object cr changes its state. Contrast Destructor.

Iterator, and Selector.

Data Abstraction - the separation of the specification of a data stmcture or object from its

implementation. Data abstraction allows an implementation to be changed without its use being

affected.

Descendant - A class that inher~ts features of another class. Contrast Ancestor.

Destructor - An operation that destroys an object. Contrast Constructor, Iterator, and Selector.

Page 36: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Dynamrc Binding - Also known as La:e Z~na~nq. .A languace feature of Cblect Cr~enrea languages In

whlch any amb~guit~es ln the rneanlng of an ~dentrtler are resolved at run tlrne. For example. since the

types of several polymorphic variables used as arcuments to a given lnvocatron of a procedure might

change dunng program execution. that lnvocatlon must be bound to several different but identrcally

named procedures dunng run t~rne. See polymorpn~sm and contrast statlc brnding.

Eiffel - An Object Oriented language and environment developed in the 1980s.

Flavors - An Object Oriented extension of the programming language LISP.

Garbage Collection - the deallocation of space occ~pied by inaccessible data items or objects.

Generlcs - Modules in which certain parameters are instantiated at tun time. For example. an Ada

generlc package might spec~fy a stack such that the same source code can be used to instantiate a

stack of integers and a stack of characters.

Inheritance - A feature of Object Oriented languages in which a class can be defined as an extension

or specialization of another class. This feature is analogous to the ability to define subtypes in

traditional languages.

Information Hldlng - A principle of program design in which implementation details are not available to

modules using a given module or client classes of a given class.

lterator - An operation that permits all pans of an object to be read or updated. Contrast Constructor,

Dest~ctor, and Selector.

Loops - An Object Oriented extension of the programming language LISP.

Message - A request that an operation be performed on an object: terminology used in Smalltalk. See

also Method.

Method - An operation; terminology used in Smalltalk. The class of an object must find the appropriate

method to apply when a message is sent to that object.

Modula-2 - A programming language introduced in the early 1980s by Niklaus Wirth, the designer of

Pascal. Although simpler, Modula-2 shares many of the features of Ada.

Page 37: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

P.7odule - A collection or data t;zts. c:nsizz:s. *:zrlacles. ;:scecures. zc3 func:;ons. -,picailv r c c z e s

can ce separatery cornolled.

Multiple Inheritance - A langua~e feature cr Cbject Crientea languages ~n wnlch c:zsses can inr;erlt

features from more than one cfass. In other words, a descenaant class can have more than one ci:ea

ancestor.

Object - An entrty that has a state. is characterized by the operations that can be performed on it, is

denoted by a name, is an instance of a class, and can be viewed by its specification as well as its

implementation.

Object Oriented Design - the constmction of software systems as structured collections of Abstract

Data Type implementations.

Objective C - An Object Oriented extension of the programming language C.

Operation - A means of accessing the state of an object. Operations are analogous to procedures in

traditional programming languages. They can be constructors, destructors, iterators, or selectors.

Overloadlng - A language feature in which an identifier can have several alternative meanings at a

given point in the program text. For example, several different procedures might share the same name;

the compiler would typically resolve any ambiguities based on the number and type of arguments.

Compare Polymorphism.

Polymorphism - A language feature in which a program entity, such as a variable or object, can refer to

instances of different types or classes at run time. Since the operations of these classes may share the

same name, the meaning of an identifier at a given point in the program text may change during

program execution. Compare Overloading.

Repeated Inheritance - A special case of multiple inheritance in which a class has ancestors through

more than one route. For example, if class A inherits properties from classes B and C, and classes B

and C each inherit properties from 0, the relationship between A and D is one of repeated inheritance.

Selector - An operation that returns information on an object's state. Contrast Constructor, Destruc!or,

and Iterator.

Page 38: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Sirnula - A programmrng language ~ntroducea rn 1967. scrnetlrnes cailed Simula-67. Sirnula Introauceg

the class teature of Object Oriented languages.

Smalltalk - An Object Oriented language and environment developed at the Xerox Palo Alto Research

Center in the 1970s.

Static Binding - Also known as Early Binding. A language feature In which any ambiguities in the

meaning of an identifier are resolved at compiie time. For example, the compiler might bind a given

invocation of a procedure to one of several identically named procedures based on the number and type

of arguments. See overloading and contrast dynamic binding.

Strong Typlng - The enforcement of the type of a variable or the class of an object, which prevents

variables of different types from being interc~anged or, at most, allows them to be interchanged only in

very restricted ways. For example, in a strongly typed language, it might be a syntax error to attempt

integer arithmetic on pointers. Contrast Weak Typing.

Suppller - A class that provides services which other classes can use. Contrast Client.

Weak Typing - The nonenforcement of the type of a variable or the class of an object, which allows

variables of different types to be interchanged and combined in many ways. For example, in a weakly

typed language, one might be able to add integers to boolean variables or perform integer arithmetic on

pointers. Contrast Strong Typing.

Page 39: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Appendix B.

ANNOTATED BIBLIOGRAPHY 168 Brooks. Frederick P., Jr; THE MMHlCAL MAN-MONTH ESSAYS ON SOFTWARE

ENGi;4EE.?ING. 206 p. Avail. from Addison-Wesley, Eenjarnin/Cumm~ngs Publ. Co., Inc.. Jacob Way, Reading, MA 01867. Order No. ISBN 0-201-00650-2.

Key words: An eminent computer expert, Brooks has written a collection of thought- provoking essays on the management of computer programming projects. These essays draw from his own experience as project manager for the IBM System/360 and for 03360, its operating system.

In the essays, the author blends facts on software engineering with his own personal opinions and the opinions of others involved in building complex computer systems. He not only gives the reader the benefit of the lessons he has learned from the OS/360 experience. but he writes about them in an extremely readable and enterlaining way.

Althougn formulated as separate essays, the book expresses a central argument. Erooks believes that large programming projects suffer management problems different in kind from small ones due to the division of labor. For this reason he feels that the crdical need is for conceptual integr~ty of the product itself, and in essay form he explores both the difficulties of achieving this unity and the methods for achieving it.

2305 Parnas, David L.; "ON ME CRITERIA TO BE USED IN DECOMPOSING SYSTEMS INTO MODULES," In Tutorial on Software Design Techniques. Apr 1980. pp. 220-225. Avail. from IEEE Service Center, 445 Hoes Lane, Piscataway, NJ 08854. Order No. EHO 161-0.

Key words:

This paper discusses modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time. The effectiveness of a "rnodulariiation" is dependent upon the criteria used in dividing the system into modules. A system design problem is presented, and both a conventional and unconventional decomposition are described. It is shown that the unconventional decomposition have distinct advantages for the soak outlined. The criteria used in arriving at the deconposdions are discussed. The unconventional decomposition, if implemented with the conventional assumption that a module consists of one or more subroutines. will be less efficient in most cases. An alternative approach to implementation wnich does not have this effect IS sketched.

2341 U.S. Dept. of Defense; REFEilENCE MANUAL FOR THE ADA PROGRAMMING LANGUAGE. Repon No. ANSIIMIL-STD-1815A. 330 p. Avail. from Naval Publications and Fonns Center, 5801 Tabor Avenue, Philadelphia, PA 19120.

Key words:

This standard specdies the form and meaning of program units written in Ada'. Its purpose is to promote the portability of Ada programs to a variety of data processing systems. This standard specrfies the form of a program unit written in Ada; the effect of translating and executing such a program unit; the manner in which program units may be combined to form Ada programs; the predefined program units that a mnforming implemerdation must supply; the permissible variations within the standard, and the manner in which they must be specified; those violations of the standard that a conforming implementation is required to detect, and the effect of attempting to translate or execute a program unit containing such violations, and those violations of the standard that a conforming implementation is not required to detect. ('Ada is a trademark

Page 40: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

cf the U.S. Depanmen of Defense].

2946 2oehrn. Barry W.: SOI-TVJARE E:VGINEE.qING ECONOMICS. X i p. Avarl. frcm Prent~ce- Hall, Rt. 59 at Brook Hill Drive. West Nyack, NY 109%. Order No. ISBN 0-13-822122-7.

Key words:

This textbook's objective is to provide a basis for a software engineering economics caurse. The book discusses, in detail, economc mnsiderat~ons for the development and maintenance of computer software. As background, the author provides two case studies involving the development of two new systems. Then, the goals of software engineering are described. The basic thrust of the text then is to present techniques. tools, and models for project planning. cost estimation, decision analysis, risk analysis. and other management perspectives. Some of the approaches and techniques discussed incfude the following: the Goal-Oriented Approach to Life-cycle Software, the Constructive Cost Model, the prototype approxh, Rayleigh Distributions, Bayes' Formula. and the Value-of-Information Approach. The book ends with a chapter devoted to suggestions for improving productivity on software projects.

5326 Cox, Brad J.; "THE MESSAGUOBJECT PROGRAMMING MODEL," In Sonfair Conference on Software Development Tools, Tech & All Proceedings (1983). Jul 1983. pp. 51-60. Avail. from IEEE Service Center. 445 Hoes Lane. Piscataway, NJ 08854. Order No. 478.

Key words:

This is a tutorial on the programming style used in Smalltalk 80, and a personal history of the reasoning that has led the author to pursue this style within conventional languages like C. It addresses the questions "What is message/object programming?", "How is it different from conventional programming?", and "What can be gained by adopting it?". (author)

5507 Freeman, Peter; "REUSABLE S O W A R E ENGINEERING: CONCEPTS AND RESEARCH DIRECTIONS," In Tutorial on Software Design Techniques. Aug 1983. pp. 63-78. Avail. from IEEE Service Center, 445 Hoes Lane, Piscataway, NJ 08854. Order No. 514.

Key words:

The objective of reusable software engineering is to enable the broad reuse of all types of information found in development situations. This paper defines classes of information to be reused, discusses the processes and conditions surrounding reuse, and suggests research tasks that will improve our ability to practice reuse. (author)

5665 Sodano. Nancy M.: Szulewski, Paul A.: "DESIGN METRICS AND ADA," In Washington Ada Symposium (Mar. 1984). Mar 1984. ~ p . 105-1 14. Avail. from ACM, Washingon Chapter, P. 0. Box 6228. Washington, DC 20015.

Key words:

This paper reports on work done in investigating the use of Ada as a Program Design Language (PDL), and the evaluation of Ada designs with a design metric. The first section provides background and descr~bes the context for the work. The second section defines the Halstead metrics and discusses their application during the design phase. The third section discusses using Ada as a Program Design Language. The fourth section presents an example which illustrates the usefulness of the design metrics on the Ada PDL design medium. Finally, the conclusions of this work are presented. (author)

5676 Jackson, M.A.: PRINCIPLES OF PROGRAM DESIGN. 299 p. Avail. from Academic Press Inc.. 1 1 1 Fifth Avenue, New York, NY 10003. Order No. ISBN 0-1 2-379050-6. Key words:

This book describes how to design structured programs such that the resulting programs will be easy to understand, easy to maintain, free from logic errors, and st~ctured like the problem. The methodobgy advocated is based on the principle that program structures should be based on data structures. This methodology has three steps. First, one should consider the data

Page 41: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

siru~cres. &filch ;';III rkzn ce usea !s r c r n 2 ------ . a r e . lecona. cne I ls iS ;Fa - . axecutaole oceratlons Wmed to czrry cur the tasK. ::rd, one allocates each operatlon to a camponent ot the proqam SiNcture. The qual~ty or t h e worn aone wnen perform~ng these steos determines the quality cf the prcgrams prcducw. The methodology IS illustrated by numerous examcte CCBOL programs.

5682 Cax, erad J.; "MESSAGS'OBJECT PROGZA~V~MING: A N EVOLUTIONARY CHANGE IN PROGRAMMING TECHNOLOGY." In IEEE 9ftware. : ; I ) : Jan 1984. pp. 50-61.

Key words: This article is a tutorial on the object-oriented programming style used in Smalltalk-80. The author discusses messagelobject programming, how rt differs from conventional programming, and how it can be achieved through software evoluticn as opposed to revolution. The author concludes that Smalltalk's dynamically bound message!object paradigm solves several key problems that can prevent programmers from building highly malleable, reusable software.

5692 Sincovec. Richard F.; Wiener, Richard S.; "MODULAR SOFTWARE CONSTRUCTION AND OBJECT-ORIENTED DESIGN USING ADA," In Journal of Pascal. Ada & Madula 2. 3(2): Mar 1984. pp. 29-34.

Key words:

This paper descr~bes a software development methodology which refers to as modular software construction and objectoriented design. This poweriul and modern approach to software development has recently gained tremendous currency with the advent of software engineering languages such as Ada and Modula-2. In this paper focus is made on the use of Ada in conjunction with this methodology. (author)

5701 S i i v e c , Richard F.; Wiener, Richard S.; "MODULA SOFlWARE CONSTRUCTION AND OBJECT-ORIENTED DESIGN USING MODULA-2," In Journal of Pascal. Ada & Madula 2. 3(3): May 1984. pp. 41 -47.

Key words:

In the MarchfApril 1984 issue of this journal discussed is object-oriented design using Ada (see 'Modula Software Construction and Object-Oriented Design Using Ada"). In this article this theme is continued but focus shifts to Modula-2. The steps presented in the MarcNApril article for performing object-oriented design are briefly summarized. This article illustrates the process of objectonented design with a case study. The subject of the case study is a tic-tac-toe game. human vs. computer because its design IS complex enough to warrant objectoriented design. (author)

5971 "AN OVERVIEW OF SIGNAL REPRESENTATIONS IN SIGNAL PROCESSING LANGUAGES." pp. 69-73. Avail. from Defense Technical Information Center, Cameron Station, Alexandria. VA 22304-6145. Order No. AD-PO02 608.

Key words:

This paper reviews three approaches to the representation of discrete-time signals as objects in programs. The first two representations, arrays and streams, are widely used in contemporary signal processing programming. The third representation was introduced in the recently- proposed Signal Representation Language (SRL). SRL signals are abstract objects whose properties are explicitly designed to reflect those of the represented signals. Arrays, Streams, and SRL signal objects are discussed in the context of a set of signal representation criteria which are motivated by elementary observations about the mathematics of discrete-time signals. The emphasis in the paper is on the semantics of signal representation rather than on issues of time- or space-efficiency. (author)

6004 Horow~tz. E!Iis: FUNDAMENTALS OF PROGRAMMING LANGUAGES. 446 p. Avail. from Computer Science Press. Inc., 11 Tatt Coun. Cept. C:083, Rockv~lle. MD 20850. Order NO. ISBN 0-881 75-004-2.

Page 42: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Key words:

This wok takes a :undamentally different point of vrew from tracitional books on programmrcg languages. The best poss~ble way to study and understand today's programming languages IS by focus~ng on a few essential concepts. These concepts form the outline for this book and incluae sucn top~cs as variables, expressions, statements, typing scope, procedures, data types. exception handling, and concurrency. by understanding what these concepts are and how they are realized in different programming languages, one arrives at a level of comprehension f t r greater than one gets by wr~ting some programs in a few languages. Moreover, knowledge of these concepts provides a framework for understanding future language designs. Numerous examples from Ada, Pascal, LISP, and other programming languages are included. This book is a study of the complexities of programming languages. (author)

6035 Kehler, Thomas P.; Kunz. John C.; Williams, Michael D.: "APPLICATIONS DEVELOPMENT USING A HYBRID Al DEVELOPMENT SYSTEM," In A1 Magazine. 5(3): Sep 1984. pp. 41-54.

Key words:

This article describes building applications programs in a hybrid Artificial Intelligence (Al) tool environment. Traditional Al systems developments have emphasized a single methodology, such as frames, rules, or logic programming, as a methodology that is natural, efficient. and uniform. The applications developed in this experiment suggest that naturalness, efficiency and flexibildy are all increased by trading uniformity for the power that is provided by a small set of appropriate programming and representation tools. The tools used are based on five major Al methodologies: frame-based knowledge representation with inheritance, rule-based reasoning, LISP, interactive graphics, and active values. Object-oriented computing provides a principle for unifying these different methodobgies within a single system. (author)

6043 Jamsa. Kris A.; "OBJECT ORIENTED DESIGN VS STRUCTURED DESIGN -- A STUDENTS PERSPECTIVE," In Software Engineering Notes (ACM SIGSOFT). 9(1): Jan 1984. pp. 43-49.

Key words: This paper discusses the advantages that structured design has over object-oriented design. The author favors structured design and presents a hierarchically organized collection of processes in order to emphasize the advantages of a graphic approach to design. The steps involved in object-oriented design, as well as, an illustration of Ada packages are presented. The author suggests that object oriented design places a burden on the designer at the interface stage due to its graphic shortcomings.

6362 Futatsugi, Kokichi: HIERARCHICAL SORWARE DEVELOPMENT IN HISP. pp. 151-174. Avail. from North Holland Publishing Company. Order No. ISSN 01 67-50036.

Key words:

Software (specification. program, etc.) development is simply modeled as the incremental construction of a set of hierarchically structured cluster of operators. This paper presents the language HISP, which embodies this modeling. In this language, each software module (description unit) is the result of applying one of five module building operations to the already existing modules. This basic feature of the language makes it possible to write inherently hierarchical software. Using this property, many mechanisms for topdown software development are easily realized. Parameterized types, in particular, are available in the language by using these specific operations for module building. In this paper, the HlSP language is introduced informally and the hierarchical software development in HlSP is explained by use of simple examples. The present status of the HlSP implementation is also sketched. (author)

6393 Weber, Herbert: "THE DISTRIBUTED DEVELOPMENT SYSTEM - A MONOLITHIC SOFlWARE DEVELOPMENT ENVIRONMENT," In Software Engineering Notes (ACM SIGSOn). 9(S): OCt 1984. pp. 43-72.

Key words:

Page 43: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

This paper contains a very ccarse cescr:zt:on ct a new rvpe cr satware ceveloornenr environment. It suppons uniform scecif~ca;ions ana renaers nself on the basis of th~s un:iorK spec~ficat~on techn~que Icto a monol~thic environment. The environment IS comDosea of a number of support units. Some of them are meant to su~port users w~ th the a ~ d of expen knowledge maintained in those support units. All support un~ts are interconnected in a tailorea communication network that supports standard communrcation services. The paper presents work in progress. The descr~bed features of the Distributed Development System are, therefore. subject to changes. (author)

6471 Potubcansky, C.A.; PROCEEDINGS O F THE 2ND AFSC AVIONICS STANDARDIZ4TION CONFEilENCE. VOLUME 8. TUTORIAL: MIL-STD-1815ADA HIGH ORDER LANGUAGE. Repon No. ASD(ENA)-TR-82-5031. 170 p. Nov 1982. Avail. from Defense Technical Information Center, Cameron Station, Alexandria, VA 22304-61 45. Order No. AD-A142 783.

Key words:

This is volume 8 from a collection of nine volumes of unclassified papers to be distributed to the attendees of the Second Air Force Systems Command (AFSC) Avionics Standardization Conference at the Convention Center, Dayton, Ohio. The scope of the Conference includes the complete range of DOD approved embedded computer hardwarelsoftware and related interface standards as well as standard subsystems used within the Tri-service community and NATO. The theme of the conference is "Rational Standardization". Lessons learned as well as the pros and cons of standardization are highlighted. This volume is a tutorial that discusses the development history, design, and implementation of MIL-STD-1815 (the Ada programming language). The syntax and semantics of the language will be covered in overview fashion wlth emphasis on data typing and the use of Ada as an object-oriented design language. These view graphs are usable as the curriculum for an introductory class on ,the Ada language. (author)

6622 Novak, Gordon S., Jr.; "KNOWLEDGE-EASED PROGRAMMING USING ABSTRACT DATA NPES," In Proceedings of the National Conference on Artificial Intelligence. Aug 1983. pp. 288-291. Sponsored by National Science Foundation, Washington, DC 20550. GranUContract No. SED-7912803. Sponsored by Defense Advanced Research Projects Agency, 1400 Wilson Blvd., Arlington VA 22209. GrantfContract No. MDA-903-80-C-007.

Key words:

Features of the GLISP programming system that support knowledge-based programming are described. These include compile-time expansion of object-centered programs, interpretation of messages and operations relative to data type, inheritance of properties and behavior from multiple superclasses. type inference and propagation, conditional compliation, symbolic optimization of compiled code, instantiation of genenc programs for particular data types. combination of partial algorithms from separate sources, knowledge-based inspection and editing of data, menu-driven interactive programming, and transportability between Lisp dialects and machines. GLISP is fully implemented for the major dialects of Lisp and is available over the ARPANET. (author)

6677 Boehm-Davis, D.A.; Ross. L.S.; APPROACHES TO STRUCTURING THE SOFTWARE DEVELOPMENT PROCESS. Report No. GEC/o lSf r~-84-~1 V-I. 33 p. Sponsored by Office of Naval Research, 800 North Quincy St.. Arlington, VA 22217. GranUContract No. N00014-83- C-0574. Avail. from Defense Technical Information Center, Cameron Station, Alexandria, VA 22304-61 45. Order No. AD-A1 47 694. Key words:

This research examined program design methodologies, which claim to improve the design process by providing strategies to programmers for structuring solutions to computer problems. In this experiment, professional programmers were provided with the specifications for each of three non-trivial problems and asked to produce pseudocode for each specification according to the principles of a particular design methodology. The measures collected were the time to design and code, percent complete, and complexity, as measured by several metrics. These

Page 44: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

data were used to develoo profiles ~t tr.2 solutions Frocucea cy a~fterent methoaologles and to develop comparisons berween tr,e cetnoacQgles. The results suggest that there are differences among the varlous metnoacicgles. These ajfferences are discussed in light of the~r impact on the comprehensibility, reliaoility, and rnalntainability of the programs produced. (author)

6726 Kornfeld, William A.; "EQUALITY FOR PROLOG." In lnrernarronal Joint Conference on A1 Inc.. 1983- Karlsmke. W. Germ. Aug 1983. ;?. 514-519.

Key words:

The language Prolog has been extended by allowing the inclusion of assertions about equality. When a unification of two terms that do not unify syntactically is attempted, an equality theorem may be used to prove the two terms equal. If it is possible to prove that the two terms are equal the unification succeeds with the variable bindings introduced by the equality proof. It is shown that this mechansm significantry improves the power of Prolog. Sophisticated data abstraction with all the advantages of object-oriented programmrng is available. Techniques for passing partially instantiated data are described that extends the "multiuse" capabilities of the language, improve the efficiency of some programs, and allow the implementation of arithmetic relations that are both general and efficient. The modifications to standard Prolog are simple and straightforward and in addition the computational overhead for the extra linguistic power is not significant. Equality theorems will probably play an important role in future logic programming systems. (author)

6876 Borger, Mark W.; "ADA SOFTWARE CESlGN ISSUES," In Journal of Pascal, Ada & Modula 2. 4(2): Mar 1985. pp. 7-14. Sponsored by Naval Ocean Systems Center, San Diego, CA 92152-5000. GranVContract No. N66001-82-C-0440.

Key words:

This article presents a discussion of specific experiences using Ada throughout the design of an Ada Programming Support Environment (APSE) software utility, namely the APSE Interactive Monitor (AIM). The AIM was designed using an object-oriented methodology with Ada as the Program Design Language (POL). The intent of this article is to raise and discuss particular issues related to the use of the Ada language for both software design and development. It is not the intent to provide the reader with a tutorial on object-oriented design or the AIM program, nor to provide an introduction to the Ada language. (author)

7041 Sincovec, Richard F; Wiener, Richard S.; "TWO APPROACHES TO IMPLEMENTING GENERIC DATA STRUCTURES IN MODULA-2." In ACM SIGPLAN Notices. 20(6): Jun 1985. pp. 56-64.

Key words:

In this paper the authors present two approaches to implementing generic data structures in Modula-2. Both methods are illustrated with a generic search tree. The actual code as well as advantages and disadvantages are presented for both approaches.

7100 Maclennan. Bruce J.; A SIMPLE SOITWARE ENVIRONMENT BASED ON OSJECTS AND RELATIONS. Report No. NPS52-85005. 32 p. Apr 1985. Sponsored by Office of Naval Research, 800 North Quincy St.. Arlington, VA 22217. GranVContract No. N00014-84-WR- 24087. Sponsored by Office of Naval Research, 800 North Quincy St., Arlington, VA 2221 7. GrantIContract No. N00014-85-WR-24057. Avail. from Defense Technical Information Center, Cameron Station, Alexandria, VA 22304-6145. Order No. AD-A155 704.

Key words:

This paper presents a simple programming system based on a clear separation of value- oriented programming and object-oriented programming. The valueariented component is a conventional functional programming language. The object-oriented component is based on a model of objects and values connected by relations, and on production system-like rules that determine the alteration of these relations through time. It is shown that these few basic ideas

Page 45: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Clthoff, Walter: "AN OVE3VIEW OF F.tOG?ASCrl\L.* In AC:J SIG?LAN Not~ces. 20(10): C,? 1985. pp. 60-71. Sponsored by Federal Minisir/ oi Researcn and Technology, Federal Repuolic of Germany. GranuContract ?do. IT 8302253.

Key words:

In this paper the objea criented programming language ModPascal and its programming environment are introaucea. ModPascat extends Standard Pascal by constntas that have shown usefulness in abstract data type theory such as module types, enrichments, instantiations and instantiated types. Also introduced is ModPascal editing, ccrnpliing, and execution us~ng the ModPascal Programrn~ng System, which includes a multi-user data base of ModPascal objects.

7138 Rosenthal. Don; "ADDING META RULES TO OPS5: A PROPOSED EXTENSION," In ACM SIGPLAN Notices. 20(10): Oct 1985. pp. 79-86.

Key words:

In this paper, potential problems caused by the lack of explicit control constructs and the segregation of three memory areas in OPSS were presented. Two solutions which allow such control constructs were presented. Both soiutions implemem meta-rules, the first by adding two constructs to the language. the Second by allowing user-written conflict resolution strategies.

7251 Agusa. Kiyoshi: Ohno. Yutaka: Tarumi. Hiroyuki; "ACQUAINTANCUINSTANCE VARIABLE MODEL FOR OBJECT-ORIENTED PROGRAMMING." In COMPSAC 7985. Proceedings. Oct 1985. pp. 69-73. Avail. from IEEE Computer Society, 10662 Los Vaqueros Circle, Los Alamitos, CA 90720. Order No. 0730-3157/85/000010069.

Key words: This paper proposes a new model of object, called acquaintance/instance variable model. It reduces the complexity of object oriented representation of systems. This model gives a clear definition of an object's state, and definitions of effect and dependence between objects. The authors also give the basic concept of class-base. Class-base is a kind of database, which collects character descriptions of all classes programmers can use. A character description is based on the acquaintancelinstance variable model. It describes internal and external features of a class. Internal features are related to the state of an object, whereas external features are related to other co-operative objects. With a Class-base, one can easily find classes and messages. (author)

7335 Agha. Hul Abdulnabi: ACTORS: A MODEL OF CCNCURRENT COMPUTATION IN DISTRIBUTED SYSTEMS. Report No. 844. 198 p. Jun 1985. Sponsored by Defense Advanced Research Projects Agency, 1400 Wilson Blvd., Arlington VA 22209. GrantfContract No. N00014-80-C-0505. Avail. from Defense Technical Information Center, Cameron Station, Alexandria, VA 22304-61 45. Order No. AD-A1 57 91 7.

Key words:

A foundational m d e l of concurrency is developed in this thesis. It examines issues in the design of parallel systems and shows why the acror model is suitable for exploring large-scale parallelism. Concurrency in actors is constrained only by the availability of hardware resources and by the logical dependence inherent in the computation. Unlike dataflow and functional programming, however, actors are dynamically reconfigurable and can model shared resources with changing local state. Concurrency is spawned in actors using asynchronous message- passing pipelining, and the dynamic creation of actors. The author defines an abstract actor machine and provides a minimal programming language for it. A more expressive language, which includes higher level constructs such as delayed and eager evaluation, can be defined in t e r n of the primitives. Examples are given to illustrate the ease with which concurrent data and control stmctures can be programmed. This thesis deals with some central issues in distributed computing. Zpecifically, problems of divergence and deadlock are addressed.

Page 46: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

(author]

7465 Abbott. Russell J.: A N INTEGZATE3 APPROACH TO S O W A R E DEVELOPMENT. 234 p. Avail. from John Wiley & Sons. Ice.. 1 Wiley Drive, Attn: Order Dept.. Summerset. NJ 08873. Order No. ISBN 0-471 -826464.

Key words:

This book is intended as a text in software englneenng courses and as a day-to-day working reference for practicing software engineers. It p::sents an ..:regrated framework for software development that captures technical information rxtded to sl;::essfully develop and maintain a software system. This framework is presented in terms of a rationale for and outline of certain documents produced over the course of the life cycle. These documents include requirements documents, specification documents, and design documents. In addition, an appendix presents an easy-to-understand speufication methodology that combines ideas from the predicate calculus and relational database design.

7554 Pitt, D. H.; Schuman. S. A.; FORMAL TECHNIQUES FOR SPECIFICAllON AND VALIDATION OF TACTICAL SYSTEMS. Report No. CADD-8606-0203. 221 p. Jun 1987. Sponsored by Army Communication and Electronics Command (CECOM), Ft. Monmouth, NJ 07103. GranUContract No. DAAK80-81-C-0072. Avail. from Defense Technical Information Center, Cameron Station, Alexandria, VA 22304-6145. Order No. AD-A171 671.

Key words:

This document contains three appendices. The tint appendix, "Object-Oriented Subsystem Specification." introduces a rigorous, mathematically based notation for supporting the earliest phases of the software design process. The second appendix, "An Experiment with an Approach to Formal Specifications." describes an experiment involving a new approach to system specifications. The process of developing a formal specification from an informally specified distributed information system concept forms the basis of the experiment. The last appendix, "Papers on Z," presents a concise summary of the mathematical sublanguage of the specification notation Z. (author)

7558 Agha, Gul; Hewitt, Carl: CONCURRENT PROGRAMMING USING ACTORS: EXPLOITING LARGE-SCALE PARALLELISM. Report No. Al865. 21 p. Oct 1985. Sponsored by Defense Advanced Research Projects Agency, 1400 Wilson Elvd., Arlington VA 22209. GrantJContract No. N0014-80-C-0505. Avail. from Defense Technical Information Center, Cameron Station, Alexandria, VA 22304-61 45. Order No. AD-A1 62 422.

Key words:

The authors argue that the ability to model shared objects w~th changing local states, dynamic recontigurability, and inherent parallelism are desirable properties of any model of concurrency. The actor model addresses these issues in a uniform framework. This paper briefly describes the concurrent programming language Act3 and the principles that have guided its development. Act3 advances the state of the art in programming languages by combining the advantages of object-oriented programming with those of functional programming. The authors also discuss considerations relevant to the large-scale parallelism in the context of open systems, and define an abstract model which establishes the equivalence of systems defined by actor programs. (author)

7593 Meyer. Bertrand; "EIFFEL: PROGRAMMING FOR REUSABlLlN AND EXTENDABILITY." In ACM SIGPLAN Notices. 22(2): Feb 1987. pp. 85-94.

Key words:

E i e l is a language and environment intended for the design and implementation of quality software in production environments. The language is based on the principles of objectoriented design, augmented by features enhancing correctness. extendibility and efficiency; the environment includes a basic class library and tools for such tasks as automatic config~ration

. management, documentation and debugging. Beyond the language and environment aspect,

Page 47: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Eiffel prcmotes a methoa of scrrtfare cns:rdc:;on c-4 c2rnDinatlon ot reusaole and flexrble modules. Tke present ncte is a general 1r::cauc::cn to Eiifel. !.lore detailed information IS

ava~lable. (author)

7625 Staff Author: U'CINT PROGZAM ON RAP10 FFIOTOVPING. EAPIER (RAPID PROTOWPING TO INVESTlGATE END-USE3 REOU;REMENTS). 297 p. Mar 1686. Sponsored by Office of Naval Research, 800 North Quincy St.. Arlington, VA 22217. GranUContract No. N00014-85-C-G666. Avail. from Defense Technical lnformat~on Center. Cameron Station. Alexandria. VA 22304-6145. Order No. AD-A166 353.

Key words:

This report presents the resuks of work performed between July 1, 1985 and January 31. 1986 with the Office of Naval Research and Honeywell Computer Sciences Center. These results. and results obtained in the next several years. will be applied by the RAPIER (Rapid Prototyping to Investigate Enduser Requirements) project in developing a software engineering environment to support prototyping for investigating end-user requirements. The environment supports a prototyping methodobgy, by which is meant a collection of techniques. a prescribed order for applying the techniques, reasons for the techniques, and their order of application. The RAPIER methodobgy will eventually contain techniques for each phase in the prototyping life cycle and for the transitions between phases. The RAPIER environment will contain software tools that support, encourage. and/or enforce these procedures and techniques. The RAPIER team develops new technology only when there is none available in either the commercial or the research marketplace. RAPIER is supported in part by the Department of Defense STARS Initiative's Application Area whose main t h ~ s t is software reusability. (author)

7631 Osterweil, Leon J.; S O M A R E PROCESS lNTERPHFTATlON AND SOITWARE ENVIRONMENTS. Report No. DOElERl13283-5. 58 p. Apr 1986. Sponsored by National Science Foundation. Washington, DC 20550. GranUContract No. DCR-8403341. Sponsored by Department of Energy. GranUContract No. DE-FG02-84ER13283. Avail. from National Technical Information Service 5285 Port Royal Rd. Springfield. VA 221 61. Order No. DEB60 1 088 1.

Key words:

This paper suggests that a reasonable focus of software engineering is the notion of a "process-object"--namely an object which has been created by a development process. and which is itself a process. It then follows that the essence of software engineering is the study of effective ways of developing process-objects and of maintaining their effectiveness in the face of the need to make a wide variety of changes. These changes might entail alteration of the products produced by the process-object or alterat~on of the process-object itself. The main features of the insights and suggestions presented here revolve around the notion that process- objects must be defined in a precise, powerful, and rigorous formalism, and that once this has been done, the key activities of development, evaluation, and maintenance of both process- objects themselves. and their constituent parts alike. can and should be specified and implemented algorithmically. The suggested focus on process-objects draws a much-needed sharp line between software product development, evaluation and maintenance and software process development. evaluation and maintenance. This serves to improve one's understanding of both and to help to better understand the connections between such issues as maintenance, evaluation, reuse. and modularity. (author)

7642 Meyer, Bertrand: "AEUSABILITI: THE CASE FOR OBJECT-ORIENTED DESIGN," In lEEE Software. 4(2): Mar 1987. pp. 50-W.

Key words: Why isn't software more like hardware? Why must every new development start from scratch? This article addresses a fundamental goal of software engineering, reusability, and a companion requirement, extendibility (the ease with which software can be modified to reflect changes in ~ p e ~ i f i ~ a t i ~ n ~ ) . The authors main thesis is that object-oriented design is the most promising

Page 48: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

iechnrque now known for anarnrng the goals cf enena~o~i;rv and reusaorlity

7643 Srooks, Frederrck P.. Jr: "NO SILVER BULLET: ESSENCE AND ACCIDENTS OF SOFIWARE ENGINEERING." In Compurer. 20(4): Apr 1987. p?. 10-1 9.

Key words: In this article, the author analyzes the nature of software engineerrng and assesses the technical developments that promise iqrovements in productivity, reliability, and simplicity. The author examines the inherent properties of modern software systems (complexity, conformrty, changeability, and invisibility) and the promises and limrtatrons of current software engineering research developments (Ada, object-onented programming, artificial intelligence. expert systems, and graphical programming).

7720 Bradshaw, Susan M.: Byme, William E.; Cronin, Neil A.; McDevitt. David E.; STRUCTURED HIERARCHICAL ADA PRESENTATION USlNG PICTOGRAPHS (SHARP) DEFINITION. APPLlCAnON AND AUTOMATION. Repon No. ESD-TR-86-283. 348 p. Sep 1986. Sponsored by Air Force Electronic Systems Division (AFSC), Hanscom AFB, MA 01731. Grant/Contract No. F19628-84-00011. Avail. from Defense Technical Information Center, Cameron Station, Alexandria, VA 22304-61 45. Order No. AD-A1 76 990. Key words: This paper presents a methodology for representing a large and complex computer program using graphics and Ada-based annotated pseudo code. It descnbes the application of the graphical representation, referred to a s Stnrctured Hierarchical Ada Representation using Pictographs (SHARP), in the design and test of computer programs. and presents a concept of operation for generating the graphics in a computer aided manner. The resulting tool is considered important. since design and test costs account for over 60 percent of software development costs. The tool also applies to software maintenance, which typically exceeds the original development cost by more than 50 percent. (author)

7728 Baker, Louis; "ADA AND AI JOIN FORCES," In A1 Expert. 2(4): Apr 1987. pp. 38-43.

Key words: While LISP is thought to be the language of choice for the development of artificial intelligence (At) systems. there are reasons for contemplating the use of a general-purpose procedural programming language such as Ada for the production version of an A1 system. For example, algorithms can be expressed in Ada and readily translated to other popular languages. The article first covers the requisite data structures and their implementation. A unification algorithm taken from a backward-chaining expert system is used to illustrate a~propriate coding techniques. The article also briefly reviews how forward-chaining systems, augmented transrtion networks, frames, and object-oriented programming fit into implementation by general-purpose languages and by Ada. (author)

7739 Bebff, Bnrno; Hartand, David M.; "A PERSISTENT OBJECT STORE WITH AN INTEGRATED GARBAGE COLLECTOR," In ACM SIGPLAN Notices. 22(4): Apr 1987. pp. 70-79. Key words: This paper describes OBJUCT, a single-level persistent storage system designed for the RU(URSIV architecture. It will be shown that OBJEKT can be microcoded to implement 'objectsa efficiently, and that data integrity can be guaranteed by provision of an object oriented instruction set. Particular attention will be paid to its facilities for type and range checking, to its object paging strategy and to ways to enancing parallelism during garbage collection. (author)

7740 Methfessel, Rand: "IMPLEMENTING AN ACCESS AND OBJECT ORIENTED PARADIGM IN A LANGUAGE THAT SUPPORTS NEITHER," In ACM SIGPLAN Notices. 22(4): Apr 1987. pp. 83-93. Key words:

Page 49: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

This anlde outlines some exoerlences in .-c:emenring an oc:ect orlenred and access or:enrecl paraaigm ~n "C". These exoerlences cr;cj:naiea rn a grapncs .uor%station aevelooment projec! whch requlred graph= elements. men czuld appear In muttlple wlndows, to respoca ~mmedlately to changes In values ~n a user sefinea database. The number and type of graph~cs requlrlng updates, based on a change !:, a qven aatabase value, varled dynam~cally depenal~g on whlch panlcular dlsplays an operator rad ac:lve at any given tlme. An object orlentecl paradigm has the values of variables cnance as a side elfect of an object processing a message SeM to d . The access or~ented paraaqrn nas a message sent as a s~de effect of an object vanable changng . (author)

7763 Lovejoy, Alan: "EXTENSIONS TO MODULA-2," In Journal of Pascal, Ada & Modula 2. 6(2): Apr 1987. pp. 20-44.

Key words:

This article first briefly states some principles of language design. It then proposes some extensions to Modula-2. Each extension is illustrated by means of an example. These extensions are meant to correct some defects and limitations in current implementations, support functional and object-oriented prosramming styles, and give the language user greater control and power.

7809 Carey, Michael J.; Dewitt. David J.; Fraruc. Daniel: Graefe. Goetz: Muralikrishna. M.: Richardson. Joel E.; Shekita, Eugene J.; THE ARCHITECTURE OF M E EXODUS EXTENSISLE DBMS: A PRELIMINARY REFORT. Repon No. C3NF-8609148-1. 36 p. May 1986. Sponsored by National Science Foundation. Washington. DC 20550. GrantIContract No. MCS82-01870. Sponsored by National Science Foundation, Washington, DC 20550. GrantIContract No. DCR-8402818. Sponsored by Defense Advanced Research Projects Agency, 1400 Wilson Blvd., Arlington VA 22209. GranUContract No. N00014-85-K-0788. Sponsored by Department of Energy. Gramcontract No. DE-AC02-81 ER10920. Avail. from National Technical Information Service 5285 Port Royal Rd. Springfield. VA 22161. Order No. DEB601 5438.

Key words:

With non-traditional application areas such as engineering design, itnagelvoice data management, scientific/statistical applications, and artificial intelligence systems all clamoring for ways to store and efficiently process larger and larger volumes of data. it is clear that traditional database technology has been pushed to %s limits. It also seems clear that no single database system wiil be capable of simultaneously meeting the functionality and performance requirements of such a diverse set of applications. This paper describes the preliminary design of an Extens~ble Object-oriented Database System (EXODUS), an extensible database system that will facilitate the fast development of high-performance, application-specific database systems. EXODUS provides certain kernel facilities, including a versatile storage manager and a type manager. In addition, it provides an architectural framework for building application- specific database systems, tools to partially automate the generation of such systems, and libraries of software components (e.g., access methods) that are likely to be useful for many application domains. (author)

7864 Boudreaux. J. C.; OED: OBJECT-ORIENTED EDITOR. Report No. NBSlR 87-3530. 17 p. Mar 1987. Avail. from National Technical Icformation Service 5285 Port Royal Rd. Springfield, VA 221 61. Order No. PB87-173910.

Key words:

In this paper, the author describes an object-onented editor, called OED, which is defined using the FranzLlSP programming language. Though editors are usually associated with sets of functions to manipulate text-files, the author uses the term to characterize a family of LISP

Page 50: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

funct~ons wnlcn create ana moalfy tcrmal represenra;ions or oblecrs in AMPLEiCore. (author]

7882 Sraaten, Alan J.; A GRAPHICS EIVVIRONMENT SiIPPORTING THE RAPID PROTOTYPING OF PICTORIAL COCKPIT DISPLAYS. Report No. AFITIGCSiMAI86D-1. 168 p. Dec 1986. Avail. from Defense Techn~cal lnformat~on Center, Cameron Station, Alexandria. VA 22304- 6145. Order No. AD-A178 636.

Key words:

Attention was focused on the interactive C O ~ S ~ ~ U G ~ O ~ of pictorial type cockpit displays from libraries of cockpit displays and symbology. Implementation was based on an object-oriented programming paradigm. This approach provided a natural and consistent means of mapping abstract design specifications into functional sottware. Implementation was supported by an object-oriented extension to the 'C' programming language. Although this investigation addressed a specific application, the resulting graphic environment is applicable to other areas requiring the rapid prototyping of pictorial displays. (author)

7885 "PROCEEDINGS OF M E 5TH ANNUAL NATIONAL CONFERENCE ON ADA TECHNOLOGY HELD IN ARLINGTON, VIRGINIA ON MARCH 16-19, 1987," 51 0 p. Avail. from Defense Technical lnformation Center. Cameron Station, Alexandria, VA 22304-6145. Order No. AD- A178 690.

Key words:

The contents of this Ada Technology Proceedings include papers on the following topics: Reusability; Ada programming support environments: Applications: Language issues; Guidelines and standards: Commercial Ada users working group; Interoperability; Compilers: Hardware architectures: Project management: Methodologies; NASA application; Ada education and training; Metrics; DoD applications: Technology research; Portability; Performance issues: Distributed issues. (author)

8166 D'lppolito, Richard; Lee, Kenneth; Plinta, Charles: Rissman. Michael; Van Scoy, Roger; PROTOTYPE REAL-TIME MONITOR: DESIGN. Report No. CMUISEI-87-TR-38. 53 p. Nov 1987. Sponsored by SEI-Joint Program Office, Hanscom Air Force Base, Hanscom, MA 01731. GranUContract No. F1962885C0003. Avail. from Defense Technical lnformation Center, Cameron Station, Alexandria, VA 22304-6145. Order No. AD-A188 931.

Key words:

This report describes the software design used to implement the prototype real-time monitor (RTM) requirements. The prototype RTM described in this report was built to address two specific technical questions raised by the Ada Simulator Validation Program (AVSP) contractors: 1. How can user tools find, access and display data hidden in the bodies of Ada applications? 2. How can user tools be layered on top of Ada applications? The design is presented at three levels: system level, object level, and package architecture level. The report concludes with a discussion of the key implementation obstacles that had to be overcome to develop a working prototype: determining system addresses, communicating with an executing application, accessing application memory, converting data into human readable form, and distributed CPU architectures. (author)

8167 Van Scoy, Roger; P R O T O W E REAL-TIME MONITOR: ADA CODE. Report No. CMUISEI- 87-TR-39. 180 p. Nov 1987. Sponsored by SEl-Joint Program Office. Hanscom Air Force Base, Hanscom. MA 01731. GranttContract No. F196288560003. Avail. from Defense Technical lnformation Center, Cameron Station. Alexandria. VA 22304-6145. Order No. AD- A191 095. Key words: This report presents the code that implements the prototype real-time monitor (RTM). In addition, the documentation in the package specifications and bodies forms the implementation description of the RTM. The prototype RTM described in this report was built to address two specific technical questions raised by the Ada Simulator Validation Program (AVSP) COntraCtOrS:

Page 51: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

1. How can user tools f~nd. a a s s aria display aata Ricden :r. :he wcles ct Ada ijcpllca:iCfis' 2. How can user tools be layerea on top of Ada acpl~ca;ions'? 'tuthor)

8169 D'lppo~~o. Richard; Lee. Kenneth: Plinta. Charles: sissman. f,tichael S.; \/an Scoy. Roger; AN 000 PARADIGM FOR FLIGHT SIMULATORS. Fiepan NO. C!dU/S Ei-87-TFi-43. 101 p. Dec lo87. Sponsored by SElJoint Program Office, hanscom Air Force Base. Hanswm, MA 01 731. GranttContract No. F1962885CC003. Avail. from Defense Technical Informatton Center. Cameron Station. Alexanana. VA 22304-6145.

Key words: This report presents a paradigm for object-oriented implementations of flight simulators. It is a resutt of work on the Ada Simulator Validation Program (ASVP) carned out by members of the technical staff at the Software Engineering Institute (SEI). (author)

8220 Pressman, Roger S.; S O M A R E ENGINEERING: A PRACnnONER'S APPROACH (SECOND EDITION). 586 p. Avail. from McGraw-Hill Book Company, Princeton Road. Highstown. NJ 08520. Order No. ISBN 0-07-050783-X.

Key words:

This book's coverage of the software engineering process includes: planning and estimation techniques: analysis of the computer based system and the software element: design; coding; testing and quality assurance; and maintenance. Rather than maintaining a strict life cycle view, this second edition presents generic activities that are performed regardless of the software engineer~ng paradigm that has been chosen. It offers a completely revised chapter on software testing and scheduling techniques: providing guidelines for cost/schedule estimation. This revision also features a new chapter on object-oriented design, real-time design, software test case design techniques, and software quality assurance. This coverage reflects new software engineering methods that are rapidly gaining acceptance in the industry. A well-designed learning tool: this edition contains many new problems, examples. and case studies oriented toward engineeringfscientific systems and real-time applications. (author)

8223 Demarco. Tom; STRUCTURED ANALYSIS AND SYSTEM SPECIFICATION. 365 p. Avail. from Yourdon Press. 1133 Avenue of the Americas. New York, NY 100366748. Order No. ISBN 0-1 3-854380-1.

Key words:

This book is about Structured Analysis. and S t ~ ~ t u r e d Analysis is primarily concerned with a new kind of Functional Specdication, the Structured Specdication. Structured Analysis and System Spec~fication descr~bes an orderly approach to structured analysis and system design. The topics covered range from the basic concepts of system analysis, to the problems w~th system modeling. Functional decomposition, data flow diagrams, data dictionaries, process specifications, logical and physical models of a system are described in great detail, in a very readable manner. Explicit examples are given to walk the reader through the various stages necessary to perform structured analysis and specifications of a system in a logical manner. (author)

8225 Eooch, Grady; SOFTWARE ENGINEERING WITH ADA (SECOND EDITION). 603 p. Avail. from Addison-Wesley, BenjamirvCummings Publ. Co.. Inc.. Jacob Way, Reading, MA 01867. Order No. ISBN 0-8053-0604-8.

Key words:

This book has been written to satisfy the followirg three specific goals: to provide an intensive study of Ada's features: to motivate and give examples of good Ada design and programming style; to introduce an object oriented development method that exploits the power of Ada and, in addition, helps manage the complexity of large software systems. The book not only describes the details ot Ada programming, but also suggests ways in which to best apply the features of the language in the creation of software systems. Software Engineering with Ada serves as a complete Ada reference that is appropriate for both the programmer who wishes to create Ada

Page 52: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

systems and the manager wno neecs lo unaerstana how lo apply thrs powenul tool. Tile o o o ~ presumes an unaerstamlng of the baslc ;r~nc~oles cf Drogrammlng. TODICS cavered are: ~ncreased emphasls on Ada's syntax and sernantlcs. detailed d~scuss~ons on tne oaject orlentecl development methoa, and upaated h~stoncal ~nformat~on. (author)

8233 Blaha. Michael R.: Premerlani. William J.: Rumbaugh, James E.; "RELATIONAL DATABASE DESIGN USING AN OBJECT-ORIENTED METHODOLOGY," In Cornmun~carions of the ACIU. 31 (4): Apr 1988. pp. 414-427.

Key words:

This article descr~bes the effectiveness of the Object Modeling Techn~que (OMT) for approaching the design of relational databases. A comprehensive explanation of OMT is included, along with two applications showing the semantic improvement of OMT over other approaches for designing relational data base management systems. The design technique and methodobgy employed have been used for several years at General Electric, and the methodobgy is intuitive, expressive, and extensible. (author)

8335 Klahr, Philip; McArthur, David; Narain, Sanjai; "SWIRL: AN OBJECT-ORIENTED AIR BAlTLE SIMUMTOR." In Proceedings of the National Conference on Artificial Intelligence. A u ~ . 18-20, 1982. A u ~ 1982. pp. 331 -334.

Key words:

The authors describe a program called SWIRL designed for simulating military air battles between offensive and defensive forces. SWIRL is written in an oblect~riented language (ROSS) where the knowledge base consists of a set of objects and their associated behaviors. The authors discuss some of the problems they encountered in designing SWIRL and present their approaches to solving them. (author)

8403 Stroustrup, Bjarne; "WHAT IS OBJECT-ORIENTED PROGRAMMING?," In IEEE Software. S(3): May 1988. pp. 10-20.

Key words:

This article presents the author's view of what object-oriented means in the context of a general-purpose programming language. Examples in C++ are presented, partly to introduce C++ and partly because Ccc is one of the few languages that supports data abstraction, object- oriented programming, and traditional programming techniques. Issues of concurrency and hardware support for specific, higher level language constructs are not included. (author)

8436 "OOPSLA '87 CONFERENCE PROCEEDINGS," 636 p. Avail. from ACM Order Department. P. 0. Box 64145, Baltimore, MD. 21264. Order No. ISBN 0-89791-247-0.

Key words:

This is an addendum to the proceeding of the OOPSLA '87 conference on object-oriented programming held in Orlando, Florida. October, 1987. It contains reports on five workshops and six panel discussions, in addition to the text of the keynote address and the banquet speech. These reports were written after the conference by organizers and attendees of these sessions in an attempt to capture the content, and some of the spirit, of these less formal technical exchanges. The reports have been organized into three areas of concern - roughly corresponding to design, implementation, and product development - and briefly summarized. (author)

8437 Diederich, Jim: Milton, Jack: "AN OBJECT-ORIENTED DESIGN SYSTEM SHELL." In OOPSLA 1987 Proceedings. Oct 1987. pp. 61-77.

Key words:

The authors present a design system shell which can be used to experiment with principles of design and be used as a design tool where complex layers of information need to be specified about objects, such as in database design. The shell can be tailored to a variety of application

Page 53: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

areas. I: IS oblect-onented ~n ds lrnoremernatlon an0 structure. CSjeas ana messages are usea as the speclficatlon language. The basic ingn2OlentS of a rule-basea Droouctlon system are prov~aed. w~th ~ l e s treated as oblects and detlnea lfl~ePeflOenly of the classes to wnlch :hey are appl~ed. (author)

8482 Soehm. Barry W.: "A SPIRAL MODEL CF SOFWARE DEVELOPMENT AND ENHANCEMENT." In Computer. 21 (5): :.:ay 1088. In Tutorral: Software Engineermg Project Management. Jan 1088. pp. 61 -72. Key words:

This article opens with a short description of software process models and the issues they address. Subsequent sections outline the process steps involved in the spiral model: illustrate the application of the spiral mde l to a software project. using the TRW Software Productivity Project as an example: summarize the primary advantages and implications involved in using the spiral model and the primary difficulties in using it at its current incomplete level of elaboration; and present resulting conclusions. (author)

8515 Agusa. Kiyoshi: Ohm. Yutaka: Tanrmi, Hiroyuki: "A PROGRAMMING ENVIRONMENT SUPPORTING REUSE OF OBJECT-ORIENTED SOWARE." In 10th International Conference on Software Engineering: April 1 1 - 15. 1988. Apr 1988. pp. 265-273. Key words:

The authors have developed a programming environment for object-oriented programming. This environment supports reuse of classes, especially retrieval of them with an expert system. The user can find classes and methods by describing the features of objects and operations according to an object model proposed by the authors. The target programming language is MOMO, which is developed by the authors to implement the object model. This paper mainly focuses on the retrieval part of the environment. (author)

8577 Meyer, Bertrand: "ElFFEL: A LANGUAGE AND ENVIRONMENT FOR SOFTWARE ENGINEERING," In Journalof Systems and Sofrware. 8(3): Jun 1988. pp. 199-246.

Key words:

The Eiffel language and environment address the problem of building quality software in practical development environments. Two software quality factors were deemed essential in the design of the language: reusability and reliability. They led to the following choices: language features that support the undertying bottom-up software design methodology; modular structures based on the object-oriented approach, with support for both generic parameters and multiple inheritance (including a new extension, repeated inhentance); automatic storage management; highly dynamic execution model: support for polymorphism and dynamic binding; fully static typing; information hiding facilities: assertions and invariants that may be monitored at run-time. The Eiffel programming environment, using C as an intermediate language, supports separate compilation of classes and achieves a good ~ n - t i m e performance in both space and time. The environment takes care of automatically recompiling classes as needed after a change, ensuring that only up-to-date versions of classes are used, but avoiding unnecessary remmpilations. A set of tools is provided to support the development of sizable software systems. An important part of the environment is the library of reusable classes. Significant extracts of this library are given in the appendix to this article, providing a set of model reusable software components. carefully designed for robustness and extendibility. (author)

8616 Agresti, William W.: TUTORIAL: NEW PARADlGMS FOR SOITWARE DEVELOPMENT. 304 p. Jan 1986. Avail. from IEEE Computer Society, PO Box 80452, Worldwide Post Center, Los Angeles, CA 90080. Order No. ISBN 0-8186-0707-6. Key words:

Designed for computer professionals who are interested in the process of software development. this tutorial shows the assumptions and limitations of the lifecycle (waterfall) model and explains when the m d e l is appropriate and when it-is not. Explains the new paradigms (pmtotyplng,

Page 54: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

operat~onal spec~ficat~on, transrormat~onal Imolemerr,a;ionl ana shows now they ~nterrerate to suppon orocess Improvement. Discusses the trans;;;on from tne lrfe-cyc~e model to a more flex~ble aevelopment process that accommoaates these newer paraagms. (author)

8652 Danfonh, Scott: Toml~nson, Chris: " N P E T'ri ECiiiES AND OBJECT-CRIENTED PROG;IAMMING," In ACM Cornputmng Surveys. 20(1): !.far 1988. pp. 29-72.

Key words:

Object-oriented programming is becoming a pcpular Ezproach to the construction of complex software systems. Benefits of object OrlentatiOn Ir.z:ude suppoR for modular design, mde sharing, and extensibility. In order to make the mon: of these advantages, a type theory tor objects and their interactions should be developed to a ~ d checking and controlled derivation of programs and to support earty binding of code bodies for efficiency. As a step in this direction, this paper surveys a number of existing type theories and examines the manner and extent to which these theories are able to represent the ideas found in objectoriented programming. 01 primary interest are the models provided by type theories for abstract data types and inheritance. and the major portion of this paper is devoted to these topics. Code fragments illustrative of the various approaches are provided ara discussed. The introduction provides an overview of object-oriented programming and types in programming languages; the summary provides a comparative evaluation of the reviewed ?/ping systems, along with suggestions for future work. (author)

8662 Ramamoorthy, C. V.; Sheu, Phillip C.; "OBJECT-CZIENTED SYSTEMS," In IEEE Experr. 3(3): Sep 1988. pp. 9-15.

Key words: Object-based systems provide such desirable features as data abstraction. program modularity, and inherent concurrency. The authors investigate the impact of object-based computation on databases and expert systems. and demonstrate cbject-based programming with a simple automatic factory example based on concepts of cbjeu, message, and class. The authors review the essence of objectoriented systems from a usefs point of view, discussing problems that need to be resolved. In particular. the authors emphasize the need for object management systems. software engineering tools. and better architectural support. (author)

8726 "OOPSLA '88 CONFERENCE PROCEEDINGS," In ACM SlGPLAN Notices. 23(11): Nov 1988. Report No. 548881. 400 p. Avail. from ACM Order Cepartment, P. 0. Box 64145, Baltimore, MD. 21264. Order No. ISBN 0-89791-284-5.

Key words:

These proceedings contain papers presented at the Object-Oriented Programming Systems, Languages and Applications conference held on September 25-30, 1988. Such topics as implementation, user interfaces, extending Smalltalk, databases. tools and environments, applications. theory, concurrency and parallelism, and design were treated.

8773 Cesar, Edison M., Jr.; Ellis, John W.. Jr.; Giarla. William: Klahr, Philip; Narain, Sanjai; Turner, Scott R.; TWIRL: TACTlCAL WARFARE IN THE ROSS LANGUAGE. Report No. RANOIR-3158-AF. 59 p. Oct 1984. Sponsored by Air Force Research. Development and Acquisition, Hq Air Force, Washington, DC, 20330. GranVContrad No. F4962082-C-0018. Avail. from Defense Technical Information Center, Caneron Station. Alexandria. VA 22304- 6145. Order No. AD-A150 569.

Key words: This report describes TWIRL, a simulation of a primarily ground combat engagement between two opposing military forces. It was developed to funher experiment with the ROSS language, an object-oriented simulation language that was successfully used to develop the SWIRL air battle simulation, and to develop a prototype simulation that could be used to explore issues in electronic combat. The authors describe the ocjects that comprise TWIRL and provide extensive examples of object behaviors to explaln and illustrate the process of building a

Page 55: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

simulation In Ross. {zi~thor)

5787 "JIppolRo. Richard: Lee, Kenneth J.: Flinta. Ckarles: Zissman. Michael S.; Van Sc3y. Roger: A N 0 0 D PARADlGtU FOR FLIGHT SlrCIUU TORS. ZVD EDITION. Report No. CMUlSEi48-TR-30. 127 p. Sep 1988. Sponsored by SEI-Joint Program Office. Hanscom Air Force Base, Hanscom, MA 01731. Gran~Contract P:o. Fl962885C0003. Avail. from Carnecjle Mellon Unlversrty, Pittsburgn, PA 15213-3890.

Key words:

This report presents a paradigm for object-oriented implementations of flight simulators. It is a result of work on the Ada Simulator Validation Program (ASVP) carned out by memcers cf the technical staff at the Software Engineering Institute (SEI). (author)

8796 Buchanan. Bruce G.; Schoen, Eric: Smith. Reid G.; "DESIGN OF KNOWLEDGE-BASED SYSTEMS WITH A KNOWLEDGE-BASED ASSISTANT." In IEEE Transactions on Software Engineering. 14(12): Dec 1988. Report No. IEEE Log Number 8824633. pp. 1771 -1 791.

Key words:

Intelligent assistants facilitate design and construction of complex software. In this article, the authors propose a model for an intelligent assistant to aid in building one kind of software. knowledge-based systems (KBS), and discuss a preliminary implementation. The assistant participates in KBS construction, including acquisition of an initial model of a problem domain. acquisition of control, and task-sceclfic inference knowledge. The authors present a hypothetical scenario in which the assistant and a KBS designer cooperate to create an initial domain model. and discuss five categories of knowledge the assistant requires to offer such help. The authors then discuss two software technologies upon which the assistant is based: an object-oriented programming language and a user-interface framework. (author)

8914 Gardner, Michael R.; "SUCCESSES AND LIMITATIONS OF OBJECT-ORIENTED DESIGN," In Journal of Pascal, Ada & Modula 2. 7(6): Nov 1988. pp. 30-41.

Key words:

This article has two main purposes: (1) to show how to use object-oriented design on a software system sufficiently large that the method must be used recursively through several levels of recursion, and (2) to evaluate the suitability of object-oriented design as a general methodology for decomposing a system into modules. The article's principle example of object- oriented design concerns a hierarchical database management system (DBMS). Accordingly, a secondary purpose of this article wiil be to discuss some techniques for using Ada to implement a DBMS. (author)

8915 Arnir, Shawn; "BUILDING INTEGRATED EXPERT SYSTEMS." In Al Expert. 4(1): Jan 1989. pp. 26-37.

Key words:

This article discusses the fundamentals of object-oriented programming in artificial intelligence (At), especially expert systems. The architecture of Propem-list OBjects (POB) and the Common LISP implemeRation of PO6 wiil also be reviewed. Technical material will be presented in sufficient detail to allow implementation and experimentation with POB and Object- Oriented Inference Engine (OBIE) vanations. (author)

891 6 Jacobs. Jeff: Morgan, Tom: Rettig, Marc: Wirnberly, Doug; "OBJECT-ORIENTED PROGRAMMING IN Al - NEW CHOICES." In A1 Experf. 4(1): Jan 1989. pp. 53-69. Key words:

This paper describes various software products dealing with object-oriented programming. The authors divided this field into language families: Smalltalks, C derivatives, object-oriented LISPS. and a few languages that do not quite fit into any family, such as Whitewaters Actor. Some guidelines for chooslng the best object-oriented language for your particular needs are also

Page 56: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

discussed. (gzthorl

8936 Muller, Robert J.; Pircher, Peter A.: !'lasserrnan. Anthony I.; "AN OBJECT-3RIENTED STRUCTURED DESIGN METHOD FCR CODE GENERATION," In Sortware E,~gmeer~ng Notes (ACM SIGSOm. 14(1): Jan 1989. ~ 7 . 32-55.

Key words:

The overall architecture of a software system has long been recognized as an important contributor to its quality (or lack thereof). Several methods are described that offer valuable concepts to address an arcxectural design method. But no method makes an adequate distinction between the definitcn and use of objects. which is essential if one is to develop a library of reusable objects. In addition, the object-oriented methods have largely abandoned Sltuctured Des~gn, which is well established and includes most of the necessary concepts and notation. As a resuh. the aulhors decided to synthesize ideas from these methods, along with their own ideas. to define a new method, called Object-Oriented Structured Design (OOSD), for architectural design of systems. (author)

8949 Corradi, Antonio; Leonardi. Letizia: "PO: AN OBJECT MODEL TO EXPRESS PARALLELISM," In Proceedings of the ACM SIGPLAN Workshop on Object-Based Concurrent Programming. Sep 1988. pp. 152-155.

Key words:

Concurrency is actually one of the neglected issues of object systems. The majority of issues simply address processes as instances of a system class. This dichotomy, passtve objectsfactive processes. contrasts with object uniformity. Parallel Objects (PO) proposal is an example of insertion of parallelism in an object framework that follows the principle of uniformity. The PO model is presented in this article as an object model to express parallelism. (author)

8962 Seidewitz, Ed: "GENERAL OBJECT-ORIENTED SOFiWARE DEVELOPMENT: BACKGROUND AND EXPERIENCE." In Journal of Systems and Software. 9(2): Feb 1989. pp. 95-108.

Key words:

The effective use of Ada requires the adoption of modem software-engineering techniques such as objectaiented methodobgies. A Goddard Space Flight Center Software Engineering Laboratory Ada pilot project has provided an opportunity for studying object-oriented design in Ada. The project involves the development of a simulation system in Ada in parallel with a similar Fortran development. As pan of the project, the Ada development team trained and evaluated object-oriented and process-oriented design methodologies for Ada. Finding these methodobgies limited in vanous ways, the team created a general object-oriented development methodobgy that they applied to the project. This paper discusses some background on the development of the methodobgy, describes the main principles of the approach, and presents some experiences using the methodobgy, including a general comparison of the Ada and Fortran simulator designs. (author)

9058 Barry, Brian M.; OBJECT-ORIENTED SIMULATION OF EW SYSTEMS. Report No. Technical Note 87-31. 65 p. Dec 1987. Avail. from Defense Technical Information Center, Cameron Slation, Alexandria. VA 22304-6145. Order No. AD-A193 782. Key words: Simulations of complex EW systems are difficult to build and virtually impossible to thoroughly validate. As a consequence, most EW systems engineers tend to regard results derived from simulations as suspect, preferring to reply instead on laboratory testing and field trials for performance evaluations. The author suggests that the real problem may be that traditional simulati0nS do not provide the kind of modeling and analysis tools which the systems engineer really needs. In this paper, a prototype for a new kind of EW simulation environment which supports an object-oriented approach to modeliq and simulation is described. The author will provide some backgmund information on object-oriented programming, describe the ~0ftWare

Page 57: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

arcnltecture of the s~mulat~on envlronrrent ana c:sczss several exarccres wnlcn rllustrate Irs use.

2132 sailin. Sidney C.: "AN OBJECT-ORIENTEa RE*ZUIREMENTS SPECIFICATION METiiGO." in Commun~cat~ons of the ACM. 32(5): hlay 1989. pg. 608-623.

Key words:

This anlcle descr~bes a method of analyzing requirements for object-oriented sonware. The method is intended to flow smoothly into design by object diagrams. and from there into programming w~rh Ada or another high-level language. The method is intended to serve as an alternative to structured anaiysis wnen the use of object-oriented design is foreseen. The authors assume that the analyst who is using this method had a textual statement of requirements for a system available.

91 73 Whiting, Mark A.; "CONCEPTUAL OBJECT-ORIENTED DESIGN," In 8th Annual Pacific Northwest Software Quality Conference. Oct 1990. pp 62-72. Sponsored by Department of Energy. GrantfContract No. DE-AC06-76RLO-1830. Avail. from PNSQC, P.O. Box 970. Beavertown, OR 97075. Key words:

Conceptual object-oriented design (COOD) is a methodology that is being used at he Pacific Northwest Laboratory (PNL) to study, plan, specify and document high-level solutions to large- scale information processing problems. COOD embodies aspects of object-oriented program design philosopny (which is being applied to the irnplementatlon design of software) to provide enhanced tools and techniques for conceptual design. C30D is targeted at eh phase of software development following requirements analysis and prior to implementation or detailed design. This step is necessary, particularly for large-scale information processing systems to achieve the following: 1. allow designers to conceptually work out solutions to information processing problems where innovative thinking is required: 2. allow a structured environment in which to capture design products, and ; 3. provide a global view of the conceptual solution in an understandable form to the implementors of the solution. This will facilitate their detailed design efforts. The product of COOD is a "Conceptual design specification." This specification is delivered to an implementation team to assist the detailed design process, yet is not a software specification in and of itself. (authors)

9267 Buser, Jon F.; Ward, Paul T.; "REPRESENTING OBJECT ORIENTED SPECIFICATIONS AND DESIGNS WITH EXTENDED DATA FLOW NOTATIONS," In Proceedir~gs of the 131h Annual Software Engineering Workshop. Nov 1988.

10020 Foy, Ralph A.: Loftus. William P.: Oei. Charles L.: Thalhamer. John A.; "ADA ABSTRACT DATA NPES--THE FOUNDATION OF AN INTERACTIVE ADA COMMAND ENVIRONMENT." In Proceedings of the 7th Annual National Conference on Ada Technology, March 13-76, 1989. Mar 1989. pp. 326-331.

Key words:

The Ada Command Environment (ACE) is an interactive, object-oriented software development environment. The ACE uses Ada as both the command language and the programming language; and supports an abstract data type (ADT) view of the underlying operating system and applications tools. The benefits of the ACE approach is the combination of ADTs and the Ada programming language. The Ada language provides a strong foundation for the constnrction and use of ADTs and ADTs provide the rnechanlsm for environment manipulation. (author)

10042 Earlev, S.; Davanzo. P.; Hetzron, J.; Levitz, M.: Tupper. K.; "ADA DESIGN TOOL." In Proceedings of the 7th Annual National Conference on Ada Technology, March 13- 16. 1989. Mar 1989. pp. 557-566.

Key words:

Page 58: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

The Ada Des~gn Tool (ADT) is berng aeslgnea and integratecl ~cto a sortware er;lneerlna environment to suppon ln the wnceotual~zat~on, preparatlon =;.a ceneratlon of Ada zrccrams. The grapncal and textual ed~tors of the ADT allow the sortware enqneer to represem a roc-level and deta~led-level deslgn In an Object-Oriented Des~gn approacn or a Functronal Decorr,cosrt~on Des~gn approach. The ADT has a validat~on funct~on to ensure that the design IS corclete and consistent, a source code generator which IS a fac~lity for generating Ada source ccce, and a docurnentatlon function which produces MIL-STD speclficat~ons as well as analytical reoorts.

10046 Brown. Russell; Dobbs, Verlynda: "A METHOD OF TRANSLATING FUNCTIONAL REQUIREMENTS FOR OBJECT-ORIENTED DESIGN," In Prcceeaings of the 7th Annual National Conference on Ada Technology, March 13- 16, 1989. !,tar 1989. pp. 589-599.

Key words: A challenge in the use of Object-Oriented Design methods for software design is the difficulty of maintaining traceability between functional requirements and the object requirements. A framework for translating fundionai specifications into a set of object requirements. called Functional Requirements Translation (FRT), is presented in this paper. FRT is intended for use of 000 methods for DoD systems developed in Ada. This forms-based methodobgy provides bidirectional traceability of the translation and "can be used to identify unsatisfied requirements and produce good detailed object designs". (author)

10057 Perez. Eduardo Perez: "SIMULATING INHERITANCE WITH ADA," In ACM Ada Leners. 8(5): Sep 1988. pp. 37-46.

Key words: Since the evolution of object-oriented programming languages and systems, interest in inherrtance has increased. Inheritance is a mechanism to help a software designer in the specification of software components. The designer need only indicate that a component inherits the specification of another and specify any differential features beween the two. This introduces a new method of software development called differential development of software. or more precisely, incremental development of software. The inheritance mechanism of Smalltalk 80 is reviewed and the different steps taken in the inheritance process. The Ada concept of derived types is analyzed because it facilitates the simulation of an inheritance mechanism similar to the Smalltalk 80 model.

101 03 Forestier. J. P.: Fornarino, C.; Franchi-Zannettacci. P.: "ADA*: A C U S S AND INHERITANCE EXTENSION FOR ADA," Jun 1989. pp. 3-15.

Key words:

ADA* is a superset of Ada supporting the use of object-oriented design and constmcts above standard Ada. A full model for class definition and multiple inheritance on abstract objects fully compatible with standard Ada syntax, semantics and methodology is provided. Currently, Ada++ is implemented as a pre-processor and embedded in a graphical interactive programming environment called, ADALOOK.

10104 Donaldson, C. M.; "DYNAMIC BINDING AND INHERITANCE IN AN OBJECT-ORIENTED ADA DESIGN," Jun 1989. pp. 16-25.

Key words:

Classic-Ada is an object-oriented design language and toolset developed under a research and development effort at Software Productivity Solutions, Inc. The language incorporates the standard Ada syntax. semantics and methodology and includes a set of extensions to support dynamic binding and inheritance. A User Interface Management System (UIMS), which is a collection of reusable components for building applications user interfaces, has been designed

Page 59: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

using Classrc-Ada

10106 Alkinson. Colin: eavan. Sam: Cardigno. C;nzla: Cestornces. Cathenne: Ci Malo. Andrea: "DRAGGON: AN ADA-BASED GRJECT ORIENTED LANGUAGE FOR CCNCURRENT, REAL- TIME, GlSTFiiBUTED S'fSTE?AS." dun 1989. pp. 39-48.

Key words:

DRAGOCN (Distributed Pecrszzle Ada Generated from an Object Oriented Notation) is a fully object or~ented design ana programmlng language which can be automatically mapped into Ada for execution. DRAGGON provldes inheritance and polymorphism and thus enriches Ada w~th the typical features of an 0Ciiectorlented paradigm. It is described in this paper how DRAGOON can be used to design conairrent, distributable and dynamrcally reconfigurable applications. (author)

10108 Davis. Neil W.; Irving, Malcolm: Lee. John E.; "PRACTICAL EXPERIENCES OF ADA AND OBJECT ORIENTED DESIGN IN REAL TIME DISTRIBUTED SYSTEMS," Jun 1989. pp. 59- 79. Key words:

Logica Space and Defence Systems Limited is currently working to produce an object oriented approach to software system development. Practrcal experiences in the use of Ada and object oriented design in the recuirements analysis and design of real time distributed systems are presented in this paper. Eeponed are lessons learned and an overvlew of future work needed in this area.

101 10 Auxiette, G.; Cabadi. J. F.; Rehbinder. P.; "PROMETHEE: DESIGNING A PROCESS CONTROL SYSTEM." Jun 1989. pp. 90-1 04. Key words:

The "state of the art" of several activities related to Ada. such as. design for Ada. integration in Unix, compatibility with software libraries or networks. are examined in this paper. The authors present solutions to some of these activities, and others are left unsolved. The study is a process control system, called Promethee, and an overview of it is presented. Issues of the design process. especially those related to soft real-time systems are also discussed.

10205 Liu. Chang-Shyan; Yau. Stephen S.; "A STRUCTURED BIPARTITE INHERITANCE NETWORK REPRESENTATICN FOR OBJECT ORIENTED SOFIWARE DESIGN," Sep 1989. pp. 351 -357. Order No. 0730-31 57/89/0000/0351$0l.00.

Key words:

In this paper, a representation for any object-oriented software design is presented. The representation is based on a Slructured Bipartite Inheritance Network. which is a network with two kinds of basic nodes: data entity nodes and action nodes. and an encapsulation mechanism: substructure. Data entity nodes and action nodes are independent of each other and Structured into inheritance hierarchy. The advantage of this representation is that all object-oriented software design can be represented in a uniform way and thus makes the software system more understandable and more maintainable. (author)

10317 Kuhl, Frederick S.; "OBJECT-ORIENTED PROGRAMMING APPLIED TO A PROTOTYPE WORKSTATION," In SoMvare - Practice and Experience. 20(9): Sep 1990. Report No. 0038- 0644/98/090887-l2SO. FP. 887-898. Key words: Objectoriented programmlng has been applied to the development of a prototype workstation to be used in airpon traffic control towers. Objective-C was used because it supports objects. classes and inherrtance. and it allows easy access to system services. A number of design practices emerged as helpful in the course of development, some of which have been reported elsewhere. The notion ot a framework of co-operating classes as a paradigm of design was

Page 60: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

especrally helpful. Csmpanscns ; n r ~ l ~ the size ana rzte or coae production ot an earher. s:rr,ilar workstation programmed in C ;r,cicale an aavantace to oojectarlentea programming. (author)

10400 Gnrbbs. Jeffrey W.; Roggio. Robert F.; "REUSE 3Y DESIGN: DATA ABSTRACTION VS. THE 'TOP-DOWN' MINDSET IN AN OBJECT-ORIENTED ENVIRONMENT," In 5th Annual Knowleclge-Based Scftware Assisianf Conference. Sep 1990. pp.418-431.

Key words:

Utilization of an objectoriented environment for application development is no guarantee that software produced therein wiil be designed for reusability. Designer~programmer methodological bias coupled with a misunderstanding of the object-oriented approach produces marginally effective abstractions with illdefined or inadequate behavnrs. These inappropriate abstractions tie software components to a specific application context and severely restrict the opportunities for reuse. This paper examines a limited Smalltalk application whose development demonstrates such effects. The qualaative and quantitative advantages realized through redesigning it for reusability are also discussed. (author)

10414 Hoffman. Daniel; "ON CRITERIA FOR MODULE INTERFACES," In IEEE Transactions on Software Engineering. 16(5): May 1990. pp 537 - 542. GranVContract No. A8067. Sponsored by Natural Sciences and Engineering Research Counc~l of Canada. Order No. 0098- 5589/90/0500-0537$01 .OO.

Key words:

While the benefits of modular software development are widely acknowledged, there is little agreement as to what constitutes a good module interface. Computational complexity techniques allow us to evaluate algorithm time and space costs but offer no guidance in the design of the interface to an implementation. Yet, interface design decisions often have a critical effect on the development and maintenance costs of large software systems. In this paper the author presents criteria that have led to simple, elegant interfaces. These criteria have been developed and refined through repeated practical application. The author presents and illustrates the criteria in detail.

10624 Meyer, Bertrand: "LESSONS FROM THE DESIGN OF THE EIFFEL LIBRARIES." In Communications of the ACM. 33(9): Sep 1990. pp 69-88. Order No. ACM 001 -0782/9010900- 0069$1.50.

Key words:

The use of reusable software wmponents is now technically possible and should advance the level of software development. This article presents the efforts which have been maae to advance the cause of component based software development in the Eiffel environment througn the construction of the Basic Eiffel Libraries. Following a brief overview of the libraries, this article reviews the major language techniques that have made them possible (with more background about Eiffel). It then discusses design issues for libraries of reusable components, the use of inheritance hierarchies. the indexing problem, and planned developments. (author)

10636 Wirfs-Brock, Rebecca J.; Johnson, Ralph E.; "SURVEYING CURRENT RESEARCH IN OBJECT-ORIENTED DESIGN," In Communications of the ACM. 33(9): Sep 1990. pp 104-124. Order No. ACM 001 -078219010900-0104$1 .SO.

Key words: The state of objectoriented design is evolving rapidly. This survey describes what are currently thought to be the key ideas. necessarily incomplete. of both academic and industrial efforts in both the United States and Europe. It ignores well known ideas like those of Coad and Meyer in favor of less widely known projects. Presented are separate works by Alan Snyder and Dennis de Champeaux of Hewlett-Packard, Rebecca Wirfs-Brock from Tektronix, Ralph Johnson at the University of Illinois, and results from the research group in object oriented software engineering led by Karl Lieberhen at Northeastern University. It is found that standardization of terminology is needed, however the fact that different groups are forced to invent terminology

Page 61: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

for the same ccnceDts tie Irr;mnant. 7:r.e various rnetnocs cresentea tenaed to cornolement each crher rather than czTpeIe. w~th their s:;nllarltleS nidden in a~fterences In vocaoulary.

: 0668 Cony, Christophe: "EXCEPTION HANDLIFiG AND OBJECT-ORIENTED PROGRAMMING: TOWARDS A SYNlliESiS.' :n EZCCPICCPSLA 1990 Pr:ceearngs. 25(10): Oct 1990. pp 322-330. Sponsorea by Rank-Xerox 8 LIT?. Crder No. ACXl089791-411-290/0010-032233 50 .

Key words:

The paper presents a discussion and a spec~fication of an exception handling system dedicated to object-oriented programming. The authors snow how a full object-oriented representation of exceptions and of protocols to handle them. using meta-classes. makes the system powerful as well as extendible and solves many classical exception handing issues. The authors explain the interest for objectoriented programmrng of handlers anached to classes and to expressions. They propose an original algorithm for propagating exceptions along the invocation chain which takes into account, at each stack level, both kind of handlers. Any class can control which exceptions will be propagated out of its methods; any method can provide context-dependent answers to exceptional events. The wnole specification and some keys of the author's Smalltalk implementation are presented in the paper. (authors)

10799 Moreau. Dennis R.; Dominick. Wayne 0.; "A PROGRAMMING ENVIRONMENT EVALUATION METHODOLOGY FOR OBJECT-ORIENTED SYSTEMS: PART I- THE METHODOLOGY ," In Journal of Object-Oriented Programming. 2(1): May 1990. Repon No. ISSN #0896-8438. pp. 38-54.

Key words:

The research presented in this article addresses the design, development, and evaluation of a systematic, extensible, and environment-independent methodobgy for the comparative evaluation of object-oriented programming environments. This methodobgy is the intended to sewe as a foundation element for supporting research into the impact of object-oriented software development environments and design strategies on the software development process and resultant software products.(author)

1081 7 Cox, Brad J.; OBJECT ORIENTED PROGRAMMING: AN EVOLUTIONARY APPROACH. Report No. ISBN 0-201 -10393-1. 285 p. Avail. from Addison-Wesley Publishing Company. Order No. ISBN 0-201-10393-1.

Key words:

This book describes Object-Oriented Programming (OOP). The focus is on OOP not so much as a coding technique, but as a code packagrng technique, a way for code suppliers to encapsulate functionality for delivery to consumers. lnher~tance and encapsulation are the major existing modules. The initial chapters describe the system-building problem. The middle chapters describe a solution as implemented in Objective-C. Although encapsulation and inheritance provide the technical unde~innings for large-scale reusability, they are useless without an information network and libraries for reusability. The closing chapter describes some techniques for extending the basic object-oriented definitions to handle even more ambitious problems, including automated garbage mllection, heap compaction, virtual object memories, and distributed systems.

*

1081 8 Jackson, Michael: SYSTEM DEVELOPMENT. Report No. ISBN 0-13880328-5. 435 p. Avail. from Prentice-Hall, Rt. 59 at Brook Hill Drive. West Nyack, NY 10995. Order No. ISEN 0-13- 880328-5.

Key words:

This book is about Jackson System Development (JSD), a system development method especially oriented towards systems in which time is important. Part I is an overview of JSD. Part I1 gives a detailed description of each major step in JSD in a separate chapter. These Steps are illustrated with three example problems. JSD consists of six steps. the first four concerned with spec~fication and the last :uo with implementation. What is often called design

Page 62: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

has largely been absomecl Into the 1mDlementatlGn SieDS. JSD beg~ns by construaing a nodel of the real world concentrating on the entltles wlth vmch the system w~i l be coccerned. thelr actions. and thew ordenngs In t~me. A JSD user worries about functron only atter this moael has been aef~ned. Part 111 considers varlous toplcs. fiarnely the Input system and errors. system maintenance, and a retrospective look at JSD.

10819 Booch. Grady; SOFTWARE COMPONENTS WITH ADA: STRUCTURES. TOOLS. AND SUBSYSTEMS. Report No. ISBN 0-8053-0610-2. 665 p. Avail. from Benjamin Cummrngs. Order No. ISBN 0-8053-061 0-2.

Key words:

A carefully engineered collection of reusable components can reduce the cost of software development, improve the quality of software products, and accelerate software production. This book is designed to train the reader in the creation and application of such components. It provides a catalog of reusable software components, illustrates how each component was developed, and demonstrates how they collectiveiy can be applied to the construction of complex systems. The components are implemented in Ada and illustrate the use of object- oriented techniques. A scheme for classifying components is presented

10820 Meyer. Bertrand: OBJECT-ORIENTED S O M A R E CONSTRUCTION. Report No. ISBN O- 13-629049-3. 552 p. Avail. from Prentice-Hall, R!. 59 at Brook Hill Drive, West Nyack, NY 10995. Order No. ISBN 0-1 3-629049-3.

Key words:

This book describes Object Oriented Design. Part 1 presents the problems 000 is meant to solve and gives a high-level argument of why one should structure systems around data instead of functions. 000's suppod for certain principles of modularity is discussed. 000 is defined as the construction of software systems as stntctured collections of abstract data type implementations. Part 2 consists of a detailed explanation of OOD. The programming language Eiffel is used as a notation for conveying Object-Oriented principles. Part 3 discusses how to implement 000 in other languages. Classical languages. namely C, Fortran, and Pascal: Ada: and other Object-Oriented languages, namely Sirnula. Smalltalk. C++, Objective C, and Lisp variants are ail treated. The book concludes with a brief indication of issues for further research. Appendices summarize technical details about Eiffel such as the library, the grammar, reserved words, Input/Output, and syntax diagrams.

10821 Wiener, Richard S.; Pinson. Lewis J.; "A PRACTICAL EXAMPLE OF MULTIPLE INHERITANCE IN C++," In ACM SIGPLAN Notices. 24(9): Sep 1989. pp. 112-1 15.

Key words:

Version 2.0 of C++ supports multiple inheritance, which offers an object oriented designer an additional degree of freedom. If used in a disciplined way, it can simplify an inheritance hierarchy. If abused, it can add tremendous complexity to a software design, perhaps in the extreme making it unmanageable. This article presents as an example an appropriate use of multiple inheritance, an array of integers. Integers. arrays, and integer arrays are all classes in the example.

10822 Meyer, Bertrand: "GENERICITY VERSUS INHERITANCE." In ACM SIGPLAN Notices. 21(11): Nov 1986. In OOPSLA 1986 Conference Proceedings. Sep 1986. pp. 391 -405. Key words:

Genericity. as in Ada or ML, and inheritance, as in object-oriented languages. are two alternative techniques for ensurirg better extendibility, reusability, and compatibility of software components. This article is a comparative analysis of these two methods. It studies their similarities and differences and assesses to what extent each may be simulated in a language offering only the other. It shows what features are needed to successfully combine the two

.

approaches in a statically typed language and presents the main features of the programming language Eiffel, whose design. resulting in part from this study, includes multiple inheritance and

Page 63: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

a limlrea form of genercity umer rull SiZi;C :.;z:cq. : ;,d;KGrl

10823 Stevens. Al: "FROM C TO Cr,: In Or. CcSb 3 dfcr;rnal. Czc 1 C59. pp. 8-1 7

Key words:

This anrcle consists of two ~ntervlews. one w~th Dennis Ritchle. tr,e designer of C, and the other with Bjarne SLroustnrp, the creator of Ct+ C- 1s an ociect orlented superset of the programmrng language C. 80th interviews present tselr suojects views on the hrstory, current act~ities, and future prospects of thelr resoectlve languages. Ritchie IS asked for his oplnion on the Amerrcan National Standards Instrtute's stanaard for C. StrousifUp is asked about recent and future Personal Computer ~mplementations of C-7, as well as the development of his recent version 2.0.

10824 Seidewrtz, Ed: Stark, Michael; "ADA IN THE SEL: EXPERIENCES WITH OPERATIONAL ADA PROJECTS," In Proceedings of the Second NASA Ada User's Symposium. Nov 1989. 11 P- Key words:

This set of slides surveys Ada projects conducted in the flight dynamics division at NASA's Goddard Space Flight Center (GSFC). Eight projects have been performed, and data has been collected by the Soflware Engineering Laboratory for all of them. As programmers have gained more experience with Ada, they tend to design a greater proponion of generc packages, r a r e types, and less tasks. Packages tend to become smaller. Ada oroleas tended to reuse more code than Fortran projects..the traditional language at NASNGSFC. Several Ada projects had to be performed before design errors decreased to the same order as with Fortran projects. Similar results hold for emrs due to previous changes. Cn the other hand, interface errors for Ada projects were always less than for Fortran projects. and continuaIly declined. This talk presents data supporting these and additional conclusions.

10825 Stein, Lynn Andrea; "DELEGATION IS INHERITANCE." In OOPSLA 1987 Proceedings. O d 1987. In ACM SIGPLAN Notices. 22(12): Dec 1987. pp. 138-146.

Key words:

Inheritance and delgation are alternate methods for incremental definition and sharing. It has commonly been believed that delegation provides a more powerful model. This paper demonstrates that there is a natural model of inheritance which captures all of the properties of delegation. Independently, certain constraints on the ability of delegation to capture inheritance are demonstrated. Finally, a new framework which fully captures both delegation and inheritance is outlined. and some of the ramifications cf this hyorid rnoael are explored. (Author)

10826 Cointe, Pierre; "METACLASSES ARE FIRST CUSS: M E OBJVISP MODEL." In OOPSLA 1987 Proceedings. Oct 1987. In ACM SIGPLAN Notices. 22(12): Dec 1987. pp. 156-1 67.

Key words:

This paper shows how an attempt at an uniform and reflective definition resulted in an open- ended system supporting ObjVlisp, which is used to simulate object-oriented language extensions. The author proposes to unify Smalltalk classes and their terminal instances. This unification allows one to treat a class as a "t int class citizen." to give a circular definition of the first rnetaclass, to access to the metaclass level, and finally, to control the instantiation link. Because each object is an instance of another one and because a metaclass is a real class inheriting from another one. the metaclass links can be created indefinitely. This uniformity allows one to define the class variables at the retalevel thus suppressing the Smalltalk-80 ambiguity between class variables and instance variables: in this papefs model the instance variables of a class are the class variables of its instance. (Author)

10827 Minsky, Naftaly H.: Aozenshlein, David: "A LAW-BASED APPROACH TO OBJECT- ORIENTED PROGRAMMING." In OOPSLA 1987 Prcceedings. Cct 1987. In ACM SIGPLAN Notices. 22(12): Dec 1987. pp. 482-493.

Page 64: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Key words:

The central idea beh~nd this paper is that the aisc:c:;ne governing the excnance of messages between objects should be specifiable by the programmer ln the form of an exoricit law of the system. The authors show how, starting from a very primitive foundaticn. wneh presumes neither encapsulation nor inherdance, one can establisn various forms of bc;h, as well as other useful disciplines, simply by means of appropnate laws. (Author)

10828 Abbott. Russell J.; "PROGRAM DESIGN BY INFORMAL ENGLISH DESC;ii?TICNS," In Communications of the ACM. 26(11): Nov 1983. pp. 882-894.

Key words:

A technique is presented for developing programs from informal but precise English descriptions. The technique shows how to derive data types from common nouns, variables from direct referents, operators from vertis and attributes, and control structures from their English equivalents. The primary contribution is the proposed relationships between common nouns and data types; the others follow directly. Ada is used as the target programming language because it has useful program design constructs.

10829 Backus, John; "CAN PROGRAMMING BE LIBERATED FROM THE VON NEUMANN STYLE? A FUNCTIONAL STYLE AND ITS ALGEBRA OF PROGRAMS," In Communications of the ACM. 21(8): A u ~ 1978. pp. 613-641.

Key words:

Conventional programming languages are growing ever more enormous. but not stonger. Inherent defects at the most basic level cause them to be both fat and weak: their primitive word-at-a-time style of programming inherited from their common ancestor - the von Neumann computer, their close coupling of semantics to state transitions, their division of programming into a world of expressions and a world of statements, their inability to effectively use powerful combining forms for building new programs from existing ones. and their lack of useful mathematical properties for reasoning about programs. An alternative functional style of programming is founded on the use of combining t o n s for creating programs. Functional programs deal with structured data, are often nonrepetitive and nonrecursive, are hierarchically constructed, do not name their arguments, and do not require the complex machinery of procedure declarations to become generally applicable. Combining forms can use high level programs to build still higher level ones in a style not possible in conventional languages. Associated with the functional style of programming is an algebra of programs whose variables range over programs and whose operations are combining forms. This algebra can be used to transform programs and to solve equations whose "unknowns" are programs in much the same way one transforms equations in high school algebra. These transformations are given by algebraic laws and are carried out in the same language in which programs are written. Combining forms are chosen not only for their programming power but also for the power of their associated algebraic laws. General theorems of the algebra give the detailed behavior and termination conditions for large classes of programs. A new class of computing systems uses the functional programming style both in its programming language and in its state transition rules. Unlike von Neurnann languages, these systems have semantics loosely coupled to states - only one state transition occurs per major computation.

10830 Booch, Grady: "OBJECT-ORIENTED DEVELOPMENT," In IEEE Transactions on Software Engineering. 12(2): Feb 1986. pp. 21 1-221. Key words:

Object-oriented development is a partial lifecycle software development method in which the decomposition of a system is based upon the concept of an object. This method is fundamentally different from traditional function approaches to design and serves to help manage the complexity of massive software-intensive systems. This paper examines the process of object-oriented development as well as the influences upon this approach from advances in abstraction mechanisms, programming languages, and hardware. The concept of an object is central to object-oriented development. and so the propenies of an object are

Page 65: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

zlscussea In ceta~i. Tke caGer csnc:xes with an exacina:;cn cr the rnaopicq cr cclect-crienrec! technlcues lo Ada usina a aeslan case stuoy. (Author)

10831 ?eynoids. Cbarles W.: ' 3 N IMPLE?AENTING GENEfilC CATA STRUCTURES IN MODUU- 2." In Jcurna! of Pascal. Ada & Modu:a 2. 635): Sep 1087. :;. 25-38.

Key woras:

A generw: data srructure IS a data ripe for which the set c! operations is specdied. but not the set of values. Ganencs should ideally exhibit strong type czecking, information hiding, separate compilation of interfaces and implementations, and efficienc~es of both time and space. The programming language Modula-2 prov~des strong support :sr data abstraction. but no obvious capability for defining generics. This article briefly reviews Fast proposals for simulating generics in Modula-2 and proposes a new solution. The new solution uses a new statement, the "Include" statemem. which can be added with a preprocessor.

10832 DOD-STD-2167A MILITARY STANDARD DEFENSE SYSTEM S O W A R E DEVELOPMENT. Report No. DoD-STD-2167A. 61 p. Feb 1988. Avail. from Data 8 Analysis Center for Software, P.O. Box 120. Utica. NY 13503. Order No. DoD-STD-2167A.

Key words:

This Department of Defense standard, along with the accompanying Data Item Descriptions (DIDs). establishes uniform requirements for the acquisition. cevelopment. or support of software systems. These requirements apply to the development cf Computer Software Configuration Items (CSCls), including the software element of firmware. The requirements of this standard lie in the areas of software developent management, software engineering, formal qualification testing, software product evaluation, software configuration managment, and transitioning to software support.

Title Key-Word-in-Context List 6622 ABSTRACT DATA TYPES "' KNOWLEDGE-BASED PROGRAMMING USING 10020 ABSTRACT DATA TYPES--THE FOUNDATION OF AN INTERACTIVE ADA COMMAND

ENVIRONMENT "' ADA

9643 ABSTRACTION "' THE IMPACT OF OBJECT-ORIENTED DECOMPOSITION ON PROCEDURAL

10400 ABSTRACTION VS. THE 'TOP-DOWN' MINDSET IN AN CBJECT-ORIENTED ENVIRONMENT "' REUSE BY DESIGN: DATA

7740 ACCESS AND OBJECT ORIENTED PARADIGM IN A LANGUAGE THAT SUPPORTS NEITHER "' IMPLEMENTING AN

7643 ACCIDENTS OF SOFIWARE ENGINEEZING **' NO SILVER BULLET: ESSENCE AND

7251 ACQUAINTANCE/INSTANCE VARIABLE MODEL FOR OBJECT-ORIENTED PROGRAMMING -0.

7335 ACTORS: A MODEL OF CONCURRENT COMPUTATION IN DISTRIBUTED SYSTEMS "' 7558 ACTORS: EXPLOITING URGE-SCALE PARALLELISM "' CONCURRENT PROGRAMMING

USING

10103 ADA "' ADA*: A CLASS AND INHERITANCE EXTENSICN FOR 5665 ADA "' DESIGN METRICS AND 5692 ADA "' MODULAR SOFTWARE CONSTRUCTION AND GBJECT-ORIENTED DESIGN

USING 10007 ADA "' PROBLEMS ENCOUNTERED IN LEARNING OBJECT ORIENTED DESIGN USING 10057 ADA "' SIMULATING INHERITANCE WITH

10103 ADA*: A CLASS AND INHERITANCE EXTENSION FOR ADA "'

10020 ADA ABSTRACT DATA TYPES--THE FOUNDATION OF A N INTERACTIVE ADA COMMAND ENVIRONMENT "'

Page 66: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

7728 A3A AND Ai JOIN FGECES **'

10108 ADA AND CSJECT CXIENTED DESIGN IN REAL T;:,IE DISTZIGUTED SYSTEMS "' PRACTICAL EXPERIENCES OF

8167 ADA CODE "* PROTOlYPE REAL-TIME MCNITOR: 10020 ADA COMMAND ENVIRONMENT "* ADA ABSTRACT DATA NPES--THE FOUNDATION OF

AN INTERACTIVE 10104 ADA DESIGN "' DYNAMIC BINDING AND INHERITANCE IN AN OBJECT-ORIENTED 10042 ADA DESIGN TOOL "' 9984 ADA DESIGNED DISTRIBUTED OPERATING SYSTEM "' AN 6471 ADA HIGH ORDER LANGUAGE "' PROCEEDINGS OF THE 2ND AFSC AVIONICS

STANDARDIZATION CONFERENCE. VOLUME 8. TUTORIAL: MIL-STD-1815 10824 ADA IN THE SEL: EXPERIENCES WlTH OPERATIONAL ADA PROJECTS "' 7720 ADA PRESENTATION USING PICTOGRAPHS (SHARP) DEFINITION, APPLICATION AND

AUTOMATION "' STRUCTURED HIERARCHICAL 2341 ADA PROGaAMMING LANGUAGE "' REFERENCE MANUAL FOR THE 10824 ADA PROJECTS "' ADA IN THE SEL: EXPERIENCES WlTH OPERATIONAL 8225 ADA (SECOND EDITION) "' S O W A R E ENGINEERING WlTH 6876 ADA SOfTVVARE DESIGN ISSUES "'

10819 ADA: STFIUCTURES, TOOLS, AND SUBSYSTEMS "' SOFnnJARE COMPONENTS WITH

7885 ADA TECHNOLOGY HELD IN ARLINGTON. VIRGINIA ON MARCH 16-19, 1987 "' PROCEEDINGS OF THE 5TH ANNUAL NATIONAL CONFERENCE ON

101 06 ADA-BASED OBJECT ORIENTED LANGUAGE FOR CONCURRENT, REAL-TIME. DISTRIBUTED SYSTEMS "' DRAGOON: AN

6471 AFSC AVIONICS STANDARDIZATION CONFERENCE. VOLUME 8. TUTORIAL: MIL-STD- 1815 ADA HIGH ORDER LANGUAGE "' PROCEEDINGS OF THE 2ND

8916 Al - NEW CHOICES "' OBJECT-ORIENTED PROGRAMMING IN 6035 Al DEVELOPMENT SYSTEM "' APPLICATIONS DEVELOPMENT USING A HYBRID 7728 Al JOlN FORCES "' ADA AND

8335 AIR BAlTLE SIMULATOR "' SWIRL: AN OBJECT-ORIENTED

10829 ALGEBRA OF PROGRAMS "' CAN PROGRAMMING BE LIBERATED FROM THE VON NEUMANN STYLE? A FUNCTIONAL S N L E AND ITS

9931 ANALYSIS AND DESIGN "' HOW TO INTEGRATE OBJECT ORIENTATION WITH STRUCTURED

8223 ANALYSIS AND SYSTEM SPECIFICATION "' STRUCTURED 10019 ANALYSIS (SERA) "' EVALUATION OF TEACHING SOFIWARE ENGINEERING

REQUIRE?AENTS

9361 ANIMATION "' OBJECT-ORIENTED COMPUTER

7720 APPLICATION AND AUTOMATION "' STRUCTURED HIERARCHICAL ADA PRESENTATION USlNG PICTOGRAPHS (SHARP) DEFINITION,

6035 APPLICATIONS DEVELOPMENT USING A HYBRID A1 DEVELOPMENT SYSTEM "'

10317 APPLIED TO A PROTOTYPE WORKSTATION "' OBJECT-ORIENTED PROGRAMMING

7809 ARCHITECTURE OF THE EXODUS EXTENSIBLE DBMS: A PRELIMINARY REPORT "' THE

7885 ARLINGTGN, VIRGINIA ON MARCH 16-19, 1987 "' PROCEEDINGS OF M E 5TH ANNUAL NATIONAL CONFERENCE ON ADA TECHNOLOGY HELD IN

8796 ASSISTANT "' DESIGN OF KNOWLEDGE-BASED SYSTEMS WlTH A KNOWLEDGE- BASED

9726 ASSURING GOOD S N L E FOR OBJECT-ORIENTED PROGRAMS "'

n20 AUTOMATION "' STRUCTURED HIERARCHICAL ADA PRESENTATION USING PICTOGRAPHS (SHARP) DEFINITION. APPLICATION AND

Page 67: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

;A71 AVIONICS STANDAZGIZAT:C:: CC?JFE=Ei.iCE. '.':LL'r,lE 5. TLITORIAL: !.!lL-STZ-;al5 ;.;A HIGH CiiDEFi LANGUAGE "' 'ROCEEZiNGS CF TiiE 2 1 D AFSC

8962 3ACKGROUND AND EXPEZiENCE "* SENEFiAL CZJECT-SRIENTED SOF7VJARE DEVEFCPM ENT:

8335 BAlTLE SIMULATCR "* SWIRL: AN OBJECT-ORIENTED AIR

101 04 BINDING AND INHERITANCE IN AN GBJECT-ORIENTED ADA DESIGN "* DYNAMIC

10205 BIPARTITE INHERITANCE NETWORK REPRESENTATION FOR OBJECT ORIENTED SOFTWARE DESIGN "* A STRUCTURED

8915 BUILDING INTEGRATED EXPERT SYSTEMS "'

7643 BULLET: ESSENCE AND ACCIDENTS OF SOFTWARE ENGINEERING **' NO SILVER

7642 CASE FOR OBJECT-ORIENTED DESIGN **' REUSABILIN: THE 9392 CASE TOOL FOR DISTRIBUTED SYSTEMS "' PROTOB: A HIERARCHICAL OBJECT-

ORIENTED

5682 CHANGE IN PROGRAMMING TECHNOLOGY **' MESSAGEiOBJECT PROGRAMMING: AN EVOLUTIONARY

8916 CHOICES **' OBJECT-ORIENTED PROGRAMMING IN Al - NEW

101 03 CLASS AND INHERITANCE EXTENSION FOR ADA "* ADA*: A

10826 CLASS: THE OBJVISP MODEL "* METACLASSES ARE FiRST

7882 COCKPIT DISPLAYS "' A GRAPHICS ENVIRONMENT SUPPORTING THE RAPID PROTOTYPING OF PICTORIAL

8167 CODE "* PROTOlYPE REAL-TIME MONITOR: ADA 8936 CODE GENERATION "' AN OBJECT-ORIENTED STRUCTURED DESIGN METHOD FOR

7739 COLLECTOR "' A PERSISTENT OBJECT STORE WITH AN INTEGRATED GARBAGE

10020 COMMAND ENVIRONMENT "* ADA ABSTRACT DATA TYPES--THE FOUNDATION OF AN INTERACTIVE ADA

9727 COMPARISON OF TWO OBJECT-ORIENTED LANGUAGES "* A PRACTICAL

10819 COMPONENTS WITH ADA: STRUCTURES. TOOLS, AND SUBSYSTEMS **' S O W A R E

7335 COMPUTATION IN DISTRIBUTED SYSTEMS "' ACTORS: A MODEL OF CONCURRENT

9361 COMPUTER ANIMATION "* OBJECT-ORIENTED

5507 CONCEPTS AND RESEARCH DIRECTIONS "* REUSABLE SOFTWARE ENGINEERING:

91 73 CONCEPTUAL OBJECT-ORIENTED DESIGN "'

7335 CONCURRENT COMPUTATION IN DISTRIBUTED SYSTEMS "' ACTORS: A MODEL OF 7558 CONCURRENT PROGRAMMING USING ACTORS: EXPLOITING LARGE-SCALE

PARALLELISM "'

10106 CONCURRENT. REAL-TIME. DISTRIBUTED SYSTEMS "* DRAGOON: AN ADA-BASED OBJECT ORIENTED LANGUAGE FOR

7885 CONFERENCE ON ADA TECHNOLOGY HELD IN ARLINGTON, VIRGINIA ON MARCH 16-19, 1987 "' PROCEEDINGS OF THE 5TH ANNUAL NATIONAL

8436 CONFERENCE PROCEEDINGS "' OOPSLA '87 8726 CONFERENCE PROCEEDINGS "' OOPSLA '88

6471 CONFERENCE. VOLUME 8. TUTORIAL: MIL-STD-1815 ADA HIGH ORDER LANGUAGE "' PROCEEDINGS OF THE 2ND AFSC AVIONICS STANDARDIZATION

10820 CONSTRUCTION "' OBJECT-ORIENTED SOFWARE 5692 CONSTRUCTION AND GBJECT-ORIENTED DESIGN USING ADA "* MODULAR

SOf-TWARE

Page 68: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

5701 CONSTiiUCT:GN AND CBJECT-Zi7iEI"ITED DESIGN USING I',!ODULA-2 "* :,lODULA SOFTWARE

101 10 CONTROL SYSTEM "' PROMETHEE. DESIGNING A PROCESS

10414 CRITERIA FOR MODULE INTERFACES **' ON 2305 CRITERIA TO BE USED IN DECOMPOSING SYSTEFAS INTO MODULES "' ON THE

10636 CURRENT RESEARCH IN OBJECT-ORIENTED DESIGN "' SURVEYING

10400 DATA ABSTRACTION VS. M E TOP-DOWN' MINDSET IN AN OBJECT-ORIENTED ENVIRONMENT "' REUSE BY DESIGN:

9267 DATA FLOW NOTATIONS "' REPRESENTING OBJECT ORIENTED SPECIFICATIONS AND DESIGNS WlTH EXTENDED

10831 DATA STRUCTURES IN MODUU-2 "' ON IMPLEMENTING GENERIC 7041 DATA STRUCTURES IN MODUU-2 "' TWO APPROACHES TO IMPLEMENTING GENERIC 6622 DATA TYPES "' KNOWLEDGE-BASED PROGRAMMING USING ABSTRACT 10020 DATA TYPES--THE FOUNDATION OF AN INTERACTIVE ADA COMMAND ENVIRONMENT

"* ADA ABSTRACT

8233 DATABASE DESIGN USING AN OBJECT-ORIENTED METHODOLOGY "' RELATIONAL

7809 DBMS: A PRELIMINARY REPORT "' THE ARCHITECTURE OF M E EXODUS EXTENSIELE

2305 DECOMPOSING SYSTEMS INTO MODULES "' ON THE CRITERIA TO BE USED IN

9643 DECOMPOSITION ON PROCEDURAL ABSTRACTION "' THE IMPACT OF OBJECT- ORIENTED

10832 DEFENSE SYSTEM SOFIWARE DEVELOPMENT "' DOD-STD-2167A MILITARY STANDARD

7720 DEFINITION, APPLICATION AND AUTOMATION "' STRUCTURED HIERARCHICAL ADA PRESENTATION USING PICTOGRAPHS (SHARP)

10825 DELEGATION IS INHERITANCE *'*

10828 DESCRIPTIONS "' PROGRAM DESIGN BY INFORMAL ENGLISH

10046 DESIGN "* A METHOD OF TRANSlATlNG FUNCTIONAL REQUIREMENTS FOR OBJECT- ORIENTED

10205 DESIGN "' A STRUCTURED BIPARTITE INHERITANCE NETWORK REPRESENTATION FOR OBJECT ORIENTED SOFWARE

9173 DESIGN "' CONCEPTUAL OBJECT-ORIENTED 10104 DESIGN "' DYNAMIC BINDING AND INHERITANCE IN AN OBJECT-ORIENTED ADA 9931 DESIGN "' HOW TO INTEGRATE OBJECT ORIENTATION WlTH STRUCTURED ANALYSIS

AND 5676 DESIGN "' PRlNClPLES OF PROGRAM 8166 DESIGN "' PROTOTYPE REAL-TIME MONITOR: 7642 DESIGN "' REUSABILIlY: THE CASE FOR OBJECT-ORIENTED 8914 DESIGN "' SUCCESSES AND LIMITATIONS OF OBJECT-ORIENTED 10636 DESIGN "' SURVEYING CURRENT RESEARCH IN OBJECT-ORIENTED 6043 DESIGN - A STUDENT'S PERSPECTIVE "* OBJECT ORIENTED DESIGN VS

STRUCTURED 10828 DESIGN BY INFORMAL ENGLISH DESCRIPTIONS "' PROGRAM

10400 DESIGN: DATA ABSTRACTION VS. THE 'TOP-DOWN' MINDSET IN AN OBJECT-ORIENTED ENVIRONMENT "' REUSE BY

10108 DESIGN IN REAL TIME DISTRIBUTED SYSTEMS "' PRACTlCAL EXPERIENCES OF ADA AND OBJECT ORIENTED

6876 DESIGN ISSUES "' ADA SOFTWARE 8936 DESIGN METHOD FOR CODE GENERATION "' AN OBJECT-ORIENTED STRUCTURED 5665 DESIGN METRICS AND ADA "' 8796 DESIGN OF KNOWLEDGE-BASED SYSTEMS WlTH A KNOWLEDGE-8ASED ASSISTANT "'

Page 69: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

'3624 GESIG;.I OF TFE E i F F f l ,.3RAFiES "' LES5C:l.S F=-31.: TkE 3437 SESIGN S'rSTE?,! StiEL- "' AN C2JEST-SFiiENTE3 10042 DESIGN TGGL "' ADA 5692 DESIGN USiNG ADA *" '.!ODUL;\R SCFTL'JARE SC:iSiFiUCTTON AND CEJECT-

ORIENTED 10007 DESIGN USING ADA "' "ROBLE?AS EPICCUNTE3EZ IF4 LEARNING OBJECT ORIENTED 8233 DESIGN USING AN OEJECT-CRIENTED METHODGLZGY "' RELATIONAL DATABASE 5701 DESIGN USING !vlODCU-2 "' 'AOGULA S G W A R E CZNSTRUCTION AND OBJECT-

ORIENTED 6043 DESIGN VS STRUCTUFED DESiGN -- A STUDENTS PESSPECTIVE "' OBJECT

ORIENTED

9984 DESIGNED DISTRIBUTED OPERATING SYSTEM **' AN ADA

101 10 DESIGNING A PROCESS CONTROL SYSTEM "* PROMETHEE: 9561 DESIGNING WlTH OBJECTS "'

9267 DESIGNS WlTH EXTENDED DATA FLOW NOTATIONS **' REPRESENTING OBJECT ORIENTED SPECIFICATIONS AND

7465 DEVELOPMENT "' AN INTEGRATED APPROACH TO SOFWARE 10832 DEVELOPMENT "' 000-STD-2167A MILITARY STANDARD DEFENSE SYSTEM

SOFTWARE 10830 DEVELOPMENT "' OBJECT-ORIENTED 10818 DEVELOPMENT "' SYSTEM 8616 DEVELOPMENT **' TUTORIAL: NEW PARADIGMS FOR SOFTWARE 8482 DEVELOPMENT AND ENHANCEMENT "' A SPIRAL MODEL OF SOFTWARE

8962 DEVELOPMENT: BACKGROUND AND EXPERIENCE "' GENERAL OBJECT-ORIENTED SOFlwARE

6393 DEVELOPMENT ENVIRONMENT "' THE DISTRIBUTED DEVELOPMENT SYSTEM - A MONOLITHIC S O W A R E

6362 DEVELOPMENT IN HlSP "' HIERARCHICAL SOFiWARE 9566 DEVELOPMENT MODEL "' AN OBJECT-BASED 6677 DEVELOPMENT PROCESS "' APPROACHES TO STRUCTURING THE SOFTWARE 6035 DEVELOPMENT SYSTEM "' APPLICATIONS DEVELOPMENT USING A HYBRID A1 6393 DEVELOPMENT SYSTEM - A MONOLITHIC SOFWARE DEVELOPMENT ENVIRONMENT

"' M E DISTRIBUTED 6035 DEVELOPMENT USING A HYBRID Al DEVELOPMENT SYSTEM "' APPLICATIONS

5507 DIRECTIONS "' REUSABLE SOFWJARE ENGINEESING. CONCEPTS AND RESEARCH

7882 DISPLAYS "' A GRAPHICS ENVIRONMENT SUPPORTING THE RAPID PROTOIYPING OF PICTORIAL COCKPIT

6393 DISTRIBUTED DEVELOPMENT SYSTEM - A MONOLITHIC SOFWARE DEVELOPMENT ENVIRONMENT "' THE

9984 DISTRIBUTED OPERATING SYSTEM "' AN ADA DESIGNED 7335 DISTRIBUTED SYSTEMS "' ACTORS: A MODEL OF CONCURRENT COMPUTATION IN 10106 DISTRIBUTED SYSTEMS *" DRAGOON: AN ADA-BASED OBJECT ORIENTED LANGUAGE

FOR CONCURRENT, REAL-TIME. 10108 DISTRIBUTED SYSTEMS "' PRACTICAL EXPERIENCES OF ADA AND OBJECT

ORIENTED DESIGN IN REAL TIME 9392 DISTRIBUTED SYSTEMS "' PROTOB: A HIERARCHICAL OBJECT-ORIENTED CASE TOOL

FOR

10832 000-STD-2167A MILITARY STANDARD DEFENSE SYSTEM SGF-TWARE DEVELOPMENT " 0

9922 DOMAIN-SPECIFIC REUSE: AN OBJECT-ORIENTED AND KNOWLEDGE-BASED APPROACH "'

10106 DRAGOON: AN ADA-BASED OBJECT ORIENTED LANGUAGE FOR CONCURRENT, REAL- TIME. DISTRIBUTED SYSTEMS "'

Page 70: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

'3104 DYNAMIC BINDING AND IPIHEFiiTANCE ::.I K.1 CEJEZT-GFIIEPITES ADA DESIG;J "'

ECONOMICS "' SGFTWARE ENGINE5 =iNG

7864 EDITOR "' OED: OBJECT-ORIENTED

8577 EIFFEL: A LANGUAGE AND ENVIRONLIENT FGR SGFTWARE ENGINEERING "*

10624 EIFFEL LIBRARIES "' LESSONS FRCLI THE DESIGN OF THE

7593 EIFFEL: PROGRAMMING FOR REUSABlLlN AND EXTENDABILIN "'

10007 ENCOUNTERED IN LEARNING OBJECT ORIENTED DESIGN USING ADA "' PROBLEMS

7625 END-USER REQUIREMENTS) "' JOINT PROGiiAM ON RAPID PROTOlYPING. RAPIER (RAPID PROTOlYPlNG TO INVESTIGATE

85T7 ENGINEERING "' EIFFEL: A LANGUAGE AND ENVIRONMENT FOR SOrrWARE 7643 ENGINEERING "' NO SILVER BULLET: ESSENCE AND ACCIDENTS OF SOFTWARE 168 ENGINEERING "' THE MYTHICAL MAN-MONTH ESSAYS ON SOFIWARE

8220 ENGINEERING: A PRACTITIONER'S APPROACH (SECOND EDITION) "' S O W A R E 5507 ENGINEERING: CONCEPTS AND RESEARCH DIRECTIONS "' REUSABLE S O W A R E

2946 ENGINEERING ECONOMICS "' SOFTWARE 1001 9 ENGINEERING REQUIREMENTS ANALYSIS (SERA) "' EVALUATION OF TEACHING

SOFIWARE 8225 ENGINEERING WITH ADA (SECOND EDITION) **' SOFWARE

10828 ENGLISH DESCRIPTIONS "' PROGRAM DESIGN BY INFORMAL

8482 ENHANCEMENT "' A SPIRAL MODEL OF SOFTWARE DEVELOPMENT AND

ENVIRONMENT "' ADA ABSTRACT DATA TYPES--THE FOUNDATION OF AN INTERACTIVE ADA COMMAND ENVIRONMENT "' REUSE BY DESIGN: DATA ABSTRACTION VS. M E TOP-DOWN' MINDSET IN AN OBJECT-ORIENTED ENVIRONMENT "' THE DISTRIBUTED DEVELOPMENT SYSTEM - A MONOLITHIC SOFIWARE DEVELOPMENT ENVIRONMENT BASED ON OBJECTS AND RELATlONS "* A SIMPLE SOFIWARE ENVIRONMENT EVALUATION METHODOLOGY FOR OBJECT-ORIENTED SYSTEMS: PART I- M E METHODOLOGY "' A PROGRAMMING ENVIRONMENT FOR SOFWARE ENGINEERING "' EIFFEL: A LANGUAGE AND ENVIRONMENT SUPPORTING REUSE OF OBJECT-ORIENTED SOFTWARE "' A PROGRAMMING ENVIRONMENT SUPPORTING THE RAPID PROTOTYPING OF PICTORIAL COCKPIT DISPLAYS "* A GRAPHICS

7631 ENVIRONMENTS "' SOFTWARE PROCESS INTERPRETATION AND SOFWARE

6726 EQUALllY FOR PROLOG "'

168 ESSAYS ON SOFTWARE ENGINEERING "' THE MYWIICAL MAN-MONTH

7643 ESSENCE AND ACCIDENTS OF SORWARE ENGINEERING "' NO SILVER BULLET:

10799 EVALUATION METHODOLOGY FOR OBJECT-ORIENTED SYSTEMS: PART I- THE METHODOLOGY "' A PROGRAMMING ENVIRONMENT

9930 EVALUATION METRICS "' OBJECT-ORIENTED GRAPHICAL INFORMATION SYSTEMS : RESEARCH PLAN AND

10019 EVALUATION OF TEACHING S O m A R E ENGINEEqING REQUIREMENTS ANALYSIS (SERA) "'

1081 7 EVOLUTIONARY APPROACH "' OBJECT ORIENTED PROGRAMMING: AN 5682 EVOLUTIONARY CHANGE IN PROGRAMMING TECHNOLOGY "* MESSAGEIOBJECT

PROGRAMMING: AN

9058 EW SYSTEMS "' OBJECT-ORIENTED SIMULATION OF

Page 71: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

- rrpad I O W ~ L '0821 f;iZ\:,.IPLE 3 F MULTIPLE .::HE3iT;\:;CE : : I Cr- "- '

10666 E:(CEjJTiCN HANDLING C2JECT-ZFilEPITE3 ?=SG.".AMh1ING. TZWARGS A SYNTHESIS "'

7809 ZXODUS EXTENSIBLE 32MS. A PRELIMINARY ?E=CFiT "' T'rlE Ai?CHITECTURE OF TSE

8962 EXPERIENCE "' GENERAL CBJECT-SRIENTEZ SGF7;IARE DEVELOPMENT: BACKGROUND AND

10108 EXPERIENCES OF ADA AND OBJECT ORIENTE3 DESIGN IN REAL TIME DISTRIBUTED SYSTEMS "' PRACTICAL

10824 EXPERIENCES WlTH OPERATIONAL ADA PROJECTS "' ADA IN THE SEL:

891 5 EXPERT SYSTEMS "' BUILDING INTEGRATE3

7558 EXPLOITING LARGE-SCALE PARALLELISM "' SONCURRENT PROGRAMMING USING ACTORS:

8949 EXPRESS PARALLELISM "' PO: AN OBJECT ?AODEL TO

7593 EXTENDABILITY "* EIFFEL: PROGRAMMING FOR REUSABILIlY AND

9267 EXTENDED DATA FLOW NOTATlONS "' REPRESENTING OBJECT ORIENTED SPECIFICATIONS AND DESIGNS WlTH

7809 EXTENSIBLE DBMS: A PRELIMINARY REPORT **' THE ARCHITECTURE OF THE EXODUS

7138 EXTENSION "' ADDING META RULES TO OPS5. A PROPOSED 10103 EXTENSION FOR ADA **' ADA++: A CLASS AND INHEiilTANCE

7763 EXTENSIONS TO MODULA-2 "'

10826 FIRST CLASS: ME OBJVISP MODEL "' METACLASSES ARE

8169 FLIGHT SIMULATORS **' AN OOD PARADIGM FOR 8787 FLIGHT SIMULATORS, 2ND EDITION "' AN 0 0 D PARADIGM FOR

9267 FLOW NOTATIONS **' REPRESENTING OBJECT ORIENTED SPECIFICATIONS AND DESIGNS WlTH EXTENDED DATA

7728 FORCES "' ADA AND Al JOIN

7554 FORMAL TECHNIQUES FOR SPECIFICATION AND VALIDATION OF TACTICAL SYSTEMS 0..

10020 FOUNDATlON OF AN INTERACTIVE ADA COMMAND ENVIRONMENT **' ADA ABSTRACT DATA NPES--THE

10046 FUNCTlONAL REOUIREMENTS FOR OBJECT-CRIENTED DESIGN "' A METHOD OF TRANSLATING

10829 FUNCTIONAL S N L E AND ITS ALGEBRA OF PROGRAMS "' CAN PROGRAMMING BE LIBERATED FROM THE VON NEUMANN S N L E ? A

6004 FUNDAMENTALS OF PROGRAMMING LANGUAGES *"

7739 GARBAGE COLLECTOR **' A PERSISTENT OBJECT STORE WlTH AN INTEGRATED

8936 GENERATION "' AN OBJECT-ORIENTED STRUCTURED DESIGN METHOD FOR CODE

10831 GENERIC DATA STRUCTURES IN MODULA-2 "' ON IMPLEMENTING 7041 GENERIC DATA STRUCTURES IN MODULA-2 "' TWO APPROACHES TO IMPLEMENTING

10822 GENERICIlY VERSUS INHERITANCE "'

9930 GRAPHICAL INFORMATION SYSTEMS : RESEARCH PLAN AND EVALUATION METR1C.S "' ORJECT-ORIENTED

7882 GRAPHICS ENVIRONMENT SUPPORTING THE RAPID PROTOlYPING OF PICTORIAL COCKPIT DISPLAYS "* A

Page 72: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

10668 HANDLING AND OBJECT-CaIENTED PROGRAMMING. TOWARDS A SYNTHESIS "' EXCEPTION

7720 HIERARCHICAL ADA PRESENTATION USING PICTGGRAPHS (SHARP) DEFINITION, APPLICATION AND AUTOMATION "' STRUCTURED

9392 HIERARCHICAL OBJECT-ORIENTED CASE TOOL FOR DISTRIBUTED SYSTEMS "' PROTOB: A

6362 HIERARCHICAL SOFRVARE DEVELOPMENT IN HlSP "'

6471 HIGH ORDER LANGUAGE "' PROCEEDINGS OF W E 2ND AFSC AVIONICS STANDARDIZATION CONFERENCE. VOLUME 8. TUTORIAL: MIL-STD-1815 ADA

6362 HlSP "* HIERARCHICAL SOFWARE DEVELOPMENT IN

6035 HYBRID Al DEVELOPMENT SYSTEM "' APPLICATIONS DEVELOPMENT USING A

10799 1- THE METHODOLOGY **' A PROGRAMMING ENVIRONMENT EVALUATION METHODOLOGY FOR OBJECT-ORIENTED SYSTEMS: PART

9643 IMPACT OF OBJECT-ORIENTED DECOMPOSITION ON PROCEDURAL ABSTRACTION "' THE

7740 IMPLEMENTING AN ACCESS AND OBJECT ORIENTED PARADIGM IN A LANGUAGE THAT SUPPORTS NEITHER "'

10831 IMPLEMENTING GENERIC DATA STRUCTURES IN MODULA-2 "' ON 7041 IMPLEMENTING GENERIC DATA STRUCTURES IN MODULA-2 **' TWO APPROACHES TO

10828 INFORMAL ENGLISH DESCRIPTIONS "' PROGRAM DESIGN BY

9930 INFORMATION SYSTEMS : RESEARCH PLAN AND EVALUATION METRICS "' OBJECT- ORIENTED GRAPHICAL

10825 INHERITANCE "' DELEGATION IS 10822 INHERITANCE "* GENERlClTY VERSUS 10103 INHERITANCE EXTENSION FOR ADA "' ADA++: A CLASS AND 10104 INHERITANCE IN AN OBJECT-ORIENTED ADA DESIGN "' DYNAMIC BINDING AND 10821 INHERITANCE IN C++ "' A PRACTICAL EXAMPLE OF MULTIPLE 10205 INHERITANCE NETWORK REPRESENTATION FOR OBJECT ORIENTED S O W A R E

DESIGN "' A STRUCTURED BIPARTITE 10057 INHERITANCE WlTH ADA "' SIMULATING

7251 INSTANCE VARIABLE MODEL FOR OBJECT-ORIENTED PROGRAMMING "' ACQUAINTANCE/

9931 INTEGRATE OBJECT ORIENTATION WlTH STRUCTURED ANALYSIS AND DESIGN "' HOW TO

7465 INTEGRATED APPROACH TO SOFTWARE DEVELOPMENT **' AN 8915 INTEGRATED EXPERT SYSTEMS "' BUILDING 7739 INTEGRATED GARBAGE COLLECTOR "' A PERSISTENT OBJECT STORE WlTH AN

10020 INTERACTIVE ADA COMMAND ENVIRONMENT "* ADA ABSTRACT DATA TYPES-THE FOUNDATION OF AN

9467 INTERFACE MANAGEMENT SYSTEMS "' PROTOTYPES FROM STANDARD USER

10414 INTERFACES "' ON CRITERIA FOR MODULE

7631 INTERPRETATION AND SOFMlARE ENVIRONMENTS "' SOITWARE PROCESS

7625 INVESTIGATE END-USER REQUIREMENTS) "' JOINT PROGRAM ON RAPID PROTONPING. RAPIER (RAPID PROTOTYPING TO

6876 ISSUES "' ADA SOFIWARE DESIGN

7728 JOIN FORCES "' ADA AND Al

7625 JOINT PROGRAM ON RAPID PROTONPING. RAPIER (RAPID PROTOP~PING 10 INVESTIGATE END-USER REQUIREMENTS) "'

Page 73: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

5922 KNOWLECGE-EASED APPROACZ "' SSMAiN-SFECi?:: ZEi:SE. ,AN Ce.!E~T-.~FllENTE3 AND

8796 KNOWLEDGE-BASED ASSISTANT "' SESIG?.I OF KNCq;I'LE!2GE-aASED SYSTEMS WITH A

6622 KNOWLEDGE-BASED PROGRAMMING USING ABSTRACT CATA N P E S "' 8796 KNOWLEDGE-BASED SYSTEMS L'JITH A KNOWLEDGE-3ASED ASSISTANT "' DESIGN

OF

6471 LANGUAGE "' PROCEEDINGS OF THE 2ND AFSC AVIONICS STANDARDIZATION CONFERENCE. VOLUME 8. TUTORIAL: MIL-STD-1815 ADA HIGH ORDER

2341 LANGUAGE "' REFERENCE MANUAL FOR THE ADA PROGRAMMING 8773 LANGUAGE "' TWIRL: TACTICAL WARFARE IN M E ROSS 8577 LANGUAGE AND ENVIRONMENT FOR SOFTWARE ENGINEERING "' EIFFEL: A 10106 LANGUAGE FOR CONCURRENT. REAL-TIME. DISTRIBUTED SYSTEMS "' DRAGOON: AN

ADA-BASED OBJECT ORIENTED n 4 0 LANGUAGE THAT SUPPORTS NEITHER *** IMPLEMENTING AN ACCESS AND OBJECT

ORIENTED PARADIGM IN A

9727 LANGUAGES "' A PRACTICAL COMPARISON OF TWO OBJECT-ORIENTED 5971 LANGUAGES "' AN OVERVIEW OF SIGNAL REPRESENTATIONS IN SIGNAL

PROCESSING 6004 LANGUAGES "' FUNDAMENTALS OF PROGRAMMING

7558 LARGE-SCALE PARALLELISM "' CONCURRENT PROGaAMMING USING ACTORS: EXPLOITING

10827 LAW-BASED APPROACH TO OBJECT-ORIENTED PROGRAMMING "' A

10007 LEARNING OBJECT ORIENTED DESIGN USING ADA "' PROBLEMS ENCOUNTERED IN

10624 LESSONS FROM THE DESIGN OF THE EIFFEL LIBRARIES "'

10829 LIBERATED FROM THE VON NEUMANN STYLE? A FUNCTIONAL S N L E AND ITS ALGEBRA OF PROGRAMS "' CAN PROGRAMMING BE

10624 LIBRARIES "' LESSONS FROM THE DESIGN OF THE EIFFEL

8914 LIMITATIONS OF OBJECT-ORIENTED DESIGN "' SUCCESSES AND

9467 MANAGEMENT SYSTEMS "' PROTONPES FROM STANDARD USER INTERFACE

168 MAN-MONTH ESSAYS ON SOFTWARE ENGINEERING "' M E MYTHICAL

2341 MANUAL FOR THE ADA PROGRAMMING LANGUAGE *" REFERENCE

5682 MESSAGE/OBJECT PROGRAMMING: AN EVOLUTIONARY CHANGE IN PROGRAMMING TECHNOLOGY "'

5326 MESSAGE/OBJECT PROGRAMMING MODEL **' THE

7138 META RULES TO OPS5: A PROPOSED EXTENSION *'* ADDING

10826 METACLASSES ARE FIRST CLASS: THE OBJVISP MODEL "'

9132 METHOD "' AN OBJECT-ORIENTED REQUIREMENTS SPECIFICATION 8936 METHOD FOR CODE GENERATION "' AN OBJECT-ORIENTED STRUCTURED DESIGN 10046 METHOD OF TRANSLATING FUNCTIONAL REQUIREMENTS FOR OBJECT-ORIENTED

DESIGN *" A

10799 METHODOLOGY "' A PROGRAMMING ENVIRONMENT EVALUATION METHODOLOGY FOR OBJECT-ORIENTED SYSTEMS: PART I- THE

8233 METHODOLOGY "' RELATIONAL DATABASE DESIGN USING AN OBJECT-ORIENTED 10799 METHODOLOGY FOR OBJECT-ORIENTED SYSTEMS: PART I- THE METHODOLOGY **' A

PROGRAMMING ENVIRONMENT EVALUATION

9930 METRICS "' OBJECT-ORIENTED GRAPHICAL INFORMATION SYSTEMS : RESEARCH PLAN AND EVALUATION

5665 METRICS AND ADA "' DESIGN

Page 74: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

10832 :.:ILITARY STANDARD DEFENSE SYSTEM SOFTVIARE DEIJELOPMENT **' DOD-STZI- 2167A

6471 !AIL-STD-1815 ADA HlGH ORDER LANGUAGE "* PROCEE3INGS OF THE 2ND AFSC AVIONICS STANDARDIZATION CONFERENCE. VOLUME 8. TUTORIAL:

10400 I.1INDSET IN AN OBJECT-ORIENTED ENVIRONMENT "' REUSE BY DESIGN: DATA ABSTRACTION VS. THE 'TOP-DOWN'

9566 MODEL "' AN OBJECT-BASED DEVELOPMENT 10826 MODEL "' METACLASSES ARE FIRST CLASS: THE OBJVISP 5326 IAODEL "' THE MESSAGUOBJECT PROGRAMMING 7251 MODEL FOR OBJECT-ORIENTED PROGRAMMING "* ACQUAINTANCEANSTANCE

VARIABLE 7335 MODEL OF CONCURRENT COMPUTATION IN DISTRIBUTED SYSTEMS "' ACTORS: A 8482 MODEL OF SOFTWARE DEVELOPMENT AND ENHANCEMENT "' A SPIRAL 8949 MODEL TO EXPRESS PARALLELISM "' PO: AN OBJECT

7136 MODPASCAL "' AN OVERVIEW OF

5701 MODULA SOFIWARE CONSTRUCTION AND OBJECT-ORIENTED DESIGN USING MODULA-2 "'

7763 IAODULA-2 "' EXTENSIONS TO 5701 MODULA-2 "' MODULA SOFTWARE CONSTRUCTION AND OBJECT-ORIENTED DESIGN

USING 10831 MODULA-2 *'' ON IMPLEMENTING GENERIC DATA STRUCTURES IN 7041 MODULA-2 "' TWO APPROACHES TO IMPLEMENTING GENERIC DATA STRUCTURES IN

5692 MODULAR SOFTWARE CONSTRUCTION AND OBJECT-ORIENTED DESIGN USING ADA **'

10414 MODULE INTERFACES "' ON CRITERIA FOR

2305 MODULES "' ON M E CRITERIA TO BE USED IN DECOMPOSING SYSTEMS INTO

8167 MONITOR: ADA CODE *'* PROTOTYPE REAL-TIME 8166 MONITOR: DESIGN *'' PROTOTYPE REAL-TIME

a93 MONOLITHIC SOFTWARE DEVELOPMENT ENVIRONMENT THE DISTRIBUTED DEVELOPMENT SYSTEM - A

10821 MULTIPLE INHERITANCE IN C++ *" A PRACTICAL EXAMPLE OF

168 IAYTHICAL MAN-MONTH ESSAYS ON SOFTWARE ENGINEERING "' THE

7885 NATIONAL CONFERENCE ON ADA TECHNOLOGY HELD IN ARLINGTON, VIRGINIA ON MARCH 16-19.1987 "' PROCEEDINGS OF THE 5TH ANNUAL

6471 NO AFSC AVIONICS STANDARDIZATION CONFERENCE. VOLUME 8. TUTORIAL: MIL- STD-1815 ADA HlGH ORDER LANGUAGE "' PROCEEDINGS OF M E 2

8787 NO EDITION "' AN 0 0 D PARADIGM FOR FLIGHT SIMULATORS, 2

7740 NEIMER "' IMPLEMENTING AN ACCESS AND OBJECT ORIENTED PARADIGM IN A LANGUAGE THAT SUPPORTS

10205 NETWORK REPRESENTATION FOR OBJECT ORIENTED SOFWARE DESIGN "' A STRUCTURED BIPARTITE INHERITANCE

10829 NEUMANN STYLE? A FUNCTIONAL STYLE AND ITS ALGEBRA OF PROGRAMS *" CAN PROGRAMMING BE LIBERATED FROM THE VON

9267 NOTATIONS *'' REPRESENTING OBJECT ORIENTED SPECIFICATIONS AND DESIGNS WITH EXTENDED DATA FLOW

8949 OBJECT MODEL TO EXPRESS PARALLELISM "' PO: AN 9931 OBJECT ORIENTATION WITH STRUCTURED ANALYSIS AND DESIGN "' HOW TO

INTEGRATE 10108 OBJECT ORIENTED DESIGN IN REAL TIME DISTRIBUTED SYSTEMS "' PRACTICAL

EXPERIENCES OF ADA AND

Page 75: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

YO007 CKJECT CRIENTE3 GESIGN USING ADA "' ?GOELEMS ENCCL'NTERE3 IN LEARNING 3043 OBJECT ORIENTE3 DESIGN VS STRUCTURED GESIGN -- A STUGENT'S ?ERSPECTi'JE ... 10106 OBJECT ORIENTED LANGUAGE FOR CONCURRENT, REAL-TIME. DISTRIBUTED

SYSTEMS "' DRAGOON: AN ADA-BASED 7740 OBJECT ORIENTED PARADIGM IN A LANGUAGE THAT SUPPORTS NEITHER "'

IMPLEMENTING AN ACCESS AND 10817 OBJECT ORIENTED PROGRAMMING: AN EVOLUTIONARY APPROACH "' 10205 OBJECT ORIENTED SOFTWARE DESIGN "' A STRUCTURED BIPARTITE INHERITANCE

NETWORK REPRESENTATION FOR 9267 OBJECT ORIENTED SPECIFICATIONS AND DESIGNS WlTH EXTENDED DATA FLOW

NOTATIONS "* REPRESENTING 5682 OBJECT PROGRAMMING: AN EVOLUTIONARY CHANGE IN PROGRAMMING

TECHNOLOGY "' MESSAGEl 5326 OBJECT PROGRAMMING MODEL "' THE MESSAGE1 7739 OBJECT STORE WlTH AN INTEGRATED GARBAGE COLLECTOR "' A PERSISTENT

9566 OBJECT-BASED DEVELOPMENT MODEL "' AN

10104 OWECT-ORIENTED ADA DESIGN "' DYNAMIC BINDING AND INHERITANCE IN AN 8335 OBJECT-ORIENTED AIR BAlTLE SIMULATOR "' SWIRL: AN 9922 OBJECT-ORIENTED AND KNOWLEDGE-BASED APPROACH "' DOMAIN-SPECIFIC

REUSE: AN 9392 OBJECT-ORIENTED CASE TOOL FOR DISTRIBUTED SYSTEMS "' PROTOB: A

HIERARCHICAL 9361 OBJECT-ORIENTED COMPUTER ANIMATION "' 9643 OBJECT-ORIENTED DECOMPOSITION ON PROCEDURAL ABSTRACTION "' THE IMPACT

OF 10046 OBJECT-ORIENTED DESIGN "' A METHOD OF TRANSLATING FUNCTIONAL

REOUIREMENTS FOR 9173 OBJECT-ORIENTED DESIGN "' CONCEPTUAL 7642 OBJECT-ORIENTED DESIGN "' REUSABILIlY: THE CASE FOR 8914 OBJECT-ORIENTED DESIGN "* SUCCESSES AND LIMITATIONS OF 10636 OBJECT-ORIENTED DESIGN "' SURVEYING CURRENT RESEARCH IN 8437 OBJECT-ORIENTED DESIGN SYSTEM SHELL "' AN 5692 OBJECT-ORIENTED DESIGN USING ADA "' MODULAR SOFTWARE CONSTRUCTION

AND 5701 OBJECT-ORIENTED DESIGN USING MODULA-2 "' MODULA SOFTWARE

CONSTRUCTION AND 10830 OBJECT-ORIENTED DEVELOPMENT "' 7864 OBJECT-ORIENTED EDITOR "' OED: 10400 OBJECT-ORIENTED ENVIRONMENT "' REUSE BY DESIGN: DATA ABSTRACTION VS.

THE 'TOP-DOWN' MINDSET IN AN 9930 OBJECT-ORIENTED GRAPHICAL INFORMATION SYSTEMS : RESEARCH PLAN AND

EVALUATION M ETRICS "' 9727 OBJECT-ORIENTED LANGUAGES "' A PRACTICAL COMPARISON OF TWO 8233 OBJECT-ORIENTED METHODOLOGY **' RELATIONAL DATABASE DESIGN USING AN 10827 OBJECT-ORIENTED PROGRAMMING "' A LAW-BASED APPROACH TO 7251 OBJECT-ORIENTED PROGRAMMING "' ACQUAINTANCUINSTANCE VARIABLE MODEL

FOR 8652 OBJECT-ORIENTED PROGRAMMING "' TYPE THEORIES AND 8403 OBJECT-ORIENTED PROGRAMMING? "' WHAT IS 1031 7 OBJECT-ORIENTED PROGRAMMING APPLIED TO A PROTONPE WORKSTATION "' 8916 OBJECT-ORIENTED PROGRAMMING IN Al - NEW CHOICES "' 10668 OBJECT-ORIENTED PROGRAMMING: TOWARDS A SYNTHESIS "' EXCEPTION

HANDLING AND 9726 OBJECT-ORIENTED PROGRAMS "' ASSURING GOOD S N L E FOR 9132 OSJECT-ORIENTED REQUIREMENTS SPECIFICATION METHOD "' AN

Page 76: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

9058 OBJECT-ORIENTED SIMUUTION OF EW SYSTEMS "' 8515 OBJECT-ORIENTED SOTvlJARE "* A PROGFIALlMING ENVIRONMENT SUPPORTING

REUSE OF 10820 OBJECT-ORIENTED SOFPflARE CONSTRUCTION "' 8962 OBJECT-ORIENTED SOFITJARE DEVELOPMENT: BACKGROUND AND EXPERIENCE "'

GENERAL 8936 OBJECT-ORIENTED STRUCTURED DESIGN METHOD FOR CODE GENERATION "' AN 8662 OBJECT-ORIENTED SYSTEMS "' 10799 OBJECT-ORIENTED SYSTEMS: PART I- THE METHODOLOGY "' A PROGRAMMING

ENVIRONMENT EVALUATION METHODOLOGY FOR

9561 OBJECTS "* DESIGNING WlTH 7100 OBJECTS AND RELATIONS *" A SIMPLE SOFTWARE ENVIRONMENT BASED ON

10826 OBJVISP MODEL "' METACLASSES ARE FIRST CLASS: THE

7864 OED: OBJECT-ORIENTED EDITOR "*

8169 OOD PARADIGM FOR FLIGHT SIMULATORS "' AN 8787 0 0 D PARADIGM FOR FLIGHT SIMULATORS, 2ND EDITION "* AN

8436 OOPSLA '87 CONFERENCE PROCEEDINGS **' 8726 00PSLA '88 CONFERENCE PROCEEDINGS "'

9984 OPERATING SYSTEM "' AN ADA DESIGNED DISTRIBUTED

10824 OPERATIONAL ADA PROJECTS "' ADA IN THE SEL: EXPERIENCES WlTH

7138 OPS5: A PROPOSED EXTENSION "' ADDING META RULES TO

6471 ORDER LANGUAGE "' PROCEEDINGS OF M E 2ND AFSC AVIONICS STANDARDIZATION CONFERENCE. VOLUME 8. TUTORIAL: MIL-STD-1815 ADA HIGH

9931 ORIENTATION WlTH STRUCTURED ANALYSIS AND DESIGN "' HOW TO INTEGRATE OBJECT

10108 ORIENTED DESIGN IN REAL TIME DISTRIBUTED SYSTEMS "' PRACTICAL EXPERIENCES OF ADA AND OBJECT

10007 ORIENTED DESIGN USING ADA "* PROBLEMS ENCOUNTERED IN LEARNING OBJECT 6043 ORIENTED DESIGN VS STRUCTURED DESIGN -- A STUDENT'S PERSPECTIVE "*

OBJECT 10106 ORIENTED LANGUAGE FOR CONCURRENT, REAL-TIME, DISTRIBUTED SYSTEMS *"

DRAGOON: AN ADA-BASED OBJECT 7740 ORIENTED PARADIGM IN A LANGUAGE THAT SUPPORTS NEITHER "' IMPLEMENTING

AN ACCESS AND OBJECT 10817 ORIENTED PROGRAMMING: AN EVOLUTIONARY APPROACH "* OBJECT 10205 ORIENTED SOFiWARE DESIGN *'* A STRUCTURED BIPARTITE INHERITANCE

NETWORK REPRESENTATION FOR OBJECT 9267 ORIENTED SPECIFICATIONS AND DESIGNS WlTH EXTENDED DATA FLOW NOTATIONS

"* REPRESENTING OBJECT

7136 OVERVIEW OF MODPASCAL "' AN 5971 OVERVIEW OF SIGNAL REPRESENTATIONS IN SIGNAL PROCESSING LANGUAGES "*

AN

8169 PARADIGM FOR FLIGHT SIMULATORS "' AN OOD 8787 PARADIGM FOR FLIGHT SIMULATORS, 2ND EDITION "' AN OOD 7740 PARADIGM IN A LANGUAGE THAT SUPPORTS NEITHER "' IMPLEMENTING AN ACCESS

AND OBJECT ORIENTED

8616 PARADIGMS FOR SOFWARE DEVELOPMENT "' TUTORIAL: NEW

7558 PARALLELISM "' CONCURRENT PROGRAMMING USING ACTORS: EXPLOITING LARGE- SCALE

8949 PARALLELISM "' PO: AN OBJECT MODEL TO EXPRESS

Page 77: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

7739 PERSISTENT CSJECT STORE WITH k:4 INTEGEATED GARBAGE CCLLECTOR "' A

6043 PERSPECTI'JE * * * CaJECT CRIENTED CESIGN VS STRUCTURED DESIGN -- A STUDENT'S

7720 PICTOGRAPHS (SHARP) DEFINITICN. APPLICATION AND AUTOMATION "' STRUCTURED HIERARCHICAL ADA PRESENTATION USING

7882 PICTORIAL COCKPIT DISPLAYS "' A GRAPHICS ENVIRONMENT SUPPORTING THE RAPID PROTONPING OF

9930 PLAN AND EVALUATION METRICS "' OBJECT-ORIENTED GRAPHICAL INFORMATION SYSTEMS : RESEARCH

8949 PO: AN OBJECT MODEL TO EXPRESS PARALLELISM "'

9727 PRACTICAL COMPARISON OF TWO OBJECT-ORIENTED LANGUAGES "* A 10821 PRACTICAL EXAMPLE OF MULTIPLE INHERITANCE IN C++ "' A 10108 PRACTlCAL EXPERIENCES OF ADA AND OBJECT ORIENTED DESIGN IN REAL TIME

DISTRIBUTED SYSTEMS "*

8220 PRACTITIONER'S APPROACH (SECOND EDITION) "* SOFTWARE ENGINEERING; A

7809 PRELIMINARY REPORT "' THE ARCHITECTURE OF THE EXODUS EXTENSIBLE DBMS: A

n 2 0 PRESENTATION USING PICTOGRAPHS (SHARP) DEFINITION, APPLICATION AND AUTOMATION "' STRUCTURED HIERARCHICAL ADA

5676 PRINCIPLES OF PROGRAM DESIGN "'

10007 PROBLEMS ENCOUNTERED IN LEARNING OBJECT ORIENTED DESIGN USING ADA "'

9643 PROCEDURAL ABSTRACTION "' THE IMPACT OF OBJECT-ORIENTED DECOMPOSITION ON

8436 PROCEEDINGS "' OOPSLA '87 CONFERENCE 8726 PROCEEDINGS "* 00PSLA '88 CONFERENCE 6471 PROCEEDINGS OF THE 2ND AFSC AVIONICS STANDARDIZATION CONFERENCE.

VOLUME 8. TUTORIAL: MIL-STD-1815 ADA HIGH ORDER LANGUAGE "' 7885 PROCEEDINGS OF THE 5TH ANNUAL NATIONAL CONFERENCE ON ADA TECHNOLOGY

HELD IN ARLINGTON, VIRGINIA ON MARCH 16-1 9, 1987 "'

6677 PROCESS "* APPROACHES TO STRUCTURING THE SOFTWARE DEVELOPMENT 101 10 PROCESS CCNTROL SYSTEM "* PROMETHEE. DESIGNING A 7631 PROCESS INTERPRETATION AND SOFTWARE ENVIRONMENTS "' SOFTWARE

5971 PROCESSING LANGUAGES *" AN OVERVIEW OF SIGNAL REPRESENTATIONS IN SIGNAL

5676 PROGRAM DESIGN "* PRINCIPLES OF 10828 PROGRAM DESIGN BY INFORMAL ENGLISH DESCRIPTIONS "' 7625 PROGRAM ON RAPID PROTONPING. RAPIER (RAPID PROTOTYPING TO INVESTIGATE

END-USER REQUIREMENTS) "' JOINT

10827 PROGRAMMING "* A LAW-BASED APPROACH TO OBJECT-ORIENTED 7251 PROGRAMMING "' ACQUAINTANCUINSTANCE VARIABLE MODEL FOR OBJECT-

ORIENTED 8652 PROGRAMMING "' TYPE THEORIES AND OBJECT-ORIENTED

8403 PROGRAMMING? **' WHAT IS OBJECT-ORIENTED

1081 7 PROGRAMMING: AN EVOLUTIONARY APPROACH "' OBJECT ORIENTED 5682 PROGRAMMING. AN EVOLUTIONARY CHANGE IN PROGRAMMING TECHNOLOGY "'

MESSAGUOBJECT

10317 PROGRAMMING APPLIED TO A PROTONPE WORKSTATION "* OBJECT-ORIENTED 10829 PROGRAMMING BE LIBERATED FROM THE VON NEUMANN STYLE? A FUNCTIONAL

S N L E AND ITS ALGEERA OF PROGRAMS "' CAN

Page 78: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

10796 PROGRAMMING ErdVIRONMENT EVALUATIGPJ METHODOLOGY FOR OBJECT-SRIENTE3 SYSTEMS: PART I- THE METHODOLOGY "' A

8515 PROGRAMMING ENVIRONMENT SUPPORTING REUSE OF OBJECT-ORIENTED SOFTWARE "' A

7593 PROGRAMMING FOR REUSABILIW AND EXTENDABILITY *** EIFFEL: 8916 PROGRAMMING IN Al - NEW CHOICES "' OBJECT-ORIENTED 2341 PROGRAMMING LANGUAGE **' REFERENCE MANUAL FOR THE ADA 6004 PROGRAMMING LANGUAGES *** FUNDAMENTALS OF 5326 PROGRAMMING MODEL "' THE MESSAGEOBJECT 5682 PROGRAMMING TECHNOLOGY **' MESSAGWOBJECT PROGRAMMING: AN

EVOLUTIONARY CHANGE IN

10668 PROGRAMMING: TOWARDS A SYNTHESIS "' EXCEPTION HANDLING AND OBJECT- ORIENTED

6622 PROGRAMMING USING ABSTRACT DATA TYPES "' KNOWLEDGE-BASED 7558 PROGRAMMING USING ACTORS: EXPLOITING LARGE-SCALE PARALLELISM "'

CONCURRENT

9726 PROGRAMS "' ASSURING GOOD STYLE FOR OBJECT-ORIENTED 10829 PROGRAMS "' CAN PROGRAMMING BE LIBERATED FROM M E VON NEUMANN

SlYLE? A FUNCTIONAL STYLE AND ITS ALGEBRA OF

10824 PROJECTS "' ADA IN THE SEL: EXPERIENCES WITH OPERATIONAL ADA

6726 PROLOG "' EQUALITY FOR

101 10 PROMEMEE: DESIGNING A PROCESS CONTROL SYSTEM "'

7138 PROPOSED EXTENSION "* ADDING META RULES TO OPSS: A

9392 PROTOB: A HIERARCHICAL OBJECT-ORIENTED CASE TOOL FOR DISTRIBUTED SYSTEMS "'

8167 PROTOTYPE REAL-TIME MONITOR: ADA CODE "* 8166 PROTOTYPE REAL-TIME MONITOR: DESIGN "' 1031 7 PROTOTYPE WORKSTATION "' OBJECT-ORIENTED PROGRAMMING APPLIED TO A

9467 PROTOTYPES FROM STANDARD USER INTERFACE MANAGEMENT SYSTEMS "'

7882 PROTOTYPING OF PICTORIAL COCKPIT DISPLAYS **' A GRAPHICS ENVIRONMENT SUPPORTING THE RAPlD

7625 PROTOTYPING. RAPIER (RAPID PROTOTYPING TO INVESTIGATE END-USER REQUIREMENTS) "* JOINT PROGRAM ON RAPlD

7625 PROTOTYPING TO INVESTIGATE END-USER REQUIREMENTS) "' JOINT PROGRAM ON RAPlD PROTOTYPING. RAPIER (RAPID

7882 RAPlD PROTOTYPING OF PICTORIAL COCKPIT DISPLAYS "' A GRAPHICS ENVIRONMENT. SUPPORTING THE

7625 RAPlD PROTONPING. RAPIER (RAPID PROTOWPING TO INVESTIGATE END-USER REQUIREMENTS) "' JOINT PROGRAM ON

7625 RAPlD PROTOTYPING TO INVESTIGATE END-USER REQUIREMENTS) '** JOINT PROGRAM ON RAPID PROTOWPING. RAPIER (

7625 RAPIER (RAPID PROTOTYPING TO INVESTIGATE END-USER REQUIREMENTS) "' JOINT PROGRAM ON RAPlD PROTOWPING.

10108 REAL TIME DISTRIBUTED SYSTEMS "* PRACTICAL EXPERIENCES OF ADA AND OBJECT ORIENTED DESIGN IN

10106 REAL-TIME. DISTRIBUTED SYSTEMS "' DRAGOON: AN ADA-BASED OBJECT ORIENTED LANGUAGE FOR CONCURRENT,

8167 REAL-TIME MONITOR: ADA CODE *** PROTOTYPE 8166 REAL-TIME MONITOR: DESIGN "' PROTONPE

Page 79: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

2341 =.EFEEENCE ?.IANUAL FGR THE ADA PROGZA:vlMING LANGL'AGE "'

8233 GELATIONAL DATABASE GESIGN USING AFJ OEJECT-GRIENTED METHODOLOGY "'

7100 ?ELATIONS "' A SIMPLE SOFlWARE ENVIRONMENT BASED ON OBJECTS AND

10205 FiEPRESENTATlON FOR OBJECT ORIENTED S O W A R E DESIGN "' A STRUCTURED BIPARTITE INHERITANCE NETWORK

5971 REPRESENTATIONS IN SIGNAL PROCESSING LANGUAGES "' AN OVERVIEW OF SIGNAL

9267 REPRESENTING OBJECT ORIENTED SPECIFICATIONS AND DESIGNS WlTH EXTENDED DATA FLOW NOTATIONS "'

7625 REQUIREMENTS) "' JOINT PROGRAM ON RAPID PROTOTYPING. RAPIER (RAPID PROTOiYPlNG TO INVESTIGATE END-USER

10019 REQUIREMENTS ANALYSIS (SERA) "' EVALUATION OF TEACHING SOFfWARE ENGINEERING

10046 REQUIREMENTS FOR OBJECT-ORIENTED DESIGN "' A METHOD OF TRANSLATING FUNCTIONAL

9132 REQUIREMENTS SPECIFICATION METHOD "' AN OBJECT-ORIENTED

5507 RESEARCH DIRECTIONS "' REUSABLE SOFiWARE ENGINEERING: CONCEPTS AND 10636 RESEARCH IN OBJECT-ORIENTED DESIGN "' SURVEYING CURRENT 9930 RESEARCH PLAN AND EVALUATION METRICS ** * OBJECT-ORIENTED GRAPHICAL

INFORMATION SYSTEMS :

7593 REUSABILIlY AND EXTENDABlLllY "' EIFFEL; PROGRAMMING FOR

7642 REUSABILIN: M E CASE FOR OBJECT-ORIENTED DESIGN "*

5507 REUSABLE SOFlWARE ENGINEERING: CONCEPTS AND RESEARCH DIRECTIONS "'

9922 REUSE: AN OBJECT-ORIENTED AND KNOWLEDGE-BASED APPROACH "' DOMAIN- SPECIFIC

10400 REUSE BY DESIGN: DATA ABSTRACTION VS. THE TOP-DOWN' MINDSET IN AN OBJECT-ORIENTED ENVIRONMENT "'

8515 REUSE OF OBJECT-ORIENTED SOFTWARE "' A PROGRAMMING ENVIRONMENT SUPPORTING

8T/3 ROSS LANGUAGE "' TWIRL: TACTICAL WARFARE IN THE

7138 RULES TO OPS5: A PROPOSED EXTENSION "' ADDING META

8220 SECOND EDITION) "' SOFTWARE ENGINEERING: A PRACTITIONER'S APPROACH ( 8225 SECOND EDITION) "' SOFTWARE ENGINEERING WITH ADA (

10824 SEL: EXPERIENCES WITH OPERATIONAL ADA PROJECTS "' ADA IN THE

10019 SERA) "' EVALUATION OF TEACHING SOFTWARE ENGINEERING REQUIREMENTS ANALYSIS (

7720 SHARP) DEFINITION, APPLICATION AND AUTOMATION "' STRUCTURED HIERARCHICAL ADA PRESENTATION USING PICTOGRAPHS (

8437 SHELL "' AN OBJECT-ORIENTED DESIGN SYSTEM

5971 SIGNAL PROCESSING LANGUAGES "' AN OVERVIEW OF SIGNAL REPRESENTATIONS IN

5971 SIGNAL REPRESENTATIONS IN SIGNAL PROCESSING UNGUAGES "' AN OVERVIEW OF

7643 SILVER BULLET: ESSENCE AND ACCIDENTS OF SOFWARE ENGINEERING "' NO

7100 SIMPLE SOFIWARE ENVIRONMENT BASED ON OBJECTS AND RELATIONS "' A

10057 SIMULATING INHERITANCE WlTH ADA "'

Page 80: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

9058 SIMULATION OF EW SYSTEFAS "' SaECT-CZlENTED

8335 SIMULATOR "' SWIRL: AN OBJECT-GRIENTE3 AIR BATTLE

8169 SIMULATORS **' AN OOD PARADIGM FOR FLIGHT

8787 SIMULATORS. 2ND EDITION "' AN OOD PARADIGM FOR FL!GHT

8223 SPECIFICATION "' STRUCTURED ANALYSIS AND SYSTEM 7554 SPECIFICATION AND VALIDATION OF TACTICAL SYSTEMS "' FORMAL TECHNIQUES

FOR 9132 SPECIFICATION METHOD "' AN OBJECT-ORIENTED REQUIREMENTS

9267 SPECIFICATIONS AND DESIGNS WlTH EXTENDED DATA FLOW NOTATIONS "' REPRESENTING OBJECT ORIENTED

8482 SPIRAL MODEL OF SOFTWARE DEVELOPMENT AND ENHANCEMENT "' A

10832 STANDARD DEFENSE SYSTEM SOFTWARE DEVELOPMENT "' DOD-STD-2167A MILITARY

9467 STANDARD USER INTERFACE MANAGEMENT SYSTEMS "' PROTOTYPES FROM

6471 STANDARDIZATION CONFERENCE. VOLUME 8. TUTORIAL: MIL-STD-1815 ADA HIGH ORDER LANGUAGE "* PROCEEDINGS OF THE 2ND AFSC AVIONICS

7739 STORE WlTH AN INTEGRATED GARBAGE COLLECTOR "* A PERSISTENT OBJECT

9931 STRUCTURED ANALYSIS AND DESIGN "' HOW TO INTEGRATE OBJECT ORIENTATION WlTH

8223 STRUCTURED ANALYSIS AND SYSTEM SPECIFICATION "' 10205 STRUCTURED BIPARTITE INHERITANCE NETWORK REPRESENTATION FOR OBJECT

ORIENTED SOFTWARE DESIGN "' A 6043 STRUCTURED DESIGN -- A STUDENT'S PERSPECTIVE "' OBJECT ORIENTED DESIGN

vs 8936 STRUCTURED DESIGN METHOD FOR CODE GENERATION "' AN OBJECT-ORIENTED 7720 STRUCTURED HIERARCHICAL ADA PRESENTATION USING PICTOGRAPYS (SHARP)

DEFINITION, APPLICATION AND AUTOMATION "'

10831 STRUCTURES IN MODULA-2 "' ON IMPLEMENTING GENERIC DATA 7041 STRUCTURES IN MODULA-2 "* TWO APPROACHES TO IMPLEMENTING GENERIC DATA

10819 STRUCTURES, TOOLS, AND SUBSYSTEMS "' SOFTWARE COMPONENTS WlTH ADA:

6677 STRUCTURING THE SOFTWARE DEVELOPMENT PROCESS "' APPROACHES TO

6043 STUDENT'S PERSPECTIVE "' OBJECT ORIENTED DESIGN 'JS STRUCTURED DESIGN -- A

10829 STYLE? A FUNCTIONAL STYLE AND ITS ALGEBRA OF PROGaAMS "' CAN PROGRAMMING BE LIBERATED FROM THE VON NEUMANN

10829 STYLE AND ITS ALGEBRA OF PROGRAMS "' CAN PROGRAMMING BE LIBERATED FROM THE VON NEUMANN STYLE? A FUNCTIONAL

9726 STYLE FOR OBJECT-ORIENTED PROGRAMS "' ASSURING GOOD

10819 SUBSYSTEMS "' SOFWARE COMPONENTS WlTH ADA: STRUCTURES, TOOLS, AND

8914 SUCCESSES AND LIMITATIONS OF OBJECT-ORIENTED DESiGN "'

8515 SUPPORTING REUSE OF OBJECT-ORIENTED SOFIWARE "' A PROGRAMMING ENVIRONMENT

7882 SUPPORTING THE RAPID PROTOTYPING OF PICTORIAL CCCKPIT DISPLAYS "' A GRAPHICS ENVIRONMENT

7740 SUPPORTS NEITHER *** IMPLEMENTING AN ACCESS AND OBJECT ORIENTED PARADIGM IN A LANGUAGE M A T

10636 SURVEYING CURRENT RESEARCH IN OBJECT-ORIENTED DESIGN "'

Page 81: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

3335 SinJIRL. AN OZJECT-CRIENTED AIR BAlTLE SIMUUTGR **'

: 0668 SYNTHESIS ** ' EXCEPTION HANDLING AND OBJECT-ZRIENTED PROGZAMMING. TOWARDS A

9984 SYSTEM **' AN ADA DESIGNED DISTRIBUTED OPERATING 6035 SYSTEM "' APPLICATIONS DEVELOPMENT USING A HYBRID A1 DEVELOPMENT 10110 SYSTEM "' PROMETHEE: DESIGNING A PROCESS CONTROL m93 SYSTEM - A MONOLITHIC SORWARE DEVELOPMENT ENVIRONMENT *** THE

DISTRIBUTED DEVELOPMENT 10818 SYSTEM DEVELOPMENT *" 8437 SYSTEM SHELL "' AN OBJECT-ORIENTED DESIGN 10832 SYSTEM SOrrWARE DEVELOPMENT *** DOD-STD-2167A MILITARY STANDARD

DEFENSE 8223 SYSTEM SPEC IFICATION "' STRUCTURED ANALYSIS AND

7335 SYSTEMS "' ACTORS: A MODEL OF CONCURRENT COMPUTATION IN DISTRIBUTED 8915 SYSTEMS "' BUILDING INTEGRATED EXPERT 10106 SYSTEMS "' DRAGOON: AN ADA-BASED OBJECT ORIENTED LANGUAGE FOR

CONCURRENT, REAL-TIME, DISTRIBUTED 7554 SYSTEMS "' FORMAL TECHNIQUES FOR SPECIFICATION AND VALIDATION OF

TACTICAL SYSTEMS "' OBJECT-ORIENTED SYSTEMS "' OBJECT-ORIENTED SIMULATION OF EW SYSTEMS "' PRACTICAL EXPERIENCES OF ADA AND OBJECT ORIENTED DESIGN IN REAL TIME DISTRIBUTED SYSTEMS **' PROTOB: A HIERARCHICAL OBJECT-ORIENTED CASE TOOL FOR DISTRIBUTED SYSTEMS "' PROTOTYPES FROM STANDARD USER INTERFACE MANAGEMENT SYSTEMS : RESEARCH PLAN AND EVALUATION METRICS "' OBJECT-ORIENTED GRAPHICAL INFORMATION SYSTEMS INTO MODULES "' ON THE CRITERIA TO BE USED IN DECOMPOSING

SYSTEMS: PART I- THE METHODOLOGY "' A PROGRAMMING ENVIRONMENT EVALUATION METHODOLOGY FOR OBJECT-ORIENTED

SYSTEMS WITH A KNOWLEDGE-BASED ASSISTANT "' DESIGN OF KNOWLEDGE- BASED

TACTICAL SYSTEMS "' FORMAL TECHNIQUES FOR SPECIFICATION AND VALIDATION OF TACTICAL WARFARE IN THE ROSS LANGUAGE "' TWIRL:

TEACHING SOFTWARE ENGINEERING REQUIREMENTS ANALYSIS (SERA) *" EVALUATION OF

TECHNIQUES FOR SPECIFICATION AND VALIDATION OF TACTICAL SYSTEMS "' FORMAL

TECHNOLOGY "* MESSAGElOBJECT PROGRAMMING: AN EVOLUTIONARY CHANGE IN PROGRAMMING TECHNOLOGY HELD IN ARLINGTON, VIRGINIA ON MARCH 16-19. 1987 "' PROCEEDINGS OF THE 5TH ANNUAL NATIONAL CONFERENCE ON ADA

TH ANNUAL NATIONAL CONFERENCE ON ADA TECHNOLOGY HELD IN ARLINGTON, VIRGINIA ON MARCH 16-19, 1987 "' PROCEEDINGS OF THE 5

THEORIES AND OBJECT-ORIENTED PROGRAMMING "' N P E

TIME DISTRIBUTED SYSTEMS "' PRACTICAL EXPERIENCES OF ADA AND OBJECT ORIENTED DESIGN IN REAL

TOOL "' ADA DESIGN TOOL FOR DISTRIBUTED SYSTEMS "' PROTOB: A HIERARCHICAL OBJECT-ORIENTED CASE

Page 82: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

10819 TOOLS. AND Sti3SYSTEMS "' S6FTL'JARE CCMPONENTS WITH ADA: STRUCTURES.

10400 TOP-DOWN' MINDSET IN AN OEJECT-CRIENTED ENVIRONMENT "* REUSE BY DESiGiJ. DATA ABSTRACTlON VS. THE '

10668 TOWARDS A SYNTHESIS "* EXCEPTION HANDLING AND OBJECT-ORIENTED PROGRAMMING:

10046 TRANSLATING FUNCTIONAL REQUIREMENTS FOR OBJECT-ORIENTED DESIGN "* A METHOD OF

€471 TUTORIAL: MIL-STD-1815 ADA HIGH ORDER LANGUAGE **' PROCEEDINGS OF THE 2ND AFSC AVIONICS STANDARDIZATION CONFERENCE. VOLUME 8.

8616 TUTORIAL: NEW PARADIGMS FOR SOFTWARE DEVELOPMENT "'

8773 TWIRL: TACTICAL WARFARE IN THE ROSS LANGUAGE "'

8652 TYPE MEORIES AND OBJECT-ORIENTED PROGRAMMING "'

6622 TYPES "' KNOWLEDGE-BASED PROGRAMMING USlNG ABSTRACT DATA

10020 TYPES--THE FOUNDATION OF AN INTERACTIVE ADA COMMAND ENVIRONMENT "' ADA ABSTRACTDATA

2305 USED IN DECOMPOSING SYSTEMS INTO MODULES "' ON THE CRITERIA TO BE

9467 USER INTERFACE MANAGEMENT SYSTEMS "' PROTOTYPES FROM STANDARD

6035 USlNG A HYBRID Al DEVELOPMENT SYSTEM "' APPLICATIONS DEVELOPMENT 6622 USlNG ABSTRACT DATA TYPES "' KNOWLEDGE-BASED PROGRAMMING 7558 USING ACTORS; EXPLOITING LARGE-SCALE PARALLELISM "' CONCURRENT

PROGRAMMING 5692 USlNG ADA "' MODULAR SOFIWARE CONSTRUCTION AND OBJECT-ORIENTED

DESIGN 10007 USlNG ADA "' PROBLEMS ENCOUNTERED IN LEARNING OBJECT ORIENTED DESIGN 8233 USING AN OBJECT-ORIENTED METHODOLOGY "' RELATIONAL DATABASE DESIGN 5701 USING MODULA-2 "' MODULA SOFWARE CONSTRUCTION AND OBJECT-ORIENTED

DESIGN 7720 USlNG PICTOGRAPHS (SHARP) DEFINITION, APPLICATION AND AUTOMATION "'

STRUCTURED HIERARCHICAL ADA PRESENTATION

7554 VALIDATION OF TACTICAL SYSTEMS "' FORMAL TECHNIQUES FOR SPECIFICATION AND

7251 VARIABLE MODEL FOR OBJECT-ORIENTED PROGRAMMING "' ACQUAINTANCEINSTANCE

10822 VERSUS INHERITANCE "* GENERICIN

7885 VIRGINIA ON MARCH 16-19, 1987 "' PROCEEDINGS OF M E 5TH ANNUAL NATIONAL CONFERENCE ON ADA TECHNOLOGY HELD IN ARLINGTON.

10829 VON NEUMANN STYLE? A FUNCTIONAL STYLE AND ITS ALGEBRA OF PROGRAMS "' CAN PROGRAMMING BE LIBERATED FROM THE

6043 VS STRUCTURED DESIGN -- A STUDENT'S PERSPECTIVE "* OBJECT ORIENTED DESIGN

10400 VS. THE 'TOP-DOWN' MINDSET IN AN OBJECT-ORIENTED ENVIRONMENT "' REUSE BY DESIGN: DATA ABSTRACTION

8773 WARFARE IN M E ROSS LANGUAGE "' TWIRL: TACTICAL

10317 WORKSTATION "' OBJECT-ORIENTED PROGRAMMING APPLIED TO A PROTOTYPE

Page 83: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Author Index Abbott. Russell J.: 7465. 1 C828

Agha, eul AWulnabi: 7335

Agha, Gul: 7558 Agrest~, William W.: 861 6

Agusa. Kiyoshl: 7251, 85 15

Amir, Shawn: 8915

Atkinson, Colin: 101 06

Auxiette, G.: 101 10

Backus, John: 10829

Bailey, Stephen C.: 9561

Bailin, Sidney C.: 9132

Baker, Louis: 7728

Baldassari, Marco: 9392

Barlev, S.: 10042

Barry, Brian M.: 9058

Bayan, Rami: 10706

Beloff, Bruno: 7739

Blaha, Michael R.: 8233

Boehrn, Barry W.: 2946, 8482

Boehrn-Davis, D.A.: 6677

Booch, Grady: 8225, 10819, 10830

Borger, Mark W.: 6876

Bose, Sharada: 9467

Boudreaux, J. C.: 7864

Braaten, Alan J.: 7882

Bradshaw, Susan M.: 7720

Brooks, Frederick P., Jr: 168, 7643

Brown, Russell: 10046

Buchanan, Bruce G.: 8796

Bulrnan. David M.: 9566

Burno, Giorgio: 9392

Buser, Jon F.: 9267

Byrne, William E.: 7 2 0

Cabadi, J. F.: 101 10

Cardigno, Cinzia: 10106

Carey, Michael J.: 7809

Carlson, Greg: 10007

Cesar, Edison M., Jr.: 8773 Cioch, Frank A.: 9643

Cointe. Pierre: 10826

Corradi, Antonio: 8949

Cox, Brad J.: 5326. 5682. 10817

Page 84: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Cronln. NellA 7720

D'lppol~to. Richara: 81 66. 8 169, 8787

Danforth. Scott: 8652

Davanzo, P.: 10042

Davis, Ned W.: 10108

Demarco. Tom: 8223

Destombes. Catherine: 101 06

Dew~tt, David J.: 7809

Di Maio. Andrea: 10106

Diederich, Jim: 8437

Dobbs, Verlynda: 10046

Dominick. Wayne 0.: 9930, 10799

Donaldson, C. M.: 10104

Dony, Christophe: 10668

Ellis, John W., Jr.: 8773

Forestier, J. P.: 10103

Fornar~no, C. : 1 0 1 03

Foy, Ralph A.: 10020

Franchi-Zannettacci, P.: 101 03

Frank, Daniel: 7809

Freeman. Peter: 5507

Futatsugi, Kokichi: 6362

Gardner, Michael R.: 8914

Giarla, William: 8773

Graefe, Goetz: 7809

Grubbs, Jeffrey W.: 10400

Handloser Ill, Fred: 9467

Harland, David M.: 7739

Hetzron. J.: 10042

Hewrtt, Carl: 7558 Hoffman. Daniel: 1 041 4

Holland, Ian M.: 9726

Horowitz, Ellis: 6004

Irving, Malcolm: 101 08

Iscoe, Neil: 9922

Jackson. M.A.: 5676 Jackson, Michael: 1081 8

Jacobs. Jeff: 8916 Jamsa. Kris A.: 6043

Johnson. Ralph E.: 10636

Kehler, Thomas P.: 6035

Klahr, Philip: 8335. 8773

Kornfeld. William A.: 6726

Page 85: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Auhl. Frederick S.. : C317 Kunz, John C.. 5035 Lee. John E.: 10108 Lee, Kenneth: 8166. 81 69, 8X7

Leonardi, Letizia: 8949

Levitz. M.: 10042

Lewis, T. G.: 9467 Lieberherr. Karl J.: 9726

Liu, Chang-Shyan: 10205

Loftus, William P.: 10020 Lorensen, William E.: 9361 Lovejoy, Alan: 7763 Maclennan, Bruce J.: 7100 McArthur, David: 8335

McDevitt, David E.: 7720 Methfessel, Rand: 7740

Meyer, Bertrand: 7593, 7642,8577, 10624. 10820, 10822

Milton, Jack: 8437

Minsky, Naftaly H.: 10827 Moreau, Dennis R.: 9930, 10799

Morgan, Tom: 891 6 Muller, Robert J.: 8936

Muralikrishna, M.: 7809

Narain, Sanjai: 8335, 8773

Novak, Gordon S., Jr.: 6622

Oei, Charles L.: 10020

Ohno, Yutaka: 7251,8515

Olthoff, Walter: 71 36

Osterwe~l, Leon J.: 7631

Parnas, C ~ v i d L.: 2305

Perez, Eduardo Perez: 10057 Pinson, Lewis J.: 10821

Pircher, Peter A.: 8936 Pitt, 0. H.: 7554

Plinta, Charles: 81 66

Plinta, Charles: 81 69 Plinta, Charles: 8787

Porubcansky, C.A.: 6471

Premerlani, William J.: 8233

Pressman. Roger S.: 8220

Ramamoorthy, C. V.: 8662

Rehbinder. P.: 101 10 Rettig, Marc: 8916

Page 86: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

Reynolds. CP,arles W.: 10831

Richardson. Joel E.: 7809 Rissman. Michael: 81 66, 81 69. 8787

Roggio, Robert F .: 10400

Rosenthal. Don: 71 38

Ross. L.S.: 6677

RozensMein, David: 10827

Rurnbaugh, James E.: 8233

Russi. Vincenzo: 9392 Schoen. Eric: 8796

Schuman. S. A.: 7554

Seidewrtz. Ed: 8962. 10824

Serkin, Martin B.: 9984

Shekita, Eugene J.: 7809 Sheu, Phillip C.: 8662

Sincovec. Richard F.: 5692. 5701, 7041

Smith, Reid G.: 8796

Sodano, Nancy M.: 5665

Sodhi, Jag: 10019

Staff Author: 7625

Stark, Michael: 10824 Stein, Lynn Andrea: 10825

Stevens. Al: 10823

Stroustmp. Bjarne: 8403

Szulewski, Paul A.: 5665

Tarumi, Hiroyuki: 7251 ,85 15 Thalhamer, John A.: 10020

Tornlinson, Chris: 8652

Tupper, K.: 10042

Turner. Scott R.: 8773

U.S. Dept. of Defense: 2341

Van Scoy, Roger: 81 66,8167, 81 69,8787

Ward. Paul T.: 9267, 9931

Wasserrnan, Anthony 1.: 8936

Weber. Herbert: 6393

Whiting, Mark A.: 9173

Wiener, Richard S.: 5692, 5701, 7041, 10821 Williams. Michael D.: 6035

Wimberly, Doug: 891 6

Wirfs-Brock, Rebecca J.: 10636 Wolf, Wayne: 9727

Yarnrorn, Boris: 9361

Yang, Sherry: 9467

Page 87: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid

fau. S l e ~ h e n 5. . 10205

Zomor, Robeno: 9392

Page 88: An Overview Object Oriented Design · Rome, NY 13441-4909 An Overview of Object Oriented Design 30 April 1991 Prepared for: Rome baboratorv ... arcernirrg software engineer~ng arid