A Proposal of Reference Architecture for the Reconfigurable Software Development Frank José Affonso Department of Statistics, Applied Mathematics and Computation.

Slides:



Advertisements
Similar presentations
Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Architecture Representation
15 th International Conference on Design Theory and Methodology 2-6 September 2003, Chicago, Illinois Intelligent Agents in Design Zbigniew Skolicki Tomasz.
The Acquisition and Sharing of Domain Knowledge Contained in Software with a Compliant SIK Architecture by Prof. dr. Vasile AVRAM Academy of Economic Studies.
Designing Multimedia with Fuzzy Logic Enrique Diaz de Leon * Rene V. Mayorga ** Paul D. Guild *** * ITESM, Guadalajara Campus, Mexico ** Faculty of Engineering,
Software Reuse SEII-Lecture 28
University of Piraeus Department of Technology Education and Digital Systems Centre for Research and Technology - Hellas(C.E.R.T.H.) Informatics and Telematics.
Software Engineering Techniques for the Development of System of Systems Seminar of “Component Base Software Engineering” course By : Marzieh Khalouzadeh.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Software Architecture in Practice
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Introduction to Software Testing
Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common.
Incorporating database systems into a secure software development methodology Eduardo B. Fernandez, Jan Jurjens, Nobukazu Yoshioka, and Hironori Washizaki.
TECHNIQUES FOR OPTIMIZING THE QUERY PERFORMANCE OF DISTRIBUTED XML DATABASE - NAHID NEGAR.
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
Spectra Software Defined Radio Products Applying Model Driven Design, Generative Programming, and Agile Software Techniques to the SDR Domain OOPSLA '05.
JAAF+T: A Framework to Implement Self- Adaptive Agents that Apply Self-Test Andrew Diniz da Costa
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
1 Conceptual Modeling of User Interfaces to Workflow Information Systems Conceptual Modeling of User Interfaces to Workflow Information Systems By: Josefina.
UML - Development Process 1 Software Development Process Using UML (2)
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Software Product Families. Generative Programming Main text: Ian Sommerville, Software Engineering, 8 th edition, chapter 18 Additional readings: K. Czarnecki.
A Generative and Model Driven Framework for Automated Software Product Generation Wei Zhao Advisor: Dr. Barrett Bryant Computer and Information Sciences.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
TC Methodology Massimo Cossentino (Italian National Research Council) Radovan Cervenka (Whitestein Technologies)
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Cohesive Design of Personalized Web Applications Presented by Yinghua Hu Schwabe, D. Mattos Guimaraes, R. Rossi, G. Pontificia Univ. Catolica do Rio de.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Generative Programming. Automated Assembly Lines.
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Model-Driven Engineering of Behaviors in User Interfaces Efrem Mbaki & Jean Vanderdonckt Université catholique de Louvain (UCL) Louvain School of Management.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Towards Multi-Paradigm Software Development Valentino Vranić Department of Computer Science and Engineering Faculty of Electrical Engineering.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
West Virginia University Sherif Yacoub, Hany H. Ammar, and Ali Mili A UML Model for Analyzing Software Quality Sherif Yacoub, Hany H. Ammar, and Ali Mili.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Agents for Case-based software reuse Stein Inge Morisbak Web:
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
George Edwards Computer Science Department Center for Systems and Software Engineering University of Southern California
Software, IEE Proceedings, Vol.152, Num.3, June 2005,Page(s): Prasanthi.S March, Java-based component framework for dynamic reconfiguration.
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
A Graphical Modeling Environment for the
Software Reuse ©Ian Sommerville 2006.
Model-Driven Analysis Frameworks for Embedded Systems
Introduction to Software Testing
Automated Analysis and Code Generation for Domain-Specific Models
Presentation transcript:

A Proposal of Reference Architecture for the Reconfigurable Software Development Frank José Affonso Department of Statistics, Applied Mathematics and Computation Univ Estadual Paulista - UNESP Rio Claro - SP, Brazil / Evandro Luis Linhari Rodrigues Department of Electrical Engineering University of São Paulo - USP São Carlos - SP, Brazil The 24th International Conference on Software Engineering and Knowledge Engineering (SEKE 2012) July /

Main topics Introduction; Concepts and Definitions; Related Work; A Proposal of Reference Architecture; Conclusions; 2

Introduction Computational systems endowed with runtime reconfiguration characteristics; Ability to incorporate customers’ emerging needs; Reconfigurable software must attend many development approach: Object-Oriented; Aspect-Oriented; Service-Oriented; Remote Method Invocation. 3

Introduction (cont.) The Development of Reconfigurable Software needs: Reconfigurable Software Development Methodology (RSDM); Reconfigurable Execution Environment (REE); Software engineering tool; Architectural models; 4

Concepts and Definitions The Computational Reflection can be defined as any activity performed by a system on itself; The main objective is to obtain information about its own activities, aiming to improve its performance, introduce new capabilities (features or functionality), or even solve its problems by choosing the best procedure. 5

Reflection: Reflections Concepts and Definitions (cont.) HumansSoftware Reflections 6

Related Work According to some authors, the reconfigurable software development is associated: Flexible Architectural Model; Automated Processes; Software Engineering Tools; 7

A Reference Architecture The Reference architecture model for the reconfigurable software development such as automated processes; This model represents a real solution (abstraction), based on a particular domain (reconfigurable systems) and experience (patterns) to treat the runtime software reconfiguration without the developers’ participation. 8

A Reference Architecture (cont.) Reconfiguration like “assembly line”; Uncertainties Process conducted by human 9

A Reference Architecture (cont.) Reconfiguration like “assembly line”; Automated process 10

A Reference Architecture (cont.) Model organized in packages: 11

A Reference Architecture (cont.) The annotations module aims to assist the software engineer in the definition of artifacts reconfiguration level which are being developed: Metadata (annotation) indicating the reconfiguration level supported by the artifact must be present; It is recommended that this module has a functionality to verify if the annotations were inserted correctly. 12

A Reference Architecture (cont.) The state management module aims to preserve the artifacts execution state; When a software artifact is selected for manual or automatic reconfiguration, the information contained in its current state must be preserved. 13

A Reference Architecture (cont.) The reflection module aims to perform the artifacts "disassembly" to obtain structural information (attributes) and behavior (methods): The artifacts are disassembled; A metamodel is instantiated; New information, according to the clients' interests, are added to create a new metamodel; The new metamodel is transferred to the source code generator module to create the new artifact. 14

A Reference Architecture (cont.) The source code generator module aims to generate the software artifacts based on metamodel (instantiated in reflection module); To execute this operation, the software engineer must provide: An artifact template based on the architectural pattern (logical layer, persistence layer, and others); 15

A Reference Architecture (cont.) The query and rules module aims to be consulted by software artifacts in REE repositories; When an artifact is developed and inserted into the REE, an automatic mechanism rulesFactory is responsible for disassembling this artifact and creating rules set that describes the artifact functionalities. These rules are stored in REE repositories and reused when a search is performed. 16

A Reference Architecture (cont.) The configuration module aims to control the size of software artifacts when the reconfiguration is performed; The artifacts are developed to meet specific requirements and to act in a specific domain; This module allows performing the growth control in the artifacts size and a number of adaptations. 17

A Reference Architecture (cont.) The reconfiguration module can be considered the "orchestrator" of the model, since it performs call and coordinates all the activities of the other modules; This module must implement a "connection point" as a system supervisor (reconfigurator package) between the dynamic compiler (dynamicCompiler package) and dynamic classloader (dynamicClassLoader package); The module functionalities aim to compile/recompile the artifacts software and upload its binary code in runtime (memory). 18

Conclusions This work presented a proposal for reference architecture model for the reconfigurable systems development using automated processes; Standardization should be adopted in the design and development of reconfigurable systems; Reusability of the reference architectural model and creation of concrete architecture model for reconfigurable software development. 19

Main References X. Hongzhen and Z. Guosun, “Retracted: Specification and verification of dynamic evolution of software architectures,” Journal of Systems Architecture, vol. 56, no. 10, pp. 523 – 533, P. Maes, “Concepts and experiments in computational reflection,” SIGPLAN Not., vol. 22, no. 12, pp. 147–155, Dec F. J. Affonso, “Metodologia para desenvolvimento de software reconfigurável apoiada por ferramentas de implementação: uma aplicação em ambiente de execução distribuído e reconfigurável,” Tese de doutorado, EESC/USP, maio J. Whitehead, “Collaboration in software engineering: A roadmap,” in 2007 Future of Software Engineering. Washington, DC, USA: IEEE Computer Society, 2007, pp. 214–225. E. Y. Nakagawa, F. C. Ferrari, M. M. Sasaki, and J. C. Maldonado, “An aspect-oriented reference architecture for software engineering environments,” Journal of Systems and Software, vol. 84, no. 10, pp – 1684, F. J. Affonso and E. L. L. Rodrigues, “Reflecttools: Uma ferramenta de apoio ao desenvolvimento de software reconfigurável,” Revista Brasileira de Computação Aplicada, vol. 3, no. 2, pp. 73–90, P. J. Clemente, J. Hernández, J. M. Conejero, and G. Ortiz, “Managing crosscutting concerns in component based systems using a model driven development approach,” Journal of Systems and Software, vol. 84, no. 6, pp – 1053, H. Gomaa and M. Hussein, “Software reconfiguration patterns for dynamic evolution of software architectures,” in Software Architecture, WICSA Proceedings. Fourth Working IEEE/IFIP Conference on, june 2004, pp. 79 – 88. B. J. Williams and J. C. Carver, “Characterizing software architecture changes: A systematic review,” Information and Software Technology, vol. 52, no. 1, pp. 31 – 51, A. Navasa, M. A. Pérez-Toledano, and J. M. Murillo, “An adl dealing with aspects at software architecture stage,” Information and Software Technology, vol. 51, no. 2, pp. 306 – 324, A. L. Santos, K. Koskimies, and A. Lopes, “Automating the construction of domain-specific modeling languages for object-oriented frameworks,” Journal of Systems and Software, vol. 83, no. 7, pp – 1093, R. Kazman, L. Bass, and M. Klein, “The essential components of software architecture design and analysis,” Journal of Systems and Software, vol. 79, no. 8, pp – 1216,