Seleção automatizada de serviços web baseada em métricas funcionais e estruturais - Lima, Alysson Alves de (2016)
Software Engineering is a discipline that encompasses all aspects of the production of a software system, from the early stages of the system specification to maintenance, when the system is already being used. A very interesting area in Software Engineering is software reuse, which impacts positively on reducing time, costs and risks in software development processes. Therefore, it can be stated that software reuse improves not only the software development process, but also the product itself. One of the main approaches for software reuse is service oriented development, which adopts the Service-Oriented Architecture (SOA) paradigm. In SOA, services represent a natural evolution of component-based development, and therefore can be defined as loosely coupled, reusable software components, that encapsulate discrete functionality, can be distributed and remotely accessed through coding. It is important to highlight that while SOA is an architectural paradigm for developing software systems, Web Services represent the most widely existing technology adopted to implement SOA exploring protocols based on Internet standards and on XML. With the growth of the market and the use of web services, the tendency is always increase the number of services available for assembly applications in different contexts, making impractical the task of manually selecting the services required to compose a software system. Consequently, one can state that the effort needed to select the required services tends to increase more and more, creating a problem with a large and complex search space, making it necessary the automation of the selection process based on metaheuristic search techniques. In this context, the proposed work aims to automate the web services selection process using techniques of Search-Based Software Engineering, in which the selection strategy is guided by structural and functional metrics that have the purpose of evaluating the similarity between the specifications and respective implementations of candidate services as well as their dependencies, thus reducing the effort of adaptation and integration of web services developed by different suppliers.