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 ad oggetti;
- apprendere ed 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 la 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 della 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
|
|