The Infona portal uses cookies, i.e. strings of text saved by a browser on the user's device. The portal can access those files and use them to remember the user's data, such as their chosen settings (screen view, interface language, etc.), or their login data. By using the Infona portal the user accepts automatic saving and using this information for portal operation purposes. More information on the subject can be found in the Privacy Policy and Terms of Service. By closing this window the user confirms that they have read the information on cookie usage, and they accept the privacy policy and the way cookies are used by the portal. You can change the cookie settings in your browser.
An agent-oriented approach to the design, implementation and maintenance of reusable software components is discussed. Main features of the approach are: (1) the use of a formal description to enable meta-level reasoning and reflection, (2) the use of automated coding and instantiation of computational fragments, (3) the use of a distributed network and interfaces allowing the browsing, indexing and...
In object-oriented design and languages, abstractness of classes is a concept whose relationship to other concepts is not yet fully understood and agreed upon. This paper clarifies the concept of abstractness and examines the relationship between abstractness and inheritance. It does this by discussing several aspects of the so-called abstract superclass rule, a design rule for object-oriented programming...
In this paper, we argue that object-oriented models must be able to represent three kinds of taxonomic structures: static subclasses, dynamic subclasses and role classes. If CAR is a static subclass of VEHICLE, then a vehicle that is not a car can never migrate to the CAR subclass. If EM Ployee is a dynamic subclass of PERSON, then a PERSON that is not an employee may migrate to EMP. In both cases,...
A method definition can be viewed as a logical assertion. Whenever we declare a method as the implementation of an operation, we assert that if the operation is invoked on objects of the appropriate types then the method body will satisfy the specification of the operation. This view of methods as assertions is simple but general. Among its applications are: methods defined on interfaces as well as...
This paper presents a programming model for concurrent object-oriented applications by which concurrency issues are abstracted and separated from the code. The main goal of the model is to minimize dependency between application specific functionality and concurrency control. Doing so, software reuse can be effective and concurrent programs are more flexible, meaning that changes in the implementation...
Based on a name-passing calculus and on its typing system the paper shows how to build several language constructors towards a strongly-typed object-oriented concurrent programming language. The basic calculus incorporates the notions of asynchronous labelled messages, concurrent objects composed of labelled methods, and a form of abstraction on processes allowing in particular to declare polymorphic...
A worthwhile approach to achieve transaction atomicity within object-based distributed systems is to confine concurrency control and recovery mechanisms within the shared objects themselves. Such objects, called atomic objects, enhance their modularity and can increase transaction concurrency. Nevertheless, when designed independently, atomic objects can be incompatible, and if combined, do not ensure...
We need ways to describe designs that communicate the reasons for our design decisions, not just the results. Design patterns have been proposed as ways of communicating design information. This paper shows that patterns can be used to derive an architecture from its problem statement. The resulting description makes it easier to understand the purpose of the various architectural features.
There is an undeniable demand to capture already proven and matured object-oriented design so that building reusable object-oriented software does not always have to start from scratch. The term design pattern emerged as buzzword that is associated as a means to meet that goal. Already existing approaches such as the catalog of design patterns of Erich Gamma et al. [5, 6] and Peter Coad's object-oriented...
This paper describes a way of organizing information about an object-oriented program's execution. The context is our system for visualizing that execution. The critical constraints are completeness, compactness, and efficient retrieval. We describe our design and how it meets these constraints.
One can observe the following parallel developments: an increasing merge of computer, network and telecommunication technology, new needs and markets in the information and media industry, indications of changes in the way people use information in their work and in their home environments. A common factor is the digitalization of information at the time it is processed or — resulting in more possibilities...
When interpreted as a model for structuring programs and organizing computations, the object-oriented paradigm can be thought as a set of abstractions independent of the host language. By generalizing the notion of object state configuration with respect to that embedded in languages based on assignment, this paper explores a relational approach to object-oriented programming. An object-oriented model...
This paper proposes a new approach to model deductive object databases. Each object database is described by means of a Datalog language extended with extensional updates, called U-Datalog. Each object can change its state and cooperate with other objects. We introduce an extension of U-Datalog to approach the problem of composition among object databases. It can be used for modular database design...
A design and implementation of a declarative object-oriented language is presented. The language is strongly and mostly statically typed and supports software reuse techniques such as inheritance, subtype and parametric polymorphism. It differs significantly from the existing strongly typed object-oriented languages in its declarative constraint language which is based on a suitably extended logic...
Constraint imperative programming is an integration of declarative constraints and imperative object-oriented programming. The primary goal of this integration is to use constraints to express relations among objects explicitly—relations that were implicit in the code in previous languages. However, one of the fundamental concepts of object-oriented programming, object identity, can result in implicit...
Support for cooperative distributed applications is an important direction of computer systems research involving developments in operating systems, programming languages and databases. One emerging model for the support of cooperative distributed applications is that of a distributed shared universe organized as a set of objects shared by concurrent activities. While many experimental distributed...
In distributed environments, location control of objects among hosts is a crucial concern. This paper proposes a new mechanism of object location control using meta-level programming which provides the following advantages to programmers. First, the description of location control can be separated from the application program by exploiting the meta-level architecture. This separation makes it easy...
Automatic garbage collection relieves programmers from the burden of managing memory themselves and several techniques have been developed that make garbage collection feasible in many situations, including real time applications or within traditional programming languages. However optimal performance cannot always be achieved by a uniform general purpose solution. Sometimes an algorithm exhibits...
The Rigorous Object-Oriented Analysis (ROOA) method provides a systematic development process by proposing a set of rules to be followed during the analysis phase. ROOA takes a set of informal requirements and an object model and produces a formal object-oriented analysis model that acts as a requirements specification. The resulting formal model integrates the static, dynamic and functional properties...
Set the date range to filter the displayed results. You can set a starting date, ending date or both. You can enter the dates manually or choose them from the calendar.