27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

A Proposal of Reference Architecture for the<br />

Reconfigurable Software Development<br />

Frank José Affonso<br />

Department of Statistics, Applied Mathematics and Computation<br />

Univ Estadual Paulista - UNESP<br />

Rio Claro - SP, Brazil<br />

affonso.frank@gmail.com / frank@rc.unesp.br<br />

Evandro Luis Linhari Rodrigues<br />

Department of Electrical Engineering<br />

University of São Paulo - USP<br />

São Carlos - SP, Brazil<br />

evandro@sc.usp.br<br />

Abstract—The software development process is marked by<br />

constant changes in customer needs or technological innovations<br />

which have emerged in recent years. Moreover, we<br />

can highlight the search for tools and automated processes<br />

to assist in development activities. In this context, this paper<br />

aims to propose a reference architecture model for developing<br />

reconfigurable software, which has a specific feature, allowing<br />

changes to be incorporated without the need of its execution<br />

interruption. This model allows one to create a standard for<br />

the software development of this nature, making requests for<br />

changes which will be implemented naturally. We believe, with<br />

this paper proposal, a concrete architecture for reconfigurable<br />

systems can be defined.<br />

I. INTRODUCTION<br />

The need for computational systems endowed with runtime<br />

reconfiguration characteristics is an old desire of<br />

software engineers to incorporate their customers’ emerging<br />

needs [1]. To meet this desire, there are computational reflections<br />

[2], [3], [4] as a mechanism for the implementation<br />

of software reconfiguration in runtime. This mechanism can<br />

be applied to several system approaches in development,<br />

such as oriented objects, components, aspects, services,<br />

remote method invocation and the combination of both [5].<br />

Regarding to the reconfiguration systems context, we<br />

have observed that the related work corresponds to individual<br />

projects, without the adoption of tools and engineering<br />

processes. Concerning the two last items, some authors<br />

Whitehead [6], Nakagawa [7], report about the lack of tools<br />

to fully meet the project phases (software life cycle) and,<br />

when they meet them, there is a problem in relation to<br />

investment (high cost) for acquisition and maintenance.<br />

Given the mentioned context, reconfigurable software in<br />

runtime and engineering software tools to support all project<br />

phases, this paper proposes a reference architecture model<br />

for reconfigurable systems such as automated processes.<br />

This proposal is associated with use of a Reconfigurable<br />

Software Development Methodology (RSDM), a Reconfigurable<br />

Execution Environment (REE) and a software<br />

engineering tool, named ReflectTools, both developed in the<br />

authors’ previous work [5], [8].<br />

The RSDM provides a guidelines set for developing<br />

reconfigurable software (classes, components, aspects, services)<br />

- named software artifacts. Basically, its guidelines<br />

lead to the development based on requirements segmentation,<br />

leaving the artifact free of any non-functional requirements.<br />

Furthermore, it adopts the architectural style based<br />

on layers to organize the application and requirements combination<br />

(functional and non-functional). This combination<br />

can be made by aspects or dependency injection [5], [9].<br />

The REE and ReflectTools represent the automatic mechanisms<br />

to support the RSDM of guidelines. Despite the<br />

project specific features, was established the ability to<br />

integrate with the tools (workbenches) development, such<br />

as Eclipse and Netbeans. These tools are used in the<br />

initial steps of RSDM (modeling and system developing).<br />

After completing these steps, the projects are transferred to<br />

ReflectTools so that a software engineer or developer can<br />

use it directly in the REE to automate tasks [5].<br />

The reference architecture model for reconfigurable systems<br />

helps in the processes automation in the REE and<br />

software engineer tools (for example, ReflectTools). This<br />

model not only helps to understand the domain structure but<br />

also the vocabulary applied to reconfigurable systems. Thus,<br />

we believe, with this paper proposal, a concrete architecture<br />

for the use in reconfigurable systems can be defined.<br />

II. CONCEPTS, DEFINITIONS AND RELATED WORK<br />

This section presents the concepts, definitions and related<br />

work that contributed to the development of this paper.<br />

Initially are presented concepts of Computational Reflection<br />

(CR) and their reconfiguration techniques. Following are<br />

presented related work on software architecture.<br />

The CR [2], [10] can be defined as any activity performed<br />

by a system on itself. The main objective is to obtain<br />

information about its own activities, aiming to improve<br />

its performance, introduce new capabilities (features or<br />

functionality), or even solve its problems by choosing the<br />

best procedure.<br />

668

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!