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.

Figure. 1.<br />

Reference Architecture Model<br />

the information contained in its current state should be<br />

preserved. The artifact is modified and the information is<br />

reinserted so that the execution is not interrupted. Basically,<br />

this module should have two functionalities to convert an artifact<br />

into a file (.xml) and vice versa. The choice of XML,<br />

eXtensible Markup Language, to perform these operations is<br />

related to the following facilities: files handling (reading and<br />

writing), integration with different programming languages<br />

and implementation facility.<br />

The reflection module (reflectManager) aims to<br />

perform the artifacts "disassembly" to obtain structural<br />

information (attributes) and behavior (methods). Basically,<br />

the artifacts disassembly is conducted by using<br />

the reflectManager.reflection package, which<br />

uses the annotations module to identify changes that<br />

can be performed on the artifacts. This information<br />

is retrieved and inserted into a metamodel in the<br />

reflectManager.model package. After instantiating<br />

the metamodel, new information according to the clients’<br />

interests are added to create a new metamodel. This metamodel<br />

is transferred to the source code generator module<br />

to create the new artifact.<br />

The source code generator module (sourceCodeManager)<br />

aims to generate the software artifacts based on<br />

metamodel (instantiated in reflection module). To execute<br />

this operation, the software engineer must provide an artifact<br />

template based on the architectural pattern (logical<br />

layer, persistence layer, and others). This module should<br />

has four functionalities to generate the source code that<br />

meets the reconfiguration interests: (1)when only the artifact<br />

source code, without modification, must be generated,<br />

(2)when only an attributes list should be added or removed<br />

from the artifact. In this case, specifically, the getters<br />

and setters methods that manipulate these attributes are<br />

modified, (3)when only a methods list should be added or<br />

removed from the artifact, and (4)when an attributes list<br />

and a methods list should be added or removed from the<br />

artifact.<br />

The query and rules module (queryManager) aims<br />

to be consulted by software artifacts in REE repositories.<br />

When an artifact is developed and inserted into<br />

the REE, an automatic mechanism (rulesFactory)<br />

is responsible for disassembling this artifact and creating<br />

rules set that describes the artifact functionalities.<br />

These rules are stored in REE repositories and<br />

reused when a search (rulesEngine) is performed.<br />

The rules model (rulesFactory package) should be<br />

compatible with the artifact metamodel in the package<br />

reflectManager.model.<br />

The configuration module (configurationManager)<br />

aims to control the size of software artifacts when the<br />

reconfiguration is performed. The artifacts are developed to<br />

670

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

Saved successfully!

Ooh no, something went wrong!