Académique Documents
Professionnel Documents
Culture Documents
Archive-name: object-faq/part1
Last-Modified: 04/02/96
Version: 1.0.9
COMP.OBJECT FAQ
Version: 1.0.9
Date: 4/2/96
Author:
Bob Hathaway
Geodesic Systems, Inc.
Cyberdyne Systems Corporation
rjh@geodesic.com <mailto:rjh@geodesic.com>
<http://www.geodesic.com/people/Bob>
75027.1663@compuserve.com <mailto:75027.1663@compuserve.com>
Permission is granted to freely copy and distribute this document but only
with this full header attached and at no cost to others with the exception
of a nominal distribution fee, if any. No sale, resale or reprinting is
granted without the explicit written permission of the author.
Object Currents:
A related and free new on-line Object resource edited by yours truly:
<http://www.sigs.com/objectcurrents> - Please take a look!
Special thanks to Object Systems, Geodesic Systems and Cyberdyne Systems for
providing the support and resources needed to make this effort possible.
Object Systems was primarily a "think tank" and producer of object-oriented
technologies, Geodesic Systems brings the latest in object-oriented theory
and technique to practical and widespread use, as does Cyberdyne.
And to kick off the new Appendix G, Commercial OO Libraries and Systems, I'm
introducing our own new product (partly developed by me:-), the Great Circle
(TM) automatic memory management system for C and C++. I've used it on
several of my own projects where it automatically fixed all memory leaks
instantly.
New formatted and submitted entries for Appendix G are most welcome.
Objective:
In the spirit of other FAQs, to provide a simple document to answer the most
frequently asked and recurring questions and to allow new users to understand
frequently discussed topics and terms used in comp.object <news:comp.object>.
This should
bring new comp.object <news:comp.object> readers and/or writers to at least an
introductory
level of comprehension as soon as possible. Other goals (hopes) are to
provide a quick and current reference on available systems such as object-
oriented languages, CASE, OODB and etc. and to provide good references to
current and relevant OO systems, groups, texts and literature.
Disclaimer:
This document does not necessarily reflect the opinions of the author's or
any contributor's companies. There are no explicit or implicit guarantees
implied by this document.
While object systems are a constantly changing and moving target with a broad
diversity of often conflicting methodologies, constructs, terminologies,
approaches, languages, implementations and etc. and comp.object <news:comp.object>
has a wide
diversity of readers and writers ranging from students, professors and
researchers in academia to beginners, professionals, top-notch experts and
leaders in industry with a broad range of experience and backgrounds ranging
across many paradigms, this FAQ can certainly not aspire to satisfy all of them
completely but instead attempts to provide the most well-rounded treatment of
object-oriented concepts and realizations primarily from the mainstream and
popular authors and systems and further to provide a collection of available
systems and tools in the appendices.
SECTION 1: BASICS
1.1) What Is An Object?
1.2) What Is Object Encapsulation (Or Protection)?
1.3) What Is A Class?
1.4) What Is A Meta-Class?
1.5) What Is The Infinite Regress Of Objects And Classes?
1.6) What are MOPs and Reflection?
1.7) What Is Inheritance?
1.8) What Is Multiple Inheritance?
1.9) Does Multiple Inheritance Pose Any Additional Difficulties?
1.10) What Is Dynamic Inheritance?
1.11) What Is Shared (Repeated) Inheritance?
1.12) Why Use Inheritance?
1.13) Why Don't Some People Like Inheritance?
1.14) What Is Specialization/Generalization/Overriding?
1.15) What Is The Difference Between Object-Based And Object-Oriented?
1.16) Is A Class An Object?
1.17) Is An Object A Class?
1.18) What Is A Method? (And Receiver And Message)
1.19) What Are Multi-Methods And Multiple-Polymorphism?
1.20) What Is OOP?
1.21) What Is OOA/OOD (And Where Can I Get What I Need On It)?
1.22) Where Did Object-Orientation Come From?
1.23) What Are The Benefits Of Object-Orientation?
1.24) What Other FAQs Are available?
SECTION 2: TYPING
2.1) What Is Polymorphism?
2.2) What Does Polymorphism Boil Down To In OO Programming Languages?
2.3) What Is Dynamic Binding?
2.4) Is There A Difference Between Being A Member Or Instance Of A Class?
2.5) What Is This I Read About ML And Functional Programming Languages?
2.6) What Is the Difference Between Static And Dynamic Typing?
2.7) What Is A Separation Between Type And Class (Representation)?
2.8) What Are Generics And Templates?
SECTION 3: GENERAL
3.1) What Is The "Classical" Object-Oriented Paradigm?
3.2) What Is The "Delegation/Prototyping" Object-Oriented Paradigm?
3.3) Are There Any Other Object-Oriented Paradigms?
3.4) What Are The Major Object-Oriented Programming Languages Today?
3.5) What Are Object-Oriented Databases And Persistence?
3.6) What Are Object-Oriented Operating Systems?
3.7) What Are The Current Object-Oriented Methodologies?
3.8) What Is The OMG/OMA/ORB/CORBA?
3.9) Why Is Garbage Collection A Good Thing?
3.9b) Why is Garbage Collection Necessary For Object-Oriented Programming?
3.10) What Can I Do To Teach OO To The Kids?
3.11) What Is Available On Object-Oriented Testing?
3.12) What Distributed Systems Are Available?
3.13) What Is The MVC Framework?
3.14) What Is Real-Time?
3.15) What Is Available on OO Metrics?
3.16) What Are Visual Object-Oriented Programming Systems?
3.17) What Tutorials Are Available On Object-Oriented Concepts and Languages?
ANNOTATED BIBLIOGRAPHY
APPENDIXES
APPENDIX A VIPS
APPENDIX B OBJECT-ORIENTED DATABASES AND VENDORS
APPENDIX C OBJECT-ORIENTED LANGUAGES AND VENDORS
APPENDIX D OBJECT-ORIENTED CASE (OOA/D/P TOOLS) AND VENDORS
APPENDIX E ANONYMOUS FTP SITES
APPENDIX F MAGAZINES, JOURNALS AND NEWSLETTERS
APPENDIX G COMMERCIAL OBJECT-ORIENTED LIBRARIES AND SYSTEMS
SECTION 1: BASICS
==================
Suggested Readings:
[Booch 91, 94]
Others to be added...
There are many definitions of an object, such as found in [Booch 91, p77]:
"An object has state, behavior, and identity; the structure and behavior of
similar objects are defined in their common class; the terms instance and
object are interchangeable". This is a "classical languages" definition, as
defined in [Coplien 92, p280], where "classes play a central role in the
object model", since they do not in prototyping/delegation languages.
"The term object was first formally applied in the Simula language, and
objects typically existed in Simula programs to simulate some aspect of
reality" [Booch 91, p77]. Other definitions referenced by Booch include
Smith and Tockey: "an object represents an individual, identifiable item,
unit, or entity, either real or abstract, with a well-defined role in the
problem domain." and [Cox 91]: "anything with a crisply defined boundary"
(in context, this is "outside the computer domain". A more conventional
definition appears on pg 54). Booch goes on to describe these definitions
in depth. [Martin 92, p 241] defines: "An "object" is anything to which a
concept applies", and "A concept is an idea or notion we share that applies
to certain objects in our awareness". [Rumbaugh 91] defines: "We define an
object as a concept, abstraction or thing with crisp boundaries and meaning for
the problem at hand." [Shlaer 88, p 14] defines: "An object is an abstraction
of a set of real-world things such that:
* all of the real-world things in the set - the instances - have the same
characteristics
* all instances are subject to and conform to the same rules"
and on identifying objects: "What are the *things* in this problem? Most of
the things are likely to fall into the following five categories: Tangible
things, Roles, Incidents, Interactions, and Specifications." [Booch 91, 4.3]
covers "Identifying Key Abstractions" for objects and classes based on an
understanding of the problem domain and [Jacobson 92] provides a novel approach
to identifying objects through use-cases (scenarios), leading to a use-case
driven design. Jacobson also calls for managing complexity with specialized
object categories [Jacobson 94]:
Ordinary Objects - Typical OOPL objects
Use-Cases and Actors - Actors <--> Use-Cases <--> Object Model Objects
Megaobjects - Composite objects (~ subsystems with inheritance)
Frameworks*(Typical) - Abstract MO meant for reuse and extension
Patterns** (Typical) - Framework-like, crsp. classes and comm patterns only
Application Objects - In the Object Model
Interface - E.g. GUI
Control - Introduced in design for control purposes
Entity - Correspond to real-world objects
Component Objects - Utility and Implementation hiding objects
Utility - Set, Array, ...
Impl. Hiding - Distr. Arch., specific DBMS, OS
Simple statically-typed objects (static and auto vars and temps in C++ and
expanded types in Eiffel) can be viewed as instances of a record type,
whose record fields are called instance variables (Smalltalk) or member data
(C++). The record (class) may also contain operations which are called
methods (Smalltalk) or member functions (C++) which are equivalent to a
function taking an object of the record type, called the receiver, as the
first parameter. The receiver is called self (Smalltalk) or this (C++).
Members will denote both instance variables and methods. Inheritance is
roughly equivalent to a loosely coupled variant record, with derived classes
as variant parts and with multiple-inheritance concatenating several records
to serve as a base.
A virtual member in statically typed languages is a base class member that can
be set or respecified by a derived class. This is roughly equivalent to a
pointer or function pointer in the base class being set by the derived class.
[Stroustrup 90] covers the implementation details of virtual member functions
in C++, which also involve an offset for the receiver to handle multiple-
inheritance. This is an example of dynamic binding, which replaces a
switch statement on variant parts with a single call, reducing code size
and program complexity (fewer nested programming constructs) and allowing
variants to be added without modifying client code (which causes higher defect
injection rates during maintanance and debugging).
Delegation/prototyping languages [Kim 89, ch3; Ungar 87, Sciore 89] have a more
flexible kind of object which can play the role of classes in classical OO
languages. Since there is no separate class construct in these languages, and
only objects, they are referred to as single-hierarchy, or 1 Level systems.
Objects contain fields, methods and delegates (pseudo parents), whereas
classical object-oriented languages associate method, field and parent
definitions with classes (and only associate state and class with objects,
although vtables of function pointers for dynamic binding are an exception).
However, one-level objects often play the role of classes to take advantage of
sharing and often instances will simply delegate to parents to access methods
or shared state, otherwise idiosyncratic objects, a powerful and natural
concept, will result. Typical 1 Level objects can contain any number of
fields, methods and parents and any object can be used as a template/exemplar,
thus performing the classical role of a class. In typical prototyping systems,
parents (as any other member) can be added or changed dynamically, providing
dynamic multiple inheritance (or more typically simple delegation). Here, the
term "Prototype" usually refers to prototype theory, a recent theory of
classification where any object can be inherited from or cloned to serve as a
prototype for newly created instances. [The Author also uses the term for
languages providing high quality support for rapid prototyping, although this
usage is atypical] See [Booch 94, pp 154-155] for a brief discussion of
prototype theory in the context of OOA and OOD.
1 level systems therefore provide the most flexible and powerful capabilities.
Self is a good example of a delegation-based single hierarchy language [Ungar
87].
[Booch 91, p. 45] defines: "Encapsulation is the process of hiding all of the
details of an object that do not contribute to its essential characteristics."
For another example, Smalltalk's class instance variables are not accessible
from outside of their class (they are not only private, but invisible).
Smalltalk's methods are all public (can be invoked from anywhere), but a
private specifier indicates methods should not be used from outside of the
class. All Smalltalk instance variables can be accessed by subclasses,
helping with abstract classes and overriding.
A class is a general term denoting classification and also has a new meaning
in object-oriented methods. Within the OO context, a class is a specification
of structure (instance variables), behavior (methods), and inheritance
(parents, or recursive structure and behavior) for objects. As pointed out
above, classes can also specify access permissions for clients and derived
classes, visibility and member lookup resolution. This is a feature-based or
intensional definition, emphasizing a class as a descriptor/constructor of
objects (as opposed to a collection of objects, as with the more classical
extensional view, which may begin the analysis process).
The intension of a class is its semantics and its extension is its instances
[Martin 92].
1 Level System
All objects can be viewed as classes and all classes can be viewed as
objects (as in Self). There is no need for Meta-Classes because objects
describe themselves. Also called "single-hierarchy" systems.
There is only 1 kind of object.
2 Level System
All Objects are instances of a Class but Classes are not accessible to
programs (no Meta-Class except for in the compiler and perhaps for type-safe
linkage, as in C++).
There are 2 kinds of distinct objects: objects and classes.
3 Level System
All objects are instances of a class and all classes are instances of
Meta-Class. The Meta-Class is a class and is therefore an instance of
itself (really making this a 3 1/2 Level System). This allows classes to
be first class objects and therefore classes are available to programs.
There are 2 kinds of distinct objects (objects and classes), with a
distinguished class, the metaclass.
5 Level System
What Smalltalk provides. Like a 3 Level System, but there is an extra level
of specialized Meta-Classes for classes. There is still a Meta-Class as in
a 3 Level System, but as a class it also has a specialized Meta-Class, the
"Meta-Class class" and this results in a 5 Level System:
object
class
class class (Smalltalk's Meta-Classes)
Meta-Class
Meta-Class class
"Reflective" systems are systems with MOPs (not to be confused with reflexive
systems, which often refer to systems implemented in terms of themselves, or
bootstrapped). Reflective systems are inevitably reflexive (as are most
quality compilers), providing a direct program interface to the system.
Computer
/ | \
Mainframe Mini Personal
/ \ ... / \
Data Proc Scientific PC Workstation
Class hierarchies are subjective [Booch 91, 4.2; Lakoff 87] and usually drawn
with the parent class on top, but more demanding graphs (as is often the case
in [Rumbaugh 91]) allow any topology, with the head of an arrow indicating the
base class and the tail indicating the derived class.
Multiple Inheritance occurs when a class inherits from more than one parent.
For example, a person is a mammal and an intellectual_entity, and a document
may be an editable_item and a kind of literature.
Yes, it does. Any name can be simply resolved to a class member with single
inheritance by simply accessing the first name encountered for data members
and by accessing the first signature match (or ambiguity) encountered for
methods (at least one way, C++ hides some member functions). Since several
distinct parents can declare a member within a multiple inheritance hierarchy,
which to choose becomes an issue. Eiffel forces derived classes to rename
parent members that conflict. Self prioritizes parents. CLOS merges member
"slots" (instance variables) with the same name into a single slot, as did
the earlier flavors. C++ declares an error iff a conflict arises, but a
class qualifier can be used to explicitly disambiguate. Smalltalk renders
same names for instance variables of subclasses illegal.
Dynamic inheritance allows objects to change and evolve over time. Since base
classes provide properties and attributes for objects, changing base classes
changes the properties and attributes of a class. A previous example was a
window changing into an icon and then back again, which involves changing a
base class between a window and icon class.
See also [Kim 89, chs 1, 3] for a discussion and [Coplien 92] for some
implementation discussion in C++.
Inheritance also provides for code and structural reuse. In the above Computer
class diagram, all routines and structure available in class Computer are
available to all subclasses throughout the diagram. All attributes available
in Personal computers are also available to all of its subclasses. This kind
of reuse takes advantage of the is-a-kind-of relationship. Class libraries
also allow reuse between applications, potentially allowing order-of-magnitude
increases in productivity and reductions in defect rates (program errors),
as library classes have already been tested and further use provides further
testing providing even greater reliability.
Some prefer association to MI, claiming "roles" (as defined in [Rumbaugh 91])
should be associations and inheritance should be reserved for a single
hierarchy "creation" mechanism, however this loses polymorphism and loses the
use of inheritance for typical classification. Representation "roles" can be
supported by dynamic multiple inheritance (DMI) in many situations.
These definitions are also found in [Booch 91, Ch2 and Wegner 87].
Stroustrup's first edition of [Stroustrup 91, '86 p. 37] defines object based
as: "... storing type identification in each object, brings us to a style of
programming often referred to as "object based"", which is quite different
from C+W's.
[Booch 94, 2.2] proposes 7 "Elements of the Object Model"; 4 major and 3 minor:
Major:
Abstraction
Encapsulation
Modularity
Hierarchy (Inheritance)
Minor:
Typing
Concurrency
Persistence
In C++ no, because C++ classes are not instances of an accessible class (a
Meta-Class) and because C++ classes are not accessible to programs. Classes
are objects in 3 Level Systems and above because classes are instances of
meta-classes. But classes play a dual role, because objects can only be
declared to be instances of a class (and class objects instances of a
meta-class). In 1 Level (single-hierarchy) systems, all classes are objects.
In a Level 3 System and above yes, but only instances of a Meta-Class are
Classes. Instances of a Class (ordinary objects) are not classes (excluding
hybrid systems). However, all objects may be classes in single hierarchy
systems, since any object may act as a class (provide object instantiation or
act as a shared parent).
Behavior is how an object acts and reacts, in terms of its state changes
and message passing.
Selector would be another good choice for message_name in the above examples,
although keywords (or formal parameter names, like named parameters) are
considered part of the selector in Smalltalk (and hence Objective-C).
See also section 1.19 below for a discussion on the functional (prefix) verses
message based (receiver based) notation.
+(int, int)
+(int, float)
+(int, complex)
+(int, real)
+(float, complex)
+(float, real)
+(float, float)
The above functions are specialized to each of the cases required allowing
single, highly cohesive and loosely coupled functions to be defined. This is
also the true essence of object-oriented polymorphism, which allows objects to
define methods for each specific case desired. In addition to better coupling
and cohesion, multiple-polymorphism reduces program complexity by avoiding
coding logic (switch statements) and because small methods further reduce
complexity, as code complexity doesn't grow linearly with lines of code per
method, but perhaps exponentially. This should be distinguished from double
dispatch, a fancy name for single dispatch after a call, which only provides
switching on a single argument per call (but for 2 levels), consistently
ignoring the inherent type of parameters in messaging. Double dispatch is
used in languages with static typing for simplicity and efficiency
considerations.
If all of the above types are Numbers, code can be written without concern for
the actual classes of objects present:
The addition expression above will invoke the correct "+" function based on the
inherent (true, actual, or dynamic) types of one and two. Only the inherent
type of "one" would be used with double dispatch! In the author's opinion,
this is a serious shortcoming. Further, double dispatch would only allow
switching to the "fn" function based on the type of "one" also. This could
lead to the use of switch statements based on type or complex coding in many
real-world programming situations, unnecessarily. In the author's opinion,
this should only be used as necessary, e.g. if the implementation language
doesn't support multiple-polymorphism and either efficiency considerations
dominate and double dispatch can be suffered, or an embedded dynamic typing
scheme is used.
But coupling the two cases of selector variables (as found in CLOS,
Objective-C, and etc.) and several possible known selectors together with the
general undecidability of dynamic types at compile-time renders dynamic typing
and run-time selection (or checking) as unavoidable in the general case [a
point often mistaken in comp.object <news:comp.object>. E.g. simple
statically/strongly typed
multi-methods still require dynamic types!]
1.21) What Is OOA/OOD (And Where Can I Get What I Need On It)?
---------------------------------------------------------------
See also section 3.7, the Annotated Bibliography, and APPENDIX D. The
classified bibliography in [Booch 94] also contains entries on OOA(B), OOD(F)
and OOP(G).
[Booch 91]
"In OOA, we seek to model the world by identifying the classes and objects
that form the vocabulary of the problem domain, and in OOD, we invent the
abstractions and mechanisms that provide the behavior that this model
requires."
[Coad 91]
"OOA is the challenge of understanding the problem domain, and then the
system's responsibilities in that light".
"To us, analysis is the study of a problem domain, leading to a specification
of externally observable behavior; a complete, consistent, and feasible
statement of what is needed; a coverage of both functional and quantified
operational characteristics (e.g. reliability, availability, performance)".
"Design. The practise of taking a specification of externally available
behavior and adding details needed for actual computer system implementation,
including human interaction, task management, and data management details."
"Whereas OOA typically focuses upon one specific problem at a time, domain
analysis seeks to identify the classes and objects that are common to all
applications within a given domain, [...]". - [Booch 91]
Archive-name: object-faq/part2
Last-Modified: 04/02/96
Version: 1.0.9
OOA and OOD stand for Object-Oriented Analysis and Object-Oriented Design,
respectively. OOA strives to understand and model, in terms of object-oriented
concepts (objects and classes), a particular problem within a problem domain
(from its requirements, domain and environment) from a user-oriented or domain
expert's perspective and with an emphasis on modeling the real-world (the
system and its context/(user-)environment). The product, or resultant model,
of OOA specifies a complete system and a complete set of requirements and
external interface of the system to be built, often obtained from a domain
model (e.g. FUSION, Jacobson), scenarios (Rumbaugh), or use-cases (Jacobson).
[Shlaer 88] is often credited as the first book on OOA, although their method
adds OO techniques to the traditional structured analysis principles of Yourdon
and Constantine. Their complete approach ([Shlaer 88, 92]) consists of
information modeling and recursive design, or OOA/RD and represents a recent
addition to the structured analysis family (as does Martin and Odell).
[Yourdon 92] provides a critique, although may only refer to their earlier
work. Many other methodologies including Rumbaugh's OMT, Martin and Odell's
OOA/D, and many others, also share common ground with SA and other existing
analysis methodologies with such constructs as associations (E-R), functional
models, and even DFD's. Booch, Jacobson, and Wirfs-Brock are examples of OO
methodologies representing a greater departure from the conventional
"structured" techniques, with greater emphasis on objects. OOram [Reenskaug
91] provides support and emphasis on types and roles as guiding principles,
which is quite powerful. [Booch 94] presents a methodology which is an
evolutionary step beyond the first edition by incorporating a collection of the
best features from several of the major OO methodologies, as does HP's new
FUSION methodology.
A new Unified Modeling Language (previously Unified Method) is now being worked
on by Grady Booch, James Rumbaugh, and Ivar Jacobson at Rational Software which
should be made into a public standard, perhaps to be adopted by the OMG. The
.8 docs can be found online from the Rational home page, http:/www.rational.com.
The usual progression is from OOA to OOD to OOP (implementation) and this
Universal Process Model roughly corresponds to the Waterfall Model [Royce 70].
See [Humphrey 89] and [Yourdon 92] for a few of many discussions on software
life-cycle models and their use. Humphrey also details Worldy and Atomic
Process Models for finer grained analysis and design in the Defined Process
(see below) and discusses other alternatives to the task oriented models. He
also provides the following critisisms on the Waterfall Model which had led to
Boehm's seminal work on the Spiral Model:
Waterfall-
Analysis
Design
Programming
Spiral-
Analysis, prototyping, risk management
Design, prototyping, risk management
Programming, prototyping, risk management
[Boehm, 1988]
Incremental-
A little analysis
A little design
A little programming
Repeat
[Gilb, 1988]
[Author's note: The spiral model is often incremental and may waterfall if
called for.]
Since classes and objects are used in all phases of the OO software life-cycle,
the process is often referred to as seamless, meaning there is no conceptual
gap between the phases as is often the case in other software development
methodologies, such as the analysis (DFD's) to design (structure charts) to
programming gaps found in traditional structured analysis and design.
Seamlessness together with naturalness is a big advantage for consistency.
A problem domain has many realizations, or differing OOAs. An OOA has many
realizations, or differing OODs, but a similar notation is often used for
the two. An OOD also has many realizations, or differing OOPs, but allows a
selection from among various languages for implementation (choosing the best
language to implement the design). But some, such as Bjarne Stroustrup, don't
like OOA and OOD getting too far from OOP (implementation independent), for
fear that great discrepancies could occur between OOD and OOP by losing sight
of the implementation language, which in some cases is predetermined. See also
[Stroustrup 91].
From a greater perspective, the SEI has developed the Capability Maturity Model
(CMM), a process-based TQM model for assessing the level of an organization's
software development and which is often required of government contractors
in the US [Humphrey 89]. The CMM also serves as a 5 level improvement process
by specifying steps for organizations to progress to the next level, ultimately
leading to statistical (process) control and sustained improvement. Watts S.
Humphrey is now working on the Personal Software Process (PSP), a scaled down
version of the CMM for individuals [Humphrey 95]. Next should follow a team-
based software process (TSP?). Other CMM's in the works at the SEI include a
personnel management CMM (PM-CMM).
See also:
Kitson, D.H. and Masters, S. "An Analysis of SEI Software Process Assessment
Results 1987-1991", CMU/SEI-92-TR-24
See also [Yourdon 92], [Wilkie 93], and [Booch 94] for discussions on this
often cited model. There is also an ISO 9000 standard [ISO] applicable to
software quality and ami working group in Europe helping to creat the ISO
SPICE [Rout 95] standard (among other work), which is similar in scope to
the CMM. To join the ami mailing list email to:
ami-request@aut.alcatel.at <mailto:ami-request@aut.alcatel.at>
with the following message:
subscribe firstname, lastname, e-mail address.
[Meyer 88] contains a brief summary and history of Simula and Smalltalk, among
other OO languages.
[Harmon 93]:
Faster development
Increased Quality
Easier maintenance
Enhanced modifiability
[Booch 94]:
Exploit power of OOPs
Reuse of software and designs, frameworks
Systems more change resilient, evolvable
Reduced development risks for complex systems, integration spread out
Appeals to human cognition, naturalness
Notes:
1) xcf.Berkeley.EDU is 128.32.138.1
2) /afs/cs.cmu.edu/project/ai-repository/ai/pubs/faqs/prolog/
3) BETA FAQ www (most current): <http://www.daimi.aau.dk/~beta/FAQ>
<http://www.daimi.aau.dk/~beta/info>
Email: info@mjolner.dk <mailto:info@mjolner.dk> with body: send BETA beta-faq
4) Modula-3: ftp.vlsi.polymtl.ca:pub/m3/m3-faq.ps.
<http://froh.vlsi.polymtl.ca/m3/m3-faq.html>.
Archives: gatekeeper.dec.com:pub/DEC/Modula-3/comp.lang.modula3
Newsgroup relay mailing list; message to m3-request@src.dec.com <mailto:m3-
request@src.dec.com>
5) comp.lang.eiffel <news:comp.lang.eiffel> archive:
<http://www.cm.cf.ac.uk/CLE/archive_index.html>
Many FAQs are also available from mail-servers, however most can be accessed by
the rtfm mail-server. Mail to mail-server@rtfm.mit.edu <mailto:mail-
server@rtfm.mit.edu> with help and index in
the body with no leading spaces and on separate lines for more information.
Example Unix Command (will retrieve this FAQ in about 26 pieces (and growing)):
mail mail-server@rtfm.mit.edu <mailto:mail-server@rtfm.mit.edu>
Subject:
send usenet/comp.object/*
SECTION 2: TYPING
==================
There are many definitions of type (and class and related concepts). Many
authors define the terms as applied by their particular approach or language,
however we shall proceed in the face of this diversity.
References
[Blair 89] Some Typing Topics.
[Booch 91] Small Section on Typing.
[Cardelli 85] Discussion on Object-Oriented Typing.
[Gunter 94] Theoretical Aspects of Object-Oriented Programming.
[Kim 89, ch1] Discussion on Some Research Topics.
|-- parametric
|-- universal --|
| |-- inclusion
polymorphism --|
| |-- overloading
|-- ad hoc --|
|-- coercion
Polymorphic Languages: some values and variables may have more than one type.
The two forms of "Universal Polymorphism", parametric and inclusion are closely
related, but are distinct enough in implementation to justify separate
classifications.
Author's Notes:
Implicit parametric polymorphism can be implemented with type inferencing
schemes [Aho 85]. ML is prototypical in providing this facility.
Ada generics and C++ templates provide explicit syntactic generics. While
Ada may infer some actual generic parameters (operations) and C++ doesn't
require explicit instantiation of its template functions, formal generic
parameters must still be declared and many bodies are generated.
[The Author notes Meyer has a following section 10.1.7 on Static Type,
dynamic type, which is relevant, but claims "... there is no way the type
of an object can ever change. Only a reference can be polymorphic: ...".
Meyer is clear between the concept and the Eiffel realization in his
polymorphism definition above, but here neglects the "becomes" facility
as found in several dynamically typed OO languages such as Actors, CLOS,
Self and Smalltalk, which allows an object (and not just a reference) to
change its class.]
The use of derived classes and virtual functions is often called "object-
oriented programming". Furthermore, the ability to call a variety of
functions using exactly the same interface - as is provided by virtual
functions - is sometimes called "polymorphism".
Dynamic binding has two forms, static and dynamic. Statically-typed dynamic
binding is found in languages such as C++ (virtual functions) and Eiffel
(redefinition). It is not known which function will be called for a virtual
function at run-time because a derived class may override the function, in
which case the overriding function must be called. Statically determining all
possibilities of usage is undecidable. When the complete program is compiled,
all such functions are resolved (statically) for actual objects. Formal object
usage must have a consistent way of accessing these functions, as achieved thru
vtables of function pointers in the actual objects (C++) or equivalent,
providing statically-typed dynamic binding (this is really just defining simple
function pointers with static typechecking in the base class, and filling them
in in the derived class, along with offsets to reset the receiver).
Dynamic binding allows new objects and code to be interfaced with or added to
a system without affecting existing code and eliminates switch statements.
This removes the spread of knowledge of specific classes throughout a system,
as each object knows what operation to support. It also allows a reduction in
program complexity by replacing a nested construct (switch statement) with a
simple call. It also allows small packages of behavior, improving coherence
and loose coupling. Another benefit is that code complexity increases not
linearly but exponentially with lines of code, so that packaging code into
methods reduces program complexity considerably, even further that removing
the nested switch statement! [Martin 92] covers some of these issues.
Static typing is more efficient and reliable, but loses power. Typical
restrictions include only allowing a common set of base class functions (or
any common functions for the more general subtyping or parametric polymorphic
cases) to be available on formal objects and a lack of multiple-polymorphism
(see section 1.19), both of which are overcome with dynamic typing.
Many languages provide dynamic typing: Smalltalk, Self, Objective-C, and etc.
A limited dynamic typing scheme, called RTTI (Run Time Type Identification),
is even being considered for the C++ standard. A similar facility to safe
downcasting (historically known as type narrowing), the thrust of RTTI, can
also be found in recent versions of Eiffel.
Abstract classes ([Stroustrup 91] and [Meyer 88]) in typing provide a facility
similar to subtype polymorphism; however, ACs require type compatible classes
to inherit from them, providing a subclass polymorphism facility, and ACs can
also specify representation. Subtyping is therefore most useful to avoid
spreading knowledge of classes throughout a system, which is a high priority
for loosely coupled modules and in distributed programming [Black 87].
The formal type system found in [Cardelli 85], Emerald/Jade [Black 86] and
[Raj 89], original trellis/Owl, an experimental C++ extension (See Appendix E,
Signatures), Sather (originally Eiffel-based), and an Eiffel superset
[Jones 92] are all examples of OO systems providing subtype polymorphism.
Functional languages such as ML, Russell, and Haskell provide a separation with
pure parametric polymorphism (as is also commonly found in OO languages in
addition to inclusion polymorphism).
See also [Cook 90], "Inheritance Is Not Subtyping", for a formal approach.
SECTION 3: GENERAL
===================
This refers to the usual class and object model. Its any 2+ level system
as described in section 1.4. See also [Coplien 92].
There are many alternatives in OO. Emerald/Jade ([Black 86] and [Raj 89])
provides one, where inheritance is replaced with a roughly equivalent form
where reuse occurs at a finer degree of granularity - method and instance
variables - with subtype polymorphism making up the difference.
CLOS [Kim 89, ch 4] has a looser coupling of methods to classes and doesn't
distinguish a receiver, but packages can help make up the difference.
Statically-Typed:
Add 1 To Cobol giving Cobol with Objects.
C++
Classic-Ada
Dragoon
Emerald/Jade
Java (comp.lang.java, <http://java.sun.com/>, Java Report & Conf:
<http://www.sigs.com>, See Anon FTP)
Object Pascal
Trellis/Owl
Dynamically-Typed:
Actors Languages
C+@
Flavors
Python (new WWW, see <http://www.python.org/>)
Self
Smalltalk
Both:
Actor
Ada95
BETA
C++ (With RTTI)
Cecil
CLOS
Eiffel
Modula-3
Objective-C (<http://www.marble.com/people/dekorte/Objective-C/objc.html>)
Sather
Object-Oriented Databases are databases that support objects and classes. They
are different from the more traditional relational databases because they allow
structured subobjects, each object has its own identity, or object-id (as
opposed to a purely value-oriented approach) and because of support for methods
and inheritance. It is also possible to provide relational operations on an
object-oriented database. OODBs allow all the benefits of object-orientation,
as well as the ability to have a strong equivalence with object-oriented
programs, an equivalence that would be lost if an alternative were chosen, as
with a purely relational database.
The Object Database Management Group (ODMG) has set up Gopher and Web
Servers at the following addresses:
These are still under construction. What you can find right now are
addresses and contact information for ODBMS vendors, ODMG membership
information, updates to Release 1.1 of The Object Database Standard:
ODMG-93 along with ODL lex and yacc files. In the future, we will be
adding more links to related sites, bibliographies, and a FAQ for ODBMSs.
If you cannot access these servers, but would like information on the
ODMG, send an email message to info@odmg.org <mailto:info@odmg.org> and you will
receive an
automated reply.
Doug Barry
ODMG Executive Director
Here are some abstracts taken from several postings to the net. This list is
by no means exhaustive.
See APPENDIX D for CASE systems supporting these methodologies (several from
the originators themselves).
Arnold, P., Bodoff, S., Coleman, D., Gilchrist, H., Hayes, F., An Evolution of
Five Object Oriented Development Methods, Research report, HP Laboratories,
June 1991
Fichman R.G. & Kemerer C.F. OO and Conventional Analysis and Design
Methodologies. Computer, Oct 1992, Vol 25, No. 10, p 22-40
[From Shuguang...] readers may download the paper if they want, though they
may continue to request hard copies. We are currently extending the paper
to compare ten OO methods and should be available shortly.
My URL is: <http://cis.gsu.edu/~shong>
===================================================================
* Shuguang Hong, Ph.D. cisssh@gsusgi2.gsu.edu
<mailto:cisssh@gsusgi2.gsu.edu> *
* Computer Information Systems Dept. Tel: (404)651-3887 *
* College of Business Administration Fax: (404)651-3842 *
* Georgia State University *
* Atlanta, GA 30302-4015 www: <http://cis.gsu.edu/~shong/> *
===================================================================
If you are interested in obtaining this book you can send an e-mail to
Sjaak Brinkkemper (sjbr@cs.utwente.nl <mailto:sjbr@cs.utwente.nl>), which we will
forward to the
publisher.
Contents:
(3.8.1) Contact Information
(3.8.2) OMG Summary
(3.8.3) Mail Server Access
(3.8.4) OMG Publications
- First Class (Bi-Monthly Newsletter)
- Object Management Architecture Guide (OMA)
- The Common Object Request Broker: Arch. and Spec. (Corba)
- Pricing
(3.8.5) Implementations (Brief)
(3.8.6) Implementation Descriptions
(3.8.7) Books, Articles, And Literature
Archive-name: object-faq/part3
Last-Modified: 04/02/96
Version: 1.0.9
FTP Sites:
omg.org:pub/*
omg.org:pub/NEC_DII/93-1-2.tar... *CORBA (DII) (corba.ps.Z)
omg.org:pub/OMG_IDL_CFE_1.2/bin* idl.SunOS4.x, idl.Solaris2.x
claude.ifi.unizh.ch:under pub/standards/spec CORBA Spec
WWW:
<http://www.omg.org/>
<http://conf4.darpa.mil/corba-ada/ORBs.html>
<http://www.acl.lanl.gov/sunrise/DistComp/Objects/corba.html>
<http://www.cs.wustl.edu/~schmidt/corba.html>
<http://www.dstc.edu.au/AU/research_news/omg/corba.html>
In answer to your general question about the OMG, here's a brief overview.
Feel free to call, fax or email for more information.
-- Richard Soley
Vice President & Technical Director
Object Management Group, Inc.
and coincidentally, MIT '82, SM '85, PhD '89 (EECS)
(*) development of command models and a common interface for the development
and use of large-scale distributed applications (open distributed
processing) using object-oriented methodology.
3) the Object Services, which will provide the main functions for
realising basic object functionality using the Object Request Broker -
the logical modeling and physical storage of objects; and
In late 1991 OMG adopted its first interface technology, for the Object
Request Broker portion of the reference model. This technology, adopted
from a joint proposal (named "CORBA") of Hewlett-Packard, NCR Corp.,
HyperDesk Corp., Digital Equipment Corp., Sun Microsystems and Object
Design Inc. includes both static and dynamic interfaces to an inter-
application request handling software "bus."
Unlike other organizations, the OMG itself does not and will not
develop nor sell software of any kind. Instead, it selects and promulgates
software interfaces; products which offer these interfaces continue to be
developed and offered by commercial companies.
In order to serve OMG membership interested in other object-oriented systems
arenas besides the distributed system problem, the Group supports Special
Interest Groups for discussion of possible standards in other areas. These
groups at present are:
list mail
list docs
get docs/doclist.txt
get docs/91-12-1.ps CORBA spec [although it looks a little old]
The members of the OMG have a shared goal of developing and using
integrated software systems. These systems should be built using
a methodology that supports modular production of software;
encourages reuse of code; allows useful integration across lines
of developers, operating systems and hardware; and enhance long-
range maintenance of that code. As an organization, OMG believes
that the object-oriented approach to software construction best
supports their goals. The OMA publication outlines the
groundwork for technology response to Request for Proposals (RFP)
and the adoption of specifications.
> The Common Object Request Broker: Arch. and Spec. (Corba)
> Pricing
[Here's why you don't see the specifications posted to the net or available via
ftp! These are from the list of literature and periodicals listed in
omg.org:pub/CORBA]
o I would like to order ______ copy(s) of the CORBA for $50 each.
o [Combinations]
> Tivoli
The OMG also has a (Corporate) Membership list and "known CORBA supporters"
list with their info package.
> HD_DOMS
HyperDesk Corporation
2000 West Park Drive
Westboro, MA 01581
(508)366-5050
============================================================================
SUBJECT: HP INTRODUCES DISTRIBUTED-COMPUTING SOLUTION FOR BUILDING
SCALABLE, OBJECT-ORIENTED APPLICATIONS
DATE: September 27, 1993
----------------------------------------------------------------------------
HP ORB Plus is the only environment that combines the complete CORBA 1.1
specification from the Object Management Group with the DCE standard from
the Open Software Foundation(tm) as its transport mechanism. DCE is
designed to let developers write one application and then deploy it --
without modification -- on any other system that supports DCE. HP ORB Plus
reduces the complexity of developing distributed applications so programmers
can concentrate on the application itself without needing to know multiple
operating systems, networking protocols or where application objects are
stored.
EDITORIAL CONTACTS:
Hewlett-Packard Company
Lynne Hanson, 408/447-1415, Cupertino, Calif.
Jill Kramer, 408/447-4275, Cupertino, Calif.
==================
For more information about HP ORB Plus, contact Kathy Litch
(litch_k@apollo.hp.com <mailto:litch_k@apollo.hp.com>).
Status:
RDOM has been at beta test sites since January. General release of
the Smalltalk and Objective-C language interfaces is expected in June.
The C++ interface in August. Customers include AMD, Consilium and Swiss
Bank Corp).
Short Description:
DOME provides heterogenous distribution across many platforms
and networks, including:
UNIX, Windows, Windows NT, OS/2, OSF/1 (AXP), OpenVMS,
SunOs, Solaris, HP-UX, SGI Unix, Stratus FTX,
TCP/IP, NetBIOS, XTI
As a fully peer-to-peer product DOME can be used to build systems
using any combination of the above.
Long Description:
DOME is an ORB toolkit for the production of user-configured
ORBs and servers. It is a multi-threaded high performance ORB
suitable for use in large scale commercial systems and embedded
real-time systems.
> Orbix
Orbix
Iona Technologies Ltd.
8-34 Percy Place
Dublin 4
Ireland
The latest release of Orbix, Version 1.2, includes an Object Loader function
for the first time, as well as an upgraded Interface Repository, a new
approach to filtering, and more code examples to guide programmers.
Orbix was launched in June 1993 as the first full and complete implementation
of the Object Management Group's (OMG's) Common Object Request Broker
Architecture (CORBA) standard. With Orbix, programmers can develop
distributed, object oriented applications following a consistent and
straightforward, standards-based model.
With Orbix Version 1.2 IONA has added the ability to dynamically load objects
at runtime through its Object Loader function. This enables developers to more
easily integrate Orbix applications with existing data stores be they
traditional flat file databases, relational databases or object oriented
databases.
In version 1.2 IONA has also extended the whole approach to filtering of
requests, and has made it easier for users to integrate Orbix with their
security systems providing for improved reliability of distributed systems
built using Orbix. IONA has also extensively extended the number, and scope, of
code examples it ships with the product to help developers learning how to use
the system.
IONA released Orbix for SunSoft Solaris and SunOS at the Object World
exhibition in San Francisco, Calif., June 1993. Since then it has rolled
out versions of Orbix for Microsoft Windows NT, Silicon Graphics IRIX and
HP/UX. IONA demonstrated a version of Orbix for Microsoft Windows 3.1 at
Object World in London, England last October. Orbix for Microsoft Windows
3.1 is now in beta. In January 1994, IONA and SunSoft Inc. signed an
agreement to align their implementations of CORBA. The two companies
demonstrated interoperability between IONA's Orbix running on Microsoft
Windows 3.1 and SunSoft's Distributed Objects Everywhere (DOE) on Solaris.
Availability
------------
Product Background -
NCR Cooperative Frameworks(TM) were first released for sale
in 10/1991 as "the frameworks" part of the NCR COOPERATION(TM)
product, and are based on NCR's submission to OMG.
Cooperative Frameworks release 3.0 makes the product
available apart from COOPERATION.
Product Description -
Cooperative Frameworks is a distributed object foundation
for building computing applications and services on networks
of heterogeneous computers.
Company Name -
NCR Corporation (An AT&T Company)
Phone
(803) 939-7500
FAX
(803) 939-7745
Contact Name
Randy Volters, Sr. Product Manager
Cooperative Frameworks
Email: Randy.Volters@ColumbiaSC.NCR.COM
<mailto:Randy.Volters@ColumbiaSC.NCR.COM>
Ext. 7774
Company Description -
NCR, AT&T's computer business, brings computing and
communications solutions together to provide people easy
access to information and to each other -- anytime,
anywhere.
> SUITESOFTWARE (SuiteDOME)
Overview
Variety may make life more interesting, but it only complicates the
task of connecting employees with the information they need. In a
world of heterogeneous, distributed computer systems, it's an ongoing
struggle to provide easy access to data while maintaining and
updating a collection of incompatible hardware platforms, operating
systems, applications, databases, network protocols, and the like.
To simplify the technical challenges, reduce the time and effort
required, and still be able to exploit all of an organization's
on-line data, information technology (IT) managers are turning to
middleware - run-time system software that is layered between an
application program and the operating system and that, in a
distributed, heterogeneous environment, supplies the functions that
would have been provided by the application's native operating
system.
The DOME system can accomplish this complex task because it offers:
- an open system
- standards compliance
- object-oriented architecture
- support for heterogeneous environments
- and support for Remote Data Access (RDA), Remote Procedure
Calls (RPC), Message-Oriented Middleware (MOM), and Object Request
Broker (ORB).
o Open System
DOME is an open system that provides an interface between all of a
customer's applications, making it possible to share information
between new and legacy applications. DOME provides a solution today
and its open platform structure accommodates future technologies.
o Standards Compliant
DOME is compliant with the following standards:
- OMG/CORBA
- SAG
- MOMA
- ISO
- OLE Microsoft
- CCITT X.500
- Kerberos 5.4 (Security)
DOME allows message transfer from one object to another object,
provides the ability to find an object, register an object, register
the message interface to an object, and dynamically invoke an object.
DOME also provides object services beyond the Object Request Broker
(ORB) and contains a directory and name service that provides more
functionality than specified by the X.500 standard. Because DOME goes
beyond what many of the standards require, it makes the task of
creating distributed applications, especially in very large
distributed environments, even easier.
SUITESOFTWARE is a member of various standards groups and conforms
its products to industry standards as they are adopted.
o Object-Oriented Architecture
Because DOME's architecture is object-oriented, there are significant
benefits.
- True messaging for workflow management and EDI
- Queue- and bus-based (rather than send-based) design provides
store-and-forward, broadcasting, and subscribing functionality
- Full recovery capabilities
- Different levels of messaging service for positive/negative
acknowledgment and start-on-demand
- Hierarchical namespace with true domains for complete
scalability
- Concern registration and event notification
- Logical name translation for true aliasing
- Kerberos 5.4 compatible security/authentication and access
control
- Implementation of additional protocols through a
communications layer
- Co-existence of multiple development and/or production
environments on a single node
- Platform independent time services and exception handling
These beneficial functions have resulted in measurable time and labor
savings while freeing systems personnel to concentrate on critical
issues.
o Support for Heterogeneous Environments
DOME runs on the major UNIX platforms as well as in other interactive
computing environments, such as OS/2 and Windows.
DOME Software System Components
The DOME software system is composed of the core DOME product, DOME
SecurityTM, DOMEshellTM scripting and prototyping language, and the
DOME Data Manager (DDMTM) database access manager.
[...]
? 1995 SUITESOFTWARE
DOME, DOMEshell, DOME Security, DOME Data Manager, and DDM are
trademarks of SUITESOFTWARE. All other products and product names are
copyrighted by, trademarks of, or registered trademarks of their
respective owners.
Support and Deliverables
Customer Support
SUITESOFTWARE places particular emphasis on support and continuing
education. The broad technical and business systems background of our
staff of fully trained professionals ensures "real world" responses
to problems. SUITESOFTWARE `s support staff is available by
telephone, FAX, and e-mail to help customers maximize the use of the
DOME Software System and obtain quick resolutions to problems.
Deliverables
Optical or magnetic media containing all files required to load and
execute DOME plus PostScriptTM versions of DOME documentation.
Hardcopy versions of all DOME documentation are available for a
nominal additional cost.
Configuration Requirements
Disk space and memory requirements are dependent on the installation
platform. SUITESOFTWARE sales representatives are available to help
determine configuration requirements for particular computer systems.
SUITESOFTWARE
801 East Katella Ave., Suite 210,
Anaheim, CA 92805
Telephone: (714) 938-8850
There are two entries on garbage collection, the first is an excellent entry
written for the FAQ by Paul Johnson and the second is from the FAQ author's
company on the necessity of garbage collection for object-oriented programming
and technique.
There are several reasons why true object-oriented programming requires garbage
collection.
a) Doubly specified empty and remove methods with one including a memory
delete, placing the memory management burden on the client, who must call
the appropriate method.
It is not enough to merely find fault with manual memory management. One also
has to show that garbage collection provides a better alternative. Early
versions of garbage collection were merely crude implementations of
mark-and-sweep that left much to be desired. However, garbage collection has
advanced as rapidly as most computer-related technologies and is now a robust,
mature technology.[1] Many object-oriented languages specify garbage
collection for all or part of their memory. Even C and C++ have at least one
commercially supported garbage collector that can transparently and
compatibly manage both new and existing programs. [2]
References
[1] Paul R. Wilson, "Uniprocessor Garbage Collection Techniques", 1992
International Workshop on Memory Management, Springer-Verlag Lecture Notes in
Computer Science series.
[3] Detlefs, Dosser, and Zorn, "Memory Allocation Costs in Large C and C++
Programs". <ftp://cs.colorado.edu/pub/techreports/zorn/CU-CS-665-93-ps.Z>.
[4] Henry Baker, "The Treadmill: Real-Time Garbage Collection without Motion
Sickness". <ftp://ftp.netcom.com/pub/hb/hbaker/NoMotionGC.html>
Smalltalk (in its original 1972 version) was initially intended to make
computer programming easy enough for children. The idea was that manipulating
objects was something more intuitive and natural than coding procedures.
Other entries or suggestions are welcome, please send to the author of the FAQ.
> What?
Archive-name: object-faq/part4
Last-Modified: 04/02/96
Version: 1.0.9
> Who?
I work for a Unix software house, Qualix Group, in the US. Here is
my sig:
- Doug Shaker
voice: 415/572-0200
fax: 415/572-1300
email: dshaker@qualix.com <mailto:dshaker@qualix.com>
mail: Qualix Group
1900 S. Norfolk St., #224
San Mateo, CA 94403
I am NOT a researcher on the testing of object-oriented programming.
I just collate the stuff that is sent to me by people who REALLY know
something. See the section "ACKs" at the end.
> Why?
As soon as one major class library vendor starts to ship real test code
with their libraries, all of the other vendors will be forced, by
market pressure, to do so as well, or face market share erosion. Think
about it. If you had to recommend a class library to a committee that
was choosing a basis for the next five years of work, wouldn't you feel
safer with a class library that could be auto-tested in your
environment?
> Written Material
Love, Tom. Object Lessons. SIGS Books, 588 Broadway #604, New York, NY
10012. $49.
This book eloquently elucidates the need for testing of object-
oriented code and has a chapter on how it was done at Stepstone
during the first release of their initial class library.
Theilen, David. "No Bugs. Delivering error free code in C and C++.",
Addison-Wesley, 1992, ISBN:0-201-60890-1.
> Courses
> Software
IPL Ltd. (in the UK) has a testing tool called Cantata which allows for
testing C++, but as far as I am able to determine, it has no special
features for C++ testing. From the product literature:
Cantata allows testing to be performed in an intuitive way
making the tool exceptionally easy to use and productive in
operation. Cantata is suitable for testing software written in
either C or C++.
MicroTech Pacific Research (mpr.ca) has a C++ class testing tool called
ACE (Automated Class Exerciser) which is available under non-disclosure
agreement. It is not currently for sale. If you are interested,
contact Paul Townsend, townsend@mprgate.mpr.ca <mailto:townsend@mprgate.mpr.ca>.
> ACKs
The following post helps to provide some answers with at least a partial list.
See also Appendix E.
There was a recent posting concerning the relationship between OMG's CORBA
and Distributed Transaction Processing Monitors. In general, there is a lot of
uncertainty as to how the various distributed computing tools, products and
environments might work together. Below is the outline of an eight-page
posting to the Corporate Facilitators of Object-Oriented Technology (CFOOT)
mailing list addressing these issues. Let me know if you would like a copy
of the posting and/or to be added to the CFOOT mailing list.
Bob Marcus
rmarcus@atc.boeing.com
<mailto:rmarcus@atc.boeing.com>
-----------------------------------------------------------------------
SOME GENERAL REFERENCES FOR ADDITIONAL INFORMATION
-----------------------------------------------------------------------
MULTIPROTOCOL NETWORK TRANSPORTS
OSF(Mach)
Chorus Systems (Chorus)
Microsoft (NT)
-----------------------------------------------------------------------
REMOTE PROCEDURE CALLS
NobleNet (EZ-RPC)
Netwise (Netwise-RPC)
ATT/Sun (TI-RPC)
OSF (DCE/RPC)
-----------------------------------------------------------------------
CONVERSATIONAL PROGRAMMING
IBM(Common Programming Interface-Communications)
-----------------------------------------------------------------------
MESSAGING PRODUCTS
Sun(Tooltalk)
Teknekron (Teknekron Information Bus)
ISIS(Distributed News)
Expert Database Systems (Rnet)
----------------------------------------------------------------------
DISTRIBUTED COMPUTING ENVIRONMENTS
OSF/DCE
ISIS(Distributed Toolkit)
-----------------------------------------------------------------------
TRANSACTION PROCESSING MANAGERS
The ideas that initially gave MVC has been developed further and
is the basis of the work Trygve is currently doing on the
OOram methodology.
<http://www.sbu.ac.uk/~csse/publications/OOMetrics.html>
Also:
Object Oriented Software development
Mark Lorenz ISBN 0-13-726928-5
Prentice Hall
Software Metrics
Grady-Caswell ISBN 0-13-821844-7
Prentice Hall
>...
Here are some references:
@article{inheriting:1993,
author = {G. Michael Barnes and Bradley R. Swim},
title = {Inheriting software metrics},
journal = {JOOP},
year = {1993},
month = {Nov./Dec.},
volume = {6},
number = {7},
pages = {27-34}
}
@article{a-new-metr:1993,
author = {J.-Y. Chen and J.-F. Lu},
title = {A new metric for object-oriented design},
journal = {Information and Software Technology},
year = {1993},
month = apr,
volume = {35},
number = {4},
pages = {232-240}
}
@inproceedings{towards-a-:1991,
author = {Shyam R. Chidamber and Chris F. Kemerer},
title = {Towards a Metrics Suite for Object Oriented Design},
booktitle = {OOPSLA '91 Proceeedings},
year = {1991},
pages = {197-211}
}
@inproceedings{software-m:1992,
author = {J. Chris Coppick and Thomas J. Cheatham},
title = {Software Metrics for Object-Oriented Systems},
booktitle = {CSC '92 Proceedings},
year = {1992},
pages = {317-322}
}
@inproceedings{some-metri:1991,
author = {B. Henderson-Sellers},
title = {Some metrics for object-oriented software engineering},
booktitle = {TOOLS Proceedings},
year = {1991},
pages = {131-139}
}
@article{object-ori:1993,
author = {Wei Li and Sallie Henry},
title = {Object-Oriented Metrics that Predict Maintainability},
journal = {J. Systems Software},
year = {1993},
volume = {23},
pages = {111-122}
}
@inproceedings{workshop-r:1992,
author = {Teri Roberts},
title = {Workshop Report - Metrics for Object-Oriented Software Development},
booktitle = {OOPSLA '92 (Addendum to the Proceedings)},
year = {1992},
pages = {97-100}
}
@techreport{softwareme:1991,
author = {A. Buth},
title = {Softwaremetriken f{\"u}r objekt-orientierte Programmiersprachen},
institution = {Gesellschaft f{\"u}r Mathematik und
Datenverarbeitung},
year = {1991},
month = jun,
number = {545},
type = {Arbeitspapiere der GMD}
}
----------------------------------------------------------------------
Joern Trilk Phone: ++49-89-2105-2391
Institut fuer Informatik (H1) Fax: ++49-89-2105-5296
TU Muenchen Email: trilk@informatik.tu-muenchen.de
<mailto:trilk@informatik.tu-muenchen.de>
80290 Muenchen
----------------------------------------------------------------------
In <3baqhn$crg@newsbf01.news.aol.com <mailto:3baqhn$crg@newsbf01.news.aol.com>>,
cjdavies@aol.com <mailto:cjdavies@aol.com> (Cjdavies) writes:
>Has anyone come up with metrics that work realistically for OO
>development? The old lines of code, cyclomatic complexity and Halstead
>metrics don't work so well with OO languages such as Smalltalk (or any
>language that facilitates reuse). Also, has anyone adapted function
>points to OO languages? Any ideas would be most welcome.
>Thanks,
>Colin Davies.
Several people have been working in metrics for oo development. For a quick
synopsis, check out my article in the "Encyclopedia of Software Engineering"
edited by John Marciniak and published by John Wiley & Sons. The article
gives an overview of the work being done in the field, and what needs to be
done. It is a couple of years old now, but there really isn't that much going
on.
I did run into one book called "Object-Oriented Software Metrics" (I forget the
authors), but I didn't think much of it.
Your assessment of LOC, cyclomatic complexity, and Halsted are right on the
money.
As for function points and OO, I think you'll find two papers useful. The first
is a chapter I wrote for the "Software Engineering Productivity Handbook" edited
by Jessica Keyes and published by McGraw-Hill. It applies standard function points
to OO software. I suspect you'll find standard function points wanting. I use
an extension I developed a couple of years ago called 3D function points. I have
an electronic (plain text) version of the paper I can send if you like.
Metrics and OO development are fairly new to each other. I am working on ways to
measure such design characteristics as cohesion, coupling, complexity, similarity
and the like. I haven't been too thrilled with the work that has been done so far.
Much of it has serious theoretical and technical flaws.
<http://www.cs.orst.edu/techpub/vlib/vlib/Visual-OOP/CARD.html>
-----
Margaret Burnett . e-mail: burnett@cs.orst.edu
<mailto:burnett@cs.orst.edu>
Assistant Professor . WWW page: <http://www.cs.orst.edu/~burnett/>
Computer Science Dept. .
Oregon State University .
Corvallis, Oregon 97331 USA .
Note that C and C++ are treated together. One of the tutorials listed is the
course: "Introduction to Object Oriented Programming Using C++", a self-paced
class within the Globewide Network Academy [GNA]; this course may be found at:
<http://uu-gna.mit.edu:8001/uu-gna/text/cc/index.html>
Another course listed is the Coronado Enterprises C++ Tutorial, which assumes
that the user is already familiar with C (not necessarily ANSI C). It may be
downloaded from:
anonymous@oak.oakland.edu
<mailto:anonymous@oak.oakland.edu>:simtel/msdos/cpluspls/cptuts22.zip
anonymous@oak.oakland.edu
<mailto:anonymous@oak.oakland.edu>:simtel/msdos/cpluspls/cptutt22.zip
One Ada 95 on-line tutorial is Lovelace, which is intended for those who are
already familiar with other algorithmic programming languages and are somewhat
familiar with object orientation. Lovelace is available at:
anonymous@lglftp.epfl.ch:/pub/Ada/HTML/lovelace.zip
<ftp://lglftp.epfl.ch/pub/Ada/HTML/lovelace.zip>
<http://lglwww.epfl.ch/Ada/Tutorials/Lovelace/lovelace.html>
The Sather home page includes a list of Sather tutorials in its "Getting
Started" section:
<http://http.icsi.berkeley.edu/Sather/>
Yes, but you'll need to embed a dynamic typing scheme to do it. With dynamic
types in place, an overriding method in a derived class can explicitly check
argument types in a switch statement and invoke the desired method emulating
multiple-polymorphism [See Coplien 92].
For true CLOS multi-methods, the above technique implemented as a base function
(CLOS defgeneric), switching to specialized functions (CLOS methods, made
friends of all arguments) will provide the functional calling syntax, multiple-
polymorphism and access to parameters found in CLOS. This can require some
complex switching, which is somewhat mitigated when multiple-polymorphism
is implemented with virtual functions.
Yes, [Coplien 92] describes a scheme where a class can contain a pointer to
a base class that can switch between its derived classes, providing a limited
form. Earlier chapters contain entries on bypassing C++'s message system and
even bypassing static linking.
ANNOTATED BIBLIOGRAPHY
======================
[Aho 86] Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers:
Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.
Recommended by a reader, but the Author has yet to review this article.
[Boehm 86] B.W. Boehm. A Spiral Model of Software Development and Enhancement.
Software Engineering Notes, Aug., vol. 11 (4), p 22.
[Booch 87] Grady Booch. Software Engineering with Ada. 2nd Ed. Benjamin
Cummings.
[Booch 87b] Grady Booch. Software Components With Ada, Structures, Tools,
and Subsystems. Benjamin Cummings.
The often referred to book on OOD. Offers design notation and methodology.
Brief coverage of OOA and elaborate OOD/P coverage in the applications.
Good on basic principles and has case studies in Smalltalk, Object Pascal,
C++, CLOS and Ada.
The next FAQ should be updated to the second edition. All examples are now
in C++. Booch incorporates several other major methodologies including
Wirf-Brock's CRC (Class-Responsibility-Collaboration) and Jacobson's Use-
Cases.
[Cardelli 85] L. Cardelli and P. Wegner. On Understanding Types, Data
Abstraction, and Polymorphism. ACM Computing Surveys vol. 17 (4).
[Chambers 92] Craig Chambers. The Design and Implementation of the SELF
Compiler, an Optimizing Compiler for Object-Oriented Programming Languages.
Dept of Computer Science, Stanford University, March 1992.
[Coad 91] Peter Coad and Edward Yourdon. Object-Oriented Analysis, 2nd ed.
Englewood Cliffs, NJ. Prentice Hall.
[Coad 91b] Peter Coad and Edward Yourdon. Object-Oriented Design. Englewood
Cliffs, NJ. Prentice Hall.
[Coleman 94] Derek Coleman, et. al. Object-Oriented Development - The Fusion
Method. Prentice-Hall Object-Oriented Series. ISBN 0-13-338823-9
[Cook 90] W.R. Cook, W.L.Hill, P.S. Canning. Inheritance Is Not Subtyping.
Appeared in [Hudak 90] and Gunter 94].
[Coplien 92] James O. Coplien. Advanced C++ Programming Styles and Idioms.
Addison Wesley.
Covers advanced C++ programming and performing other more advanced and
dynamic styles of OO in C++.
[Embley 92] D.W. Embley, B.D. Kurtz, S.N. Woodfield. Object-Oriented Systems
Analysis, A Model-Driven Approach. Yourdon Press/Prentice Hall, Englewood
Cliffs, NJ.
[Goldberg 83] Adele Goldberg and David Robson. Smalltalk-80 The Language and
Its Implementation. Addison Wesley.
[Goldberg ??] Adele Goldberg and David Robson. Smalltalk-80: The Language.
Addison-Wesley.
The "Purple Book". Omits the obsolete abstract virtual machine description
from the Blue Book.
[Gunter 94] Carl A. Gunter and John C. Mitchell. Theoretical Aspects of Object-
Oriented Programming. MIT Press. ISBN 0-262-07155-X.
[HOOD 89] HOOD Working Group. HOOD Reference Manual Issue 3.0. WME/89-173/JB.
Hood User Manual Issue 3.0. WME/89-353/JB. European Space Agency.
Presnets the HOOD (Hierarchical Object-Oriented Design) OOSE methodology.
From the European Space Agency. Based on Ada and object-based.
[Hudak 92] Paul Hudak and Simon Peyton Jones. Haskell Report. SIGPLAN Notices.
1992, vol 27, no 5.
Haskell reference.
[Humphrey 89] Watts Humphrey. Managing the Software Process. Addison Wesley.
ISBN 0-201-18095-2
[IBM 90,91] Various Documents from the IBM International Technical Centers:
GG24-3647-00, GG24-3641-00, GG24-3566-00, GG24-3580-00.
[ISO] ISO Standards Compendium - ISO 9000 Quality Management, 5th edition.
Switzerland.
ISBN 92-67-10206-0.
The complete standard. 9000-3 discusses software and 9004 is a quality management
standard.
[Jacobson 94] Ivar Jacobson. Toward Mature Object Technology. ROAD, Vol. 1,
No. 1, May-June. SIGS Publications.
[Jones 92] Rick Jones. Extended type checking in Eiffel. Journal of Object-
Oriented Programming, May 1992 issue, pp.59-62.
[Kiczales 92] Gregor Kiczales, Jim des Rivieres, Daniel G. Bobrow. The Art
of the Metaobject Protocol. The MIT Press.
[Kim 89] Won Kim and Frederick Lochovsky Editors. Object-Oriented Concepts,
Applications, and Databases.
[Krasner 88] G. E. Krasner and S. T. Pope. A Cookbook for Using the Model-View-
Controller User Interface Paradigm in Smalltalk-80. JOOP, vol 1, no 3, August/
September, 1988, pp 26-49,
[Lakoff 87] George Lakoff. Women, Fire, and Dangerous Things: What Categories
Reveal About The Mind. UOC Press.
[LaLonde 90] Wilf R. LaLonde and John R. Pugh. Inside Smalltalk: Volume 1.
Prentice Hall.
[LaLonde 90b] Wilf R. LaLonde and John R. Pugh. Inside Smalltalk: Volume 2.
Prentice Hall.
[Liskov 93] Barbara Liskov and Jeannette M. Wing. Specifications and Their use
in Defining Subtypes. OOPSLA 93, pp 16-28. ASM SIGPLAN Notices, V 28, No 10,
Oct. 1993. A-W ISBN 0-201-58895-1.
The new and authoritative book on BETA, by the original designers. They
are some of the same designers of the Simula languages, originating OO.
Also just announced:
Object-Oriented Environments: The Mjolner Approach
Editors: Jorgen Lindskov Knudsen, Mats Lofgren, Ole Lehrmann Madsen,
Boris Magnusson
Prentice Hall: The Object-Oriented Series
ISBN: 0-13-009291-6 (hbk)
[Martin 92] James Martin and James J. Odell. Object-Oriented Analysis and
Design, Prentice-Hall, Englewood Cliffs, NJ.
[Meyer 92] Bertrand Meyer. Eiffel: The Language. Prentice Hall. Englewood
Cliffs, NJ. 1992.
[Murray 93] Robert B. Murray. C++ Strategies and Tactics. Addison Wesley.
[Raj 89] R.K. Raj and H.M. Levy. A Compositional Model for Software Reuse.
The Computer Journal, Vol 32, No. 4, 1989.
[Reenskaug 91] T. Reenskaug, et al. OORASS: seamless support for the creation
and maintenance of object-oriented systems. Journal of Object-Oriented
Programming, 5(6).
Presents the Object-Oriented Role Analysis, synthesis, and Structuring
OOSE methodology.
[Reenskaug 95] T. Reenskaug, et al. WORKING WITH OBJECTS: The OOram Software
Engineering Method Manning ISBN: 1-884777-10-4, PH ISBN: 0-13-452930-8.
Accolades:
"...the authors take you on a journey through object techniques filled with
examples. You will come away from this book enriched, with a sound
understanding of OT-based abstractions for modeling programs."
Richard Mark Soley, OMG
"The first method that deals realistically with reuse, and one of the few
that comes close to describing what I do when I design."
Ralph Johnson, University of Illinois
"...the first complete account of role-based methods that have proven to be
a step forward in OO design and development."
[Rout 95] T.T. Rout. Ed. Software Process Assessment: Theory and Practice.
Proceedings, 2nd
International SPICE Symposium. Australian Software Quality Research Institute,
Brisbane,
Australia., June 1 - 2, 1995. ISBN 0 86857 676 X.
Excellent coverage of the new SPICE standard: history, present details, goals.
[Selic 94] Bran Selic, Garth Gullekson, and Paul T. Ward. Real-Time
Object-Oriented Modeling. Published by John Wiley & Sons.
ISBN 0-471-59917-4
[Shlaer 92] Sally Shlaer and Stephen J. Mellor. Object Lifecycles: Modeling
the World in States.
An addition to [Shlaer 88], provides dynamic modeling with a state-
transition driven approach.
[Stroustrup 90] Ellis, M.A., Stroustrup. The Annotated C++ Reference Manual.
Addison Wesley.
The ARM; the original and definitive book on C++. Serves as the ANSI
base document for C++. Also covers C++ implementation. It is meant as
a reference (including for compiler writers), not as a tutorial for
beginners. Perhaps a better ref is [Stroustrup 91].
Archive-name: object-faq/part5
Last-Modified: 04/02/96
Version: 1.0.9
Has the ARM, better reference for the use of C++ (recommended by bs).
Contains sections on object-oriented software engineering.
[Tasker 93] Dan Tasker. The Problem Space, Practical Techniques for
Gathering & Specifying Requirements. ISBN: 0-646-12524-9. Avail only from
author, dant@swdev.research.otc.com.au <mailto:dant@swdev.research.otc.com.au>.
[Ungar 87] D. Ungar and R.B. Smith. The Self Papers. [Entry To Be Completed]
ML reference.
[Yaoqing 93] Gao Yaoqing and Yuen Chung Kwong. A Survey of Implementations
of Parallel, Concurrent, and Distributed Smalltalk. ACM SIGPLAN Notices.
Vol 28, No. 9, Sept 93.
[Yourdon 92] Edward Yourdon. Decline and Fall of the American Programmer.
YPCS.
APPENDICES
==========
APPENDIX A VIPS
================
Grady Booch has been an object- based/oriented advocate for some time. He's
written books such as Software Engineering with Ada [Booch 87], Software
Components with Ada [Booch 87b], and OOA/D with Applications [Booch 91, 94].
His latest notations are often referred to as simply the "Booch" method or
notation and he is Chief Scientist at Rational, a company providing training
and automated support for the method with a tool named "Rose" (See Appendix D).
The Booch method now incorporates many modern methods, including OMT, and Dr.
Rumbaugh has recently joined forces with Grady at Rational.
Cox, Brad
---------
One of the founders of Smalltalk (with Alan Kay and Dan Ingalls). Coauthor
of [Goldberg 83, ??], "Smalltalk-80 The Language and its Implementation".
Smalltalk was invented by a group at Xerox PARC; and a spinoff, ParcPlace, is
now marketing Smalltalk environments (see APPENDIX C).
Recently, Dr. Rumbaugh has joined forces with Chief Scientist Grady Booch at
Rational: Rumbaugh@rational.com <mailto:Rumbaugh@rational.com>
Inventor of C++, a C superset, which has probably gained the most widespread
use of any object-oriented language today. Often found in comp.lang.c++
<news:comp.lang.c++> and
comp.object <news:comp.object>.
Additional short entries and corrections are encouraged; please send them
to the author of the FAQ or Tim Harvey at:
See also section 3.5 for an Object Database Management Group (ODMG) reference.
TABLE OF CONTENTS
Other Models
Research Systems
GRAS*
IRIS
Commercial Systems
IDL
Kala
Pick
Interfaces
Research Systems
Penguin
Commercial Systems
AllegroStore (Franz)
DBTools.h++
Object Gateway
Persistence
Subtleware
Synchronicity (Smalltalk)
Research Systems
________________
POSTGRES and the papers that describe it are available free of charge
from toe.CS.Berkeley.EDU (128.32.149.117) in directory pub/postgres.
The code is stored in a directory named after the latest release; at
the time of this writing, that directory is postgres-v4r1. The list
of officially-supported ports is short (decstations running ultrix 4.x
and sparcstations). Unofficially, many more are supported -- people
elsewhere have done the ports and distribute their versions of the
code. The list of unofficial ports is available in pub/postgres as
file UNOFFICIAL-PORT-LIST.
On Type Evolution:
You ask explicitly about type evolution. We support schema
modification on all classes, including user classes. This means that
you can add attributes (instance slots) and methods at any time.
Further, since postgres is a shared database system, such changes are
instantly visible to any other user of the class.
The language syntax supports attribute deletion, but the system won't
do it yet. Since all data is persistent, removing attributes from a
class requires some work -- you need to either get rid of or ignore
all the values you've already stored.
Contact:
Paul Aoki <aoki@cs.berkeley.edu <mailto:aoki@cs.berkeley.edu>>
The postgres code from uc berkeley is being commercialized by
Miro Systems, Inc. [This seems to have been updated to Montage]
Contact:
paula hawthorn (paula@miro.com <mailto:paula@miro.com>)
dave segleau (dave@miro.com <mailto:dave@miro.com>)
Commercial Systems
------------------
> Illustra
Mailing Address:
Raima Corporation
Offer the Raima Database Manager and Velocis as well as Raima Object
Manager, a C++ programming interface/class library that lets developers
interface their application with a Raima embedded database engine.
Raima Corporation
1605 N.W. Sammamish Road
Issaquah, WA 98027
U.S.A.
The TOTAL ORDB that CINCOM markets is a re-badged version of the UniSQL
product, but there is a long-term technology agreement betwen the two
organizations that will allow improvements made by one to the product
to be shared with the other.
OO DATA MODEL
-------------
Research Systems
________________
REFERENCES:
Anders Bjornerstedt and Stefan Britts. "AVANCE: An
Object Management System". Proceedings of OOPSLA88.
Status:-
CLOSQL is a research prototype OODB designed primarily for prototyping
various schema evolution and view mechanisms based on class versioning.
The system is built using CommonLISP. It would really only be of interest
to other parties as a research tool.
Requirements:-
Common LISP including CLOS standard. The Graphical user interface requires
the Harlequin LispWorks Tool-kit. The system was built on a Sun4 and
has not been tested on any other platform.
Features:-
As a prototype, CLOSQL is not robust enough to sell. The system is single
user and does not properly support persistence - that is, the data has to
be loaded and saved explicitly. The query language is quite good
making good use of the functional nature of the environment.
Methods (LISP and query language only), class versioning and
multiple inheritance are all supported in the data model. Type checking
information is held in the database, but is NOT enforced at present. The
GUI is notable for its support for schema evolution, but otherwise rather
ordinary.
Availability:-
Probably freely available, but as the project was part funded by an
industrial partner, some consultation with them would be necessary before
the system could be released.
References:-
[1] Monk, S. R. and I. Sommerville, "A Model for Versioning of Classes
in Object-Oriented Databases", Proceedings of BNCOD 10, Aberdeen.
pp.42-58. 1992.
[2] Monk, S. "The CLOSQL Query Language". Technical report No. SE-91-15.
Computing Dept, Lancaster University, Lancaster, LA1 4YR, UK. 1991.
[3] Monk, S., "A Model For Schema Evolution In Object-Oriented Database
Systems", PhD thesis, Dept of Computing, Lancaster University, Lancaster
LA1 4YR, UK. 1992.
Contact
ConceptBase-Team
RWTH Aachen - Informatik V
D-52056 Aachen - Germany
The COCOON project was intended to extend the concepts and the
architecture of relational database management systems (DBMSs) beyond
nested relational to object-oriented ones. Based upon the nested
relational DBMS kernel DASDBS, we have built a prototype implementation
of the COCOON model. Key characteristics of COCOON are: generic,
set-oriented query and update operators similar to relational algebra
and SQL updates, respectively; object-preserving semantics of query
operators, which allows for the definition of updatable views; a
separation of the two aspects of programming language "classes": type
vs. collection; predicative description of collections, similar to
"defined concepts" in KL-One--like knowledge representation
languages; automatic classification of objects and views (positioning
in the class hierarchy); physical clustering of subobjects via the use
of nested relations as the internal storage structures; support for the
optimization of both, the physical DB design and query transformation,
by corresponding optimizers.
REFERENCES:
M. Tresch and M.H. Scholl. "Meta Object Management
and its Application to Database Evolution." In
_Proceedings of the Eleventh International
Conference on the Entity-Relationship Approach",
Karlsruhe, Germany, Oct 1992. Springer Verlag (to
appear).
REFERENCES:
(see "ftp.cs.wisc.edu:exodus/bibliography" for a complete list)
~/pub/mood/mood4
at mood.mech.tohoku.ac.jp [130.34.88.61]
~/pub/database/mood
at ftp.uu.net [192.48.96.9]
~/pub/computing/databases/mood
at src.doc.ic.ac.uk [146.169.2.1]
(1) Edit class definition objects and save them. This replaces the
data definition language.
(3) Create query objects, let the system select data objects which
match the queries, and browse them.
Yet, we say that MOOD is a general purpose OODBS. This is not in the
sense that we can develop application programs on it, but in the
sense that it generally supports the essential capabilities of OODBS;
Noboru Ono
Dept. of Machine Intelligence and Systems Engineering,
Faculty of Engineering, Tohoku University.
Tel:++22-216-8111,
Fax:++22-216-8156,
E-mail:ono@mood.mech.tohoku.ac.jp <mailto:ono@mood.mech.tohoku.ac.jp>
We would like to thank all OBST users who have helped us by testing a
beta version of OBST, most notably:
Naresh Sharma (N.Sharma@LR.TUDelft.NL <mailto:N.Sharma@LR.TUDelft.NL>)
Michael Reifenberger (root@rz-wb.fh-sw.de <mailto:root@rz-wb.fh-sw.de>)
Hans-Ulrich Kobialka (kobi@borneo.gmd.de <mailto:kobi@borneo.gmd.de>)
Jean Safar (jsafar@lehman.com <mailto:jsafar@lehman.com>)
Gabor Karsai (gabor@vuse.vanderbilt.edu <mailto:gabor@vuse.vanderbilt.edu>)
Stefan Bohm (bohm@math.uni-muenster.de <mailto:bohm@math.uni-muenster.de>)
------------------------------------------------------------------------------
README of OBST3-4
-----------------
Version: OBST3-4
Date: 11/4/94
Data Model
---------
Incremental Loading
-------------------
Prototype
---------
Since end 1990 the first prototype of OBST is available and is shipped
to interested universities and research institutions. The current
version is publicly available via FTP (see below) since March '92.
There is a mailing list (see below) with >>100 subscribers.
tclOBST
-------
System Requirements
-------------------
--------------------------------------------------------------------
Phone: ++49-721-9654-701
Fax: ++49-721-9654-709
Teletex: 721 190 fziKA
Bug reports should contain a small example program with which the
bug can be reproduced, or at least a detailed description of the
observed phenomenon. They should also mention:
o OBST version
o configuration parameters for your OBST version
(from file config.status)
o kind and version of C++ compiler
o machine
o operating system
---
> Ode
Ode 2.0
An Object-Oriented Database
REFERENCES:
[KBCG89] Won Kim, Nat Ballou, Hong-Tai Chou, and Darrell Garza,
Jorge F. Woelk. Features of the ORION object-oriented
database system. In Won. Kim and Frederick H.
Lochovsky, editors, Object-Oriented Concepts, Databases
and Applications, chapter 11. Addison-Wesley, Reading,
MA, 1989.
You might also like to look at Kim's book, which provides a good
introduction to OODBMS, while focusing on the ORION work:
Contact:
Barbara Lerner
blerner@cs.umass.edu <mailto:blerner@cs.umass.edu>
ontact:
Best regards, Heiko
--
Labor fuer Kuenstliche Intelligenz Heiko Kirschke | |
Fachbereich Informatik Tel: +49 (40) 54715-612 | | ||// ||
Universitaet Hamburg Fax: +49 (40) 54715-572 | | ||\\ ||
Vogt-Koelln-Strasse 30 kirschke@informatik.uni-hamburg.de
<mailto:kirschke@informatik.uni-hamburg.de> | ---------
D 22527 Hamburg Raum R017 -----------
World Wide Web: <http://lki-www.informatik.uni-hamburg.de/~kirschke/home.html>
> PLOB! (Hamburg University)
What is PLOB?
* Orthogonal persistency
-- Type completeness
-- Persistency independent of an object's type
* Efficency
-- Efficient object representation
-- Possibility of direct access to objects in the persistent memory
Contact:
Heiko Kirschke
Labor fuer Kuenstliche Intelligenz
Fachbereich Informatik
Universitaet Hamburg
Vogt-Koelln-Strasse 30
D 22527 Hamburg Raum R017
kirschke@informatik.uni-hamburg.de <mailto:kirschke@informatik.uni-hamburg.de>
Tel: +49 (40) 54715-612
Fax: +49 (40) 54715-572
World Wide Web: <http://lki-www.informatik.uni-hamburg.de/~kirschke/home.html>
> VODAK
Archive-name: object-faq/part6
Last-Modified: 04/02/96
Version: 1.0.9
This approach leads to an open, adaptable data model which provides for
the specification of additional modeling primitives at a meta layer of
the database schema. The concept of metaclasses and the separation of
classes and types allow to determine the structure and behavior of
objects and the individual inheritance behavior via semantic
relationships between arbitrary objects already at the meta layer
independently from the specifications given at the application layer
for the application specific classes.
Query Processing
Multimedia Support
In the future, the VODAK DBMS will be enhanced with new built-in
functionality for multimedia datatypes. Therefore, existing components
of VODAK must be changed and new ones must be added to support time
dependencies, high data volumes, and user interaction.
Query Processing
The DBMS components are currently built on top of DAMOKLES and will be
in the near future on top of ObjectStore.
References
T.C. Rakow, P. Muth The V3 Video Server: Managing Analog and Digital
Video Clips, Sigmod 93, Washington, DC.
{aberer,muth,rakow,klas}@darmstadt.gmd.de
GMD-IPSI
Dolivostr. 15
D-64293 Darmstadt
GERMANY
Commercial Systems
__________________
Features:
- Fully implemented in Objectworks\Smalltalk
(ArtBASE is delivered with source code)
- Currently, a single user version is available. The Distributed Multi User Server
Version
will be presented at the OOPSLA'93 at Washington D.C. in September 1993 for Unix
environments and PCs.
CAPABILITIES
PLATFORMS
GemStone release 4.0 and all language interfaces are available for UNIX
workstations and servers from Sun, HP, IBM, NCR, Siemens, and Sequent.
Client-only support is available in a number of languages for Windows 3.1,
Windows NT, OS/2 and Macintosh. GemStone is an active member of the Object
Management Group and the ANSI Smalltalk standardization committee. GemStone
supports ODMG, ANSI C++ and intends to comply fully with the emerging
standards.
REFERENCES
Robert Bretl, David Maier, Allan Otis, Jason Penney, Bruce Schuchardt,
Jacob Stein, E. Harold Williams, Monty Williams. "The GemStone Data
Management System." Chapter 12 of "Object-Oriented Concepts, Databases
and Applications", by Kim and Lockovsky.
CONTACTS
Tel: 800-243-9369
Tel: 503-629-8383
Fax: 503-629-8556
Tel: 415-345-3144
Fax: 415-345-9950
Tel: 312-380-1310
Fax: 312-380-1308
Tel: 212-626-6680
Fax: 212-626-6684
Tel: 214-715-2602
Fax: 214-715-2623
======================
==== Distributors ====
======================
Georg Heeg
Objektorientierte Systemtechnologien
Baroperstrasse 337
44227 Dortmund
Germany
WM-Data
Sandhamnsgatan 65
Box 27030
102 51 Stockholm
Sweden
Tel: +46 8 6702000
Fax: +46 8 6702060
Anco Technologies
11-1F, 76 Tun Hwa S. Road, Sec. 2
Taipei
Taiwan, R.O.C.
Tel: +886-2-7053779
Fax: +886-2-7053896
Computadoras
Objectos y Communicaciones S.A. de C.V.
3A CDA. Porto Alegre 51
Col. San Andres Tetepilco
Mexico, D.F. 09940
> ITASCA
Introduction
History of ITASCA
Overview
The ITASCA database management system has features belonging to most any
database system. This includes persistent storage for data and schema,
concurrency control and locking, transaction management, multiple
security levels, and logging and recovery for both CPU and disk media
failure. Additional features of ITASCA include dynamic schema
modification, long-duration transactions, shared and private databases,
distributed version control, distributed transaction management, distributed
query management, distributed change notification, object migration, and
an extensible architecture.
ITASCA stores each instance of data in one site. The system or a user may
move the data from one site to another to improve data locality. Access to
moved data remains transparent. There is no need for a user or application
to know the specificlocation of data in the ITASCA distributed database.
ITASCA will automatically find the location of the data. This simplifies
distributed application development. The developer can rely on ITASCA
finding data in the distributed database.
IBEX Corporation
IBEX has built its DAWN Distributed Archiving and Workflow Network class
library of methods and development tools as an application framework to
speed the development of customized solutions to enterprise-level
integration problems. ITASCA's installed based has been largely in
manufacturing and engineering until now, but with DAWN, banking and other
services are beginning to take advantage of the products extended
functionality. DAWN is also used to link production and front office
environments for active decision support. The DAWN Manager Series comprises
focused applications (developed on ITASCA with DAWN), such as DAWN 9000 and
DAWN Account Manager which have an embedded Optical Character Recognition
functionality linked to the database with a customer-defined workflow.
IBEX has re-activated the ITASCA ObjectShare Library and encourages clients
to contribute reusable objects for use by registered ITASCA customers.
Several HTML and Web Browsers for the server itself are underway.
ITASCA was very well rated in a 1994 BUtlerBloor comparison of Object
Databases (the only one to receive more than one uncontested first rating
-- it got four!
Three framework papers describing IDE and CALS in more detail may be found
at Web site <http://www.acq.osd.mil/cals/>
IBEX Computing
International Business Park
4e Bd., Bat. Hera
74160 Archamps
France
Web: <http://www.iprolink.ch/ibexcom/>
> MATISSE
Performance
- Symmetric, Fine Grain, Multi-Threaded Architecture
- Parallel and Asynchronous Disk I/O
- Automatic Disk Optimization through Dynamic Clustering
B
- High Speed OLTP Environment
Reliability
- 24 Hour - Mission Critical Operation
- Media Fault Tolerant (Object Replication)
- Transparent On-line Recovery
Database Administration
- Full On-line Administration (No Down Time)
- On-line Incremental or Full Back-Up
- Dynamically Increase Database Size - On-line
- Full On-line Monitoring
Data Management and Consistency
- Dynamic Schema Evolution
- Consistent Database Reads without Locking
- Historical Versioning, both Schema and Data Objects
- Built-in Enforced Referential Integrity
- Object Level Implicit or Explicit Locking
Scalability
- Hundreds of Concurrent On-line Users
- Hundreds of Gigabytes Per Database
- From Few Bytes to Four Gigabytes for Each Object
- Up to Four Giga-objects Per Database
Object Model
- Full Object Oriented Model
- User Extensible Object Meta-Schema
- Support for Complex, Highly Dynamic, Variable Sized Objects
- Multiple Inheritance
Intelligent Objects
- Triggers at Object, Attribute, or at Relationship Level
- Consistency Rules at Object, Attribute, or at Relationship Level
- Customizable Intelligent Object Indexing
- Automatic Inverse Relationships
Open Systems
- Open C, C++ API
- Supports Any Commercial Development Tool and Language
- No Proprietary Tool Required
- Heterogeneous Cross Platform Client/Server Architecture
In EUROPE:
ADB S.A. Inc.
12-14, rue du Fort de St Cyr
Montigny Le Bretonneux
78182 St Quentin en Yvelines
Cedex, France
Voice: 33 (1) 48 64 72 73
Email: info@adb.fr <mailto:info@adb.fr>
Web: <http://www.adb.fr>
In ASIA:
ADB Asia / SGN
Urban Toranomon Building
1-16-4 Toranomon
Minato-ku Tokyo 105
Japan
Versioning.
Using the on-line versioning mechanism, MATISSE allows any connected
client application to dynamically access any past database version which
was marked as a version to be saved. Access can be performed without
any particular administrative operation, and concurrently with other
on-line accesses to current or other historical versions.
> NeoAccess
NeoLogic Systems
NeoLogic Systems
1450 Fourth Street, Suite 12
Berkeley, CA 94710
U.S.A.
NeoLogic News:
To subscribe, send email to: listserv@fairbanks.pvt.k12.ca.us
<mailto:listserv@fairbanks.pvt.k12.ca.us>
with the following line: SUB NeoAccess-Forum <Your Name>
> OBST+
Voice: 49-721-96179-0
Fax: 49-721-96179-79
Web: <http://www.xcc-ka.de/OBST/OBST.html>
<http://www.fzi.de/divisions/dbs/projects/OBST.html>
Ftp: <ftp://ftp.fzi.de/pub/OBST/current>
<ftp://ftp.xcc-ka.de/pub/OBST>
O2 Technology, Inc.
With O2, you can develop and run applications in areas where traditional
tools and systems cannot handle information efficiently (e.g. management
of technical information, geographical information systems, CAD/CAM and
network management).
2 Technology, Inc.
3600 West Bayshore Road, Suite 106
Palo Alto, Ca 94303
U.S.A.
O2 Technology, Inc.
7 rue du Parc de Clagny
78035 Versailles Cedex
France
Voice: 33-1-30-84-77-77
Fax: 33-1-30-84-77-90
Email: o2info@o2tech.fr <mailto:o2info@o2tech.fr>
O2 Technology
North Heath Lane
Horsham
West Sussex RH12 5UX
United Kingdom
Introduction:
Objectivity/DB
The on-demand object manager directly and automatically manages object access
and buffering, rather than relying on system facilities such as virtual memory
or user manual get/put calls. Mechanisms used include multiple buffer pools
locally and remotely, b-trees, hashing, scoped names, keys, and iterators, with
distributed catalogues for schemas and databases. A direct connection is
established between the user and the objects used, so that users do not
conflict unless and until they are competing for the same objects, thus
avoiding the traditional central-server bottleneck. Short transactions are
based on traditional (transient) locks, owned by the process, and group
together an arbitrary set of operations. Long transactions are based on
persistent locks, owned by the user, and provide the same arbitrary grouping.
Default concurrency is two-phase locking and serialization, but extensions
available include MROW, or multiple-readers concurrent with one-writer, and
allow users to lock with or without wait or with timed waits, to implement more
sophisticated mechanisms.
Objects may be modeled using C++ structures augmented by classes provided such
as strings, dictionaries, and relationship management, as well as some
particular domain libraries. A simple object is a C++ class (or C structure)
with associated access methods. A complex object may include multiple varrays,
each being a dynamically varying sized array of arbitrary structure. A
composite object is any network of related objects that acts as a single
object, both structurally and behaviorally, via propagation of behaviors to
component objects. Any number of composite objects may be contained in
composite objects, and a single object may participate in any number of
composites. The relationship mechanism supports uni- and bi-directional
relationships, one-to-one, one-to-many, and many-to-many. Versioning is
supported at object granularity, may be turned on or off at any time for each
object, may be restricted to linear or allow branching with multiple writers.
References to versioned objects may be to a specific version or to the default
version, which may be separately specified by a method and may allow multiple
defaults. Schema and object evolution are supported via versioning of the
type-defining objects. Each time a type definition is changed, its defining
object is versioned, allowing arbitrary changes. Objects may then be instances
of the old or new type version. Object evolution or upgrading to the new type
version is supported by the user writing conversion methods which are
installed and invoked by the system.
ANSI SQL query is supported in the SQL++ product. Predicate syntax may be
either C++ or SQL. The ODBC and SQL Access Group (SAG) protocols are
supported. Queries may be invoked programatically or interactively, with ad
hoc support. Access to object features is available via methods and traversal
of relationships.
Over forty administrative and developer tools are provided, each with both an
interactive and programmatic interface. These include GUI object and type
browsers, query browsers, report generator, tools to examine and force short
and long locks, to move objects and databases, etc. On-line incremental backup
provides a consistent network-wide snapshot, including referential integrity
across all databases, and runs incremental and full database backups with no
need to acquiesce the databases and no interference with active applications.
All tools are built around a messaging backplane, which supports four levels of
integration with user and third-party tools. Integrated products include HP
SoftBench (full operational level), CenterLine's ObjectCenter (tool level),
Persistence RDBMS gateway, PTech and ProtoSoft Design and Analysis (language
level), and XVT and UIM/X (compatibility level).
Archive-name: object-faq/part7
Last-Modified: 04/02/96
Version: 1.0.9
Objectivity, Inc.
301B East Evelyn Avenue
Mountain View, CA 94041-1530
U.S.A.
Objectivity-Europe
Beijerscheweg 28a
2821 NG Stolwijk
The Netherlands
Objectivity - Europe
Socratesstraat 22
6836 GG ARNHEM
The Netherlands
> ObjectStore
Product Description
System View
Application Interface
- Relationship Management
- Version Management
- Collection Management
- Storage Management
- Associative Queries
- Object Iteration
- Transaction Management
- Index Management
- Clustering
Platforms
PC Platforms
The Company
Voice: 1-800-962-9620
(617) 674-5179
(617) 674-5000
Fax: (617) 674-5010
Offices in Asia Pacific, Europe and throughout the U.S.. Full contact
information available through their web page.
The products that make up ONTOS VIA include ONTOS DB, a fully distributed
Component Object Database and ONTOS Object Integration Server (ONTOS
OIS), which provides object access to relational and mainframe databases.
ONTOS products are available on UNIX and Microsoft operating environments.
ONTOS, Inc.
900 Chelmsford St.
Lowell, MA 01851
U.S.A.
Odapter
Technical Data
Object/Relational Adapter
Odapter Language
printFlight
|allFlightObjects|
allFlightObject:=Flight allObjects.
AllFlightObjects do: [:aFlight|
Transcript show :aFlight flightno value; cr].
Figure 3
void printFlight()
{
int i;
ODBType Flight ("Flight");
ODBBag allFlights=Flight.allObjects();
ODBFunc flightno("flighno");
for(i=0;i<allFlights.size();i++){
cout<<flightno(allFlights[i]);
}
}
Figure 4
Object Identity
Each object manipulated by Odapter has a unique,
system-provided handle called an object identifier
(OID). OIDs eliminate the need for creating unique
keys to identify stored information. Additionally,
OIDs reduce duplication of information when several
attributes would be needed to uniquely identify
information in the database. OIDs are also a
powerful way to tune data access and performance.
Inheritance
Odapter objects can use functions defined on parent
types in the type hierarchy. For example, as shown
in Figure 5, a subtype of Employee called Pilot
could inherit functions from Employee like hire and
name, while defining unique functions like
hoursflown and status.
Multiple Inheritance
Functions defined on a type can be inherited by one
or more subtypes. In Figure 5, functions accessible
by the type ManagingPilot are inherited from its
parents, namely all functions defined on Employee,
Pilot and Manager. By inheriting rather than
redefining functions, you can easily add
functionality to your application.
OSQL
If you already know SQL, you can quickly be
productive using Odapter's OSQL. Both query
languages are set-based, that is they retrieve sets
of information based upon queries. Thus, OSQL does
not require users to navigate through the database
chasing pointers or object references.
Encapsulation
Odapter protects end-user applications from changes
to the internal definition of objects. Since
Odapter only allows access to data through
functions with well defined arguments and results,
your applications are protected from changes to the
function body and you have control over how
information is used.
Aggregate Types
Aggregates are used to represent collections, such
as crew members (maybe several pilots, flight
attendants and a mechanic) for a particular flight,
or the employees reporting to a particular manager.
Aggregates are not required to have a predetermined
size. Odapter manages the memory associated with
aggregates, relieving your application of this
work.
Complex Objects
With Odapter you can construct complex objects from
simpler objects. For example, Figure 6 shows the
relationships between the types Flight, Aircraft
and Employee. Complex objects relieve applications
from managing such relationships.
External Functions
Using external functions, you can access
distributed data and code stored outside of the
relational database used by Odapter for storage,
regardless of location or data format. Examples of
external data sources include IMS, DB2 as well as
custom databases and flat files. Odapter acts as an
integrator so your application can manipulate
information as recognizable business objects. This
not only allows transparent migration of data over
time, it accelerates developer productivity by
hiding the complexity of a diverse data storage
environment.
Overloaded Functions
Multiple functions can have the same name with
different implementations. An application calls a
function (e.g. salary) and Odapter determines at
run-time which code (salary for Manager or salary
for Pilot) to execute, based upon the type of the
object against which the function is invoked. The
application is simplified since the conditional
logic for determining which function to execute is
now in Odapter.
Dynamic Typing
You can change the type of an object without
destroying and recreating the object. An object can
also belong to more than one type. As shown in
Figure 7, once a Flight leaves the ground, it would
change state from being an OnGround to an InAir
Flight. OnGround functions such as maintenancecrew
and availableseats would no longer be needed. An
InAir object would need certain functions like
bestroute and delay to calculate the most time
efficient route and to calculate a projected delay
based current weather conditions. Dynamic Typing
allows you to represent an object in Odapter which
transforms itself over time and, therefore, changes
capabilities and attributes.
Late Binding
Odapter supports functions that are resolved at
runtime. Late binding allows you more flexibility
in application development and gives you the full
power of overloaded functions as described earlier.
On the other hand, Odapter will precompile or do
early binding to improve performance. However, when
types and functions changes at runtime, impacting a
particular function, late binding occurs and the
application automatically takes advantage of the
new implementation of the function when it is
called.
Referential Integrity
Since Odapter manages the relationships between
objects, it can manage referential integrity on
your behalf. That is, if an object referenced by
other objects is deleted, the system removes all
dependencies. Your application code is simplified
since Odapter is able to keep the logical business
model intact automatically.
Multimedia
Odapter allows you to manage large, unformatted
data in binary format and treat that data as an
attribute of an object. For example, you may want
to create a function called diagram to show the
sections and seating for an Aircraft object.
Multimedia information can include graphics, images
and voice. You can also define functions in Odapter
to manipulate this multimedia information. For
example, you can create a function called showexits
that adds information to the diagram. Thus, various
applications can share these complex functions.
Import Facility
The Odapter Import facility allows developers to
update existing Odapter functions with data from
external files such as spreadsheets or other
databases. This is an object-oriented version of
the relational "bulk load" functionality.
Indexing
Indexes are automatically generated when you create
types and functions in Odapter. You can also define
your own indexes using B-tree and hashing
algorithms. Indexes make end user access to
information faster.
Clustering
Related functions and objects which have the same
value for a function can be stored close to each
other. This ability to influence how objects are
stored allows you to tune the performance of the
database based on how the information will be
accessed by applications.
Transaction Management
Odapter ensures the logical and physical integrity
of your database by giving you complete control
over the unit of work to be performed within a
single transaction. With this control, you can save
or rollback a transaction (throw away temporary
work) at your discretion. Savepoints are also
supported so that you can rollback parts of a
transaction.
Authorization
You can control access to an Odapter enhanced
database at the database and function levels based
on individuals or groups of users. For example,
authorization statements can provide read access to
a large group of users while limiting write or
delete access.
High Availability
Because Odapter actually stores objects in an
RDBMS, Odapter can leverage RDBMS features to
maximize the availability of your information by
providing:
* on-line backup of the database, to backup the
database while it is being accessed
* dual logging, to ensure the integrity of your
log file
* switch log, to automatically switch to a
second log file if the original log file becomes
full
* dynamic file expansion, to expand the size of
your database as it becomes full
Recovery
Odapter uses the robust logging and recovery
facilities of the RDBMS. In case of a failure, you
can rollback work or perform rollforward recovery
to a particular time, using the log file to
recreate saved work.
Client Components
Server Components
* External Functions
External functions allow you to access data and
code stored outside of Odapter, regardless of data
format or location. External functions can
automatically link to specific data sources using
the Odapter EDA-Objects class library and the
EDA/SQL product from Information Builder's, Inc.
(IBI). External functions can also be implemented
by you as subroutines written in general-purpose
programming languages and compiled outside of
Odapter. External functions can be called by any
OSQL statement, allowing you to manipulate this
remote data and application code like any other
Odapter object. For example, Figure 9 shows how
Odapter integrates diverse heterogeneous
information in an Oil and Gas environment.
* EDA-Objects
HP and IBI have jointly developed an external
function library called EDA-Objects. Coupled with
IBI's EDA/SQL product, EDA-Objects provides
connections to over 50 commonly used databases on
35 different platforms. The external function
library to connect to EDA/SQL is shipped with
Odapter; however, you must purchase other EDA/SQL
components from IBI directly to use the product.
EDA-Objects is one way to integrate external data
from multiple servers into a single business model
managed by Odapter. This is done without physically
moving the data or changing the applications which
are dependent on the data in its current form.
Additional Products
* COMPASS
COMPASS is a consulting product which includes the
Hewlett-Packard implementation of the
Petrotechnical Open Software Corporation (POSC)
Software Integration Platform (SIP) specification.
The SIP specification defines a data model and an
interface which allow users and applications to
access exploration and production data, independent
of the database engine technology.
System Environment
Ordering Information
OBJECT-ORIENTED FEATURES
Aggregates (BAG, LIST, SET, TUPLE)
Complex Objects
Dynamic Schema Modification
Dynamic Typing
Encapsulation
External Functions
Functions (Stored Code or Methods)
Late Binding
Multiple Inheritance
Object Identity (OID)
Overloaded Functions
Type (Class) Hierarchy
User-defined Data Types
Versioning Primitives
CLASS LIBRARIES
C++
EDA-Objects
Smalltalk
Softbench
CLIENT INTERFACES
Graphical Browser (GOSQL)
Import
Interactive OSQL
Object Application Call Interfaces (OACI):
C++
SmallTalk
C-linkable languages (Ada, COBOL, FORTRAN,
Pascal)
Smalltalk Class Builder
Windows OSQL
OSQL STATEMENTS
Add/Remove Type To/From Object
Add/Remove User
Begin/Commit/Rollback Work
Call Function
Change Owner
Change Password
Connect/Disconnect
Create/Delete Function
Create/Delete Index
Create/Delete Object
Create/Delete Type
Create/Delete User/Group
Declare/Delete variables
Grant/Revoke
If/Then/Else, While, For
Implement/Modify Function
Open/Fetch/Close Cursor
Raise Error
Security On/Off
Savepoint
Select
Store
Update
Sales Offices
For more information, call you local sales office
listed in your telephone directory or an HP
regional office listed below for the location of
your nearest sales office.
United States:
1-800-637-7740, extension 8521
Canada:
Hewlett-Packard Ltd.
6877 Goreway Drive
Mississauga, Ontario L4V 1M8
(416) 678-9430
Japan:
Yokogawa-Hewlett-Packard Ltd.
15-7, Nishi Shinjuku 4 Chome
Shinjuku-ku
Tokyo 160, Japan
(03) 5371-1351
Latin America:
Hewlett-Packard
Latin American Region
Headquarters
5200 Blue Lagoon
Suite 950
Miami, FL 33126
(305) 267-4220
Asia Pacific:
Hewlett-Packard Asia Ltd.
22/F Bond Centre, West Tower
89 Queensway
Central, Hong Kong
(852) 848-7777
Europe/Africa/Middle East:
Hewlett-Packard S.A.
150, Route du Nant-d'Avril
CH-1217 Meyrin 2
Geneva, Switzerland
(22) 780 81 11
WHAT IS OOFILE?
OOFILE is a c++ framework. It can be used as a "traditional" ODBMS or can be
used to access a more traditional RDBMS or record-oriented database. The
current release is implemented with a Faircom c-tree Plus ISAM backend
on Mac and MS Windows. There would be very little difficulty in porting
this to any platform supported by Faircom, and we already have over 8
OS/compiler combinations in use (including 3 in-house).
Design Goals
- everything is native C++ with no (database) preprocessor required
- keep syntax very simple, familiar to 4GL users and not needing c++ gurus
- safe syntax that makes it hard to do the wrong thing by mistake, making
maximum use of c++ compiler type-checking
- use a widely available level of c++ (no RTTI, templates or exception handling)
BASIC PHILOSOPHY
Object-oriented design is mainly about classes, not individual objects.
OOFILE is similar. Most of the time you model your data in terms of
classes. You do NOT declare individual objects (unlike the ODMG model).
Consider a database from the user's view. They generally see collections of
data and edit or interact with individual records from the collection. The
user doesn't care about individual object identity, they don't create
symbolic names for particular objects. These things may be important inside
the database, but do not need to be exposed.
// print my address
cout << People["Andy Dent"].Address;
// get a separate list (iterator) of people who worked for software companies
dbPeople softP( People.PrevJobs->Company->MainBusiness()=="Software" );
// for the current softP record (ie person), print the number of large companies
// where they've worked, and the current company size
cout << softP.Name() << "\t"
<< (softP.PrevJobs->Company->NumEmployees() > 100).count()
<< "\t"
<< softP.CurrentJob->Company->NumEmployees() << endl;
NOTE:
The () at the end of fields, as shown above, are optional for all cases except
fields in relational expressions, eg: People.CurrentJob->StartDate().
This defaults the size of the dbChar fields to 80 chars. To specify the
size of the fields, and/or control indexing options, you need to add a
constructor:
CLASS_TABLE(dbPeople)
dbChar Name, Address;
dbInt Salary;
Note that the constructors also specify the field name strings. These
are optional, but are of great benefit when writing query and
report-writer logic or when constructing a database schema that should
be readable by others.
- User-defined relations
- keyword indexing
- phonetic indexing
- inbuilt report-writer
RELATIONS
One of the big features of an ODBMS is modelling the relationships between
objects. OOFILE allows you to model relations in a pure ODBMS sense, using
object identifiers, or explicitly perform runtime joins over database fields.
This would be mainly used by people porting existing database structures. There
are a number of syntaxes available to establish relationships, eg:
For Macintosh users, the popular AppMaker code generator is being enhanced
to generate OOFILE applications. You will be able to go from drawing your
interface to a complete working database application, without writing code.
The next AppMaker and CodeWarrior CD's will contain more information and
samples.
STATUS
The current c-tree implementation is solid and the inbuilt test data generator
has been used to create databases of up to 200Mb in various configurations. The
largest beta tester is operating a 270Mb+ database on a Sparc Classic.
(500,000+ IP-flow objects as of mid July).
Mac
- Symantec c++ v7.0.4
- CodeWarrior 6.1
MS Windows
- Borland c++ v4.5p3
SunOS 4.3
- g++ v2.6.3
CONTACT
Andy Dent
A.D. Software
94 Bermuda Drive
Ballajura, Western Australia 6066
Phone/Fax +61-9-249-2719
eWorld: DentA
CompuServe: 100033,3241
Internet: dent@highway1.com.au <mailto:dent@highway1.com.au>
<ftp://ftp.highway1.com.au/pub/adsoftware/>
<http://www.highway1.com.au/adsoftware/>
MAINTENANCE
Priority fixes/consulting rate (drop-everything mode) $60/hour
Changing from one GUI to another is 50%. If you decide to later reactive the
original, it's also at 50% (ie: net result same as buying the 2nd GUI outright).
Note: if later GUI kits are at different prices, exchange rules will vary
to suit.
SITE LICENSING
(Excluding bundled c-tree)
by negotiation for large sites.
or
40% off 2nd and subsequent copies
> Phyla
Mainstay
591 A Constitution Avenue
Camarillo, CA 93012
U.S.A.
Voice: (805)484-9400
1-800-484-9817 Code 6276
Email: mainstay1@aol.com <mailto:mainstay1@aol.com>
> POET <Persistent Objects and Extended Database Technology> (Poet Software)
Database Functionality
navigation, queries, sorting, indexes, single-user operation, multi-user
operation using client/server architecture, flexible locking for objects
and sets, nested transactions, watch & notify for objects and sets,
event handling, database size limited only by hard disk size
Portability
all platforms are source-code compatible, any POET database may be read by
any computer full support for heterogeneous networks
Archive-name: object-faq/part8
Last-Modified: 04/02/96
Version: 1.0.9
Platforms
Available for MS-DOS / MS-Windows (Borland C++, Microsoft), OS/2
(Borland C++), Novell, Macintosh MPW, and various Unix systems, including
NeXT (NeXTStep) and Sun OS (Sun C++). See web site for details.
Web: <http://www.poet.com>
Compuserve: GO POETSW
Hi there,
Also:
> UniSQL
UniSQL offers:
UniSQL was founded in May 1990 by Dr. Won Kim, President and CEO, delivering
the UniSQL/X DBMS in March of 1992. With its world-class database research and
architectural team, UniSQL has perfected what the database industry has sought
since the mid-1980s: a fully object-oriented data model that is a natural
conceptual outgrowth of the popular relational model. Both the UniSQL/X DBMS
and the UniSQL/M Multidatabase System represent the first of a powerful new
generation of client-server database systems that support the full
object-oriented paradigm yet retain all of the strengths and capabilities of
relational database systems including support for ANSI-standard SQL.
UniSQL, Inc.
8911 N. Capital of Texas Hwy
Suite 2300
Austin, Texas 78759-7200
U.S.A.
Voice: 1-800-451-3267
(512) 343 7297
Fax: (512) 343 7383
Email: info@unisql.com <mailto:info@unisql.com>
> Unisys Universal Repository
The Universal Repository uses the object database from Versant Object
Technology Corporation, EXCHANGE bridging technology from leading U.K.
integration and metadata specialist Software One Limited. EXCHANGE allows
use of repository data with a wide range of the most popular front-end
design, analysis and modeling tools including Texas Instruments IEF,
Knowledgeware IEW and ADW, Intersolv Excelerator and Unisys LINC Design
Assistant III. When integrated with the Universal Repository, information
created by tools can also be stored for reuse. A CASE Data Interchange
Format (CDIF) bridge supports the loading and unloading of business
information to and from the repository. Users can also access the
Software One Core Model (SOCM), a neutral interoperability model comprised
of the objects required to describe tool models.
Call for more information and the location of the nearest Unisys
authorized reseller.
Performance
-----------
Distribution
------------
Other
-----
3872 Larkspur
CourtLoveland, CO 80538
U.S.A.
> VisualWorks
Other Models
------------
Research Systems
________________
> GRAS
--------------------------------------------------------------
GRAS - A Graph-Oriented Database System for SE Applications
Copyright (C) 1987-1993 Lehrstuhl Informatik III, RWTH Aachen
--------------------------------------------------------------
See the GNU Library General Public License for copyright details.
Contact Adresses:
Email to
andy@i3.informatik.rwth-aachen.de <mailto:andy@i3.informatik.rwth-aachen.de>
References
----------
Refer to the following publications for further info about GRAS, PROGRES,
and related topics:
/Klein92/ Klein P.: The PROGRES Graph Code Machine (in German), Diploma
Thesis, RWTH Aachen (1992)
* : All reports marked with an asterisk are available via anonymous ftp from
ftp.informatik.rwth-aachen.de in directory /pub/reports/... .
[FISH89] D.H. Fishman et. al. Overview of the Iris DBMS. In Won.
Kim and Frederick H. Lochovsky, editors,
Object-Oriented Concepts, Databases and Applications,
chapter 10, pages 219--250. Addison-Wesley, Reading,
MA, 1989.
ADDITIONAL REFERENCES:
John R. Nestor. "IDL: The Language and Its
Implementation". Prentice Hall. Englewood Cliffs,
NJ., 1989.
> Kala
Kala Technical Brief
Summary
Motivation
Overview
Kala is *not* a DBMS. Instead, you use Kala whenever the few canned
combinations of DBMS features do not meet the needs of your
application. A DBMS product constrains you to accept *its* choice of
an end-user graphical interface, a query language binding, a specific
high level data or object model, a particular transaction model, a
single versioning scheme, etc. This either compromises your
application's functionality, or forces your to spend substantial
development effort and money to bridge the impedance mismatch to the
application. Instead, Kala allows *you* to develop no more and no
less than the functionality you need. You build your domain specific
functionality our of a small set of primitives with very little code.
Your gains in productivity, efficiency, and flexibility are
substantial.
To sustain this level of flexibility and reuse, Kala manages any data
that you can represent in machine memory out of bits and references.
Examples include records, dynamically linked graphs and lists,
executable code, and object encapsulations.
Kala can handle data as small as one bit, and as large as the virtual
memory and more, while being totally unaware of the data's semantics.
Its stores and retrieves data efficiently, and compactly over a
distributed and dynamically reconfigurable set of Stores. Upon
retrieval, Kala dynamically relocates embedded references to retain
the original topological structure of the data, thus preserving
referential integrity. Kala also supports active data, physical store
management, and automatic archiving.
Benefits
* For those whose application domain requires data models where the
mapping to those offered by today's DBMS products is cumbersome,
introduces development and execution overhead, and is not portable
across multiple linguistic and environmental platforms, Kala offers
a data model independent interface against any data model
expressible in terms of bits and pointers can be easily built.
* For those who have determined that the only viable option for their
application's persistent data needs is the file system, and have
resined to the idea that they will have to build everything else
they need from scratch, Kala offers an off-the-shelf implementation
without loss of any of files' advantages.
* Finally, for all of you who are concerned about the economics of
software, and take the view that there are many elements that
could contribute negatively to the soundness of your business, such
as operational costs, software maintenance costs, software licensing
costs, software development and learning costs, etc., you will find
Kala an economically sound, sensible, and practical product.
Features
- The managed data elements are made out of uninterpreted bits and
references. Data elements (named `monads') are universally uniquely
identified. Bits are stored with no overhead. References,
represented in memory as native machine pointers, are stored
very compactly, introducing an average of 2.5 bytes overhead.
Availability
As it operates below the schema layer, Kala does not address schema
evolution directly. However, It supports the building of schema'ed
layers above it and below the application, and those layers can
provide for schema evolution conveniently using Kala primitives.
This parts-box approach requires extra work on the part of the developer
compared to out-of-the-box solutions, but provides power and
flexibility sufficient for relatively low cost solutions in
difficult environments (e.g. graph-structured data, dynamic classing)
where no out-of-the-box solution is available.
REFERENCES:
Segui S. Simmel and Ivan Godard. "The Kala Basket: A
Semantic Primitive Unifying Object Transactions,
Access Control, Versions, annd Configurations
Kala is not an OODBMS. Instead, you use Kala whenever the few canned
combinations of DBMS features do not meet the needs of your application.
This parts-box approach requires extra work on the part of the developer
compared to out-of-the-box solutions, but provides power and flexibility
sufficient for relatively low cost solutions in difficult environmentsi
(e.g. graph-structured data, dynamic classing) where no out-of-the-box
solution is available.
> Pick
With Pick and its variants you only have problems if you want to
redefine an existing field. Because of the way the data are stored
and the separation of the data and the dictionary you can define
additional fields in the dictionary without having to do anything to
the data - a facility which we have found very useful in a number of
systems.
Interfaces
----------
Research Systems
________________
References:
``A C++ Binding for Penguin: a System for Data Sharing among
Heterogeneous Object Models,'' Arthur M. Keller, Catherine Hamon,
Foundations on Data Organization (FODO) 93, October 1993, Chicago.
Commercial Systems
__________________
>AllegroStore
Quote:
Franz, based in Berkeley, Calif., is now shipping AllegroStore, which the
company calls the first object database system designed for object-oriented
Lisp.
[...] The database is based on the ObjectStore engine from Object Design, also
in Burlington. It supports multiple clients and servers, [...]
> DBTools.h++
>OBJECT GATEWAY
Object Gateway is a modeling, mapping and code generation tool that lets
you look at existing relational data in Oracle, Sybase and other servers
as if they are object oriented. It is a 100% client-resident and runs on
Microsoft Windows platforms.
Schema Genie, the design time component of Object Gateway, lets you design an
ODMG-style object model for your SQL database. Once the model is designed,
you can generate a variety of language interfaces for it (C++, C, OLE
Automation and Visual Basic are currently supported).
Object Engine is the run-time component of the system and it implements the
object data model by supporting features such as activation and deactivation of
objects, complex object assembly, inheritance, relationships and cache
management. Object Browser is a component of the system that lets you browse
through and manipulate data based on the object model that you defined.
The central tenet of Object Gateway is that inside every complex relational
database, there is an object model waiting to get out. Such a model reduces
the abstraction level mismatch between modern, object oriented client tools
and SQL servers. Automatic generation of an object oriented data access layer
eliminates the need for programmers to hand-craft code to do the same.
> Persistence
Performance
Portability
TECHNICAL SPECIFICATIONS
Custom
Code
|
v
Encapsulation
Inheritance
Associations
Persistence maps associations to foreign keys in the database. Each class has
methods to access related classes.
- Ensure referential integrity between classes
- Specify delete constraints for associations
Object Caching
Transactions
Environment
Platforms/Operating systems
Persistence will support all major Unix and Intel platforms
- Sun/SunOS 4.x, Solaris 2.x
- HP/HP-UX 8.0, 9.0
- IBM/AIX (planned 11/93)
- Intel/NT (planned 3/94)
Development Tools
Persistence supports all major C++ compilers and integrates with GE's
OMTool, allowing developers to go straight from an object model to a
running C++ application.
- Cfront 2.1: ObjectCenter 1.0, SPARCompiler, ObjectWorks
- Cfront 3.0: ObjectCenter 2.0, SPARCompiler, Softbench C++
- GE's OMTool
Databases
CUSTOMER QUOTES
"The good thing is that you can change your object model and just
re-generate the database interface classes at the press of a button."
Richard Browett, Product manager, K2 Software Developments, Ltd.
Voice: 1-800-803-8491
(415) 341-7733
Fax: (415) 341-8432
Email: info@persistence.com <mailto:info@persistence.com>
Web: <http://www.persistence.com>
> Subtleware
Subtleware vastly simplifies the coding necessary for C++ to work with
relational databases:
Subtleware supports virtually all C++ 2.x and 3.x compilers, including:
* Borland C++
* Microsoft Visual C++
* HP C++
* SunPro C++
Subtleware generates static SQL code that can be linked directly into your
application or packaged as a DLL or shared library. Subtleware does not
require the use of high-overhead, run-time modules for managing your
persistent objects.
Archive-name: object-faq/part9
Last-Modified: 04/02/96
Version: 1.0.9
TECHNICAL DETAILS
ASSOCIATION SUPPORT
COLLECTION SUPPORT
TRANSACTION SUPPORT
Easil is at 617-221-2100.
FORMAT:
tool name,
description and methods
operating systems
Vendor name,
city/state, phone (if known)
ACTOR ($495)
------------
*Prototyping & Code generation (ACTOR, access to C, Pascal)
*IBM PS/2, PC AT/XT
The Whitewater Group Inc.
600 Davis, Evanston, IL 60201
Allegro CL
----------
*Advanced Object Oriented Development System based on CLOS. Incremental
compiler; automatic memory management; integrated editor, debugger class
browsers, and profilers; multiple inheritance, method combination, multiple
argument discrimination, meta-object protocol.
*Unix workstations (Sun/Sparc, IBM RS/6000, HP, Silicon Graphics)
PCs with Microsoft Windows
Franz Inc.
1995 University Avenue
Berkeley, CA 94704
(510) 548-3600, FAX (510) 548-8253
Email info@franz.com <mailto:info@franz.com>
Bootcon
-------
*DOS
Modular Software System
CaseVision
----------
*Browser, Static Analysis, no compiler (yet), Editor Debugger, Profiler, ...
Silicon Graphics
Classic-Ada
-----------
*Object-Oriented Ada Environment (to Ada translator)
Software Productivity Solutions
(407) 984-3370.
EOF
---
* Enterprise Objects Framework (EOF), which enables the construction of
enterprise business objects and stores them in industry-standard relational
databases.
NeXT Computer, Inc.
900 Chesapeake Drive
Redwood City, CA 94063
1-800-TRY-NEXT
<http://www.next.com/>
Hamilton C-Shell
----------------
*A shell
*OS/2, Windows
Hamilton Labs
MetaC
-----
*testing tool, code coverage, lint-style chking, C, C++, tests mem alloc errors
QASE (Quality Assured Software Engineering)
938 Willowleaf Dr.
Suite 2806
San Jose, CA 95128
(408) 298-3824 ext. 5
MKS Toolkit
-----------
*Make, ...
*PC (Unix-Like)
MKS
NEXPERT
-------
*GUI-type builder, rule based, objects, classes, subclasses, rule inheritance,
embedded, but you can call external routines.
Neuron Data Elements
From: jrp@accint.com <mailto:jrp@accint.com> (Jason R. Pascucci) (abstract from a
post)
NEXTSTEP Developer
------------------
* NeXT's application development environment, a single set of tools for
building complex applications that can be deployed on heterogeneous
client/server networks running OpenStep, NEXTSTEP, PDO and EOF.
NeXT Computer, Inc.
900 Chesapeake Drive
Redwood City, CA 94063
1-800-TRY-NEXT
<http://www.next.com/>
PDO
---
*Portable Distributed Objects (PDO), which allows objects in a single
application to be distributed across a heterogeneous network of OpenStep and
NEXTSTEP clients, and a broad range of industry standard servers. Server
operating systems supported by PDO include Solaris, SunOS, Digital UNIX,
Hewlett-Packard HP/UX and Microsoft Windows NT.
NeXT Computer, Inc.
900 Chesapeake Drive
Redwood City, CA 94063
1-800-TRY-NEXT
<http://www.next.com/>
ObjectCenter
------------
*C++ programming environment, high quality graphics, browser, debugger,
interpreter.
*Sun, ???
CenterLine
(kendall@)centerline.com
ObjectIQ
--------
*OO devel environ. Objects, rules, debugger, browser, GUI builder, more.
*RAD and intelligent decision support applications.
European Knowledge Systems Centre (HP's European software tools specialists)
ph: 44 272 228794
email: wjb@hplb.hpl.hp.com <mailto:wjb@hplb.hpl.hp.com>
ObjectWorks, VisualWorks
------------------------
*Smalltalk programming environment from the Smalltalk people.
ParcPlace Systems, Inc.
999 E. Arques Avenue
Sunnyvale, CA 94086
email: info@parcplace.com <mailto:info@parcplace.com>
fax: 1-408-481-9095
voice: 1-800-759-PARC
OpenTalk
--------
*Smalltalk to C++ and C Translator.
TNI Industries (Techniques Nouvelles d'Informatique)
ZI du Vernis
29200 Brest
France
tel 98 05 24 85, fax 98 49 45 33
OST/Look
--------
*C++ program animator.
*Suns, PCs, others coming.
Admiral Software
193-199 London Road
Camberley
Surrey
UK
Tel: (44) (276) 692269
Fax: (44) (276) 677533
Prograph
--------
*OO visual programming environment
*Macintosh
TGS Systems
Halifax, Nova Scotia
902-455-4446
SDE WorkBench/6000 ($918 - $7350)
---------------------------------
*Editor (syntax Highlighting), Browser, Flow Grapher, Make, Test Coverage
Analysis, Debugger, Profiler, ...
*HP Apollo 9000, Sparcstations
IBM, Canada
PRGS Toronto Laboratory
895 Don Mills Road
North, York
Ontario, Canada, M3C 1W3
800-IBM-CALL
SNAP
----
*Template based devel. environment for building distributed OO applications
Template Software Inc.
13100 Worldgate Drive, Suite 340
Herndon, VA 22070-4382
(703) 318-1000
SNiFF+
------
*C/C++ development environment with fuzzy parser, Emacs integration and code
browsers, free to universities. See APPENDIX E, TOOLS AND CASE
*SunOS 4.x, Solaris 2.x, AIX 3.2, HP/UX 8.0/9.0
takeFive Software
Jakob-Haringer-Strasse 8
5020 Salzburg, AUSTRIA
phone: +43 662 457 915
fax: +43 662 457 915 6
email: sniff@takefive.co.at <mailto:sniff@takefive.co.at>
TowerEiffel
-----------
*Advanced software engineering and development system for Eiffel. Includes
a high performance Eiffel 3 compiler, programming environment and tools,
GUI Builder, ODBMS Interface, and reusable software libraries for data
structures, graphics, and simulation.
*Available for SunOS, Solaris, NEXTSTEP, Linux, OS/2, and Windows. Plans for
OSF, AIX, and SGI Iris.
Tower Technology Corporation
1501 West Koenig Lane
Austin, Texas 78756 USA
TEL: 800 285 5124 or 512 452 9455
FAX: 512 452 1721
email: tower@twr.com <mailto:tower@twr.com>
www: <http://www.cm.cf.ac.uk/Tower/>
I. graphic-only OO-CASE
EasyCASE
HOOD Toolset
Model 5w
Stood
TurboCASE
Visual Thought
FORMAT:
tool name,
description and methods
operating systems(price, if known)
vendor name,
vendor contact information
001
---
*Object-oriented, full life cycle CASE
*VAX/VMS, Unix ($24,000)
Hamilton Technologies Inc
17 Inman St., Cambridge MA 01239
(617) 492-0058
AdaVantage ($1095--$1780)
-------------------------
*analysis, design (Ada) Generators: production code, Ada compiler and tool set
reusable components library
*PC AT/XT, Mac, Unix Workstations
Meridian Software Systems, Inc.
23141 Verdugo Dr., Ste 105, Laguna Hills CA 92653
BOCS
----
*Semantic Nets, Object-Message Diagrams, State Transition Diagrams, Petri-Nets
*Generates C++
*PC-DOS, OS/2, Windows Macintosh ($595)
Berard Software Engineering
902 Wind River Lane, Suite 203
Gaithersburg, MD 20878
301-417-9884
BridgePoint
-----------
*BridgePoint Model Builder, Shlaer-Mellor graphical modeling tool.
*BridgePoint Model Verifier, a model executor for Shlaer-Mellor OOA models.
*BridgePoint Generator, an code generation engine for converting
Shlaer-Mellor OOA models into code.
Project Technology, Inc.
2560 Ninth Street, Suite 214
Berkeley, CA 94710
tel: 510-845-1484
tel: 800-845-1489
fax: 510-845-1075
email: info@projtech.com <mailto:info@projtech.com>
<http://www.projtech.com>
EasyCASE
--------
*Parts of Shlaer/Mellor method plus lots of other non-OO notations
*Windows, DOS ($495 to $1,295)
Evergreen CASE Tools, Inc
8522 154th Ave NE
Redmond, WA 98052
(206) 881-5149
(206) 883-7676 (fax)
EiffelCase
----------
*ISE's BON (Better Object Notation)
*Generates t class templates
*Unix, Windows NT ($1,995)
Interactive Software Engineering, Inc
270 Storke Road, Suite 7
Goleta, CA 93117
(805) 685-1006
(805) 685-6869 (fax)
Envision
--------
*Methodology independent, user defined. Meta-CASE. Template code
generation. Examples include BPR, Yourdon/ER, OMT.
*Windows,NT,OS/2,(Chicago),Network Servers (8,000 Single, Multiple discounts).
Future Tech Systems (Leon Stucki)
824 E. Main
Auburn, Washington 98002
(206) 939-7552
(206) 735 6763 (fax)
Excelerator II
--------------
*Odell/Martin, Rumbaugh, Jacobson, and Wirfs-Brock notation
*Can customize and mix parts of on approach with another in a user-friendly manner
*LAN, meta-CASE with customizable graphics and rules
*OS/2, Windows NT ($9,500)
Intersolv, Inc
3200 Tower Oaks Blvd
Rockville, MD 20852
(301) 230-3200
(301) 231-7813(fax)
GraphTalk
---------
*many notations (IE, NIAM, HOOD, Merise, SADT)
*configurable meta-CASE tool
*executable code generation of C (via enhanced pseudo code) and GQL
*Sun, DEC, RS6000, UNIX, Motif, PS/2, PC 386, OS/2
Rank Xerox
AI & CASE Division
7, rue Touzet Gaillard
93586 Saint-Ouen Cedex
France
+33 (1) 494 85085
HOMSuite
--------
*responsibility-driven design
*Generates C++ and Smalltalk/V
*Windows ($595)
Hatteras Software Inc
208 Lochside Dr
Cary, NC 27511
(919) 851-0993
Intelligent OOA
---------------
*Shlaer/Mellor notation
*general purpose code generator from"Action Language" psuedo code
*based on user-defined templates
*simulation tool
*Unix
Kennedy-Carter (in the U.K.)
Contact Tracy Morgan on
44-181-947-0553
or fax
44-181-944-6536
or mail tracy@kc.com <mailto:tracy@kc.com>
LOV/Object Editor
-----------------
*Rumbaugh notation
*generates C++
*interfaces with Verilog product suite
*Unix, OSF/Motif
Logiscope, Inc.
3010 LBJ Freeway, Suite 900
Dallas, TX 75234
(214) 241-6595
(214) 241-6594
MetaEdit
--------
*Analysis and design tool that supports most available structured
and OO analysis and design methods, and can be easily customized.
OO methods supported: Booch, Coad/Yourdon, Demeter, Rumbaugh, OSA and MOSESA.
*MetaEdit is available for MS-Windows 3.1 (499$ - 1500$).
MetaCase Consulting OY
P.O. Box 449
Ylist�nm�entie
FIN-40101 Jyv�skyl�
Finland
tel. & fax. +358-41-650 400
<http://www.jsp.fi/metacase>
[The shareware version can be found from Simtel, Cica, and their mirrors. The
version 1.0 is shareware but the latest version 1.1 is fully commercial.]
Model 5w
--------
*prototype, free with purchase of OOA text "The Problem Space".
GUI front end for integrated repository supporting OO requirements
analysis, including events, rules, participants, and locations.
*Windows 3.X under DOS or OS/2
Dan Tasker Consulting
Sydney, Australia
Phone/Fax +61 2 909-8961
dant@swdev.research.otc.com.au <mailto:dant@swdev.research.otc.com.au>
ObjectCraft
-----------
*OOT's own graphic notation
*Generates C++
*DOS ($99)
Object-Oriented Technologies
2124 Kittredge St, Suite 118
Berkeley, CA 94704
(415) 759-6270 (voice/fax)
Object Domain
-------------
*Booch notation (All diagrams:class,object,state,process,module and
interaction diagrams)
*generates C++ headers and stubs
*MS-Windows 3.1
*Shareware US $99.00
*See Appendix E
Dirk Vermeersch
1397 Ridgewood Drive
San Jose, CA 95118
dirkv@netcom.com <mailto:dirkv@netcom.com>
Objecteering
------------
*Softeam's "Class Relation" approach notation
*Generates C++ ("up to 60%"), open with multiple, concurrent user
*Sun, DEC, HP, RS6000, Unix, X Windows/Motif ($9,500)
Softeam
One Kendall Square, #2200
Cambridge, MA 02139
(617) 621-7091
(617) 577-1209 (fax)
ObjectGEODE
------------------
*OMT, ITU's SDL and MSC methodology notations
*Object and Use Cases Analysis, Architectural, Data and Behavioral
Design
*Rapid prototyping, Verification and Validation through Simulation,
*Full C/C++ code generation for most popular embedded RT systems
*ObjectGEODE runs on: SparcStation/SunOS & Solaris, HP/HPUX,
RS6000/AIX, DecAlpha/OSF1 (From $10,000)
Logiscope, Inc.
3010 LBJ Freeway, Suite 900
Dallas, TX 75234
(214) 241 6595
800 424 3095
(214) 241 6594 (fax)
support@logtech.com <mailto:support@logtech.com>
ObjecTime
---------
*ROOM methodology (Real-Time Object-Oriented Modelling) notation
*OO state charts with methods specified in own Smalltalk-like language or C++
*generates Smalltalk, C, C++ and interfaces with C++ environment
*internally used product by Bell-Northern for several years
*full code generation for embedded RT systems
*Unix ($20,000 includes training and support)
ObjecTime Limited
340 March Road, Suite 200
Kanata, Ontario,
Canada K2K 2E4
(613) 591-3400
ObjectMaker
-----------
*supports many diagramming notations
*customize methods, checking, and semantics with external rules
*configurable meta-CASE tool
*Cobol, Ada, C, and C++ generation (shell) and reverse engineering
*Macintosh, VAX, Windows 3, X Windows/Motif ($8,000 to $25,000)
Mark V Systems Ltd
16400 Ventura Blvd
Encino, Ca.
(818) 995-7671
ObjectModeler
-------------
*Rumbaugh, Coad/Yourdon, Jacobson and Booch notation
*multiple, concurrent user
*generates SQL, C++, Smalltalk templates
*Macintosh, Unix ($1,4955,995)
Iconix Software Engineering
2800 28th St., Suite 320
Santa Monica, CA 90405
(310) 458-0092
Objectory
---------
*Jacobson notation.
*Generates C++, CMM support.
*Windows, OS/2, Unix, 4 configurations, $5000.00 - $10000.00 (USD)
Objectory AB
Torshamnsgatan 39,
Mail Box 1128, S-164 ss
Kista
Sweden
support@os.se <mailto:support@os.se>
OMTool
------
*OMTool(tm) version 2.0 (Object Modeling Tool, Rumbaugh) PC-based graphical
tool for OO analysis and design. graphical prep and editing of object models
for systems, programs, databases using the OMT.
*8MB mem/math coproc(16MB without), Windows 3.1, Mouse, Hard Disk with 4 MB of
available disk space, 386 CPU, Video Graphics Adapter.
*Price: $995.00 US.
Martin Marietta Advanced Concepts Center
640 Freedom Business Center
King of Prussia, PA 19406
+1 (610) 992-6200,
+1 800 438-7246,
+1 (610) 992-6299 (FAX)
OSMOSYS
-------
*OOA and OOD for OSMOSYS
Winter Partners
London Office: Zurich Office:
West Wing, The Hop Exchange
24a Southwark Street Florastrasse 44
London SE1 1TY CH-8008 Zurich
England Switzerland
Tel. +44-(0)71-357-7292 Tel. +41-(0)1-386-95 11
Fax. +44-(0)71-357-6650 Fax. +41-(0)1-386-95 00
Paradigm Plus
-------------
*CASE tool supporting Booch, OMT, Fusion, Coad-Yourdon, Martin-Odell, OOIE,
Schlaer-Mellor, and others extended to support Jacobson's Use Case Modeling.
*Automatic Generation of C, C++, Smalltalk, Ada, and ODBMS/RDBMS schema
definitions.
*Reverse engineering of C, C++, Smalltalk
*Windows: Fixed/1 machine, $3995, maint $599. Floating/net $4995, maint $750.
*Unix: $7770, $1155 maint. Multiple discounts.
*Eval, Demo, 30 day eval copy.
PLATINUM technology
Clearlake Lab
17629 El Camino Real, Mail Stop 400
Houston, TX 77058
(713)-480-3233, (713)-480-6606
<http://protosoft.com/home.html>
Direct Contact: Richard W. Haines (richard@protosoft.com
<mailto:richard@protosoft.com>)
Prosa/om
--------
*Coad/Yourdon notation
*Generates C++, SQL
*Windows, OS/2, Motif
Prosa Software
Kirkkokato 5 B
SF-90100 Oulu, FInland
+358 (81) 376-128
+358 (81) 371-754
Ptech
-----
*Martin/Odell notation
*modifiable meta-model
*supports Martin/Odell notation, "data model is the database", C++ and Ontos
or Objectivity code generation (fully executable code), formal foundation
*Unix, ($5,000-25,000)
Ptech, Inc.
200 Friberg Parkway
Westborough, MA 01581 USA
(508) 366-9166
Rational Rose
-------------
*Booch notation OOA/D, OMT notation OOA/D
*generates C++, Smalltalk, Ada, SQL
*Windows, Unix, AIX.
Rational
3320 Scott Blvd.
Santa Clara, Ca. 95054
(408) 496-3700
Also:
*C++ Booch Components 1-800-767-3237 ext. 23
S-CASE
------
*Booch-93 notation
*generates C++ headers and stubs
*project management aids, multi-user
*Windows, OSF/Motif, Open Look, Macintosh ($249-995)
MultiQuest Corp
1699 E. Woodfield Rd Suite A-1
Schaumburg, IL 60173
(708) 240-5555, (708) 240-5556 (fax)
Select OMT
----------
*Rumbaugh notation
*generates C++
*Windows ($695)
Select Software Tools, Ltd
1526 Brookhollow Dr.
Santa Ana, CA 92705
(714) 957-6633; (714) 957-6219
SES/Objectbench
---------------
*Shlaer/Mellor notation, supports GUI and database links editors, browsers,
test utilities, and statistical analysis for simulation development.
Emphasizes importance of model animation to functionally verify the analysis.
*generates C++
*Macintosh, MS-DOS, UNIX ($4,900 to $24,300)
Software & Engineering Software (SES)
4301 Westbank Dr., Bldg A, Austin, TX 78746
(512) 328-5544, (512) 327-6646 (fax)
Stood
-----
*HOOD (version 3.1) notation, supports Ada, C, C++
*Unix, RISC, X windows
Techniques Nouvells d'Informatique
Technopole Brest-Iroise
ZI du Vernis, Case postale 1
29608 Brest Cedex, France
+33 9 8052744, +33 9 849-4533 (fax)
Synchronicity
-------------
*OO A&D tool integrated with ENFIN Smalltalk; bi-directional code
generation; static and dynamic object modeling; use cases; maps object
models to relational DBMSs
*Microsoft Windows 3.xx, Microsoft Windows 95, Microsoft Windows NT, IBM
OS/2, AIX, HP/UX, Sun Solaris
VMARK Software Inc.
50 Washington Street
Westborough, Mass. 01581
United States of America
Tel: +1 (508) 366-3888
Fax: +1 (508) 366-3669
URL: <http://www.vmark.com/>
System Architect
----------------
*Booch, Coad/Yourdon, Shlaer-Mellor.
*design portion specific to Smalltalk, Ada, Object Pascal, and C++
*dialogues and menu management (Windows, C, C++), DB views (SQL, C++),
other (C++)
*Windows ($1395, single User), OS/2($1795, base).
Popkin Software
11 Park Place
New York, NY 10007
(212) 571-3434
(212) 571-2426 (fax)
Toolbuilder
-----------
*many notation (IE, HOOD, SSADM, Shlaer-Mellor)
*configurable meta-CASE tool
*executable code generation of C, C++, Cobol, ADA (via enhanced design-level
action diagrams) and Motif and Open Look
*interfaces to Sybase, Oracle, Informix
*Sun Sparc, Apollo, HP 9000, DECstation, RS6000 ($17,000)
IPSYS Software
28 Green St.
Newbury, MA 01951
(508) 463-0006
IPSYS Software plc
Marlborough Court
Pickford Street
Macclefield, Cheshire
SK11 6JD U. K.
+44 (625) 616722
TurboCASE
---------
*ER diagrams and state charts
*design portion supports class hierarchy, collaboration
*Macintosh ($995)
StructSoft
5416 156th Ave SE
Bellevue, WA 98006
206-644-9834
VIEWS-SF
--------
*supports VSF's extensive approach (including rules) some of which are based on
other popular notations
*C++ template generation, reverse engineerings
*OS/2, Unix ($8,000$23,500)
Virtual Software Factory, Inc
13873 Park Center Rd, #218
Herndon, VA 22071
(703) 318-1180
Visual Thought
--------------
*Free-form diagramming and flowcharting tool
*Customizable drag-and-drop palettes for Booch, Rumbaugh (OMT),
Entity-Relationship, others
*Support for mixed and custom methodologies
*Integration with FrameMaker
*UNIX ($1295 floating license, $695 node-locked license)
*Free 30-day eval on CD-ROM
Confluent, Inc.
132 Encline Court
San Francisco, CA 94127-1838
800-780-2838 (toll-free) . 415-586-8700 (tel) . 415-586-8838 (fax)
info@confluent.com <mailto:info@confluent.com>
Ovum Ltd
1 Mortimer Street
London W1N 7RH
England
Tel: +44 71 255 2670
Fax: +44 71 255 1995
> Proceedings of the Workshop on the Next Generation of CASE Tools (NGCT)
*******************************************************
* Proceedings of the Fourth Workshop on the *
* Next Generation of CASE Tools *
* Universite Paris 1 Sorbonne - 7/8 June 1993 *
*******************************************************
Abstract
Entries will be standardized and summarized in future FAQs and are not
limited to one category.
Starred entries have a summary below and can be found as ">#" followed by the
description. These entries will eventually be cleaned up.
PROGRAMMING LANGUAGES
---------------------
ajpo.sei.cmu.edu:/public/ada95 <ftp://ajpo.sei.cmu.edu/public/ada95>
Ada95 info, ARM
cs.nyu.edu:pub/gnat/... *Ada95 (compiler, GNU,50)
ftp.inria.fr:lang/alcool *Alcool-90 (dyn ML,1)
arjuna.ncl.ac.uk:/pub/Arjuna <ftp://arjuna.ncl.ac.uk/pub/Arjuna>
*Arjuna (Distr Prog System,2)
munnari.oz.au:pub/bebop.tar.Z *BeBOP(seq,par,LP,OO,meta,46)
sales@mjolner.dk <mailto:sales@mjolner.dk> BETA
(Mjolner Informatics Demo)
monch.edrc.cmu.edu:/usr0/snl/archive/bos-1.2
<ftp://monch.edrc.cmu.edu/usr0/snl/archive/bos-1.2> *BOS (prototyping,3)
grape.ecs.clarkson.edu:/pub/msdos/djgpp/djgpp.zip
<ftp://grape.ecs.clarkson.edu/pub/msdos/djgpp/djgpp.zip> C++ (for MS-DOS)
prep.ai.mit.edu:/pub/gnu/gcc-2.4.5.tar.gz <ftp://prep.ai.mit.edu/pub/gnu/gcc-
2.4.5.tar.gz> C++ (for Unix, & Objective-C)
cambridge.apple.com/pub/dylan *Dylan (Dynamic Language,75)
omnigate.clarkson.edu:/pub/msdos/djgpp
<ftp://omnigate.clarkson.edu/pub/msdos/djgpp> *G++ for DOS (Many sites,4)
tsbgw.isl.rdc.toshiba.co.jp:
pub/toshiba/cooc-beta.1.1.tar.Z *cooC (Concurrent, OO C ext.,5)
parcftp.xerox.com:pcl CLOS
pion.lcs.mit.edu CLU (Sun, VAX)
ftp.cs.cornell.edu:/pub/CML-0.9.tar.Z <ftp://ftp.cs.cornell.edu/pub/CML-0.9.tar.Z>
CML
arisia.xerox.com Pcl (Portable CommonLoops)
xcf.berkeley.edu:src/local/fmpl *FMPL (prototyping,6)
nebula.cs.yale.edu Glasgow Haskell
piggy.cs.chalmers.se Chalmers Haskell (hbc)
software.watson.ibm.com Hermes (Unix)
cs.arizona.edu Icon
sun.soe.clarkson.edu ISETL (DOS, Mac, Unix, VMS,src)
<http://java.sun.com/index.html> *Java (Distr Prog, 81)
cs.orst.edu Little Smalltalk (C src)
ftp.ircam.fr:/pub/IRCAM/programs <ftp://ftp.ircam.fr/pub/IRCAM/programs>
*MAX (visual OO,7)
128.59.24.6 (MeldC@cs.columbia.edu <mailto:MeldC@cs.columbia.edu>)
MeldC (Rflctv, prllel, OO lang)
gatekeeper.dec.com Modula-3 (SRC)
cs.uni-sb.de:/pub/osmall/machine <ftp://cs.uni-sb.de/pub/osmall/machine>
*O'small (OO lang for teaching,8)
neptune.inf.ethz.ch Oberon (MacII, SPARC, DECstn)
wuarchive.wustl.edu:/mirrors/msdos/pgmutl/oberon11.zip
<ftp://wuarchive.wustl.edu/mirrors/msdos/pgmutl/oberon11.zip> Oberon (MS-DOS)
ux1.cso.uiuc.edu:pub/amiga/fish/ff380 Oberon (Amiga)
obj3dist@csl.sri.com <mailto:obj3dist@csl.sri.com> (license or request) *OBJ3
(OO lang,9)
prep.ai.mit.edu:/pub/gnu/gcc-2.4.5.tar.gz <ftp://prep.ai.mit.edu/pub/gnu/gcc-
2.4.5.tar.gz> Objective-C (for Unix, & C++)
gate.fzi.de:/pub/OBST <ftp://gate.fzi.de/pub/OBST> *OBST
(lang, perst, OODB,10)
watserv1.waterloo.edu occam (VAX sim, Tahoe)
128.100.1.192:/pub/ootDistrib *OOT (OO Turing demo,11)
wuarchive.wustl.edu:/mirrors/unix-c/languages/ops5
<ftp://wuarchive.wustl.edu/mirrors/unix-c/languages/ops5> OPS5 (interpreter)
etlport.etl.go.jp:/pub/OZ++/OZ++-R2.tar.gz <ftp://etlport.etl.go.jp/pub/OZ++/OZ++-
R2.tar.gz> *OZ++ (Distr Env,83)
<http://www.cs.tcd.ie/acourtny/phantom/phantom.html> *Phantom (Dist Prog,80)
wuarchive.wustl.edu:/mirrors/msdos/pli/runpli1a.arc
<ftp://wuarchive.wustl.edu/mirrors/msdos/pli/runpli1a.arc> PL/I (interpreter)
watserv1.waterloo.edu Russell
parcftp.xerox.com:pub/russell Russell
ftp.icsi.berkeley.edu:pub/sather *Sather (was simple Eiffel,12)
altdorf.ai.mit.edu: scm Scheme (small, portable)
gatekeeper.dec.com: elk Scheme (for Suns)
acorn.cs.brandeis.edu: gambit Scheme (for 68K's)
otis.stanford.edu *Self (13)
self.stanford.edu Self
cs.nyu.edu SETL2 (DOS, OS/2, Mac, Unix)
rascal.ics.utexas.edu SIMULA 67 (Mac)
prep.ai.mit.edu:pub/gnu Smalltalk-80 (GNU v1.1)
st.cs.uiuc.edu *Smalltalk V (35)
cs.yale.edu:pub/ml SML/NJ
research.att.com:dist/ml SML (Version 0.75)
sbcs.sunysb.edu SML (lazy)
ucbvax.berkeley.edu tcl
tk.telematik.informatik.uni-karlsruhe.de:/pub/tnt/tnt-0.1.tar.gz
<ftp://tk.telematik.informatik.uni-karlsruhe.de/pub/tnt/tnt-0.1.tar.gz> *Trellis,69
ftp.cs.umu.se:/pub/umlexe01.zoo <ftp://ftp.cs.umu.se/pub/umlexe01.zoo>
uML
csd4.csd.uwm.edu:/pub/compilers/list <ftp://csd4.csd.uwm.edu/pub/compilers/list>
Free Compilers/Interp's list
primost.cs.wisc.edu: pub/comp.compilers/LanguageList* Bill Kinnersley's list
idiom.berkeley.ca.us: pub/compilers-list/LanguageList*
<http://cui_www.unige.ch/langlist> Bill on Prog Langs & contacts
<ftp://ftp.wustl.edu/doc/misc/lang-list.txt> (billk@hawk.cs.ukans.edu
<mailto:billk@hawk.cs.ukans.edu>)
COMPILER TOOLS
--------------
prep.ai.mit.edu:pub/gnu/bison-1.14.tar.Z Yacc
ftp.th-darmstadt.de:/pub/programming/languages/C++ <ftp://ftp.th-
darmstadt.de/pub/programming/languages/C++> *C++ gram, etc.,14
[See also Free Compilers and Kinnersley's List above!]
ftp.cs.purdue.edu:/pub/gb/ <ftp://ftp.cs.purdue.edu/pub/gb/>*
*C++ Signatures (subtyping),40
ftp.centerline.com:/pub/tags-1.0.tar.Z <ftp://ftp.centerline.com/pub/tags-
1.0.tar.Z> *C++ tags, 23
ftp.th-darmstadt.de:/pub/programming/languages/C++ <ftp://ftp.th-
darmstadt.de/pub/programming/languages/C++> *Cls bwsr,tmplates,GC,etc,14
ftp.informatik.uni-stuttgart.de:/pub/eiffel <ftp://ftp.informatik.uni-
stuttgart.de/pub/eiffel> *Eiffel archive, 24
<http://www.envelop.com> *Envelope Engine OORAD,85
interviews.stanford.edu:/pub/3.1.tar.Z
<ftp://interviews.stanford.edu/pub/3.1.tar.Z> InterViews 3.1 (C/C++
browser)
oak.oakland.edu:/SimTel/win3/pgmtools/domain.zip
<ftp://oak.oakland.edu/SimTel/win3/pgmtools/domain.zip>*Object Domain (SW Case,76)
export.lcs.mit.edu:/contrib/devel_tools/OOD
<ftp://export.lcs.mit.edu/contrib/devel_tools/OOD> *OO Designer CASE Tool,66
OAK.Oakland.Edu:pub/msdos/windows3/oot-106f.zip *OOTher OO CASE Tool,67
wsmr-simtel20.army.mil(192.88.110.20) OOTool (win31 directory?)
labrea.stanford.edu:/pub/pomoco <ftp://labrea.stanford.edu/pub/pomoco>
*ORBELINE: CORBA,65
ftp.informatik.uni-stuttgart.de:/pub/eiffel/eiffel-3/sig <ftp://ftp.informatik.uni-
stuttgart.de/pub/eiffel/eiffel-3/sig> *short tool, 24
siam.unibe.ch:C++/Sniff1.6/ *Sniff (C++ devel environ,22)
self.stanford.edu:/pub/sniff <ftp://self.stanford.edu/pub/sniff>
*Sniff,22
LIBRARIES AND INTERFACES
------------------------
PAPERS
------
ftp.cs.tcd.ie:/pub/tcd/tech-reports <ftp://ftp.cs.tcd.ie/pub/tcd/tech-reports>
*Amadeus,persistence,62
scslwide.sony.co.jp:pub/CSL-Papers *Apertos (MO Distr OS,28)
sail.stanford.edu:pub/MT/93actors.ps.Z *Actors Paper (UIUC,29)
biobio.cs.uiuc.edu:directory pub/papers *Actors Papers,29
<http://www.cs.ucsb.edu/TRs/> *C++ VFn Elim,87
euagate.eua.ericsson.se:ftp/pub/eua/c++/rules.ps.Z *C++ coding standard,44
<http://www.cs.washington.edu/research/projects/cecil/www/cecil-home.html>
*Cecil,77
choices.cs.uiuc.edu Choices OO OS
ftp.chorus.fr:pub/chorus-reports *Chorus,Dist,RT,MicroK,63
<http://cui_www.unige.ch/Chloe/Oscar/home.html> Concurrency Papers,WWW,27
ftp.ens.fr:/pub/reports/liens/liens-94-18.A4.dvi.Z
<ftp://ftp.ens.fr/pub/reports/liens/liens-94-18.A4.dvi.Z> *Contra-/Co- Variance,71
ftp.gte.com:pub/dom *Distrib Reports GTE,52
ftp.ifi.unizh.ch: pub/techreports/electra.ps.Z Electra ORB, sec 3.8.6
cs.utexas.edu:pub/garbage/gcsurvey.ps Garbage Collection,sec 3.9
wilma.cs.brown.edu:/pub/gdbiblio <ftp://wilma.cs.brown.edu/pub/gdbiblio>.{tex,ps}.Z
*graph drawing,31
world.std.com:/pub/kala/TechDocs/Overview_Sun.ps
<ftp://world.std.com/pub/kala/TechDocs/Overview_Sun.ps>,* *Kala Archive,45
ftp.ccs.neu.edu:pub/demeter/documents *Law of Demeter,32
ftp.cs.ualberta.ca:pub/oolog/state.ps.Z MUTABLE STATE OOPL SURVEY
mushroom.cs.man.ac.uk:/pub/mushroom/papers
<ftp://mushroom.cs.man.ac.uk/pub/mushroom/papers> *OO Dyn Grping,
memory,33
st.cs.uiuc.edu:/pub/papers <ftp://st.cs.uiuc.edu/pub/papers>
OO Frameworks, R. Johnson
<http://pclsys64.dcrl.nd.edu/papers> OS Papers (OO?),68
<http://www.gh.cs.su.oz.au/Grasshopper/index.html> Perst. Operating Systems
cs.washington.edu:/pub/chambers/predicate-classes.ps.Z
<ftp://cs.washington.edu/pub/chambers/predicate-classes.ps.Z> *Pred Classes
(Cecil,34)
ftp.cs.umd.edu:pub/sel/papers *Quality,72
ftp.informatik.uni-stuttgart.de/pub/doc/techreports/Metrics.ps.gz *Quality,73
ginger.cs.berkeley.edu/pub/raidPapers RAID Papers (Berkeley)
sprite.(cs.)berkeley.edu:~ftp/pub/RAID-II RAID configs (Berkeley)
ius4.ius.cs.cmu.edu:/usr/chimera/public/CMU_RI_TR_93_11.ps.Z
<ftp://ius4.ius.cs.cmu.edu/usr/chimera/public/CMU_RI_TR_93_11.ps.Z> *Real Time,49
<ftp://ftp.gte.com/pub/dom/reports/MANO93d.ps> *Reflection Paper,82
self.stanford.edu:pub/papers/chambers-thesis *Self Opt,ChambersThesis,30
self.stanford.edu:/pub/papers/hoelzle-thesis.ps.Z
<ftp://self.stanford.edu/pub/papers/hoelzle-thesis.ps.Z> *Self
Opt,HoelzleThesis,64
self.stanford.edu:pub/papers/ Self Papers
vega.dur.ac.uk:/pub/papers/foot.dvi <ftp://vega.dur.ac.uk/pub/papers/foot.dvi>
Testing OO (sect 3.11)
townsend@mprgate.mpr.ca <mailto:townsend@mprgate.mpr.ca>
Testing OO (sect 3.11)
ftp.parc.xerox.com:/pub/mops/traces.ps
<ftp://ftp.parc.xerox.com/pub/mops/traces.ps>
*Traces,kiczales,MOP,DI,43
neptune.inf.ethz.ch: pub/issac93.ps.Z Types, Comp alg (Santas)
ftp.toa.com/pub *Use Cases,88
cui.unige.ch:OO-articles U. Geneva OO Group papers
research.microsoft.com:/pub/papers/vdg.ps
<ftp://research.microsoft.com/pub/papers/vdg.ps> *Value Dependence
Graphs,57
ftp.cs.utwente.nl:/pub/doc/TRESE <ftp://ftp.cs.utwente.nl/pub/doc/TRESE>
*Various on OO,58
The Postgres, OBST and Exodus sites also contain a good selection of papers.
See below for a huge collection of CS bibliographies (about 290,000) including
references on OO. Contact: Alf-Christian Achilles <achilles@ira.uka.de
<mailto:achilles@ira.uka.de>>
FTP: ftp.ira.uka.de[129.13.10.90]:pub/bibliography
WWW: <http://www.ira.uka.de/ftp/ira/bibliography/index.html>
GENERAL
-------
OTHER
-----
DESCRIPTIONS
------------
The software and the manual for the Arjuna system can be
obtained by anonymous ftp: arjuna.ncl.ac.uk (128.240.150.1)
Arjuna System
Archive-name: object-faq/part10
Last-Modified: 04/02/96
Version: 1.0.9
Since there are too many papers to describe in one posting there is an index
available in /pub/Arjuna/Index which contains the abstracts from all of
the papers/theses and their locations within the ftp hierarchy.
What: BOS
From: Sean.Levy@cs.cmu.edu <mailto:Sean.Levy@cs.cmu.edu>
Date: 23 Apr 92 18:07:32 GMT
Note: I play very fast and loose with the terminology of OOP to get my
point across. I apologize if I offend any sensibilities, and will clarify what
I say if it is obfuscated by my use of terms.
:(*) Please do not access during working hours (7am - 6pm their local time)
cooc@isl.rdc.toshiba.co.jp <mailto:cooc@isl.rdc.toshiba.co.jp>
--
--------------------------------------------------------------------
Ken-ichi Maeda <maeda@isl.rdc.toshiba.co.jp <mailto:maeda@isl.rdc.toshiba.co.jp>>
Communication and Information Systems Research Lab. II
TOSHIBA Research & Development Center
1, Komukai Toshiba-cho, Saiwai-ku, Kawasaki 210, JAPAN
TEL. (+81- or 0)44-549-2237 FAX. (+81- or 0)44-520-1841
--------------------------------------------------------------------
>6 FMPL (prototyping)
MAX
The Alpha version (and its demo-only subset) is based on the NeXT
version, where it is used to control the IRCAM-designed ISPW board.
This card, based on two Intel i860 microprocessors, handles
numerically-intensive real-time operations.
SVP
UDI
HOW TO RETRIEVE
Connect via ftp to ftp.ircam.fr. Engage into the following dialog (the
underlined text is the reply you should provide
220 ftp FTP server (Version 6.17 Thu Mar 11 08:30:51 MET 1993) ready.
Name (ftp:host): f _t _p _ (or: a _n _o _n _y _m _o _u _s _)
Passwd: l _o _g _i _n _@ _y _o _u _r _m _a _c _h _i _n _e _ (see NOTE
further down)
230-...
230-(informational messages, please read!)
230-...
ftp> c _d _ _p _u _b _/ _I _R _C _A _M _/ _p _r _o _g _r _a _m _s _
250 CWD command successful.
ftp> g _e _t _ _R _E _A _D _M _E _
200 PORT command successful.
150 Opening ASCII mode data connection for README (nnn bytes).
226 Transfer complete.
local: README remote: README
nnn bytes received in mmm seconds (xxx Kbytes/s)
ftp> b _i _n _
200 Type set to I.
ftp> g _e _t _ _s _v _p _. _t _a _r _. _g _z _ (or u _d _i _.
_t _a _r _. _g _z _ or m _a _x _. _t _a _r _. _g _z _)
...
ftp> q _u _i _t _
NOTE
The ftp server requires you to give as password something of the form
l _o _g _i _n _@ _h _o _s _t _
where l _o _g _i _n _ is your login name (or account name, or user information)
and h _o _s _t _ is the fully-qualified name of the machine you are currently
calling
from, which is not necessarily the one on which you get your mail. If you
mistype it, the ftp server will advise you with an informative error message.
AVAILABILITY
Additional info can be found in the README file in the above directory.
... in retrieving the software and/or in running it: please send email to
manager@ircam.fr <mailto:manager@ircam.fr>
You can MODIFY the language and have your students make experiments
with it. The source code of the abstract machine and the
specifications for the parser and scanner generators are available.
Using these generators you can make experiments for your own research
in statical analysis of object-oriented languages.
***************************************************************************
NOTE: Ftp should be put into binary mode before transferring the compressed
tar file.
***************************************************************************
ftp
ftp> open cs.uni-sb.de
Name: anonymous
Password: <your name>
ftp> binary
ftp> cd /pub/osmall/machine
ftp> get README
ftp> get ANNOUNCE
( ftp> get HowToGetML )
ftp> get oma.1.00.tar.Z
ftp> close
ftp> quit
If you have a Sun 4 or a SPARC you can use the existing executable files.
Otherwise, you need 'sml-yacc', 'sml-lex' and 'sml-noshare'. Read
'HowToGetML' to obtain them.
References
[HS93] Andreas V. Hense and Gert Smolka. Principal types for object-
oriented languages. Technical Report A 02/93, Universit"at des Saar-
landes, Fachbereich 14, June 1993.
What: Release 2.0 of OBJ3 (needed for FOOPS and OOZE, concurrent OOP)
Date: Thu, 4 Jun 92 15:07:26 BST
From: Paulo.Borba@prg.oxford.ac.uk <mailto:Paulo.Borba@prg.oxford.ac.uk>
OBJ is available from SRI, see the message below; prototypes implementations of
FOOPS (without the concurrent extension) and OOZE are due to the end of the
year, but for both you also need OBJ.
Unfortunately, I don't have any document about the FOOPS extension now, but
probably by the end of the year. I will send it to you as soon as possible.
Also new to this version of OBJ3 is a facility for controlled rewriting. This
provides substantially increased support for the use of the system for
equational theorem proving.
Be sure to give us your postal mailing address. Then we will send you the
OBJ3 Information Form, and License Agreement, with instructions on how to
fill them out. (A KCL license form will also be included.) When you return
them to us, appropriately filled out and signed, we will send you the tape,
somedocumentation, and, in case you are requesting a tape, an invoice for
$150.00 plus any required taxes.
If you already have an OBJ3 license, then you don't need to get a new license,
but, if you are requesting a tape from SRI, you are asked to pay the above
distribution fee.
It is also possible to get a license for OBJ3 at no charge from SRI and then
get the OBJ3 distribution itself from some third party also having a license.
What: OOT
From: holt@turing.toronto.edu <mailto:holt@turing.toronto.edu> (Ric Holt)
Date: 26 Apr 93 20:14:43 GMT
What: SATHER
The initial beta test release of the language was in May, 1991. The compiler,
debugger, Emacs development environment, documentation, and library classes
are available by anonymous ftp from "icsi-ftp.berkeley.edu".
"sather@icsi.berkeley.edu <mailto:sather@icsi.berkeley.edu>" is a mailing list for
discussing aspects of Sather
and "sather-admin@icsi.berkeley.edu <mailto:sather-admin@icsi.berkeley.edu>" should
be used for bug reports and
requests to be added or deleted from the mailing list.
Sather is based on Eiffel but is more concerned with efficiency and less with
some of the formal and theoretical issues addressed by Eiffel. The language is
much smaller than the current Eiffel, it eliminates over 40 keywords and
simplifies the syntax and inheritance rules.
Like Eiffel, Sather code is compiled into portable C and efficiently links
with existing C code. The Sather compiler is written in Sather and has been
operational for almost a year, though it is still being improved. Preliminary
benchmarks show a performance improvement over Eiffel of between a factor of 4
and 50 on basic dispatching and function calls. On the benchmarks used at
Stanford to test Self (including 8 queens, towers of hanoi, bubblesort, etc),
Sather is even slightly faster than C++.
The Sather compiler and libraries are publicly available under a very
unrestrictive license aimed at encouraging contribution to the public library
without precluding the use of Sather for proprietary projects. The goal is to
establish a repository for efficient, reusable, well written, publicly
available, classes for most of the important algorithms in computer science.
There are currently about 120 classes in the library. The libraries are
growing quickly and will collect together classes from many authors under the
same unrestrictive license.
From the Sather FAQ, August 16, 1993 (See Section 1.24):
Q 1: What is Sather?
~~~~~~~~~~~~~~
Sather is an object oriented language which aims to be simple,
efficient, interactive, safe, and non-proprietary. It aims to meet the
needs of modern research groups and to foster the development of a
large, freely available, high-quality library of efficient
well-written classes for a wide variety of computational tasks. It was
originally based on Eiffel but now incorporates ideas and approaches
from several languages. One way of placing it in the "space of
languages" is to say that it attempts to be as efficient as C, C++, or
Fortran, as elegant and safe as Eiffel or CLU, and to support
interactive programming and higher-order functions as well as Common
Lisp, Scheme, or Smalltalk.
>13 Self
The latest release is more mature than the earlier releases: more
Self code has been written, debugging is easier, multiprocessing is more
robust, and more has been added to the experimental graphical user interface
which can now be used to develop code. There is now a mechanism
(still under development) for saving objects in modules, and a
source-level profiler.
2 This Release
There is a mail group for those interested in random ramblings about Self,
Self-interest@Self.stanford.edu <mailto:Self-interest@Self.stanford.edu>. Send mail
to self-request@self.stanford.edu <mailto:self-request@self.stanford.edu>
to be added to it (please do not send such requests to the mailing list
itself!).
Below is a list of changes and enhancements that have been made since
the last release (2.0.1). Only the major changes are included.
o A new profiler has been added, which can properly account for the
time spent in different processes and the run-time system, and which
presents a source-level profile including type information (i.e.,
methods inherited by different objects are not amalgamated in the
profile, nor are calls to the same method from different sites). It
also presents a consistent source-level view, abstracting from the
various compiler optimizations (such as inlining) which may confuse
the programmer.
o The "new" compiler has been supplanted by the SIC ("simple inlining
compiler"), and the standard configuration of the system is to
compile first with a fast non-optimizing compiler and to
recompile later with the SIC. Pauses due to compilation or
recompilation are much smaller, and applications usually run faster.
2.5 Documentation
Happy Holidays!
-- The Self Group
There were a lot of questions about C++ material in the last time and some
announcements which involved our ftp server.
ftp.th-darmstadt.de [130.83.55.75]
/pub/programming/languages/C++
At the moment we have:
-- documentation and assorted stuff
C++ products list as announced by Saumen K Dutta (in a subdirectory!)
C++ YACC grammar, ET++ tutorial, summaries from the Net,
sources from James Coplien's book (idioms...), etc.
-- class libraries
NIHCL (original, persistent for ObjectStore, with g++ 1.4x changes)
COOL, OATH, RogueWave vector, ET++,
RPC package, a package for sockets, awe (thread package)
-- tools
class browser (for GNU Emacs), indent++, yacc+, template
processor of Brad Cox[sp?], DEC garbage collector
More stuff is always welcome. (Btw, Interviews and Motif C++ wrapper
classes are to be found in the /pub/X11 subtree.)
What: ConceptBase
See APPENDIX B.
>Hello,
> Are there any shareware/ftp'able C++ class libraries that
>provide Relational Database access? I would also appreciate any
>pointers (ideas/articles/journals) to the various issues that one has
>to consider in designing such library.
Ok, I'm not sure if it's exactly what you want, but it's a database, it's
fully written in c++ with classes etc, and it's out for beta testing.
Daz.
--
Darren Platt, Department of Computer Science
darrenp@dibbler.cs.monash.edu.au <mailto:darrenp@dibbler.cs.monash.edu.au>
Monash University, Clayton Melbourne, Victoria, Australia
GNU E's form of persistence is based on extensions to the C++ type system to
distinguish potentially persistent data objects from objects that are always
memory resident. An object is made persistent either by its declaration (via
a new "persistent" storage class qualifier) or by its method of allocation
(via persistent dynamic allocation using a special overloading of the new
operator). The underlying object storage system is the Exodus storage manager,
which provides concurrency control and recovery in addition to storage for
persistent data.
The current release of GNU E is based on gcc/g++ version 2.2.2, and is upward
compatible with C++ as implemented by that compiler.
A bibliography of EXODUS related papers can be obtained from the ftp site
described below.
>18 GRAS
The system GRAS with interfaces for the programming languages Modula-2
and C is available as public domain software for Sun3/Sun4 workstations
(the GRAS system itself is implemented in Modula-2 and consists of many
layers which might be reusable for the implementation of other systems):
[See APPENDIX B]
Although this program has been developed and being used in the experiments
on material data processing in which we are now involved, it is a general
purpose OODBS.
Noboru Ono
Dept. of Machine Intelligence and Systems Engineering,
Faculty of Engineering, Tohoku University.
Tel:++22-222-1800
Fax:++22-268-3688
E-mail:ono@mood.mech.tohoku.ac.jp <mailto:ono@mood.mech.tohoku.ac.jp>
Narain Gehani
AT&T Bell Labs 3D-414
600 Mountain Ave
Murray Hill, NJ 07974
dist/ode2.0
mkdir ode
cd ode
uncompress 2.0.oppbin.tar.Z
and unbundle it
Next see file README, fix install file, and run install
./install
-------------------------------------------------------------------------------
Available Now!
Ode 2.0
An Object-Oriented Database
C++ Compatible, Fast Queries, Complex Application Modeling,
Multimedia Support, and more
Details
-------
FEATURES OF ODE
USE MODES
USERS
Version 4.0 of the POSTGRES DBMS is now available for distribution. Version 4.0
provides significant advances in functionality over 3.1. General improvements
in the code and some key multi-user bug fixes have resulted in a much more
reliable system than we have ever previously released.
Postgres runs on Sparc I, Sparc II, Sun 4 running SunOs, and DECstations
running ULTRIX >= 4.0, as well as Sequent Symmetry machines. Postgres
consists of about 250,000 lines of C.
If you would like to get Postgres 4.0, you can get it in one of two ways:
cd pub
get postgres-setup.me
binary
get postgres-v4r0.tar.Z
quit
Or, if you do not have net.access, you can order a Postgres distribution
tape by sending a check payable to the Regents of the University of California
for $150.00 to:
Postgres Project
571 Evans Hall
University of California
Berkeley, CA 94720.
Archive-name: object-faq/part11
Last-Modified: 04/02/96
Version: 1.0.9
Indicate in your accompanying letter whether you want the system on a 9-track
tape at 1600 BPI, at 6250 BPI, on a cartridge tape for SUN shoeboxes (QIC 24
format), or on a TK50 DEC cartridge tape.
And:
1. Introduction
===============
Since the beginning of 1993 takeFive has taken over development and support
for SNiFF+, a leading edge C/C++ programming environment. With SNiFF+
rapidly gaining commercial acceptance takeFive has decided to offer the
product free to educational establishments. There are several reasons for
this step.
...
And:
A lot of people have requested this software! You can now get Tags for
C/C++ version 1.0 via anonymous ftp at:
ftp.centerline.com:/pub/tags-1.0.tar.Z <ftp://ftp.centerline.com/pub/tags-
1.0.tar.Z>
If you don't have ftp access to the internet, you may want to wait for this
stuff to come out in comp.sources.unix <news:comp.sources.unix>. Or, if you plan
to use it right away,
send me a letter that says "I can't use ftp; please send by email" and I will
do so.
Command line processing is now included in the short system. Short can
now cope with multiple input files, the standard input and deal with
most file errors.
-f, +full
Produces the short form including all the feature
blocks. (Implemented as the "short form for NONE".)
-p, +parents
Retains the inheritance clause in the output. The default is
to drop it.
The output of the tool now conforms to the layout rules in Appendix A of
ETL and should look like the 'short' examples in the book. As much as is
possible the output and command line options conform to ISE's 2.3
version of 'short'.
This release of short has been tested on all the v1.21 Eiffel/S
libraries, itself and the argument clusters, plus any other class
fragments I had lying around at the time.
Features are:
1. Rich set of containers like Vector, List, Hash_Table, Matrix, etc...
2. Hierarchy is shallow with no common base class, rather than deep like NIHCL.
3. Functionality close to Common Lisp data structures, like GNU libg++.
4. Template syntax very close to Cfront3.x, g++2.x.
5. Free, with good documentation, and extensive test cases.
I am working on Cfront3.0 version of COOL, using the Beta 3.0 from Sun. I am
experiencing problems with instantiation and specialization of templates. So
Cfront3.0 version of COOL won't be available until Sun's Cfront 3.0 is
released with bugs fixed.
Van-Duc Nguyen
General Electric
Research & Development Ctr
1 River Road, Room K1-5C39.
Schenectady, NY 12301.
Phone: (518) 387-5659
Fax: (518) 387-6845
nguyen@crd.ge.com <mailto:nguyen@crd.ge.com>
SunSoft has made available statically linked binaries for the OMG IDL CFE,
for both Solaris 1.x and Solaris 2.x. Because they are statically linked,
these binaries can be used on systems which do not have the SparcWorks (TM)
compilers installed.
It is expected that people who only want an IDL parser will prefer to
obtain these binaries instead of compiling the program on their host.
People who want to build a complete compiler, by programming their own
back-end, will continue to obtain the sources which are also provided at
the same location.
The attached copyright applies to the provided binaries and to the source
files provided on the omg.org file server.
Copyright:
Copyright 1992 Sun Microsystems, Inc. Printed in the United States of
America. All Rights Reserved.
SunSoft, Inc.
2550 Garcia Avenue
Mountain View, California 94043
<http://iamwww.unibe.ch/~scg/OOinfo/index.html>
A mirror of the catalog is available from the University of Geneva:
<http://cuiwww.unige.ch/OSG/OOinfo/>
<http://iamwww.unibe.ch/cgi-bin/oobib>
<http://iamwww.unibe.ch/~scg/OOinfo/FAQ/index.html>
Oscar Nierstrasz
---
Prof. Dr. Oscar Nierstrasz; oscar@iam.unibe.ch <mailto:oscar@iam.unibe.ch>;
<http://iamwww.unibe.ch/~oscar>
Software Composition Group; CS Inst., U. Berne; Tel/Fax: +41 31 631.4618/3965
Abstract:
Note: the paper is 76pp long. It subsumes work reported in our paper
in CONCUR '92.
My Ph.D. thesis, entitled "The Design and Implementation of the Self Compiler,
an Optimizing Compiler for Object-Oriented Programming Languages," is now
available as Stanford technical report number STAN-CS-92-1420. Copies may be
ordered from Stanford. Stanford requires $20 (plus tax for orders from within
California), in advance, for each copy.
>...
Yes, the Law of Demeter paper is available in electronic form on the
net. Indeed, many of the Demeter project papers are available from
the ftp server at Northeastern University (see instructions below).
The Law of Demeter idea has been automated in the Demeter Tools/C++
as an adaptive software tool which automatically makes much of your C++ code
compliant with the Law of Demeter. The tool is an add-on tool to
your favorite C++ development environment and is commercially available
from Demeter International. The Demeter Tools/C++ lift
object-oriented programming to a higher level of abstraction
by allowing the user to focus on the essential and
stable classes. A paper on ADAPTIVE SOFTWARE will appear in
the Communications of the ACM and is also available from the
ftp server.
Demeter International
56 Bennett Road
Marblehead, MA 01945
-- Karl Lieberherr
FTP instructions:
Some of our papers are available in one package by anonymous ftp from
ftp.ccs.neu.edu (129.10.10.51)
in directory pub/demeter/documents
[...]
The measurements done as part of the work here on the Mushroom project
show that temporal locality within Smalltalk objects is great (and
hence even conventional caches work reasonably well [unless the GC
scheme trashes the cache]), whereas spatial locality on a scale much
larger than the average object (which is 40 bytes) is much harder to
come by.
More details can be found in these papers (all available by ftp from
mushroom.cs.man.ac.uk in /pub/mushroom/papers):
dgvm1.ps.Z
"Dynamic Grouping in an Object Oriented Virtual Memory Hierarchy"
Ifor Williams, Mario Wolczko, Trevor Hopkins, Proc. ECOOP 87,
Springer-Verlag LNCS 276, pp.79-88.
dgvm2.ps.Z
"Realization of a Dynamically Grouped Object-Oriented Virtual
Memory Hierarchy", Proceedings of the Workshop on Persistent Object
Systems: Their Design, Implementation and Use, available as
Persistent Programming Research Report PPRR-44-87, Universities
of Glasgow and St. Andrews, Aug. 1987, pp.298--308.
obma.ps.Z
"An Object-Based Memory Architecture"
Ifor Williams and Mario Wolczko, in Implementing Persistent Object
Bases: Proc. Fourth International Workshop on Persistent Object Systems,
Morgan Kaufmann, 1991, pp.114-130.
The first three figures are in obma-fig[123].ps.Z.
Mario Wolczko
-- Craig Chambers
Also:
The University of Illinois Smalltalk Archive is now offering a WWW server
the URL is <http://st-www.cs.uiuc.edu/>
We have made a copy of our results available to the Internet community. You
can access this information through anonymous ftp from ftp.odi.com in the
file /pub/oo7/results.ps.
The report includes the "official" tests done for ObjectStore by the
University of Wisconsin, and our internal execution of all the tests using
ObjectStore Release 2.0.1, the current production version. As the report
shows, our internal execution carefully followed the agreed-upon procedures
for running OO7, and we believe the numbers that were produced accurately
represent ObjectStore's performance.
dag (directed graphs, old, program, works with some USL C++ utilities.
This may have unintentionally sparked the apparently misdirected
discussion of "DAG classes" in one newsgroup recently.)
dot (directed graphs, newer algorithms, better layouts, more features)
neato (undirected graphs, compatible with dot, Kamada-Kawai spring embedder)
From cs.Princeton.EDU!north Thu Jun 24 11:45:28 0400 1993 remote from toucan
Date: Thu, 24 Jun 1993 11:45:28 -0400
From: Stephen North <north@cs.Princeton.EDU <mailto:north@cs.Princeton.EDU>>
To: drawdag@toucan.research.att.com <mailto:drawdag@toucan.research.att.com>
Subject: dot -Tps
digraph G { a -> b }
File arguments are disabled for obvious reasons. Please let me know if
you hit any snags. There is a reasonable limit on graph size and probably
number of invocations from a given site/account. (If you use it that much,
AT&T's Intellectual Property Division sells binary executables; their number
is 800-462-8146).
Stephen North, AT&T Bell Laboratories, Murray Hill NJ, (908) 582 7392
Parturiunt montes, nascetur ridiculus mus!
If you find any bugs or make modifications (e.g., ports to other thread
packages) or port it to other systems, then please let me know so I can
keep the sources up-to-date for other users.
>...
You can get both the paper and the implementation by ftp from
login: anonymous
directory: pub/gb
To make GCC 2.5.2 understand signatures, just copy the context diff
file into the GCC source directory, type
gunzip gcc-2.5.2.sig.diff.gz
patch < gcc-2.5.2.sig.diff
and rebuild and install `gcc,' `cc1plus,' the man pages, and the manual.
For compiling C++ code containing signatures, you need to use the
command line option
-fhandle-signatures
We tested our extension on Sun 4 only, but since there are no changes
to the compiler backend, it is expected work on other architectures as
well. To test whether it works on your architecture, unpack the file
`test.tar.gz' and run the shell script
Test
Hello World.
The main language constructs added are signatures and signature pointers.
For example, the signature declaration
signature S
{
int foo (void);
int bar (int);
};
defines a new abstract type `S' with member functions `int foo (void)'
and `int bar (int).' Signature types cannot be instantiated since they
don't provide any implementation. Only signature pointers and signature
references can be defined. For example,
C obj;
S * p = &obj;
- you can build a type hierarchy separate from the class inheritance
(implementation) hierarchy,
- subtyping becomes decoupled from inheritance, and
- signatures can be used with compiled classes, while you cannot
retrofit an abstract virtual class on top of compiled class
hierarchies.
The following language constructs and features are not yet implemented:
- constants in signatures,
- signature references,
- signature inheritance,
- the `sigof' (signature of a class) construct,
- views (not even the parsing is done),
- signature templates, and
- exception specifications in signature member function declarations.
The items above are roughly in the order in which they will be implemented.
Besides bug fixes, the main features that have been implemented since the
last release are default implementations of signature member functions
and opaque types.
Feedback
--------
gb@cs.purdue.edu <mailto:gb@cs.purdue.edu>
--
Gerald Baumgartner
Dept. of Computer Sciences, Purdue University, W. Lafayette, IN 47907
Internet: gb@cs.purdue.edu <mailto:gb@cs.purdue.edu>, UUCP: ...!
{decwrl,gatech,ucbvax}!purdue!gb
Texas is beta software, and the current prerelease version supports only
simple single-machine operation. Future releases will support client-server
operation, a flexible access control scheme, and transaction support.
Texas currently runs under SunOS and ULTRIX, using Sun CC or GNU C++.
Porting to other modern systems (e.g., OS/2, WNT, Mach) should be easy---it
requires only mprotect(), signal(), and sbrk() calls (or their equivalent)
to control virtual memory protection setting and trap handling.
Papers about the pointer swizzling scheme and Texas itself (referenced
below) are available via anonymous ftp from cs.utexas.edu (IP address
128.83.139.9), as postscript files swizz.ps and texaspstore.ps in the
directory pub/garbage.
References:
The C++ libraries are portable to a wide range of C++ compilers on the
UNIX platform. Supported C++ compilers include those from ATT/USL (CFRONT),
CenterLine, DEC, HP, IBM, Lucid, ObjectStore, SGI (CFRONT), SGI (DELTA),
Sun (CFRONT) and Sun (NATIVE), as well as the freely available GNU C++
compiler. If your C++ compiler does not support templates, it is possible
to use a template preprocessor which is supplied with OSE. If your C++
compiler support exceptions, they will be used. Portability to all the
major variants of UNIX has been achieved. Supported platforms include AIX,
BSD, HPUX, IRIX, Linux, NeXT, OSF, SCO, Solaris, SunOS, SYSV and Ultrix. In
addition to being available under UNIX, the OTCLIB library has been ported
to DOS, OS/2 and Windows NT using Borland, Watcom and Microsoft C++
compilers.
The C++ libraries have been fully integrated with the ObjectStore OODBMS,
allowing instances of classes from the C++ libraries to be made persistent.
The C++ libraries can also be used in conjunction with applications using
Versant, although in this case instances of classes from the C++ libraries
cannot be made persistent.
Development of OSE commenced in 1990, being made freely available via the
Internet in 1993. OSE was winner of CODA'94, the ComputerWorld Object
Developer Awards, held in conjunction with ObjectWorld in Sydney,
Australia. The category in which OSE was a winner was "Best implementation
of a reusable development environment for company deployment".
OSE (source code and documentation) can be obtained via anonymous ftp from:
Europe:
ftp.th-darmstadt.de [130.83.55.75]
directory pub/programming/languages/C++/class-libraries/OSE
United States
Australia:
cbr.dit.csiro.au [192.41.146.1]
directory pub/SEG/ose
<http://www.telstra.com.au/docs/ose/doc/ose-home.html>
ose@nms.otc.com.au <mailto:ose@nms.otc.com.au>
A mailing list for discussion of OSE, and a mail server providing a list of
known problems and fixes also exists.
>43 Traces,kiczales,MOP,DI
Gregor
anonymous@world.std.com:/pub/kala/TechDocs/Overview.ps
<ftp://world.std.com/pub/kala/TechDocs/Overview.ps>
The outline is the following
This paper is targeted towards those who don't know anything about
Kala and would like to find out a bit in 10 pages or less.
Enjoy!
P.S. For those of you who do not have FTP access and would like to
obtain this file, please send a brief e-mail message to
info@Kala.com <mailto:info@Kala.com>, requesting that the file be e-mailed to
you.
Beware that the file is approximately 425Kbytes long (the paper
contains 13 illustrations!).
>46 BeBOP(seq,par,LP,OO,meta)
What is BeBOP?
==============
The language BeBOP is a unique combination of sequential
and parallel Logic Programming (LP), object oriented
programming and meta-level programming.
What is bp?
===========
The bp interactive interpreter supports BeBOP programming
by allowing the flexible invocation of objects, and
offering the means for setting up communication links
between objects at any time. An incidental benefit is
the ability to use `global' variables in queries. Since
bp is an augmentation of the NU-Prolog np system, objects
and Prolog goals can be combined, and a by-product is
that the floundering of Prolog queries is avoided.
System requirements
===================
The BeBOP system requires the following:
DESCRIPTION
The u++ command introduces a translator pass over the
specified source files after the C preprocessor and before
the actual C++ compilation. The translator converts sev-
eral new uC++ constructs into C++ statements. The u++
command also provides the runtime concurrency library,
which must be linked with each uC++ application.
REFERENCES
uC++: Concurrency in the Object-Oriented Language C++, by
P.A. Buhr, G. Ditchfield, R.A. Stroobosscher, B.M.
Younger, C.R. Zarnke; Software-Practise and Experience,
22(2):137--172, February 1992. This paper describes uC++
v2.0, which has been significantly extended.
In article <1993Oct11.082519.23058@cs.tcd.ie
<mailto:1993Oct11.082519.23058@cs.tcd.ie>>,
Chris Zimmermann <czimmerm@cs.tcd.ie <mailto:czimmerm@cs.tcd.ie>> wrote:
>Hi community:
>
>What is the state of the art concerning real time in
>object-oriented systems (if any)? By this, I mean the
>marriage of more or less traditional real time systems
>(including systems concerned with "soft" real time aspects
>like multimedia) with the OO paradigm.
>[...]
We've done significant work in that area. Check out the following tech
report:
>[...]
There's one _little_ catch -- it's in the Public Ada Library. Now,
the OOP course (there's three courses, one on OOD, OOP, and Software
Engineering) covers both C++ and Ada. It was designed to let the
students work in both languages to get an objective opinion of the
pluses and minuses of each language (gee, what a concept!).
Archive-name: object-faq/part12
Last-Modified: 04/02/96
Version: 1.0.9
The OOD slides do NOT cover OMT. Some material is used from Booch's
OOD book, but not the notation. From looking at the slides, it appears
very easy to insert your own notation. The important part for students
is communicating the concepts, which (for the price) these slides do
a DAMN good job of. <- (Safire's Violation #45: "A perposition is a
bad thing to end a sentence with." :-)
dgw
--
type My_Disclaimer is new Standard.Disclaimer with record
AJPO, SEI : Cognizance := Disavow_All_Knowledge;
end record;--)
For over six years, the primary focus of the Distributed Object Computing
Department within GTE Laboratories has been the Distributed Object
Management (DOM) project. The DOM project conducts research into
object-oriented technology for integrating heterogeneous, autonomous,
distributed (HAD) computer systems/resources. Major research areas include:
interoperable object models; interoperable, distributed object
architectures; heterogeneous, extended transaction models; and information
requests in HAD environments. We are experimenting in these areas using our
prototype DOM system which we have developed over the past five years. This
technology is based on ideas from a number of technical areas including
distributed, object-oriented, databases, multi-database systems, operating
systems, and programming languages.
Permission is granted at this time for the operations and uses listed
below. However, this permission is non-transferable and is subject to
revocation on a report-by-report basis, due to possible copyright transfers
that are normal in the publication process. Any additional copyright
restrictions are noted in the reports themselves. Default permissions are
for anonymous ftp, electronic viewing, and single-copy printing.
Permissible uses are research and browsing. Specifically prohibited are
SALES of any copy, whether electronic or hardcopy, of any of these reports
for any purpose. Also prohibited is copying, excerpting or extensive
quoting of any report in another work without the written permission of one
of the report's authors.
>>>>>>>>> 1994
>>>>>>>>> 1993
[MANO93c]* Manola, F. and S. Heiler, "A 'RISC' Object Model for Object
System Interoperation: Concepts and Applications," TR-0231-08-93-165, GTE
Laboratories, Inc., August 1993.
>>>>>>>>> 1992
>>>>>>>>> 1991
>>>>>>>>> 1990
[ZERT90] Zertuche, D.R. and A.P. Buchmann, "Execution Models for Active
Database Systems: A Comparison," TM-0238-01-90-165, GTE Laboratories
Incorporated, January 1990.
>>>>>>>>> 1989
>>>>>>>>> 1988
>>>>>>>>> 1987
_[GEOR94a]* _[GEOR94b]*
_[BROD93a]* _[BROD93b]* _[GEOR93a]* _[GEOR93c]* _[GEOR93e]*
_[MANO93a] _[MANO93c]* _[NAYE93c]* _[NAYE93d]* _[NICO93a]
_[VENT93]*
_[BGR92] _[BRO92b]* _[BROD92c]* _[BUCH92] _[GEOR92]*
_[HEIL92] _[MANO92]* _[MANO92a]*
_[BROD91] _[BROD91a]* _[BUCH91]* _[GEOR91a]* _[GEOR91b]*
_[GRL91] _[HEIL91]* _[HORN91]* _[MANO91] _[MANO91a]*
_[MANO91b] _[RUSI91] _[VENT91]
_[BREI90] _[BROD90]* _[HEIL90] _[MANO90] _[MANO90a]*
_[MANO90b]* _[MYLO90]* _[RUSI90] _[SILB90] _[STON90]
_[ZERT90]
_[BROD89] _[BROD89a] _[MANO89]* _[MANO89a]* _[MANO89b]*
_[WELC89]
_[MANO88]*
_[MANO87]
1 DESCRIPTION
-------------
1.1 Object-orientation
The design stresses fast response time and predictability to qualify for the
real-time label. The kernel is reentrant and preeemptable.
1.5 Scalability
The API supports physical and virtual memory organizations with the same
semantics.
Applications source code will be portable across DSP and RISC processors.
If you do not have access to Internet, contact me for other delivery media at:
Chris Bidaut clb@softia.com <mailto:clb@softia.com>
Telephone (408) 262-6520 Fax (408) 262-7210
1. Installation Procedure:
DOS> mkdir MndFrame
DOS> cd MndFrame
DOS> copy b:MndFrame.zip (or where you kept the mndframe.zip file)
DOS> unzip -d mndframe.zip (extract files into subdirectories)
DOS> copy grid.vbx \windows\systems (your local Windows system directory)
3. Sample applications:
Once you are in the MindFrame application, open files in the
\MndFrame\Samples subdirectories. There are 20 sample files organized
according to areas of application (e.g., object modeling, neural
modeling, bible studying). You can also find description of each of
these samples in the On-Line Help file.
4. On-line help:
Use the "About MindFrame..." menu item in the "Help" menu to learn more
about this application. There is an on-line help provided for this
application. Read through the help topics to learn about using this
application.
COPYRIGHT INFORMATION
You are free to do anything you like with this code. However,
you may not do anything to this code that will prevent it from being
distributed freely in its original form (such as copyrighting it,
etc.). Moreover, if you have any improvements, suggestions, and or
comments, I'd like to hear about it! It would be great to see this
distributed evolve into a comprehensive, robust, and well-documented
C++ class library that would be freely available to everyone.
Natually, I am not responsible for any problems caused by using these
C++ wrappers.
Thanks,
Douglas C. Schmidt
(schmidt@ics.uci.edu <mailto:schmidt@ics.uci.edu>)
Department of Information and Computer Science
University of California, Irvine
Irvine, CA 92717
Work #: (714) 856-4105
FAX #: (714) 856-4056
ACKNOWLEDGEMENTS
>...
I also have a series of slides that I have developed for use with my
text ``an introduction to object-oriented programming'' (timothy budd,
addison-wesley publishers). These can be found at cs.orst.edu
directory pub/budd/oopintro/slides/*, or there is a mail server
called almanac@cs.orst.edu <mailto:almanac@cs.orst.edu> and if you say
send oopintro slides chapter1
and so on you can get them via e-mail. Warning, it yields a lot of
e-mail, so do it one at a time.
--tim
@InProceedings{WeiseCES94,
author = "Daniel Weise and Roger F. Crew and Michael Ernst and
Bjarne Steensgaard",
title = "Value Dependence Graphs: Representation Without Taxation",
booktitle = POPL94,
pages = "297-310",
year = 1994,
month = jan,
address = "Portland, OR"
}
>58 Various on OO
Greetings,
Richard.
---
TRESE project
Email: stadt@cs.utwente.nl <mailto:stadt@cs.utwente.nl>
TRESE WWW Server: <http://www_trese.cs.utwente.nl>
Revised support for using ILU with Common Lisp is now available as
<ftp://ftp.parc.xerox.com/pub/ilu/1.8/ilu-1.8-new-lisp.tar.gz>
Changes include:
1) The Common Lisp support no longer has to load C code for each ILU
module loaded, so CL implementations without that capability may use
ILU. This also speeds up loading of ILU modules considerably.
The 1.8 release of ILU contains support for the programming languages
Common Lisp, C++, ANSI C, Modula-3, and Python). It has been installed
on many flavors of UNIX, including SPARC machines running SunOS 4.1.3
and Solaris 2, SGI MIPS machines running IRIX 5.2, Intel 486 machines
running Linux 1.1.78, DEC Alpha machines with OSF/1, IBM RS/6000
machines running AIX, and HP machines running HP/UX. A port of ILU to
the Microsoft Windows 3.1 and Windows NT environments has been
finished, and will form part of the 1.9 release. ILU supports both
threaded and non-threaded operation.
Walnut Creek CDROM announces the release of the Internet Info CDROM.
This CDROM contains 12,000 documents about computers and networks:
The price is $39.95. S&H is $5 for US/Canada/Mexico, and $10 for overseas.
If you live in California, please add sales tax. You can pay by cash, check,
money order or Visa/MC/Dis/Amex. This CDROM is fully guaranteed, if you are
dissatisfied with this disc for any reason whatsoever, you can return it for
an exchange or refund.
1 800 786-9907
1 510 674-0783
1 510 674-0821 FAX
orders@cdrom.com <mailto:orders@cdrom.com>
The disc is available for FREE to anyone that has contributed any of their
own work. This includes FAQ maintainers, RFC authors, etc. Just email me
your name, address, and the name of the files(s) that you wrote. Overseas
addresses are ok.
If you would like a more detailed list of other CDROM titles published by
Walnut Creek CDROM, you can ftp the latest list from
ftp.cdrom.com:/pub/cdrom/catalog <ftp://ftp.cdrom.com/pub/cdrom/catalog>, or send
email to info@cdrom.com <mailto:info@cdrom.com>.
>61 Metrics
From: aoife@mordred.st.nepean.uws.edu.au
<mailto:aoife@mordred.st.nepean.uws.edu.au> (Aoife Cox)
Subject: Re: In Search of Persistence
Date: 14 Dec 1993 20:04:38 +1100
Organization: University of Western Sydney
>I have been searching the net trying to find any locations for papers about
>implementation of persistence object systems or about persistence and OOPL. As
>yet, I have not found anything remotely related.
>Are there any ftp sites with such papers that someone can direct me to?
There should be some papers on the Amadeus system, developed by the
Distributed Systems Group at Trinity College, Dublin, ftp-able from
ftp.cs.tcd.ie. Look in the /pub/tcd/tech-reports directory....
Aoife
>63 Chorus,Dist,RT,MicroK
If VTT is a public research lab, then you might be interested by the fact
that Chorus systemes has special programs for universities. For more
information on offering, conditions, etc, ftp to ftp.chorus.fr and get
the following ASCII files
- pub/README
- pub/academic/README
- pub/academic/offerings
If you have questions, you may contact Didier Irlande <di@chorus.fr
<mailto:di@chorus.fr>>
for license issues or Xavier Galleri <xg@chorus.fr <mailto:xg@chorus.fr>> for
technical
issues.
>64 Self Opt.
Dear self-interesters,
My thesis is now available via ftp and Mosaic (see below). Yes, I
have graduated! Though many things will change, I'm planning to keep
on working on Self at UCSB; my new e-mail address is urs@cs.ucsb.edu
<mailto:urs@cs.ucsb.edu>.
However, I am no longer maintaining the self-interest list, for
questions/requests please contact self-request@self rather than
writing directly to me.
-Urs
---------------
We are making the SunOS 4.x, Solaris 2.3, and OSF/1 versions of
ORBeline available. We will consider making other platforms available
as well if there is enough interest.
Suresh Challa
PostModern Computing
suresh@pomoco.com <mailto:suresh@pomoco.com>
-------------------------------------------------------------------------------
ORBELINE
--------
Highlights
----------
o Platforms
Features
--------
o WAN Connectivity
o Scalability
ORBeline's SMART agent and Dynamic Directory Service allow easy object
migration and replication.
Platforms
---------
We are making the SunOS 4.x, Solaris 2.3, and OSF/1 versions of
ORBeline available free of charge to the academic community.
We will consider making other platforms available as well if there
is enough interest.
LICENSING
---------
ACKNOWLEDGEMENTS
----------------
*********************************************************
-Taegyun Kim
0. Summary
----------
Why "OMT"? OMT evolved from the Extended Entity Relationship [EER] model which I
have studied since the mid 80's. There are a number of other approaches to
expressing object oriented concepts but I believe that OMT is superior to most
of these. Yourdon's Object Oriented Analysis [OOA] notation, for example, is
another excellent approach to the problem but has some limits in functionality,
particularly with respect to data modeling, that are present in OMT.
- object diagram layout (with some additions w.r.t. original OMT notation)
Currently OOD generates a C++ code skeleton from an object diagram. I have a
short term final goal to develop an object oriented "environment" with
flexibility and portability. I think that about additional 20 man months effort
could lead me to the final goal. Because I am currently working very hard to
enhance its functionality, I am not especially concerned with system portability
issues at the moment so building OOD on your particular platform may require a
little work on your part. Please inform me of any changes that you need to make
to build OOD on your system.
1. System Environment
---------------------
OOD was built on a SPARC station running OS4.1.x, X11-R5 and Motif-1.2 and
C++-2.0. OOD has also been successfully built on a SPARC using gcc-2.5.8 and
libg++-2.5.3. It should build on most UNIX systems with X11-R5, Motif-1.2 and a
"reasonable" C++ compiler.
2. Building OOD
---------------------
1) In ood directory edit the Makefile to reflect your environment
2) run "make depend"
3) run "make"
1) point top-menu
2) select "change to"
3) set your working repository
...
Archive-name: object-faq/part13
Last-Modified: 04/02/96
Version: 1.0.9
Product:
OOTher
OO Documentation & CASE Tool Release 1.06f
Environment:
MS-Windows 3.1
Short description:
The tool is a complete documentation development package for
the following methods/notations:
- Peter Coad's OOA method (Coad/Yourdon)
- State Machine diagrams using a subset of SDL
- allocation of objects to processors and processes
- Use Case diagrams and Object Interaction diagrams
as proposed by Ivar Jacobson in his OOSE book
SimTel id:
pub/msdos/windows3/
oot-106f.zip OOTher OO Doc Tool 1.06f CASE OOA+OOSE
mail a message
To: listserv@vm1.nodak.edu <mailto:listserv@vm1.nodak.edu> (***se below, for
other internet server names***)
Subject: SimTel-request
Body:
/PDGET MAIL /SimTel/msdos/windows3/oot-106f.zip uuencode
Help
find oot
or its mirrors:
----------------------------------------------------------------------
To run ftpmail send e-mail to e.g. ftpmail@doc.ic.ac.uk
<mailto:ftpmail@doc.ic.ac.uk>
with the message body:
connect ??hostname??
binary
uuencode
cd pub/msdos/windows
get oot-106f.zip
quit
----------------------------------------------------------------------
-----------------------------------------------------------------------------
Arindam Banerji Michael Casey
384 FitzPatrick Hall
Dept. of Computer Science and Engineering
University of Notre Dame
(219)-631-5772 Notre Dame, IN 46556 (219)-631-5273
axb@cse.nd.edu <mailto:axb@cse.nd.edu> mrc@cse.nd.edu
<mailto:mrc@cse.nd.edu>
>69 Trellis
From: bruno@tk.telematik.informatik.uni-karlsruhe.de
<mailto:bruno@tk.telematik.informatik.uni-karlsruhe.de> (Bruno Achauer)
Subject: Trellis compiler available
Date: 23 Oct 1994 00:16:02 GMT
Organization: Telematics Department, Karlsruhe University, Germany
The beta release of version 0.2 of the TNT Trellis system is now
available for anonymous ftp from tk.telematik.informatik.uni-karlsruhe.de.
* The compiler now can use the GNU assembler to generated object files;
at least on small MIPS machines, this will speed up compilation
considerably.
Requirements
~~~~~~~~~~~~
The prebuilt kits require disk space ranging from 800 KB (Linux) to
2.4 MB (OSF/1); a C compilation system (assembler, linker and the C
library) must be installed. In addition, the Mips and HP-PA versions
will benefit if the GNU assembler is present.
Cocktail is available from several ftp sites, but most of the versions
floating around will not work on the Alpha. A patched version is
available on tk.telematik.informatik.uni-karlsruhe.de (see below).
If you plan to build the MIPS or the SPARC version, you will also need
the GNU C compiler.
How to get it
~~~~~~~~~~~~~
tk.telematik.informatik.uni-karlsruhe.de (129.13.3.200)
file directory /pub/tnt/tnt-0.1.tar.gz.
tnt@tk.telematik.informatik.uni-karlsruhe.de
<mailto:tnt@tk.telematik.informatik.uni-karlsruhe.de>.
Acknowledgements
~~~~~~~~~~~~~~~~
Copyright
~~~~~~~~~
Copyright (c) 1994, Universit�t Karlsruhe, Germany; parts Copyright (c) 1994
Digital Equipment Corp, Maynard, Mass.
The TNT Trellis software, both binary and source (hereafter, Software) is
copyrighted by Universit�t Karlsruhe, Germany (UKA), and ownership
remains with the UKA. Parts of the software are copyrighted by Digital
Equipment Corp., Maynard, Mass.
The UKA grants you (hereafter, Licensee) a license to use the Software
for academic, research and internal business purposes only, without a
fee. Licensee may distribute the binary and source code (if released)
to third parties provided that the copyright notice and this statement
appears on all copies and that no charge is associated with such
copies.
--
--Bruno.
---------------------------------------------------------------
| Bruno Achauer, U of Karlsruhe, Telecooperation |
| Kaiserstr. 12, D-76128 Karlsruhe, Germany |
| bruno@tk.telematik.informatik.uni-karlsruhe.de
<mailto:bruno@tk.telematik.informatik.uni-karlsruhe.de> |
| Phone +49-721-6084792, Fax +49-721-388097 |
---------------------------------------------------------------
>70 CooL-SPE
ANNOUNCEMENT
PAPER ANNOUNCEMENT
==================
Giuseppe Castagna
Laboratoire d'Informatique de l'ENS, Paris
2. Why covariance and contravariance are not opposing views but both
*must* be integrated in a *type-safe* formalism. I.e.: don't choose
just one of them.
4. How to type binary methods in the models based on the analogy "objects
as records" (i.e. how to have ColorPoint < Point even if they respond
to a message "equal")
6. Why all the previous points are strictly related one to each other.
ABSTRACT
>72 Quality
or
web:<http://cs.umd.edu/projects/SoftEng/tame>
- what quality aspects (of the process and the product) are measured and
when are they measured (early on in the development process or merely in
the testing phase);
- what metrics are used to measure quality aspects (f.e. Lines Of Code,
number of Function Points, complexity);
- are the measurement results used for prediction of the quality of the
final product;
- are the measurement results used for process improvement;
- what methods for process assessment (and improvement) are used (f.e. CMM,
Bootstrap, AMI);
- are there certificates (f.e. ISO);
Best regards,
walcelio
>73 Quality
Re (to >72):
You might try looking at the Softw Engineering Inst technical report
"Measurement in Practice," which surveyed the practices of software
measurement leaders:
Hi Stan,
regards
--Ajith
Dear Colleagues,
Bounded hard copies are available from the Bell Canada Acquisitions
department. Pricing and shipping information are available on
request (Sorry: this is purely for budgetary reasons).
Regards,
Francois Coallier
===========================================================================
Francois Coallier
>75 Dylan
[...]
Best Regards,
Dirk Vermeersch
>77 Cecil
<http://www.cs.washington.edu/research/projects/cecil/www/cecil-home.html>
Papers about Cecil are also available via anonymous ftp from cs.washington.edu
in the directory /pub/chambers. See the README file in that directory for a
description of the available papers.
Check out our WWW site: we'd appreciate any feedback people might have.
[...]
-- Jeff
--------------------------------------------------------------------------
Jeffrey Dean (jdean@cs.washington.edu <mailto:jdean@cs.washington.edu>) Cecil
Project Graduate Student
Dept. of Computer Science & Engineering University of Washington
<http://www.cs.washington.edu/homes/jdean/index.html>
--------------------------------------------------------------------------
I am developing an new World Wide Web Home-Page on the subject of MetaCASE. Its
URL is :-
<http://osiris.sunderland.ac.uk/rif/metacase/metacase.home.html>
I am, however, still looking for information. If you have any information that you
think should be included, please let me know and I
will be glad to give you full credit when that information is displayed.
Regards,
Ian Ferguson
--------------------------------------------------------------------------------
R.I.Ferguson
Research Associate
University of Sunderland
School of Computing and Information Systems
Priestman Building
Green Terrace
Sunderland Email : ian.ferguson@sunderland.ac.uk
<mailto:ian.ferguson@sunderland.ac.uk>
Tyne/Wear Tel : (+44) 0191-515-2754
SR1 3SD Fax : (+44) 0191-515-2781
United Kingdom Web : <http://osiris.sunderland.ac.uk/rif/welcome.html>
--------------------------------------------------------------------------------
[...]
The C++ standard draft includes the spec for Standard Template Library
(STL) which gets you pretty much any collection you need in C++. Check
out the C++ faq (somewhere under <ftp://rtfm.mit.edu/>...) for where to
find it. If you're using GNU C++ 2.6.3 (or a more recent snapshot), the
hacked version of STL that comes with libg++-2.6.2 (or w/today's 2.6.9
snapshot) is quite usable. ObjectSpace and Modena are two vendors selling
STL implementations that cover a wide variety of compiler/platform combos
(info@objectspace.com <mailto:info@objectspace.com>, 1-800-MODENA-1 for more info).
Also welcome to
take a look at my STL newbie file (<http://www.xraylith.wisc.edu/~khan/>
and follow the 'STL Newbie doc' link). If you're using Borland 4.5 on a
PC, you can use the HP implementation from <ftp://butler.hpl.hp.com/stl>.
====
STL HP official site: <ftp://butler.hpl.hp.com/stl>
STL code alternate: <ftp://ftp.cs.rpi.edu/stl>
STL code + examples: <http://www.cs.rpi.edu/~musser/stl.html>
hacks for GCC-2.6.3: <ftp://ftp.uni-bremen.de/pub/.mount/ruin/C++/STL>
====
btw, c.l.c++ is the group you should watch for this type of info.
enjoy
mumit -- khan@xraylith.wisc.edu <mailto:khan@xraylith.wisc.edu>
Announcing:
This message is an announcement for the Phantom home page, mailing list,
and prototype interpreter for the centralised language core.
-------------------------------------------------------------------------------
>From the Phantom home page:
What is Phantom?
------------------------------------------------------------------------------
Information about Phantom, the mailing lists, differences from Java,
documentation on the language, and the current status and availability of
the interpreter can be found on the Phantom home page:
I have been reading about the Java language from Sun Labs:
<http://java.sun.com/index.html>
if (receiver is non-reflective)
inline code for a standard method call
else
m := the meta-object for receiver
m.perform (receiver, method_id, parameter-list)
m can also be reflective (which leads some research papers to talk about an
infinite tower of objects and corresponding meta-objects), but normally only
one or two levels are used.
The meta-object can implement dispatch however it likes, for example using
RPC to a distributed object, or whatever. The interface of a meta-object
(which includes 'perform' in this case) is called the meta-object protocol.
- memoized calls
(the result of a function call is cached, for use on subsequent calls with
the same parameters)
- future objects
(an object is calculated in a parallel thread; any access to the object
blocks until it is ready)
- transaction messages
(as used in ODBMSs)
- asynchronous messages
(as used in Actor languages)
- interfaces to other languages and type systems
- implementation of garbage collection
- heaps optimized for different granularities of object
- persistence
- checkpointing
- replication
and so on.
A good summary of reflection is
<ftp://ftp.gte.com/pub/dom/reports/MANO93d.ps>
David Hopwood
david.hopwood@lmh.ox.ac.uk <mailto:david.hopwood@lmh.ox.ac.uk>
etlport.etl.go.jp:/pub/OZ++/OZ++-R2.tar.gz <ftp://etlport.etl.go.jp/pub/OZ++/OZ+
+-R2.tar.gz>
*Execution Environment
<http://www.etl.go.jp/Organization/Bunsan/OZ/OZ.html> .
Any questions , advices and suggestions are welcome. Please send e-mail to
oz++admin@oz.ipa.go.jp <mailto:oz++admin@oz.ipa.go.jp>
Release Notes
1. What is OZ++ ?
In the software industry, people throughout the world have been continually
developing software with very similar features; and thus "reinventing the
wheel" as it were. Such redundancy has been impeding the improvement of
software productivity and reliability. Therefore, the sharing and distribution
of not only information but also of software is needed over the network (i.e.
Internet). However, this cannot be achieved merely by opening the network
infrastructure and making software publicly available.
The OZ++ system has therefore been developed to solve this problem of
software transfer. Based on the concept of object-orientation, the OZ++ system
provides distribution, upgrading, and authorization function of software over
the network. The high modularity of object-oriented systems and the conformance
checking of interface between objects promotes the re-using of software
components. The infrastructure is now being put into place so that components
of different software products can be combined in much the same way as hardware
products. Because the OZ++ systems enables the distribution of software (i.e.
program), software can be brought from all over the world; furthermore, it
allows such software to run without complicated installation. Because the
versions of software are automatically recognized by the system, old and new
versions are available at the same time and the newer version is automatically
distributed. In addition, validation functions have been included to confirm
the source of the software so that everyone can use it without worrying about
viruses. Because of these functions, OZ++ system users are always able to use
the newest and most appropriate types of software available.
See README.first for how to install and startup the OZ++ system.
*Nucleus
*Executor
*Launcher
*Compiler-front-end
*Object-images for demonstration
By this release you can you can compile and execute OZ++ program.
To compile your OZ++ program, you can use the `compiler-front-end'. How
to use of it is described in the file doc/README.compile.
To execute your OZ++ program, you can use the `launcher'. How to use of
it is described in the file doc/README.launcher.
Furthermore, you can see two kind of demonstrations of the OZ++ system:
*Application 'Encyclopedia'
*Release 3
Around 6/20. You can compile, manage, and run OZ++ programs distinguishing its
versions. The first version of debugger will be included.
--
Yoichi Hamazaki , ElectroTechnical Laboratory , Tsukuba, Japan
E-mail address: hamazaki@etl.go.jp <mailto:hamazaki@etl.go.jp> Telephone:
(+81)-298-58-5903
Hello All,
<http://www.iconcomp.com/demo/case-Phone/phoneCase.html>
Both Envelop Engine and our responsive on-line technical support have received
excellent reviews from many of the more than 3,000 developers who have
downloaded it to date. Some user comments include:
Oracle
Sybase
Informix
uniVerse
Ingres
ISAM
DB2
And how many more do you add when you have on the same client:
Smalltalk apps
Visual Basic apps
Visual C++ apps
Java applets
How would you like to have one database driver that is free that you can
download off the Internet? And how would you like that driver to be a Web
development kit so that any data you access from your OO apps can be brought
up simultaneously as a Web database server?
If you are a developer that has any variation of these problems you owe it
to yourself to take a look at a product that was just announced today:
<http://www.vmark.com/news/preleases/presrel21.html>
This is object-oriented middleware built in C++ that does true object passing
between the database and application environments. The guy the engineered it
wrote the first CORBA spec for the OMG (although this particular product is
engineered for high performance DB access and not CORBA).
It's taken six months to convince VMARK to put this on the net for free. It
is the real stuff and is used in large production sites worldwide. For
example, the Kew Royal Botanical Gardens serves the net using this middleware:
<http://www.rbgkew.org.uk/>
Jeff Sutherland
jsutherland@vmark.com <mailto:jsutherland@vmark.com>
<http://www.tiac.net/users/jsuth/>
"Eliminating Virtual Function Calls in C++ Programs" (see abstract below). The
report is
available on the WWW via
<http://www.cs.ucsb.edu/oocsb/papers.html>
or
<http://www.cs.ucsb.edu/TRs/>
Urz Hoelzle
From Ed Berard
A 15-page article titled "Be Careful With 'Use Cases'" presents a brief
introduction to use
cases, and discusses the problems that some software engineers, and some software
engineering organizations, have in making effective use of use cases. It does
include a
bibliography.
The article is available in several different formats, and via several different
mechanisms:
ACM
---
OOPSLA - Association For Computing Machinery's yearly conference on Object-
Oriented Programming Systems, Languages, and Applications.
Addison-Wesley
Order Dept.
Jacob Way
Reading, MA 01867
(800) 447-2226
ACM OO Messenger - Quarterly on Object-Oriented Languages and Systems
ACM SigPlan Notices - Special Interest Group on Programming Languages
Publications Office
ACM, 1515 Broadway
NY, NY 10056
(212)869-7440, FAX: (212)869-0481
Additional information can be obtained from ACMpubs@acm.org
<mailto:ACMpubs@acm.org>.
Eiffel Outlook
--------------
*Eiffel's clear and powerful OO software engineering framework has strongly
influenced the object industry. For four years, the independent editors of
Eiffel Outlook have delivered news, reviews, and technical information about
Eiffel and Eiffel standards. Articles from Eiffel and OO experts provide
methods, strategies, and principles that you can apply on any OO project.
*Free sample copies available.
Eiffel Outlook
1501 West Koenig Lane
Austin, Texas 78756 USA
TEL: 800 285 5124 or 512 452 9455
FAX: 512 452 1721
email: tower@twr.com <mailto:tower@twr.com>
USA/Canada:
Journals Promotion Dept., Chapman & Hall, 29 West 35th
Street, New York, NY 20001-2299, USA.
Tel: (212) 244 3336
Fax: (212) 244 3426
EMail: 71201.1651@compuserve.com <mailto:71201.1651@compuserve.com>
EC/RoW:
Journals Promotions Dept., Chapman & Hall, 2-6 Boundary Row, London
SE1 8HN, UK.
Tel: +44 (0)71 865 0066
Fax: +44 (0)71 522 9623
FORMAT:
tool name
*description and methods
*operating systems
Vendor name,
city/state, phone (if known)
Great Circle
------------
*First real commercial Automatic Memory Mgmt System for C and C++.
*Garbage collection obviates need for free and delete.
*Eliminates leaks and premature frees in existing programs
and libraries without programmer intervention.
*Contains transparent (only linking required) and smart-pointer GC interfaces.
*Supports unions, polymorphism, multiple inheritance, arrays,
exceptions, real-time operation, multi-threading, and provides metrics.
*Provides both conservative and treadmill collection.
*OS: DOS, Extended DOS, Windows, NT, Unix, OS/2.
*Compilers: Borland, CenterLine, Cfront, g++, MetaWare, Microsoft, SparcWorks.
*Price: PC: $300-500, WorkStation: $700-1100, Compiler/OS ind. C++ source avail.
Geodesic Systems, Inc.
4745 N. Ravenswood Avenue, Suite 111
Chicago, IL 60640
Tel: 800-360-8388
Fax: 312-728-6096
email: sales@geodesic.com <mailto:sales@geodesic.com>, info@geodesic.com
<mailto:info@geodesic.com>
www: <http://www.geodesic.com>
LOOK!
-----
*Award-winning C++ Dynamic Visualization System.
*Parses (symbol-rich) C++ executables and animates dynamic object diagrams of
executing applications, exposing vital object-level interactions.
OS: Unix (SunOS;Solaris;AIX); Windows; NT
Compilers: Borland;Microsoft; SPARCWorks; CenterLine; Gnu; Lucid (SunOS only)
Objective Software Technology
tel: +44 (0) 1506 472217
fax: +44 (0) 1506 472219
email: info@ost.co.uk <mailto:info@ost.co.uk>
www: <http://www.scotnet.co.uk/ost/>