Politecnico di Torino | |||||||||||||||||
Anno Accademico 2011/12 | |||||||||||||||||
04GSPOV Software engineering |
|||||||||||||||||
Corso di Laurea Magistrale in Ingegneria Informatica (Computer Engineering) - Torino |
|||||||||||||||||
|
|||||||||||||||||
|
|||||||||||||||||
Esclusioni: 05BID |
Presentazione
The course is taught in English.
Insegnamento obbligatorio per la Laurea Magistrale in Computer Engineering. Ha come obbiettivo esporre lo studente alle problematiche di programming in the large (produzione di software di medio grandi dimensioni, con molti programmatori coinvolti) e di illustrare gli strumenti dell’ingegneria del software per affrontarle. |
Risultati di apprendimento attesi
Conoscenze: problematiche nello sviluppo di software di grandi dimensioni (comunicazione e coordinazione tra committenti e sviluppatori, evoluzione nel tempo, correttezza, affidabilita’, usabilita’). Cicli di vita del software. Linguaggio UML. Modellazione operazionale e prototipazione. Verifica e validazione. Gestione e organizzazione di progetti software.
Capacita di applicazione: capacita’di formalizzare i requisiti funzionali e non funzionali di un sistema informativo. Capacita di definire un modello operazionale prototipale di un sistema informativo. Capacita’ di validare e verificare (tramite test, inspection, prototipazione) un sistema informativo nella sua interezza e nelle sue parti. Capacita di impostare il supporto organizzativo in un progetto software (gestione progetto, gestione configurazione, ciclo di vita). |
Prerequisiti / Conoscenze pregresse
Avere scritto programmi di piccole/medie dimensioni, saper utilizzare i costrutti base dei linguaggi di programmazione (funzioni, classi, package)
|
Programma
Introduzione (0.5 CFU)
-problemi nello sviluppo e gestione di programmi di grandi dimensioni -proprieta del software: funzionalita, correttezza, efficenza, usabilita, portabilita, ecc -valore economico diretto e indiretto dei programmi -tipi di programmi Processi software (0.5 CFU) -waterfall, prototyping, iterative -metodologie agili UML (1.5 CFU) -diagrammi strutturali (class diagram, component diagram) -diagrammi dinamici (sequence diagram, statecharts) -diagrammi funzionali (use case diagram) Analisi e modellazione dei requisiti (1.5 CFU) - Requisiti funzionali e non funzionali - Classi di stakeholders - Struttura di un documento di definizione dei requisiti - uso di UML per descrizione dei requisiti - Validazione e verifica dei requisiti: inspection, prototypes, modelli formali Progettazione del software (1 CFU) - uso di UML per la progettazione -pattern di design e di architettura -validazione e verifica del progetto Verification and Validation (2 CFU) - problematiche, correttezza e affidabilita - test: test white e black box, unitario, di integrazione, di sistema; tecniche e strumenti - inspections, walkthrough, reviews, reading Gestione di progetti software (0.5 crediti) - strumenti: WBS, Gantt, Pert, milestones, deliverables. - attivita’: stima, pianificazione, controllo, post mortem Configuration management (0.5 crediti) - identificazione dei componenti - version control, change management, configuration control |
Organizzazione dell'insegnamento
Le esercitazioni, con la presentazione di casi e la soluzione di esercizi, coprono i temi fondamentali del corso: analisi dei requisiti e progetto, test, ispezioni, gestione configurazione, gestione progetto.
|
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
B. Bruegge, A. Dutoit, Object Oriented Software Engineering, Prentice Hall.
Morisio M., Vetro A., Falcarin P., Software Engineering Exercices, CLUT |
Criteri, regole e procedure per l'esame
Esame finale scritto.
|
Orario delle lezioni |
Statistiche superamento esami |
|