POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan Pointcut-based Architectural Interface.

Slides:



Advertisements
Similar presentations
A Context Analysis Method for Embedded Systems --- Exploring a Requirement Boundary between a System and Its Context Naoyasu Ubayashi(Kyushu University,
Advertisements

Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
1 An Aspect-Aware Outline Viewer Michihiro Horie and Shigeru Chiba Tokyo Institute of Technology, Japan.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Modularization.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
University of British Columbia Software Practices Lab 2005 CASCON A Fluid AOP Editor Terry Hon Gregor Kiczales.
Aspect-Oriented Programming: An Overview Brandon Wirick Feb
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
Architectural Reasoning in ArchJava Jonathan Aldrich Craig Chambers David Notkin University of Washington ECOOP ‘02, 13 June 2002.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Aspect Oriented Programming Written by Michael Beder.
A Formal Model of Modularity in Aspect-Oriented Programming Jonathan Aldrich : Objects and Aspects Carnegie Mellon University.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
1 Archface: Architectural Interface -- Bridging a Gap between Design Modeling and Implementation Naoyasu Ubayashi, Hidenori Akatoki, Jun Nomura Kyushu.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Developing Adaptive J2ME Applications Using AspectJ Ayla Débora and Paulo Borba {add, Centro de Informática - UFPE.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
1 A Modularity Assessment Framework for Context-dependent Formal Specifications Naoyasu Ubayashi (Kyushu University, Japan) September 14, 2010 ACoM 2010.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Change Impact Analysis for AspectJ Programs Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao Shanghai Jiao Tong University.
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
1 An Aspect-oriented Weaving Mechanism Based on Component-and-Connector Architecture Naoyasu Ubayashi (Kyushu Institute of Technology) February 12, 2008.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, System and Software Engineering.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
1 A Parameterized Interpreter for Modeling Different AOP Mechanisms Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Genki Moriyama(Kyushu Institute.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan An Extensible Aspect-Oriented Modeling.
Aspect Oriented Programming Gülşah KARADUMAN.
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
JCMP: Linking Architecture with Component Building Guoqing Xu, Zongyuan Yang and Haitao Huang Software Engineering Lab, East China Normal University SACT-01,
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
A Distributed Aspect-Oriented System for J2EE Applications Muga Nishizawa and Shigeru Chiba (Tokyo Institute of Technology, Japan) Background - As benefits.
Design Rules for Increasing Modularity with CaesarJ Carlos Eduardo Pontual Advisor: Paulo Borba 17/06/2010.
TRANSPARENT EXTENSION OF SINGLE- USER APPLICATIONS TO MULTI-USER REAL-TIME COLLABORATIVE SYSTEMS An Aspect Oriented Approach to Framework Integration ICEIS.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Hong Zhu Dept of Computing and Communication Technologies Oxford Brookes University Oxford, OX33 1HX, UK TOWARDS.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Architectural Point Mapping for Design Traceability Naoyasu Ubayashi and Yasutaka Kamei Kyushu University, Japan March 26, 2012 FOAL 2012 (AOSD Workshop)
1 A Context Analysis Method for Constructing Reliable Embedded Systems Naoyasu Ubayashi, Toshiki Seto, Hirotoshi Kanagawa, Susumu Taniguchi, and Jun Yoshida.
IDENTIFYING SEMANTIC DIFFERENCES IN ASPECTJ PROGRAMS Martin Görg and Jianjun Zhao Computer Science Department, Shanghai Jiao Tong University.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
1 Contract-based Verification for Aspect-oriented Refactoring Naoyasu Ubayashi(Kyushu Institute of Technology) Jinji Piao(Kyushu Institute of Technology)
Alloy-based Lightweight Verification for Aspect-oriented Architecture Naoyasu Ubayashi(Kyushu Institute of Technology) Yuki Sato(Kyushu Institute of Technology)
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan 1 A Verification Mechanism for Weaving.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan 1 A Reflective Aspect-oriented Model.
1 Separation of Context Concerns --- Applying Aspect Orientation to VDM Naoyasu Ubayashi (Kyushu Institute of Technology) Shin Nakajima (National Institute.
R R R A Brief Introduction to Aspect-Oriented Programming.
AspectScope: An Outline Viewer for AspectJ Programs Michihiro Horie, Shigeru Chiba Tokyo Institute of Technology, Japan.
Aspect-Oriented Software Development (AOSD)
1 An AOP Implementation Framework for Extending Join Point Models Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Hidehiko Masuhara(University.
PPL 2004, Gamagori, AICHI1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech, Japan) Shigeru Chiba (Tokyo Tech, Japan)
An Evolutional Cooperative Computation Based on Adaptation to Environment Naoyasu UBAYASHI and Tetsuo TAMAI Graduate School of Arts and Sciences University.
Modeling of Service Oriented Architecture: From Business Process to Service Realization Petr Weiss and Marek Rychlý Brno University of Technology, Faculty.
RoleEP: Role Based Evolutionary Programming for Cooperative Mobile Agent Applications Naoyasu UBAYASHI ( Toshiba Corporation) Tetsuo TAMAI ( University.
An Interface Mechanism for Encapsulating Weaving in Class-based AOP
Modular Software Development for Dealing with Uncertainty
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Aspect-Oriented Generation of the API Documentation for AspectJ
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Aspect-oriented programming
An Extensible Contract Verifier for AspectJ
Design Yaodong Bi.
Aspect Oriented Software Design
Refactoring the Aspectizable Interfaces: An Empirical Assessment
Presentation transcript:

POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan Pointcut-based Architectural Interface for Bridging a Gap between Design and Implementation Naoyasu Ubayashi, Hidenori Akatoki, Jun Nomura July 7, 2009 ECOOP Workshop RAM-SE’09

POSL posl.minnie.ai.kyutech.ac.jp Overview Architectural design plays an important role in the software development. –Robustness –Reliability –Maintainability However, it is not easy to –implement the result of architecture modeling as a program preserving the architectural correctness; –maintain the traceability between an architecture and program code; and –deal with software evolution. public class Subject{ private Vector observers = new Vector(); private String state = “”; public void addObserver(Observer o){ … } public void removeObserver(Observer o){ … } public void notify(){ Iterator i = observers.iterator(); while(i.hasNext() ){ Observers o = (Observer)i.next(); o.update( this ); } } public void setState(String s){ state = s; } public String getState() {return state; } } Program Code Bidirectional Traceability ! Architecture Bu g 2 Archface

POSL posl.minnie.ai.kyutech.ac.jp Outline Motivation Archface Archface for Java Discussion Conclusion 3

POSL posl.minnie.ai.kyutech.ac.jp 1. MOTIVATION 1. Motivation 4

POSL posl.minnie.ai.kyutech.ac.jp Motivating example public class Subject { private String state = ""; public String getState() { return state; } public void setState(String s) { state = s; } … } Architectural Design (Observer Pattern) Code Bu g Architectural constraints (Collaborative behavior) are not preserved ! 5

POSL posl.minnie.ai.kyutech.ac.jp Solution ? MDD + Code generation ?  Fine, but … Architectural design should be abstract ! Detailed Model Descriptions Program Code Full code generation Detailed model generation 6

POSL posl.minnie.ai.kyutech.ac.jp Problems to be tackled In current MDD, it is not easy to create an architectural model with adequate abstraction level implement the result of architecture modeling as a program preserving the architectural correctness recover architecture from program code maintain the traceability between architecture and program code deal with software evolution. 7

POSL posl.minnie.ai.kyutech.ac.jp 2. Archface (= Architecture + Interface) 8

POSL posl.minnie.ai.kyutech.ac.jp public class Subject{ private Vector observers = new Vector(); private String state = “”; public void addObserver(Observer o){ … } public void removeObserver(Observer o){ … } public void notify(){ Iterator i = observers.iterator(); while(i.hasNext() ){ Observers o = (Observer)i.next(); o.update( this ); } } public void setState(String s){ state = s; } public String getState() {return state; } } Our Approach Architecture Program Code Archface: architectural interface for bridging a gap between design modeling and implementation Architectural information is encapsulated in interfaces 9 Archface

POSL posl.minnie.ai.kyutech.ac.jp Architecture Descriptions Supported by Archface Component-and-Connector Architecture (Structure) Collaborations among Components (Behavior) Component Collaboration Signature-based Interface is insufficient. Contextual Pointcut-based Interface Control flow, Data flow, Trace match, etc. 10

POSL posl.minnie.ai.kyutech.ac.jp Traditional Interface vs. Archface Interface Expose method signatures Archface Expose program points Method call Coordinate execution of program points (Pointcut) (Weave Advice) 11 ConnectionComponent

POSL posl.minnie.ai.kyutech.ac.jp Conceptual background Join point Architectural constraints can be specified by Pointcut & Advice Extension of ccJava [Ubayashi, et al. 2007] Three-part Modeling Framework 12 [Masuhara, et al. 2003]

POSL posl.minnie.ai.kyutech.ac.jp Verifiable Bidirectional MDD Not only programming-level but also design-level notion ADL for bridging a gap between architectural design and implementation Architectural Design Archface Program Code Designs and verifies an architecture represented by Archface Implements verified Archface 13

POSL posl.minnie.ai.kyutech.ac.jp 1. MOTIVATION 3. Archface for Java 14

POSL posl.minnie.ai.kyutech.ac.jp Archface as ADL Observer Pattern represented by Archface ADL 15 [Port notifyObservers] pointcut notifyObservers() : cflow(execution(void setState(String s))) && call(void notify()); [Port update] pointcut update(): execution(void update()); [Connection] connects notifyChange (port1 :cSubject.notifyObservers, port2 :cObserver.update){ around() void :port1 { port2.proceed(); } }

POSL posl.minnie.ai.kyutech.ac.jp Archface as Program Interface Archface (Program Interface) Implement Program Code (Implement exposed program points) Type check + formal verification + test 16

POSL posl.minnie.ai.kyutech.ac.jp Bidirectional Traceability Archface supports software evolution based on bidirectional traceability. Archface can be considered as a protocol defined between architectural design and implementation. 17

POSL posl.minnie.ai.kyutech.ac.jp Integration with AO Archface supports not only OO but also AO architecture. A weaving in AO can be realized by the component-and-connector mechanism. We do not have to distinguish crosscutting concerns from primary concerns at the architectural design phase. 18

POSL posl.minnie.ai.kyutech.ac.jp Example: Figure Editor 19 cDisplaycPoint cLine change redraw

POSL posl.minnie.ai.kyutech.ac.jp Compiler construction Archface definitions Archface parser AspectJ code generator Aspect-Factory class generator AspectJ weaver executable program Archface compiler 20 AspectJ code (aspect) Java code (class)

POSL posl.minnie.ai.kyutech.ac.jp 1. MOTIVATION 4. Discussion 21

POSL posl.minnie.ai.kyutech.ac.jp Related Work Architecture and Implementation: –ArchJava [Aldrich, J. 2002] –Design pattern implementation in Java and AspectJ [Hannemann, J. 2002] Co-evolution: –Co-evolution between design and implementation [D'Hondt, T. 2001] –Co-evolving the application design models after the code refactoring [Cazzola, W. 2007] Aspect Component: –JAsCo [Suvee, D. et al. 2003] 22 Our approach is based on the interface mechanisms that not only enforce architectural constraints on the program implementation but also represent architectural abstractions.

POSL posl.minnie.ai.kyutech.ac.jp Open Issues Which class of architecture is bi-directional ? –Currently, we consider control flow only… Which class of architecture descriptions can be statically verified? Which description should be tested? 23

POSL posl.minnie.ai.kyutech.ac.jp 1. MOTIVATION 5. Conclusion 24

POSL posl.minnie.ai.kyutech.ac.jp Summary Archface is not only an ADL but also a programming-level interface mechanism. The traceability between design and program code can be realized by enforcing architectural constraints specified in Archface on the program implementation. 25

POSL posl.minnie.ai.kyutech.ac.jp 1. MOTIVATION Thank you for your attention. 26