JCMP: Linking Architecture with Component Building Guoqing Xu, Zongyuan Yang and Haitao Huang Software Engineering Lab, East China Normal University SACT-01,

Slides:



Advertisements
Similar presentations
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Advertisements

A component- and message-based architectural style for GUI software
Architecture Representation
Giving a formal meaning to “Specialization” In these note we try to give a formal meaning to specifications, implementations, their comparisons. We define.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
The road to reliable, autonomous distributed systems
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
Introduction To System Analysis and Design
Lecture 27 Exam outline Boxing of primitive types in Java 1.5 Generic types in Java 1.5.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Architectural Reasoning in ArchJava Jonathan Aldrich Craig Chambers David Notkin University of Washington ECOOP ‘02, 13 June 2002.
CS189A/172 - Winter 2008 Lecture 7: Software Specification, Architecture Specification.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
Communication in Distributed Systems –Part 2
Objectives The key roles an architecture description plays in a software project. The key roles an architecture description plays in a software project.
© Copyright Eliyahu Brutman Programming Techniques Course.
ArchJava A software architecture tool –components –connections –constraints on how components interact Implementation must conform to architecture.
© 2008 IBM Corporation Behavioral Models for Software Development Andrei Kirshin, Dolev Dotan, Alan Hartman January 2008.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
An Introduction to Rational Rose Real-Time
Introduction To System Analysis and design
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Systems Analysis and Design in a Changing World, Fifth Edition
Requirements Analysis
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Engineering Law-Governed Approaches How to reuse, extend and compose interaction specifications Gustavo Carvalho, Carlos Lucena
An Introduction to Software Architecture
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, System and Software Engineering.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
A Novel Approach to Unit Test: The Aspect-Oriented Way Guoqing Xu and Zongyuan Yang Software Engineering Lab (SEL) East China Normal University
Lesson 3 CDT301 – Compiler Theory, Spring 2011 Teacher: Linus Källberg.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan Pointcut-based Architectural Interface.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Architectural Point Mapping for Design Traceability Naoyasu Ubayashi and Yasutaka Kamei Kyushu University, Japan March 26, 2012 FOAL 2012 (AOSD Workshop)
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Alloy-based Lightweight Verification for Aspect-oriented Architecture Naoyasu Ubayashi(Kyushu Institute of Technology) Yuki Sato(Kyushu Institute of Technology)
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Design of an Integrated Robot Simulator for Learning Applications Brendon Wilson April 15th, 1999.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
ICS312 Introduction to Compilers Set 23. What is a Compiler? A compiler is software (a program) that translates a high-level programming language to machine.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
The Development Process of Web Applications
Behavioral Models for Software Development
Architecture Description Languages
An Introduction to Software Architecture
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

JCMP: Linking Architecture with Component Building Guoqing Xu, Zongyuan Yang and Haitao Huang Software Engineering Lab, East China Normal University SACT-01, Pusan, Nov. 30th, 2004 A previous version has been presented at poster session of ACM SIGSOFT 04 FSE-12 conference.

Outline Introduction and Motivation Our Techniques --- Triple-C Model --- JCMPL language ---JCMP toolset Analysis SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Problems and Motivation Two basic characteristic of components defined in the architecture: --- Conform to the architecture Follow the three criteria identified in [LV95] --- Support a great deal of flexibility A protocol or style is needed to support the independent building for the composite adaptation. These two issues are far from orthogonal although their concern is different. SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Enforce the architectural conformance (current research) Three criteria identified in [LV95] ---Decomposition easy ---Interface conformance easy ---Communication Integrity hard SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Enforce Communication Integrity (current research) Ask implementers to follow style guidelines (Rapide with C2 style [Luc96]) --- not enforced automatically Unify implementation and architecture in one language. (ArchJava [ACN02]) --- doesn ’ t support architecture design. Both don ’ t consider composite adaptation issues. --- there exists the direct client-server relationship between components. SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Composite Adaptation (Current Research) Use Module Interconnection Languages (MILs) to describe use relationship. --- Jiazzi or Knit Use on-demand remodularization. --- pluggable composite adapter[MSL01] They don ’ t describe data and control flow between components and therefore cannot enforce communication Integrity. SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Problem conclusions Current solutions to either of two issues don ’ t deal with another. How to support composite adaptation in the context of architectural constraints? SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Outline Introduction and Motivation Our Approach --- Triple-C Model --- JCMPL language --- JCMP toolset Case study and Analysis SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Triple-C Model Component-Communicate-through-Connector. It extends the three criteria in [LV95] in two aspects: --- A concrete connector in the implementation for each abstract connector in the architecture. --- Concrete connectors are used as wrappers to transfer the service flow between the components. SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Model Overview Currently the connector Specify the communication permission in the arch. Used as wrapper or glue code to transfer the methods invocation. SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Basic ideas of our approach Linking architecture with component building (composite adaptation). The key technique is to automatically generate the connector impl. from connector spec in the arch. We made a JCMP system: --- an ADL: JCMPL --- a toolset: JCMP JCMP/Compiler JCMP/Match JCMP/Checker JCMP/Kernel Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004 SEL, East China Normal University

JCMPL Language It uses the Java like grammar at an abstract level. It is not only an ADL, but also an IDL. It describes only abstractions, without any detailed type operations. Translated by JCMP/Compiler to the implementation skeleton. SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

JCMPL Language (Cond.) out in ScannerParser //Parser.jcmpl public PrimComponent Parser{ public port in{ RequireInterface r{ Token nextToken()throws ScanExceptions; }; } Public PrimComponent Scanner{ public port out{ ProvideInterface req{ Token next(); }; } A Compiler Model public AdvancedComponent Compiler{ public port in{ RequireInterface get{... InputStream getInputStream() }; } public port out{ ProvideInterface err{ Integer getErrCode();... }; } Scanner scanner = new Scanner(); Parser parser = new Parser(); connect sanner.out, parser.in; } SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Generated Style A concrete connector is generated. The component only requests the services from the connector and publishes their provided services. The connector performs the dynamic matching and transfer the invocation. Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004 SEL, East China Normal University

Dynamic interface matching Searching for a pair of “ require-provide ” methods which match each other in semantic from two connected ports. Based on JML Spec. of each method. The matching strategy match_jcmp/match (P, R) = (Rpre => Ppre) ^ ( (Ppre^ Ppost) =>Rpost ) Run P and R with test cases to watch whether their behaviors are observably equal. SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Checking conformance in impl. JCMP/Checker instruments methods with arguments of primitive types. It uses both architecture and implementations as input to check whether they conform to each other. If the impl. does not conform to the arch., JCMP/Checker reports errors; otherwise, it compiles the impl. Into the bytecode files (.class). SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Why it works — enforce communication integrity in impl. All interface methods are generated as private. This enforces that all interface methods cannot be directly called. The only way to call an interface method is through connector, which uses reflection to suppress access checking. The connector is generated automatically from connector spec., and methods comm. In impl. is therefore enforced to conform to its spec. Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004 SEL, East China Normal University

Why it works — support composite adaptation Concrete connector serves as glue codes. When a component is being built, if it requires a service, only requesting this from the conn. Conn. uses JCMP/Match to find the suitable method, calls the method, and finally returns the value back when the system is integrated. SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Outline Introduction and Motivation Our Techniques --- Triple-C Model --- JCMPL language ---JCMP toolset Analysis SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Performance Issues The cost in running JCMP system has two components: --- the runtime cost of type reflection. --- the extra cost of invocation transfer through the connector. Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004 SEL, East China Normal University

Experiment Construct a linked list with a given array of integers. construct (int[] nodes) Retrieve a node from the given node ID after the list is constructed. retrieve (Integer index) SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Comparisons SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Analysis Summary We found out that encapsulating the parameters of primitive types into objects took tremendous amount of time. The cost of method invocation through connector was not obvious. Since JCMP uses reflection, we suggest objects be used as data to be transferred, rather than primitive values. SEL, East China Normal University Guoqing Xu, SACT-01, Pusan, Nov.30th, 2004

Future Work JCMPL is only used at the design level, without supporting the dynamic description of runtime architecture. Architectural styles should be considered. The performance should be optimized in the way of having some other techniques to replace the Java reflection.

Conclusions To link architecture with component building, we made: Triple-C model JCMP toolset --- an ADL JCMPL --- JCMP system

Thank you