elenco     
        corso     

Ingegneria del software A

Codice: 271AACrediti: 6Semestre: 1Sigla: IS 
 
Settore disciplinare: INF/01 - Informatica

Docente

Carlo Montangero   monta@di.unipi.it  Stanza 311  Tel. 0502212799

Prerequisiti

Programmazione 2 o metodologie di programmazione

Obiettivi di apprendimento

Rendere padroni di strumenti moderni e assestati per la progettazione e la verifica di sistemi software.
Conoscenze. Le conoscenze acquisite al termine del corso caratterizzano lo studente come professionista dello sviluppo software.
Capacità. Le capacità professionali acquisite sono prerequisito per le attività cooperative tipiche dello sviluppo software.

Descrizione

Dopo una prima fase di motivazione, in cui si discutono i problemi della produzione del software e i modelli di ciclo di vita, la maggior parte del corso si occupa di modellazione del prodotto software in UML, trattando i principali tipi di modelli adatti per ciascuna attività: analisi del dominio e dei requisiti, progettazione architettonica e di dettaglio, sia dal punto di vista statico (modellazione delle strutture) che dinamico (modellazione dei comportamenti). La parte finale tratta delle tecniche di progettazione delle verifiche.

English Description

The initial part provides motivations for the rest: we discuss the problems occuring in software production and the life-cycle models. The largest part is devoted to modelling the software product in UML, presenting the most important model kinds per each activity: domain and requirements analyis, architectural and detailed design, both from the static (structural) and the dynamic (behavioural) viewpoint. Finally, we present the design techniques for software verification.

Programma

Processo di sviluppo software: problemi della produzione del software, modelli di ciclo di vita. Analisi del dominio: modelli statici (classi e associazioni) e dinamici (attività, macchine a stati). Analisi dei requisiti: modello statico (casi d’uso) e dinamici (narrative). Progettazione architettonica: modelli statici (viste strutturali e logistiche) e dinamici (vista componenti/connettori). Progettazione di dettaglio: modello statico delle componenti (strutture composite) e modello dinamico (interazioni). Verifiche e prove: obiettivi e pianificazione delle verifiche, progettazione e valutazione delle prove.
Ore lezione: 34Ore esercitazione: 14   

Bibliografia

[A] J. Arlow, I. Neustadt, UML 2 e Unified Process, (seconda edizione italiana), McGraw-Hill, 2006.
Capitoli 1,2, 3-5, 7-13 (tranne 8.2, 10.4, 10.5), 16 (paragrafi 3, 4, 5, 11.3, 12), 17, 19-20 (tranne 20.5) e 22.
[F] A. Binato, A. Fuggetta, L. Sfardini, Ingegneria del Software - Creatività e metodo, Addison Wesley, 2006.
Capitoli 7 e 8 (pp 147-158).
[S] L. Semini, Architetture software (quarta edizione). Nota didattica, 2009.
[E] V. Ambriola, C. Montangero, L. Semini. Esercizi di Ingegneria del Software (quarta edizione). Nota didattica: 2009.
[T] C. Montangero, L. Semini (a cura di). Il controllo del Software - verifica e validazione, Nota didattica, 2008.

Le dispense S, E e T si possono scaricare dalla pagina comune di IS.

Modalità di esame

La valutazione avviene mediante prova scritta e prova orale. Per l'ammissione all'orale si deve ottenere un voto pari o superiore a 16 nello scritto. L'ammissione vale solo per lo stesso appello. Le valutazioni intermedie sono scritte e sono superate con un voto minimo di 15 e una media di 16. Il superamento delle verifiche comporta l'esenzione dall scritto e l'ammissione all'orale in uno qualunque degli appelli, previa iscrizione.

Ciascuna prova scritta fa riferimento a uno degli scenari pubblicati in anticipo nella pagina comune di IS.


Ulteriore pagina web del corso: http://didawiki.cli.di.unipi.it/doku.php/informatica/is-a/start


home


email