scispace - formally typeset
Search or ask a question

Showing papers on "Object-oriented design published in 1992"


Journal ArticleDOI
TL;DR: Methodological guidelines for object-oriented software construction that improve the reliability of the resulting software systems are presented and the theory of contract design and the role of assertions in that theory are discussed.
Abstract: Methodological guidelines for object-oriented software construction that improve the reliability of the resulting software systems are presented. It is shown that the object-oriented techniques rely on the theory of design by contract, which underlies the design of the Eiffel analysis, design, and programming language and of the supporting libraries, from which a number of examples are drawn. The theory of contract design and the role of assertions in that theory are discussed. >

2,201 citations


01 Jan 1992
TL;DR: In this paper, the authors propose a separation of interface from implementation, which they call encapsulation, and demonstrate the advantages of rapid prototyping and graceful refinement of a class implementation.
Abstract: 3. Classes should hide their data, we call this encapsulation, only providing a small number of controlled methods or functions in the interface for accessing that data. These factors taken together enable separation of interface from implementation. The actual designs of the algorithms employed inside the classes can be changed as better, more efficient algorithms are found. After a design is complete, changes in a class implementation must not affect its interface. The effect on current and future users is then only in terms of efficiency: their applications need not be recoded to take advantage of the new class implementation. The advantages of separation of interface from implementation include rapid prototyping and graceful refinement. See Fig. 3.

466 citations


Journal ArticleDOI
TL;DR: How Objectcharts can be used to find subtyping inheritance relationships between classes and a systematic approach for evolving Objectchart specifications are shown.
Abstract: A notation called Objectcharts for specifying object classes is introduced. An Objectchart diagram is an extended form of a Statechart, which characterizes the behavior of a class as a state machine. The Objectchart transitions correspond to the state-changing methods that the class provides and those that it requires of other classes. Object attributes and observer methods annotate Objectchart states. Firing and postconditions are used to specify the effect of transitions on class attributes. The Objectchart notions is described through the development of an alarm clock application. How Objectcharts can be used to find subtyping inheritance relationships between classes and a systematic approach for evolving Objectchart specifications are shown. >

295 citations


Patent
16 Oct 1992
TL;DR: In this paper, an object-based operating system for a multitasking computer system provides objects which represent the architecture or interrelationships of the system's resources, allowing objects to be operated on only by processes with the object's range of visibility.
Abstract: An object based operating system for a multitasking computer system provides objects which represent the architecture or interrelationships of the system's resources. Access to certain objects is required in order to use corresponding resources in the system. All objects have a consistent data structure, and a consistent method of defining the operations which apply to each type of object. As a result, it is relatively easy to add new types of system objects to the operating system. The object based operating system supports multiple levels of visibility, allowing objects to be operated on only by processes with the object's range of visibility. This allows objects to be made private to a process, shared by all processes within a job, or visible to all processes within the system. An object or an entire set of objects can be moved to a higher visibility level when objects need to be shared. In addition, access to each object is controlled through an access control list which specifies the processes authorized to access the object, and the types of access that are allowed. An object with a restricted access control list can be associated with a "privileged operation", thereby restricting use of the privileged operation to those user processes authorized to access the corresponding object. Waitable objects are used to synchronize the operation of one or more processes with one another or with specified events. The system provides routines for generating new types of waitable objects without modifying the operating system's kernel.

266 citations


Patent
01 Dec 1992
TL;DR: In this paper, an apparatus and method for interconnecting a plurality of independent software modules by means of specially configured software objects called "Input" and "Output" is presented.
Abstract: An apparatus and method for interconnecting a plurality of independent software modules by means of specially configured software objects called "Input" and "Output". The software objects are implemented through library functions which include functions for making an Output object, making an Input object, adding actions to Input objects, making connections between the Input and Output objects of various software modules, sending messages from one software module to another, and receiving messages sent by another software module. The invention also provides a system for interconnecting a plurality of hardware modules, each of which may employ different internal data formats. Additionally, a novel graphical user interface is provided, whereby a user can create, destroy, inspect and/or hide connections between software modules, as well as display data flow between modules.

204 citations


Journal ArticleDOI
TL;DR: The authors' intent is to answer the question of whether emerging object-oriented analysis and design methodologies require incremental or radical changes on the part of prospective adopters.
Abstract: Three object-oriented analysis methodologies and three object-oriented design methodologies are reviewed and compared to one another. The authors' intent is to answer the question of whether emerging object-oriented analysis and design methodologies require incremental or radical changes on the part of prospective adopters. The evolution of conventional development methodologies is discussed, and three areas-system partitioning, end-to-end process modeling, and harvesting reuse-that appear to be strong candidates for further development work are presented. >

169 citations


Patent
28 Aug 1992
TL;DR: In this paper, an object based data processing system including an extensible set of object types and a corresponding set of "object managers" wherein each object manager is a program for operating with the data stored in a corresponding type of object.
Abstract: An object based data processing system including an extensible set of object types and a corresponding set of "object managers" wherein each object manager is a program for operating with the data stored in a corresponding type of object. The object managers in general support at least a standard set of operations. Any program can effect performance of these standard operations on objects of any type by making an "invocation" request. In response to an invocation request, object management services (which are available to all object managers) identifies and invokes an object manager that is suitable for performing the requested operation on the specified type of data. A mechanism is provided for linking data from one object into another object. A object catalog includes both information about objects and about links between objects. Data interchange services are provided for communicating data between objects of different types, using a set of standard data interchange formats. A matchmaker facility permits two processes that are to cooperate in a data interchange operation identify each other and to identify data formats they have in common. A facility is provided for managing shared data "resources". Customized versions of resources can be created and co-exist with standard resources. A resource retrieval function determines whether a customized or a standard resource is to be returned in response to each request for a resource.

120 citations


Patent
28 Aug 1992
TL;DR: In this article, an object based data processing system including an extensible set of object types and a corresponding set of "object managers" wherein each object manager is a program for operating with the data stored in a corresponding type of object.
Abstract: An object based data processing system including an extensible set of object types and a corresponding set of "object managers" wherein each object manager is a program for operating with the data stored in a corresponding type of object. The object managers in general support at least a standard set of operations. Any program can effect performance of these standard operations on objects of any type by making an "invocation" request. In response to an invocation request, object management services (which are available to all object managers) identifies and invokes an object manager that is suitable for performing the requested operation on the specified type of data. A mechanism is provided for linking data from one object into another object. A object catalog includes both information about objects and about links between objects. Data interchange services are provided for communicating data between objects of different types, using a set of standard data interchange formats. A matchmaker facility permits two processes that are to cooperate in a data interchange operation identify each other and to identify data formats they have in common. A facility is provided for managing shared data "resources". Customized versions of resources can be created and co-exist with standard resources. A resource retrieval function determines whether a customized or a standard resource is to be returned in response to each request for a resource.

114 citations


Book
01 Mar 1992
TL;DR: Executive Summary Competing in a Changing World The Evolution of Information Systems Three Keys to Object Technology Methodologies for Object Development Creating an Object-Oriented Information System Object- Oriented Languages Object Databases.
Abstract: Executive Summary Competing in a Changing World The Evolution of Information Systems Three Keys to Object Technology Methodologies for Object Development Creating an Object-Oriented Information System Object-Oriented Languages Object Databases Supporting Systems Building Object-Oriented Information Systems Adopting Object Technology Commercial Applications of Object Technology Index.

106 citations


Book
01 Jan 1992
TL;DR: This work analyzes the recursive/parallel life-cycle approaches, abstraction, encapsulation and information hiding, and the motivation for an object-oriented approach to software engineering.
Abstract: Understanding object-oriented technology. Motivation for an object-oriented approach to software engineering. What are methodologies? Life-cycle approaches. Understanding the recursive/parallel life-cycle. Abstraction, encapsulation and information hiding. Object cohesion. Object and class specifications. Large object-oriented entitles. Object-oriented requirements analysis. Object-oriented design. Evaluating an object-oriented programming language. Issues in testing object-oriented software. Specifying test cases for object-oriented software. Readings in object-oriented technology. Appendix: sample object and class specifications.

103 citations


Journal ArticleDOI
TL;DR: Concepts from sheaf theory are used to explain phenomena in concurrent systems, including object, inheritance, deadlock, and non-interference, as used in computer security, not only to concurrent object oriented systems, but also to systems of differential equations, electrical circuits, hardware description languages, and much more.
Abstract: This paper uses concepts from sheaf theory to explain phenomena in concurrent systems, including object, inheritance, deadlock, and non-interference, as used in computer security. The approach is very; general, and applies not only to concurrent object oriented systems, but also to systems of differential equations, electrical circuits, hardware description languages, and much more. Time can be discrete or continuous, linear or branching, and distribution is allowed over space as well as time. Concepts from categpru theory help to achieve this generality: objects are modelled by sheaves; inheritance by sheaf morphisms; systems by diagrams; and interconnection by diagrams of diagrams. In addition, behaviour is given by limit, and the result of interconnection by colimit. The approach is illustrated with many examples, including a semantics for a simple concurrent object-based programming language.

Book ChapterDOI
29 Jun 1992
TL;DR: A new algorithm is proposed that analyses the redefinitions carried out on inherited properties when a class is added to a hierarchy, and restructures the hierarchy to discover missing abstractions and to enforce programming style guidelines.
Abstract: Software components developed with an object-oriented language require frequent reorganizations before they become stable, reusable classes. We propose a new algorithm that analyses the redefinitions carried out on inherited properties when a class is added to a hierarchy, and restructures the hierarchy to discover missing abstractions and to enforce programming style guidelines. We illustrate our automatic restructuring approach with simple examples, describe formally the algorithm and the object model it is based on, and discuss its suitability for object-oriented software engineering. The results of applying the algorithm to the Eiffel library are examined.

Book ChapterDOI
29 Jun 1992
TL;DR: The outline of an object-oriented design technique denoted role modeling, emphasizing the ability to compose parts of a design, is described, allowing the designer to consider different aspects at different levels of detail.
Abstract: This paper describes the outline of an object-oriented design technique denoted role modeling, emphasizing the ability to compose parts of a design. The purpose of role modeling is to achieve separation of concerns, allowing the designer to consider different aspects, or the same aspect at different levels of detail, more or less independent of other aspects of the overall design.

03 Jan 1992
TL;DR: Ada source code generation distributed software design developments of HOOD.HOOD method finding objects and operations object description skeleton class and instance objects real-time design.
Abstract: HOOD method finding objects and operations object description skeleton class and instance objects real-time design Ada source code generation distributed software design developments of HOOD.

Book
01 Aug 1992
TL;DR: Part 1 Design by contract, Bertrand Meyer: scope mothion of contract assertion - contracting for software class invariant and class correctness more on assertions dealing with abnormal situations.
Abstract: Part 1 Design by contract, Bertrand Meyer: scope mothion of contract assertion - contracting for software class invariant and class correctness more on assertions dealing with abnormal situations principles of exception handling a disciplined exception handling mechanism inheritance and dynamic binding a plea for partial functions. Part 2 The new culture of software developments - reflections on the practice of object-oriented design, Bertrand Meyer: the two cultures cohabitation generalization some organization aspects lifecycle - the clester model. Part 3 An object-oriented approach to domain analysis, Sally Shlaer and Stephen Mellor: conceptual entities and associations state models interactions between objects process models experiences with object-oriented analysis. Part 4 Active software objects in a knowledge-based lifecycle support environment, Axel van Lamswerde: overview of the ALMA environment kernel an architecture for generic lifecycle support putting more semantics in SLC models - constraints making SLC objects active by rule attachment. Part 5 On eclectic specification environments, Carlo Ghezzi and Dino Mandrioli: some examples on the eclectic use of models in specification from the methodology to an environment - a few preliminary steps. Part 6 Distributed software design techniques, Mehdi Jazayeri: history and motivation for distributed systems approaches to building distributed software design techniques for reliability and efficiency examples of distributed algorithms summary and conclusions. Part 7 A tour of Hybrid - a language for programming with active objects, Oscar Nierstrasz: objects and threads an overview of Hybrid communication and concurrency in Hybrid implementation observations. Part 8 An object-based architecture for real-time applications, Libero Nigro and Francesco Tisato: objects grouping and controlling objects building a system. Part 9 Eiffel network simulator a development in Eiffel - design and implementation of a network simulator, Cyrille Gindre and Frederique Scola: the application - a communication network simulator design and implementation applying object-oriented concepts qualitative assessment quantitative assessment.

Patent
30 Nov 1992
TL;DR: In this paper, a data processing system supports preparation of a software application by coordinating the efforts of a metaprogrammer and a plurality of system users responsible to the metrogrammer.
Abstract: A data processing system supports preparation of a software application by coordinating the efforts of a metaprogrammer and a plurality of system users responsible to the metaprogrammer. The data processing system includes a plurality of workstations, each having a display and a user input device. Each of the workstations is connected to shared memory for access to data objects stored therein. One data object is a blank project container which includes a plurality of subject objects relating to phases in a product life for a software application. The metaprogrammer is authorized to replicate a blank project container to provide a project specified container available in shared memory to system users selected to work on a particular software application. The project specific container includes a plurality of subject objects relating to phases in a product life for the software application package. Data objects are stored in memory categorized within subject objects of the project container. An index is generated as data objects are created. Such an index is located with each subobject with each subject object. Lastly, private instances of the project container are generated relating to users. Each private instance includes a subset of the objects within the project container, selected on the basis of usefulness to the tasks assigned to this particular user.

Proceedings ArticleDOI
01 Nov 1992


Proceedings ArticleDOI
01 Jun 1992
TL;DR: The preliminary results indicate that OOD may achieve substantial time savings over TFD in logical design and may achieve time savings by simplifying rule induction processes used in functional decomposition.
Abstract: This study aims at developing and empirically testing hypotheses about professional designers' cognitive activities when using object-oriented methodology (OOD) versus using traditional functional decomposition methodologies (TFD). Our preliminary results indicate that OOD may achieve substantial time savings over TFD in logical design. The verbal protocols from a pilot study show that OOD may achieve these time savings: 1) by simplifying rule induction processes used in functional decomposition; 2) by guiding designers on how to build more effective problem spaces; and 3) by allowing designers to run mental simulation more efficiently and more effectively.

Book ChapterDOI
01 Jan 1992
TL;DR: AskJef is a prototype AI system that helps software engineers in designing human-machine interfaces by providing a memory of interface design examples, primitive domain objects, and design principles, guidelines, errors and stories.
Abstract: AskJef is a prototype AI system that helps software engineers in designing human-machine interfaces. It provides a memory of interface design examples, primitive domain objects, and design principles, guidelines, errors and stories. The design examples are represented graphically and decomposed temporally. The different types of knowledge are cross-indexed to enable the designer to navigate through the system’s memory. AskJef helps software engineers in (1) understanding interface design problems by illustrating and explaining solutions to similar examples, and (2) comprehending the domain of interface design by illustrating and explaining the use of design guidelines. It uses text, graphics, animation and voice to present relevant information to the designer.

Proceedings ArticleDOI
01 Jun 1992
TL;DR: Key findings from empirical studies—early design is opportunistic; critical role of pictures in design conception; impact of various cognitive limitations— have very effectively determined requirements and design for a set of tools to support early design.
Abstract: Key findings from empirical studies—early design is opportunistic; critical role of pictures in design conception; impact of various cognitive limitations—have very effectively determined requirements and design for a set of tools to support early design. Key design features of the tools include respectively: (1) The (simultaneous) display of any software modules at arbitrary levels of abstraction and from any subsystems. The unrestricted, smooth navigation between these software modules. (2) Multiple design notations—pictorial and symbolic— cross-referenced, editable, and maintained consistent across all views. Integrated views of control flow, data flow, and functional decomposition. (3) Automatic layout at arbitrary levels of nesting. Visual display of execution paths in the solution. Automatic completeness and consistency check. Automatic visual indication and listing of modules with constraint violations.

Patent
17 Nov 1992
TL;DR: In this article, a method and system in a data processing system for the establishment of relationships between reference objects in an object-oriented environment and an associated data object residing outside an object oriented environment is presented.
Abstract: A method and system in a data processing system for the establishment of relationships between reference objects in an object oriented environment and an associated data object residing outside an object oriented environment. A data object within an application outside an object oriented environment is identified. Multiple reference objects within an oriented environment are then established. Each reference object has a unique identifier and is associated with one of multiple users. Each reference object is associated with the identified data object so that multiple users may concurrently access the data object utilizing an associated reference object. The associated data object may then be modified in response to a modification of any reference object. Similarly, the reference objects may be modified in response to a modification of the associated data object.

01 Jan 1992
TL;DR: Hybrid as mentioned in this paper is a language whose design attempts to retain multiple inheritance, genericity and strong-typing, and incorporate a notion of active objects, where objects in Hybrid are potentially active entities that communicate with one another through a messagepassing protocol loosely based on remote procedure calls.
Abstract: Object-oriented programming is a powerful paradigm for organizing software into reusable components. There have been several attempts to adapt and extend this paradigm to the programming of concurrent and distributed applications. Hybrid is a language whose design attempts to retain multiple inheritance, genericity and strong-typing, and incorporate a notion of active objects. Objects in Hybrid are potentially active entities that communicate with one another through a messagepassing protocol loosely based on remote procedure calls. Non-blocking calls and delay queues are the two basic mechanisms for interleaving and scheduling activities. A prototype implementation of a compiler and run-time system for Hybrid have been completed. We shall review aspects of the language design and attempt to evaluate its shortcomings. W e conclude with a list of requirements that we pose as a challenge for the design of future concurrent object-oriented languages.


Journal ArticleDOI
12 May 1992
TL;DR: It is shown that a concurrent, real-time, object-oriented programming paradigm named RTO (real time objects) may be a suitable basis for building the software of an intelligent measurement system.
Abstract: It is shown that a concurrent, real-time, object-oriented programming paradigm named RTO (real time objects) may be a suitable basis for building the software of an intelligent measurement system. After a presentation of the paradigm, the authors present the software architecture of an RTO-based measurement system, and discuss its advantages in terms of modularity and reusability. Analog-to-digital (A/D), digital-to-analog (D/A), and magnetic measurements on ferrite cores were implemented in order to evaluate the software system. The hardware architecture is based on a waveform analyzer and a polynomial waveform synthesizer connected to a personal computer which functions as the system manager. It is concluded that the real-time features of RTO eliminate problems which arise from hidden systems-or language-dependent issues. >

Journal Article
TL;DR: This paper demonstrates how software archaeology can be done within the framework of an appropriate design methodology using good static analysis tools and describes the CIA# system, a relational database of information extracted from C# programs.
Abstract: Increasing numbers of programmers find that they must work on large software systems that they did not write and do not entirely understand. In this situation it is necessary for the programmer to build a working model of the system's design. The process of constructing a working design model from studying the source code may be called software archaeology. This paper demonstrates how software archaeology can be done within the framework of an appropriate design methodology using good static analysis tools. The Object-Oriented Design (OOD) methods described by Grady Booch and James Rumbaugh provide the framework for my investigation. The static analysis tools are based on CIA#. The C# Information Abstractor, CIA#, builds a relational database of information extracted from C# programs. The database serves as a foundation for the development of C# programming tools. Current tools in the CIA# system include tools for graphical display of various views of the program structure, tools for queries about program symbols and relationships, and tools that extract cohesive components from a larger system. These tools can be used as they are, combined or extended to adapt to specific needs. @ Computing Systems, Vol. 5 . No. I . Winter 1992 This paper briefly describes the CIA# system and demonstrates how it can be used to extract design information from a significant system: InterViews 3.0, a C# graphical interface toolkit developed by Mark Linton at Stanford University.

Journal ArticleDOI
TL;DR: This work proposes a new object model that supports shared data in a distributed environment and separates distribution of computation units from information-hiding concerns, followed by timing and synchronization concerns.
Abstract: The classical object model supports private data within objects and clean interfaces between objects, and by definition does not permit sharing of data among arbitrary objects. This is a problem for real-world applications, such as advanced financial services and integrated network management, where the same data logically belong to multiple objects and may be distributed over multiple nodes on the network. Rather than give up the advantages of encapsulated objects in modeling real-world entities, we propose a new object model that supports shared data in a distributed environment. The key is separating distribution of computation units from information-hiding concerns. Minimal units of data and control, called facets, may be shared among multiple objects and are grouped into processes. Thus, a single object, or information-hiding unit, may be distributed among multiple processes, or computation units. In other words, different facets of the same object may reside in different address spaces on different machines. We introduce our new object model, describe a motivating example from the financial domain, and then explain facets, objects, and processes, followed by timing and synchronization concerns.

Journal ArticleDOI
TL;DR: The pessimistic conclusion is reached that, at present, there are some significant gaps in the facilities/support provided to the potential object-oriented designer, particularly in the evaluation and management of the design process; by contrast, there is substantial advances being made in technical design methods.
Abstract: The paper identifies those necessary characteristics that an object-oriented design method ought to exhibit in order to merit that appellation. By examining the key concepts associated with the object-oriented approach, important design issues are identified; these are related to current work in the area of design methodology. A list of criteria for the evaluation of the suitability of any proposed object-oriented design method is constructed, and several current and proposed methods (both conventional and object-oriented) are evaluated in respect of that list. The pessimistic conclusion is reached that, at present, there are some significant gaps in the facilities/support provided to the potential object-oriented designer, particularly in the evaluation and management of the design process; by contrast, there are substantial advances being made in technical design methods.


01 Jan 1992
TL;DR: Portability and data structures in scientific computing : Object-oriented design of utility routines in Fortran.
Abstract: Portability and data structures in scientific computing : Object-oriented design of utility routines in Fortran