Slide 1

Slide 1 text

TOOL-BASED INTERACTIVE SOFTWARE TOOL-BASED INTERACTIVE SOFTWARE PARALLELIZATION: A CASE STUDY PARALLELIZATION: A CASE STUDY A. WILHELM A. WILHELM, F. CAKARIC, T. SCHÜLE, M. GERNDT, ICSE-SEIP 2018 , F. CAKARIC, T. SCHÜLE, M. GERNDT, ICSE-SEIP 2018 1

Slide 2

Slide 2 text

50 YEARS OF SOFTWARE ENGINEERING 50 YEARS OF SOFTWARE ENGINEERING A real success story 2 . 1

Slide 3

Slide 3 text

RIDING ON MOORE'S LAW RIDING ON MOORE'S LAW 2 . 2

Slide 4

Slide 4 text

WE WILL HAVE A WILD FUTURE WE WILL HAVE A WILD FUTURE https://www.chiprebel.com/apple-a11-bionic 2 . 3

Slide 5

Slide 5 text

KNOW YOUR DEPENDENCIES KNOW YOUR DEPENDENCIES 2 . 4

Slide 6

Slide 6 text

LISTEN TO JOHN L. HENNESEY, ET.AL, NOT ME LISTEN TO JOHN L. HENNESEY, ET.AL, NOT ME https://www.acm.org/turing-award-50/video/moores-law-is-really-dead 2 . 5

Slide 7

Slide 7 text

LEGACY CODE MEETS MULTI-CORE LEGACY CODE MEETS MULTI-CORE https://www.siemens.com 3 . 1

Slide 8

Slide 8 text

MARGARET HAMILTON, ICSE 2018 MARGARET HAMILTON, ICSE 2018 Systems are asynchronous, distributed and event driven in nature. This should be re ected in the language to de ne them and the tools to build them [...] 3 . 2

Slide 9

Slide 9 text

OUR MODUS OPERANDI OUR MODUS OPERANDI 1. Identify concurrency 2. Redesign the software architecture 3. Parallelize the code 4. Validate and verify 5. Analyze the runtime 3 . 3

Slide 10

Slide 10 text

HIGH-LEVEL PROBLEM HIGH-LEVEL PROBLEM 3 . 4

Slide 11

Slide 11 text

LOW-LEVEL PROBLEM LOW-LEVEL PROBLEM 3 . 5

Slide 12

Slide 12 text

SOLUTION A: HIRE NINJAS SOLUTION A: HIRE NINJAS https://github.com/codewarz-ninja 3 . 6

Slide 13

Slide 13 text

SOLUTION B: USE TOOLS SOLUTION B: USE TOOLS 3 . 7

Slide 14

Slide 14 text

PARALLELIZATION TOOLS PARALLELIZATION TOOLS Very useful for regular code Operate on low abstraction levels 3 . 8

Slide 15

Slide 15 text

ARCHITECTURE ANALYSIS TOOLS ARCHITECTURE ANALYSIS TOOLS Help to understand and evaluate Neglect dynamic aspects 3 . 9

Slide 16

Slide 16 text

COMPREHENSION IS ESSENTIAL COMPREHENSION IS ESSENTIAL (of the structure and the behavior) 3 . 10

Slide 17

Slide 17 text

4 . 1

Slide 18

Slide 18 text

WORKFLOW WORKFLOW 4 . 2

Slide 19

Slide 19 text

I WILL NOT TALK ABOUT I WILL NOT TALK ABOUT 4 . 3

Slide 20

Slide 20 text

CPPCHECK CODE ANALYSIS CPPCHECK CODE ANALYSIS 4 . 4

Slide 21

Slide 21 text

DEPENDENCY ANALYSIS DEPENDENCY ANALYSIS https://youtu.be/dbBjWdcw--k 4 . 5

Slide 22

Slide 22 text

ARCHITECTURE ANALYSIS ARCHITECTURE ANALYSIS https://youtu.be/4yCJ7FIKsCg 4 . 6

Slide 23

Slide 23 text

SOFTWARE ARCHITECTURE RECONSTRUCTION, SOFTWARE ARCHITECTURE RECONSTRUCTION, ANOTHER TRY? ANOTHER TRY? 4 . 7

Slide 24

Slide 24 text

SO, YOU USE DIRECTORIES? SO, YOU USE DIRECTORIES? controller := inFile("/src/controller/.**") 4 . 8

Slide 25

Slide 25 text

OR NAMESPACES? OR NAMESPACES? logic := namespace("log") 4 . 9

Slide 26

Slide 26 text

SHARED LIBRARIES ANYBODY? SHARED LIBRARIES ANYBODY? libs := image("/3dparty/.*.so") 4 . 10

Slide 27

Slide 27 text

ALL TOGETHER? ALL TOGETHER? operations := libs || function("operate.*") && !logic 4 . 11

Slide 28

Slide 28 text

PARCEIVE HELPS TO... PARCEIVE HELPS TO... 1. Identify concurrency +++ 2. Redesign the software architecture ++ 3. Parallelize the code - 4. Validate and verify + 5. Analyze the runtime -+ 4 . 12

Slide 29

Slide 29 text

SOME FINAL THOUGHTS SOME FINAL THOUGHTS 5 . 1

Slide 30

Slide 30 text

WHY BINARY ANALYSIS? WHY BINARY ANALYSIS? No source code needed Optimizations and generics Language independent Slowdown Complex deployments 5 . 2

Slide 31

Slide 31 text

THE FACTS THE FACTS Biggest software applied: >10M loc Supported plattforms: Linux, Windows Supported languages: C/C++ Current state: Working prototype 5 . 3

Slide 32

Slide 32 text

WE STRIVE FOR COLLABORATIONS WE STRIVE FOR COLLABORATIONS I brought some business cards 5 . 4

Slide 33

Slide 33 text

QEUSTIOSN? QEUSTIOSN? 5 . 5