Learn More
Many companies develop software product lines-collections of similar products-by cloning and adapting artifacts of existing product variants. Transforming such cloned product variants into a "single-copy" software product line representation is considered an important software re-engineering activity, as reflected in numerous tools and methodologies(More)
Fraunhofer SAVE (Software Architecture Visualization and Evaluation) is a tool for analyzing and optimizing the architecture of implemented software systems. SAVE is a joint development between Fraunhofer IESE (Institute for Experimental Software Engineering IESE in Kaiserslautern, Germany) and Fraunhofer Center Maryland (Center for Experimental Software(More)
The Service-Oriented Architecture paradigm (SOA) is commonly applied for the implementation of complex, distributed business processes. The service-oriented approach promises higher flexibility, interoperability and reusability of the IT infrastructure. However, evaluating the quality attribute security of large and complex SOA configurations is not(More)
In the design of complex and variable software systems, one of the key steps is to select the variability mechanism that defines how variable features are realized on the design and code level. Although different variability mechanisms were invented and applied in practice for decades, there are not many studies that compare these mechanisms based on(More)
Software reuse approaches, such as software product lines, can help to achieve considerable effort and cost savings in product development for sets of software systems with a significant overlap in functionality. However, in the practice many organizations at first develop a number of similar software products without explicitly planning for strategic(More)
We developed a reverse engineering technique, named Variant Analysis, aimed for recovering and visualizing information about commonalities and differences that exist in the source code of multiple similar software systems. The delivered information is available on any level of system hierarchy, from single lines of code up to whole software systems. The(More)