Interner Bericht. Institut für Mathematische Maschinen und Datenverarbeitung der Friedrich-Alexander-Universität Erlangen-Nürnberg

Size: px
Start display at page:

Download "Interner Bericht. Institut für Mathematische Maschinen und Datenverarbeitung der Friedrich-Alexander-Universität Erlangen-Nürnberg"

Transcription

1 Cooperative Concurency Control Rainer Pruy November 1992 TR-I Interner Bericht Institut für Mathematische Maschinen und Datenverarbeitung der Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl für Informatik IV (Betriebssysteme)

2

3 Cooperative Concurrency Control Rainer Pruy University Erlangen-Nürnberg Institut für mathematische Maschinen und Datenverarbeitung IV Lehrstuhl für Betriebssysteme Martensstraße 1 D-W-8520 Erlangen Germany phone: fax: pruy@informatik.uni-erlangen.de Abstract Today research on concurrency in object systems concentrates on concurrent objects. If one has to address situations involving concurrency control conditions spanning several objects one is still on one s own. This paper illustrates the need to be able to describe concurrency control in distributed situations. It presents the concept of cooperative concurrency control as a first step in addressing this problem. Cooperative concurrency control separates functional behaviour and concurrency control into individual objects interacting to achieve the behaviour of a single concurrent object. As this approach is based on object interaction it naturally extends to distributed situations. Keywords concurrency, distribution, object interaction, cooperation, composition 1

4 1 Introduction Experience has taught that integrating concurrency with the notion of objects is not an easy task. Research in this field focused on the problem of concurrent objects. The main reason behind this is the observation that the need for concurrency control is evident only at the level of individual objects. An important concept of object systems is encapsulation. It prevents the implementation of an object from being visible and accessible from outside that object. Instead the behaviour of an object is specified in a more abstract description called interface. This provides for independence of the clients of an object from the actual implementation. In a sequential context the interface needs only to describe the functional aspects of the behaviour of an object. In the presence of concurrency, the interface, in addition to this functional aspect, has to reflect dynamic behaviour. In recent ongoing approaches objects are assumed to be concurrent and dynamic behaviour is specified in terms of concurrency constraints applied to method invocations ([Caro90],[Geib92],[Frøl92]). Inheritance, according to [Wegn87], is the defining property of object orientation. It formalizes incremental modifications as a key means to achieving reuse. Recent works (e. g. [BeAk92],[- Mats90], [Shiba91]) concentrated on integrating concurrency control with inheritance. The results can be summarized by the following two requirements for object interface descriptions: separation of concerns The different aspects of the behaviour of an object should be specified using separate descriptions allowing for independent modifications of these descriptions. In the presence of concurrency there are at least two such aspects, namely functional behaviour and dynamic behaviour. If there are independent aspects of dynamic behaviour even these should be expressed using separate descriptions. The overall behaviour of an object results from a combination of all behavioural aspects. Incremental modification of individual aspects requires clean interfaces between the separate descriptions. flexible modelling of an object-state needed for concurrency control Encapsulation prevents concurrency constraints from referring to state information internal to the object. Thus, needed state information has to be modelled at the interface level. The limitations of the underlying principles used in this modelling process restrict the set of concurrency constraints, which can be expressed. The aforementioned approaches concentrate on concurrency within a single object. Later in this paper it is stated that handling concurrency internal to objects is not sufficient. Currently there are no approaches addressing concurrency problems involving several objects. [Holl92] and [John91] among others propose concepts to specify multi-object configurations. However, they concentrate on functional aspects of object composition. They do not account for additional concurrency constraints arising from such composition. Section 2 will discuss distributed con- 2

5 2 Concurrency in distributed environments currency and the solutions available with current object systems. A model for concurrency control will be presented in section 3. Based on this model an implementation strategy is developed, which is outlined in section 4. 2 Concurrency in distributed environments Objects provide a natural way for expressing distribution. They already describe a distributed system. In this system the processing of methods models local operations and object interaction models the communication among (distributed) components. By packaging objects during the process of configuring a system, coarser distributional situations can be reflected. Handling concurrency only in the (local) context of individual objects ignores the need for controlling concurrent execution under constraints spanning several objects. A standard answer to this problem is delegating responsibility to alternate concepts. Usually transaction concepts are mentioned. However, transactions are not well suited for handling general concurrency control problems. They are intended for achieving data consistency and use the concept of mutual exclusion to achieve this goal. If concurrency constraints include flow control or operation sequence requirements, transactions do not aid in formulating a solution. An alternate approach to handling concurrency control in distributed situations is to introduce a central object which manages concurrency constraints. Such an object requires only object internal concurrency control mechanisms. Therefore this approach can be followed with available object systems. It voids, however, any possibility of exploiting distribution. For example, it is no longer possible to optimize placement of objects within a system for communication costs as any access to the objects involved in a distributed concurrent constellation has to get through this central concurrency control object. A simple example will illustrate the problem. In an object environment it is easy to construct a buffer with a FIFO behaviour based on object references. This allows objects which are currently elements of that buffer to remain at their location within the object system. Figure 2.1 pictures a linked list implementation of such a buffer. Usually the behaviour of such a buffer would be implemented using a single object. It would probably use two instance variables, in the example called fifo_head and fifo_tail, for managing the linked list of elements. Now, if the programmer knows that retrieve always gets called from a certain point within the system and store always gets called from a different point, he or she may try to optimize communication costs by spliting FIFO into a fifo_head and a fifo_tail object and collocating each of these objects with the object(s) using it. However, the two objects fifo_head and fifo_tail together exhibit the same behaviour as the FIFO object. The concurrency constraints are the very same. In both cases concurrency control has to serialize calls to retrieve and store as soon as the buffer contains, at most, one element. But this uncovers an inconsistency. The same functional behaviour with identical concurrency control requirements requires totally different descriptions according to whether distribution has to be considered or not. Currently there is no possibility for reuse among a distributed and a non-distributed solution to the FIFO buffer problem. While this may be unavoidable in many cases for the pure functional behaviour, as the notion of locality is different 3

6 A model for concurrency control 3 retrieve store FIFO fifo_head fifo_tail Abb. 2.1 Example: FIFO buffer between distributed and non-distributed descriptions, concurrency control should not directly be affected by such a design decision. Decisions made by concurrency control are the same whether functional behaviour is implemented using a single object (FIFO) or several objects (fifo_head and fifo_tail). The example above makes obvious the need for concurrency control which are able to handle constraints spanning several objects: when the combined behaviour of these objects constitutes a behaviour which would be specified using a single object as long as distribution is not to be considered. The example also illustrates the observation that concurrency constraints do not depend on the actual implementation of the corresponding functional behaviour. In the same way a functional description just relies on a specific behaviour of concurrency control without being interested in the details of how this behaviour is being achieved. This observation can be extended to object structures whose behaviour can not easily be captured by specifying a single object, as is the case when that behaviour is built on distribution. It can be viewed as a special case of the principle of separation of concerns. It also leads to the conclusion that this principle is important not only in the case of specifying behaviour of a single object but also in the case of describing concurrent behaviour of object structures. 3 A model for concurrency control Now, that the problem has been outlined, it is necessary to look at how concurrency control operates. Figure 3.1 pictures the dependencies involved with concurrency control. This structure can be observed even in current declarative approaches to concurrency control ([Deco89],[- Neus91],[McHa91]). As a first step it will be interpreted in terms of single object concurrency. 4

7 3 A model for concurrency control abstract state directs concurrency control environment enters encapsulation border controls determines internal state manipulate requests Abb. 3.1 model of concurrency control In this context concurrency is recognizable as concurrent requests pending for processing at the encapsulation border of an object. Execution of these requests is controlled by concurrency constraints as specified at the interface of that object. Concurrency constraints are expressed in terms of an abstract state. However, this abstract state can in no way refer to information from the internal state as this information is hidden behind the encapsulation border. In order to solve this dilemma one could try to infer the current abstract state from the knowledge of the initial state and monitoring requests of an object. Such monitoring, though, is inaccurate due to indeterminism resulting from concurrent execution of requests. As long as such indeterminism does not occur, state inference could be considered a possibility. The figure above is intended to suggest a different solution. While the interface is not allowed to violate encapsulation nor to access the internal state defined by the actual implementation, this implementation is allowed to provide information about that internal state for its environment. This means that a programmer, during implementation of the behaviour of an object, also has to define how this implementation maps into the behaviour specified at the interface. As, during implementation, a programmer already has to consider whether this implementation really conforms to the interface specification it does not seem to be a problem to make him or her state this conformance explicitly. This can be accomplished by providing a mapping from internal state to abstract state. It is, however, obvious that this mapping, as it only maps state information, can only be part of the conformance considerations to be performed by programmers. In the case of single concurrent objects, it is tempting to describe how concurrency control influences processing of requests in terms beyond the scope of the object model. Being an intrinsic property of objects, concurrency control may be explained using any model suitable for describing the effects of concurrency control on the execution of requests. If concurrency constraints may be applied to a group of objects this freedom is lost. The semantics established by the underlying object system restricts the set of possible models. The key properties are encapsulation of object states and a communicational model of object interaction. 5

8 The cooperative approach 4 It is obvious that an approach to handling distributed concurrency, which depends on functionality not available to ordinary object interaction, is not acceptable. Any such functionality allowing concurrency control to violate encapsulation would have disastrous effects on the semantics of objects. Functionality allowing influencing of object communication would complicate the understanding of object interaction. Thus, influencing concurrent execution within a group of objects has to be based on available object interaction semantics. This leaves two possibilities. Either interpose filter objects into communication paths or make objects explicitly interact to perform concurrency control. Interposing communication paths easily fits into the composition-filters model as proposed in [AkBV92]. This approach uses filters specified as part of the interface of an object to interpose and control messages directed to that object. While these filters can easily be used to perform concurrency control in the context of a single object, they are yet too weak to perform concurrency control on object groups. Concurrency constraints over a group of objects would require interaction among the controlling instances. If these controlling instances are implemented using composition filters, these filters need to be able to cooperate. Consequently a filter would be required to process and consume some of the messages directed to its object and to send messages to other objects involved in a concurrency control relationship. Being part of the object interface, the concurrency control behaviour is tied to the object description. In order to allow reuse of concurrency control descriptions one needs a semantics and mechanisms for reuse of filters. Separating filters from objects will result in definition of filter objects. However, using filter objects for interposing object interaction suffers from naming problems. A client of an object has to name and address the correct filter object to get to the object actually performing the request. 4 The cooperative approach In this section an alternative to realizing concurrency control by interposing object interaction is proposed. It directly follows the concurrency control model presented above. It follows the principle of separation of concerns by encapsulating individual aspects of a behaviour into individual objects. Encapsulation does not restrict an object to performing concurrency control within the bounds of that object. This allows one object to call upon another object to perform concurrency control. By doing this, concurrency control is no longer an intrinsic property of an object. Instead, a behaviour formerly exhibited by a single object is now represented by the combined behaviour of a group of interacting objects. It is obvious that such a model is applicable to configurations already consisting of a group of interacting objects. Now the world of objects is divided up into two partitions; objects providing arbitrary functional behaviour and objects providing concurrency control needed by the former. But it has yet to be explained how these concurrency control objects can perform their operation. It already has 6

9 4 The cooperative approach been remarked that there is no legal possibility for controlling method execution from outside an object. This, too, has to be initiated from inside that object. However, now all elements of the cooperative approach are available and may be combined to form a homogenous picture. When an object needs a decision from a (concurrency) control object it calls a method from that control object. With this call the object may pass, as parameters, any information needed by the control object to perform the decision. The decisions performed by the control object are actually about whether an executing request within the calling object may proceed or not. Such a decision is performed by delaying an answer to a decision request until the calling executing request may proceed. The object is awaiting this decision either by waiting for the response implicitly, in the case of synchronous communication semantics, or by explicitly requesting an answer in the case of asynchronous communication or wait-by-necessity semantics. When the execution of requests within an object changes state in a way influencing concurrency control, that object may inform an appropriate control object about this state change also using method calls. The combination of all information available to a control object determines the abstract state model available to this control object for performing concurrency control requests. According to the interface control model of concurrency control, starting the execution of a request is the only point to which concurrency control decisions are applicable. However, the more complex a method is the more likely it is for this method to cover sections of different concurrency constraints [Mack84]. This suggests the allowance for method substructures to be made visible at the interface of an object. With this, transitions among these method components also constitute points where concurrency control decisions are required. Introduction of method substructures also suggests a possibility for cleanly integrating the calls to a control object into implementation and into interface description of an object. The substructure of a method can be interpreted as a block structure as known from imperative programming languages. Upon entry of a block, a call to a control object is performed. Parameters of that call communicate necessary information. The block is entered and execution continues as soon as the call returns. On exit of that block another call to the control object is performed. This is used to inform the control object that execution of this block by the current executing request is being terminated. This also communicates state changes caused by executing this block to the control object. The control object, as it is itself an ordinary object, conforms to a type. This type is mediated by the signature of the methods of that object as observable from an object using this control object. A control object is not part of an ordinary object using it, but gets connected to this ordinary object at instantiation time of this object. It is easy to employ several control objects from a single object, as there is no distinction between these control objects and any other object known as far as object interaction is concerned. However, this only works if these different concurrency control objects manage distinct independent concurrency constraints, not only independent in semantics but independent in components operated upon. Concurrency constraints intended to be expressed independently require the introduction of an additional level of indirection, a kind of composing control object which implements the composition of the independent constraints. 7

10 An example 5 For simple composition rules it would be possible to integrate composition with the control object interaction semantics. For example, an AND-operation on constraints would require the more restrictive constraint to be queried first. This occurs with the example of a buffer which is superimposed a request-release-constraint. Execution might only continue after all constraints affected granted access. The example of a privileged reader in a multiple reader/single writer context, who will be granted access even in the presence of active writers, illustrates an OR conjunction, which is required the granting of continuation as soon as the privilege constraint grants continuation. These two examples make it clear that it is better to realize constraint composition using a special object than to try to force it into calling semantics for control objects while loosing homogeneity among object interaction semantics. 5 An example Figure 2.1 introduced the FIFO buffer example. The behaviour of such a buffer can be formulated using a declarative description based on synchronisation counters as follows: retrieve: N > 0 start(retrieve) inc(n) store: N < MAX end(store) dec(n) In this case N denotes a synchronisation counter, MAX denotes the upper bound on the buffer, start(a) and end(a) refer to the start respective termination of the given method, and inc(n) and dec(n) denote increment and decrement of the counter denoted by N. The processing of requests within a FIFO buffer object can be illustrated using the following description in a hypothetical language: 8

11 5 An example FIFO: class type FIFO_type { CNTRL: param class buffer_cntrl type buffer_cntrl_type; // other declarations retrieve: () fifi-> ( ) { CNTRL.enter_retrieve( ); // implementation of retrieve CNTRL.leave_retrieve( ); } } store: ( ) -> () { CNTRL.enter_store( ); // implementation of store CNTRL.leave_store( ); } The argument declarations of retrieve and store have been left out for brevity. The arguments passed at the calls to CNTRL depend on what information a (control) object of type buffer_cntrl_type is expecting. In the case of this simple example, no arguments need being passed at all. Figure 5.1 pictures possible configurations available with cooperative concurrency control to solve the FIFO buffer problem. The single object case illustrates the structure, that ordinary objects will exhibit under cooperative concurrency control. An object (FIFO) implementing functional behaviour (actual buffering of items) cooperates with a control object (CNTRL) managing concurrent execution of requests. If the functional behaviour is for some reason distributed among several objects (head and tail), the situation that is labeled distributed buffer - central control is to be encountered. The internal state of the participating functional objects is mapped onto a common abstract state managed by the central control object (CNTRL). Each participating functional object contributes to the composite behaviour. It is worth noting, that from the control objects point of view, it does not matter how state and functionality are actually distributed among the functional objects as the central control object still operates on a central view of the composite configuration. In order to efficiently exploit communication properties caused by distribution control objects also have to be split into several parts. This configuration is pictured as distributed buffer - distributed control. It requires special control objects (CNTRL head and CNTRL tail) which use 9

12 An example 5 FIFO CNTRL Single object case head tail CNTRL Distributed buffer - central control head tail CNTRL head CNTRL tail Distributed buffer - distributed control Abb. 5.1 cooperative concurrency control configurations a suitable distributed concurrency control protocol to implement a distributed view of the abstract state of the (distributed) FIFO buffer managed. The functional part of this configuration is identical to the case using central control. This illustrates how cooperative concurrency control allows for independence among implementation of functional and concurrency control behaviour. Changes in the actual implementation of functional behaviour do not cause any changes in the implementation of concurrency control. Functional behaviour need not know anything about the actual realization of concurrency control. 10

13 6 Conclusions 6 Conclusions Research in inheritance in the context of concurrent objects uncovered the principle of separation of concerns. This paper has presented the concept of cooperative concurrency control. Cooperative concurrency control separates functional aspects and concurrency control aspects of the behaviour of an object into independent objects. These objects use normal object interaction to achieve the behaviour of the original object via cooperation. Concurrency control objects, encapsulating concurrency control behaviour, are used by objects realizing functional behaviour. They perform concurrency control decisions. The connection between functional objects and concurrency control objects includes the type of the control object. It is established, for example, by parametrization at instantiation time of a functional object. The cooperative approach is consistent with the notion that an object is responsible for the correct execution of its methods in the context of a concurrent environment. It strictly follows the principle of separation of concerns. As it is based on mechanisms already available with object systems (namely object interaction and parametrization), it is applicable to a variety of current object-based and object-oriented programming languages. Reuse of components (functional objects and concurrency control objects) is available as long as the underlying language does support it. Besides the practical use of cooperative concurrency control, this approach constitutes a base for investigating concurrency control in distributed environments. Declarative approaches on specifying concurrency control can be implemented using cooperative concurrency control. This is due to the flexibility of abstract state specification allowed by modelling abstract state using state information provided with parameters from calls to control object methods. Declarative concurrency control specifications, together with a semantics of such specifications, also provide the possibility of deriving from them an actual implementation of a control object. Research in this domain could try to integrate declarative concurrency control with framework concepts currently researched and try to describe semantics of concurrency control in terms of cooperative concurrency control. 7 References AkBV92 BeAk92 M. Aksit, L. Bergmans, S. Vural: An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach, ECOOP 92 European Conference on Object-Oriented Programming, LNCS 615, 1992 L. Bergmans, M. Aksit: Reusability Problems in Object-Oriented Concurrent Programs, ECOOP 92 Workshop on concurrency, position paper, 1992 Caro90 D. Caromel: Concurrency: An Object-Oriented Approach, TOOLS 2, pg ,

14 References 7 Deco89 D. Decouchant, S. Krakowiak, M. Meysembourg, M. Riveill, Rousset de Pina: A Synchronisation Mechanism for Typed Objects in a Distributed System, Proc. of the ACM SIGPLAN Workshop on Object-Based Concurrent Programming, SIGPLAN, 1989 Frøl92 Geib92 S. Frølund, Inheritance of Synchronisation Constraints in Concurrent Object- Oriented Programming Languages, ECOOP 92 European Conference on Object- Oriented Programming, LNCS 615, 1992 J.-M. Geib, L. Courtrai: Abstractions for Synchronization to Inherit Synchronisation Constraints, ECOOP 92 Workshop on concurrency, position paper, 1992 Holl92 I. Holland: Specifying reusable components using Contracts, ECOOP 92 European Conference on Object-Oriented Programming, LNCS 615, 1992 John91 Neus91 Mack84 Mats90 McHa91 Shiba91 R. Johnson, V. Russo: Reusing Object-Oriented Design, University of Illinois, Technical Report UIUCDCS , May 1991 C. Neusius: Synchronizing Actions, ECOOP 91 European Conference on Object-Oriented Programming, Springer Verlag, 1991 L. Mackert: Modellierung, Spezifikation und korrekte Realisierung von asynchronen Systemen, Dissertation, Arbeitsberichte des IMMD, Bd. 16, Nr. 7, 1984 S. Matsuoka, K. Wakita, A. Yonezawa: Analysis of inheritance Anomaly in Concurrent Object-Oriented Languages, ECOOP/OOPSLA 90 Workshop on Objekt-Based Concurrent Systems, Aug 1990 C. McHale, B. Walsh, S. Baker, A. Donnelly: Scheduling Predicates, Trinity College, Dublin, Technical Report TCD-CS-91-24, 1991 E. Shibayama: Reuse of Concurrent Object Descriptions, Concurrency: Theory, Language and Architecture, LNCS 491, 1991 Wegn87 P. Wegner: Dimensions of Object-Based Languages, Proc. of OOPSLA 1987, SIGPLAN, vol. 22, no. 12, pg ,

A Meta-Model for Composition Techniques in Object-Oriented Software Development

A Meta-Model for Composition Techniques in Object-Oriented Software Development A Meta-Model for Composition Techniques in Object-Oriented Software Development Bedir Tekinerdogan Department of Computer Science University of Twente P.O. Box 217, 7500 AE Enschede, The Netherlands E-Mail:

More information

Towards a formal model of object-oriented hyperslices

Towards a formal model of object-oriented hyperslices Towards a formal model of object-oriented hyperslices Torsten Nelson, Donald Cowan, Paulo Alencar Computer Systems Group, University of Waterloo {torsten,dcowan,alencar}@csg.uwaterloo.ca Abstract This

More information

Composition and Separation of Concerns in the Object-Oriented Model

Composition and Separation of Concerns in the Object-Oriented Model ACM Computing Surveys 28A(4), December 1996, http://www.acm.org/surveys/1996/. Copyright 1996 by the Association for Computing Machinery, Inc. See the permissions statement below. Composition and Separation

More information

Incompatibility Dimensions and Integration of Atomic Commit Protocols

Incompatibility Dimensions and Integration of Atomic Commit Protocols The International Arab Journal of Information Technology, Vol. 5, No. 4, October 2008 381 Incompatibility Dimensions and Integration of Atomic Commit Protocols Yousef Al-Houmaily Department of Computer

More information

References. T. LeBlanc, Memory management for large-scale numa multiprocessors, Department of Computer Science: Technical report*311

References. T. LeBlanc, Memory management for large-scale numa multiprocessors, Department of Computer Science: Technical report*311 References [Ande 89] [Ande 92] [Ghos 93] [LeBl 89] [Rüde92] T. Anderson, E. Lazowska, H. Levy, The Performance Implication of Thread Management Alternatives for Shared-Memory Multiprocessors, ACM Trans.

More information

A FRAMEWORK FOR ACTIVE OBJECTS IN.NET

A FRAMEWORK FOR ACTIVE OBJECTS IN.NET STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LV, Number 3, 2010 A FRAMEWORK FOR ACTIVE OBJECTS IN.NET DAN MIRCEA SUCIU AND ALINA CUT Abstract. Nowadays, the concern of computer science is to find new

More information

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming

Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Computer Science Journal of Moldova, vol.13, no.3(39), 2005 Concept as a Generalization of Class and Principles of the Concept-Oriented Programming Alexandr Savinov Abstract In the paper we describe a

More information

Topics in Object-Oriented Design Patterns

Topics in Object-Oriented Design Patterns Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;

More information

FedX: A Federation Layer for Distributed Query Processing on Linked Open Data

FedX: A Federation Layer for Distributed Query Processing on Linked Open Data FedX: A Federation Layer for Distributed Query Processing on Linked Open Data Andreas Schwarte 1, Peter Haase 1,KatjaHose 2, Ralf Schenkel 2, and Michael Schmidt 1 1 fluid Operations AG, Walldorf, Germany

More information

Multitasking / Multithreading system Supports multiple tasks

Multitasking / Multithreading system Supports multiple tasks Tasks and Intertask Communication Introduction Multitasking / Multithreading system Supports multiple tasks As we ve noted Important job in multitasking system Exchanging data between tasks Synchronizing

More information

A Top-Down Visual Approach to GUI development

A Top-Down Visual Approach to GUI development A Top-Down Visual Approach to GUI development ROSANNA CASSINO, GENNY TORTORA, MAURIZIO TUCCI, GIULIANA VITIELLO Dipartimento di Matematica e Informatica Università di Salerno Via Ponte don Melillo 84084

More information

Idioms for Building Software Frameworks in AspectJ

Idioms for Building Software Frameworks in AspectJ Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,

More information

Beyond Objects: Components 1

Beyond Objects: Components 1 Beyond Objects: Components 1 Theo Dirk Meijler and Oscar Nierstrasz Software Composition Group, University of Berne 2 Abstract. Traditional software development approaches do not cope well with the evolving

More information

Real-Time Specification Inheritance Anomalies and Real-Time Filters

Real-Time Specification Inheritance Anomalies and Real-Time Filters Real-Time Specification Inheritance Anomalies and Real-Time Filters Mehmet Aksit Jan Bosch William van der Sterren * Lodewijk Bergmans TRESE project Department of Computer Science University of Twente

More information

Concurrent Objects and Linearizability

Concurrent Objects and Linearizability Chapter 3 Concurrent Objects and Linearizability 3.1 Specifying Objects An object in languages such as Java and C++ is a container for data. Each object provides a set of methods that are the only way

More information

Separation of implementations of computations and synchronizations has direct implications on the extensibility and modiability of programs. Concurren

Separation of implementations of computations and synchronizations has direct implications on the extensibility and modiability of programs. Concurren Support for Implementation of Evolutionary Concurrent Systems in Concurrent Programming Languages Raju Pandey 1 andj.c.browne 2 1 Computer Science Department, University of California, Davis, CA 95616

More information

ASPECTIX: A QUALITY-AWARE, OBJECT-BASED MIDDLEWARE ARCHITECTURE

ASPECTIX: A QUALITY-AWARE, OBJECT-BASED MIDDLEWARE ARCHITECTURE ASPECTIX: A QUALITY-AWARE, OBJECT-BASED MIDDLEWARE ARCHITECTURE Franz J. Hauck, Ulrich Becker, Martin Geier, Erich Meier, Uwe Rastofer, Martin Steckermeier Informatik 4, University of Erlangen-Nürnberg,

More information

1.1 Jadex - Engineering Goal-Oriented Agents

1.1 Jadex - Engineering Goal-Oriented Agents 1.1 Jadex - Engineering Goal-Oriented Agents In previous sections of the book agents have been considered as software artifacts that differ from objects mainly in their capability to autonomously execute

More information

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems

On Object Orientation as a Paradigm for General Purpose. Distributed Operating Systems On Object Orientation as a Paradigm for General Purpose Distributed Operating Systems Vinny Cahill, Sean Baker, Brendan Tangney, Chris Horn and Neville Harris Distributed Systems Group, Dept. of Computer

More information

Single-pass Static Semantic Check for Efficient Translation in YAPL

Single-pass Static Semantic Check for Efficient Translation in YAPL Single-pass Static Semantic Check for Efficient Translation in YAPL Zafiris Karaiskos, Panajotis Katsaros and Constantine Lazos Department of Informatics, Aristotle University Thessaloniki, 54124, Greece

More information

Imperative Functional Programming

Imperative Functional Programming Imperative Functional Programming Uday S. Reddy Department of Computer Science The University of Illinois at Urbana-Champaign Urbana, Illinois 61801 reddy@cs.uiuc.edu Our intuitive idea of a function is

More information

Incompatibility Dimensions and Integration of Atomic Commit Protocols

Incompatibility Dimensions and Integration of Atomic Commit Protocols Preprint Incompatibility Dimensions and Integration of Atomic Protocols, Yousef J. Al-Houmaily, International Arab Journal of Information Technology, Vol. 5, No. 4, pp. 381-392, October 2008. Incompatibility

More information

Applying Idioms for Synchronization Mechanisms Synchronizing communication components for the One-dimensional Heat Equation

Applying Idioms for Synchronization Mechanisms Synchronizing communication components for the One-dimensional Heat Equation Applying Idioms for Synchronization Mechanisms Synchronizing communication components for the One-dimensional Heat Equation Jorge L. Ortega Arjona 1 Departamento de Matemáticas Facultad de Ciencias, UNAM

More information

Composing Multiple-Client-Multiple-Server Synchronizations

Composing Multiple-Client-Multiple-Server Synchronizations Composing Multiple-Client-Multiple-Server Synchronizations Mehmet Aksit and Lodewijk Bergmans TRESE project, CTIT and Department of Computer Science, University of Twente, P.O. Box 217,7500 AE Enschede,

More information

Reuse Contracts As Component Interface. Descriptions. Koen De Hondt, Carine Lucas, and Patrick Steyaert. Programming Technology Lab

Reuse Contracts As Component Interface. Descriptions. Koen De Hondt, Carine Lucas, and Patrick Steyaert. Programming Technology Lab Reuse Contracts As Component Interface Descriptions Koen De Hondt, Carine Lucas, and Patrick Steyaert Programming Technology Lab Computer Science Department Vrije Universiteit Brussel Pleinlaan 2, B-1050

More information

Theory of Network Communication

Theory of Network Communication Theory of Network Communication Dr. Christian Scheideler Johns Hopkins University, Sept. 8 2004 1 Introduction The goal of this lecture is to give an introduction to the state of the art in the theory

More information

Operational Semantics

Operational Semantics 15-819K: Logic Programming Lecture 4 Operational Semantics Frank Pfenning September 7, 2006 In this lecture we begin in the quest to formally capture the operational semantics in order to prove properties

More information

arxiv: v1 [cs.pl] 1 May 2017

arxiv: v1 [cs.pl] 1 May 2017 arxiv:1705.00556v1 [cs.pl] 1 May 2017 Mapping Objects to Persistent Predicates. José E. Zalacain Llanes Abstract The Logic Programming through Prolog has been widely used for supply persistence in many

More information

CYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms

CYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms CYES-C++: A Concurrent Extension of C++ through Compositional Mechanisms Raju Pandey J. C. Browne Department of Computer Sciences The University of Texas at Austin Austin, TX 78712 fraju, browneg@cs.utexas.edu

More information

Thirty one Problems in the Semantics of UML 1.3 Dynamics

Thirty one Problems in the Semantics of UML 1.3 Dynamics Thirty one Problems in the Semantics of UML 1.3 Dynamics G. Reggio R.J. Wieringa September 14, 1999 1 Introduction In this discussion paper we list a number of problems we found with the current dynamic

More information

Part 5. Verification and Validation

Part 5. Verification and Validation Software Engineering Part 5. Verification and Validation - Verification and Validation - Software Testing Ver. 1.7 This lecture note is based on materials from Ian Sommerville 2006. Anyone can use this

More information

System Models. 2.1 Introduction 2.2 Architectural Models 2.3 Fundamental Models. Nicola Dragoni Embedded Systems Engineering DTU Informatics

System Models. 2.1 Introduction 2.2 Architectural Models 2.3 Fundamental Models. Nicola Dragoni Embedded Systems Engineering DTU Informatics System Models Nicola Dragoni Embedded Systems Engineering DTU Informatics 2.1 Introduction 2.2 Architectural Models 2.3 Fundamental Models Architectural vs Fundamental Models Systems that are intended

More information

Technical Report. Institut für Mathematische Maschinen und Datenverarbeitung der Friedrich-Alexander-Universität Erlangen-Nürnberg

Technical Report. Institut für Mathematische Maschinen und Datenverarbeitung der Friedrich-Alexander-Universität Erlangen-Nürnberg Hierarchical Schedulers in the PM System-Architecture Jürgen Kleinöder, Thomas Riechmann June 1994 TR-I4-94-16 Technical Report Institut für Mathematische Maschinen und Datenverarbeitung der Friedrich-Alexander-Universität

More information

The Java Memory Model

The Java Memory Model Jeremy Manson 1, William Pugh 1, and Sarita Adve 2 1 University of Maryland 2 University of Illinois at Urbana-Champaign Presented by John Fisher-Ogden November 22, 2005 Outline Introduction Sequential

More information

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions) By the end of this course, students should CIS 1.5 Course Objectives a. Understand the concept of a program (i.e., a computer following a series of instructions) b. Understand the concept of a variable

More information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure

More information

Model-based Run-Time Software Adaptation for Distributed Hierarchical Service Coordination

Model-based Run-Time Software Adaptation for Distributed Hierarchical Service Coordination Model-based Run-Time Software Adaptation for Distributed Hierarchical Service Coordination Hassan Gomaa, Koji Hashimoto Department of Computer Science George Mason University Fairfax, VA, USA hgomaa@gmu.edu,

More information

Modeling Aspect-Oriented Change Realizations

Modeling Aspect-Oriented Change Realizations Modeling Aspect-Oriented Change Realizations Erasmus Mobility at Lancaster University Lecture 1 Valentino Vranić Institute of Informatics and Software Engineering Faculty of Informatics and Information

More information

1 From Distributed Objects to Distributed Components

1 From Distributed Objects to Distributed Components From Distributed Objects to Distributed : the Olan Approach Luc Bellissard, Michel Riveill BP 53, F 38041 Grenoble Cedex 9, FRANCE Phone: (33) 76 61 52 78 Fax: (33) 76 61 52 52 Email: Luc.Bellissard@imag.fr

More information

Chapter 2 Overview of the Design Methodology

Chapter 2 Overview of the Design Methodology Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed

More information

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico Modellistica Medica Maria Grazia Pia INFN Genova Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico 2002-2003 Lezione 9 OO modeling Design Patterns Structural Patterns Behavioural Patterns

More information

Synchronization SPL/2010 SPL/20 1

Synchronization SPL/2010 SPL/20 1 Synchronization 1 Overview synchronization mechanisms in modern RTEs concurrency issues places where synchronization is needed structural ways (design patterns) for exclusive access 2 Overview synchronization

More information

Aspect Design Pattern for Non Functional Requirements

Aspect Design Pattern for Non Functional Requirements Aspect Design Pattern for Non Functional Requirements FAZAL-E-AMIN¹, ANSAR SIDDIQ², HAFIZ FAROOQ AHMAD³ ¹ ²International Islamic University Islamabad, Pakistan ³NUST Institute of Information Technology,

More information

A Short Introduction to Formal Specifications

A Short Introduction to Formal Specifications A Short Introduction to Formal Specifications Prof. Dr. Hans J. Schneider Lehrstuhl für Programmiersprachen und Programmiermethodik Friedrich-Alexander-Universität Erlangen-Nürnberg 30.11.2000 Methods

More information

Cover Page. The handle holds various files of this Leiden University dissertation

Cover Page. The handle   holds various files of this Leiden University dissertation Cover Page The handle http://hdl.handle.net/1887/22891 holds various files of this Leiden University dissertation Author: Gouw, Stijn de Title: Combining monitoring with run-time assertion checking Issue

More information

Activity Nets: A UML profile for modeling workflow and business processes

Activity Nets: A UML profile for modeling workflow and business processes Activity Nets: A UML profile for modeling workflow and business processes Author: Gregor v. Bochmann, SITE, University of Ottawa (August 27, 2000) 1. Introduction 1.1. Purpose of this document Workflow

More information

Thunks (continued) Olivier Danvy, John Hatcli. Department of Computing and Information Sciences. Kansas State University. Manhattan, Kansas 66506, USA

Thunks (continued) Olivier Danvy, John Hatcli. Department of Computing and Information Sciences. Kansas State University. Manhattan, Kansas 66506, USA Thunks (continued) Olivier Danvy, John Hatcli Department of Computing and Information Sciences Kansas State University Manhattan, Kansas 66506, USA e-mail: (danvy, hatcli)@cis.ksu.edu Abstract: Call-by-name

More information

Late-bound Pragmatical Class Methods

Late-bound Pragmatical Class Methods Late-bound Pragmatical Class Methods AXEL SCHMOLITZKY, MARK EVERED, J. LESLIE KEEDY, GISELA MENGER Department of Computer Structures University of Ulm 89069 Ulm, Germany {axel, markev, keedy, gisela@informatik.uni-ulm.de

More information

Towards Compositional Domain Specific Languages

Towards Compositional Domain Specific Languages Andreas Horst, Bernhard Rumpe Software Engineering RWTH Aachen University, Germany http://www.se-rwth.de/ 1 Introduction The deployment of Domain Specific Languages (DSL) and in particular Domain Specific

More information

Behavioral Design Patterns Used in Data Structures Implementation

Behavioral Design Patterns Used in Data Structures Implementation Behavioral Design Patterns Used in Data Structures Implementation Niculescu Virginia Department of Computer Science Babeş-Bolyai University, Cluj-Napoca email address: vniculescu@cs.ubbcluj.ro November,

More information

Applying the Semantic Web Layers to Access Control

Applying the Semantic Web Layers to Access Control J. Lopez, A. Mana, J. maria troya, and M. Yague, Applying the Semantic Web Layers to Access Control, IEEE International Workshop on Web Semantics (WebS03), pp. 622-626, 2003. NICS Lab. Publications: https://www.nics.uma.es/publications

More information

System Verilog Tagged Unions and Pattern Matching

System Verilog Tagged Unions and Pattern Matching System Verilog Tagged Unions and Pattern Matching (An extension to System Verilog 3.1 proposed to Accellera) Bluespec, Inc. Contact: Rishiyur S. Nikhil, CTO, Bluespec, Inc. 200 West Street, 4th Flr., Waltham,

More information

On the Concurrent Object Model of UML *

On the Concurrent Object Model of UML * On the Concurrent Object Model of UML * Iulian Ober, Ileana Stan INPT-ENSEEIHT, 2, rue Camichel, 31000 Toulouse, France Phone (+33) 5.61.19.29.39, Fax (+33) 5.61.40.84.52 {iulian.ober, ileana.stan}@enseeiht.fr

More information

A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING

A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING Güray YILMAZ 1 and Nadia ERDOĞAN 2 1 Dept. of Computer Engineering, Air Force Academy, 34807 Yeşilyurt, İstanbul, Turkey 2 Dept. of

More information

Simulation of Petri Nets in Rule-Based Expert System Shell McESE

Simulation of Petri Nets in Rule-Based Expert System Shell McESE Abstract Simulation of Petri Nets in Rule-Based Expert System Shell McESE F. Franek and I. Bruha Dept of Computer Science and Systems, McMaster University Hamilton, Ont., Canada, L8S4K1 Email: {franya

More information

Role based Software Process Modelling

Role based Software Process Modelling Role based Software Process Modelling Fadila Atil, Djamel Meslati, Nora Bounour & Said Ghoul * LRI Laboratory, University of Badji Mokhtar, BP 12, Annaba, Ageria * Institute of Computer science, university

More information

Technical Report. Computer Science Department. Operating Systems IMMD IV. Friedrich-Alexander-University Erlangen-Nürnberg, Germany

Technical Report. Computer Science Department. Operating Systems IMMD IV. Friedrich-Alexander-University Erlangen-Nürnberg, Germany Towards the Implementation of a Uniform Object Model F. J. Hauck Oktober 1992 TR-I4-5-92 Technical Report Computer Science Department Operating Systems IMMD IV Friedrich-Alexander-University Erlangen-Nürnberg,

More information

SPIN, PETERSON AND BAKERY LOCKS

SPIN, PETERSON AND BAKERY LOCKS Concurrent Programs reasoning about their execution proving correctness start by considering execution sequences CS4021/4521 2018 jones@scss.tcd.ie School of Computer Science and Statistics, Trinity College

More information

Activation Inheritance in Modelica

Activation Inheritance in Modelica Activation Inheritance in Modelica Ramine Nikoukhah INRIA, BP 05, 7853 Le Chesnay, France ramine.nikoukhah@inria.fr Abstract Modelica specifies two types of s: the s defined directly in the "" section,

More information

Distributed minimum spanning tree problem

Distributed minimum spanning tree problem Distributed minimum spanning tree problem Juho-Kustaa Kangas 24th November 2012 Abstract Given a connected weighted undirected graph, the minimum spanning tree problem asks for a spanning subtree with

More information

1 Lexical Considerations

1 Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler

More information

INCONSISTENT DATABASES

INCONSISTENT DATABASES INCONSISTENT DATABASES Leopoldo Bertossi Carleton University, http://www.scs.carleton.ca/ bertossi SYNONYMS None DEFINITION An inconsistent database is a database instance that does not satisfy those integrity

More information

DFA&:OPT-METAFrame: A Tool Kit for Program Analysis and Optimization

DFA&:OPT-METAFrame: A Tool Kit for Program Analysis and Optimization DFA&:OPT-METAFrame: A Tool Kit for Program Analysis and Optimization Marion Klein* Dirk Koschiitzki t Jens Knoop t Bernhard Steffen t ABSTRACT Whereas the construction process of a compiler for the early

More information

Specifying and Proving Broadcast Properties with TLA

Specifying and Proving Broadcast Properties with TLA Specifying and Proving Broadcast Properties with TLA William Hipschman Department of Computer Science The University of North Carolina at Chapel Hill Abstract Although group communication is vitally important

More information

Multithreaded Programming Part II. CSE 219 Stony Brook University, Department of Computer Science

Multithreaded Programming Part II. CSE 219 Stony Brook University, Department of Computer Science Multithreaded Programming Part II CSE 219 Stony Brook University, Thread Scheduling In a Java application, main is a thread on its own Once multiple threads are made Runnable the thread scheduler of the

More information

Casting -Allows a narrowing assignment by asking the Java compiler to "trust us"

Casting -Allows a narrowing assignment by asking the Java compiler to trust us Primitives Integral types: int, short, long, char, byte Floating point types: double, float Boolean types: boolean -passed by value (copied when returned or passed as actual parameters) Arithmetic Operators:

More information

Joint Entity Resolution

Joint Entity Resolution Joint Entity Resolution Steven Euijong Whang, Hector Garcia-Molina Computer Science Department, Stanford University 353 Serra Mall, Stanford, CA 94305, USA {swhang, hector}@cs.stanford.edu No Institute

More information

Designing and documenting the behavior of software

Designing and documenting the behavior of software Chapter 8 Designing and documenting the behavior of software Authors: Gürcan Güleşir, Lodewijk Bergmans, Mehmet Akşit Abstract The development and maintenance of today s software systems is an increasingly

More information

The Object Model Overview. Contents. Section Title

The Object Model Overview. Contents. Section Title The Object Model 1 This chapter describes the concrete object model that underlies the CORBA architecture. The model is derived from the abstract Core Object Model defined by the Object Management Group

More information

Models of concurrency & synchronization algorithms

Models of concurrency & synchronization algorithms Models of concurrency & synchronization algorithms Lecture 3 of TDA383/DIT390 (Concurrent Programming) Carlo A. Furia Chalmers University of Technology University of Gothenburg SP3 2016/2017 Today s menu

More information

Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 22 Slide 1

Ian Sommerville 2006 Software Engineering, 8th edition. Chapter 22 Slide 1 Verification and Validation Slide 1 Objectives To introduce software verification and validation and to discuss the distinction between them To describe the program inspection process and its role in V

More information

The Adaptive Arena: A Concurrent Object-Oriented Model

The Adaptive Arena: A Concurrent Object-Oriented Model The Adaptive Arena: A Concurrent Object-Oriented Model Abstract Tzilla Elrad cselrad@mina.cns.iit.edu Atef Bader abader@lucent.com Most of the current concurrent object-oriented approaches do not address

More information

SCOOP A contract-based concurrent object-oriented programming model

SCOOP A contract-based concurrent object-oriented programming model SCOOP A contract-based concurrent object-oriented programming model Benjamin Morandi 1, Sebastian S. Bauer 2, and Bertrand Meyer 1 1 Chair of Software Engineering, Swiss Federal Institute of Technology

More information

Implementing Software Connectors through First-Class Methods

Implementing Software Connectors through First-Class Methods Implementing Software Connectors through First-Class Methods Cheoljoo Jeong and Sangduck Lee Computer & Software Technology Laboratory Electronics and Telecommunications Research Institute Taejon, 305-350,

More information

Modelling ODP Viewpoints. 1 Introduction. 2 Basic Modelling and Specification Concepts

Modelling ODP Viewpoints. 1 Introduction. 2 Basic Modelling and Specification Concepts Richard O. Sinnott and Kenneth J. Turner. Modelling ODP viewpoints. In B. Cameron, C. Geldrez, A. Hopley, D. Howes, B. Mirek, and M. Plucinska, editors, Proc. OOPSLA 94 Workshop on Precise Behavioural

More information

Leslie Lamport: The Specification Language TLA +

Leslie Lamport: The Specification Language TLA + Leslie Lamport: The Specification Language TLA + This is an addendum to a chapter by Stephan Merz in the book Logics of Specification Languages by Dines Bjørner and Martin C. Henson (Springer, 2008). It

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

40 Behaviour Compatibility

40 Behaviour Compatibility 40 Behaviour Compatibility [2] R. De Nicola, Extentional Equivalences for Transition Systems, Acta Informatica, vol. 24, pp. 21-237, 1987. [3] J. Gray, Notes on Data Base Operating Systems, in Operating

More information

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy Operating Systems Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. AL-AZHAR University Website : eaymanelshenawy.wordpress.com Email : eaymanelshenawy@yahoo.com Reference

More information

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1

Verification and Validation. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation 1 Objectives To introduce software verification and validation and to discuss the distinction between them To describe the program inspection process and its role in V & V To

More information

Tool Support for Refactoring Duplicated OO Code

Tool Support for Refactoring Duplicated OO Code Tool Support for Refactoring Duplicated OO Code Stéphane Ducasse and Matthias Rieger and Georges Golomingi Software Composition Group, Institut für Informatik (IAM) Universität Bern, Neubrückstrasse 10,

More information

Interprocess Communication By: Kaushik Vaghani

Interprocess Communication By: Kaushik Vaghani Interprocess Communication By: Kaushik Vaghani Background Race Condition: A situation where several processes access and manipulate the same data concurrently and the outcome of execution depends on the

More information

Provable data privacy

Provable data privacy Provable data privacy Kilian Stoffel 1 and Thomas Studer 2 1 Université de Neuchâtel, Pierre-à-Mazel 7, CH-2000 Neuchâtel, Switzerland kilian.stoffel@unine.ch 2 Institut für Informatik und angewandte Mathematik,

More information

Instances and Classes. SOFTWARE ENGINEERING Christopher A. Welty David A. Ferrucci. 24 Summer 1999 intelligence

Instances and Classes. SOFTWARE ENGINEERING Christopher A. Welty David A. Ferrucci. 24 Summer 1999 intelligence Instances and Classes in SOFTWARE ENGINEERING Christopher A. Welty David A. Ferrucci 24 Summer 1999 intelligence Software Engineering Over the past decade or so, one of the many areas that artificial intelligence

More information

1 Process Coordination

1 Process Coordination COMP 730 (242) Class Notes Section 5: Process Coordination 1 Process Coordination Process coordination consists of synchronization and mutual exclusion, which were discussed earlier. We will now study

More information

Perfect Timing. Alejandra Pardo : Manager Andrew Emrazian : Testing Brant Nielsen : Design Eric Budd : Documentation

Perfect Timing. Alejandra Pardo : Manager Andrew Emrazian : Testing Brant Nielsen : Design Eric Budd : Documentation Perfect Timing Alejandra Pardo : Manager Andrew Emrazian : Testing Brant Nielsen : Design Eric Budd : Documentation Problem & Solution College students do their best to plan out their daily tasks, but

More information

Modeling and Simulating Discrete Event Systems in Metropolis

Modeling and Simulating Discrete Event Systems in Metropolis Modeling and Simulating Discrete Event Systems in Metropolis Guang Yang EECS 290N Report December 15, 2004 University of California at Berkeley Berkeley, CA, 94720, USA guyang@eecs.berkeley.edu Abstract

More information

Discrete Optimization. Lecture Notes 2

Discrete Optimization. Lecture Notes 2 Discrete Optimization. Lecture Notes 2 Disjunctive Constraints Defining variables and formulating linear constraints can be straightforward or more sophisticated, depending on the problem structure. The

More information

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1

CSCI Object Oriented Design: Frameworks and Design Patterns George Blankenship. Frameworks and Design George Blankenship 1 CSCI 6234 Object Oriented Design: Frameworks and Design Patterns George Blankenship Frameworks and Design George Blankenship 1 Background A class is a mechanisms for encapsulation, it embodies a certain

More information

Chapter 8: Class and Method Design

Chapter 8: Class and Method Design Chapter 8: Class and Method Design Objectives Become familiar with coupling, cohesion, and connascence. Be able to specify, restructure, and optimize object designs. Be able to identify the reuse of predefined

More information

INTEGRATING COLORED PETRI NET AND OBJECT ORIENTED THEORY INTO WORKFLOW MODEL

INTEGRATING COLORED PETRI NET AND OBJECT ORIENTED THEORY INTO WORKFLOW MODEL INTEGRATING COLORED PETRI NET AND OBJECT ORIENTED THEORY INTO WORKFLOW MODEL Zhengli Zhai 1,2 1 Department of Computer Science and Technology, Tongji University, China zhaizhl@163.com 2 Computer Engineering

More information

NAME CHSM-Java Concurrent, Hierarchical, Finite State Machine specification language for Java

NAME CHSM-Java Concurrent, Hierarchical, Finite State Machine specification language for Java NAME CHSM-Java Concurrent, Hierarchical, Finite State Machine specification language for Java SYNOPSIS declarations description user-code DESCRIPTION The CHSM specification language is a text-based means

More information

41. Composition Filters - A Filter-Based Grey-Box Component Model

41. Composition Filters - A Filter-Based Grey-Box Component Model 41. Composition Filters - A Filter-Based Grey-Box Component Model Prof. Dr. Uwe Aßmann Technische Universität Dresden Institut für Software- und Multimediatechnik http://st.inf.tu-dresden.de Version 16-0.2,

More information

Modeling variability with UML

Modeling variability with UML Modeling variability with UML Matthias Clauß Intershop Research Software Engineering Group Intershop, Jena Dresden University of Technology Matthias.Clauss@gmx.de Keywords: product families, domain modeling,

More information

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems 3 Draft 5.02.00-0, 15 August 2005 (Santa Barbara). Extracted from ongoing work on future third edition of Eiffel: The Language. Copyright Bertrand Meyer 1986-2005. Access restricted to purchasers of the

More information

New Programming Paradigms

New Programming Paradigms New Programming Paradigms Lecturer: Pánovics János (google the name for further details) Requirements: For signature: classroom work and a 15-minute presentation Exam: written exam (mainly concepts and

More information

Configuration Provider: A Pattern for Configuring Threaded Applications

Configuration Provider: A Pattern for Configuring Threaded Applications Configuration Provider: A Pattern for Configuring Threaded Applications Klaus Meffert 1 and Ilka Philippow 2 Technical University Ilmenau plop@klaus-meffert.de 1, ilka.philippow@tu-ilmena.de 2 Abstract

More information

Coordination Patterns

Coordination Patterns Coordination Patterns 1. Coordination Patterns Design Patterns and their relevance for Coordination Oscar Nierstrasz Software Composition Group Institut für Informatik (IAM) Universität Bern oscar@iam.unibe.ch

More information

junit RV Adding Runtime Verification to junit

junit RV Adding Runtime Verification to junit junit RV Adding Runtime Verification to junit Normann Decker, Martin Leucker, and Daniel Thoma Institute for Software Engineering and Programming Languages Universität zu Lübeck, Germany {decker, leucker,

More information

APM. Object Monitor. Object Lab. Richard Hayton & Scarlet Schwiderski

APM. Object Monitor. Object Lab. Richard Hayton & Scarlet Schwiderski APM POSEIDON HOUSE CASTLE PARK CAMBRIDGE CB3 0RD UNITED KINGDOM +44 1223 515010 Fax +44 1223 359779 Email: apm@ansa.co.uk URL: http://www.ansa.co.uk Object Lab Object Monitor Richard Hayton & Scarlet Schwiderski

More information