Evaluation of Legacy Software Architecture Michael Turner May 9, - - PowerPoint PPT Presentation

evaluation of legacy software architecture
SMART_READER_LITE
LIVE PREVIEW

Evaluation of Legacy Software Architecture Michael Turner May 9, - - PowerPoint PPT Presentation

Evaluation of Legacy Software Architecture Michael Turner May 9, 2018 Visteon Confidential Agenda Personal Introduction Corporate Introduction Automotive Software Primer Legacy Software Architecture Review Evaluation


slide-1
SLIDE 1

Visteon Confidential

Evaluation of Legacy Software Architecture

Michael Turner May 9, 2018

slide-2
SLIDE 2

Agenda

  • Personal Introduction
  • Corporate Introduction
  • Automotive Software Primer
  • Legacy Software Architecture Review
  • Evaluation
  • Conclusions
  • Summary
  • Q&A

2

slide-3
SLIDE 3

Personal Introduction

slide-4
SLIDE 4

Michael Turner’s Introduction

Page 4

Education  The Graduate Excellence Award Recipient, M.S.E. in Computer and Electrical Engineering, University of Michigan  Graduated with Distinction, B.S.E. in Computer Engineering, Purdue University Work experience  Technical Fellow/Software Architect - Design of Cockpit solution architectures  North American Regional Software Architect - Design of Driver Information products  Driver Information Lead Software Engineer for instrument cluster projects  Senior Software Engineer/Team Lead, Lear Corporation, for body control modules, generic electronic modules, and smart junction boxes  Project Engineer, Stanley Air Tools, responsible for communication protocol research, development, and deployment Core Expertise Areas:

  • Solution and Software Architecture Design, Analysis, and Evaluation
  • Agile Software Architecture Principles and Practices
  • Risk and Cost Driven Architectures
  • Technical Debt Control
  • Architecture Deployment
  • Architecting for Continuous Integration
slide-5
SLIDE 5

Corporate Introduction

slide-6
SLIDE 6

Industry-Leading Cockpit Electronics Product Portfolio

Only pure-play in automotive cockpit electronics

Source: Rankings from 2016 ABI Research and IHS Markit.

Instrument clusters Head-up displays Infotainment Displays Self-driving Connectivity Cockpit computer

Visteon Market Position

Top 5

Connected car Tier 1 supplier

#2

Rank

Instrument cluster displays

#3

Rank

Head-up displays

#2

Rank

Automotive display systems Center stack displays

6

slide-7
SLIDE 7

Instrument Clusters

Shift toward connected cars and autonomous vehicles driving transition to all-digital instrument clusters

  • Global market leader in digital instrument

clusters

  • Flexible and customizable OEM application

co-development approach

  • Platform approach delivers advanced

technologies needed for an autonomous future

  • Driver monitoring, ADAS integration and a

virtualized instrument cluster domain

  • Embedded functionality such as camera

systems and ambient lighting allow for all new driver interaction experiences

7

Ford Mustang

slide-8
SLIDE 8

Next-Gen Vehicle Cockpit Solution

8

Visteon leads industry in fast-growing cockpit controller solutions

Highly Integrated Cockpit Controller

Data Source: Strategy Analytics, September 2017.

(Units in millions)

Market Growth Rate Visteon’s Market Leading Position Four customer wins First in the industry

  • Single cockpit computer drives all displays and functions
  • Integration of instrument cluster and infotainment as basic functions
  • Advanced systems integrate HUD, driver monitoring and

augmented reality

  • Complex system integration of multiple operating systems on single

multicore system-on-chip

0.2 0.9 1.9 3.6 6.6 9.9 14.2 2018 2019 2020 2021 2022 2023 2024

Exponential Growth of Cockpit Controllers

slide-9
SLIDE 9

Leveraging Autonomous Driving Ecosystem

Disciplined approach to R&D and strategic investments Customer Partnerships Strategic Investments

Strategic cooperation agreement Only Tier 1 founder partner

Technology Collaborations

Establishing an ecosystem with key partners

9

slide-10
SLIDE 10

Visteon by the Numbers

A global leader in automotive cockpit electronics and software

Manufacturing locations

19 10,000 Employees 18 Countries

Technical centers

18 $3.15B 2017 annual sales

Company headquarters

Van Buren Township, Michigan, United States

10

slide-11
SLIDE 11

Global Manufacturing Footprint

11

19 Manufacturing Locations 1 Million Products Per Week 1,000 Customer Locations

Asia Pacific China Chongqing x2, Shanghai x2, Changchun x2, Xuzhou, Shaoxing India Chennai Indonesia Jakarta Japan Hiroshima

  • S. Korea

Yesan Thailand Rayong

Americas Brazil Manaus Mexico Chihuahua, Reynosa Europe Portugal Palmela Russia Vladimir Slovakia Namestovo Tunisia Bir El Bey

21,000 Unique Components

slide-12
SLIDE 12

Global Engineering Footprint

12

Asia Pacific China Shanghai x3 India Bangalore, Chennai, Pune Japan Hiroshima, Yokohama

  • S. Korea

Seoul

Americas Brazil São Paulo U.S. Van Buren Twp., Mich. Mexico Chihuahua, Queretaro Europe Bulgaria Sofia France Cergy Germany Karlsruhe, Kerpen Portugal Palmela UK Chelmsford

More than 50% Software Engineers 70% of Resources in Growth/Emerging Markets 134,000 Lines of Code Per Week 9 Global Centers of Competence

slide-13
SLIDE 13

Automotive Software Primer

slide-14
SLIDE 14

Deployment Perspective

14

slide-15
SLIDE 15

Vehicle Product/Technology Trends

15

slide-16
SLIDE 16

Feature Trends

  • Security
  • Functional Safety
  • OTA Reprogramming
  • 3D Graphics
  • Low Current
  • High Speed Networking
  • Driver Awareness
  • Driver Monitoring
  • Analytics

16

slide-17
SLIDE 17

LOC Perspective

17

David McCandless, https://informationisbeautiful.net/visualizations/million-lines-of-code/

slide-18
SLIDE 18

Legacy Software Architecture Review

slide-19
SLIDE 19

Product Deployment - Then and Now

19

slide-20
SLIDE 20

Driver Information Software Architecture History

  • Static View
  • Data Flow
  • Reusable Components
  • Application Construction
  • Hardware Deployments
  • Architecture Principles

20

slide-21
SLIDE 21

Drivers Input Servers and Receive Servers Application Feature Servers Infrastructure Feature Servers (Customer and Platform) Output Servers and Transmit Servers

21

Static View

Infrastructure

slide-22
SLIDE 22

Data Flow

22

Communication Network Hardwired Output Hardwired Input Communication Network Feature Server Output Server Transmit Server Receive Server Input Server

Servers Drivers

Key

slide-23
SLIDE 23

Reusable Components

  • Software components assembled to build end-item software systems
  • Components are implemented as feature servers which are configured to meet

project requirements

  • Components exist for numerous categories:
  • Startup
  • Checksum calculation
  • Input processing
  • NVM management
  • Manufacturing support
  • Stepper motor control
  • Fuel level processing
  • Chime management
  • Odometer handling
  • Telltale Management
  • Power Mode Management
  • Display Management
  • Warnings Management
  • Networking
  • Diagnostics

23

slide-24
SLIDE 24

Application Construction

  • Product software consists of:
  • Reusable components
  • Hardware-specific configuration of reusable components
  • MCU configuration
  • Product hardware configuration
  • OEM-specific configuration of reusable components
  • Application components
  • Application components are comprised of servers and services to meet

product functional requirements

24

slide-25
SLIDE 25

Hardware Deployments

  • Hardware deployment achieved via modification or configuration of

infrastructure components

  • Deployed to numerous hardware platforms:
  • Kepler I - Freescale MPC56xx MCU family
  • Einstein 2.x VIP – Freescale MPC56xx MCU family
  • Maxwell II – TI TMS470 MCU family
  • Newton 1.5 – Freescale S12 MCU family
  • Newton 2.0 – Renesas RL78 MCU family
  • Raman – Renesas 78K0 MCU family
  • Yukawa – Freescale S12X MCU family
  • McKinley 2 – Freescale S12
  • Matterhorn 2 – Freescale S08
  • K2 – Renesas V850
  • Pre-platform deployments
  • Freescale HC11
  • Freescale HC12

25

slide-26
SLIDE 26

Architecture Principles

  • Simple Software System Design
  • Collection of servers, an infrastructure, and the kernel
  • Limited server types: input, output, receive, transmit, and feature.
  • Pseudo-Client/Server Paradigm
  • Gen 1 component which supplies the service is the server.
  • Gen 1 component which uses the service is the client
  • Services are function-based.
  • Task Scheduling
  • Non-preemptive, cooperative
  • Usability
  • Stable and documented protocol specification through programmers guides

26

slide-27
SLIDE 27

Evaluation

slide-28
SLIDE 28

Evaluation – Entropy and Debt Analysis

  • Gen 1 architecture was cornerstone of Driver Information software for 25

years.

  • Over this time period, software entropy has increased and technical debt has

accrued within the architecture, the core bookshelf, and the resultant applications.

  • Software Entropy
  • “the maintainability of a system may degrade over time due to continuous change” [1]
  • Technical Debt
  • “a metaphor for the trade-off between writing clean code at higher cost and delayed delivery, and

writing messy code cheap and fast at the cost of higher maintenance efforts once it's shipped” [2]

[1] Hanssen, Geir Kjeitl, Reidar Conradi, Aiko Fallas Yamashita, and Leon Moonren., Software entropy in agile product evolution, Proceedings of the 43rd Hawaii International Conference on System Sciences. 2010. [2] Buschmann, Frank., To Pay or Not to Pay Technical Debt, IEEE Software. November/December 2011.

28

slide-29
SLIDE 29

Evaluation Metrics

  • Entropy Metrics
  • File-based impact
  • Interface-based impact
  • CM-based impact
  • Debt Metrics
  • Compatibility of current architecture, design, or implementation
  • Effort to meet with proposed architecture, design, or implementation
  • Stakeholder priorities

29

slide-30
SLIDE 30

Evaluation – Entropy Categories

  • Architecture Entropy
  • Integration of graphics support
  • 1900 files affected
  • 2100 interfaces affected
  • Integration of network framework
  • 110 files affected
  • 550 interfaces affected
  • Infrastructure Entropy
  • Design entropy
  • Introduction of memory management components for QSPI and DMA
  • 498 files affected
  • 451 interfaces affected
  • CM Package entropy
  • Packages with narrow functional focus (15%)
  • Packages with limited project integrations (10%)
  • Obsolete packages (10%)
  • Application Entropy
  • New applications have migrated away from server and services concepts
  • 5% adhere to design paradigm

30

slide-31
SLIDE 31

Stakeholder Requirements Analysis

31

Requirement # Requirement Description ASR Platform Req Stakeholder Priority Met with in- house Gen 1 Effort to meet completely with modified Gen 1 TD Factor Met with SWA Gen2 001 Horizontal/Logical Scalability Y L 1 2 4 1 002 Vertical/Physical Scalability Y L 1 2 4 1 003 Graphics Development Tool support Y M 2 3 7 004 Graphics framework M 2 3 7 005 UI logic support L 1 1 3 006 Diagnostics Logging Y H 3 3 9 1 007 Diagnostics Tracing Y H 3 3 9 1 008 Testability of software Y H 2 3 8 1 009 Reliability of software Y H 2 3 8 1 010 Reusability of software Y H 2 2 7 1 011 Abstraction from MCU HW Y H 3 3 9 1 012 Abstraction of components from component communication protocol Y L 3 3 7 1 013 Abstraction of gauge software from stepper/UI Y L 1 2 4 014 Tasking Model support Y H 3 3 9 1 015 Shafted stepper motor support Y M 1 2 5 016 Shaftless stepper motor support Y M 1 2 5 017 2D animations at 30 fps Y M 2 2 6

slide-32
SLIDE 32

Evaluation - Debt Classification

32

  • Using classification concepts from [1], determined that 62 of 74 improvements would

be considered as technical debt. Others would be considered as “non-TD” improvement actions.

  • Allowed the organization to consider the proper priority and team decomposition.
  • [1] Stephany Bellomo, Robert L. Nord, Ipek Ozkaya, and Mary Popeck, 2016, Got Technical Debt? Surfacing Elusive Technical Debt in Issue Trackers,

https://resources.sei.cmu.edu/asset_files/ConferencePaper/2016_021_001_493671.pdf

slide-33
SLIDE 33

Evaluation – Technical Debt Categories

  • Architecture Debt
  • Debt analysis based upon stakeholder requirements
  • Principal incurred due to:
  • Cooperative scheduling
  • Point-to-Point communication (defined as services in Gen 1)
  • Tight coupling of components
  • Lacking attributes:
  • Testability
  • Monitorability
  • Scalability
  • Portability
  • Interest incurred with increase in product complexity:
  • Graphics requirements
  • 3rd party software integration
  • Security
  • Safety

33

slide-34
SLIDE 34

Evaluation – Technical Debt Categories (continued)

  • Infrastructure Debt
  • Principal
  • Tight coupling to Gen 1 architecture
  • Tight coupling to kernel
  • Interest
  • Ambiguous boundary between infrastructure and application components
  • It is not sufficient to define infrastructure based only upon reuse
  • Effort to port to a new application should be considered
  • Functional decomposition granularity does not meet expectations of modern products
  • Limited use of model-driven development

34

slide-35
SLIDE 35

Evaluation – Technical Debt Categories (continued)

  • Application Debt
  • Principle
  • Design
  • Application components do not follow a consistent design pattern
  • Applications functionality is decomposed to match functional requirements, not a software

design specification

  • Performance
  • Run-time performance of application components is not considered until test phase
  • Size
  • Memory footprint of application components is not considered until build phase
  • Interest
  • Extensibility
  • New requirements are difficult to efficiently implement or distribute
  • Synchronization between the display, chimes, and telltales
  • Power Management

35

slide-36
SLIDE 36

Conclusions

slide-37
SLIDE 37

Conclusions

  • Gen 1 could not be extended to meet the objectives of the next generation

architecture:

  • Achieve the stakeholder requirements
  • Possess the derived quality attributes
  • Reduce the software entropy
  • Reduce the technical debt
  • Revolution, not evolution, was required.

37

slide-38
SLIDE 38

Summary

slide-39
SLIDE 39

Summary

  • Analysis of legacy systems requires systematic approach to avoid opinion-based

conclusions

  • Team of architects, designers, and developers must contribute in the analysis to ensure proper

parameters and techniques are selected

  • Product knowledge is crucial in evaluating criteria
  • For example, for some systems, the number of files affected may not be significant for entropy.
  • Not all debt and entropy are the same
  • Categories and classifications of debt and entropy can assist in assigning teams to the actions
  • Helpful thought: Entropy is often the side affect of debt
  • We must strive to ask why debt or entropy exists before deciding how to resolve.

39

slide-40
SLIDE 40

Q & A

slide-41
SLIDE 41

Thank you

slide-42
SLIDE 42