1 Archface: Architectural Interface -- Bridging a Gap between Design Modeling and Implementation Naoyasu Ubayashi, Hidenori Akatoki, Jun Nomura Kyushu.

Slides:



Advertisements
Similar presentations
Design Patterns.
Advertisements

A Context Analysis Method for Embedded Systems --- Exploring a Requirement Boundary between a System and Its Context Naoyasu Ubayashi(Kyushu University,
Topics in OO, Design Patterns, Reasoning About Program Behavior... (part 4) Neelam Soundarajan Computer Sc. & Eng.
Software Requirements Engineering
Aspect-Oriented Programming: An Overview Brandon Wirick Feb
1 HW/SW Partitioning Embedded Systems Design. 2 Hardware/Software Codesign “Exploration of the system design space formed by combinations of hardware.
Unit 251 Implementation and Integration Implementation Unit Testing Integration Integration Approaches.
Architectural Reasoning in ArchJava Jonathan Aldrich Craig Chambers David Notkin University of Washington ECOOP ‘02, 13 June 2002.
The Observer Pattern. Formal Definition Define a one-to-many dependency between objects so that when one object changes state, all its dependents are.
R R R CSE870: Advanced Software Engineering: Frameworks (Cheng, Sp2003)1 Frameworks A Brief Introduction.
SOS OOP Fall 2001 Object Oriented Programming in Java Week 1 Read a design Design a small program Extract a design Run a VAJ program Change that program,
1 Observer Design Pattern By Eric Perret Pages in Applying UML and Patterns.
XFindBugs: eXtended FindBugs for AspectJ Haihao Shen, Sai Zhang, Jianjun Zhao, Jianhong Fang, Shiyuan Yao Software Theory and Practice Group (STAP) Shanghai.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
Lecture 6 Software Testing and jUnit CS140 Dick Steflik.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
Observer Design Pattern Source: Design Patterns – Elements of Reusable Object- Oriented Software; Gamma, et. al.
Instructor: Peter Clarke
1 A Modularity Assessment Framework for Context-dependent Formal Specifications Naoyasu Ubayashi (Kyushu University, Japan) September 14, 2010 ACoM 2010.
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
Executable Translatable UML Stephen J. Mellor Chief Scientist.
1 An Aspect-oriented Weaving Mechanism Based on Component-and-Connector Architecture Naoyasu Ubayashi (Kyushu Institute of Technology) February 12, 2008.
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.
Behavioral Pattern: Observer C h a p t e r 5 – P a g e 186 A large monolithic design does not scale well as additional graphical and monitoring requirements.
JCMP: Linking Architecture with Component Building Guoqing Xu, Zongyuan Yang and Haitao Huang Software Engineering Lab, East China Normal University SACT-01,
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
CS 350 – Software Design The Observer Pattern – Chapter 18 Let’s expand the case study to include new features: Sending a welcome letter to new customers.
Team Think For You. Outline  Introduction  Process  Requirements Engineering  Architecture  Detailed Design  Testing  Demo  Extensibility  Conclusions.
Design Rules for Increasing Modularity with CaesarJ Carlos Eduardo Pontual Advisor: Paulo Borba 17/06/2010.
Object Oriented Analysis and Design using the UML CIS 520 Advanced Object-Oriented Design.
An Adaptive Object Model with Dynamic Role Binding Tamai, T. (U. Tokyo), Ubayashi, N. (Kyushu Inst. Tech.), Ichiyama, R. (U. Tokyo)
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many others 1.
Hong Zhu Dept of Computing and Communication Technologies Oxford Brookes University Oxford, OX33 1HX, UK TOWARDS.
CJAdviser: SMT-based Debugging Support for ContextJ* Shizuka Uchio(Kyushu University, Japan) Naoyasu Ubayashi(Kyushu University, Japan) Yasutaka Kamei(Kyushu.
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.
Design Patterns CSIS 3701: Advanced Object Oriented Programming.
July 28, 2015IAT 2651 Design Patterns. “Gang of Four” July 28, 2015IAT 2652.
Introducing Allors Applications, Tools & Platform.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many of others 1.
1 Contract-based Verification for Aspect-oriented Refactoring Naoyasu Ubayashi(Kyushu Institute of Technology) Jinji Piao(Kyushu Institute of Technology)
Sadegh Aliakbary. Copyright ©2014 JAVACUP.IRJAVACUP.IR All rights reserved. Redistribution of JAVACUP contents is not prohibited if JAVACUP.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
Alloy-based Lightweight Verification for Aspect-oriented Architecture Naoyasu Ubayashi(Kyushu Institute of Technology) Yuki Sato(Kyushu Institute of Technology)
Model View Controller (MVC) an architecture Rick Mercer with help from many of others 1.
The Observer Pattern (Behavioral) ©SoftMoore ConsultingSlide 1.
T imed Languages for Embedded Software Ethan Jackson Advisor: Dr. Janos Szitpanovits Institute for Software Integrated Systems Vanderbilt University.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
CS 4311 Software Design and Implementation Spring 2012.
Design Refinement: From Patterns to System Implementation Neelam Soundarajan 1 Computer Science & Engineering Ohio State University ( 1 Joint work with.
V-Shaped Software Development Life Cycle Model. Introduction: Variation of water fall model. Same sequence structure as water fall model. Strong emphasis.
OBSERVER PATTERN OBSERVER PATTERN Presented By Presented By Ajeet Tripathi ISE
Toward product architecture oriented requirements analysis for product line development in systems engineering Kei Kurakawa Nara Institute of Science and.
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
Software Verification and Validation
Observer Design Pattern
Design Patterns - A few examples
Advanced Programming Behnam Hatami Fall 2017.
EE422C Software Implementation II
Reliable Objects: Lightweight Testing for OO Languages
Design Yaodong Bi.
Software Design Lecture : 39.
Design.
From Use Cases to Implementation
Presentation transcript:

1 Archface: Architectural Interface -- Bridging a Gap between Design Modeling and Implementation Naoyasu Ubayashi, Hidenori Akatoki, Jun Nomura Kyushu Institute of Technology, Japan May 17, 2009 MISE’09

Motivation  Architectural design plays an important role in the software development. Robustness Reliability Maintainability  However, 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; and deal with software evolution. 2 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 Bug

Our Approach 3 Architecture Program Code Archface  Archface: architectural interface for bridging a gap between design modeling and implementation  Archface integrates not only design modeling with its implementation but also AO with OO. Architectural information is embedded into interfaces 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; } }

Architecture Descriptions Supported by Archface  Component-and-Connector Architecture  Collaborations among Components 4 Component Collaboration Signature-based Interface is insufficient. Contextual Pointcut-based Interface Control flow, Data flow, Trace match, etc.

Verifiable Bidirectional MDD Not only programming-level but also design-level notion ADL for bridging a gap between architectural design and implementation 5 Architectural Design Archface Program Code Designs and verifies an architecture represented by archface Implements verified archface

Archface as ADL 6 Observer Pattern represented by Archface ADL

Archface as Program Interface 7 Archface (Type) Implement Program Code Type check + formal verification + test

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? 8

Appendix 9

Layered Model 10 Component Connection Component-and-Connector Architecture Contextual Info. Control/Data flow, etc. Contextual Info. Control/Data flow, etc. Type Check (Port check) Type Check (Port check) Alloy (Instance-level connection) Alloy (Instance-level connection) Model Checking (Behavior) Model Checking (Behavior) Test Verification/Validation

Related Work  ArchJava [Aldrich, J. et al. 2002]  Design pattern implementation in Java and AspectJ [Hannemann, J. 2002] 11