Eduardo Martins Guerra

Learn More
Metadata-based frameworks are those that process their logic based on the metadata of the classes whose instances they are working with. Many recent frameworks use this to get a higher reuse level and to be more suitably adapted to the application needs. However, there is not yet a complete best practices documentation or reference architecture for the(More)
In order to customize their behavior at runtime, a wide sort of modern frameworks do use code annotations at the applications " classes as metadata configuration. However, despite its popularity, this type of metadata definition inserts complexity and semantic coupling that is ignored by traditional software metrics. This paper presents identified bad(More)
Test driven development is a technique in which the refactoring occurs all the time, in the application code and in the test code. But there is not a method to guarantee that the test code behavior after one refactoring remains unchanged. This paper presents a representation based on the JUnit unit test structure, as well as a classification of test code(More)
The usage of metadata-based frameworks is becoming popular for some kinds of software, such as Web and enterprise applications. However, it is not clear for which kinds of problems this approach can be applied. This paper presents a study that investigated the metadata usage in existing frameworks and documented recurrent solutions as architectural(More)
Code annotations are a new feature introduced in Java 5.0 and ever since have begun to be widely adopted in the development of frameworks and applications. In order to provide better code structure and reduce the number of necessary configurations, the frameworks developed with code annotations used common practices in the annotation definitions. This paper(More)
Software developers currently understand that the real complexity in most applications lies in the problem domain the software is dealing with. The approach known as domain-driven design follows the premises that, for most software projects, the primary focus should be on the domain and domain logic, and that complex domain designs should be based on a(More)
There are times during the normal execution flow of programs, when an object of a class wishes to be notified about some special event which may take place in a method it calls. Some other times, this event might not happen in the directly called method, but in another one, deeper in the call stack, beyond the knowledge of the caller class. To overcome(More)