Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by...

45
Innovative Software Engineering Verso un nuovo paradigma di Ingegneria del SW Applicazione della metodologia «agile» alle produzioni software ad alta affidabilità Ing. Angelo MESSINA Brigadiere Generale Esercito

Transcript of Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by...

Page 1: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Innovative Software Engineering Verso un nuovo paradigma di Ingegneria del SW Applicazione della metodologia «agile» alle produzioni

software ad alta affidabilità

Ing. Angelo MESSINA Brigadiere Generale Esercito

Page 2: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Cosa c’è da innovare?

Un nuovo modo di concepire l’ingegneria del

software

Agile e contesti ad alta affidabilità

Un nuovo modo di offrire formazione “agile”

2

Page 3: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Il Prodotto Software

Prodotto

dell’intelletto

destinato ad

«umani»

Molteplici

tentativi

d’ingabbiare

l’attività

assimilandola

ad un

qualunque

prodotto

dell’ingegneria

L’evoluzione

tecnologica

degli strumenti

di sviluppo ha

portato la

Software

Factory sul PC

Page 4: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Il Software è invasivo e pervasivo

4

Page 5: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Complesso o Complicato?

5

Page 6: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Complexity

Page 7: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

• COMMAND & CONTROL

The processes of understanding, planning, directing coordinating and controlling forces and operations in the accomplishment of the mission

• SITUATIONAL AWARENESS

The processes that concern the knowledge and understanding of the environment that are critical to those who need to make decisions within the complex mission space

• COMMON OPERATIONAL PICTURE

Fusing fires, ISR, logistics, maneuver information across the entire battle space, into a single shared display enabling leadership decision-making processes

… the right information at the right time, disseminated and displayed in the right way, so that Commanders can do the right things at the right time in the right way …

Top “User” statement on COMMAND AND CONTROL

Page 8: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

8

Prima difficoltà: L’approccio “agile” al requisito utente prevede l’uso di “User stories” che devono fare i conti con la complessità del requisito

User Stories

• Descrizioni in linguaggio naturale dei “Requisiti funzionali” di un sistema/prodotto Software

• Sono semplici, non definitive e frutto di un dialogo a più riprese tra chi conosce l’esigenza e chi sa come risolverla con un prodotto software

• Devono riferirsi a specifiche caratteristiche e non a enunciazioni di carattere generale.

• Possono essere raccolte attraverso workshop dedicati

Page 9: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

9

Comunicare

Il problema della specifica del requisito non è un problema informatico

Page 10: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

10

Il problema “linguistico” • Cosa intende veramente comunicare l’utente/stakeholder?

• Linguaggio naturale: libertà vs ambiguità il trade-off

ambiguità sintattica ,ambiguità semantica ambiguità lessicale ambiguità, nell’assegnazione delle relazioni grammaticali “Michele vide un uomo in strada con il binocolo” “Chi uccise il soldato?”

• Ontologie e Semantic networks

Page 11: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Ingegneria del SW approccio tradizionale: Waterfall e metodi lineari

Page 12: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

«V» Model

Page 13: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Spiral Model

Page 14: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Metodi Lineari (“cascata”,”V”, ecc) :

• stesura requisito formale;

• analisi requisito (e contrattualizzazione);

• produzione;

• verifica;

• modifiche;

• uteriore verifica e introduzione in servizio;

• inizio ciclo lezioni apprese;

• manutenzione ed evoluzione (a titolo oneroso);

14

Esito dei METODI tradizionali DI PRODUZIONE SW

36-48 mesi (ottimistico)

6-18 mesi

variabile

5+ anni per le prime varianti dettate dalle

operazioni Quasi completamente abbandonati perchè:

– Costo non sostenibile (> 130 € a LOC/FP1);

– 70% dei programmi falliti o abbandonati

– Bassa soddisfazione del cliente

1. Linea di Codice/Punti Funzione

Page 15: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

DoD Instruction 5000.02 (Dec 2013) heavily emphasizes tailoring program structures and acquisition processes to the program characteristics. Agile development can achieve these objectives through:

Focusing on small, frequent capability releases

Valuing working software over comprehensive documentation

Responding rapidly to changes in operations, technology, and budgets

Actively involving users throughout development to ensure high operational value

Agile practices integrate planning, design, development, and testing into an iterative lifecycle to deliver software at frequent intervals. Developers can demonstrate interim capabilities to users and stakeholders monthly…...

15

Department of Defense (US) prescrive l’utilizzazione di “Agile” per l’acquisizione di ICT

Lo sviluppo in “Agile” nell’E.I. inizia nel febbraio 2014

Rilasci frequenti di software utilizzabile sul campo + prodotto – documentazione Coinvolgimento utente finale In pratica: “usate metodi Agile”

Page 16: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Aziende settore Difesa transitate ad “agile”

Page 17: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

“Agile” (commerciale) cambia le regole

Che cosa è importante nelle metodologie “agile”?

Valori Principii Pratiche Regole

17

Da ritoccare

leggermente perché si

possa applicare ai

sistemi ad alta

affidabilità

Page 18: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

“Agile” è la panacea?

Non esiste alcun proiettile d’argento!

18

L’uso di metodologie Agili non

cambia le caratteristiche

intrinseche del Software rendendo

ancora più necessarie:

Best practices

Quality first

Test driven design

Embedded Security Coding

Page 19: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

19

Scrum (Kanban, ITA2 )potrebbe non essere cosa facile passare ad “agile”…

• Illusione di comando e controllo del processo (ci si può provare!)

• Credere nella magia (forse si!)

• “Noi siamo già Agili!” (la cosa che tutti dicono)

Tony D. Clark, © 2006 implementingscrum.com

Page 20: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

ROI ?

Il vantaggio di efficienza tra

metodi lineare e metodi agili è comunque “strutturale”

Vale la

pena di

passare

ad

“Agile”?

Page 21: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Agile SCRUM (metodo di partenza per ITA2)

A un tentativo di gestire la

complessità usando il solo strumento

disponibile: La mente umana

3-5 weeks

Page 22: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Perchè abbiamo introdotto “Agile”

(inizialmente Scrum) nello sviluppo di software

militare

Necessità imposte da

‒ Restrizioni di budget

‒ Miglioramento della soddisfazione del Cliente

‒ Aderenza a requisiti mutevoli nel breve periodo

(volatile) requirements

Page 23: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Innovative Software Engineering (ITA2 case study)

Italian Army Agile è un freamework concettuale sviluppato

congiuntamente da esperti del mondo militare, accademico e

industriale utilizzato dallo Stato Maggiore Esercito per I suoi più recenti

sviluppi SW

Mission Critical Software Agile Development

Agile

Training

Innovative CASE Tools

Structured

User

Community

Governance

Custom Agile

Development

Doctrine

People (Stake Holders, Users, Developers, “Agile”

Innovators)

Page 24: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Occorre una nuovo CASE con funzionalità tali da:

‒ Gestire una rete di utenti/ stake-holders/ che sono una

vera community molto articolata e diversificata

‒ Prevedere il supporto di Product Ownership (scrum P.O.) multilevel boards

‒ Catturare, gestire e tracciare un set molto complesso di

requisiti multidisciplinari

‒ Supportare Team misti (utente-produttore) in modalità

interconnessa e parallela (Scrum of Scum)

Introduzione di “Agile” nell’Esercito Italiano

Occorre un nuovo concetto di Software Engineering

Page 25: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Software Development Control Room

iCASE

tool

Page 26: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Global Dash-board (ITA2) Team 1 Team 2

iCASE

tool

Page 27: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

First Results (presentati in consessi europei e NATO)

‒ > 30 Sprints executed

‒ Customer satisfaction

over 90%

‒ Cost reduction > 50%

‒ Same quality level

Scrum is able to take care of the intrinsic non-linearity of the

“Requirement specification” phase focusing on interaction and not on

the process eliminating various level of “translation” of the user need.

S1- ADE S2-

AFRODITE

S3-ATENA S7-DEMETRA

Page 28: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

S1 (ADE) February 17, 2014

March 21, 2014

January February March April May June July August September October November December

S2 (AFRODITE) March 24, 2014 April 15, 2014

S4 (ARES) May 28, 2014 June 16, 2014

S3 (APOLLO) April 21, 2014 May 23, 2014

S5 (ARTEMIDE) June 16, 2014 July 4, 2014

S7 (DEMETRA) August 4, 2014

August 29, 2014

S9 (EFESTO) November 10, 2014 November 28, 2014

S6 (ATENA) July 7, 2014

July 25, 2014

S8 (DIONISO) October 6, 2014

October 24, 2014

S10 (CRONO) December 2 2014

December 19, 2014

2014

Ogni Sprint consegna funzionalità significative per l’Utente

Page 29: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

S11 (EOLO) Jan 20, 2015 Feb 9, 2015

January February March April May July August September October November December

S12 (ELIO) Feb 27, 2015 Mar 20, 2015

S14 (ERA) May 11, 2015

Jun 5, 2015

S13 (EO) Mar 30, 2015 Apr 30, 2015

December June

S15 (ERACLE) Jun 15, 2015 Jul 10, 2015

S16 (ERINNI) Jul 20, 2015 – Sep 11, 2015

2015

Ogni Sprint consegna funzionalità significative per l’Utente

Page 30: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Questioni Metodologiche Aperte Raccolta e gestione delle “user stories”

Il linguaggio naturale è facile per gli utenti ma può mancare di struttura per un utili avvio dello sviluppo sw

Necessita una forma di disciplina che non alteri la natura non lineare dell’interazione con l’utente.

“Indipendent, Negotiable, Valuable, Estimable, Short, Testable”: la maggior parte degli attribbuti desiderati per le U.S. in Scrum sono di tipo linguistico più che informatico

Usare UML o altri formalismi è una forma di traduzione, cosa si perde?

Page 31: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Questioni aperte 2

Monitoring & measuring

Non invasive tools (scelta E.I.) necessary to

keep quality level and monitor criticalities

need to evolve.

Current complexity metrics borne for the old

fashion software factories do not give a

complete picture of the team based code

development cycle

What is the right amount of “control” for the

agile environment?

Page 32: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

“Agile” Research Areas

‒ Computational linguistic approach to the User

Stories collection and validation

‒ Human based metrics to help the recruitment and

team building phases and correctly design the

continuous training

‒ New generation of non invasive CASE tools explicitly

designed for “agile” SW development

‒ New Metrics (Human Based)

Page 33: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

H2020 R&T Key Research

Challenges

Page 34: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Innovative CASE (iCASE) Characteristics:

Dedicated “social” network to support the User Community

“Smart” management of the User Stories

Non invasive measurements

Innovative software complexity metrics (to include the human

factor)

34

Software Development Control Room

iCASE

tool

Global Dash-board (ITA2)Team 1 Team 2

iCASE

tool

S1 (ADE)February 17, 2014

March 21, 2014

January February March April May June July August September October November December

S2 (AFRODITE)March 24, 2014April 15, 2014

S4 (ARES)May 28, 2014June 16, 2014

S3 (APOLLO)April 21, 2014May 23, 2014

S5 (ARTEMIDE)June 16, 2014July 4, 2014

S7 (DEMETRA)August 4, 2014

August 29, 2014

S9 (EFESTO)November 10, 2014November 28, 2014

S6 (ATENA)July 7, 2014

July 25, 2014

S8 (DIONISO)October 6, 2014

October 24, 2014

S10 (CRONO)December 2 2014

December 19, 2014

2014

Page 35: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

iCase the ideal “agile” development environment 35

Linguistic/

semantic tools

Non invasive

productivity tools

User needs ontology

Builder

Innovative

SW

metrics

Page 36: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Innovative Software Engineering (ITA2 case study)

Mission Critical Software Agile Development

Agile

Training

Innovative CASE

Tools

Structured

User

Community

Governance

Custom Agile

Development

Doctrine

People (Stake Holders, Users, Developers, “Agile”

Innovators)

Page 37: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

37

Creare l’ambiente culturale per lo sviluppo di un nuovo paradigma d’ingegneria del software

Page 38: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Defense & Security Software Engineers Association Associazione degli Ingegneri del Software per Sicurezza e Difesa

www.dssea.eu

SOFTWARE ENGINEERING Elaborazione di un nuovo paradigma d’Ingegneria del software

Agile Enterprise Network Creazione di una rete d’imprese ispirata a criteri di agilità ed efficenza

Training Formazione innovativa Per generare figure professionali capaci di raccogliere le sfide del futuro

Page 39: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Ciclo conferenze SEDA www.sedaconference.eu/2016

Call for Papers (temporary content, to be completed) Software Engineering methodology, implementation, innovation & tools. (Security & Defense focus will have priority) Software Applications Security, secure coding, cyber threat evolution, cyber defense. Big data and future implications for Smart Organizations (D&S). H2020 ICT work program 2016/17 proposals. Addittive Manifacturing (3D printing) software intensive production processes of the future pose new challenges and threats to software engineering.

Page 40: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Risultati SEDA 2015 • La Conferenza ha visto una partecipazione di rilievo non comune e oltre

le aspettative; infatti i due giorni di presentazione sono stati seguiti da più di 200 partecipanti provenienti da oltre 20 diverse realtà industriali, altrettante PMI (Piccole Medie Imprese) italiane e 14 tra università e istituti di ricerca anche esteri, segnando un successo che nel settore nazionale si profila come il maggiore evento nel settore dello sviluppo software per applicazioni dell’ambito Difesa e Sicurezza.

• 44 articoli tecnici approvati

• Pubblicazione da parte di Springer in corso.

Page 41: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

1° Premio DSSEA Innovative Software Engineering

• Verrà attribuito alla tesi di laurea (2015-2016) nel settore dell’informatica e discipline affini che avrà messo in luce elementi d’innovazione nel settore dello sviluppo del software e/o incorpori metodologie innovative che consentano il miglioramento dell’efficienza del processo produttivo, dell’aderenza alle necessità dell’utente, e una migliore gestione delle problematiche legate alla sicurezza del codice e alla tutela della privacy dei dati.

• Il premio consiste nella somma di 1000 euro, tesseramento gratuito alla DSSEA e pubblicazione del lavoro negli atti ufficiali di SEDA 2016.

• Dettagli sul sito DSSEA

Page 42: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Innovative Software Engineering Course • Il “Corso in Innovative Software Engineering” è l’elemento di base del

ciclo didattico di preparazione per figure destinate ad operare nel processo di produzione del software per applicazioni ad alta affidabilità con la versione della metodologia "AGILE" sperimentata e utilizzata dall’Esercito Italiano.

• L’attività si attua con il patrocinio di sotto l'egida del Comitato Formazione e Standard della DSSEA che ne cura la rispondenza ad obiettivi didattici, attualità e la qualità dei docenti.

• Le figure professionali formate attraverso il corso riempiono il vuoto esistente fra le pratiche così dette “agile” sviluppate in ambito commerciale e le necessità imposte dagli ambienti di sviluppo software formali.

Page 43: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Innovative Software Engineering Course • A differenza di quanto fino ad oggi disponibile sul mercato, il corso

“Innovative Software Engineering” è articolato su una prima fase di approfondimento sulle metodologie “Agile” e la loro comparazione con i metodi di sviluppo tradizionali tenuta da illustri professori provenienti da università italiane e straniere, autori di numerose pubblicazioni scientifiche in materia di ingegneria del software e in particolare di metodi “agile”.

• Una seconda fase applicativa, sulla implementazione effettiva di un ciclo produttivo agile reale tenuto da ingegneri del software militari con effettiva esperienza di realizzazione di prodotti software “mission critical”

Page 44: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

Corso Innovative SW Engineering fase applicativa

Effort Planning

Simulando un utente/stakeholder condurre una

breve intervista che consenta di stilare e almeno

5 user stories (INVEST) per ogni (3) ruolo. (12’)

1

In qualità di sorvegliante

Devo poter Al fine di priorità

In qualità di supervisore

In qualità di manager

15’

Tocca a voi (intero Team)Game rules:

1

•Esecuzione simulata e stilizzata di uno Sprint di 3 settimane pari a 120ore lavorative / operatore

•8 elementi per Team

•PO = Product Owner Stakeholder

•SM = Scrum Master (forte)

•AP = Analista Programmatore – P se usato come Pair Programmer

•S = software Security Expert

•T = software Testing Expert (in aggiunta al testing effettuato da AP)

Effort Planning Diamo per effettuato il Team Building

1. Definire i ruoli nel team (3’) : P.O.-SM-AP-SecEx-Tester = 8 elementi

(serviranno a definire l’impiego delle risorse nei task)

1

Occorre definire il

bilanciamento tra il

numero di Analisti

Programmatori e quello

di esperti di sicurezza e

testing (tot. 6 elementi)

Users Stories & Use Cases

Esercitazione

1

Scopo:

Simulando uno sprint “semplificato” approfondire alcuni elementi critici della metodologia agile.

•Ruolo dell’utente finale

•Raccolta delle User stories

•Pianificazione delle risorse e sprint planning

•Gioco dei ruoli•Rapidità di reazione

•Capacità di agire in Team

Sprint planning (esempio def. Task Verifica/allocazione delle risorse totali (es.per n. 4 AP-1SecEx-1Test spec.)

1

US #1Supervisore flussi video minimi/ottimali

Funzione sw Risorse A/P (h) Risorse testing Risorse Sicurezza Pairprogramming

Task1 Acquisizione stream video 8 1 0 0

Task2 Restituzione lato client sala operativa

8 1 1 si

US #nSupervisore flussi video minimi/ottimali

Funzione sw Risorse A/P (h) Risorse testing Risorse Sicurezza Pairprogramming

Task1 aaaaaaaaaaaaaaaa 8 2 1 si

Task2 bbbbbbbbbbbbbbbb 8 1 0 si

Totali (50/60) 10 task riprogrammati per il prossimo sprint

400 120 120 80

Ultima occasione per ridefinire la squadra

Simulazione realizzazione MMI 1

07:21:32 Op1: tutto bene lungo perimetro ovest07:22:01 SO: OK

Sensori perimetraliSensori IRRadar 1Locks

Sprint planning (limitato a 1 settimana) esempio con 4 task paralleli al giorno

1

Simulazione 1° Sprint

Condurre uno stand-up meeting

abbreviato (5’)

Disegnare (a matita) una MMI

simulata con le funzioni realizzate.

Abilitare SOLO le funzioni

pianificate

Applicare I risultati del “gioco”

Definire il risultato ottenuto

1

20’

Page 45: Verso un nuovo paradigma di Ingegneria del Software per le applicazioni ad alta affidabilità- by DSSEA - festival ICT 2015

•Domande?