SAPIENZA
Università di Roma
Home page del corso di
Progettazione del Software
Corso di
Laurea in Ingegneria dell'informazione -- Canale a distanza cons.
Nettuno
A chi è rivolto il corso. Il
corso è di 6 crediti,
ed è rivolto agli studenti del Corso di Laurea in
Ingegneria dell'Informazione del canale a distanza del consorzio
Nettuno. Gli studenti del vecchio ordinamento che devono sostenere
l'esame da 5 crediti possono fare comunque riferimento a questa pagina.
Il loro programma e tutto il materiale per l'esame conincide
esattamente con la versione del corso da 6 crediti, da cui vanno tolti
gli aspetti relativi al diagramma degli stati e delle transizioni ed
alla sua realizzazione in java (vedi materiale)
Prerequisiti. Si richiede conoscenza dei
fondamenti della programmazione.
Obiettivi.
L'obiettivo del corso è lo studio e l'approfondimento degli aspetti
fondamentali relativi alla progettazione del software: le qualità del
software; il concetto di modulo e la modularizzazione; la distinzione
tra analisi (concettualizzazione), progetto e realizzazione di
applicazioni; la nozione di specifica; ecc. Gli argomenti vengono
trattati dando enfasi ad aspetti metodologici e ad aspetti sperimentali
utilizzando la notazione di UML (Unified Modeling
Language) per la fase di analisi, e il linguaggio Java
per la fase di realizzazione. Alla fine del corso lo studente dovrebbe
avere acquisito tecniche e metodi per affrontare problemi di
progettazione dei programmi secondo una metodologia basata sulla
distinzione tra concettualizzazione e realizzazione, sulla
modularizzazione e sulla orientazione agli oggetti.
Materiale didattico.
[1] Slides
del corso, A.A. 2010/11.
[2] Dispensa
Complementi di Progettazione del SW (Consigliata
per chi avesse difficoltà a fare riferimento solo alle slide del corso,
in particolare per la parte su Java).
- Programma
dell'insegnamento
- Esercizi
(compresi tesi d'esame di vari anni accademici, relativi anche alla
didattica faccia a faccia)
- Nota per esercitarsi sui testi d’Esame:
Per ogni testo d'esame, rispondete alla domanda 1 e alla domanda 2
(cioè svolgete la fase di analisi e di progetto). Per la fase di
realizzazione,
indipendentemente da quanto chiesto dalla domanda 3, si consiglia di
realizzare completamente l'applicazione. Si noti anche che in quasi
tutte le soluzioni proposte, la realizzazione delle associazioni con
responsabilità NON singola (ad es. doppia) viene fatta con una tecnica
differente da quella studiata in questo corso (e riportata sulle
slide). Tale tecnica segue un approccio “lato server” per la gestione
dei riferimenti fra gli oggetti (facendo uso di una classe AssociazioneA
– oppure ManagerA – per la gestione degli
inserimenti e delle cancellazioni dei link
nell’associazione A).
Per le finalità dell’esame, è richiesto di seguire invece l’approccio
(più semplice) “lato client” per la realizzazione delle responsabilità
doppie. In alcuni casi viene proposta una soluzione in cui le ISA fra
relazioni binarie (costrutto subset
in UML) vengono realizzate.
Anche questo aspetto è lasciato come approfondimento: per gli scopi di
questo corso, la realizzazione dell'ISA fra relazioni è tralasciata. E'
invece importante considerare le ISA fra associazioni in fase di
analisi. I testi d'esame dell' A.A: 2008/09 e 2009/10 sono per
la
versione del corso da 5 crediti in cui non veniva affrontato il
diagramma
degli stati e la sua realizzazione. Per esercitarsi su questi punti si
consiglia di far riferimento ai tesi d'esame degli AA precendenti al
2008/09.
- Siti di interesse per il corso
- Object
Management Group: consorzio non a fini di lucro che produce e
mantiene specifiche industriali per applicazioni interoperabili
- Unified
Modeling Language: sito ufficiale di OMG per le risorse del
linguaggio di modellazione UML
- Model
Driven Architecture:
approccio aperto di OMG che si basa sull'idea di separare la logica
dell'applicazione dalla piattaforma tecnologica sottostante
- Java:
sito ufficiale della Sun
per le risorse del linguaggio di programmazione Java
- Strumenti Software e Documentazione:
- JDK 6.0, scaricabile alla pagina http://java.sun.com/javase/downloads/index.jsp
(selezionate JDK 6 Update 24) istruzioni
di installazione
- NOTA:
per compilare un programma java contenuto nel file progrjava.java da
linea di comando tramite l'istruzione 'javac progrjava.java', è bene
settare opportunamente le variabili d'ambiente (altrimenti è necessario
digitare l'intero path che dalla posizione C individua il comando
javac). Per indicazioni su come procedere in ambiente Windows fate
riferimento al punto 4 del documento sulle istruzioni di istallazione
-- Per Windows Vista e Windows 7 si procede analogamente ad XP; può
essere però conveniente selezionare la visualizzazione classica per il
panello di controllo, da cui è facilmente individuabile la voce
'Sistema' (in windows 7, selezionare una modalità di visulaizzazione ad
icone -- menù in alto a destra dalla pagina pannello di controllo); in
particolare, per accedere alle variabili di ambiente selezionate dal
menù a sinistra la voce ' Inpostazioni di sistema avanzate').
- Documentazione (API) J2SE, scaricabile alla pagina http://www.oracle.com/technetwork/java/javase/downloads/index.html
(selezionate il download per la Java SE 6 Documentation).
- Documentazione e manuali Java on-line:
[M1] Documentazione
on-line di tutte le classi Java (Java™ Platform, Standard
Edition 6 API Specification)
[M2] The
Java™ Tutorials
[M3] Thinking
in Java, 3rd Edition by Bruce Eckel
[M4] Introduction
to Programming Using Java by David J. Eck
- Modalità d'esame
L'esame comprende una prova scritta ed una prova orale. La prova
scritta prevede lo sviluppo di un progetto software di dimensione
contenuta. La prova orale consiste essenzialmente nella discussione
della prova scritta. Lo studente deve presentarsi alle prove d'esame e
alle relative verbalizzazioni munito di documento di
riconoscimento con foto ai fini dell'identificazione e della
verbalizzazione.
- Prenotazioni all'esame
Per partecipare ad uno scritto è necessario prenotarsi sul sistema INFOSTUD.
La data dell'orale verrà comunicata contestualmente alla consegna dello
scritto, oppure tramite il sito web del corso