PROGRAMMA
Introduzione - Obiettivi
Il Software Engineering (abbreviato SE) è la disciplina tecnologica e
manageriale che riguarda la produzione sistematica e la manutenzione
dei
prodotti software, entro i tempi e i costi preventivati. Copre dunque un
aspetto tecnico, culturale e operativo fondamentale nella preparazione
di un informatico in generale e in particolare di chi intende occuparsi di
progettazione software.
Vanno subito evitati due equivoci.
Innanzitutto la progettazione software di cui si parla qui riguarda la
"progettazione in grande", non quella di un algoritmo; ad esempio, la
progettazione di un impianto per la produzione di energia elettrica, un
sistema telefonico integrato, un sistema di allarme e monitoraggio di un
edificio, eccetera; è vero che alla fine il software del sistema
comprenderà
varie parti di codice in un linguaggio di progammazione, ma, oltre alle
dimensioni (da decine di migliaia a milioni di linee di codice), la
differenza sta nel fatto che il sistema non è
costituito solo dal
codice e
che inoltre per arrivare al codice ci sono una serie di procedure e
metodiche da apprendere e utilizzare; in altre parole il SE riguarda un
complesso di attività che temporalmente vengono svolte prima, durante e
dopo la progettazione del software in senso stretto.
In secondo luogo con "sistema software" vanno intesi anche quei sistemi
in cui le componenti hardware o di altra natura hanno un ruolo
rilevante, come ad esempio un sistema di computers comunicanti con
certi protocolli e svolgenti un particolare servizio o addirittura
l'architettura
(che è software!) di componenti hardware complesse.
Il corso consta di tre parti strettamente legate.
- La prima si propone di dare un'introduzione ai concetti, tecniche e
metodi del SE in generale.
- La seconda presenta una notazione visuale di supporto alla progettazione
del software; la notazione scelta è quealla che sta diventando uno
standard industriale e cioè UML.
- La terza consiste nella realizzazione di un piccolo progetto che
utilizza la notazione e i metodi insegnati,
all'interno di una attività di laboratorio.
Va notato che una parte importante dell'Ingegneria del Software
riguardante le problematiche della gestione organizzativa del processo di
sviluppo (Process Management) viene svolta nell'ambito del corso di
Cultura Aziendale. Questo permette di dare più spazio alla seconda e
terza parte del corso.
- Parte generale
-
- Motivazione, scopo e natura dell'Ingegneria del Software
- Modelli del processo di sviluppo del software
- Fasi dello sviluppo software ,con particolare
riferimento a requisiti, progettazione (design) e testing
- La notazione UML
-
Introduzione dei principali tipi dei diagrammi di UML, come esempi
paradigmatici delle principali tipologie di notazioni visuali utilizzate
nello svilluppo del software.
- Class diagram con constraint espresse in OCl
- Interaction diagram, sia come collaboration diagram che come sequence
diagram
- Statechart o state diagram
- Activity diagram
- Use case diagram
- Laboratorio
-
Progettazione (design) di una applicazione software a partire da una specifica
dei requisiti data, e sua implementazione con la tecnologia J2EE, con il
supporto di strumenti software.
Per lo svolgimento di tale progetto verranno prima introdotti
- una particolare metodologia per la progettazione del software
basata su UML
- una particolare piattaforma implementativa, precisamente Java 2 Platform
Enterprise Edition (J2EE in breve)
- alcuni tools di supporto.
Ultima modifica: 29 Settembre 2003