ALMEIDA, H. O.; http://lattes.cnpq.br/4993914550234923; ALMEIDA, Hyggo Oliveira de.
Resumo:
Software evolution has been pointed out as an activity of great impact on the total cost and time of the software engineering process. Such an impact is more significative when requirement changes have not been predicted, or anticipated, during the initial software design. Managing this kind of evolution is more complex in some application domains in which software changes must be performed without stopping the system execution, due to financial or safety reasons. This work presents an infrastructure for developing software with support to dynamic unanticipated evolution. More specifically, we propose a component model,software frameworks and a set of tools that allow developing software with support to unpredicted changes. It is presenteda generic framework to implement the component model specification as well as its implementation in Java, Python, C++ and C Sharp. Also, an extension of the generic framework for developing enterprise applications is presented. Also, we introduce a model to analyze the performance of applications developed with the infrastructure. Tools constructed to support the development of
components and the composition, performance analisys, and execution of applications are also described. We also present the application of the Alloy formal method to specify a mechanism to allow developers to verify if a given unanticipated evolution scenario will impact the system specification correctness. To guide developers in using the proposed infrastructure, we present a process to develop software with support to dynamic unanticipated evolution. Finally,several applications of the proposed infrastructure in the context of pervasive computing, multi-agent systems and mobile virtual communities are presented.