22
© 2015 Carnegie Mellon University Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited Reducing Architecture Complexity with AADL Julien Delange <[email protected]> Jerome Hugues <[email protected]>

Reducing Architecture Complexity with AADL

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Reducing Architecture Complexity with AADL

© 2015 Carnegie Mellon University

Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213

Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Reducing Architecture Complexity with AADL Julien Delange <[email protected]> Jerome Hugues <[email protected]>

Page 2: Reducing Architecture Complexity with AADL

2 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Copyright 2015 Carnegie Mellon University and IEEE This material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN “AS-IS” BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. This material has been approved for public release and unlimited distribution. This material may be reproduced in its entirety, without modification, and freely distributed in written or electronic form without requesting formal permission. Permission is required for any other use. Requests for permission should be directed to the Software Engineering Institute at [email protected]. Carnegie Mellon® is registered in the U.S. Patent and Trademark Office by Carnegie Mellon University. DM-0002644

Page 3: Reducing Architecture Complexity with AADL

3 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Explain Complexity in models Detect Complexity in Models

Mitigate Complexity

Cost of Complexity

Objectives

Page 4: Reducing Architecture Complexity with AADL

4 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

© 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Complexity in Architecture Models

Page 5: Reducing Architecture Complexity with AADL

5 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Software hard to read & understand Several factors

Components coupling (fan-in/fan-out) Number of entities (components, connectors) Nesting levels

Supporting Metrics

McCabe: connections between component Halstead: # operands and # operators Zage: fan-in/fan-out

What is complexity?

Page 6: Reducing Architecture Complexity with AADL

6 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Increase development costs

Testing: increase # tests and ultimately, development costs Maintenance: more time to update/upgrade

Reduce component reuse

Interfaces design issues Software is getting a major costs for safety-critical

Reducing complexity = reduce costs, deliver quicker

Why complexity matters?

Page 7: Reducing Architecture Complexity with AADL

7 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

© 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Identifying and Mitigating Complexity

Page 8: Reducing Architecture Complexity with AADL

8 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Synchronization methods – usual design issue

void user_unsync_computer0 ()  {   while (producer_done == 0)   {   usleep (100);   }   producer_done = 0;   val0 = produced * 2;   computer0_done = 1;  }  

Unspecified coordination mechanisms, hard-code

in software

Page 9: Reducing Architecture Complexity with AADL

9 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Architecture decision embedded in the code

Bad separation of concerns Architecture decision tightly coupled with code

Potential for Analysis

Scheduling Analysis Data flow (latency) analysis

Performance issues

Performance issues (busy wait)

Synchronization methods - impacts

Page 10: Reducing Architecture Complexity with AADL

10 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Synchronization methods

Synchronization through event data port, show the synchronization method at the architecture level.

Page 11: Reducing Architecture Complexity with AADL

11 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Highlight architecture decisions in models

Disconnect the non-functional and functional aspects Improve code and components reusability

Enable Architecture Analysis

Scheduling Analysis (tasks scheduling) Data flow (latency) analysis

Performance issues

Avoid inappropriate implementation decisions Rely on code generator and potential optimizations

Synchronization methods - benefits

Page 12: Reducing Architecture Complexity with AADL

12 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Data Sharing – usual design issues

Use of global variables, increase components coupling and

introduce side effects

Page 13: Reducing Architecture Complexity with AADL

13 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Loss of data flow analysis

Hard to keep track of who is reading/writing Lack of modularity

Reuse a component must bring the variable Potential side-effects

Unexpected data change, must use synchronizations Hard to detect, analyze, might lead to catastrophic issue

Data Sharing - impacts

Page 14: Reducing Architecture Complexity with AADL

14 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Data Sharing – architecture solution

Communication ports/flows for better reuse and analysis

Page 15: Reducing Architecture Complexity with AADL

15 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Enable data flow analysis

Support for end to end latency analysis Modular design, simple component reuse

Re-import the component and connect its interface Limited side-effects

New data impact only the component

Data Sharing – benefits

Page 16: Reducing Architecture Complexity with AADL

16 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

© 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Cost of Good Designs

Page 17: Reducing Architecture Complexity with AADL

17 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Synchronization - Performance

Number of Instructions Number of CPU cycles

Page 18: Reducing Architecture Complexity with AADL

18 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Synchronization - Memory

BSS size (global variables) Text Size (code)

Page 19: Reducing Architecture Complexity with AADL

19 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Global Variable vs. Data Flow - Performance

Number of Instructions Number of CPU cycles

Page 20: Reducing Architecture Complexity with AADL

20 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Global Variable vs. Data Flow - Memory

BSS size (global variables) Text Size (code)

Page 21: Reducing Architecture Complexity with AADL

21 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

© 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

Conclusion

Page 22: Reducing Architecture Complexity with AADL

22 Reducing Architecture Complexity with AADL September, 29 2015 © 2015 Carnegie Mellon University Distribution Statement A: Approved for Public Release; Distribution is Unlimited Distribution Statement A: Approved for Public Release; Distribution is Unlimited

AADL for mitigating architecture-related complexity

Detecting complexity through architecture review Architecture Analysis for discovering other complexity area

Reducing Development Costs

Testing efforts (e.g. DO178C, ISO26262) Maintenance & Software reuse

Rely on Code Generator and Associated Optimizations

Avoid manual optimizations Rely on code generator for creating efficient code

Conclusion