Coordination in a Reflective Architecture Description Language
|
|
- Piers Mosley
- 5 years ago
- Views:
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 Torsten Nelson, Donald Cowan, Paulo Alencar Computer Systems Group, University of Waterloo {torsten,dcowan,alencar}@csg.uwaterloo.ca Abstract This
More informationCSCI-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 informationMeta 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 informationObservable 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 informationRAMSES: 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 informationConfiguration 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 informationCapturing 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 informationModeling 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 informationAOSA - 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 informationUsing 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 informationModeling, 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 informationJOURNAL 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 informationSUMMARY: 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 informationImperative 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 information1. 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 informationJoint 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 informationUML-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 informationStructure 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 information40 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 informationDynamic 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 informationOpen 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 informationSub- 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 informationReuse 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 information1: 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 informationTowards 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 informationReal-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 information6.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 informationFunctional 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 informationHandout 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 informationIncompatibility 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 informationRAISE 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 informationRule 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 informationIntroduction. 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 informationCOP4020 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 informationSpemmet - 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 information6.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 informationCoursework 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 informationSubstitution 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 information6.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 informationNOTES 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 informationExecuting 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 informationFrom 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 informationAnalysis 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 informationGoals 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 informationFunction 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 informationA 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 informationAn 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 informationCLF: 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 informationExtracting 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 informationHow 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 informationThe 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 informationMMT 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)
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 informationObject-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 informationProgrammazione 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 informationLecture 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 informationSemantics 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 informationLecture 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 informationObject-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 informationAutomatic 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 informationSoftware 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 informationSoberIT 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 informationConfiguration 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 informationMulti-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 informationPolymorphic 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 informationCapturing 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 informationPerlDSM: 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 informationRAQUEL 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 information5/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 informationDeveloping 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 informationSubstructural 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 informationCourse 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 informationFunctional 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 informationCoordinating 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 informationInheritance 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 informationHandout 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 informationAADL 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 informationA 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 informationComparative 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 informationWelcome 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 informationLecture 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 informationHö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 informationCapturing 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 informationObject 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 informationConstraints 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 informationConceptual 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 informationContemporary 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 informationControl 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 informationSoftware 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 informationWhat 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 informationINCREMENTAL 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 informationWritten 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 informationChapter 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 informationA 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 informationTeaching 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 informationModeling 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 informationINCONSISTENT 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 informationTowards 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 informationGeneric 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 informationAn 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