PROGETTAZIONE DEL SOFTWARE |
Codice
|
1018706 |
Lingua
|
ITA |
Corso di laurea
|
Ingegneria Informatica e Automatica |
Programmazione per l'A.A.
|
2020/2021 |
Curriculum
|
Automatica (percorso formativo valido anche per il conseguimento del doppio titolo italo-francese o italo-venezuelano) |
Anno
|
Secondo anno |
Unità temporale
|
Primo semestre |
Tipo di attestato
|
Attestato di profitto |
Crediti
|
9
|
Settore scientifico disciplinare
|
ING-INF/05
|
Ore Aula
|
32
|
Ore Esercitazioni
|
48
|
Ore Laboratorio
|
20
|
Ore Studio
|
-
|
Attività formativa
|
Attività formative caratterizzanti
|
Canale: 1
Docente
|
LIBERATORE PAOLO
(programma)
Il corso propone inizialmente un'introduzione alla programmazione orientata agli oggetti, usando il linguaggio Java come strumento per illustrare concetti fondamentali come oggetti, classi, metodi, interfacce, ereditarietà, polimorfismo, tipi generici, package, eccezioni.
Particolare enfasi viene posta sull'uso e sul progetto di librerie software e su aspetti generali come modularità, robustezza, riusabilità e manutenibilità del codice illustrando concetti come astrazione, incapsulamento, mascheramento dell'informazione, generalizzazione e specializzazione che consentono di realizzare applicazioni complesse su larga scala.
Successivamente si considerano gli aspetti fondamentali relativi alla progettazione del software: le qualità del software, la distinzione tra analisi (concettualizzazione) e progettazione (realizzazione), 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 precedentemente introdotto per la fase di progettazione. Alla fine 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.
1. Ciclo di vita e qualità del software
Il contesto organizzativo. Il ciclo di sviluppo dei programmi: raccolta dei requisiti, analisi, progettazione e realizzazione, verifica e manutenzione. Le qualità del software: qualità esterne e interne. La modularizzazione. Criteri per la modularizzazione.
2. Programmazione OO in Java
Programmazione imperativa, oggetti String, tipi di dato in Java, istruzioni, metodi statici, passaggio parametri, vettori e matrici, I/O streams e file. Classi: campi, metodi, modificatori accesso, costruttori, eccezioni. Ereditarietà, overriding, compatibilità, polimorfismo, uguaglianza e copia (Object, Class, equals, clone). Classi astratte e interfacce, Java Collection Framework. GUI e Java Swing.
3. Programmazione avanzata in Java
Schemi realizzativi per astrazione di valore, di valore collezione e di entità. Threading in Java. Programmazione di rete e Java Socket. Testing, Junit e logging in Java
4. La fase di analisi
Introduzione alla fase di analisi. Il linguaggio UML. Diagrammi strutturali e diagrammi comportamentali. La metodologia di analisi. Verifiche di qualità.
5. La fase di progetto
Obiettivi e risultati attesi della fase di progetto. Specifica degli algoritmi. Responsabilità sulle associazioni. Uso di strutture di dati. Gestione degli eventi. Aspetti legati alla concorrenza. API delle classi Java progettate.
6. La fase di realizzazione
Realizzazione in Java dei diagrammi strutturali e comportamentali. La realizzazione di classi. La realizzazione di associazioni. Uso dell'ereditarietà. Programmazione ad eventi e concorrente per realizzare comportamenti dinamici.
Dispense del corso, disponibili presso il sito del corso.
|
Date di inizio e termine delle attività didattiche
|
-- -
-- |
Date degli appelli
|
Date degli appelli d'esame
|
Modalità di erogazione
|
Tradizionale
|
Modalità di frequenza
|
Non obbligatoria
|
Canale: 2
Docente
|
DE GIACOMO GIUSEPPE
(programma)
Il corso propone inizialmente un'introduzione alla programmazione orientata agli oggetti, usando il linguaggio Java come strumento per illustrare concetti fondamentali come oggetti, classi, metodi, interfacce, ereditarietà, polimorfismo, tipi generici, package, eccezioni.
Particolare enfasi viene posta sull'uso e sul progetto di librerie software e su aspetti generali come modularità, robustezza, riusabilità e manutenibilità del codice illustrando concetti come astrazione, incapsulamento, mascheramento dell'informazione, generalizzazione e specializzazione che consentono di realizzare applicazioni complesse su larga scala.
Successivamente si considerano gli aspetti fondamentali relativi alla progettazione del software: le qualità del software, la distinzione tra analisi (concettualizzazione) e progettazione (realizzazione), 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 precedentemente introdotto per la fase di progettazione. Alla fine 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.
1. Ciclo di vita e qualità del software
Il contesto organizzativo. Il ciclo di sviluppo dei programmi: raccolta dei requisiti, analisi, progettazione e realizzazione, verifica e manutenzione. Le qualità del software: qualità esterne e interne. La modularizzazione. Criteri per la modularizzazione.
2. Programmazione OO in Java
Programmazione imperativa, oggetti String, tipi di dato in Java, istruzioni, metodi statici, passaggio parametri, vettori e matrici, I/O streams e file. Classi: campi, metodi, modificatori accesso, costruttori, eccezioni. Ereditarietà, overriding, compatibilità, polimorfismo, uguaglianza e copia (Object, Class, equals, clone). Classi astratte e interfacce, Java Collection Framework. GUI e Java Swing.
3. Programmazione avanzata in Java
Schemi realizzativi per astrazione di valore, di valore collezione e di entità. Threading in Java. Programmazione di rete e Java Socket. Testing, Junit e logging in Java
4. La fase di analisi
Introduzione alla fase di analisi. Il linguaggio UML. Diagrammi strutturali e diagrammi comportamentali. La metodologia di analisi. Verifiche di qualità.
5. La fase di progetto
Obiettivi e risultati attesi della fase di progetto. Specifica degli algoritmi. Responsabilità sulle associazioni. Uso di strutture di dati. Gestione degli eventi. Aspetti legati alla concorrenza. API delle classi Java progettate.
6. La fase di realizzazione
Realizzazione in Java dei diagrammi strutturali e comportamentali. La realizzazione di classi. La realizzazione di associazioni. Uso dell'ereditarietà. Programmazione ad eventi e concorrente per realizzare comportamenti dinamici.
Dispense del corso, disponibili presso il sito del corso.
|
Date di inizio e termine delle attività didattiche
|
-- -
-- |
Date degli appelli
|
Date degli appelli d'esame
|
Modalità di erogazione
|
Tradizionale
|
Modalità di frequenza
|
Non obbligatoria
|
Docente
|
MECELLA MASSIMO
(programma)
Il corso propone inizialmente un'introduzione alla programmazione orientata agli oggetti, usando il linguaggio Java come strumento per illustrare concetti fondamentali come oggetti, classi, metodi, interfacce, ereditarietà, polimorfismo, tipi generici, package, eccezioni.
Particolare enfasi viene posta sull'uso e sul progetto di librerie software e su aspetti generali come modularità, robustezza, riusabilità e manutenibilità del codice illustrando concetti come astrazione, incapsulamento, mascheramento dell'informazione, generalizzazione e specializzazione che consentono di realizzare applicazioni complesse su larga scala.
Successivamente si considerano gli aspetti fondamentali relativi alla progettazione del software: le qualità del software, la distinzione tra analisi (concettualizzazione) e progettazione (realizzazione), 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 precedentemente introdotto per la fase di progettazione. Alla fine 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.
1. Ciclo di vita e qualità del software
Il contesto organizzativo. Il ciclo di sviluppo dei programmi: raccolta dei requisiti, analisi, progettazione e realizzazione, verifica e manutenzione. Le qualità del software: qualità esterne e interne. La modularizzazione. Criteri per la modularizzazione.
2. Programmazione OO in Java
Programmazione imperativa, oggetti String, tipi di dato in Java, istruzioni, metodi statici, passaggio parametri, vettori e matrici, I/O streams e file. Classi: campi, metodi, modificatori accesso, costruttori, eccezioni. Ereditarietà, overriding, compatibilità, polimorfismo, uguaglianza e copia (Object, Class, equals, clone). Classi astratte e interfacce, Java Collection Framework. GUI e Java Swing.
3. Programmazione avanzata in Java
Schemi realizzativi per astrazione di valore, di valore collezione e di entità. Threading in Java. Programmazione di rete e Java Socket. Testing, Junit e logging in Java
4. La fase di analisi
Introduzione alla fase di analisi. Il linguaggio UML. Diagrammi strutturali e diagrammi comportamentali. La metodologia di analisi. Verifiche di qualità.
5. La fase di progetto
Obiettivi e risultati attesi della fase di progetto. Specifica degli algoritmi. Responsabilità sulle associazioni. Uso di strutture di dati. Gestione degli eventi. Aspetti legati alla concorrenza. API delle classi Java progettate.
6. La fase di realizzazione
Realizzazione in Java dei diagrammi strutturali e comportamentali. La realizzazione di classi. La realizzazione di associazioni. Uso dell'ereditarietà. Programmazione ad eventi e concorrente per realizzare comportamenti dinamici.
Dispense del corso, disponibili presso il sito del corso.
|
Date di inizio e termine delle attività didattiche
|
-- -
-- |
Modalità di erogazione
|
Tradizionale
|
Modalità di frequenza
|
Non obbligatoria
|
|
|