Docenti
– introdurre ai concetti di base dell’Ingegneria del Software (IS), ossia il settore ingegneristico dell’informatica dedicato allo studio delle metodologie, delle tecniche e degli strumenti utilizzati in tutti gli aspetti della produzione industriale del software;
– capire quali sono i principali problemi che si incontrano nello sviluppo del software a livello professionale ed industriale;
– conoscere come è organizzato il processo di produzione e di sviluppo del software;
– sapere come organizzare un modello del software e come produrre una specifica software
– sapere come organizzare e svolgere test automatizzati.
CAPACITA’ RELATIVE ALLE DISCIPLINE
Lo studente dovrà:
1. Conoscenza e capacità di comprensione:
Acquisire specifiche conoscenze dei principali concetti e principi dell’IS. Conoscere molteplici modelli del processo di sviluppo del software e le varie fasi del ciclo di vita, con riferimento sia al software tradizionale, che al software avanzato. Conoscere diverse tecniche di analisi e di progettazione del software, ivi comprese le tecniche strutturate e quelle object-oriented e i Principi Solidi di Design OO. Conoscere le notazioni per la modellazione del software inclusi i linguaggi: UML, Data Flow Diagram. Conoscere i maggiori fattori di criticità nello sviluppo del software. Conoscere le principali tecniche di verifica e validazione del software, ivi incluse le tecniche di testing e di software inspection e le relative metriche di qualità. Conoscere le nuove tecniche agili di sviluppo del software.
2. Capacità di applicare conoscenza e comprensione:
Sapere come analizzare e rappresentare i risultati dell’analisi e della progettazione in uno specifico dominio applicativo.
CAPACITA’ TRASVERSALI / SOFT SKILLS
Lo studente dovrà:
1. Autonomia di giudizio:
Saper valutare indipendentemente le caratteristiche ed i requisiti di un’applicazione informatica ed essere in grado di rappresentarne l’analisi e la progettazione.
2. Abilità comunicative:
Saper illustrare con rigore logico e terminologico, a voce e per iscritto mediante varie tecniche di rappresentazione, gli elementi tecnici rilevanti di un progetto software.
3. Capacità di apprendimento:
Essere in grado di apprendere le nozioni base dell’IS, al fine poi all’occorrenza di raffinare e di approfondire specifici settori della disciplina.
* Il ciclo di vita del software: Modello a cascata; modello con retroazione. Modelli evolutivi. Modello trasformazionale. Modello a ‘V’. Metodologie Agili.
* Stima dei costi. Generalità sulla stima dei costi.
* Analisi e specifica dei requisiti. Tipologie di requisiti: d’utente, di sistema e di dominio, funzionali e non funzionali. Completezza, consistenza, verificabilità e tracciabilità dei requisiti. Il documento di specifica dei requisiti (SRS). Modellazione dei casi d’uso.
* Modellazione a oggetti: Il linguaggio UML: diagrammi delle classi, di interazione, di stato, di attività, dei componenti, dei package, di deployment. Analisi e progettazione in UML. Pattern architetturali e di progettazione.
* Verifica e validazione del software: Principi base. Obiettivi e pianificazione del testing. Tecniche di testing black-box e white-box. Test di unità, di integrazione, di sistema, di accettazione, di regressione. Test strutturale, criteri di copertura. Complessità ciclomatica. Test combinatoriale.
* Metriche e modelli di qualità del software. Metriche del software. Modelli di qualità del software; lo standard ISO 9126.
* M. Fowler, Uml Distilled: Guida rapida al linguaggio di modellazione standard, Pearson, 3rd Ed – 2015
Università degli Studi di Udine
Dipartimento di Scienze Matematiche, Informatiche e Fisiche (DMIF)
via delle Scienze 206, 33100 Udine, Italy
Tel: +39 0432 558400
Fax: +39 0432 558499
PEC: amce@postacert.uniud.it
p.iva 01071600306 | c.f. 80014550307
30 km from Slovenia border
80 km from Austria border
120 km from Croatia border
160 km South West of Klagenfurt (Austria)
160 km West of Lubiana (Slovenia)
120 km North East of Venezia (Italy)