Il 0% ha trovato utile questo documento (0 voti)
152 visualizzazioni4 pagine

Ingegneria Del Software

Il documento descrive un corso universitario di Ingegneria del Software. Viene fornita una descrizione dettagliata degli obiettivi formativi, dei risultati di apprendimento attesi, della valutazione, dell'organizzazione didattica e dei testi consigliati.

Caricato da

Domenico Mereu
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
152 visualizzazioni4 pagine

Ingegneria Del Software

Il documento descrive un corso universitario di Ingegneria del Software. Viene fornita una descrizione dettagliata degli obiettivi formativi, dei risultati di apprendimento attesi, della valutazione, dell'organizzazione didattica e dei testi consigliati.

Caricato da

Domenico Mereu
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 4

DIPARTIMENTO Dipartimento dell'Innovazione Industriale e Digitale - Ingegneria Chimica,

Gestionale, Informatica, Meccanica (DIID)


SCUOLA SCUOLA POLITECNICA
ANNO ACCADEMICO OFFERTA 2015/2016
ANNO ACCADEMICO EROGAZIONE 2017/2018
CORSO DILAUREA INGEGNERIA INFORMATICA E DELLE TELECOMUNICAZIONI
INSEGNAMENTO INGEGNERIA DEL SOFTWARE
TIPO DI ATTIVITA' B
AMBITO 50289-Ingegneria informatica
CODICE INSEGNAMENTO 03968
SETTORI SCIENTIFICO-DISCIPLINARI ING-INF/05
DOCENTE RESPONSABILE SEIDITA VALERIA Ricercatore Univ. di PALERMO
ALTRI DOCENTI
CFU 6
NUMERO DI ORE RISERVATE ALLO 96
STUDIO PERSONALE
NUMERO DI ORE RISERVATE ALLA 54
DIDATTICA ASSISTITA
PROPEDEUTICITA'
MUTUAZIONI
ANNO DI CORSO 3
PERIODO DELLE LEZIONI 1° semestre
MODALITA' DI FREQUENZA Facoltativa
TIPO DI VALUTAZIONE Voto in trentesimi
ORARIO DI RICEVIMENTO DEGLI SEIDITA VALERIA
STUDENTI Venerdì 9:00 11:00 Su appuntamento via email a [email protected] Ed. 6
- 3° piano - stanza 4.
DOCENTE: Prof.ssa VALERIA SEIDITA
PREREQUISITI
RISULTATI DI APPRENDIMENTO ATTESI Conoscenza e capacità di comprensione
Lo studente acquisirà i concetti e le tecniche fondamentali per la raccolta dei
requisiti, stesura delle specifiche, pianificazione, progettazione,
implementazione, integrazione e manutenzione di un prodotto software.
Acquisirà anche una buona conoscenza del linguaggio UML (Unified Modeling
Language) e degli aspetti fondamentali del processo di sviluppo del software
(con particolare riferimento al software object-oriented). Per il raggiungimento di
questo obiettivo il corso comprende lezioni frontali e analisi e discussione di casi
di studio. Per la verifica di questo obiettivo, l’esame comprende la discussione
orale sugli argomenti del programma, su un progetto preparato autonomamente
riguardante la realizzazione di un sistema software

Capacità di applicare conoscenza e comprensione


Lo studente acquisirà la capacità di raccogliere e formalizzare i requisiti del
sistema, di progettare un sistema software anche complesso e di stimare costi e
tempi. Inoltre lo studente sarà in grado di dimensionare correttamente i vari
componenti di un sistema software e di utilizzare UML come linguaggio di
modellazione insieme con gli strumenti di ausilio alla progettazione più comuni.
Per il raggiungimento di questo obiettivo, il corso comprende analisi e
discussioni su casi di studio, esercitazioni di gruppo orientate
all’implementazione di metodologie per lo sviluppo di software con l’uso di
idonei ambienti di sviluppo e la preparazione di un progetto svolto
autonomamente.
Per la verifica di questo obiettivo, l’esame comprende la discussione degli
elaborati preparati durante le esercitazioni e la discussione del progetto
preparato autonomamente.

Autonomia di giudizio
Lo studente acquisirà le metodologie di progettazione, implementazione e
valutazione di architetture di sistemi informatici e analizzerà diversi casi di
studio. Sarà quindi in grado di analizzare i dati, anche limitati e incompleti, a sua
disposizione e proporre soluzioni progettistiche adeguate per problemi nuovi
integrando le conoscenze acquisite durante il corso. Sarà in grado di analizzare
pregi e difetti delle soluzioni proposte, attuare scelte risk-driven nella
pianificazione e attuazione del progetto e modellare un sistema informatico dai
requisiti fino alla implementazione, test e configurazione/installazione.
Per il raggiungimento di questo obiettivo il corso comprende: analisi e
discussioni su casi di studio; lezioni ed esercitazioni sulla progettazione,
implementazione e valutazione di architetture client- server; preparazione di un
progetto svolto autonomamente riguardante la progettazione e la realizzazione
di un sistema software.
Per la verifica di questo obiettivo l’esame comprende la discussione critica delle
tematiche teoriche svolte durante il corso; la discussione del progetto preparato
autonomamente riguardante la progettazione e la realizzazione di un sistema
software.

Abilità comunicative
Durante la prova orale lo studente dovrà dimostrare di saper comunicare con
competenza e proprietà di linguaggio le conoscenze acquisite riguardanti le
problematiche relative alla progettazione, implementazione e valutazione di
sistemi informatici. Per il raggiungimento di questo obiettivo, il corso comprende
esercitazioni sulla progettazione e implementazione di sistemi software e
presentazioni e discussioni in aula di progetti e implementazioni.
Per la verifica di questo obiettivo, l’esame comprende un colloquio orale sugli
argomenti del corso, la discussione su casi di studio, la presentazione di un
progetto preparato autonomamente riguardante la progettazione e la
realizzazione di un sistema software.

Capacità d’apprendimento
Lo studente sarà in grado di apprendere in autonomia le problematiche
specifiche relative alle basi di dati e alla progettazione e realizzazione del
software. Per il raggiungimento di questo obiettivo, il corso comprende
esercitazioni riguardanti l’implementazione di sistemi software e presentazioni in
aula di progetti e implementazioni.
Per la verifica di questo obiettivo, l’esame comprende una prova orale relativa
alle basi di dati e alla progettazione e realizzazione del software, nonché la
discussione di un progetto preparato autonomamente riguardante la
progettazione e la realizzazione di un sistema software.
VALUTAZIONE DELL'APPRENDIMENTO Prova orale con discussione sugli argomenti, sugli elaborati svolti durante le
esercitazioni e sui progetti individuali
OBIETTIVI FORMATIVI Il modulo si propone di fornire allo studente le conoscenze e competenze
necessarie per affrontare la progettazione di un sistema informatico. L’obiettivo
principale del corso è lo studio del processo di sviluppo del software (con
particolare riferimento ai software object-oriented). Verranno esaminate le
tecniche di raccolta dei requisiti, stesura delle specifiche, pianificazione,
progettazione, implementazione, testing, integrazione e manutenzione.
ORGANIZZAZIONE DELLA DIDATTICA Lezioni frontali, esercitazioni in aula, attività in laboratorio, Progetti individuali e
loro presentazione e discussione in aula.
TESTI CONSIGLIATI B. Bruegge, A. H. Dutoit. Object-Oriented Software Engineering: Using UML,
Patterns and Java. Third edition. International edition. ISBN: 0-13-606125-7.
Prentice Hall

Ian Sommerville Ingegneria del software 8/Ed. 2007 pp. 848 ISBN
9788871923543
M. Fowler. UML Distilled. Pearson
Jim Arlow, Ila Neustadt. UML2 e Unified Process - analisi e progettazione
Object Oriented, Addison-Wesley
PROGRAMMA
ORE Lezioni
2 Introduzione all’Ingegneria del Software.
Concetti di: progetto, attività, risorsa, task, workproduct, sistema, modello, documento, obiettivi (goal), requisiti,
vincoli, notazioni, metodi e metodologie
2 Le fasi principali dello sviluppo: raccolta requisiti, analisi dei requisiti, progetto di sistema, progetto esecutivo o
degli oggetti, implementazione, gestione del progetto, testing, ciclo di vita del software.
6 Introduzione all’UML, diagrammi dei casi d’uso, diagrammi delle classi, diagrammi di sequenza e
collaborazione.
Diagrammi di stato diagrammi di attività, diagrammi di dislocazione, organizzazione dei diagrammi, estensione
dei diagrammi, concetti di sistema, modello e vista.
Modellazione object-oriented.
6 Introduzione alla raccolta dei requisiti.
Concetti fondamentali: requisiti funzionali, requisiti non funzionali e pseudo-requisiti, livelli di descrizione.
Principali attributi delle specifiche (correttezza, completezza, …).
Classificazione delle attività di raccolta del requisiti.
6 Analisi dei requisiti:
Identificazione degli attori, degli scenari, dei casi d'uso, dei casi d'uso, delle relazioni tra attori e casi d'uso.
Identificazione degli oggetti d'analisi, identificazione dei requisiti non funzionali.
Modelli di analisi: funzionale, degli oggetti, dinamico.
Concetti di analisi: oggetti di tipo entità, di confine e di controllo.
Passaggio dai casi d’uso agli oggetti, identificazione degli oggetti entità, di confine, di controllo, modellazione
delle interazioni, identificazione delle associazioni e degli attributi, modellazione del comportamento degli
oggetti.
5 Progettazione di sistema.
Introduzione, concetti e attività principali.
Architetture software: client-server peer to peer, pipe and filter.
Attività della progettazione di sistema. Identificazione dei sottosistemi.
La mappatura dei sottosistemi su processori e componenti. La definizione dei depositi di dati. La definizione
dal controllo l'accesso.
La progettazione del flusso di controllo: procedure-driven, event-driven, threads. La progettazione delle
condizioni di confine.
4 Progettazione di dettaglio.
Introduzione, concetti della progettazione del modello ad oggetti.
Attività della progettazione del modello oggetti; oggetti d’analisi e oggetti della soluzione. Tipi, signature,
visibilità.
Contratti: invarianti, pre-condizioni, post-condizioni.
Object Constraint Language.
Identificazione degli attributi e delle operazioni mancanti; specifica di tipi, signature e visibilità.
Specifica dei vincoli (constraint), delle eccezioni; identificazione e adattamento delle librerie di classi;
realizzazione delle associazioni. Incrementare il riuso.
3 Testing.
Introduzione al testing; tecniche di controllo della qualità; tecniche per evitare guasti; tecniche per la scoperta
dei guasti tecniche per tollerare i guasti.
Concetti di test: componente, guasto, errore, malfunzionamento,test case, test stub/driver, correzione.
Attività di testing: ispezione dei componenti; unit testing; test di integrazione; test di sistema.
- test di integrazione: strategie del test di integrazione (big bang, bottom-up, top-down, sandwich, modified
sandwich).
- test di sistema: test funzionale, test di performance, test pilota (alpha test, beta test), test di accettazione e
test di installazione.
Pianificazione del test; documentazione del test.
PROGRAMMA
ORE Lezioni
3 Project Management.
Elementi fondamentali di project management
Caratteristiche fondamentali del progetto
Attività (ordinarie, di riepilogo, cardine). Struttura delle attività. Relazioni tra attività. Le risorse (il calendario, i
costi). I costi fissi del progetto. Le relazioni di progetto.
Il progetto iniziale.
Il progetto con previsioni.
Il progetto con variazioni.

ORE Esercitazioni
5 Esempi di raccolta, analisi e documentazione dei requisiti
Esempi di definizione e documentazione della progettazione di sistema e di dettaglio
Esempi definizione, pianificazione e documentazione dei casi di test
Esempi di project management

ORE Laboratori
12 Utilizzo di CASE tool per la modellazione UML.
Esempi ed esercizi di:
- raccolta e documentazione dei requisiti.
- analisi e documentazione dei requisiti.
- definizione e documentazione della progettazione di sistema.
- definizione e documentazione della progettazione di dettaglio.
- definizione, pianificazione e documentazione dei casi di test
- project management

Potrebbero piacerti anche