Coordination in a Reflective Architecture Description Language

Size: px
Start display at page:

Download "Coordination in a Reflective Architecture Description Language"

Transcription

1 Coordination in a Reflective Architecture Description Language Carlos E. Cuesta 1, Pablo de la Fuente 1, Manuel Barrio-Solórzano 1, and Encarnación Beato 2 1 Universidad de Valladolid, Valladolid 47011, Spain {cecuesta,pfuente,mbarrio}@infor.uva.es 2 Universidad Pontificia de Salamanca, Salamanca 37002, Spain ebeato@upsa.es Abstract. Software Architecture studies the structure of software systems, as described by Architecture Description Languages (Adls). When these capture structures of change, they are comparable to Coordination Languages. Previous work suggests that the combination with Reflection concepts renders a general framework for the description of such evolving structures. This paper describes a reflective Adl named PiLar designed to provide such a framework. It consists of a structural part, which describes the static skeleton, and a dynamic part, which defines patterns of change. The major novelty is the reification relationship, which structures a description in several meta-layers, such that the architecture is able to reason and act upon itself. The paper includes a complete PiLar example, to show the language s use and some of its most relevant features. It describes a Tuple Space model, illustrating the analogy with existing Coordination Models. We conclude by emphasizing PiLar s generality and applicability. 1 Introduction Research in Software Architecture and Coordination Theory is bound to converge. Their origins and purpose are quite different, yet they show some significant similarities, and use comparable concepts. This is even more apparent in their respective linguistic representations: Coordination and Architecture Description Languages (Adls) play often analogous roles, and sometimes even the same one [8,10] is used in both contexts. Linguistically, a system s architecture is described as the complex composition of independent pieces named components. An Adl provides the means to join together these components, conceived as previously unrelated atomic entities. When this structure can evolve, we speak of Dynamic Architecture. Similarly, Coordination is about managing dependencies between concurrent agents. We can compare these agents to components; and then their dependencies comprise a dynamic architecture. Of course there are differences of emphasis, but quite often the analogy works perfectly. Languages in both fields provide a wide range of solutions for the description of dynamic structures; a common scheme is required to compare different alternatives. Our This work has been partially sponsored by the Spanish Comission of Science and Technology through the CICYT Project TEL C04-04, and by the Autonomous Government of Castilla and León through the Project JCYL VA61/00B. F. Arbab and C. Talcott (Eds.): COORDINATION 2002, LNCS 2315, pp , c Springer-Verlag Berlin Heidelberg 2002

2 142 C.E. Cuesta et al. previous work [7] uses the notion of Reflection as an unifying concept. Using this idea, we defined the reflective architectural framework Marmol; but it still lacked a linguistic counterpart. This paper describes such counterpart. We define here a reflective Adl named PiLar ( PiLar is a Language for architectural description ) loosely based on the Marmol framework. This will allow us to effectively test reflective notions in an architectural setting, by using them as a part of a system s description. The language has been equipped with formal concurrent semantics based on the π-calculus, in the spirit of existing work combining architecture and process algebras [1,3,4], and was designed to combine reflection and most interesting constructions from other Adls, maintaining applicability while providing the greatest generality. Our purpose with PiLar is twofold. First, it is mainly intended to serve as the language to describe other Coordination models and Dynamic Architectures; so it should be expressive enough to define any known dynamic abstraction. Second, it is also meant to be useful as a standalone, dynamic Adl, able to specify evolving structures; as such, it needs to show a comfortable notation. In the following sections we review the basic concepts of reflection, to later describe the syntax of our Adl, divided in a Structural Language and a Dynamic Language. Special attention is paid to the concept of reification, which provides the reflective structure, and concurrent semantics are briefly outlined. To clarify concepts, we examine an example, consisting of a specification of the TupleSpace Model; this way, the proposal of PiLar as a coordination language is substantiated. 2 Reflection in Architecture The concept of Reflection has already a long history [9] and has been used in many areas, such as artificial intelligence, object-orientation or programming; but the combination with Software Architecture has only been proposed recently [6,7]. Reflection is defined as the capability of a system to reason and act upon itself [9]. The concept has many implications, but here we will consider it just inside Software Architecture. Our previous work in the Marmol framework has already determined which notions are considered of interest to the field. The resulting model has a high expressive power, as proven by a comparison with the structure of dynamic Adls and Coordination Languages: each one of them has a reflective equivalent [7]. Reflection divides an architecture in two: the part which is controlled and the part which controls. These are respectively named base-level and meta-level. The meta-level can be described as the context in which the base-level is defined; this defines a causal connection between them, expressed as a reification link. Each level is also divided in components. A normal, base-level component is named an avatar, and is reified by one or more meta-components in the meta-level. Components in the meta-level could be reified themselves, hence defining another level (a meta-meta-level). There s no limit to this process, which implicitly divides an specification in several meta-layers. Details about the resulting model can be obtained from [7]. Thus reification is the main concept to introduce in PiLar. This is done in section 4.

3 3 Structural Language Coordination in a Reflective Architecture Description Language 143 There are two different concerns in any dynamic Adl: the description of the static structure and the characterization of patterns of evolution. To provide the separation of concerns, PiLar itself is divided in two parts: a Structural Language describing the static skeleton of systems, and a Dynamic Language, defining the rules to make it change. In this section we briefly sketch the syntax of the former, which stems naturally from the concurrent semantics, but has been designed to be similar to other Adls. There s just one kind of element: the component, defined as a basic compositional unit, encapsulated and defined by one or more segmented interfaces, and present in a configuration through one or several instances. Hence it defines a type, and it is also known as archtype. It may be either primitive or composite. In the second case, the composition of several mutually interacting instances is hidden behind an interface, shaping a component hierarchy, typical of architectural description. In PiLar, a component definition has four parts, none of them strictly mandatory: interfaces, configurations, reifications and constraints. The latter two are described in sections 4 and 5; the other two are summarized below. An interface is a logically coherent aggregation of ports, which are in turn defined as the component s interaction points, expressing both services and requirements. When just the interfaces are specified, we have a primitive component.a configuration defines a composite component. It consists of a set of component instances, interacting through bindings or attachments, defining a complete subsystem. There are four kinds of instance declarations in PiLar, namely typed instances, arrays of instances, parameterized components and reified types. The first is the most basic case: it defines a single instance of an archtype. The second is the usual array declaration of an indexed set of instances. Parameterized components support for the definition of generic abstractions. Finally, reified types refers to the use of types as instances in the meta-level, as we explain later (see section 4). On the other side, there are three kinds of bindings in PiLar, namely links, and hierarchic and typed bindings. They are very closely related. Links are simply attachments, describing a direct connection between two ports at the same level. Hierarchic bindings are nearly identical: but they connect ports in different levels, thus exporting them. Typed bindings are meant to provide complex connections. Their types are declared just like primitive components. They have an explicit name, and are declared with an argument: the set of ports to connect. Combined with reification, they acquire a great expressive power and, as explained in [7], can also be considered as meta-level connectors. We won t focus on this in this paper, but anyway the specification of section 6 includes a simple example. The language, like other Adls [10], has also support for conditional and iterative constructs; and it allows even recursive component definitions. 4 Reification Reification is the only reflective notion we need to introduce in the language, as stated in section 2. It s a structural concept, but it s also important for dynamism, as it defines how constraints will be combined.

4 144 C.E. Cuesta et al. In PiLar, like in Marmol, reification expresses a bidirectional relationship: it can be seen as a link between an avatar (base-component) and a meta-component. Using it, a meta-component has access to the internal details of the avatar it reflects in; an avatar abstractions are reified as meta-components. Reification is a many-to-many relationship: a meta-component can reflect in many avatars; an avatar can be reified by many meta-components. There are two kinds of components in a meta-level: those which directly reflect in an avatar (meta-components) and those which don t (meta-level components). A meta-level component interacts with meta-components at its level; thus it can affect also the behaviour of avatars [7]. Reification in PiLar can be either explicit or implicit. Explicit reification uses a specific syntax, namely a \reify construct; this can be found in a structural definition, composing the section for reifications, but also within dynamic constraints. The link can receive a name, hence making it possible to dynamically modify it later. Implicit reification simply consists of usual declarations: when an instance C of an archtype T is created, not only a component C, but also a meta-component T is declared. Hence, every declared archtype can be used anytime as a meta-component. Apart from that, implicit and explicit reification have exactly the same meaning. Combined with primitives of the Dynamic Language, this provides the language with a great power. Given that meta-components have access to internal details of avatars, dynamism, as many other interesting abstractions, is easily expressed. 5 Dynamic Language Behaviour in PiLar is provided by a number of rules, scattered throughout component definitions in the \constraint section. They are then bound to an already defined structural skeleton, where they ensure properties and react to situations. A process algebraic syntax is a natural choice [1,3,4] for the Dynamic Language. Control constructs are then directly inspired by those of CCS [11], which is consistent with our π-calculus semantics, but easier to use. There are two notations for PiLar. The first one is purely algebraic, and is compact but complex. The second resembles a programming language, and is more readable. We only use the latter in this paper. A constraint consists on one or several rule definitions, forming a modular subsystem. The first one defines how they are combined and triggered. They describe how interactions are managed. Definitions may be recursive, and this is a way to express repetition. The other is replication (\bang), which creates a new copy of a finite process each time its first action is triggered. There are two atomic actions: sending (c!(x)) and receiving (c?(x)). The second one waits for a message, and thus is usually used as the guard (triggering event) of a process. Interaction points are ports and internal channels: to access them hierarchically, we use the well-known dot notation (Agent1.rd). Actions are combined by parallel composition, separated by the symbol, or form a sequence, marked by the ; symbol. Parenthesis can be freely used. Control structures are also allowed here, hence we have convenient iterative and conditional constructs. Channels in a constraint are always private, except when they are specifically exported by declaring them as ports in the structural definition. Besides, there is an ex-

5 Coordination in a Reflective Architecture Description Language 145 Table 1. Most important reflective primitives in PiLar Keyword Notation Global Meaning avatar α Reference to the avatar to which the constraint is applied. self γ Reference to the component in which the constraint is defined. avatarset Σα Set of all of the avatars reflected by this meta-component. portset Σπ(a) Set of all the (public) ports in a component a. new ν(a : t) Creates a new avatar a of type t (if specified). del δa Destroys (deletes) an entity a (a reification or an avatar). reify ρn(a : m) Creates a reification N between avatar a and meta-component m. findr φn(a : m) Finds a reification link between avatar a and meta-component m. trusion (\alias) and a hiding (\hide) construct to explicitly expose and restrict names when required. Bindings can be considered as the sharing of channels: when two ports are connected (a=b), data sent in one of them are received in the other, and vice versa. On the other hand, typed bindings are just like any other component definition: given their constraints, they are translated as processes. The basic Dynamic Language is just that: we only need to consider the support for reification, which is provided by means of several reflective primitives. The most interesting among them are summarized in Table 1. We should have in mind that these primitives are declared in an archtype, so they must be considered inside a meta-component, which limits their scope. This means that a meta-component can create or destroy avatars, but only those already under its control. A constraint is enforced by a meta-component and must be obeyed by all of its avatars. It should be read as a rule situated at the meta-level, where avatar is each one of the reflected components. This structure defines a very dynamic framework. A meta-component not only rules, but also creates and destroys avatars. This is true also for reified bindings, thus making possible to link and unlink components. A meta-component can trigger internal changes in response to base (or meta) events, and induce external reactions by communication with other meta-level components. This way, an event in an avatar can affect itself, all components of its kind, or even several components of several kinds. But this is when we deal with just one meta-level: when we consider further levels, even meta-components themselves are subject to change. 5.1 Brief Note about Semantics PiLar semantics conceives an architecture as a set of concurrent processes, communicating by means of named channels, in which each component is a process. We consider that concurrency is both natural and essential in the description of systems. We also believe that, linguistically, the key aspect in an architectural description is the management of names, a global term to include ports, instances, archtypes and links. For this reason, the π-calculus [12] has been the perfect tool to specify PiLar s formal semantics. PiLar s semantics is then given by translation of an architectural description to a π-calculus algebraic specification. There s no space here to comment this translation in detail, but we ll give some overall indications. There is a direct correlation between

6 146 C.E. Cuesta et al. architectural and process-algebraic concepts. Composition and interaction are basic notions in both fiels. Encapsulation is provided by name restriction. Ports are channels, and attachments are created by communication of ports; configurations correspond to topologies, and constraints are obviously translated as process definitions. Finally, we should consider the translation of reification. This is perhaps more complex, but it has been tackled with a standard interposition mechanism. 6 PiLar as a Coordination Language PiLar is meant to be expressive enough to describe even the architecture of Coordination models; then, the example in Fig. 1 has been chosen to show the way it could deal with such a model. Specifically, it describes an architecture simulating the basic TupleSpace paradigm. For the sake of brevity, just the original Linda model [5] is considered: thus we have a single, flat tuplespace and the primitives in, rd, and out. The description could be simpler, but we have designed it to show some significant PiLar features, such as the way reification works and its relevance; the structure of meta-levels; the difference between meta-components and meta-level components, or how a meta-level connector looks like. First, we can see there are five component definitions. Two of these (System, SysTS) are composite components. The other three (Store, Triple, AgTS) are primitive ones: just their interfaces are described. We sketch the intended meanings for these below. Store. Describes an interface to an ideal data store; for example, a database system. It receives requests for storing, deleting and locating some information. AgTS. The archtype of any agent inside a tuplespace. The three ports have the usual meaning of the corresponding Linda primitives. Triple. Defines a three-tier connection, which receives a query at res, looks for an answer through get, and provides it through both res and dele. The starting point to deduce the structure is the \base-level: tag. It states which components are in the base level, which is the lowest one in the hierarchy. In the Figure, this level consists of System, which is in turn a composite of Agent1 and Agent2, instances of AgTS. The composite is extremely simple: no ports are exported, no bindings are made; both agents are just standing there. But their archtype AgTS is also a meta-component. Even more, it is an active metaentity, as it uses the self keyword. There are then two components in the base level, reified by one component in the meta-level. All of them have three ports, which are completely unrelated. However, we are interested in this particular case in having these ports connected, so constraits are used to impose this. The four rules state that AgTS captures every message in every avatar, and sends it through its own ports. It is obvious then that AgTS interacts with other components in the meta-level. Looking at our other composite (SysTS) we can see the configuration contains an instance named AgTS. That s the archtype used as a (meta-level) component, what we termed a reified type in section 3. Thus, the composite SysTS is a meta-level component, as it contains AgTS, which is a meta-component.

7 Coordination in a Reflective Architecture Description Language 147 Fig. 1. TupleSpace Model: a PiLar example specification In fact, it is the whole meta-level, and it consists of two components: AgTS itself and a store, DB. Two of their ports are simply linked, while others are engaged in a threetier binding L1 of type Triple. We have enough information to deduce the outcoming behaviour: tuples sent in out are inserted in the store, rd receives a query (anti-tuple) and returns the result, and in does the same, but erasing the used (read) tuple from the store. The whole system s behaviour is then already described. Thinking about Triple, we can see it is actually a meta-meta-level component, reifying binding L1. But the constraint just uses avatar names, so it s not really an active metaentity. Anyway, it serves as a meta-level connector, enforcing a certain communication protocol. This is a very simple exhibit; a dynamic variant could make use of other meta-meta-level entities, as desired. To sum up, the system has three levels. The base level consists of a composite module System of two agents, Agent1 and Agent2 of type AgTS, which don t know each other. The meta-level consists of a composite SysTS of two components, a store DB of type Store and the reified type AgTS. The former is a meta-level component, while the latter is a meta-component for the agents; and they are connected by two links and a typed binding of type Triple. Finally, the meta-meta-level contains the two remaining types: Store and Triple. Both are inactive, so they can be safely ignored. With this example, our main purpose was to show the use of the language and how a coordination model can be described with it. The key point is that the behaviour of agents and their coordination remain separated, at different levels in the architecture.

8 148 C.E. Cuesta et al. 7 Conclusions and Future Work In [7], we compare the reflective model of Marmol with existing work in Coordination and Dynamic Architecture, and show the relationship between them in general terms. Future work on PiLar includes a detailed comparison of the different approaches, with much more detail and from a linguistic point of view. The combination of Architecture and Reflection is a recent idea [6,7] and its consequences have still to be explored. The example in this paper just give a taste of PiLar s flexibility. The concept of metacomponent makes possible to cope with many architectural abstractions in a common framework. Our notion of reification can be compared to a form of control-driven coordination, specially when considering concurrent semantics. Because of this, a detailed comparison with control-driven models such as IWIM [2] is being carried out. The development of PiLar continues. The formal definition of its semantics into the untyped π-calculus is almost finished; the work on Turner s polymorphic π-calculus, which would provide it with a consistent type system, has already begun. The language might seem complex, but actually it isn t more difficult to use than Wright or Rapide. Reification appears just when it s strictly required, and in turn it offers an useful tool for the description and comparison of different dynamic Adls. References 1. Robert Allen. A Formal Approach to Software Architecture. PhD thesis, School of Computer Science, Carnegie Mellon University, May Technical report CMU-CS Farhad Arbab. The IWIM Model for Coordination of Concurrent Activities. In Paolo Ciancarini and Chris Hankin, editors, Coordination Languages and Models, volume 1061 of Lecture Notes in Computer Science, pages 24 56, Cesena, Italia, April Springer Verlag. 3. Marco Bernardo, Paolo Ciancarini, and Lorenzo Donatiello. Detecting Architectural Mismatches in Process Algebraic Descriptions of Software Systems. In Second Working IEEE/IFIP Conference on Software Architecture, August IEEE Press. 4. Carlos Canal, Ernesto Pimentel, and José María Troya. Specification and Refinement of Dynamic Software Architectures. In Software Architecture, pages Kluwer, Nicholas Carriero and David Gelernter. How to Write Parallel Programs: a Guide to the Perplexed. ACM Computing Surveys, 21(3): , Walter Cazzola, Andrea Savigni, Andrea Sosio, and Francesco Tisato. Architectural Reflection: Bridging the Gap Between a Running System and its Architectural Specification. In 6th Reengineering Forum (REF 98), pages IEEE, March Carlos E. Cuesta, Pablo de la Fuente, Manuel Barrio-Solórzano, and Encarnación Beato. Dynamic Coordination Architecture through the use of Reflection. In 16th ACM Symposium on Applied Computing (SAC2001), pages , March ACM Press. 8. David C. Luckham and James Vera. An Event-Based Architecture Definition Language. IEEE Transactions on Software Engineering, 21(9): , September Pattie Maes. Concepts and Experiments in Computational Reflection. In Norman Meyrowitz, editor, OOPSLA 87 Conference Proceedings, pages ACM Press, December Jeff Magee and Jeff Kramer. Dynamic Structure in Software Architectures. Software Engineering Notes, 21(6):3 14, November Robin Milner. Communication and Concurrency. Prentice-Hall, Robin Milner. Communicating and Mobile Systems: the Pi-Calculus. CUP, June 1999.

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

CSCI-GA Scripting Languages

CSCI-GA Scripting Languages CSCI-GA.3033.003 Scripting Languages 12/02/2013 OCaml 1 Acknowledgement The material on these slides is based on notes provided by Dexter Kozen. 2 About OCaml A functional programming language All computation

More information

Meta Architecting: Towered a New Generation of Architecture Description Languages

Meta Architecting: Towered a New Generation of Architecture Description Languages Journal of Computer Science 1 (4): 454-460, 2005 ISSN 1549-3636 Science Publications, 2005 Meta Architecting: Towered a New Generation of Architecture Description Languages Adel Smeda, Tahar Khammaci and

More information

Observable Behaviour Observable behaviour can be defined in terms of experimentation.

Observable Behaviour Observable behaviour can be defined in terms of experimentation. Observable Behaviour Observable behaviour can be defined in terms of experimentation. Consider a coffee machine. We don t need to understand and don t what to understand how the coffee machine works. All

More information

RAMSES: a Reflective Middleware for Software Evolution

RAMSES: a Reflective Middleware for Software Evolution RAMSES: a Reflective Middleware for Software Evolution Walter Cazzola 1, Ahmed Ghoneim 2, and Gunter Saake 2 1 Department of Informatics and Communication, Università degli Studi di Milano, Italy cazzola@dico.unimi.it

More information

Configuration Management for Component-based Systems

Configuration Management for Component-based Systems Configuration Management for Component-based Systems Magnus Larsson Ivica Crnkovic Development and Research Department of Computer Science ABB Automation Products AB Mälardalen University 721 59 Västerås,

More information

Capturing Design Expertise in Customized Software Architecture Design Environments

Capturing Design Expertise in Customized Software Architecture Design Environments Capturing Design Expertise in Customized Software Architecture Design Environments Robert T. Monroe School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213 Abstract: Software architecture

More information

Modeling Systems Using Design Patterns

Modeling Systems Using Design Patterns Modeling Systems Using Design Patterns Jaroslav JAKUBÍK Slovak University of Technology Faculty of Informatics and Information Technologies Ilkovičova 3, 842 16 Bratislava, Slovakia jakubik@fiit.stuba.sk

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

Using a waiting protocol to separate concerns in the mutual exclusion problem

Using a waiting protocol to separate concerns in the mutual exclusion problem Using a waiting protocol to separate concerns in the mutual exclusion problem Frode V. Fjeld frodef@cs.uit.no Department of Computer Science, University of Tromsø Technical Report 2003-46 November 21,

More information

Modeling, Testing and Executing Reo Connectors with the. Reo, Eclipse Coordination Tools

Modeling, Testing and Executing Reo Connectors with the. Reo, Eclipse Coordination Tools Replace this file with prentcsmacro.sty for your meeting, or with entcsmacro.sty for your meeting. Both can be found at the ENTCS Macro Home Page. Modeling, Testing and Executing Reo Connectors with the

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 2, July-August 2002 The Theory of Classification Part 2: The Scratch-Built

More information

SUMMARY: MODEL DRIVEN SECURITY

SUMMARY: MODEL DRIVEN SECURITY SUMMARY: MODEL DRIVEN SECURITY JAN-FILIP ZAGALAK, JZAGALAK@STUDENT.ETHZ.CH Model Driven Security: From UML Models to Access Control Infrastructres David Basin, Juergen Doser, ETH Zuerich Torsten lodderstedt,

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

1. Write two major differences between Object-oriented programming and procedural programming?

1. Write two major differences between Object-oriented programming and procedural programming? 1. Write two major differences between Object-oriented programming and procedural programming? A procedural program is written as a list of instructions, telling the computer, step-by-step, what to do:

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

UML-Based Conceptual Modeling of Pattern-Bases

UML-Based Conceptual Modeling of Pattern-Bases UML-Based Conceptual Modeling of Pattern-Bases Stefano Rizzi DEIS - University of Bologna Viale Risorgimento, 2 40136 Bologna - Italy srizzi@deis.unibo.it Abstract. The concept of pattern, meant as an

More information

Structure of Abstract Syntax trees for Colored Nets in PNML

Structure of Abstract Syntax trees for Colored Nets in PNML Structure of Abstract Syntax trees for Colored Nets in PNML F. Kordon & L. Petrucci Fabrice.Kordon@lip6.fr Laure.Petrucci@lipn.univ-paris13.fr version 0.2 (draft) June 26, 2004 Abstract Formalising the

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

Dynamic Software Evolution and The K-Component Model

Dynamic Software Evolution and The K-Component Model Dynamic Software Evolution and The K- Model Jim Dowling and Vinny Cahill Distributed Systems Group Department of Computer Science Trinity College Dublin Jim.Dowling@cs.tcd.ie, Vinny.Cahill@cs.tcd.ie Abstract.

More information

Open Reuse of Component Designs in OPM/Web

Open Reuse of Component Designs in OPM/Web Open Reuse of Component Designs in OPM/Web Iris Reinhartz-Berger Technion - Israel Institute of Technology ieiris@tx.technion.ac.il Dov Dori Technion - Israel Institute of Technology dori@ie.technion.ac.il

More information

Sub- PPL Unit-I Class-SE Comp

Sub- PPL Unit-I Class-SE Comp 1. We describe the basic concepts for structuring large programs (encapsulation, interfaces, information hiding) and the mechanisms provided by languages to support it (packaging, separate compilation).

More information

Reuse Software Architecture through Dynamic Composition

Reuse Software Architecture through Dynamic Composition Reuse Software Architecture through Dynamic Composition Liang ZaoQing', Ying Shi'^ Cao Rongzeng^ Jia XiangYang^ and Zhang Tao' 1 State Key Lab of Software Engineer, Wuhan University, Wuhan,430072, P.R.

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

Towards Reusable Heterogeneous Data-Centric Disentangled Parts

Towards Reusable Heterogeneous Data-Centric Disentangled Parts Towards Reusable Heterogeneous Data-Centric Disentangled Parts Michael Reinsch and Takuo Watanabe Department of Computer Science, Graduate School of Information Science and Technology, Tokyo Institute

More information

Real-Time Coordination in Distributed Multimedia Systems

Real-Time Coordination in Distributed Multimedia Systems Real-Time Coordination in Distributed Multimedia Systems Theophilos A. Limniotes and George A. Papadopoulos Department of Computer Science University of Cyprus 75 Kallipoleos Str, P.O.B. 20537 CY-1678

More information

6.001 Notes: Section 1.1

6.001 Notes: Section 1.1 6.001 Notes: Section 1.1 Slide 1.1.1 This first thing we need to do is discuss the focus of 6.001. What is this course all about? This seems quite obvious -- this is a course about computer science. But

More information

Functional Programming Language Haskell

Functional Programming Language Haskell Functional Programming Language Haskell Mohammed Aslam CIS 24 Prof. Kopec Presentation: 03 Date: 05/05/2003 Haskell is a general purpose, purely functional programming language named after the logician

More information

Handout 10: Imperative programs and the Lambda Calculus

Handout 10: Imperative programs and the Lambda Calculus 06-02552 Princ of Progr Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 10: Imperative programs and the Lambda Calculus

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

RAISE in Perspective

RAISE in Perspective RAISE in Perspective Klaus Havelund NASA s Jet Propulsion Laboratory, Pasadena, USA Klaus.Havelund@jpl.nasa.gov 1 The Contribution of RAISE The RAISE [6] Specification Language, RSL, originated as a development

More information

Rule Formats for Nominal Modal Transition Systems

Rule Formats for Nominal Modal Transition Systems Rule Formats for Nominal Modal Transition Systems Anke Stüber Universitet Uppsala, Uppsala, Sweden anke.stuber@it.uu.se Abstract. Modal transition systems are specification languages that allow the expression

More information

Introduction. chapter Functions

Introduction. chapter Functions chapter 1 Introduction In this chapter we set the stage for the rest of the book. We start by reviewing the notion of a function, then introduce the concept of functional programming, summarise the main

More information

COP4020 Programming Languages. Functional Programming Prof. Robert van Engelen

COP4020 Programming Languages. Functional Programming Prof. Robert van Engelen COP4020 Programming Languages Functional Programming Prof. Robert van Engelen Overview What is functional programming? Historical origins of functional programming Functional programming today Concepts

More information

Spemmet - A Tool for Modeling Software Processes with SPEM

Spemmet - A Tool for Modeling Software Processes with SPEM Spemmet - A Tool for Modeling Software Processes with SPEM Tuomas Mäkilä tuomas.makila@it.utu.fi Antero Järvi antero.jarvi@it.utu.fi Abstract: The software development process has many unique attributes

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

Coursework Master s Thesis Proposal

Coursework Master s Thesis Proposal Coursework Master s Thesis Proposal December 1999 University of South Australia School of Computer and Information Science Student: David Benn (9809422R) Supervisor: Dan Corbett Introduction Sowa s [1984]

More information

Substitution in Structural Operational Semantics and value-passing process calculi

Substitution in Structural Operational Semantics and value-passing process calculi Substitution in Structural Operational Semantics and value-passing process calculi Sam Staton Computer Laboratory University of Cambridge Abstract Consider a process calculus that allows agents to communicate

More information

6.001 Notes: Section 6.1

6.001 Notes: Section 6.1 6.001 Notes: Section 6.1 Slide 6.1.1 When we first starting talking about Scheme expressions, you may recall we said that (almost) every Scheme expression had three components, a syntax (legal ways of

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

Executing Evaluations over Semantic Technologies using the SEALS Platform

Executing Evaluations over Semantic Technologies using the SEALS Platform Executing Evaluations over Semantic Technologies using the SEALS Platform Miguel Esteban-Gutiérrez, Raúl García-Castro, Asunción Gómez-Pérez Ontology Engineering Group, Departamento de Inteligencia Artificial.

More information

From Craft to Science: Rules for Software Design -- Part II

From Craft to Science: Rules for Software Design -- Part II From Craft to Science: Rules for Software Design -- Part II by Koni Buhrer Software Engineering Specialist Rational Software Developing large software systems is notoriously difficult and unpredictable.

More information

Analysis and Design with the Universal Design Pattern

Analysis and Design with the Universal Design Pattern Analysis and Design with the Universal Design Pattern by Koni Buhrer Software Engineering Specialist Rational Software Developing large software systems is notoriously difficult and unpredictable. Software

More information

Goals of the BPEL4WS Specification

Goals of the BPEL4WS Specification Goals of the BPEL4WS Specification Frank Leymann, Dieter Roller, and Satish Thatte This note aims to set forward the goals and principals that formed the basis for the work of the original authors of the

More information

Function Symbols in Tuple-Generating Dependencies: Expressive Power and Computability

Function Symbols in Tuple-Generating Dependencies: Expressive Power and Computability Function Symbols in Tuple-Generating Dependencies: Expressive Power and Computability Georg Gottlob 1,2, Reinhard Pichler 1, and Emanuel Sallinger 2 1 TU Wien and 2 University of Oxford Tuple-generating

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

An Agent Modeling Language Implementing Protocols through Capabilities

An Agent Modeling Language Implementing Protocols through Capabilities An Agent Modeling Language Implementing Protocols through Capabilities Nikolaos Spanoudakis 1,2 1 Technical University of Crete, Greece nikos@science.tuc.gr Pavlos Moraitis 2 2 Paris Descartes University,

More information

CLF: A logical framework for concurrent systems

CLF: A logical framework for concurrent systems CLF: A logical framework for concurrent systems Thesis Proposal Kevin Watkins Carnegie Mellon University Committee: Frank Pfenning, CMU (Chair) Stephen Brookes, CMU Robert Harper, CMU Gordon Plotkin, University

More information

Extracting the Range of cps from Affine Typing

Extracting the Range of cps from Affine Typing Extracting the Range of cps from Affine Typing Extended Abstract Josh Berdine, Peter W. O Hearn Queen Mary, University of London {berdine, ohearn}@dcs.qmul.ac.uk Hayo Thielecke The University of Birmingham

More information

How to Exploit Abstract User Interfaces in MARIA

How to Exploit Abstract User Interfaces in MARIA How to Exploit Abstract User Interfaces in MARIA Fabio Paternò, Carmen Santoro, Lucio Davide Spano CNR-ISTI, HIIS Laboratory Via Moruzzi 1, 56124 Pisa, Italy {fabio.paterno, carmen.santoro, lucio.davide.spano}@isti.cnr.it

More information

The goal of the Pangaea project, as we stated it in the introduction, was to show that

The goal of the Pangaea project, as we stated it in the introduction, was to show that Chapter 5 Conclusions This chapter serves two purposes. We will summarize and critically evaluate the achievements of the Pangaea project in section 5.1. Based on this, we will then open up our perspective

More information

MMT Objects. Florian Rabe. Computer Science, Jacobs University, Bremen, Germany

MMT Objects. Florian Rabe. Computer Science, Jacobs University, Bremen, Germany MMT Objects Florian Rabe Computer Science, Jacobs University, Bremen, Germany Abstract Mmt is a mathematical knowledge representation language, whose object layer is strongly inspired by OpenMath. In fact,

More information

(Refer Slide Time: 4:00)

(Refer Slide Time: 4:00) Principles of Programming Languages Dr. S. Arun Kumar Department of Computer Science & Engineering Indian Institute of Technology, Delhi Lecture - 38 Meanings Let us look at abstracts namely functional

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 15: Refining Analysis Relationships Department of Computer Engineering Sharif University of Technology 1 Refining Analysis Relationships Relationships in analysis are converted

More information

Programmazione Avanzata e Paradigmi Ingegneria e Scienze Informatiche - UNIBO a.a 2013/2014 Lecturer: Alessandro Ricci

Programmazione Avanzata e Paradigmi Ingegneria e Scienze Informatiche - UNIBO a.a 2013/2014 Lecturer: Alessandro Ricci v1.0 20140421 Programmazione Avanzata e Paradigmi Ingegneria e Scienze Informatiche - UNIBO a.a 2013/2014 Lecturer: Alessandro Ricci [module 3.1] ELEMENTS OF CONCURRENT PROGRAM DESIGN 1 STEPS IN DESIGN

More information

Lecture Notes on Data Representation

Lecture Notes on Data Representation Lecture Notes on Data Representation 15-814: Types and Programming Languages Frank Pfenning Lecture 9 Tuesday, October 2, 2018 1 Introduction In this lecture we ll see our type system in action. In particular

More information

Semantics via Syntax. f (4) = if define f (x) =2 x + 55.

Semantics via Syntax. f (4) = if define f (x) =2 x + 55. 1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)

More information

Lecture Notes on Programming Languages

Lecture Notes on Programming Languages Lecture Notes on Programming Languages 85 Lecture 09: Support for Object-Oriented Programming This lecture discusses how programming languages support object-oriented programming. Topics to be covered

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

Automatic Reconstruction of the Underlying Interaction Design of Web Applications

Automatic Reconstruction of the Underlying Interaction Design of Web Applications Automatic Reconstruction of the Underlying Interaction Design of Web Applications L.Paganelli, F.Paternò C.N.R., Pisa Via G.Moruzzi 1 {laila.paganelli, fabio.paterno}@cnuce.cnr.it ABSTRACT In this paper

More information

Software Design and Analysis for Engineers

Software Design and Analysis for Engineers Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 1 Date:

More information

SoberIT Software Business and Engineering Institute. SoberIT Software Business and Engineering Institute. Contents

SoberIT Software Business and Engineering Institute. SoberIT Software Business and Engineering Institute. Contents Architecture Description Languages (ADLs): Introduction, Koala, UML as an ADL T-76.150 Software Architecture Timo Asikainen Contents Brief motivation for ADLs General features of ADLs Koala UML as an ADL

More information

Configuration management for Lyee software

Configuration management for Lyee software Knowledge-Based Systems 16 (2003) 441 447 www.elsevier.com/locate/knosys Configuration management for Lyee software V. Gruhn*, R. Ijioui, D. Peters, C. Schäfer Faculty of Mathematics and Computer Science,

More information

Multi-Paradigm Approach for Teaching Programming

Multi-Paradigm Approach for Teaching Programming Multi-Paradigm Approach for Teaching Laxmi P Gewali* and John T Minor School of Computer Science University of Nevada, Las Vegas 4505 Maryland Parkway, Las Vegas Nevada 89154 Abstract: Selecting an appropriate

More information

Polymorphic Types in ACL2

Polymorphic Types in ACL2 Polymorphic Types in ACL2 Benjamin Selfridge University of Texas at Austin Austin, TX benself@cs.utexas.edu Eric Smith Kestrel Institute Palo Alto, CA eric.smith@kestrel.edu This paper describes a tool

More information

Capturing Product Line Architectures

Capturing Product Line Architectures Capturing Product Line Architectures André van der Hoek Institute for Software Research Department of Information and Computer Science University of California, Irvine Irvine, CA 92697-3425 USA andre@ics.uci.edu

More information

PerlDSM: A Distributed Shared Memory System for Perl

PerlDSM: A Distributed Shared Memory System for Perl PerlDSM: A Distributed Shared Memory System for Perl Norman Matloff University of California, Davis matloff@cs.ucdavis.edu Abstract A suite of Perl utilities is presented for enabling Perl language programming

More information

RAQUEL s Relational Operators

RAQUEL s Relational Operators Contents RAQUEL s Relational Operators Introduction 2 General Principles 2 Operator Parameters 3 Ordinary & High-Level Operators 3 Operator Valency 4 Default Tuples 5 The Relational Algebra Operators in

More information

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process

More information

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach

Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach Developing Software Applications Using Middleware Infrastructure: Role Based and Coordination Component Framework Approach Ninat Wanapan and Somnuk Keretho Department of Computer Engineering, Kasetsart

More information

Substructural Typestates

Substructural Typestates Programming Languages meets Program Verification 2014 Substructural Typestates Filipe Militão (CMU & UNL) Jonathan Aldrich (CMU) Luís Caires (UNL) Motivation! File file = new File( out.txt );! file.write(

More information

Course on Probabilistic Methods in Concurrency. (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1

Course on Probabilistic Methods in Concurrency. (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1 Course on Probabilistic Methods in Concurrency (Concurrent Languages for Probabilistic Asynchronous Communication) Lecture 1 The pi-calculus and the asynchronous pi-calculus. Catuscia Palamidessi INRIA

More information

Functional Programming. Big Picture. Design of Programming Languages

Functional Programming. Big Picture. Design of Programming Languages Functional Programming Big Picture What we ve learned so far: Imperative Programming Languages Variables, binding, scoping, reference environment, etc What s next: Functional Programming Languages Semantics

More information

Coordinating Open Distributed Systems

Coordinating Open Distributed Systems Coordinating Open Distributed Systems Juan Carlos Cruz 1, Stephane Ducasse University of Bern 2, Switzerland Abstract. Open Distributed Systems are the dominatingintellectual issue of the end of this century.

More information

Inheritance and Overloading in Agda

Inheritance and Overloading in Agda Inheritance and Overloading in Agda Paolo Capriotti 3 June 2013 Abstract One of the challenges of the formalization of mathematics in a proof assistant is defining things in such a way that the syntax

More information

Handout 9: Imperative Programs and State

Handout 9: Imperative Programs and State 06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative

More information

AADL Graphical Editor Design

AADL Graphical Editor Design AADL Graphical Editor Design Peter Feiler Software Engineering Institute phf@sei.cmu.edu Introduction An AADL specification is a set of component type and implementation declarations. They are organized

More information

A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN

A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN A STUDY OF OBJECT ORIENTED ANALYSIS AND DESIGN GARJE RAKESH RAMESHRAO RESEARCH SCHOLAR, DEPT. OF COMPUTER SCIENCE CMJ UNIVERSITY, SHILLONG, MEGHALAYA INTRODUCTION Object-oriented Analysis and Design is

More information

Comparative Analysis of Architectural Views Based on UML

Comparative Analysis of Architectural Views Based on UML Electronic Notes in Theoretical Computer Science 65 No. 4 (2002) URL: http://www.elsevier.nl/locate/entcs/volume65.html 12 pages Comparative Analysis of Architectural Views Based on UML Lyrene Fernandes

More information

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas What is this class about? While this class is called Design Patterns, there are many other items of critical

More information

Lecture Notes on Program Equivalence

Lecture Notes on Program Equivalence Lecture Notes on Program Equivalence 15-312: Foundations of Programming Languages Frank Pfenning Lecture 24 November 30, 2004 When are two programs equal? Without much reflection one might say that two

More information

Höllische Programmiersprachen Hauptseminar im Wintersemester 2014/2015 Determinism and reliability in the context of parallel programming

Höllische Programmiersprachen Hauptseminar im Wintersemester 2014/2015 Determinism and reliability in the context of parallel programming Höllische Programmiersprachen Hauptseminar im Wintersemester 2014/2015 Determinism and reliability in the context of parallel programming Raphael Arias Technische Universität München 19.1.2015 Abstract

More information

Capturing and Formalizing SAF Availability Management Framework Configuration Requirements

Capturing and Formalizing SAF Availability Management Framework Configuration Requirements Capturing and Formalizing SAF Availability Management Framework Configuration Requirements A. Gherbi, P. Salehi, F. Khendek and A. Hamou-Lhadj Electrical and Computer Engineering, Concordia University,

More information

Object Oriented Issues in VDM++

Object Oriented Issues in VDM++ Object Oriented Issues in VDM++ Nick Battle, Fujitsu UK (nick.battle@uk.fujitsu.com) Background VDMJ implemented VDM-SL first (started late 2007) Formally defined. Very few semantic problems VDM++ support

More information

Constraints in Feature Algebra

Constraints in Feature Algebra Constraints in Feature Algebra Andreas Zelend Institut für Informatik, Universität Augsburg, Germany zelend@informatik.uni-augsburg.de Abstract. Feature Algebra captures the commonalities of feature oriented

More information

Conceptual Model for a Software Maintenance Environment

Conceptual Model for a Software Maintenance Environment Conceptual Model for a Software Environment Miriam. A. M. Capretz Software Engineering Lab School of Computer Science & Engineering University of Aizu Aizu-Wakamatsu City Fukushima, 965-80 Japan phone:

More information

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements.

Contemporary Design. Traditional Hardware Design. Traditional Hardware Design. HDL Based Hardware Design User Inputs. Requirements. Contemporary Design We have been talking about design process Let s now take next steps into examining in some detail Increasing complexities of contemporary systems Demand the use of increasingly powerful

More information

Control Flow Analysis with SAT Solvers

Control Flow Analysis with SAT Solvers Control Flow Analysis with SAT Solvers Steven Lyde, Matthew Might University of Utah, Salt Lake City, Utah, USA Abstract. Control flow analyses statically determine the control flow of programs. This is

More information

Software Paradigms (Lesson 3) Object-Oriented Paradigm (2)

Software Paradigms (Lesson 3) Object-Oriented Paradigm (2) Software Paradigms (Lesson 3) Object-Oriented Paradigm (2) Table of Contents 1 Reusing Classes... 2 1.1 Composition... 2 1.2 Inheritance... 4 1.2.1 Extending Classes... 5 1.2.2 Method Overriding... 7 1.2.3

More information

What are the characteristics of Object Oriented programming language?

What are the characteristics of Object Oriented programming language? What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is

More information

INCREMENTAL SOFTWARE CONSTRUCTION WITH REFINEMENT DIAGRAMS

INCREMENTAL SOFTWARE CONSTRUCTION WITH REFINEMENT DIAGRAMS INCREMENTAL SOFTWARE CONSTRUCTION WITH REFINEMENT DIAGRAMS Ralph-Johan Back Abo Akademi University July 6, 2006 Home page: www.abo.fi/~backrj Research / Current research / Incremental Software Construction

More information

Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming

Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming Written Presentation: JoCaml, a Language for Concurrent Distributed and Mobile Programming Nicolas Bettenburg 1 Universitaet des Saarlandes, D-66041 Saarbruecken, nicbet@studcs.uni-sb.de Abstract. As traditional

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

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

Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs

Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs Teaching Encapsulation and Modularity in Object-Oriented Languages with Access Graphs Gilles Ardourel, Marianne Huchard To cite this version: Gilles Ardourel, Marianne Huchard. Teaching Encapsulation and

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

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

Towards a Semantic Web Modeling Language

Towards a Semantic Web Modeling Language Towards a Semantic Web Modeling Language Draft Christoph Wernhard Persist AG Rheinstr. 7c 14513 Teltow Tel: 03328/3477-0 wernhard@persistag.com May 25, 2000 1 Introduction The Semantic Web [2] requires

More information

Generic and Domain Specific Ontology Collaboration Analysis

Generic and Domain Specific Ontology Collaboration Analysis Generic and Domain Specific Ontology Collaboration Analysis Frantisek Hunka, Steven J.H. van Kervel 2, Jiri Matula University of Ostrava, Ostrava, Czech Republic, {frantisek.hunka, jiri.matula}@osu.cz

More information

An Efficient Staging Algorithm for Binding-Time Analysis

An Efficient Staging Algorithm for Binding-Time Analysis An Efficient Staging Algorithm for Binding-Time Analysis Takuma Murakami 1, Zhenjiang Hu 1,2, Kazuhiko Kakehi 1, and Masato Takeichi 1 1 Department of Mathematical Informatics, Graduate School of Information

More information