Questo sito utilizza cookie tecnici propri e di terze parti, necessari al suo funzionamento, e, con il tuo consenso, cookie di profilazione ed altri strumenti di tracciamento di terze parti, utili per esporre video ed analizzare il traffico al fine di misurare l'efficacia delle attività di comunicazione istituzionale. Puoi rifiutare i cookie non necessari e di profilazione cliccando su "Solo cookie tecnici". Puoi scegliere di acconsentirne l'utilizzo cliccando su "Accetta tutti" oppure puoi personalizzare le tue scelte cliccando su "Personalizza".
Per maggiori informazioni consulta la nostra privacy policy.

Solo cookie tecnici Personalizza Accetta tutti

vai al contenuto vai al menu principale vai alla sezione Accessibilità vai alla mappa del sito
Login  Docente | Studente | Personale | Italiano  English
 
Home page Home page

Ingegneria del software

Corso Ingegneria informatica, elettronica e delle telecomunicazioni
Curriculum Curriculum unico
Orientamento Orientamento unico
Anno Accademico 2021/2022
Crediti 6
Settore Scientifico Disciplinare ING-INF/05
Anno Terzo anno
Unità temporale Secondo semestre
Ore aula 48
Attività formativa Attività formative a scelta dello studente (art.10, comma 5, lettera a)

Canale unico

Docente ROBERTO NARDONE
Obiettivi OBIETTIVI FORMATIVI
Il corso di Ingegneria del Software mira a fornire i principi, le metodologie e le tecniche alla base delle diverse fasi di sviluppo e produzione del codice: pianificazione, modellazione e specifica, progettazione, implementazione, collaudo e verifica, valutazione, manutenzione. Gli studenti sono posti in condizione di condurre le principali attività previste dal ciclo di vita di creazione di un software a partire dalla specifica e/o dagli artefatti previste nelle fasi precedenti. Il corso fornisce gli strumenti teorici e le relative linee guida per affrontare ciascuna fase del ciclo di vita. Il corso prevede inoltre una parte esercitativa con lo scopo di fornire agli studenti gli elementi pratici per la progettazione di software complessi.

Conoscenze e capacità di comprensione:
Conoscenza dei principi fondamentali dell’Ingegneria del Software, ovvero delle tecniche e degli strumenti di supporto per ogni fase del ciclo di vita, nonché le principali architetture software e framework di sviluppo.

Autonomia di giudizio:
Per il superamento dell'esame lo studente deve essere in grado di valutare le diverse alternative in fase di progettazione e di verifica del software. Le alternative saranno valutare in base all’analisi dei requisiti funzionali e non funzionali, alla manutenibilità ed alle prestazioni da garantire.

Abilità comunicative:
Capacità di comunicare con adeguata competenza tecnica e con linguaggio appropriato, illustrando le motivazioni teoriche e tecniche che sono alla base delle scelte fondamentali di progettazione di un sistema software complesso.

Capacità di apprendimento:
Capacità di apprendimento di nuove tecniche, tecnologie e strumenti che derivano dal costante avanzamento dell’Ingegneria del Software moderna, e di applicare le stesse a nuovi progetti.



Programma N.D.
Testi docente N.D.
Erogazione tradizionale No
Erogazione a distanza No
Frequenza obbligatoria No
Valutazione prova scritta No
Valutazione prova orale No
Valutazione test attitudinale No
Valutazione progetto No
Valutazione tirocinio No
Valutazione in itinere No
Prova pratica No
Docente Lorenzo MUSARELLA
Obiettivi OBIETTIVI FORMATIVI
Il corso di Ingegneria del Software mira a fornire i principi, le metodologie e le tecniche alla base delle diverse fasi di sviluppo e produzione del codice: pianificazione, modellazione e specifica, progettazione, implementazione, collaudo e verifica, valutazione, manutenzione. Gli studenti sono posti in condizione di condurre le principali attività previste dal ciclo di vita di creazione di un software a partire dalla specifica e/o dagli artefatti previste nelle fasi precedenti. Il corso fornisce gli strumenti teorici e le relative linee guida per affrontare ciascuna fase del ciclo di vita. Il corso prevede inoltre una parte esercitativa con lo scopo di fornire agli studenti gli elementi pratici per la progettazione di software complessi.

Conoscenze e capacità di comprensione:
Conoscenza dei principi fondamentali dell’Ingegneria del Software, ovvero delle tecniche e degli strumenti di supporto per ogni fase del ciclo di vita, nonché le principali architetture software e framework di sviluppo.

Autonomia di giudizio:
Per il superamento dell'esame lo studente deve essere in grado di valutare le diverse alternative in fase di progettazione e di verifica del software. Le alternative saranno valutare in base all’analisi dei requisiti funzionali e non funzionali, alla manutenibilità ed alle prestazioni da garantire.

Abilità comunicative:
Capacità di comunicare con adeguata competenza tecnica e con linguaggio appropriato, illustrando le motivazioni teoriche e tecniche che sono alla base delle scelte fondamentali di progettazione di un sistema software complesso.

Capacità di apprendimento:
Capacità di apprendimento di nuove tecniche, tecnologie e strumenti che derivano dal costante avanzamento dell’Ingegneria del Software moderna, e di applicare le stesse a nuovi progetti.



Programma Introduzione all'Ingegneria del software. Processo e prodotto. Fattori di qualità del software. Principi dell’ingegneria del software: formalità, astrazione, separazione degli interessi, modularità, incapsulamento, information hiding, coesione, accoppiamento, anticipazione del cambiamento. Il concetto di modulo software, moduli come astrazione sul controllo e come astrazione sui dati. Relazioni tra moduli.

Cenni di project management, Pert e Gantt.

Il ciclo di vita del software. Principali attività della produzione del software. Modello a cascata; modello con retroazione. Modelli evolutivi. Modello a ‘V’. Metodologie Agili. SCRUM.

Ingegneria dei requisiti. Concetto di prodotto Software. Generalità sulla stima dei costi. Metriche funzionali (Function Points). Analisi dei punti funzione (FPA). Analisi e specifica dei requisiti. Documento dei requisiti (SRS). Requisiti utente e di sistema. Requisiti funzionali e non funzionali. Tassonomia dei requisiti non funzionali. Completezza e consistenza dei requisiti. Standard per la specifica dei requisiti. Elicitazione, analisi dei requisiti e validazione dei requisiti. Tracciabilità dei requisiti. Modellazione dei casi d’uso in UML.

La modellazione a oggetti. Obiettivi della modellazione. La progettazione tradizionale e quella orientata agli oggetti. L’ereditarietà come strumento di progettazione e di riuso. La fase di progettazione. La modellazione a oggetti in linguaggio UML: diagrammi delle classi, di interazione, di stato, di attività, dei componenti, dei package, di deployment. Dalla progettazione a oggetti alla programmazione a oggetti. Realizzazione del contenimento stretto e lasco, delle associazioni e dell’interazione tra gli oggetti. Pattern architetturali e di design. Pattern creazionali, strutturali e comportamentali. I pattern DAO, Observer, Factory, Model-View-Controller, Singleton, Façade, Adapter, Composite. Dal progetto UML alla implementazione in Java.

Verifica e validazione del software (V&V). Analisi statica. 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 o numero di Mc Cabe. Test combinatoriale. Model-based testing. Test di robustezza. Metodi formali. Concetti di affidabilità del software. Dependability.

Modelli e architetture software. Partizioni e Layer. Pattern architetturali. Repository Architecture. Client/Server Architecture. Peer-To-Peer Architecture. Model/View/Controller. Architetture n-tier.
Testi docente I. Sommerville. Software Engineering, X ed., Pearson 2017.
C. Larman, Applicare UML e i Pattern - Analisi e Progettazione orientata agli Oggetti, III ed. Prentice-Hall, 2005.
Erogazione tradizionale
Erogazione a distanza No
Frequenza obbligatoria No
Valutazione prova scritta
Valutazione prova orale
Valutazione test attitudinale No
Valutazione progetto No
Valutazione tirocinio No
Valutazione in itinere No
Prova pratica

Ulteriori informazioni

Nessun materiale didattico inserito per questo insegnamento
Nessun avviso pubblicato
Nessuna lezione pubblicata
Codice insegnamento online pubblicato. Per visualizzarlo, autenticarsi in area riservata.

Impostazione cookie

Cerca nel sito

 

Posta Elettronica Certificata

Direzione

Tel +39 0965.1693217/3252

Fax +39 0965.1693247

Indirizzo e-mail


Protocollo

Tel +39 0965.1693422

Fax +39 0965.1693247

Indirizzo e-mail

Didattica e orientamento

Tel +39 0965.16933385

Fax +39 0965.1693247

Indirizzo e-mail

Indirizzo e-mail

Segreteria studenti

Tel +39 0965.1691475

Fax +39 0965.1691474

Indirizzo e-mail

Amministrazione

Tel +39 0965.1693214

Fax +39 0965.1693247

Indirizzo e-mail


Ricerca

Tel +39 0965.1693422

Fax +39 0965.1693247

Indirizzo e-mail

Social

Facebook

Twitter

YouTube

Instagram