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.
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.
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.
Lecture Notes in Computer Science, 1998
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.
Object-oriented programming, production rules, production systems, concrete syntax, two-dimensional language, pseudo-natural language, knowledge representation, natural language interface, logic programming, simulation languages, knowledge base, office automation, rule-based systems 20. ABSTRACT (Continue on rorarao mldm II necoaaarr and Identity *T bloc* _ We describe four alternative syntactic forms for the object-oriented, rule-based language n. These notations are all different concrete representations of the same abstract language.
Citeseer
CiteSeerX - Document Details (Isaac Councill, Lee Giles): this document. It is first of all clear that each description of an object that is communicated between agents must contain the class to which the object belongs: an agent simply has to know if an object is a room, a column etc ...
Proceedings of the CERN School of Computing, …, 1986
1996
Abstract The-calculus is given an operational semantics in terms of the SECD machine. This is then extended with built-in operators and new transition rules to produce the-calculus which characterises object-oriented programming languages. Although there are many languages which can be called object-oriented, they are di cult to compare because the operations which provide facilities such as inheritance and message passing are hidden behind linguistic abstractions which make the languages rigid and di cult to modify.
… Methods, 2000. ICFEM 2000. Third IEEE …, 2000
The increasing complexity of software systems makes their development complicated and error prone. A widely used and generally accepted technique in software engineering is the combination of different models (or views) for the description of software systems. The primary benefit ...
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.
Science of Computer Programming, 1989
1997
The Uni ed Modeling Language (UML) builds upon some of the best objectoriented (OO) modeling concepts available, and is intended to serve as a common OO modeling notation. Given its intended role, it is important that the UML notation have a well-de ned semantic base. In this paper we present some early results from our work on the systematic formalization of UML modeling constructs. The paper focuses on the formalization of UML Class Diagrams. The formal notation Z is used to express the semantics of Class Diagrams.
Proceedings 6th World Conference on Integrated …, 2002
This paper deals with formal foundations for a subset of the UML notation (subset of class diagrams and constraints in OCL). There are already various proposals for semantics of UML and a few for OCL. Nevertheless, it is argued that these approaches are not fully adequate for building a conceptual bridge between the programming artifacts produced from UML/OCL and the formal semantics. A different approach is suggested which builds on one hand on the existing work on UML/OCL semantics, and which on the other hand re-introduces ideas, which were discussed for abstract data types under the term "loose semantics". The advantages of this approach are presented and a relationship to the meta-modeling approach is outlined.
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.
Object-Oriented Programming'' and ''Data Abstraction'' have become very common terms. Unfortunately, few people agree on what they mean. I will offer informal definitions that appear to make sense in the context of languages like Ada, C + +, Modula-2, Simula, and Smalltalk. The general idea is to equate ''support for data abstraction'' with the ability to define and use new types and equate ''support for object-oriented programming'' with the ability to express type hierarchies. Features necessary to support these programming styles in a general purpose programming language will be discussed. The presentation centers around C + + but is not limited to facilities provided by that language.
conference proceedings on Object-oriented programming systems, languages, and applications - OOPSLA '92, 1992
We describe our experience with the object-oriented design methodology OMT [19] applied to a project in an undergraduate software engineering course at Carnegie Mellon University. The project involved 30 students previously unfamiliar with objectoriented modeling. They designed and implemented a system of 125 classes (27,000 lines of C++ and C code) in the relatively short time of 15 weeks. We describe the overall structure of the project and the system model, the usefulness of OMT and its impact on communication, and discuss some of the problems encountered during the development of the 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
Electronic Notes in Theoretical Computer Science, 2008
Object orientation and component-based development have both proven useful for the elaboration of open distributed systems. These paradigms are offered by the Creol language. Creol objects are concurrent, each with its own virtual processor and internal process control, and communicate using asynchronous (non-blocking) method calls. This provides the efficiency of message passing systems, while keeping the structuring benefits of methods and object-oriented programming. Conditional processor release points provide a high-level synchronization mechanism based on passive waiting that allows us to combine active and reactive behavior. A Creol component can be a single (concurrent) object or a collection of objects, together with a number of interfaces, and cointerfaces, defining the provided and required interaction and semantic behavior. Creol's semantics is defined formally using operational semantics and Hoare logic. An operational semantics lets us simulate an entire system, where all components are known in advance; in contrast, Hoare logic, together with class invariants and communication histories, lets us reason locally about a method body, without needing access to the implementations of the other classes. To bridge the gap between these two semantics, we introduce a history-based operational semantics for open systems. This new semantics can be used as an intermediate step for proving that Creol's Hoare logic is sound and complete with respect to the language's operational semantics. The approach can easily be adapted to other component-based languages where communication is done by message passing or by method interaction.
Electronic Notes in Theoretical Computer Science, 2014
We give a formal definition to a significant subset of the Object Constraint Language (ocl) in the K framework. The chosen subset includes the usual arithmetical, Boolean (including quantifiers), and string expressions; collection expressions (including iterators and navigation); and pre/post conditions for methods. Being executable, our definition provides us, for free, with an interpreter for the chosen subset of ocl. It can be used for free in K definitions of languages having ocl as a component We illustrate some of the advantages of K by comparing our semantical definition of ocl with the official semantics from the language's standard. We also report on a tool implementing our definition that users can try online.