Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Quality-driven software re-engineering
Journal of Systems and Software - Special issue on: Software architecture - Engineering quality attributes
Comparison of UML and text based requirements engineering
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Using dependency models to manage complex software architecture
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Design patterns and Fortran 90/95
ACM SIGPLAN Fortran Forum
Comments on the Arjen Markus article: Design patterns and Fortran
ACM SIGPLAN Fortran Forum
How to Express C++ Concepts in Fortran90
Scientific Programming
The transition and adoption to modern programming concepts for scientific computing in Fortran
Scientific Programming - Fortran Programming Language and Scientific Programming: 50 Years of Mutual Growth
Design patterns for multiphysics modeling in Fortran 2003 and C++
ACM Transactions on Mathematical Software (TOMS)
A Case Study in Software Reengineering
ITNG '10 Proceedings of the 2010 Seventh International Conference on Information Technology: New Generations
Hi-index | 0.00 |
SeisSol is a scientific software for the numerical simulation of seismic wave phenomena. However, there are three main problems in the SeisSol project. First, the project documentation is incomplete. Second, the source code comprehensibility is low. Third, the dependencies between the modules in the system are complicated. To solve the problems and to enhance the software quality, we perform a reengineering process on SeisSol. The process contains four steps, reverse engineering, requirements reengineering, redesign and source code refactoring. In the requirements reengineering step, we employ a novel approach to elicit requirements efficiently for such a scientific computing project. Through the reengineering process, the documentation of source code, requirements and the improved design is generated, the system is more modularized and easier to be extended, as well as the source code are more comprehensible. e also discuss the lessons learned during the reengineering process.