embedded software quality

Post on 26-Jan-2017

362 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

VIA University College

ICT-Engineering

Bring ideas to life VIA University College

Embedded software kvalitet Udfordringer og muligheder

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 1

VIA University College

ICT-Engineering

Indhold

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 2

Infinit ESE Højniveau sprog Model baseret Statisk Analyse

Software Kvalitet Generelt Indlejrede Systemer 1. Indlejret Software Arktektur 2. Forbedring af kvalitet og forudsigelighed

VIA University College

ICT-Engineering

Min baggrund

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 3

Master Computer Science (1998)

Ph.D. Embedded Programming (2013)

Embedded Programming Big Scale Programming

VIA University College

ICT-Engineering

Hvorfor?

– For mig: • Interesse! • Samarbejdspartnere?

– For jer: • En stund hvor I kan tænke over - ikke hvad I arbejder med - men hvordan I

gør det • En inspiration (provokation) til at få gode ideer til at optimere jeres

processer • 2 simple, konkrete teknikker til forbedring af software kvalitet • Ca. 35 minutters oplæg, efterfølgende uformel diskussion

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 4

VIA University College

ICT-Engineering

Einstein

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 5

E (energi)

V (hastighed)

V = c

VIA University College

ICT-Engineering

Indlejret Software Profil (1)

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 6

E (effort)

V (funktionalitet)

Ustruktureret SW udvikling

Sammenbruddets rand

VIA University College

ICT-Engineering

Indlejret Software Profil (2)

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 7

E (effort)

Tid

delvis struktureret SW udvikling

Debugging

Værdiskabende aktiviteter

VIA University College

ICT-Engineering

Mål

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 8

E (effort)

Tid

Værdiskabende aktiviteter (A)

Andre aktiviteter (B) Debugging, testing,..

VIA University College

ICT-Engineering

Mål

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 9

E (effort)

Tid

Værdiskabende aktiviteter (A)

Andre aktiviteter (B) Debugging, testing,..

Høj A, lav B! 2 vigtige teknikker træder frem

1) Adskillelse af hardwarenær software og forretningsbærende software

2) Test dreven udvikling af indlejrede systemer

VIA University College

ICT-Engineering

Hardwarenær vs. forretningsbærende SW

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 10

bits, bytes, arrays of data Customers, requirements Classes, types and data objects

VIA University College

ICT-Engineering

Hardwarenær vs. forretningsbærende SW

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 11

Hard real-time Devices drivers Functional APIs ISR Sensors and actuartors

Soft real-time Architecture Design patterns UI

VIA University College

ICT-Engineering

Hardwarenær vs. forretningsbærende SW

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 12

Tæt/uomgængeligt interface, både for

1. Menneskelige ressource/roller

2. Software

VIA University College

ICT-Engineering

Hardwarenær vs. forretningsbærende SW

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 13

Menneskellige ressourcer

1. Forskellige udviklere for hvert område 2. (eller) forskellige roller

Meget forskellige principper og traditioner hersker i de 2 områder

VIA University College

ICT-Engineering

Hardwarenær vs. forretningsbærende SW

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 14

Software

"Boardet" PC Et kabel

VIA University College

ICT-Engineering

Hardwarenær vs. forretningsbærende SW

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 15

Software

Det forretningsbærende SW skal være 100% adskilt fra det hardwarenær

Det forretningsbærende er portabelt og kan køre på en host PC

Båndbredden af data gennem interfacet skal være "håndterbart"

VIA University College

ICT-Engineering

Hardwarenær vs. forretningsbærende SW

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 16

"Optag" data gennem kablet Simulering (debugging) Statisk analyse (e.g. valgrind) Fejl rapportering

DECT

Radio

UI

Eksemple (Kirk Telecom)

VIA University College

ICT-Engineering

Hardwarenær vs. forretningsbærende SW

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 17

Et HAL (Hardware Abstraktions Lag) er bare godt design, men

Det forretningsbærende lag kan nemmere analyseres (valgrind, UPPAAL, etc) Inddrage højniveau sprog til implementation af (dele af) det forretningsbærende lag

VIA University College

ICT-Engineering

Mål

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 18

E (effort)

Tid

Værdiskabende aktiviteter (A)

Andre aktiviteter (B) Debugging, testing,..

Høj A, lav B! 2 vigtige teknikker træder frem

1) Adskillelse af hardwarenær software og forretningsbærende software

2) Test dreven udvikling af indlejrede systemer

VIA University College

ICT-Engineering

Test dreven udvikling af indlejrede systemer

Typisk udviklingsforløb:

1) Programmer ny feature 2) Test den nye feature på dit eget bord 3) Få en kollega til at gøre det samme (hvis han har tid) 4) Fejl! Find fejlen og ret den. Gå til 2) 5) Test hele systemet så godt du kan 6) Fejl! Noget andet er gået i stykker. Find fejlen og ret den. Gå til 2) 7) Pyha! Det lykkedes....

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 19

VIA University College

ICT-Engineering

Typisk udviklingskultur

Konsekvenser af den typiske udviklingskultur:

– Tiden går med fejlfinding – Uforudsigelig tidshorisont - nogle gange meget hurtig, oftest

langsommere end forventet – Dårligt arbejdsmiljø,

• Stress! Hvad har jeg mon nu ødelagt??? • Hvis skyld er det at det ikke virker? • Virker det? Hvad er definitionen på at det virker?

– Vi har slet ikke tid til at gøre det bedre - "snuden i sporet" på den dårlige måde

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 20

VIA University College

ICT-Engineering

Automatiserede tests

Automatiserede Tests og Test Dreven Udvilking (TDD)!

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 21

Test Program

PC

Program under test

PC/MCU

Kontrol

Lad os se på 3 forskellige eksempler på et system for automatisere tests 1. Testing an embedded system 2. Testing a single user desktop system 3. Testing a distributed system

Og dernæst hvad det betyder for hvordan man bruger TDD

VIA University College

ICT-Engineering

Testing an Embedded System

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 22

VIA University College

ICT-Engineering

Testing a Single User Desktop System

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 23

VIA University College

ICT-Engineering

Testing a Distributed System

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 24

C# test program Simulates scanner and floor software

VIA University College

ICT-Engineering

Automatiserede tests

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 25

Test Program

PC

Program under test

PC/MCU

Kontrol

Det er svært at opbygge et automatiseret test system, og det er svært at vedligeholde. Mere om det senere.....

VIA University College

ICT-Engineering

Automatiserede tests og TDD

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 26

Test dreven udviklingsforløb:

1) Udvid test program til at teste ny feature 2) Kør testen. Den skulle gerne fejle! 3) Programmer et lille skridt af den ny feature. Ikke det hele på een gang! 4) Kør alle test 5) Fejl? Smid det skridt væk du lige har lavet. Gå til 3) og prøv igen, denne

gang et mindre skridt 6) Gentag 3) til 5) indtil feature er færdig og den nye feature test også kører 7) Pyha! Det lykkedes....

VIA University College

ICT-Engineering

Automatiserede tests

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 27

Fordele ved testbart software og automatiserede tests

– Meget mindre debugging, meget mere udvikling • Tid går fra debugging til test skrivning. Hvad er mest produktivt?

– Testbart software er pænt modulariseret • Features kan tages ud af kontekst og bruges i nye produkter • Moduler kender deres afhængigheder og kan nemt flyttes til nye

platforme (f.eks. fra MCU til PC, PC til Andorid, ...) – Tests er en nøjagtig kravspecifikation. Tests er en fremragende

dokumentation – Refaktoreringer bliver meget nemmere. Vi er ikke længere bange for vores

kode

VIA University College

ICT-Engineering

Udfordringer "Vi kan ikke teste enkelte features. Det hele hænger sammen!"

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 28

Det er da et kæmpe problem! Det skal løses! At gøre software testbart forøger dets kvalitet på en række vigtige punkter...

VIA University College

ICT-Engineering

Udfordringer

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 29

"Du skal ikke skrive test software! Du skal skrive produkt software!"

Nej!

Du skal ikke skrive produkt software! Du skal skrive test software! Produkt software, det kan vi autogenerere, eller få nogen andre til at skrive

Testen indeholder og udtrykker vores unikke domæne viden Testen er det primære

Testen er det vigtigste! Den må vi aldrig miste!

Test Program

PC

Program under test

PC/MCU

Kontrol

VIA University College

ICT-Engineering

Udfordringer

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 30

"Ok, så! Vi sætter Benjamin til at lave test systemet. Torben må vi ikke forstyrre!"

Nej!

Torben, den dygtigste mand, kernemedarbejderen, det er ham som skal få test systemet op at køre

Benjamin skal bruge det når han laver produkt softwaren. Det er nemt hvis man har et ordentlig test system!

Det er meget svært at finde fejl - det er kun Torben der kan det - men vi skal ikke længere finde fejl

Debugging er forbudt!

VIA University College

ICT-Engineering

Udfordringer

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 31

"Du skal springe testen over! Kunden skal have det i morgen!"

Nej!

Kunden skal have at vide at han ikke kan få det i morgen, og hvis det ikke er acceptablet så er han ikke kunde her længere

I øvrigt opstår ovenstående situation ikke mere, for nu kan vi faktisk begynde at

forudsige hvor lang tid ting tager!

VIA University College

ICT-Engineering

Udfordringer

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 32

"Vi kan ikke stoppe udviklingen og refaktorere det hele så det kan testes!"

Det er faktisk rigtig!

Det er nødvendig at massere og ændre eksisterende software og gøre det testbart i små, inkrementielle skridt

Det er ikke nemt!

Det er en stor udfordring!

Men man kan hvad man vil - især med hjælp fra Torben og en ledelse som bakker

op om det!

VIA University College

ICT-Engineering

Automatiserede tests

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 33

Flere fordele ved testbart software og automatiserede tests

– Vi ved hvornår noget virker - der er en fast definition på dette! – Markant forbedring af arbejdsmiljøet! Udvikleren kender konsekvenserne

af sine handlinger – Den skridtvise introduktion af features sikrer hyppige kode

synkroniseringer. Benjamin sidder ikke længere med sin egen udgave af koden i ugevis. Han er ikke bange for at synkronisere

– Outsourcing bliver meget nemmere – 3rd party contributions bliver meget nemmere

VIA University College

ICT-Engineering

TDD opsummering

– Opbyg et system til automatiserede tests af jeres software – Sæt den dygtigste mand til at lave og vedligeholde testsystemet – Skriv testen først - derefter produkt softwaren – Implementer en feature i små skridt – Synkroniser og test mellem hver skridt - flere gange om dagen – Smid kode ud og start forfra med et skridt, hvis det ikke virker. Lad være med

at lede efter fejlen – Gå aldrig på kompromis! Aldrig!

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 34

VIA University College

ICT-Engineering

Forbedring af software kvalitet

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 35

Græsrødderne

Mellemlederne

Cheferne

Virksomhedskultur

VIA University College

ICT-Engineering

Forbedring af software kvalitet

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 36

Græsrødderne

Mellemlederne

Cheferne

Virksomhedskultur Strategi

– Det starter med "Torben" – En ildsjæl laver den første prototype på sit eget bord – Flere og flere kolleger inspireres og deltager – Projektlederen opdager at softwaren bliver meget bedre og

ting går hurtigere – "Hvad er der sket?" – De andre grupper opdager at "det går rigtig godt inde ved siden af" – "Hvad er der sket?" – Cheferne opdager at projekterne kører bedre, hurtigere og mere

forudsigeligt – Nu er virksomhedskulturen ændret! Det er det svære!

VIA University College

ICT-Engineering

Forbedring af software kvalitet

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 37

Græsrødderne

Mellemlederne

Cheferne

Virksomhedskultur Gode råd

– Software kvalitet er ikke et "work item" – E.g. Test skrivning og vedligehold af automatiseret test system

skal ikke optræde som en aktivitet i planlægningen – Spørger udviklere normalt om de må få lov at bruge

tid på at indrykke deres kode? – Software kvalitets tiltag skal ikke italesættes - hverken internt eller

eksternt

VIA University College

ICT-Engineering

Konklusion (1)

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 38

E (effort)

Tid

Værdiskabende aktiviteter (A)

Andre aktiviteter (B) Debugging, testing,..

Høj A, lav B! 2 vigtige teknikker træder frem

1) Adskillelse af hardwarenær software og forretningsbærende software

2) Test dreven udvikling af indlejrede systemer

Software kvalitet er en forudsætning for alt andet (højniveau sprog, statisk analyse, ...)

VIA University College

ICT-Engineering

Konklusion (2)

28/03/2016 Software Kvalitet - Stephan Korsholm, sek@via.dk 39

Inden for "intelligente" industri produkter i DK: – Der ligger et stort uudnyttet potential i mange virksomheder inden for

forbedring af software kvalitet – Dernæst ligger der et stort uudnyttet potentiale for yderligere forbedringer

ved at inddrage højniveau sprog, modelbaseret udvikling og værktøjer til statisk analyse

– Med dette vil man kunne lave mere kompliceret software til en lavere pris og med højere grad af forudsigelighed

– Vi kan i DK sagtens konkurere med og overgå udlandet hvis vi fokuserer på ovenstående

top related