Introduzione:
Nel panorama dei progetti di formazione
permanente che l'Università degli Studi di Trento,
ITC-Irst ed IBM offrono, nell'ambito del Centro di Competenza
IBM-Rational, è stata attivata l'opportunità
di frequentare corsi nel campo dell'Ingegneria del Software
con riferimento ai prodotti IBM-Rational. Si tratta
di un'opportunità espressamente studiata nell'ambito
delle collaborazioni tra Università ed Impresa
al fine di offrire competenze scientifiche di alto livello
a coloro che intendano approfondire quei campi di applicazioni
oggi fortemente richiesti dal mercato.
Le iscrizioni sono aperte a studenti italiani e stranieri.
Relatori d'eccellenza affronteranno con gli studenti
una pluralità di applicazioni trasversali nell'ambito
della Computer Science per la preparazione di ingegneri
del software e di software project manager.
Organizzazione
Corsi:
I Corsi di Formazione in ambiente IBM-Rational
sono organizzati in moduli. Ogni modulo analizza un
particolare aspetto dell'Ingegneria del Software e,
di norma, fa riferimento ad uno o più prodotti
software della suite IBM-Rational. I moduli attualmente
previsti sono:
1. Principi di Ingegneria del Software
2. Ciclo di Vita del Software
3. Gestione dei Requisiti
4. Modellazione del Software
5. Testing del Software
Tempistiche:
I moduli elencati possono avere durata
variabile in base alle conoscenze già in possesso
dei partecipanti ed al livello di dettaglio che si
vuole raggiungere. Al numero di ore di teoria può
essere inoltre associato un certo numero di ore di
lezioni di laboratorio in cui i partecipanti potranno
sperimentare in prima persona l'utilizzo dei prodotti
software presi in esame. Tali lezioni potranno essere
svolte usando apposite licenze e metodologie "Educational"
messe a disposizione da IBM per il Centro di Competenza
IBM-Rational. A titolo di esempio, ecco alcune tempistiche
per ogni modulo proposto.
Programma Corsi:
I Corsi di Formazione, organizzati
nell'ambito del Centro di Competenza IBM-Rational,
possono comprendere uno o più moduli tra quelli
elencati in precedenza. In particolare è possibile
seguirne solo uno, ad esempio Principi di Ingegneria
del Software, o tutti. Qualora si scegliesse quest'ultima
opzione si consiglia di seguire i moduli proposti
secondo la RoadMap presentata nella figura sottostante.
Così tutti i concetti propri dell'Ingegneria
del Software saranno presentati al meglio, nella corretta
successione e con il giusto grado di dettaglio. Inoltre,
in questo modalità, nell'ambito del Corso di
Formazione, si potrà anche sviluppare un piccolo
progetto software affrontando sul campo tutte le fasi
proprie del Processo di Sviluppo del Software ed utilizzando
i prodotti IBM-Rational pensati a questo scopo.
Partecipando a tutti i moduli previsti,
la materia in esame sarà analizzata in due
fasi. Ci sarà una prima presentazione di tutti
i concetti ad alto livello (Modulo denominato "Principi
di Ingegneria del Software") seguita da una seconda
analisi più dettagliata (tutti gli altri moduli).
Nel primo modulo vengono affrontati i principi generali
dell'Ingegneria del Software:
* Qualità del Software,
* Ciclo di Vita del Software,
* Tipologie di Processi di Sviluppo del Software,
* Gestione dei Requisiti,
* Modellazione del Software,
* Testing del Software.
Gli altri moduli spiegano nel
dettaglio questi concetti, sia dal punto di vista
teorico che da quello pratico.
I corsi prevedono di norma un numero
di ore di attività pratica in laboratorio pari
a quelle di lezione teorica. L'attività pratica
si concentrerà su casi di studio presi da piccole
e medie imprese e da scenari di e-government. Nel
corso di queste lezioni in laboratorio sarà
descritto il funzionamento di uno o più tool
IBM-Rational ideati per la gestione della problematica
affrontata. Nella seguente tabella vengono riportati,
per ogni modulo, i prodotti software IBM-Rational
introdotti.
| Nome Modulo |
Prodotto Software
IBM-Rational |
| Ciclo di Vita del
Software |
IBM-Rational ClearQuest |
| Gestione dei Requisiti |
IBM-Rational RequisitePro
e IBM-Rational Soda for Word |
| Modellazione del
Software |
IBM-Rational Software
Architect |
| Testing del Software |
IBM-Rational PurifyPlus
e IBM-Rational Functional Tester |
Programma dei Moduli
Di seguito viene riportato il programma
previsto per ciascuno dei moduli sopra elencati. Come
accennato in precedenza, i moduli elencati possono
avere durata variabile in base alle conoscenze già
in possesso dei partecipanti ed al livello di dettaglio
che si vuole raggiungere.
Principi
di Ingegneria del Software
Questo modulo è in assoluto quello più
teorico e non prevede aspetti pratici, quindi lezioni
di laboratorio. Sono previste almeno 16 ore di lezione
frontale da suddividere in almeno 2 giornate. Supponendo
di fare per ogni giornata 2 sessioni di 4 ore ciascuna,
riportiamo di seguito gli argomenti trattati in ciascuna
delle 4 sessioni previste.
| PRIMO GIORNO - Prima Sessione
- DOCENZA UNITN |
* Storia
dell'Ingegneria del Software: dal software come
arte al software come prodotto industriale
* Definizione di Ingegneria del Software
* Ruolo dell'Ingegnere del Software
* Aspetti Tecnologici
* Aspetti Economici
* Aspetti Sociali |
| PRIMO GIORNO
- Seconda Sessione - DOCENZA UNITN |
* Concetto di Prodotto e Processo
(confronto con le "altre" Ingegnerie:
Civile, Meccanica,
)
* Qualità del Software (affidabilità,
correttezza, usabilità,
) |
| SECONDO
GIORNO - Terza Sessione - DOCENZA UNITN |
* Descrizione
attività del Processo di Sviluppo del Software
* Focus su RUP ed elementi di cascata, spirale,
exrteme programming, e scrum |
| SECONDO
GIORNO - Quarta Sessione - DOCENZA UNITN e IBM |
* Cenni
sui modelli di Processo di Sviluppo del Software
* Caso di Studio: descrizione di un reale Processo
di Sviluppo del Software |
Ciclo
di Vita del Software
Tale modulo si concentra sul concetto di Processo
di Sviluppo del Software presentato ad alto livello
nella terza sessione del modulo riguardante i principi
dell'Ingegneria del Software. In questo caso il concetto
viene dettagliato fornendo esempi pratici ed introducendo
l'utilizzo di alcuni tool IBM-Rational nati per la
gestione di queste problematiche. Prevedendo una giornata
per la teoria ed una per il laboratorio, e supponendo
di fare per ogni giornata 2 sessioni di 4 ore ciascuna,
riportiamo di seguito gli argomenti trattati in ciascuna
delle 4 sessioni previste.
| GIORNATA DI TEORIA - Prima
Sessione - DOCENZA UNITN |
* Descrizione
fasi del Processo di Sviluppo del Software
* Concetto di Deliverable e Milestone
* Attività del Processo di Sviluppo del
Software
* Ruoli all'interno di un Processo di Sviluppo
Software
* Pianificazione Processo di Sviluppo Software
e Gantt Diagram
|
| GIORNATA
DI TEORIA - Seconda Sessione - DOCENZA UNITN |
* Modelli
di Processo di Sviluppo del Software ed esempi
pratici
o Cascata
o RAD
o Spirale
o Extreme Programming e Scrum
o The Rational Unified Process
o Open source software development |
| GIORNATA
DI LABORATORIO - Terza Sessione - DOCENZA IBM |
* Introduzione
alla Rational Suite
* Presentazione di ClearQuest
* Panoramica su come ClearQuest gestisce i dati
nei database
* Introduzione a ClearQuest Maintenance Tool
* Esercitazione con ClearQuest Maintenance Tool |
| GIORNATA
DI LABORATORIO - Quarta Sessione - DOCENZA IBM |
* Introduzione
a ClearQuest Designer
* Esercitazione con ClearQuest Designer
* Introduzione a ClearQuest Client
* Esercitazione con ClearQuest Client
* Caso di Studio: descrizione di un esempio di
reale utilizzo di ClearQuest |
Gestione
dei Requisiti
Qui il protagonista è il requisito sia dal
punto di vista teorico che pratico. Prevedendo una
giornata per la teoria ed una per il laboratorio,
e supponendo di fare per ogni giornata 2 sessioni
di 4 ore ciascuna, riportiamo di seguito gli argomenti
trattati in ciascuna delle 4 sessioni previste.
| GIORNATA DI TEORIA - Prima
Sessione - DOCENZA UNITN |
* Definizione
di Requisito
* Requisiti Funzionali e Non Funzionali
* Requisiti utente e di sistema
* Classificazione tipologie di Requisito (FURPS
Model)
* Ciclo di vita del Requisito e sua gestione |
| GIORNATA
DI TEORIA - Seconda Sessione - DOCENZA UNITN |
* pecifica
di un Requisito
* Ruolo dei Requisiti all'interno di un Processo
di Sviluppo Software
* Requirements engineering
* Relazione tra Requisiti e Use Case Diagram |
| GIORNATA
DI LABORATORIO - Terza Sessione - DOCENZA IBM |
* resentazione
di RequisitePro
* Creazione di un progetto in RequisitePro
* Creazione di requisiti partendo da un documento
Word
* Gestione requisiti e loro visualizzazione con
RequisitePro |
| GIORNATA
DI LABORATORIO - Quarta Sessione - DOCENZA IBM |
* reazione
di report con Soda Report
* Personalizzazione di RequisitePro
* Link tra RequisitePro e Rose
* Caso di Studio: esempio di un progetto in RequsitePro
per un sistema complesso |
Modellazione
del Software
Questo modulo risulta essere in assoluto il più
complesso tra quelli previsti e fa riferimento ad
una delle fasi chiave di ogni progetto software: il
design. Prevedendo almeno 2 giornate di teoria ed
almeno 2 giornate di laboratorio si può comunque
avere una buona visione dei suoi tratti fondamentali.
In questo modulo la divisione tra sessioni di teoria
e laboratorio non sarà netta ma tutte le lezioni
saranno caratterizzate da un'alternanza di concetti
teorici ed aspetti pratici da sperimentare direttamente
al computer. In particolare sarà preso in esame
un problema pratico e, su questo, verrà sviluppata
tutta la fase di design. Supponendo quindi di fare
per ogni giornata 2 sessioni di 4 ore ciascuna, riportiamo
di seguito gli argomenti trattati in ciascuna delle
8 sessioni previste senza la suddivisione in giornate
di laboratorio e di laboratorio.
| PRIMA GIORNATA - Prima Sessione
- DOCENZA UNITN |
* Introduzione
allo UML
* Storia dello UML
* Panoramica sulle tipologie di Diagrammi UML
(statici e dinamici)
* Presentazione di Rational Software Architect
(RSA)
* Definizione di Use Case e Attori
* Dai Requisiti agli Use Case
* Esempio di realizzazione con RSA di uno Use
Case Diagram partendo dal testo di un problema
* Esercizio sulla realizzazione di uno Use Case
Diagram |
| PRIMA GIORNATA
- Seconda Sessione - DOCENZA UNITN |
* uolo
degli attori e degli Use Case per definire il
confine del sistema da realizzare
* Descrizione degli Use Case
* Possibili relazioni all'interno di uno Use Case
Diagram
* Esempio di realizzazione di uno Use Case Diagram
"complesso" partendo dal testo di un
problema
* Esercizio sulla realizzazione di uno Use Case
Diagram "complesso" |
| SECONDA
GIORNATA - Terza Sessione - DOCENZA UNITN |
* attorizzazione
di Use Case Diagram Complessi
* Package Diagram
* "Strategic" and "System"
Use Cases
* Esempio di realizzazione con RSA di uno Use
Case Diagram suddiviso in moduli
* Esercizio sulla realizzazione di uno Use Case
Diagram in moduli |
| SECONDA
GIORNATA - Quarta Sessione - DOCENZA UNITN |
* ntroduzione
teorica agli StateChart
* Definizione di StateChart
* Esempio di realizzazione con RSA di uno State
Chart
* Definizione di un Actvity Diagram
* Esempio di realizzazione con RSA di un Activity
Diagram
* Confronto tra StateChart e Activity Diagram
* Ruolo degli StateChart e Activity Diagram
* Esercizio sulla realizzazione di un StateChart
e/o Activity Diagram |
| TERZA GIORNATA
- Quinta Sessione - DOCENZA UNITN |
* ntroduzione
teorica al Class Diagram
* Ruolo del Class Diagram in un Processo di Sviluppo
del Software
* Definizione di Class Diagram
* Elementi di un Class Diagram (attributi, metodi
e relazioni)
* Esempio di realizzazione con RSA di un Class
Diagram
* Esercizio sulla realizzazione di un Class Diagram |
| TERZA GIORNATA
- Sesta Sessione - DOCENZA UNITN |
* Definizione di altri tipi di
relazioni (aggregazione, composizione, association
class,
)
* Organizzazione di Class Diagram a livelli (Concettuale,
Specifica ed Implementazione)
* Esempio di realizzazione con RSA di un Class
Diagram a livelli
* Esercizio sulla realizzazione di un Class Diagram
a livelli |
| QUARTA GIORNATA
- Settima Sessione - DOCENZA IBM |
* Dal Class
Diagram al codice con RSA
* Suggerimenti per ottenere automaticamente un
codice ottimale
* Reverse Engineering con RSA
* Esempi Pratici
* Casi di Studio |
| QUARTA GIORNATA
- Ottava Sessione - DOCENZA UNITN |
* Definizione
di Sequence Diagram
* Elementi di un Sequence Diagram
* Ruolo di un Sequence Diagram
* Rapporto Sequence Diagram e Use Case Diagram
* Rapporto Sequence Diagram e Class Diagram
* Esempio di realizzazione con RSA di un Sequence
Diagram
* Esercizio sulla realizzazione di un Sequence
Diagram |
Testing
del Software
Anche questo modulo prevede una forte componente pratica
relativamente a due famiglie di prodotti software
IBM dedicati al testing: Rational PurifyPlus e Rational
Test Manager. Prevedendo una giornata per la teoria
ed una per il laboratorio, e supponendo di fare per
ogni giornata 2 sessioni di 4 ore ciascuna, riportiamo
di seguito gli argomenti trattati in ciascuna delle
4 sessioni previste.
| GIORNATA DI TEORIA - Prima
Sessione - DOCENZA UNITN |
* Introduzione
al Testing
* Analisi Statica
* Analisi Statica automatica e metodi formali
* Analisi Dinamica
* Test del Sistema
* Test dei Componenti |
| GIORNATA
DI TEORIA - Seconda Sessione - DOCENZA UNITN |
* oncetto
di Test Case
* Progettazione dei Test Case
* Identificazione dei casi di test funzionali
direttamente dagli scenari degli Use Case
* Analisi Funzionale (Black Box)
* Analisi Strutturale (White Box)
* Derivable del testing |
| GIORNATA
DI LABORATORIO - Terza Sessione - DOCENZA IBM |
* Tracciabilità
dei requisiti verso gli oggetti di design espressi
in UML con RSA
* Introduzione a Rational PurifyPlus
* Scrittura di codice in modo più affidabile
e veloce
* Analisi di runtime automatizzate per migliorare
l'affidabilità e le prestazioni delle applicazioni
* Analisi delle applicazioni per verificarne la
copertura del codice eseguito |
| GIORNATA
DI LABORATORIO - Quarta Sessione - DOCENZA IBM |
* Introduzione
a Rational Functional Tester
* Test automatizzato per la fase di Analisi Funzionale
* Funzioni automatizzate per attività come
la creazione di test e la fase di verifica dei
dati
* Controllo versioni: sviluppo parallelo di script
di test e utilizzo simultaneo di team distribuiti |
|