Skip to Main Content (Press Enter)

Logo UNIFE
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture

UNI-FIND
Logo UNIFE

|

UNI-FIND

unife.it
  • ×
  • Home
  • Corsi
  • Insegnamenti
  • Professioni
  • Persone
  • Pubblicazioni
  • Strutture
  1. Insegnamenti

008520 - INGEGNERIA DEL SOFTWARE

insegnamento
ID:
008520
Tipo Insegnamento:
Opzionale
Durata (ore):
60
CFU:
6
SSD:
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Url:
Dettaglio Insegnamento:
INGEGNERIA ELETTRONICA E INFORMATICA/Ingegneria informatica - Sistemi web Anno: 3
Anno:
2024
  • Dati Generali
  • Syllabus
  • Corsi
  • Persone

Dati Generali

Periodo di attività

Secondo Semestre (24/02/2025 - 05/06/2025)

Syllabus

Obiettivi Formativi

Il corso propone una serie di argomenti per conoscere e definire i fondamentali aspetti architetturali dei moderni sistemi software.
L'obiettivo del corso è quello di fornire una comprensione approfondita dei concetti del paradigma object-oriented e di fornire gli elementi per la progettazione di applicazioni software con metodologie orientate agli oggetti.

Il corso prevede, oltre a lezioni teoriche, una serie di esercitazioni in aula sulla parte relativa ad UML ed al linguaggio Java.

Il corso fornisce allo studente le seguenti conoscenze:

- Il processo di sviluppo del software: aspetti economici, organizzativi e metodologici; il gruppo di lavoro; prodotto software e processo; il ciclo di vita dei sistemi software; modelli di sviluppo software: modello tradizionale a cascata; modello evolutivo e a fontana, altri modelli.
- Modellazione del software: modelli e linguaggi di specifica; il linguaggio UML; uso di UML entro i progetti informatici; gli strumenti CASE.
- Analisi e specifica dei requisiti:l'interazione con il cliente e la formalizzazione dei requisiti; il metodo dei casi d'uso e le sue applicazioni; risultati del processo di analisi.
- Le architetture software: architetture software per piccoli sistemi; architetture client-server, multi-tier e Web; il pattern MVC e le sue applicazioni; riuso delle componenti.
- il linguaggio Java; l'architettura di Java2; Java e le proprietà di oggetti; sistemi multi-tier in Java;
- Progettazione dei sistemi software: principi e metodi di progettazione; principi di modularità ed incapsulamento; la progettazione orientata agli oggetti; i “design patterns” ed il loro uso; regole di scrittura del codice.
- La fase di test e la qualità del software (metriche e metodologie)
- Metodologie di gestione dei progetti software: il project management
- La conduzione operativa di un progetto: impostazione e definizione di obiettivi; analisi dei vincoli; scelta di strumenti e architetture; il lavoro in team; metriche e diagrammi utili (Gantt, PERT, ...); il problema della documentazione; comunicazione entro e fuori un team; evoluzione e manutenibilità dei sistemi, manutenzione evolutiva.


A fine corso lo studente sarà in grado di modellare un sistema software secondo i requisiti raccolti o fare il reverse_engineering di un sistema già realizzato. Sarà inoltre in grado di progettare un sistema complesso attraverso le varie metodologie Object Oriented con l'obiettivo di soddisfare il design for reuse il il design for change.

Prerequisiti

Una buona conoscenza dei fondamenti della programmazione object-oriented e di un linguaggio di programmazione OO, preferibilmente Java o C++

Metodi didattici

Durante il corso, gli argomenti verranno illustrati con slide contenenti la parte teorica, con esempi pratici ed esercitazioni in aula.
Per ogni concetto si illustrerà l'obiettivo, la sua evoluzione, come viene implementato attraverso JAVA ed esercitazioni per meglio comprenderne l'applicazione pratica.

Verifica Apprendimento

L'esame è composto da uno scritto e la consegna con discussione di un progetto obbligatorio.
Durante lo scritto verranno sottoposte al candidato domande a risposta chiusa sulla teoria svolta durante il corso ed esercizi selezionati tra le seguenti possibilità : a) conversione da modelli di classi o di casi d'uso UML a Java e viceversa b) esercizi sui design pattern c) stesura di modelli UML a partire da un problema descritto in linguaggio naturale.
Lo scritto durerà circa un'ora.

Dall'AA 2023-2024 è obbligatorio lo svolgimento di un progetto (con la consegna del codice sorgente, della relazione UML e del piano di progetto) proposto dai docenti coinvolti durante il corso o di analoga complessità proposto dallo studente, previa accettazione da parte dei docenti coinvolti. Si può svolgere singolarmente o in team. Il progetto può essere consegnato in un appello o sessione diversa da quella dello scritto.

Voto finale = (voto progetto + voto scritto) / 2.

Il superamento dell'esame è prova di aver acquisito le conoscenze e le abilità specificate negli obiettivi formativi dell'insegnamento sia per quanto riguarda gli aspetti teorici che pratici.

Testi

Testi principali di riferimento:
- Robert Cecil Martin, Clean Code, Prentice Hall
- Ian Sommerville, Ingegneria del software, Pearson Education

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994 (Versione Italiana, McGraw-Hill, 2003)

Martin Fowler - UML Distilled. Pearson Addison Wesley

Contenuti

1.Introduzione all'ingegneria del software
2.Il processo di produzione del software
3.Riepilogo dei fondamenti dell'OOP
4.Evoluzione storica dell'OOP
5.OOP, concetti avanzati
6.Implementazione degli oggetti
7.Introduzione a UML
8.Elementi di progettazione orientata agli oggeti (OOD)
9.Componenti software: concetti e modelli

Lingua Insegnamento

ITALIANO

Corsi

Corsi

INGEGNERIA ELETTRONICA E INFORMATICA 
Laurea
3 anni
No Results Found

Persone

Persone

LAZZARINI Alessandro
AREA MIN. 09 - Ingegneria industriale e dell'informazione
Settore ING-INF/05 - Sistemi di Elaborazione delle Informazioni
Collaboratori
No Results Found
  • Utilizzo dei cookie

Realizzato con VIVO | Designed by Cineca | 25.5.0.1