Design patterns

Modelli di progettazione

back

Obiettivi del corso

I design patterns sono emersi da alcuni anni come una delle tecniche più efficaci per trasferire la conoscenza e l'esperienza dei progettisti, rendendola disponibile a tutti in modo comprensibile e concreto.

Spesso le soluzioni realmente riutilizzabili nella progettazione ad oggetti hanno una certa struttura comune se si riferiscono a problemi simili e ricorrenti. I design patterns sono "soluzioni consolidate a problemi ricorrenti, in contesti specifici". Con design patterns si intende una serie di modelli e situazioni tipiche nello sviluppo di software a oggetti, già studiate e ben analizzate, a cui possono essere ricondotte molte situazioni nello sviluppo di applicazioni.

I design patterns valorizzano e rendono effettivo il riutilizzo della progettazione. Inoltre, se introdotti in modo sistematico in applicazioni complesse, permettono di semplificare, rendere più elegante e documentare meglio sia la progettazione che la programmazione. Sono considerati un concetto fondamentale per la progettazione e per lo sviluppo di sistemi ad oggetti.

Gli obiettivi principali del corso sono i seguenti:

  • apprendere concetti e tecniche di programmazione avanzata per la produzione di software riutilizzabile;
  • apprendere il concetto di genericità nella programmazione a oggetti;
  • apprendere e applicare in modo approfondito alcuni patterns più importanti e saperli usare.

I partecipanti al corso saranno in grado di:

  • utilizzare i più importanti patterns di progettazione ad oggetti,
  • costruire dei componenti complessi utilizzando i design pattern.
  • collaudare il loro skill in programmazione, confrontandosi con soluzioni di alto livello professionale.

Destinatari

Questo corso si rivolge a tutti coloro che desiderano migliorare la qualità dei prodotti software e del processo software che li produce, ed abbassare il costo nei progetti software.

Prerequisiti

Sono propedeutiche:

  • conoscenze approfondite sulla programmazione ad oggetti ed esperienza di progettazione di software object-oriented, preferibilmente in Java o C++,
  • conoscenza del linguaggio UML.
Durata
5 gg.
Argomenti trattati

 

1° giorno

1.  Introduzione al linguaggio UML

2.  Introduzione ai modelli di progettazione OO

Esercitazioni

2° giorno

3.  Modelli di progettazione fondamentali : Delegation, Interface, Marker Interface, Proxy

4.  Modelli di progettazione per l'assegnazione di responsabilità: Export, Creator, Low Coupling, High Cohesion, Controller

Esercitazioni

3° giorno

5.  Modelli di progettazione di creazione: Abstract Factory, Factory Method, Builder, Prototipe, Singleton

6.  Modelli di progettazione di scomposizione: Filter, Composite

Esercitazioni

4° giorno

7.  Modelli di progettazione strutturali: Adapter, Iterator, Bridge, Façade, Decorator, Virtual Proxy

Esercitazioni

5° giorno

8.  Modelli di progettazione comportamentali: Command, Observer, Strategy, Template Method, Visitor

9.  Modelli di progettazione per la concorrenza: Critical Section, Producer-Consumer

10.  Frameworks e patterns

Esercitazioni

back