Towards Automated Component Compatibility Assessment

Size: px
Start display at page:

Download "Towards Automated Component Compatibility Assessment"

Transcription

1 Towards Automated Component Compatibility Assessment Přemysl Brada Department of Computer Science and Engineering University of West Bohemia, Pilsen, Czech Republic (This position paper was presented at ECOOP 2001, Workshop on Component-oriented Programming, Budapest, Hungary.) Abstract With the increasing use of software components, the methods for safe replacement of currently used components by newer versions will become of greater importance. While component specification and application composition issues have been researched, working approaches to assess compatibility of different components are hard to find. In this paper we define compatibility at two levels, of which contextual compatibility takes into account the actual usage of the component as bound in an assembled application. The presented method for determining compatibility of two components uses analysis of differences in their specifications structured into traits of related declarations. 1 Introduction In the area of software components [17] a lot of effort has been put into the research of component specifications and their consistent composition [4] including the dynamic case [14, 10]. This lead to the adoption of industry architectures like the CORBA Component Model (CCM [11]), JavaBeans [8], as well as to research systems like SOFA [14]. However, the problem of determining compatibility of components has in our opinion received insufficient attention. Imagine you would like to use a better version of a component instead of the one you currently have. It would be best to just plug it in without writing any adaptation code, especially if you are a non-programmer [16]. Yet such substitution of the component should not affect the correct functioning (the consistency) of the application the better version should be compatible with the current one. This work was supported by the Grant Agency of the Czech Republic, project number 201/99/0244, and by the Research Plan number MSM funded by the Ministry of Education of the Czech Republic. 1

2 There are several definitions of compatibility that can be found in related research. Perry in his work on the Inscape environment [12] defines three levels of compatibility of individual functions among which the strict compatibility is equivalent to subtyping and ensures plug-in substitutability. The DCE environment [13] and more recently the Java binary compatibility specification [7] define the rules for changes in interface description, resp. class implementation that are considered compatible with respect to already existing compiled code. Some production systems ensure the compatibility of software applications with respect to prospective upgrade e.g. the DMI initiative [6] or various Linux packaging systems [5]. Their main disadvantage from our point of view is that they rely on dependency and compatibility descriptions which must be supplied manually and thus may not reflect correctly the real properties of the application implementation. Crnkovic and Larsson [9] define compatibility of black-box components with several levels of relaxation: behaviour compatibility preserves the interface as well as non-functional characteristics of the component, interface compatibility preserves only the functional interface, and input and output compatibility considers just the data which the component exchanges with its environment. However, the authors do not mention any means of determining whether a component satisfies a given level. 1.1 The Approach and Goal of the Paper Checking compatibility of two components can be done dynamically or statically. Dynamic checking means running a suite of compliance tests that will ascertain correct interactions of the replacement component in the place of the current one. It allows a detailed assessment and may be the only option for frameworks with underspecified components (e.g. COM). However it may be hard to automate and relies on high quality test suites; this may pose a problem for production components with short time to market. Static checking uses only the component specification similarly to [18] and the verdict is based on determining whether the specifications of replacement component s features are in the proper inclusion relation to those of the current one. It is fast, accurate, and does not interfere with the (possibly running) applications; however it is feasible only for components with rich specifications. Although neither approach is completely superior, the current trend towards the use of declarative languages in component development [2] makes static checking an attractive option. Also, similarly to Larsson we believe that it would be too constraining to reduce the compatibility issue to a subtyping view. This paper therefore presents the foundations of our approach to static component compatibility checking which takes into account the deployment environment. The next section describes the aspects involved in assessing component compatibility by static checking. Based on a structured view of component specifications, Section 3 defines two compatibility levels, a strict and a relaxed one. Section 4 briefly describes an experimental implementation of this method for automated component assessment in SOFA [14]. 2

3 2 Component Features and Traits When assessing a component for compatibility, we should consider all features it exposes for interaction. The most important aspect to check is their structure, i.e. the syntax of the operational interface used to invoke component functionality (function calls or events) and formats used by data features (which produce/consume data read/written by other subjects). An orthogonal property of the features is their direction. Primarily, each component provides features that its clients can use to interact with it, like COM or CORBA interfaces or event sinks in CCM. On the other hand, the component may require the connection to some features in its environment which its implementation depends on. For example, CORBA and SOFA components can require interfaces (in CCM called receptacles ) through which they can access other components. In addition, the correct use of the features or of the whole component is sometimes defined by semantic constraints. These may e.g. mandate that interface methods be called in a particular order [15], or that operations over the component preserve an invariant property. 2.1 Traits in Component Specification As components are black-box units, the only description of their features available to the users (including application developers) is commonly a specification of the component surface 1. In some systems, notably CORBA and SOFA, the surface specification can provide a fairly detailed information about the structure and semantics of component features. Such specifications can be used as a basis for analysing and comparing component properties. /* The component specification */ frame HTTPClient { provide: HTTP connection; property boolean keepalive; property long timeout; require: ::system::simplesockets sock; protocol: // the semantics (?connection.get {!sock.create?;!sock.write;!sock.read;!sock.destroy? } )* }; /* Suporting declarations. */ interface HTTP { Response GET(URI request); protocol: GET* }; module system { interface SimpleSockets { int create(...); // omitted for brevity protocol: ( create ;... )* }; } Figure 1: Surface specification of a component in SOFA CDL As components are coarse grained and fairly complex entities, these analyses should not provide results only for language constructs at a low level of abstraction e.g. function signatures as in [12, 18]. It is better to approach the 1 We do not use the term interface to avoid mismatch with IDL interfaces. 3

4 comparison using declarations corresponding to the user s view of component features, for example at the level of whole interfaces (in the IDL sense) and data format specifications (e.g. XML DTDs). To this end we use the structuring of the surface specification into declaration aggregates called specification traits [3]. A trait t is a named set of declarations d i which describe a structure or semantics of a particular type of feature in the component surface: t = (name, {d i }). For example, SOFA components have 4 traits: provided interfaces, required interfaces, component properties, and a behaviour description called frame protocol [15] (see Figures 1 and 2). Each trait is further classified into one of three trait categories according to the roles of its declarations: provisions P are traits describing provided features, requirements R describe required features (dependencies), and semantics S are traits specifying component or feature semantic properties. Trait Catecory Contents property P {(boolean, keepalive), (long, timeout)} provides P {(HT T P, connection)} requires R {(:: system :: SimpleSockets, sock)} protocol S {(?connection.get {!sock.create?...})} Figure 2: Trait contents of the HTTPClient component The next section shows how component compatibility can be defined and assessed using feature specification constructs grouped in traits. 3 Compatibility of Components Following the informal definition in the Introduction, a replacement component is compatible with a current component if it satisfies three requirements: present the same operational interface to its environment, be able to read and write the same data (place, format) as the current one (the input-output compatibility in [9]), and conform to the semantics of the current component in all interactions in which it is engaged. It is important to note here that modifications of the provided and required features do not affect compatibility equally. The replacement component s provided features should obviously be at least the same as those of the current one, otherwise its clients will not be able to successfully communicate with it. However, it need not be a problem if the replacement component has different requirements because the environment may be able to satisfy them, i.e. to provide features to which they will be bound. The situation is unlike most programming languages where the type of the replacement object must be a subtype of the current type (a typical example is the assignment of an subclass instance to a variable of a superclass type). 3.1 Compatibility Levels The above observation tells us that the common notion of compatibility may be overly restrictive for the case of a component replacing a current one in 4

5 a particular context. We therefore differentiate two levels of component compatibility. Strict compatibility requires that the replacement component be a subtype of the current one and is warranted by contravariant differences in their specifications. This level should ensure substitution in any context. The relaxed level is termed contextual compatibility because it takes into account two important aspects of the environment in which the current component is deployed the context of the component (see Figure 3): 1. Which of the current component s provided features are actually used by other components in the given application configuration, i.e. bound to other components requirements. For example, a HTTPClient component which provides both HTTP and WebDAV interfaces can be assembled in an application that does not use the WebDAV protocol. 2. Whether the current environment provides all features that the replacement component declares as required, not necessarily considering the requirements of the current component. For example, a new version of the HTTPClient component may require an additional XMLParser interface that is being provided by a current parser component Trait-Based Definitions The differences between the replacement component r and the current one c are represented in their specifications as changes in the corresponding declaration traits t r i and tc i. The changes fall into one of four types, determined by function change(t c i, tr i ): none means tr i = tc i, specialization means an extension of functionality, enriched data format or more stringent semantics, generalization means a reduction of functionality or more relaxed semantics, and mutation means the two traits have incomparable contents basically due to a mixture of specialization and generalization changes in the declared features. The function is parametrized by the comparison algorithm pertinent for the given trait, i.e. suitable for comparing the kind of declarations t i contains. Now we can define the two levels of compatibility in terms of these change types. The replacement component with specification C r = P r R r S r = {t r i } is strictly compatible with the current one C c = P c R c S c = {t c i } if and only if, for α {r, c}, t α i P α : change(t c i, tr i ) {none, specialization} and t α j Rα : change(t c j, tr j ) {none, generalization} and t α k Sα : change(t c k, tr k ) {none, generalization}. The definition corresponds to the natural understanding: the replacement component provides at least the same, requires at most the same, and does not impose new semantic constraints. The contextual compatibility definition needs a description of the component s context (see Figure 3). The subsets of declarations of provided features that are actually bound to (used by) other components constitute a set P c such that t c i P c : t c i t c i. The declarations of features that other components provide and that can satisfy the requirements of the component is denoted R c = { t c j }. The compatibility of semantics needs to take into account only the 5

6 declarations related to the bound provided features; thus we consider a reduced set S c /P c. The context is then a triple Cx = (P c, R c, S c /P c ). BrowserEngine current replaced P' R c c HTTPClient HTTPClient HTTP Simple Sockets timeout keepalive sys Parser BrowserEngine HTTP Simple Sockets WebDAV XMLParser keepalive sys Parser provide require semantics binding Figure 3: Context and Component Substitution The replacement component is contextually compatible with the current one if and only if t r i P r : change(t c i, tr i ) {none, specialization} and t r j Rr : change(t r j, t c j ) {none, specialization} and t c k Sc /P c, t r k Sr /P c : change(t c k, tr k ) {none, generalization}. In plain words, the replacement component provides at least the same features as are used of the current one in the context, requires at most what is available from other components, and its semantics is such that the clients will be able to use it in the same manner as the current one. 4 SOFA Implementation of the Approach Our research in component compatibility is done as part of the SOFA project [14] where it is closely related to the work on component versioning [3]. Compatibility checking involves three steps. First, the context of the current component is determined. To achieve this we use the description of the application s architecture (hierarchical aggregation of sub-components linked via interface bindings). This is read from a static CDL specification at the start and modified during the application lifetime as components are substituted. Traits representing the context are built from the specifications of components referenced in the architecture. In the second step, the change types for the pairs of corresponding traits in the replacement component C r and the context Cx are determined. Since the comparison traverses the declarations of types referenced in the specification, it also considers the changes at lower levels of granularity (e.g. adding a method to a provided interface propagates as specialization to the provides trait). Lastly, the computed differences in provided, required and semantics traits are matched against the above definitions. The result is a conclusion whether and how the better component is compatible with the current one. 6

7 architecture WebBrowser { // sub-components, each has its own architecture inst HTTPClient h; inst BrowserEngine b; inst Parser p; // interface bindings bind h.sock to sys.sockets; bind b.http to h.connection; }; Figure 4: CDL architecture specification of a web browser It can be seen that this method is susceptible to small changes like swapping method parameters or type renaming. The reason for this strictness is our belief that components should be substitutable with as little additional programming as possible (similarly to changing expansion cards in PCs). The concept of connectors [1] can be used for feature adaptations in case of such changes. In addition to the advantages of static checking noted in the Introduction, the presented approach makes it possible to compute the data for compatibility assessment in advance. This enables us to simplify the assessment in the common situation of upgrading a component to a subsequent revision. In this case the changes between the revisions are classified at the developer s site and stored in component meta-data. They can be used to prevent consistencybreaking substitutions at the user s site even if component specifications aren t available. 5 Conclusions and Future Work In this paper we have shown how using declarative specification of black-box components we can assess the chances of their successful substitution. The classification of changes between corresponding declaration traits in the specifications makes it possible to reason about the differences between components at a suitable abstraction level. Perhaps most importantly, it enables us to define and practically evaluate component compatibility with respect to a particular application context. Some of the presented ideas are still work in progress. The SOFA system includes a working tool for change type classification and compatibility assessment. Under development is the support for determining current application architecture and deriving the context. The overall goal is to provide tools that will guide the end-user in application composition and component updates, using the compatibility rules defined in this paper. There is also a lot of theoretical work to be done. One deficiency of our approach is that currently there is no way to determine whether the component actually needs all the required features for example, if the WebDAV interface of the HTTPClient component is not used, no calls will be issued along the XMLParser interface. This should be accounted for in the definition of context and in contextual compatibility assessment. More work is also needed on the compatibility of semantic aspects. This might better be defined in relation to global rules for application consistency and semantics, and some forms of semantic specifications (for example timing 7

8 constraints) may be difficult to compare without additional information. References [1] Balek, D. and Plasil, F.: Software Connectors: A Hierarchical Model. Technical report No. 2000/2, Department of Software Engineering, Charles University, Prague, [2] Boinot, P., et al.: A Declarative Approach for Designing and Developing Adaptive Components. In Proceedings of The 15th IEEE Conference on Automated Software Engineering. IEEE CS Press, September [3] Brada, P.: Component Revision Identification Based on IDL/ADL Component Specification. Accepted for poster presentation at the ESEC/FSE 2001 European Conference on Software Engineering, Vienna, Austria. [4] Christensen, H.B.: Experiences with Architectural Software Configuration Management in Ragnarok. Proceedings of SCM-8 Workshop, ECOOP Springer-Verlag [5] Debian Packaging Manual. Available at [6] Desktop Management Task Force, Inc.: Desktop Management Interface Specification, version 2.0. DMTF 1998 [7] Gosling, J., Joy, B., Steele, G.: Java Language Specification, Chapter 13 (Java Binary Compatibility). Sun Microsystems, 1996 [8] JavaSoft: JavaBeans 1.0 Specification. Available at [9] Larrson, M., Crnkovic, I.: New Challenges for Configuration Management. Proceedings of the SCM-9 workshop, Toulouse, France, September LNCS 1675, Springer-Verlag [10] Mennie, D., Pagurek, B.: An Architecture to Support Dynamic Composition of Service Components. Workshop on Component Programming, ECOOP [11] Object Management Group: CORBA Components, Joint Revised Submission. OMG orbos/ [12] Perry, D. E.: Version Control in the Inscape Environment. Proceedings of ICSE 87, Monterey, CA. [13] Peterson, M. T.: DCE: A Guide to Developing Portable Applications. McGraw-Hill, [14] Plasil, F., Balek, D., Janecek, R.: SOFA/DCUP: Architecture for Component Trading and Dynamic Updating. Proceedings of ICCDS 98, Annapolis, Maryland, USA. IEEE CS Press [15] Plasil, F., Visnovsky, S., Besta, M.: Behavior Protocols and Components. Submitted for publication to IEEE Transactions on Software Engineering 8

9 [16] Stav, E.: Component Based Environments for Non-Programmers: Two Case Studies. Workshop on Component Programming, ECOOP [17] Szyperski, C.: Component Software. ACM Press, Addison-Wesley 1998 [18] Zaremski, A.M. and Wing, J.M.: Specification Matching of Software Components. ACM Transactions on Software Engineering and Methodology, Vol. 6, No. 4, October

Implementation of a data layer for the visualization of component-based applications

Implementation of a data layer for the visualization of component-based applications Implementation of a data layer for the visualization of component-based applications Jaroslav Šnajberk and Přemek Brada Department of Computer Science and Engineering, Faculty of Applied Sciences University

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

Constraint-based Generation of Connectors

Constraint-based Generation of Connectors Constraint-based Generation of Connectors Tomas Bures Charles University, Faculty of Mathematics and Physics, Prague, Czech Republic Abstract. In this paper we discuss the a typical use-case of connector

More information

Enhancing EJB Component Model

Enhancing EJB Component Model Enhancing EJB Component Model Vladimír Mencl, Jiří Adámek, Adam Buble, Petr Hnětynka, Stanislav Višňovský Abstract Component Based Software Development (CBSD) aims to lower software development costs by

More information

Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures

Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures Synthesizing Communication Middleware from Explicit Connectors in Component Based Distributed Architectures Dietmar Schreiner 1,2 and Karl M. Göschka 1 1 Vienna University of Technology Institute of Information

More information

SOFTWARE CONNECTORS AND THEIR ROLE IN COMPONENT DEPLOYMENT

SOFTWARE CONNECTORS AND THEIR ROLE IN COMPONENT DEPLOYMENT . SOFTWARE CONNECTORS AND THEIR ROLE IN COMPONENT DEPLOYMENT Dušan Bálek 1, František Plášil 1,2 1 Charles University, Faculty of Mathematics and Physics, Department of Software Engineering, Malostranské

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

An Approach to Software Component Specification

An Approach to Software Component Specification Page 1 of 5 An Approach to Software Component Specification Jun Han Peninsula School of Computing and Information Technology Monash University, Melbourne, Australia Abstract. Current models for software

More information

Towards a Versioning Model for Component-based Software Assembly

Towards a Versioning Model for Component-based Software Assembly Towards a Versioning Model for Component-based Software Assembly Jaroslav Gergic Charles University, Faculty of Mathematics and Physics Department of Software Engineering Malostranske nam. 25, 118 00 Prague,

More information

Fighting Class Name Clashes in Java Component Systems

Fighting Class Name Clashes in Java Component Systems Fighting Class Name Clashes in Java Component Systems Petr Hnětynka, Petr Tůma Charles University Department of Software Engineering Distributed System Research Group Malostranské náměstí 25, 118 00 Prague

More information

Towards a formal model of object-oriented hyperslices

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

More information

Hierarchical vs. Flat Component Models

Hierarchical vs. Flat Component Models Hierarchical vs. Flat Component Models František Plášil, Petr Hnětynka DISTRIBUTED SYSTEMS RESEARCH GROUP http://nenya.ms.mff.cuni.cz Outline Component models (CM) Desired Features Flat vers. hierarchical

More information

Component models. Page 1

Component models. Page 1 Component Models and Technology Component-based Software Engineering Ivica Crnkovic ivica.crnkovic@mdh.se Page 1 Overview Introduction ACME Architectural Description Language Java Bean Component Model

More information

Applying the Component Paradigm to AUTOSAR Basic Software

Applying the Component Paradigm to AUTOSAR Basic Software Applying the Component Paradigm to AUTOSAR Basic Software Dietmar Schreiner Vienna University of Technology Institute of Computer Languages, Compilers and Languages Group Argentinierstrasse 8/185-1, A-1040

More information

CHARLES UNIVERSITY, PRAGUE FACULTY OF MATHEMATICS AND PHYSICS. Master Thesis. Michael Cífka Visual Development of Software Components

CHARLES UNIVERSITY, PRAGUE FACULTY OF MATHEMATICS AND PHYSICS. Master Thesis. Michael Cífka Visual Development of Software Components CHARLES UNIVERSITY, PRAGUE FACULTY OF MATHEMATICS AND PHYSICS Master Thesis Michael Cífka Visual Development of Software Components Supervisor: Ing. Petr Tůma, Dr. I would like to thank my supervisor,

More information

Semi-Formal, not Semi-Realistic: A New Approach to Describing Software Components

Semi-Formal, not Semi-Realistic: A New Approach to Describing Software Components Semi-Formal, not Semi-Realistic: A New Approach to Describing Software Components E James Montgomery, Rune Meling, Daniela Mehandjiska School of Information Technology Bond University Queensland, Australia

More information

1 Specifying Component Behavior with Port State Machines. Vladimir Mencl

1 Specifying Component Behavior with Port State Machines. Vladimir Mencl 1 Specifying Component Behavior with Port State Machines Vladimir Mencl Charles University, Faculty of Mathematics and Physics Department of Software Engineering Malostranske namesti 25, 118 00 Prague

More information

Refactoring via Database Representation

Refactoring via Database Representation 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Refactoring via Database Representation Péter Diviánszky 1, Rozália Szabó-Nacsa 2, Zoltán Horváth 1 1 Department

More information

Constructing Control Flow Graph for Java by Decoupling Exception Flow from Normal Flow

Constructing Control Flow Graph for Java by Decoupling Exception Flow from Normal Flow Constructing Control Flow Graph for Java by Decoupling Exception Flow from Normal Flow Jang-Wu Jo 1 and Byeong-Mo Chang 2 1 Department of Computer Engineering Pusan University of Foreign Studies Pusan

More information

Promoting Component Reuse by Separating Transmission Policy from Implementation

Promoting Component Reuse by Separating Transmission Policy from Implementation Promoting Component Reuse by Separating Transmission Policy from Implementation Scott M. Walker scott@dcs.st-and.ac.uk Graham N. C. Kirby graham@dcs.st-and.ac.uk Alan Dearle al@dcs.st-and.ac.uk Stuart

More information

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model

Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Automatic Code Generation for Non-Functional Aspects in the CORBALC Component Model Diego Sevilla 1, José M. García 1, Antonio Gómez 2 1 Department of Computer Engineering 2 Department of Information and

More information

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles Hongyu Pei Breivold, Magnus Larsson ABB AB, Corporate Research, 721 78 Västerås, Sweden {hongyu.pei-breivold, magnus.larsson}@se.abb.com

More information

A Lightweight Language for Software Product Lines Architecture Description

A Lightweight Language for Software Product Lines Architecture Description A Lightweight Language for Software Product Lines Architecture Description Eduardo Silva, Ana Luisa Medeiros, Everton Cavalcante, Thais Batista DIMAp Department of Informatics and Applied Mathematics UFRN

More information

A Grid-Enabled Component Container for CORBA Lightweight Components

A Grid-Enabled Component Container for CORBA Lightweight Components A Grid-Enabled Component Container for CORBA Lightweight Components Diego Sevilla 1, José M. García 1, Antonio F. Gómez 2 1 Department of Computer Engineering 2 Department of Information and Communications

More information

OO Technology: Properties and Limitations for Component-Based Design

OO Technology: Properties and Limitations for Component-Based Design TDDD05 Component-Based Software OO Technology: Properties and Limitations for Component-Based Design Interfaces Design by by Contract Syntactic Substitutability Inheritance Considered Harmful Fragile Base

More information

A Generic Framework for Realizing Semantic Model Differencing Operators

A Generic Framework for Realizing Semantic Model Differencing Operators A Generic Framework for Realizing Semantic Model Differencing Operators Philip Langer, Tanja Mayerhofer, and Gerti Kappel Business Informatics Group, Vienna University of Technology, Vienna, Austria {langer,mayerhofer,gerti}@big.tuwien.ac.at

More information

Prototype Environment for Refactoring Clean Programs

Prototype Environment for Refactoring Clean Programs Prototype Environment for Refactoring Clean Programs Extended abstract Rozália Szabó-Nacsa, Péter Diviánszky, Zoltán Horváth Department of Software Technology and Methodology, Eötvös Loránd University,

More information

Black-Box Program Specialization

Black-Box Program Specialization Published in Technical Report 17/99, Department of Software Engineering and Computer Science, University of Karlskrona/Ronneby: Proceedings of WCOP 99 Black-Box Program Specialization Ulrik Pagh Schultz

More information

Reflective Java and A Reflective Component-Based Transaction Architecture

Reflective Java and A Reflective Component-Based Transaction Architecture Reflective Java and A Reflective Component-Based Transaction Architecture Zhixue Wu APM Ltd., Poseidon House, Castle Park, Cambridge CB3 0RD UK +44 1223 568930 zhixue.wu@citrix.com ABSTRACT In this paper,

More information

UC Irvine UC Irvine Previously Published Works

UC Irvine UC Irvine Previously Published Works UC Irvine UC Irvine Previously Published Works Title Differencing and merging within an evolving product line architecture Permalink https://escholarship.org/uc/item/0k73r951 Authors Chen, Ping H Critchlow,

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

Describing the functionality of EJB using the behavior protocols

Describing the functionality of EJB using the behavior protocols Describing the functionality of EJB using the behavior protocols Radek Pospíšil 1, František Plášil 1,2 1 Charles University Faculty of Mathematics and Physics Department of Software Engineering Malostranké

More information

C-QM: A PRACTICAL QUALITY MODEL FOR EVALUATING COTS COMPONENTS

C-QM: A PRACTICAL QUALITY MODEL FOR EVALUATING COTS COMPONENTS C-QM: A PRACTICAL QUALITY MODEL FOR EVALUATING COTS COMPONENTS Soo Dong Kim, Ji Hwan Park Department of Computer Science Soongsil University 1-1 Sangdo-5-Dong, Dongjak-Ku, Seoul South Korea, 156-743 want

More information

A Language for Access Control in CORBA Security

A Language for Access Control in CORBA Security A Language for Access Control in CORBA Security Polar Humenn Adiron, LLC Syracuse University CASE Center Syracuse, NY 13244-4100 polar@adiron.com polar@syr.edu ABSTRACT In this brief paper, I present the

More information

Object-Oriented Theories for Model Driven Architecture

Object-Oriented Theories for Model Driven Architecture Object-Oriented Theories for Model Driven Architecture Tony Clark 1, Andy Evans 2, Robert France 3 1 King s College London, UK, anclark@dcs.kcl.ac.uk, 2 University of York, UK, andye@cs.york.ac.uk, 3 University

More information

Component-based Architecture Buy, don t build Fred Broks

Component-based Architecture Buy, don t build Fred Broks Component-based Architecture Buy, don t build Fred Broks 1. Why use components?... 2 2. What are software components?... 3 3. Component-based Systems: A Reality!! [SEI reference]... 4 4. Major elements

More information

The ENT Meta-Model of Component Interface, version 2

The ENT Meta-Model of Component Interface, version 2 University of West Bohemia in Pilsen Department of Computer Science and Engineering Univerzitni 8 30614 Pilsen Czech Republic The ENT Meta-Model of Component Interface, version 2 Přemysl Brada Technical

More information

A NEW DISTRIBUTED COMPOSITE OBJECT MODEL FOR COLLABORATIVE COMPUTING

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

More information

This document is a preview generated by EVS

This document is a preview generated by EVS TECHNICAL REPORT ISO/IEC TR 19075-4 First edition 2015-07-01 Information technology Database languages SQL Technical Reports Part 4: SQL with Routines and types using the Java TM programming language Technologies

More information

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson

Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Introduction History, Characteristics of Java language Java Language Basics Data types, Variables, Operators and Expressions Anatomy of a Java Program

More information

WEB APPLICATION MANAGEMENT: IMPLEMENTING A DYNAMIC DATABASE UPGRADE MODEL

WEB APPLICATION MANAGEMENT: IMPLEMENTING A DYNAMIC DATABASE UPGRADE MODEL WEB APPLICATION MANAGEMENT: IMPLEMENTING A DYNAMIC DATABASE UPGRADE MODEL Richard Wilson 1 & Daniel Lowes 2 1 Dept. of Computer Science and Software Engineering, University of Melbourne (Australia) 2 Dept.

More information

System Analysis and Design. Introduction: Object Oriented Design

System Analysis and Design. Introduction: Object Oriented Design System Analysis and Design Introduction: Object Oriented Design Salahaddin University College of Engineering Software Engineering Department 2011-2012 Amanj Sherwany http://www.amanj.me/wiki/doku.php?id=teaching:su:system_analysis_and_design

More information

Specification and Generation of Environment for Model Checking of Software Components *

Specification and Generation of Environment for Model Checking of Software Components * Specification and Generation of Environment for Model Checking of Software Components * Pavel Parizek 1, Frantisek Plasil 1,2 1 Charles University, Faculty of Mathematics and Physics, Department of Software

More information

XML Data in (Object-) Relational Databases

XML Data in (Object-) Relational Databases XML Data in (Object-) Relational Databases RNDr. Irena Mlýnková irena.mlynkova@mff.cuni.cz Charles University Faculty of Mathematics and Physics Department of Software Engineering Prague, Czech Republic

More information

A UML 2 Profile for Variability Models and their Dependency to Business Processes

A UML 2 Profile for Variability Models and their Dependency to Business Processes A UML 2 Profile for Variability Models and their Dependency to Business Processes Birgit Korherr and Beate List Women s Postgraduate College for Internet Technologies Institute of Software Technology and

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

Atelier Java - J1. Marwan Burelle. EPITA Première Année Cycle Ingénieur.

Atelier Java - J1. Marwan Burelle.  EPITA Première Année Cycle Ingénieur. marwan.burelle@lse.epita.fr http://wiki-prog.kh405.net Plan 1 2 Plan 3 4 Plan 1 2 3 4 A Bit of History JAVA was created in 1991 by James Gosling of SUN. The first public implementation (v1.0) in 1995.

More information

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only

Component-Level Design. Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman. For non-profit educational use only Chapter 10 Component-Level Design Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For non-profit

More information

Extending E-R for Modelling XML Keys

Extending E-R for Modelling XML Keys Extending E-R for Modelling XML Keys Martin Necasky Faculty of Mathematics and Physics, Charles University, Prague, Czech Republic martin.necasky@mff.cuni.cz Jaroslav Pokorny Faculty of Mathematics and

More information

Late-bound Pragmatical Class Methods

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

More information

Study of Component Based Software Engineering

Study of Component Based Software Engineering Study of Based Software Ishita Verma House No.4, Village Dayalpur Karawal Nagar Road Delhi-110094, India ish.v.16@gmail.com Abstract based engineering is an approach of development that emphasizes the

More information

GUI framework communication via the WWW

GUI framework communication via the WWW GUI framework communication via the WWW Thomas Tilley, School of Information Technology, Griffith University, Australia 4215, T.Tilley@gu.edu.au Peter Eklund, School of Information Technology, Griffith

More information

Towards a Versioning Model for Component based Software Assembly

Towards a Versioning Model for Component based Software Assembly Towards a Versioning Model for Component based Software Assembly Jaroslav Gergic Charles University, Faculty of Mathematics and Physics Department of Software Engineering, Malostranske namesti 25, 118

More information

Component-Based Applications: A Dynamic Reconfiguration Approach with Fault Tolerance Support

Component-Based Applications: A Dynamic Reconfiguration Approach with Fault Tolerance Support Electronic Notes in Theoretical Computer Science 65 No. 4 (2002) URL: http://www.elsevier.nl/locate/entcs/volume65.html 9 pages Component-Based Applications: A Dynamic Reconfiguration Approach with Fault

More information

On Meaning Preservation of a Calculus of Records

On Meaning Preservation of a Calculus of Records On Meaning Preservation of a Calculus of Records Emily Christiansen and Elena Machkasova Computer Science Discipline University of Minnesota, Morris Morris, MN 56267 chri1101, elenam@morris.umn.edu Abstract

More information

An Analysis of Approaches to XML Schema Inference

An Analysis of Approaches to XML Schema Inference An Analysis of Approaches to XML Schema Inference Irena Mlynkova irena.mlynkova@mff.cuni.cz Charles University Faculty of Mathematics and Physics Department of Software Engineering Prague, Czech Republic

More information

Object-Oriented Concepts and Design Principles

Object-Oriented Concepts and Design Principles Object-Oriented Concepts and Design Principles Signature Specifying an object operation or method involves declaring its name, the objects it takes as parameters and its return value. Known as an operation

More information

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015

Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm. Rao Casturi 11/03/2015 Software Engineering Fall 2015 (CSC 4350/6350) TR. 5:30 pm 7:15 pm Rao Casturi 11/03/2015 http://cs.gsu.edu/~ncasturi1 Object Design Software Engineering -CSC4350/6350 - Rao Casturi 2 Object Design Close

More information

A Type Management System for an ODP Trader

A Type Management System for an ODP Trader A Type Management System for an ODP Trader J. Indulska a,m.bearman b and K. Raymond c a CRC for Distributed Systems Technology, Department of Computer Science, University of Queensland, Brisbane 4072,

More information

Conservative re-use ensuring matches for service selection

Conservative re-use ensuring matches for service selection Conservative re-use ensuring matches for service selection M. Baldoni, C. Baroglio, V. Patti, and C. Schifanella Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 I-10149

More information

Type Checking and Type Equality

Type Checking and Type Equality Type Checking and Type Equality Type systems are the biggest point of variation across programming languages. Even languages that look similar are often greatly different when it comes to their type systems.

More information

XML: Managing with the Java Platform

XML: Managing with the Java Platform In order to learn which questions have been answered correctly: 1. Print these pages. 2. Answer the questions. 3. Send this assessment with the answers via: a. FAX to (212) 967-3498. Or b. Mail the answers

More information

A UML SIMULATOR BASED ON A GENERIC MODEL EXECUTION ENGINE

A UML SIMULATOR BASED ON A GENERIC MODEL EXECUTION ENGINE A UML SIMULATOR BASED ON A GENERIC MODEL EXECUTION ENGINE Andrei Kirshin, Dany Moshkovich, Alan Hartman IBM Haifa Research Lab Mount Carmel, Haifa 31905, Israel E-mail: {kirshin, mdany, hartman}@il.ibm.com

More information

Reusability and Adaptability of Interactive Resources in Web-Based Educational Systems. 01/06/2003

Reusability and Adaptability of Interactive Resources in Web-Based Educational Systems. 01/06/2003 Reusability and Adaptability of Interactive Resources in Web-Based Educational Systems 01/06/2003 ctchen@ctchen.idv.tw Reference A. El Saddik et al., Reusability and Adaptability of Interactive Resources

More information

Component-based Approach to the Development of Internet EDI Software for Electronic Document Management

Component-based Approach to the Development of Internet EDI Software for Electronic Document Management Association for Information Systems AIS Electronic Library (AISeL) PACIS 2001 Proceedings Pacific Asia Conference on Information Systems (PACIS) December 2001 Component-based Approach to the Development

More information

SCOS-2000 Technical Note

SCOS-2000 Technical Note SCOS-2000 Technical Note MDA Study Prototyping Technical Note Document Reference: Document Status: Issue 1.0 Prepared By: Eugenio Zanatta MDA Study Prototyping Page: 2 Action Name Date Signature Prepared

More information

BUILDING COMPONENT BASED SOFTWARE CONNECTORS FOR COMMUNICATION MIDDLEWARE IN DISTRIBUTED EMBEDDED SYSTEMS

BUILDING COMPONENT BASED SOFTWARE CONNECTORS FOR COMMUNICATION MIDDLEWARE IN DISTRIBUTED EMBEDDED SYSTEMS Proceedings of the ASME 2007 International Design Engineering Technical Conferences & Computers and Information in Engineering Conference IDETC/CIE 2007 September 4-7, 2007, Las Vegas, Nevada, USA DETC2007-34558

More information

User Interface Modelling Based on the Graph Transformations of Conceptual Data Model

User Interface Modelling Based on the Graph Transformations of Conceptual Data Model User Interface Modelling Based on the Graph Transformations of Conceptual Data Model Martin Molhanec Department of e-technology, Faculty of Electrical Engineering Czech Technical University in Prague Technická

More information

Monitoring System for Distributed Java Applications

Monitoring System for Distributed Java Applications Monitoring System for Distributed Java Applications W lodzimierz Funika 1, Marian Bubak 1,2, and Marcin Smȩtek 1 1 Institute of Computer Science, AGH, al. Mickiewicza 30, 30-059 Kraków, Poland 2 Academic

More information

A Type Graph Model for Java Programs

A Type Graph Model for Java Programs A Type Graph Model for Java Programs Arend Rensink and Eduardo Zambon Formal Methods and Tools Group, EWI-INF, University of Twente PO Box 217, 7500 AE, Enschede, The Netherlands {rensink,zambon}@cs.utwente.nl

More information

Guiding System Modelers in Multi View Environments: A Domain Engineering Approach

Guiding System Modelers in Multi View Environments: A Domain Engineering Approach Guiding System Modelers in Multi View Environments: A Domain Engineering Approach Arnon Sturm Department of Information Systems Engineering Ben-Gurion University of the Negev, Beer Sheva 84105, Israel

More information

Metamodeling with Metamodels. Using. UML/MOF including OCL

Metamodeling with Metamodels. Using. UML/MOF including OCL Metamodeling with Metamodels Using UML/MOF including OCL Introducing Metamodels (Wikipedia) A metamodel is a model of a model An instantiation of metamodel gives a model Metamodeling is the process of

More information

Implementing Software Connectors through First-Class Methods

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

More information

A Solver-Independent Platform for Modeling Constrained Objects Involving Discrete and Continuous Domains

A Solver-Independent Platform for Modeling Constrained Objects Involving Discrete and Continuous Domains A Solver-Independent Platform for Modeling Constrained Objects Involving Discrete and Continuous Domains Ricardo Soto 1,2 and Laurent Granvilliers 1 1 LINA, CNRS, Université de Nantes, France 2 Escuela

More information

Journal of Information Technology Impact

Journal of Information Technology Impact Journal of Information Technology Impact Vol. 3, No. 1, pp. 25-44, 2003 Bogdan D. Czejdo 1 Loyola University Louisiana, USA The Impact of UML Class Diagrams on Knowledge Modeling, Discovery and Presentations

More information

COSC 3351 Software Design. An Introduction to UML (I)

COSC 3351 Software Design. An Introduction to UML (I) COSC 3351 Software Design An Introduction to UML (I) This lecture contains material from: http://wps.prenhall.com/esm_pfleeger_softengtp_2 http://sunset.usc.edu/classes/cs577a_2000/lectures/05/ec-05.ppt

More information

Ecma International Policy on Submission, Inclusion and Licensing of Software

Ecma International Policy on Submission, Inclusion and Licensing of Software Ecma International Policy on Submission, Inclusion and Licensing of Software Experimental TC39 Policy This Ecma International Policy on Submission, Inclusion and Licensing of Software ( Policy ) is being

More information

Experiences in the management of an EJB-based e- commerce application. Abstract

Experiences in the management of an EJB-based e- commerce application. Abstract Experiences in the management of an EJB-based e- commerce application Juan I. Asensio, Víctor A. Villagrá, Jorge E. López de Vergara, Roney Pignaton, Julio J. Berrocal. Department of Telematic Systems

More information

XCase - A Tool for Conceptual XML Data Modeling

XCase - A Tool for Conceptual XML Data Modeling XCase - A Tool for Conceptual XML Data Modeling Jakub Klímek 1, Lukáš Kopenec 1, Pavel Loupal 2, and Jakub Malý 1 1 Department of Software Engineering Faculty of Mathematics and Physics, Charles University

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

App-ID. PALO ALTO NETWORKS: App-ID Technology Brief

App-ID. PALO ALTO NETWORKS: App-ID Technology Brief App-ID Application Protocol Detection / Decryption Application Protocol Decoding Application Signature Heuristics App-ID is a patent-pending traffic classification technology that identifies more than

More information

1 From Distributed Objects to Distributed Components

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

More information

Sémantique des Langages de Programmation (SemLP) DM : Region Types

Sémantique des Langages de Programmation (SemLP) DM : Region Types Sémantique des Langages de Programmation (SemLP) DM : Region Types I) Submission Submission Date : 21/05/2017 Submission Format : Submit a virtual machine (.ova) 1 with 1. an executable of the interpreter,

More information

POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models

POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models POAD Book: Chapter 4: Design Patterns as Components Chapter 5: Visual Design Models Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU Outline Chapter 4: Design Patterns

More information

ENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL

ENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL INTERNATIONAL DESIGN CONFERENCE - DESIGN 2000 Dubrovnik, May 23-26, 2000. ENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL N. Pavković, D. Marjanović Keywords: object oriented methodology, design process

More information

Investigating F# as a development tool for distributed multi-agent systems

Investigating F# as a development tool for distributed multi-agent systems PROCEEDINGS OF THE WORKSHOP ON APPLICATIONS OF SOFTWARE AGENTS ISBN 978-86-7031-188-6, pp. 32-36, 2011 Investigating F# as a development tool for distributed multi-agent systems Extended abstract Alex

More information

Challenges in component based programming. Lena Buffoni

Challenges in component based programming. Lena Buffoni Challenges in component based programming Lena Buffoni Challenge: Size & complexity Software is everywhere and increasingly complex (embedded systems, internet of things ) Single products have become product

More information

Real-time & Embedded Systems Workshop July 2007 Building Successful Real-time Distributed Systems in Java

Real-time & Embedded Systems Workshop July 2007 Building Successful Real-time Distributed Systems in Java Real-time & Embedded Systems Workshop July 2007 Building Successful Real-time Distributed Systems in Java Andrew Foster Product Manager PrismTech Corporation The Case for Java in Enterprise Real-Time Systems

More information

Single-pass Static Semantic Check for Efficient Translation in YAPL

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

More information

Migrating IONA Orbix 3 Applications

Migrating IONA Orbix 3 Applications Migrating IONA Orbix 3 Applications Contrasting the migration path of Orbix 3 applications to Orbix 2000 and to Borland Enterprise Server, VisiBroker Edition by Will Edwards, Senior Consultant, The New

More information

A Comprehensive Interface Definition Framework for Software Components

A Comprehensive Interface Definition Framework for Software Components A Comprehensive Interface Definition Framework for Software Components Jun Han Peninsula School of Computing and Information Technology Monash University, McMahons Road, Frankston, Vic 3199, Australia

More information

OASIS: Architecture, Model and Management of Policy

OASIS: Architecture, Model and Management of Policy OASIS: Architecture, Model and Management of Policy Ken Moody Computer Laboratory, University of Cambridge 1 Overview OASIS : Architecture, Model and Policy 1. background to the research people, projects

More information

ISO/IEC INTERNATIONAL STANDARD

ISO/IEC INTERNATIONAL STANDARD INTERNATIONAL STANDARD This is a preview - click here to buy the full publication ISO/IEC 19500-3 First edition 2012-04-15 Information technology Object Management Group Common Object Request Broker Architecture

More information

A Case Study for HRT-UML

A Case Study for HRT-UML A Case Study for HRT-UML Massimo D Alessandro, Silvia Mazzini, Francesco Donati Intecs HRT, Via L. Gereschi 32, I-56127 Pisa, Italy Silvia.Mazzini@pisa.intecs.it Abstract The Hard-Real-Time Unified Modelling

More information

Base Architectures for NLP

Base Architectures for NLP Base Architectures for NLP Tom Mahieu, Stefan Raeymaekers et al. Department of Computer Science K.U.Leuven Abstract Our goal is to develop an object-oriented framework for natural language processing (NLP).

More information

AN EXTENSION TO A CORBA TRADER TO SUPPORT XML SERVICE DESCRIPTIONS

AN EXTENSION TO A CORBA TRADER TO SUPPORT XML SERVICE DESCRIPTIONS AN EXTENSION TO A CORBA TRADER TO SUPPORT XML SERVICE DESCRIPTIONS Twittie Senivongse and Wuttichai Nanekrangsan Department of Computer Engineering, Chulalongkorn University, Bangkok, Thailand Abstract

More information

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture 1. Introduction Dynamic Adaptability of Services in Enterprise JavaBeans Architecture Zahi Jarir *, Pierre-Charles David **, Thomas Ledoux ** zahijarir@ucam.ac.ma, {pcdavid, ledoux}@emn.fr (*) Faculté

More information

Software Components and Distributed Systems

Software Components and Distributed Systems Software Components and Distributed Systems INF5040/9040 Autumn 2017 Lecturer: Eli Gjørven (ifi/uio) September 12, 2017 Outline Recap distributed objects and RMI Introduction to Components Basic Design

More information

Ecma International Policy on Submission, Inclusion and Licensing of Software

Ecma International Policy on Submission, Inclusion and Licensing of Software Ecma International Policy on Submission, Inclusion and Licensing of Software Experimental TC39 Policy This Ecma International Policy on Submission, Inclusion and Licensing of Software ( Policy ) is being

More information

Introduction to componentbased software development

Introduction to componentbased software development Introduction to componentbased software development Nick Duan 8/31/09 1 Overview What is a component? A brief history of component software What constitute the component technology? Components/Containers/Platforms

More information