Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
1994
…
106 pages
1 file
3.1 Introduction 37 3.2 Object-oriented concepts 38 3.3 Object oriented software development 40 3.4 Problems in the state-of-the-art methods 43 3.4. 1 Problems related to the preparatory work 44 3.4. 2 Problems related to the structural relations 45 3.4. 3 Problems related to object interactions 46 3.5 The Composition-filters model 47 3.5. 1 The basic object model 48 3.5. 2 The Interface part 48 3.5. 3 The implementation part 50 3.5. 4 Inheritance and delegation 51 3.5. 5 Concurrency through input filters 53 3.5.
Computing science notes, 1994
In this paper we discuss the fundamental concepts present in the object-oriented methodology. First we concentrate on the notion of an object, the key concept in this approach. A (software) object is the abstract representation of a physical or conceptual object. It consists of a name, a specified set of data-elements and methods. Data-elements can have values attached to them. Data-hiding is the feature that certain data and methods can be kept invisible (= hidden) for the outside of an object, thus facilitating its description. Only knowledge on the nature of the visible data-elements and methods is required to make proper use of the object. This is called data-abstraction. A related concept is encapsulation, a technique for achieving both data-hiding and data-abstraction. A class is a template for a number of similar objects. Classes do not prescribe values for the data-elements nor fixed implementations for their methods. A class can be seen as a set of objects that satisfy the same specification for data-elements and method-behavior. An alternative grouping of objects may take place by means of object types, as we will describe. A type is a set of objects that satisfy the same ezternai specification, i.e., specification of the visible data-elements and methods. Thus, a classification via types differs from an ordering into classes, as we shall explain. The notion of type brings along a notion of subtyping. We also discuss different forms of inheritance between classes. By means of inheritance a class can use data-and method-descriptions from another class. We describe, among other things, single inheritance, multiple inheritance and overriding. We also discuss mUltiple preferred inheritance and runtime inheritance. Finally, we show how actual programming can take place in an object oriented approach. For that we need a description of inter-object communication by means of messages. Relevant aspects are: synchronous and asynchronous message passing, scheduling and delegation. The paper concludes with an overview and a number of summarizing remarks. "'This paper originates from Marc van der Kammen's master's thesis "The logic of objects; object oriented programming in a logical perspective". It is the revised version of his chapter 0, which contains an overview of the most important basic notions concerning object-oriented programming.
ACM SIGPLAN OOPS Messenger, 1990
We address the following questions for object-oriented programming: What is it? What are its goals? What are its origins? What are its paradigms? What are its design alternatives? What are its models of concurrency? What are its formal computational models? What comes after object-oriented programming? Starting from software engineering goals, we examine the origins and paradigms of object-oriented programming, explore its language design alternatives, consider its models of concurrency, and review its mathematical models to make them accessible to nonmathematical readers. Finally, we briefly speculate on what may come after object-oriented programming and conclude that it is a robust component-based modeling paradigm that is both effective and fundamental. This paper expands on the OOPSLA 89 keynote talk.
Object-Oriented Concepts, Databases and Applications, 1989
Lecture Notes in Computer Science, 1998
IEEE Transactions on Parallel and Distributed Systems, 1992
Applying the object-oriented paradigm for the development of large and complex software systems offers several advantages, of which increased extensibility and reusability are the most prominent ones. The object-oriented model is also quite suitable for modeling concurrent systems. However, it appears that extensibility and reusability of concurrent applications is far from trivial. The problems that arise, the so-called inheritance anomalies are analyzed and presented in this paper. A set of requirements for extensible concurrent languages is formulated. As a solution to the identified problems, an extension to the object-oriented model is presented; composition filters. Composition filters capture messages and can express certain constraints and operations on these messages, for example buffering. In this paper we explain the composition filters approach, demonstrate its expressive power through a number of examples and show that composition filters do not suffer from the inheritance anomalies and fulfill the requirements that were established.
Mankind, under the grace of God, hungers for spiritual peace, esthetic achievements, family security, justice, and liberty, none directly satisfied by industrial productivity. But productivity allows the sharing of the plentiful rather than fighting over scarcity; it provides time for spiritual, esthetic, and family matters. It allows society to delegate special skills to institutions of religion, justice, and the preservation of liberty.
Software - Concepts and Tools / Structured Programming, 1991
The object oriented paradigm, which advocates bottom-up program development, appears at first sight to run counter to the classical, top-down approach of structured programming. The deep requirement of structured programming, however, is that programming should be based on well-defined abstractions with clear meaning rather than on incidental characteris- tics of computing machinery. This requirement can be met by object oriented
SUMMARY We discuss a number of open issues within object-oriented programming. The central mechanisms of object-oriented programming appeared with Simula developed more than 30 years ago including class, subclass, virtual function, active object and the first application framework, Class Simulation. The core parts of object-oriented programming should be well understood, but there are still a large number of issues where there is no consensus. The term object-orientation has been applied to many subjects such as: analysis, design implementation, data modeling in databases, and distribution. In this paper the term object-oriented programming is meant to cover all these subjects, since one of the advantages of object-orientation is that it provides a unified approach to these subjects. The issues being discussed in this paper are: modeling versus reuse as the main benefit of object-orientation; the need for a language independent conceptual framework; abstraction mechanisms for suppor...
ACM SIGSOFT Software Engineering Notes, 2003
Sigplan Notices, 1992
International Journal of Scientific Research in Computer Science, Engineering and Information Technology, 2019
ACM SIGPLAN Notices, 1986
Lecture Notes in Computer Science, 1993