Introduzione |
Negli ultimi venti anni il processo che conduce alla realizzazione di un prodotto software – il cosiddetto "processo software" – ha ricevuto un'attenzione considerevole. Si e capito meglio come si deve produrre software e cosa significa la qualità del software. Apprendere i concetti fondamentali e le tecniche per lo sviluppo di applicazioni software è diventato un obbligo per un ingegnere software. Questi concetti e queste tecniche riguardano l'intero ciclo di vita di un progetto software, ma due sono le attivita portanti particolarmente importanti per il successo di un progetto: l' analisi e la progettazione.
L'analisi indaga sui requisiti-utente del prodotto ed elabora un modello che verrà poi tradotto in termini di software durante la progettazione. Il corso presenta gli aspetti fondamentali della modellazione del business, analisi e progettazione del software, con riferimento alle moderne tecniche di analisi e progettazione orientata agli oggetti e ad Unified Process.
Il corso introduce UML come linguaggio standard per la modellazione e documentazione dei sistemi software sviluppati ad oggetti.
Il corso si prefigge l'obiettivo principale di fornire al partecipante gli elementi di base dell'analisi e progettazione orientata agli oggetti. I partecipanti al corso saranno in grado di acquisire ed approfondire le conoscenze necessarie per ottenere il massimo beneficio dalla tecnologia ad oggetti. L'associazione alla teoria della realizzazione guidata di esercitazioni permette di applicare sul campo le conoscenze acquisite e di sperimentare direttamente le varie tipologie di problematiche da affrontare durante le fasi di analisi e progettazione di sistemi software.
|
Obiettivi del corso |
Gli obiettivi principali del corso sono i seguenti:
- comprendere gli obiettivi e il ruolo dell'analisi e della progettazione ad oggetti e fornire le competenze di base per lo svolgimento delle due attivita;
- familiarizzare con il linguaggio UML, comprendere i suoi modelli e i formalismi utilizzati;
- utilizzare questi modelli e formalismi per descrivere le attivita di cattura dei requisiti, analisi dei requisiti e progettazione del software.
|
Destinatari
|
Questo corso si rivolge a tutti coloro che intendono acquisire le competenze di base in analisi e progettazione orientate agli oggetti del software.
|
Prerequisiti |
Richiesta esperienza di programmazione e partecipazione ad alcuni progetti importanti. E' preferibile conoscere un linguaggio di programmazione Object Oriented. |
Durata |
5 gg. |
Argomenti trattati
|
|
1° giorno |
1. Introduzione all'ingegneria del software.
Il processo software. Modello CMM
Modelli del processo software
RUP - modello iterativo, incrementale, basato sull'architettura.
2. Introduzione all'orientamento ad oggetti.
Concetti, tipi e classi
Incapsulamento dei dati
Classi ed oggetti
Attributi, operazioni e vincoli
Relazioni tra classi e tra oggetti
Generalizzazione/specializzazione
Associazioni
Aggregazioni
Polimorfismo
Diagrammi di classi in UML
Esercitazioni |
2° giorno |
3. Modellazione dei processi business.
Componenti del business
Processi business
Diagrammi di attività in UM
Flussi di controllo e flussi di oggetti
4. Catturare requisiti con casi di uso.
Attori. Come stabilire i confini del sistema
Documentare i requisiti software
Diagrammi di casi d'uso in UML
Descrizione dei casi d'uso
Casi d'uso essenziali e reali
Come identificare i casi d'uso
Processo software guidato da casi d'uso
Esercitazioni |
3° giorno |
5. Analisi del software
Modello concettuale del sistema
Modello del dominio e modello dell'applicazione
Identificare le classi del dominio
Identificare attributi ed operazioni
Identificare associazioni
Riutilizzo delle classi
Responsabilita e collaborazioni
Schede CRC
Documentare la semantica delle classi
Diagrammi di robustezza in UML
Esercitazioni |
4° giorno |
6. Modello comportamentale di un sistema ad oggetti.
Stato degli oggetti
Comunicazioni tra oggetti
Diagrammi di sequenze di eventi in UML
Contratti per operazioni
Diagrammi di collaborazioni in UML
Esercitazioni
7. Modello dinamico di un sistema.
Eventi e segnali
Diagrammi di transizioni di stato in UML
Concorrenza
8. Introduzione ai pattern di analisi
Esercitazioni |
5° giorno |
9. Progettazione orientata ad oggetti.
Progettazione di sistema
Come ripartire un sistema in sottosistemi
Diagrammi di pacchetti in UML
Progettare le collaborazioni tra sottosistemi
Assegnare la responsabilita alle classi
Modularità: accoppiamento + coesione
10. Classi di progettazione.
Casi d'uso reali
Threads e controllers
Progettazione degli oggetti
11. Deployment del sistema.
Diagrammi di componenti
Diagrammi di deployment
12. Introduzione ai pattern di progettazione
|