GenArch: Automatic Product Derivation in Multi-agent Systems Product Line Elder Cirilo.

Slides:



Advertisements
Similar presentations
Java Autonomic Agent Framework with Self-Testing Andrew Diniz da Costa Camila Nunes
Advertisements

Multi-agent Systems Product Lines Camila Nunes, Elder Cirilo, Ingrid Nunes
Multi-agent Systems Product Lines Camila Nunes, Elder Cirilo, Ingrid Nunes
HL7 V2 Implementation Guide Authoring Tool Proposal
Elton Mathias and Jean Michael Legait 1 Elton Mathias, Jean Michael Legait, Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis,
Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Multi-agent Systems Product Lines Camila Nunes, Elder Cirilo, Ingrid Nunes
Toward an Agent-Based and Context- Oriented Approach for Web Services Composition IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING, VOL. 17, NO. 5,
1 UML ++ Mohamed T IBRAHIM University of Greenwich -UK.
Object-Oriented Analysis and Design
L4-1-S1 UML Overview © M.E. Fayad SJSU -- CmpE Software Architectures Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
C++ Training Datascope Lawrence D’Antonio Lecture 11 UML.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
ACM/JETT Workshop - August 4-5, 2005 UML Modeling using MagicDraw UML for Java Programmers.
Object-Oriented Analysis and Design
The Design Discipline.
A Survey of Software Refactoring Tom Mens, Tom Tourwé
UML - Development Process 1 Software Development Process Using UML (2)
Ontologies Reasoning Components Agents Simulations The Eclipse Process Framework Breno Machado.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
TC Methodology Massimo Cossentino (Italian National Research Council) Radovan Cervenka (Whitestein Technologies)
© 2007 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Eclipse SOA Tools Platform Project Eric Newcomer IONA Technologies.
Introduction to MDA (Model Driven Architecture) CYT.
Spoken dialog for e-learning supported by domain ontologies Dario Bianchi, Monica Mordonini and Agostino Poggi Dipartimento di Ingegneria dell’Informazione.
Building Tools by Model Transformations in Eclipse Oskars Vilitis, Audris Kalnins, Edgars Celms, Elina Kalnina, Agris Sostaks, Janis Barzdins Institute.
2nd TTCN-3 User Conference, June The TTCN-3 Metamodel – A Basis for Tool Integration Ina Schieferdecker TU Berlin/Fraunhofer Fokus Hajo Eichler,
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Selected Topics in Software Engineering - Distributed Software Development.
Component & Deployment Diagram © copyright 2001 SNU OOPSLA Lab.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
L6-S1 UML Overview 2003 SJSU -- CmpE Advanced Object-Oriented Analysis & Design Dr. M.E. Fayad, Professor Computer Engineering Department, Room #283I College.
Ad Hoc Graphical Reports Ad Hoc Graphical Reports Copyright © Team #4 CSCI 6838 Spring CSCI Research Project and Seminar Team# 4 (
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
© Geodise Project, University of Southampton, Knowledge Management in Geodise Geodise Knowledge Management Team Barry Tao, Colin Puleston, Liming.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute.
Application Ontology Manager for Hydra IST Ján Hreňo Martin Sarnovský Peter Kostelník TU Košice.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Object Oriented Analysis and Design 1 Chapter 9 From Design to Implementation  Implementation Model  Forward, Reverse, and Round-Trip Engineering  Mapping.
Chapter 3: Introducing the UML
SwE 455 Tutorial. What is Evolve? Evolve is a tool for defining components and connecting them together to form new components. Also provides a runtime.
Copyright © 2010 Obeo, Made available under the Eclipse Public License v SCA Tools (Helios) Release Review Planned Review Date: June 11, 2010.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
Metadata Driven Aspect Specification Ricardo Ferreira, Ricardo Raminhos Uninova, Portugal Ana Moreira Universidade Nova de Lisboa, Portugal 7th International.
UML AN OVERVIEW. Topics covered in this Session 1. Introducing UML. 2. What constitutes the UML. 3. Concepts of UML.
UML Diagrams By Daniel Damaris Novarianto S..
Chapter 1: Introduction to Systems Analysis and Design
UNIT 1.
Object-Oriented Analysis and Design
Systems Analysis and Design With UML 2
UML Diagrams Jung Woo.
UML: Unified modeling language
SwE 455 Tutorial.
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
JavaServer Faces: The Fundamentals
Analysis models and design models
Chapter 1: Introduction to Systems Analysis and Design
Execute your Processes
Graphical Modeling of INFOD applications
PASSI (Process for Agent Societies Specification and Implementation)
Chapter 1: Introduction to Systems Analysis and Design
Software Development Process Using UML Recap
Presentation transcript:

GenArch: Automatic Product Derivation in Multi-agent Systems Product Line Elder Cirilo

GenArch: A Model-Based Product Derivation Tool

© LES/PUC-Rio Motivation Product Derivation refers to the process of constructing a product from the set of assets specified or implemented for a SPL; Over the last years, instantiation/derivation tools have been proposed to facilitate the selection, composition and configuration of SPL code assets and their respective variabilities; Examples of tools: –Gears –Pure::variants

© LES/PUC-Rio Problem These tools are in general complex and heavyweight to be used by the mainstream developer community. Some deficiencies from the existing tools: –they incorporate a lot of new concepts from the SPL development area; –definition of many complex models and/or functionalities; –they are in general more adequate to work with proactive approaches.

© LES/PUC-Rio Our work This work proposes GenArch, a model-driven product derivation tool. It is centered on the definition of three models: (i) Feature model (ii) Architecture model (iii) Configuration model Our approach motivates: - the generation of initial versions of these models based on a set of code annotations;

© LES/PUC-Rio Approach Overview

© LES/PUC-Rio Approach Overview The purpose of each model of our approach Feature Model –Represent variabilities from the SPL architecture. Architecture Model –Offer a visual representation of code artifacts from the SPL architecture. Configuration Model –Define the mapping between features and code artifacts. It represents the configuration knowledge from a generative approach.

© LES/PUC-Rio Approach in Action Illustrate the tool functionalities through an example. Approach Steps: I. Annotating Java Code with Feature and Variabilities II. Generating and Refining the Approach Models III. Implementing Variabilities with Templates IV. Generating SPL Instances

9 © LES/PUC-Rio Framework JUnit Specification of unit tests. Implementation of Variabilities: –Framework OO > polimorphism –Aspect-Oriented Programming Existing variabilities: –Test suites and test cases –Graphical User Interface (Swing, AWT, Txt) –Test cases extensions (repetition, concurrent execution) >> Aspects

© LES/PUC-Rio I. Annotating Java Code with Feature and Variabilities Two kinds of parent="TestSuite", feature=TestCase) They are processed by a parser to generate initial versions of the models

11 © LES/PUC-Rio Example: TestCase class annotated

© LES/PUC-Rio II. Generating and Refining the Approach Models

13 © LES/PUC-Rio II. Generating and Refining the Approach Models Before After

14 © LES/PUC-Rio II. Generating and Refining the Approach Models

© LES/PUC-Rio Synchronization Implementation Assets & Models The following tasks are accomplished by GenArch (i) removing features from the feature model which are not longer used by the configuration model or some annotation in the code; (ii) removing mapping relationships in the configuration model elements that refer to non-existing features or implementation elements; (iii) removing implementation elements from the architecture model which do not exist anymore; (iv) automatic creation annotations in implementation elements based on the existence of dependency relationships between a feature and an implementation element in the configuration model; and (v) changes in the original implementation elements (add, remove, move, rename) implies in the same changes in the architecture model related to the element.

III. Implementing Variabilities

III. Implementing Variabilities with Templates «IMPORT br::pucrio::inf::les::genarch::models::instance» «DEFINE Main FOR Instance» «FOREACH featureConfigurations (TestSuite",featureModel) AS fc» «FILE fc.attribute + ".java"» package junit.framework; public class «fc.attribute» extends TestSuite { } «ENDFILE» (...) «ENDDEFINE» Before

© LES/PUC-Rio III. Implementing Variabilities with Templates «IMPORT br::pucrio::inf::les::genarch::models::instance » «DEFINE Main FOR Instance» « FOREACH featureConfigurations (TestSuite",featureModel) AS fc» «FILE fc.attribute + ".java"» package junit.framework; public class «fc.attribute» extends TestSuite { public static Test suite() { TestSuite suite = new TestSuite(); «FOREACH fc.features AS child» suite.addTestSuite(«child.attribute».class); «ENDFOREACH» return suite; } «ENDFILE» (...) «ENDDEFINE» After

© LES/PUC-Rio IV. Generating SPL Instances Choose the Variable Features (Feature Model Instance)

© LES/PUC-Rio IV. Generating SPL Instances Load the Product Code in a Eclipse Project

© LES/PUC-Rio Architecture Overview

Multi-Level Customization in SPL Derivation

SPL Implementation Architecture Architecture-centric Software Product Lines Today: Frameworks-Based architectures –Components (Spring, OGSi) –Agents (JADE, JADEX) –Services (OASIS) –Events (Esper) Architecture realization –Massive use of XML and Configuration files Error-prone Product Derivation / Configuration

Multi-level Customization in SPL Derivation Spring Model Classes, Aspectos... JADEX Model XML Feature Model «IMPORT br::pucrio::inf::les::genarch::models::instance» «EXTENSION br::pucrio::inf::les::genarch::models::Model» «DEFINE Main FOR Instance» «FILE "User.agent.xml"-» (...) «LET domainModelElement(mas",user",domainModels) AS u» «FOREACH u.capabilities AS c» «c.fragment.content» «FOREACH» «ENDLET» (...) «ENDFILE» «ENDDEFINE»

DSAM Composition Domain-specific Architecture Models

Automatic Product Derivation in Multi-agent Systems Product Line

OLIS (JADEX/Spring) Spring Jadex

OLIS – Configuration Metrics XML files –10 JADEX files –4 Spring application context Lines of code –JADEX: 1144 –Spring: 382 –Total: 1526

MAS Model (I) Metamodel Agent Capability Goal Belief Plan Event Expression Goal Belief Plan Event Expression

MAS Model (II)

Spring Model (II)

Configuration Knowlege Mapping between domain elements e features expression Mapping between domain elements and implementation elements (Classes, Aspects, Fragments,...)

Template: JADEX Agent «IMPORT br::pucrio::inf::les::genarch::models::instance» «EXTENSION br::pucrio::inf::les::genarch::models::Model» «DEFINE Main FOR Instance» «FILE "User.agent.xml"-» (...) «LET domainModelElement(mas",user",domainModels) AS u» «FOREACH u.capabilities AS c» « c.fragment.content » « FOREACH » «ENDLET» (...) «ENDFILE» «ENDDEFINE» «IMPORT br::pucrio::inf::les::genarch::models::instance» «EXTENSION br::pucrio::inf::les::genarch::models::Model» «DEFINE Main FOR Instance» «FILE "User.agent.xml"-» (...) «LET domainModelElement(mas",user",domainModels) AS u» «FOREACH u.capabilities AS c» « c.fragment.content » « FOREACH » «ENDLET» (...) «ENDFILE» «ENDDEFINE»

Extension Points Domain Model Domain Model Extractor

Derivation Process Frameworks-Specifics Elements Classes, Aspects, Files... Core Assets Architecture Model Modeling GenArch Configuration Model Configuration Knowledge Product DSLs Templates Feature Model

Conclusions GenArch is lightweight tool that can be used to derivate SPL or Framework instances GenArch fit all the SPL adoption approach GenArch was used in a commercial scenario to derivate Mobile Games The GenArch can be extended incrementally

Future Works Integrate GenArch with more high level models –Business Process –Active Diagram Feature Model (GenArch) in Autonomic Computing –Use Feature model to manage self-adaptation in autonomic environments

GenArch: Automatic Product Derivation in Multi-agent Systems Product Line Questions?

Feature Model GenArch Agent/Service Maven/Ant Repository Runtime Environment Request a new feature Obtain Feature Metdata Deploy the derivate Agent/Service Derivate Derivate a script Agent/Service