20.01.2015 Views

principi d'ingegneria del software, ciclo di vita - Dipartimento di ...

principi d'ingegneria del software, ciclo di vita - Dipartimento di ...

principi d'ingegneria del software, ciclo di vita - Dipartimento di ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

PRINCIPI D’INGEGNERIA DEL SOFTWARE, CICLO DI VITA DEL<br />

SOFTWARE, LINGUAGGI E AMBIENTI DI PROGRAMMAZIONE PER<br />

L’AUTOMAZIONE<br />

Ing. Alessandro Tasora<br />

tasora@ied.unipr.it<br />

Risultato atteso<br />

Conoscere la teoria <strong>del</strong> <strong>ciclo</strong> <strong>di</strong> <strong>vita</strong> <strong>del</strong> <strong>software</strong> e gli aspetti metodologici ed<br />

organizzativi connessi. Acquisire una conoscenza anche pratica dei <strong>di</strong>versi ambienti<br />

hardware/<strong>software</strong> per automazione industriale e <strong>del</strong>le caratteristiche e dei principali<br />

limiti <strong>di</strong> questi in relazione all’attività <strong>di</strong> validazione.<br />

Conoscere gli standard che regolano l’utilizzo dei PLC ed i <strong>software</strong> per la generazione<br />

assistita o automatizzata <strong>del</strong>la documentazione.<br />

Competenze<br />

Comprendere le fasi <strong>di</strong> progettazione, sviluppo e manutenzione <strong>di</strong> un prodotto <strong>software</strong><br />

con particolare riferimento ai sistemi per l’automazione.<br />

Essere in grado <strong>di</strong> gestire correttamente i rapporti con i fornitori <strong>di</strong> <strong>software</strong> verificando<br />

che la documentazione e i test siano adeguati alle necessità <strong>di</strong> qualificazione <strong>del</strong><br />

sistema.<br />

Saper in<strong>di</strong>care le tecnologie hardware, i linguaggi <strong>di</strong> programmazione e gli ambienti <strong>di</strong><br />

sviluppo idonei, in relazione ad una applicazione, ad ottenere un <strong>software</strong><br />

documentato, mantenibile e testabile.<br />

Essere in grado <strong>di</strong> formulare correttamente i requisiti funzionali e <strong>di</strong> qualità <strong>del</strong> <strong>software</strong><br />

da realizzare, nonché <strong>di</strong> verificarne l’effettiva implementazione.<br />

Contenuti<br />

Il processo <strong>di</strong> sviluppo <strong>del</strong> <strong>software</strong><br />

• aspetti economici, organizzativi e metodologici;<br />

• <strong>ciclo</strong> <strong>di</strong> <strong>vita</strong> dei sistemi <strong>software</strong>;<br />

• mo<strong>del</strong>lo tra<strong>di</strong>zionale a cascata, evolutivo ed a fontana;<br />

• meto<strong>di</strong> bottom-up o top-down.<br />

Analisi e specifica dei requisiti<br />

• classificazioni <strong>del</strong>le tipologie <strong>di</strong> utenti;<br />

• definizione dei requisiti hardware;<br />

• mo<strong>del</strong>li e linguaggi <strong>di</strong> specifica;<br />

• analisi sistematica dei casi d’uso;<br />

Progettazione dei sistemi <strong>software</strong><br />

• <strong>principi</strong> e meto<strong>di</strong> <strong>di</strong> progettazione;<br />

• architetture e componenti;<br />

• <strong>principi</strong> <strong>di</strong> modularità e <strong>di</strong> incapsulamento;<br />

• la progettazione orientata agli oggetti;<br />

• Object mo<strong>del</strong>ing technique (OMT);<br />

• Unified Mo<strong>del</strong>ing Language (UML);<br />

• Class Responsibility Collaboration (CRC);


• strumenti CASE;<br />

• Application Program Interfaces (API), plugins.<br />

Realizzazione dei sistemi <strong>software</strong><br />

• principali linguaggi ed ambienti <strong>di</strong> sviluppo<br />

• sistemi per l’ambito industriale – automazione, stazioni <strong>di</strong> controllo qualità.<br />

• strumenti per lo sviluppo: e<strong>di</strong>tor, compilatore, linker, debugger, profiler, IDE,<br />

makefile,<br />

• strumenti per packaging e deployment.<br />

Documentazione<br />

• commento <strong>del</strong> co<strong>di</strong>ce sorgente,<br />

• generazione assistita o automatizzata <strong>del</strong>la documentazione,<br />

• manualistica.<br />

Qualità <strong>del</strong> <strong>software</strong><br />

• validazione dei componenti<br />

• system testing e acceptance testing, alpha e beta testing,<br />

• strumenti per <strong>software</strong> metrics;<br />

• certificazioni, capitolati;<br />

• cleanroom <strong>software</strong> engineering<br />

Sistemi informatici per applicazioni industriali<br />

• PC industriali e PLC,<br />

• embed<strong>di</strong>ng<br />

• la norma IEC 61131,<br />

• sistemi operativi e <strong>software</strong> hard-real-time e soft-real-time,<br />

• protocolli <strong>di</strong> comunicazione in ambiente industriale.<br />

Durata<br />

60 ore<br />

Modalità formative<br />

Lezioni frontali, laboratorio con ambienti <strong>di</strong> sviluppo <strong>software</strong> e simulatori, <strong>di</strong>scussione<br />

<strong>di</strong> casi aziendali.<br />

Materiale <strong>di</strong>dattico<br />

Dispense in formato PDF scaricabile dalla rete, presso<br />

http://Ied.unipr.it/~tasora/<strong>software</strong>_engineering.html<br />

Testi d’approfon<strong>di</strong>mento:<br />

J.Arlow, I.Neistadt: UML e Unified Process, McGraw Hill, 2003<br />

H.Schildt: C++ La Guida Completa, McGraw Hill, 3° ed, 2003<br />

Bjarne Stroustrup The C++ Programming Language (e<strong>di</strong>tori vari)<br />

C. Savy: Da C++ a UML - Guida alla progettazione , McGraw Hill,<br />

Modalità <strong>di</strong> valutazione<br />

Test carta e matita.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!