SAPIENZA
Università di Roma
Home page del corso di
Progettazione del Software
Corso di
Laurea in Ingegneria dell'informazione -- sede di latina
A chi è rivolto il corso. Il
corso è di 6 crediti,
ed è rivolto agli studenti del secondo anno del Corso di Laurea in
Ingegneria dell'Informazione (ord. 2009) - Sede di Latina (tutti gli
indirizzi).
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).
Informazioni sull'edizione
del corso per l'A.A. 2010/11 (didattica faccia a faccia)
(Insegnamento
erogato nel secondo periodo didattico: dal 7 marzo 2011 al 11 giugno
2011)
- Orario Lezioni:
martedì
ore 11:45-13:15, aula 2
giovedì
ore 11:45-13:15, aula 2
- Esercizi:
Esercizi svolti in aula o lasciati come ulteriore
esercitazione
- Testi
d'Esame (compresi testi precedenti all'AA 2008-09 e relativi alla sede didattica di Roma)
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 degli 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
- Appelli (didattica
faccia a faccia)
- Primo appello:
- Secondo appello:
- Primo
Appello straordinario (riservato a studenti ripetenti - limitatamente
ai corsi dell'annno che stanno ripetendo-, fuori corso, o part-time):
- Terzo Appello:
- 21/06 ore 14:00 - 17:00 (aula da definire)
- Quarto Appello:
- 22/07 ore 14:00 - 17:00 (aula da definire)
- Quinto Appello:
- 22/09 ore 14:00 - 17:00 (aula da definire)
- Secondo
Appello straordinario (riservato a studenti ripetenti - limitatamente
ai corsi dell'annno che stanno ripetendo-, fuori corso, o part-time):
- Appelli (consorzio
Nettuno)
- Primo appello:
- Secondo appello:
- Primo
Appello straordinario (riservato a studenti ripetenti - limitatamente
ai corsi dell'annno che stanno ripetendo-, fuori corso, o part-time):
- Terzo Appello:
- 22/06 ore 10:00 - 13:00 (aula B101 - presso il DIS)
- Quarto Appello:
- 21/07 ore 10:00 - 13:00 (aula B203 - presso
il DIS)
- Quinto Appello:
- 23/09 ore 10:00 - 13:00 (aula da definire)
- Secondo
Appello straordinario (riservato a studenti ripetenti - limitatamente
ai corsi dell'annno che stanno ripetendo-, fuori corso, o part-time):