Corso Vittorio Emanuele II, 39 - Roma 0669207671

MOOC Massive Open Online Courses (Academic Year 2018/2019)

Algoritmi e programmazione avanzata (vecchio programma)



Slides

Lesson n. 1: Introduzione alla progettazione del software
   Programma del corso

   Il contesto organizzativo dello sviluppo del software

   Esercizio 1

   Classificazione

   Esercizio 2

   Classificazione (II)

   Ciclo di vita del software
Vai alla slide della lezione Maurizio Lenzerini
Lesson n. 2: Le qualita' del software
   Introduzione ai fattori di qualita'

   Esercizio 3

   Qualità esterne

   correttezza

   Affidabilità

   Robustezza

   Usabilità

   Estendibilità

   Riusabilità

   Interoperabilità

   Qualità interne

   Efficienza

   Strutturazione e Modularita'

   Comprensibilità

   Verificabilità

   Manutenibilità e Portabilità

   Esercizio 4
Vai alla slide della lezione Maurizio Lenzerini
Lesson n. 3: La modularizzazione
   Modularizzazione del software

   Modulo

   Modularizzazione

   Componenti di un modulo

   Principi di modularizzazione

   I 4 dogmi della modularizzazione

   Esempi negativi

   Esempi positivi

   Esempio di cattiva modularizzazione

   Esempio di buona modularizzazione

   Effetti di una buona modularizzazione

   Approccio orientato agli oggetti

   Funzioni od Oggetti?

   Principi di base

   Fattori di qualita' influenzati dall'approccio OO
Vai alla slide della lezione Maurizio Lenzerini
Lesson n. 4: Introduzione all'analisi e al linguaggio UML
   Cosa e' l'analisi

   Uso di UML nella nostra metodologia

   Il diagramma delle classi e degli oggetti

   Oggetti in UML

   Classi UML

   Rapporto tra classi e istanze

   Attributi in UML

   Importanza dell'identificatore di oggetto

   Esercizio

   Obiettivo

   Schema concettuale

   Modelli e metodi per l'analisi

   Introduzione al linguaggio UML

   Diagrammi
Vai alla slide della lezione Maurizio Lenzerini
Lesson n. 5: Le associazioni in UML
   Osservazioni sulle classi

   Relazioni in matematica

   Le associazioni

   Definizione di associazione

   Esempi

   Istanze di associazioni: link

   Piu' associazioni tra due classi

   Esempio

   Esercizio

   Nomi di associazioni

   Ruolo delle associazioni
Vai alla slide della lezione Maurizio Lenzerini
Lesson n. 6: Proprieta' di associazioni
   Attributi di associazioni

   Esempio

   Notazione

   Esercizio 1

   Associazioni n-arie

   Esempio

   Associazioni n-arie con attributi

   Differenza tra classi e associazioni

   Vincoli di molteplicità

   Molteplicità delle associazioni

   Esempio

   Notazioni

   Esempi di molteplicità

   Esercizio 2

   Esercizio 3

   Molteplicità di attributi

   Esempio

   Attributi multivalore nelle istanze

   Introduzione alla generalizzazione
Vai alla slide della lezione Maurizio Lenzerini
Lesson n. 7: La generalizzazione
   La generalizzazione in UML

   Esempio di generalizzazione semplice in UML

   Ereditarietà in UML

   Esempio-Ereditarità in UML : istanze

   Esempio - Ereditarieta' sulle associazioni

   Ereditarieta' sulle molteplicita'

   Esercizio: individuare gli errori

   Generalizzazione in UML con piu' sottoclassi

   Tipi di generalizzazione

   Generalizzazioni disgiunte

   Generalizzazioni complete

   Ereditarieta' multipla

   Differenza tra due is-a e una generalizzazione
Vai alla slide della lezione Maurizio Lenzerini
Lesson n. 8: Metodologia di analisi
   Specializzazione

   Esempio

   Le operazioni di classe

   Esempio

   Formato

   Osservazioni sulle operazioni

   Esercizio 1

   Commenti in UML

   Aspetti metodologici

   Tabella riassuntiva

   Passi metodologici

   Controllo di qualita' sul diagramma delle classi

   Dicotomia tra classe e attributi

   Scelta tra attributi e classi

   Esempio
Vai alla slide della lezione Maurizio Lenzerini
Lesson n. 9: Altri diagrammi in UML
   Aspetti metodologici (continuazione)

   Dicotomia tra classi e associazioni

   Scelta tra classi e associazione

   Esempio

   Verifiche sulla generalizzazione

   Il diagramma degli use case

   Use case

   Use case: Attori

   Componenti di un diagramma degli use case

   Associazione

   Incluzione

   Estensione

   Generalizzazione

   Esempio
Vai alla slide della lezione Maurizio Lenzerini
Lesson n. 10: Il diagramma degli stati e delle transizioni
   Il diagramma degli stati e delle transizioni

   Stati e transizioni

   Esempio

   Esempio 2

   Attività

   Esempio

   Stato composto

   Esempio

   Esercizio

   La specifica di classi e use case

   Specifica di una classe

   Specifica di un Use Case

   Specifica di una operazione

   Esempio

   Esempio 2
Vai alla slide della lezione Maurizio Lenzerini
Lesson n. 11: Introduzione a java come linguaggio orientato agli oggetti. Lezione 1
   Introduzione a Java

   Paradigmi di programmazione

   Java

   Java virtuale Machine

   Un programma Java

   Compilazione ed esecuzione di programmi

   Preparazione del Testo del Programma

   Compilazione del Programma

   Eseguire un programma

   Anatomia di un (semplice) programma Java

   Fattoriale .java

   Elementi di sintassi

   Tipi predefiniti

   main

   System.out.print

   Operatore di concatenazione tra stringhe
Vai alla slide della lezione Giuseppe De Giacomo
Lesson n. 12: Introduzione a java come linguaggio orientato agli oggetti. Lezione 2
   Definizioni di classi Java

   Elementi di una classe Java

   Esempio

   Osservazioni: campi

   Osservazioni: modificatori d'accesso

   Uso di Java

   Uso della classe definita

   Esempio di cliente della classe persona

   Riferimenti e oggetti

   Allocazione statica e dinamica

   Esempio

   Assegnazione tra riferimenti

   Assegnazione tra tipi predefiniti

   Deallocazione degli oggetti

   Esempio
Vai alla slide della lezione Giuseppe De Giacomo
Lesson n. 13: Introduzione a java come linguaggio orientato agli oggetti. Lezione 3
   public e private

   Esempio

   Impatto metadologico

   Overloading di funzioni

   Esempio

   Costruttori

   Cos'è un costruttore

   Esempio

   Invocazione del costruttore

   Esempio

   Analizziamo la costruzione di un oggetto

   Inizializzazioni implicite dei campi di una classe

   Overloading di costruttori

   Esempio di utilizzo

   Costruttore standard
Vai alla slide della lezione Giuseppe De Giacomo
Lesson n. 14: Introduzione a java come linguaggio orientato agli oggetti. Lezione 4
   Esercizi di realizzazioni di classi e clienti

   Esercizio (classe Automobile)

   Funzioni static

   Esercizio (cliente)

   Riferimento implicito this
Vai alla slide della lezione Giuseppe De Giacomo
Lesson n. 15: Introduzione a java come linguaggio orientato agli oggetti. Lezione 5
   Package

   Esempio

   Import

   Esempio

   Sottopackage

   Esempi

   Package e direttori

   Livelli di accesso: classi

   File sorgente e classi

   Livelli di accesso: campi

   Regole di visibilità

   Esempio

   Osservazioni su informazioni hiding

   Osservazioni sui package
Vai alla slide della lezione Giuseppe De Giacomo
Lesson n. 16: Introduzione a java come linguaggio orientato agli oggetti. Lezione 6 Vai alla slide della lezione Giuseppe De Giacomo
Lesson n. 17: Introduzione a java come linguaggio orientato agli oggetti. Lezione 7 Vai alla slide della lezione Giuseppe De Giacomo
Lesson n. 18: Introduzione a java come linguaggio orientato agli oggetti. Lezione 8 Vai alla slide della lezione Giuseppe De Giacomo
Lesson n. 19: Introduzione a java come linguaggio orientato agli oggetti. Lezione 9 Vai alla slide della lezione Giuseppe De Giacomo
Lesson n. 20: Introduzione a java come linguaggio orientato agli oggetti. Lezione 10 Vai alla slide della lezione Giuseppe De Giacomo