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.
1999
A categorical model of object-oriented systems is proposed and denoted using a -calculus. The model is used to provide a de nition of design re nement. An example system is rigorously developed in Java from an initial user requirements by re ning an initial design.
Journal of Systems Integration, 1998
Category Theory is introduced as the mathematical model for object-oriented systems which are distributed, heterogeneous, real-time, embedded, and open-ended. Each object can be represented as an algebra. A collection of algebras with morphisms form a category if they satisfy some conditions. After a brief introduction of categorical concepts which are needed to formulate the framework for object-oriented systems, they are explicated in terms of objects. Then some system design methodologies such as SADT, JSD, MASCOT 3, OOD, HOOD, MOON, ADM 3, and Petri nets are examined in the categorical framework and classified into four groups: functional, process-based, object-oriented, and net-based. Combining theoretical and practical results, the interactive system design tool OBJ-NET is briefly introduced.
1998
Current object-oriented design notations such as OMT 14], Booch 3] and UML 16] are syntax-bound and semantic-free in the sense that they typically employ a large and rigorously enforceable collection of construction rules, but rarely provide a model to explain what is being constructed.
1999
Abstract Current graphical object-oriented design notations are syntax-bound and semantic-free since they tend to focus on design representation rather than on the meaning of the design. This paper proposes a meaning for object-oriented designs in terms of object behaviours represented as constructions in category theory. A new design language is proposed, based on-notation, whose semantics is given by object behaviours. An example application is constructed as both a graphical design and using the design language.
Lecture Notes in Computer Science, 1993
The emergence of the object philosophy in the new software development techniques gave birth to many object models. The object-oriented approach enables the improvement of software quality, the reduction of future maintenance requirements, the reuse and the adaptation of specification and developments. However the difficulty lies in the transition between the conceptual specification and the implementation because of the disparity of the formalism proper to each level. To resolve the problem, we propose an object oriented huerface supported by a software tool and based on a pivot model and a set of mapping rules.
We present work on a formal model for the composition of objectoriented modules, or hyperslices, which represent different perspectives on the system being built. With the model, we should be able to study existing approaches such as subject-oriented programming, as well as extend other object-oriented languages, such as the UML, to accommodate the use of hyperslices. We show here a sample of the specification language that accompanies the formal model, and a small example of its use.
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 SIGSOFT Software Engineering Notes, 2003
Unlike other fads, the object-oriented paradigm is here to stay. The road towards an object-oriented approach is described and several object-oriented programming languages are reviewed. Since the object-oriented paradigm promised to revolutionize software development, in the 1990s, demand for object-oriented software systems increased dramatically; consequently, several methodologies have been proposed to support software development based on that paradigm. Also presented are a survey and a classification scheme for object-oriented methodologies.
2004
The full-text may be used and/or reproduced, and given to third parties in any format or medium, without prior permission or charge, for personal research or study, educational, or not-for-profit purposes provided that:
Advances in Database Systems, 1994
We present features of the language T ROLL for the abstract specification of information systems. Information systems are regarded to be reactive systems with a large database. Before we present the constructs of T ROLL , we briefly explain the basic ideas on which the language relies. The UoD is regarded to be a collection of interacting objects. An object is modeled as a process with an observable state. The language T ROLL itself allows for the integrated description of structure and behavior of objects. We explain the abstraction mechanisms provided by T ROLL , namely roles, specialization, and aggregation. To support the description of systems composed from objects, the concepts of relationships and interfaces may be used.
Lecture Notes in Computer Science, 1998
In this paper, we present a possible way h o w a precise semantics of objectoriented modeling techniques can be achieved, and what the possible bene ts are. We outline the main modeling techniques used in the SysLab project, sketch, how a precise semantics can be given, and how this semantics can be used during the development process.
Theoretical Aspects of Object-Oriented …, 1994
We present and compare two models of object-oriented languages. The first we call the closure model because it uses closures to encapsulate side effects on objects, and accordingly makes the operations on an object a part of that object. It is shown that this denotational framework is adequate to explain classes, instantiation, and inheritance in the style of Simula as well as Smalltalk-80. The second we call the data structure model because it mimics the implementations of data structure languages like CLU in representing objects by records of instance variables, while keeping the operations on objects separate from the objects themselves. This yields a model which is very simple, at least superficially. Both the models are presented by way of a sequence of languages, culminating in a language with Smalltalk-80-style inheritance. The mathematical relationship between them is then discussed and it is shown that the models give equivalent results. It will emerge from this discussion that more appropriate names for the two models might be the fixed-point model and the self-application model. * To appear in Gunter, C. and Mitchell, J. C. (eds) Theoretical aspects of Object-Oriented Programming, MIT Press, 1993. 1 "Smalltalk-80" is a trademark of ParcPlace Systems. We use here a language called "SmallTalk" (with different capitalization) as an abstraction of Smalltalk-80.
1997
Nowadays, if we want to obtain a sound and correct final software product it is very important to be able to properly join modern OO programming environments, which are built for the new Internet architectures, with the OO methodologies roduced over the last few years in order to deal properly with the Conceptual Modeling process. Our contribution to this objective is the OO-Method [Pas96, Pas97-1] proposal. OO-Method is an OO Methodology that allows analysts to introduce the relevant system information by means of a set of graphical models to obtain the conceptual model through a requirement collection phase, so that an OO formal specification in OASIS [Pas95] can be generated at any given moment. This formal specification acts as a high-level system repository. Furthermore, a Java software prototype, which is functionally equivalent to the OASIS specification, is also generated in an automated way. This is achieved by defining an execution model that gives the pattern to obtain a concrete implementation in the selected target software development environment. A CASE workbench [Pas97-1] supports the methodology.
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.
1998
One of the least systematically explored stages in object-oriented design is the process whereby groups of classes are organised into progressively larger units. The identification and evaluation of subsystems is still largely an intuitive, or expert activity. An effective design process should be capable of layering systems, yielding subsystem units which are cohesive internally and loosely coupled externally. This paper evaluates and compares responsibilitydriven and event-driven design techniques for their ability to layer systems. Each of these approaches elevates a different modularising principle: contract minimisation and existence dependency. The expertise is distilled as sets of semi-formal rules, which may be applied to effect system transformations. Important design patterns, such as Mediator, Chain of Responsibility, Template Method, Command and Composite are shown to be derived automatically during the transformation process. Finally, a complete formalisation of one design method is presented.
iversity and the Hewlett-Packard Company. I express sincere thanks to John Burnham who played a major role in securing the funding and equipment grants. I want to especially thank my sweet wife, Emily, and my children, Jamie, David, Joseph, Matthew, and Nathan, for their unending patience and encouragement during the years of work that went into this research. They sacrificed many of the comforts and securities of life so I could pursue my degree. Finally, I expressive my gratitude to the Lord for the strength to persevere and for insight into the problems and concepts that I encountered during the research. iii TABLE OF CONTENTS CHAPTER 1 TOWARDS AN ENGINEERING DISCIPLINE FOR OBJECT-ORIENTED SOFTWARE DEVELOPMENT . . . . . . . . . . . . . . . 1 1.1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 OBJECT-ORIENTED SOFTWARE DEVELOPMENT . . . . . . . . . . . . 2 1.3 SOFTWARE SYSTEM
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
Lecture Notes in Computer Science, 2010
Teaching introductory object-oriented programming presents considerable challenges. Some of these challenges are due to the intrinsic complexity of the subject matter-object-oriented concepts are tightly interrelated and appear in many combinations. The present work describes an approach to modeling educational domains and reports on the results for object-orientation. It analyzes the dependency structure of object-oriented concepts and describes the implications that the high interrelatedness of concepts has on teaching introductory programming.
Communications of The ACM, 1992
articles David E. Monarchi and Gret(:hen I. Ouhr A Research Typology for Object-Oriented Analysis and Design his article evaluates current research on object-oriented analysis and design (OOAD). Critical components in OOAD are identified and various OOAD techniques (i.e., processes or methods) and representations are compared based on these components. Strong and weak areas in OOAD are identified and areas for future research are discussed in this article. • • • • • • • • • • • • • • • • • • • Research Review The existing research can be divided into three broad categories: 1) processes only; 2) representations only; and 3) processes and representations. The first category, processes, refers to procedural methods for performing object-COMMUNICATION8 OF THE ACM/September 1992/Vo1.35, No.9 ~ 1ruble 1. Research Reviewed CATEGORY 1 Process only (no representation) Bulman [61 Henderson-Sellers and Constantine [11] Johnson and FOOte [14] Scharenberg and Dunsmore [25] CATEGORY 2 Representation only (no technique) Ackroyd and Daum [l)-a graphical notation Beck and Cunningham [4]-Class-Responsibillty Collaboration (CRC) cards Cunnlngham and Beck [9)-message diagrams Page-Jones et al. [22)-Uniform Object Notation (UON) Wasserman et al. [27|-00 Structured Design Notation (OOSD) Wilson [28]~Class Diagrams CATEGORY 3 Process and Representation Alablso [2)-Transformation from Analysis to Design (TAD) Bailin [3)-Object-Oriented Requirements Specification Method BoOch [5[-Object-Oriented Design Coad and Yourdon [7)=Object-Oriented Analysis (OOA) and Design (OOD) Gorman and Chooblneh [10]-Object-Orlented Entity Relationship Model (OOERM) Ilvarl [13]-A Framework for Object identification Kappel [15]-Object/Behavior Model Lleberherr et al. [181-The Law of Demeter Meyer [19)-Object-oriented Software Construction Rumbaugh et al. [24)-Object Modeling Technique (OMT) Shlaer and Mellor [261=ObJect-Oriented Systems Analysis (OOSA) wires-Brock et al. [29]~Designing Object-Oriented Software
Lecture Notes in Computer Science, 1998
Intranets around the world, which uses Java as the de facto standard language, is a significant topic in modern Software Engineering. In this context, more than ever, well-defined methodologies and high-level tools are essential for developing quality software in a way that should be as independent as possible of the changes in technology.