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.

Fig. 11: Overwritten Method<br />

Fig. 12: Altered application Class Diagram<br />

With the model obtained, it is possible to implement the<br />

desired application using the SWING framework.<br />

This is only a simple model. The framework model could<br />

be refined, adding more classes and services to allow more<br />

complex applications, although, currently, the method only<br />

supports applications with a linear sequence of activities, that<br />

is, loops and branches are not yet supported. But the possibility<br />

of reusing a framework model, specially considering<br />

that different software engineers can use the same model in<br />

multiple projects, presents an opportunity to reduce the costs<br />

of using frameworks.<br />

V. RELATED WORKS<br />

This works is based on the web-service composition area.<br />

This area seeks a way to automatically create new Service<br />

Oriented systems, using as input a set of available webservices,<br />

usually described in BPEL.<br />

In [10] the authors describe a way to use model-checking<br />

based planning to build new systems, using as input a set<br />

of BPEL descriptions of web-services, while [11] uses a<br />

knowledge based approach to a similar problem. Another<br />

approach is found in [12], where the authors show a method<br />

that can create a finite state machine representation of the<br />

desired system, based on the behavior description of the<br />

available services.<br />

There is an advantage when working with web-services,<br />

instead of object-oriented systems, because web-services are<br />

well encapsulated components, that can more easily be chained<br />

together than their object-oriented counterparts. Moreover,<br />

the services provided can be considered black-boxes, that is,<br />

only their input and output have to be considered during<br />

development, making possible to ignore the internal workings<br />

and state of the service during usage, which is not true when<br />

working with frameworks.<br />

Frameworks frequently have strict conditions under which<br />

their functionalities can be used. The method presented herein<br />

not only identifies which components from the framework<br />

must be used, but also creates a sequence of methods that<br />

ensure those components will be in the correct state at the<br />

time of their invocation.<br />

Other works have also addressed the reusability problem.<br />

For instance, in [13], a method to identify which parts of<br />

a system can be reused is designed, but it focus more on<br />

identifying ’which’ components can be used, as opposed<br />

to ’how’ to reuse already available components, as is the<br />

case with frameworks. There is also [14], which addresses<br />

the problem in an algebraic manner. The paper presents an<br />

interesting approach, but since it predates the rise of the UML,<br />

it does not address the use concepts of classes, objects and the<br />

exchange of messages.<br />

VI. CONCLUSION<br />

A model-to-model transformation method is presented that<br />

identifies which components from a desired framework should<br />

be used to meet the application requirements.<br />

This method allows for applications to be described as a<br />

sequence of services executions, identifying how to combine<br />

them to implement the desired solution. The aim of this<br />

method, is to make easier to reuse high level models, both<br />

framework and application models. The same application<br />

model could be used several times, with different framework<br />

models, in the same way as the framework model could be<br />

used with several applications.<br />

This method has limitations in its current implementation.<br />

The model generated by the transformation, albeit correct, is<br />

not complete. It lacks the description of how to initialize the<br />

frameworks, using the example shown; for instance, it does<br />

not include a “main” method, which is required in any JAVA<br />

application to be correctly initiated.<br />

Another restriction concerns the input model. The framework<br />

should be modeled in a very precise manner, in order<br />

not to introduce errors in the logical planner, and a nonstandard<br />

way of using the sequence diagrams to describe the<br />

method that can be overwritten without introducing errors in<br />

the framework behavior. The models, both framework and<br />

application, are also very dependent on the use of fixed names<br />

to describe the interfaces (for the framework) and activities<br />

(for the application). In the current state, the application model<br />

is also constrained in the Activity description, in which it is<br />

not currently possible to use loops or branches.<br />

Finally, the model generated through this transformation<br />

process does not consider some of the best practices of<br />

568

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

Saved successfully!

Ooh no, something went wrong!