Design and use of software architectures: adopting and evolving a product-line approach
Design and use of software architectures: adopting and evolving a product-line approach
Playing Detective: Reconstructing Software Architecture from Available Evidence
Automated Software Engineering
A Software Architecture Reconstruction Method
WICSA1 Proceedings of the TC2 First Working IFIP Conference on Software Architecture (WICSA1)
Combining Static and Dynamic Views for Architecture Reconstruction
CSMR '02 Proceedings of the 6th European Conference on Software Maintenance and Reengineering
A Study on Agreement Between Participants in an Architecture Assessment
ISESE '03 Proceedings of the 2003 International Symposium on Empirical Software Engineering
Basic Concepts and Taxonomy of Dependable and Secure Computing
IEEE Transactions on Dependable and Secure Computing
The COTS Software Obsolescence Threat
ICCBSS '06 Proceedings of the Fifth International Conference on Commercial-off-the-Shelf (COTS)-Based Software Systems
Lightweight Dependency Models for Product Lines
SPLC '06 Proceedings of the 10th International on Software Product Line Conference
Towards A Process-Oriented Software Architecture Reconstruction Taxonomy
CSMR '07 Proceedings of the 11th European Conference on Software Maintenance and Reengineering
Source Code Analysis: A Road Map
FOSE '07 2007 Future of Software Engineering
Evolving Industrial Software Architectures into a Software Product Line: A Case Study
QoSA '09 Proceedings of the 5th International Conference on the Quality of Software Architectures: Architectures for Adaptive Software Systems
Hi-index | 0.00 |
ABB is a large industrial company with a broad product portfolio that contains products that can be categorized as highly complex industrial systems. Software embedded in complex industrial systems must support rigid system dependability requirements. It is not only a challenge to design and implement these systems as dependable, but it is also difficult to maintain this important property over time. There are several factors that make software evolution a challenging task, such as: size of the software base is measured in order of MLOC, products are long-lived and extended to support new requirements over time longer than 10 years. Because of personnel turnover important knowledge is lost from time to time, and the only artifact that is really up-to-date is the implementation itself. Therefore, to obtain an up-to-date view of the system and prevent expensive mistakes during system evolution, it is beneficial to find practical ways to obtain an up-to-date view on an architectural level without having to read thousands of lines of source code. These activities should be seen as an important contribution for preventing the introduction of faults into software systems since they contribute to improve and maintain the overall system dependability. This experience paper provides practical advices on how to reconstruct the architecture of existing systems by combining the use of tools and the existing knowledge within the organization. The paper is based on experiences from two cases in different sub domains within industrial automation.