17
V2.2 | 2017-10-02 Jeffrey Fortin, Product Manager, Vector Ensuring Software Code Quality for the IIoT

Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

V2.2 | 2017-10-02

Jeffrey Fortin, Product Manager, Vector

Ensuring Software Code Quality for the IIoT

Page 2: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

2

IoT Topology

DEVICESMACHINES

GATEWAYS Access and Service

Networks

Service Platform

andDomain

Applications

SENSORS

ACTUATORS

Edge Tier

Page 3: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

3

Essential Design Tenants of IoT Systems

Monetize Hardware, Software, and Data Management

Actionable Analytics

Data Normalization

Discovery and Provisioning

Safety & Security as the Foundation – Hardware and Software

Page 4: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

4

Lots of Consumer Grade Software will Suddenly be the Critical Path

Re-use of legacy code bases, cameras for autonomous driving

Cellular/Internet connectivity to cars for SOS

The Quantity of Embedded Software will Increase Exponentially

Autonomous software that integrates unobtrusively

Heart Function, Blood Sugar and Blood Pressure Monitoring

Intelligence will be Deployed to the End Points

IoT will not be a collection of dumb sensors

Complexity and Data Volumes are too large for central control

What Changes will IoT Bring to Software

Page 5: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

5

Release cycles have shrunk from years to days to hours

We have to get these new features to customers

There is more competition than Ever

The barriers to entry for the software business are low

Trade-offs made during development

We Can Fix That in the Next Release …

Market Pressure

Page 6: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

6

IEC 61508-3

Functional safety of electrical/electronic/programmable electronic safety-related systems

Part 3: Software requirements

IEC 61508-3

Page 7: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

7

IEC 61508 Safety Integrity Levels (SIL)

Page 8: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

8

IEC 61508 – Verification and Validation

Activities related to verification and validation of software

Page 9: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

9

Faster Release Cycles

Few Bugs get into the Release Cycle

Release Cycle is Faster

Customer Get New Features Faster

Lower Life-Cycle Costs

Less Time Fixing Bugs

More Time Building New Product Features

Brand Loyalty

Fewer Bugs get to the Customer

Customers are Happier

The Business Case for a Deming Revolution

Page 10: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

11

The Cost of Independent Processes

Page 11: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

12

Independent Process Integrated Processes

All team Members contribute to Quality

Periodic Testing Continuous Testing

Quality is built-in at each stage of development

Long Feedback Loops Immediate Feedback

Bugs are Fixed when they are introduced

Improved Software Development Workflow

Page 12: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

13

Make Tests Sharable

There cannot be flavors of tests owned by separate groups

Everyone has something to contribute

Remove Infrastructure Limitations

Virtualized Test Environments

Labor is your most expensive resource

Tests Must be Small and Easy to Run

Anyone can run any test at any time

Make Results Simple to Understand

Test pass or fail, no thinking needed

Failed tests must be debuggable

Make Testing Easy: Test Collaboration

Page 13: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

14

Easy

Easy to build new tests

Easy to understand existing tests

Easy to run and interpret results

Easy to debug failing tests

Fast

Shorten the feedback loop

Automated

Push button testing with no manual setup or steps

Anyone can run any test at any time

How to Implement Continuous Testing

Page 14: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

15

Test Each Component Before Integration

Test the published API of all components

Build Tests for APIs and Requirements

Test for Correctness

Verify that all requirements have tests

Ensure Tests are Complete

Use Code Coverage to verify adequate testing

Build In Quality

Page 15: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

16

Without gates on behavior code bases become buggy

Software development should be engineering not art

With too many gates nothing gets done.

Build Documented workflows for each Activity

SCM commit, requires a clean static analysis report

Branch cannot go to QA until all existing tests pass

Quality Gates Must be Automated

Except for peer review – which still has great value

Implement Quality Gates

Page 16: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

17

Tying it all together

DeliverValue

IIoT

Quality Process

Deming

Quality Standards

Page 17: Ensuring Software Code Quality for the IIoT - Vector...Ensuring Software Code Quality for the IIoT. 2 IoT Topology DEVICES MACHINES GATEWAYS Access and Service Networks Service Platform

18 © 2017. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V6.14 | 2017-04-18

For more information about Vectorand our products please visit

www.vector.com