Characterizing Implicit Communal Components as Technical Debt in Automotive Software Systems

Characterizing Implicit Communal Components as Technical Debt in Automotive Software Systems

I gave this talk at the SE 2017 Conference in Hannover.

6d03452555634eae10adad12866ba544?s=128

Andreas Vogelsang

February 22, 2017
Tweet

Transcript

  1. Characterizing Implicit Communal Components as Technical Debt in Automotive Software

    Systems Software Engineering, Hannover, 2017 originally presented at WICSA 2016 February 22, 2017 Andreas Vogelsang1, Henning Femmer2, Maximilian Junker2 @andivogelsang 1Technische Universität Berlin 2Technische Universität München
  2. Context: Automotive Software Development 2 Features Signal catalog F1 F2

    C1 C2 C3 Feature Architecture C4 C5
  3. Context: Automotive Software Development 2 Features Signal catalog F1 F2

    C1 C2 C3 Feature Architecture C4 C5 Implicit dependencies between components/features by ad hoc reuse of signals from the bus
  4. F1 • A communal component reads or writes signals of

    components of other features • An implicit communal component is a communal component associated with a feature Implicit Communal Components 4 C1 C2 C3 C4 C5 C7 C6 F2 F3
  5. F1 • A communal component reads or writes signals of

    components of other features • An implicit communal component is a communal component associated with a feature • An explicit communal component is a communal component associated with a dedicated platform component layer (PCL). Implicit Communal Components 5 C1 C2 C3 C4 C5 C7 C6 F2 F3 PCL
  6. To refactor or not to refactor… 6 Implicit communal components

    increase costs for… Implicit communal components save costs for… Technical debt metaphor Interest Principal
  7. Study Design Research questions: RQ1: How many implicit communal components?

    RQ2: How are feature dependencies distributed over implicit communal components? RQ3: What is the interest of implicit communal components? RQ4: What is the potential refactoring effort? Study Objects: 7 Automated analysis of feature architectures Stakeholder interviews to extract cost factors
  8. Study Results 8 • RQ1: How many implicit communal components?

  9. Study Results 9 • RQ2: How are feature dependencies distributed

    over implicit communal components? We need to refactor < 10 % of implicit communal components to save > 90% of feature dependencies
  10. Extraction and Theory of Cost Factors 10 transcription coding &

    pattern extraction theory building
  11. Study Results 11 • What is the potential cost/benefit of

    refactoring?
  12. Discussion • Implicit communal components as technical debt – Currently

    introduced unintentionally – Developers and managers not aware of long-term costs – Fosters rethinking current architectures (e.g., introduction of a PCL) • Operationalization – Unclear whether quantification is possible – But: • Technical debt in the automotive context – Only few types of automotive-specific TD known – Cost/benefit estimation largely dependent on automotive context (see diversity of cost factors) 12
  13. Summary Definition of (implicit) communal components Quantification of extent and

    distribution Characterization as technical debt @andivogelsang andreas.vogelsang@tu-berlin.de Thank you.