Towards Automated Component Compatibility Assessment
|
|
- Tamsin Stevenson
- 5 years ago
- Views:
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 Jaroslav Šnajberk and Přemek Brada Department of Computer Science and Engineering, Faculty of Applied Sciences University
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 informationConstraint-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 informationEnhancing 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 informationSynthesizing 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 informationSOFTWARE 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 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 informationAn 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 informationTowards 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 informationFighting 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 informationTowards 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 informationHierarchical 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 informationComponent 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 informationApplying 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 informationCHARLES 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 informationSemi-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 information1 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 informationRefactoring 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 informationConstructing 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 informationPromoting 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 informationAutomatic 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 informationComponent-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 informationA 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 informationA 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 informationOO 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 informationA 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 informationPrototype 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 informationBlack-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 informationReflective 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 informationUC 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 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 informationDescribing 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 informationC-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 informationA 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 informationObject-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 informationComponent-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 informationThe 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 informationA 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 informationThis 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 informationZhifu 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 informationWEB 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 informationSystem 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 informationSpecification 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 informationXML 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 informationA 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 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 informationAtelier 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 informationComponent-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 informationExtending 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 informationLate-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 informationStudy 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 informationGUI 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 informationTowards 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 informationComponent-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 informationOn 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 informationAn 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 informationObject-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 informationSoftware 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 informationA 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 informationConservative 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 informationType 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 informationXML: 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 informationA 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 informationReusability 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 informationComponent-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 informationSCOS-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 informationBUILDING 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 informationUser 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 informationMonitoring 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 informationA 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 informationGuiding 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 informationMetamodeling 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 informationImplementing 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 informationA 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 informationJournal 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 informationCOSC 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 informationEcma 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 informationExperiences 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 informationXCase - 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 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 informationApp-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 information1 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 informationSé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 informationPOAD 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 informationENTITIES 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 informationInvestigating 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 informationChallenges 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 informationReal-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 informationSingle-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 informationMigrating 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 informationA 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 informationOASIS: 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 informationISO/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 informationA 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 informationBase 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 informationAN 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 informationDynamic 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 informationSoftware 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 informationEcma 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 informationIntroduction 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