Reengineering of OpenOpal
The software OpenOpal, with its successor also denoted as OpenCI, developed at FHNW gained within the years of development in functionality and complexity. A reverse engineering and reengineering of the software architecture helps to recover the big picture and counteract the heterogeneous nature of the software.
Gachnang, Philip, 2016
Art der Arbeit Bachelor Thesis
Auftraggebende Institut für Wirtschaftsinformatik, HSW FHNW
Betreuende Dozierende Schaaf, Marc
Keywords OpenOpal, OpenCI, reverse engineering, software architecture, software design, framework, optimization, reengineering
Views: 9 - Downloads: 5
The metaheuristic optimization framework OpenOpal has been developed for 10 years and gained in functionality as well as in complexity. Many different projects with different teams and developers did work on OpenOpal. So far the software has been developed primarily on personal initiative. Especially student projects in the scope of team projects and bachelor or master theses have contributed to the development. OpenOpal is heterogeneous, the many different projects and frequent change of developers has resulted in a software, which is difficult to maintain and extend.
By reverse engineering and documenting OpenOpal's architecture in the 4+1 model view design of software architecture has the big picture been recovered. UML diagrams e.g. package, class, sequence, component and deployment diagrams are providing a solid overview. The major problems of the architecture were discovered in a critical review of the reverse engineered architecture. A prototyping helped to develop a solution for OpenOpal. The focus was to counteract the heterogeneity by the software design. Finally, the elaborated solution has been transferred into the application OpenOpal.
The two primary goals of this work were the reverse engineering of OpenOpal's architecture and to reengineer the architecture in focus of OpenOpal's heterogeneity.
The reverse engineered architecture has been documented. Developers are now able to understand OpenOpal's architecture and use the framework more effectively and efficiently.
The major problem in perspective of the heterogeneity was detected: Modules of OpenOpal must build their own sealed subsystem to counteract the heterogeneity. A redesign has been elaborated and first developed as prototype. The prototype serves as proof of concept, demonstration and inspiration for OpenOpal's architectural redesign. Finally, the elaborated concept of real modularity has been implemented in OpenOpal. The framework is now able to load JARs dynamically at run time and use the Modules of these JARs. This evacuates the heterogenic nature of OpenOpal’s Modules and the software is no longer affected directly by its Modules.
Studiengang: Wirtschaftsinformatik (Bachelor)
Vertraulichkeit: öffentlich