Corso Vittorio Emanuele II, 39 - Roma 0669207671

Ingegneria Informatica/Information and communication technologies engineering (with Helwan University) (Anno Accademico 2010/2011)

Algoritmi e programmazione avanzata (vecchio programma)


CFU: 5
Lingua contenuti:Inglese
Descrizione dell'insegnamento
Il corso approfondisce metodi e strumenti dell'ingegneria del software. I temi centrali sono: il ciclo di vita del software, con particolare riguardo alle fasi di specifica dei requisiti e di progettazione, il paradigma ad oggetti la notazione UML e il linguaggio Java.
Prerequisiti
Si richiede la conoscenza dei fondamenti della programmazione e di un linguaggio di programmazione orientato agli oggetti, tipicamente Java.
Scopi
L'obiettivo del corso è lo studio e l'approfondimento degli aspetti fondamentali relativi alla progettazione del software: le qualità del software, il concetto di modulo e la modularizzazione, la distinzione tra analisi (concettualizzazione), progetto e realizzazione, la nozione di specifica. Gli argomenti vengono trattati utilizzando la notazione di UML (Unified Modeling Language) per la fase di analisi, e il linguaggio Java per la fase di progetto e realizzazione. Alla fine del corso lo studente dovrebbe avere acquisito tecniche e metodi per affrontare problemi di progettazione dei programmi secondo una metodologia basata sulla distinzione tra concettualizzazione, progetto e realizzazione, sulla modularizzazione e sulla orientazione agli oggetti.
Contenuti
Il ciclo di vita del software

Le qualità del software
Qualità esterne
Qualità interne

La modularizzazione
Modularizzazione del software
Principi di modularizzazione

Introduzione all'analisi e al linguaggio UML
Introduzione al linguaggio UML
Il diagramma delle classi e degli oggetti

Le associazioni in UML
Istanze di associazioni: link
Più associazioni tra due classi
Nomi di associazioni
Ruolo delle associazioni

Proprietà di associazioni
Associazioni n-arie
Vincoli di molteplicità

La generalizzazione
Generalizzazioni disgiunte
Generalizzazioni complete
Ereditarietà multipla
Differenza tra due is-a e una generalizzazione

Metodologia di analisi

Il diagramma degli use case

Il diagramma degli stati e delle transizioni

Introduzione a java come linguaggio orientato agli oggetti
Testi
Lucidi del corso
Esercitazioni
Gli esercizi consisteranno in applicazioni semplificate dei concetti studiati nel corso.
Docente/Tutor Responsabile insegnamento
Massimo Poncino
Docenti video
Prof. Maurizio Lenzerini - Università "La Sapienza" di Roma (Roma - Italia)
Prof. Giuseppe De Giacomo - Università "La Sapienza" di Roma (Roma - Italia)
Elenco delle lezioni
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
    •  Lezione n. 5: Sorting  Vai alla lezione
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
    •  Lezione n. 16: Graphs I  Vai alla lezione
Massimo Poncino
    •  Lezione n. 17: Graphs II  Vai alla lezione
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino
Massimo Poncino