Analisi e Progettazione del Software

AppuntiEsamiEsercizi Q&A

Sito del Corso

Professore:
Luca Cabibbo
Email: cabibbo@dia.uniroma3.it

Descrizione del Corso
Obiettivo formativo

Il corso di Analisi e progettazione del software presenta gli aspetti fondamentali della modellazione, analisi e progettazione del software, con riferimento alle tecniche di analisi e progettazione orientata agli oggetti ed allo sviluppo, iterativo, incrementale e agile.

Lo studente che abbia superato il corso dovrà essere in grado di progettare autonomamente applicazioni software di media complessità, nonché partecipare al progetto di applicazioni software di grande complessità.

Contenuti

Sviluppo iterativo e incrementale. Unified Process.
Analisi dei requisiti. Casi d’uso.
Analisi orientata agli oggetti. Modello di dominio. Diagrammi di sequenza di sistema. Contratti delle operazioni.
Progettazione orientata agli oggetti. Diagrammi di interazione. Diagrammi delle classi di progetto.
Dalla progettazione orientata agli oggetti alla programmazione orientata agli oggetti.
Principi di analisi e progettazione orientata agli oggetti. Pattern GRASP.
Design patterns.
Progettazione dell’architettura logica. Pattern architetturali.
Gestione della persistenza degli oggetti. (cenni)
Unified Modeling Language.

Prerequisiti

Costituiscono un PREREQUISITO FONDAMENTALE di questo corso i corsi di Basi di dati I e di Programmazione orientata agli oggetti.

 

Programma del Corso
  • Introduzione all’analisi e progettazione orientata agli oggetti – Capitolo
    1
  • Processi per lo sviluppo del software; processo a cascata; processo
    iterativo, evolutivo e agile; Unified Process (UP) –
    Capitolo 2 (di cui da 2.6 a 2.9 e 2.12 solo cenni)
  • Introduzione agli studi di caso POS NextGen e Monopoly Game System – Capitolo 3
  • Ideazione – Capitolo 4 (cenni)
  • Requisiti: Requisiti – Capitolo 5
  • Requisiti: Casi d’uso – Capitolo 6 (da 6.1 a 6.13, nonché 6.17, 6.20 e 6.21)
  • Requisiti: Altri requisiti – Capitolo 7 (cenni)
  • Elaborazione: Iterazione 1 – Capitolo 8
  • Analisi orientata agli oggetti: Modelli di dominio – Capitolo 9
  • Analisi orientata agli oggetti: Diagrammi di sequenza di sistema –
    Capitolo 10
  • Analisi orientata agli oggetti: Contratti delle operazioni – Capitolo 11
  • Dai requisiti alla progettazione – Capitolo 12
  • Architettura logica e diagrammi dei package di UML – Capitolo 13
  • Verso la progettazione a oggetti – Capitolo 14
  • Diagrammi di interazione di UML – Capitolo 15
  • Diagrammi delle classi di UML – Capitolo 16 (normalmente in dettaglio,
    con le seguenti eccezioni: 16.15 cenni, 16.16 cenni, saltare 16.18, saltare
    16.20)
  • Progettazione orientata agli oggetti: Progettazione basata
    sull’assegnazione di responsabilità; pattern GRASP (information
    expert, creator, low coupling, high cohesion, controller) – Capitolo 17
  • Progettazione orientata agli oggetti: Realizzazione di casi d’uso con i
    pattern GRASP – Capitolo
    18
  • Progettazione orientata agli oggetti: Progettare per la visibilità –
    Capitolo 19
  • Progettazione orientata agli oggetti: Trasformare i progetti in codice –
    Capitolo 20
  • Progettazione orientata agli oggetti: Sviluppo guidato dai test e
    Refactoring – Capitolo
    21 (cenni)
  • Progettazione orientata agli oggetti: Strumenti per UML e UML come
    progetto – Capitolo
    22 (cenni)
  • Elaborazione: Iterazione 2 – Capitolo 23
  • Analisi orientata agli oggetti: Rapido aggiornamento dell’analisi –
    Capitolo 24
  • Analisi orientata agli oggetti: Raffinamento del modelli di dominio –
    Capitolo 31 (da 31.1 a 31.9, in dettaglio; 31.10, cenni; da 31.11 a 31.15 e 31.17,
    in dettaglio)
  • Progettazione orientata agli oggetti: Altri pattern GRASP (polymorphism,
    pure fabrication, indirection, protected variations) – Capitolo 25
  • Progettazione orientata agli oggetti: Progettazione basata sull’uso dei
    design pattern GoF: adapter, factory, singleton, strategy, facade,
    observer (in dettaglio), proxy (cenni) – Capitolo 26
  • Raffinamento dell’architettura logica: collaborazioni tra strati – Capitolo 34 (34.2 e
    34.4)
  • Ulteriore progettazione a oggetti con i pattern GoF – Capitolo 36 (36.9
    e 36.10)
  • SOLID: Altri principi per la progettazione a oggetti
    (cenni) – dispensa aps91 a cura del docente
  • Introduzione a Domain-Driven Design ed alla persistenza di oggetti
    (cenni) – dispensa aps92 a cura del docente