Recuperação de modelos de classes orientados a aspectos a partir de sistemas orientados a objetos usando refatorações de modelos.
Parreira Júnior, Paulo Afonso
MetadataShow full item record
Aspect-Oriented Programming allows encapsulating the so-called "Crosscutting Concerns (CCC) - software requirements whose implementation is tangled and scattered throughout the functional modules - into new abstractions, such as Aspects, Pointcuts, Advices and Inter-type Declarations. The reengineering of an OO software to an AO is not an easy task due to the existence of different abstractions in these technologies. We develop a set of nine refactorings of annotated OO class models to AO class models. In the context of this work, "annotated class models" are UML class diagrams whose elements (classes, interfaces, attributes and methods) are annotated with stereotypes representing the existing CCC in the application source code. The set of refactorings developed is divided into: i) generic refactorings; and ii) specific refactorings. Three generic refactorings and six specific refactorings to the persistence (which is divided into management and connections, transaction and synchronization) and logging concerns and to the Singleton and Observer design patterns were created. The generic refactorings are responsible for transforming an annotated OO model with indications of CCC into a partial AO model. This model is called partial because it is usually not fully modularized, i.e., there are remaining software elements stereotyped with indications of particular concerns. These refactorings are applicable to any kind of CCC; this is possible, because what is taken into consideration is the scenario in which these concerns appear in the class model. The specific refactorings are responsible for transforming partial AO models into final ones, whose CCC have been fully modularized in aspects. For that, each refactoring has a set of specific steps for modularization of a particular kind of concern. An Eclipse plug-in, called MoBRe was developed to assist the software engineer in the tasks of refactoring application. As a major contribution, the refactorings proposed in this paper allow obtaining well designed AO models. This is so because: i) they provide a step-by-step guide to the modularization of certain CCC and can avoid that software engineers choose inappropriate strategies for modularization of these CCC; and ii) they were prepared based on good design practices recommended by the scientific community. Thus, besides, the models the use of refactorings can lead to generation of better-quality code, for example, free of bad smells. A case study was conducted to assess the applicability of the proposed refactorings in order to compare an AO model generated by them with an AO model obtained from the literature.
Showing items related by title, author, creator and subject.
Leite, Bruno Dias (Universidade Federal de São CarlosBRUFSCarPrograma de Pós-graduação em Ciência da Computação, 2014-10-20)Software as a Service (SaaS) represent a form of software distribution on demand and accessible via the Internet. The development of SaaS enables service users (tenants) to benefit from the low cost of deployment and ...
Affonso, Frank José; http://genos.cnpq.br:12010/dwlattes/owa/prc_imp_cv_int?f_cod=K4771159Y6 (Universidade Federal de São CarlosBRUFSCarPrograma de Pós-graduação em Ciência da Computação, 2003-09-05)With the technological evolution and the increasing utilization of the Internet, companies and governmental institutions have been looking for modern solution to replace and improve their legacy systems. These kind of ...
Ormonde, Paulo Cavalcante; http://lattes.cnpq.br/1823332342715008 (Universidade Federal de São CarlosBRUFSCarPrograma de Pós-graduação em Estruturas e Construção Cívil, 2013-03-10)The goal of this work was develop an free educational computation tool that automates the nonlinear geometric analysis (by simple and approximate methods), the design and classification based on displacement for planar ...