🤖 AI Summary
This study investigates the relationship between embedded automotive software complexity and maintenance effort. Method: Drawing on two real-world case studies from Scania AB’s in-vehicle software systems, we systematically distinguish internal (e.g., variant management, hardware abstraction), emergent (e.g., system aging, continuous evolution), and external complexity (e.g., cross-organizational coordination, volatile requirements). Using qualitative methods—including in-depth interviews, document analysis, and strategy abstraction—we integrate cross-dimensional metrics such as McCabe cyclomatic complexity and coordination complexity to identify dominant cost drivers and distill typical developer trade-off strategies. Contribution/Results: We demonstrate that multidimensional complexity serves as an effective proxy for maintenance effort. Empirical validation shows that combining these dimensions significantly improves predictive accuracy and actionable guidance for maintenance cost estimation, thereby providing both theoretical grounding and a practical framework for sustainable evolution of high-reliability automotive software.
📝 Abstract
Context: Large embedded systems in vehicles tend to grow in size and complexity, which causes challenges when maintaining these systems. Objective: We explore how developers perceive the relation between maintainability effort and various sources of complexity. Methods: We conduct a case study at Scania AB, a heavy vehicle OEM. The units of analysis are two large software systems and their development teams/organizations. Results: Our results show that maintainability effort is driven by system internal complexity in the form of variant management and complex hardware control tasks. The maintainability is also influenced by emergent complexity caused by the system's longevity and constant growth. Besides these system-internal complexities, maintainability effort is also influenced by external complexities, such as organizational coordination and business needs. During the study, developer trade-off strategies for minimizing maintainability effort emerged. Conclusions: Complexity is a good proxy of maintainability effort, and allows developers to create strategies for managing the maintainability effort. Adequate complexity metrics include both external aspects -- e.g., coordination complexity -- and internal ones -- e.g., McCabe Cyclomatic Complexity.