Navigazione di Sezione:
Ingegneria Del Software E Progettazione Web 2016/2017
INGEGNERIA DEL SOFTWARE E PROGETTAZIONE WEB 2016-2017 (9CFU) (Ver. 3 >> 20 ottobre 2016)
(Vedere anche il programma del corso di Laboratorio di Applicazioni Software 2016-2017, 3 CFU)
OBIETTIVI
Introdurre ai modelli di processo software e alla ingegneria dei requisiti, fornire i fondamenti di analisi e progettazione del software, della programmazione OO sequenziale e, rispettivamente, concorrente di applicazioni laptop e web, formare su relativi linguaggi (UML, Java, JSP), ambienti di sviluppo e strumenti (JEE, JUnit).
DOCENTI
- Prof. Giovanni Cantone
- Dott. Guglielmo G. De Angelis., PhD
- Ing. Manuel Mastrofini, PhD
PROGRAMMA
Ingegneria dei requisiti. Introduzione alle discipline fondamentali dell'ingegneria software. Processo di sviluppo SW. Elementi su modello a cascata e su Rational Unified Proces (RUP).
OO Thinking. Modellazione software. UML- Casi d'uso. UML- Activity Diagram. Classi, Oggetti ed Information Hiding. Class Diagram. Ereditarietà. Polimorfismo. Binding di metodi in Java. Interfacce. Ereditarietà multipla fra interfacce in Java. Associazioni, aggregazioni e composizioni. Differenza con Ereditarietà. Implementazione delle associazioni. Dipendenze e loro tipi. Esercitazione UML e OOP in Java 1. Esercitazione UML e OOP in Java 2. Diagrammi di sequenza. Macchine a stati e rel. diagrammi UML. GoF ed elementi di implementazione in Java. Altri tipi di Pattern. Sottosistemi : Interfacce e Componenti. Eccezioni e loro modello di programmazione in Java. Metaclassi. Reflection Java. File Java. Serializzazione/Deserializzazione. Esempi su definizione e impiego File Java. Verifica e Validazione del Software. Testing con JUnit.
Introduzione. Java : Linguaggio e Piattaforma. Piattaforme IEE. Programmazione Java di tutto quanto sopra.
Programmazione concorrente e applicazioni web. Introduzione. Modelli di concorrenza. Processi pesanti e leggeri. Thread Java. Tipologie di codifica di thread in Java. Concorrenza in ambiente globale. Stati di thread Java. Tipi di monitor. Monitor Java. Lock implicito e uso di Synchronized in Java. Lock e Condition Java. Lock di lettura scrittura. Altri tipici problemi di concorrenza in ambiente globale e loro soluzione in Java. Java Bean. File Java. Eventi e loro gestione in Java. Grafica in Java con Swing. Architettura MVC di applicazioni web. HTML e JSP. JSP ed esempi. Annotazioni Java.
Elementi sullo sviluppo software in team e relativi strumenti (Git).
Progetto del corso: assegnazione, discussione e sviluppo in classe di elementi di: UC Modeling. Use Case Realization. Analisi. Progettazione. Costruzione. Test.
LEZIONI E ORARI
Programma e schedulo finale ( 23/01/2017) DATA Docente ARG. LEZIONE (2 ore) * 03/10/2016 * De Angelis Introduzione ai corsi coordinati di ISPW e LAS . Organizzazione e contenuti. * 03/10/2016 * De Angelis Java : Linguaggio e Piattaforma (Macchina virtuale) * 05/10/2016 * Cantone Processo di Sviluppo. Proc. Sviluppo Sw. : Cascata. * 10/10/2016 * De Angelis Modellazione software. UML. * 10/10/2016 * De Angelis Introd. alla Ing. dei Requisiti I. Requisiti di utente: Funzionali e non: Stakeholder requests.Feature. Attributi, relazioni e tracciabilità dei requisiti e relative motivazioni. Dinamicità dei requisiti. * 12/10/2016 * Cantone Introduzione ai Proc. Sviluppo Sw. Iterativi e Incrementali. Elementi di RUP: fasi, discipline, Iterazioni + Project Management * 14/10/2016 * Cantone OO Thinking: Reasoning on Objetcs. * 17/10/2016 * De Angelis Introduzione ai casi d'uso. UML UC Diagram * 17/10/2016 * De Angelis UML. Activity diagram * 19/10/2016 * Cantone OO Thinking: Form objects, to classes to meta*classes. * 21/10/2016 * Cantone OO Thinking : Reasoning on iInheritance * 24/10/2016 * De Angelis Classi, Oggetti ed Information Hiding. Esempi. UML Class Diagram I. * 24/10/2016 * De Angelis Ereditarietà. Esempi. UML Class Diagram 2. * 02/11/2016 * De Angelis Polimorfismo * 07/11/2016 * De Angelis Binding di metodi in Java. * 07/11/2016 * De Angelis Class Diagram 3 : Interfacce. Ereditarietà multipla fra interfacce in Java.. * 11/11/2016 * Cantone OO Thinking : Reasoning on multiple iInheritance, object variables in typed languages / non-typed languages & polymorphsms in programming. Smalltalk vs. C++, Java). * 14/11/2016 * De Angelis Class Diagram 4 : Associazioni, aggregazioni e composizioni. Implementazione delle associazioni. Differenza fra Associazione ed Ereditarietà. Dipendenze e loro tipi. Progettazione con Responsabilità. Introduzione ai Pattern. Pattern GRASP * 14/11/2016 * De Angelis Pattern GoF1 ed elem. di impl. In Java * 16/11/2016 * Cantone OO Analysis. Sintesi su Analisi software fino a rispondere alla seguente domanda: Quali classi di analisi per un progetto software? Modello BCE (MVC | MVP). Concetto di classe Bean.* 21/11/2016 * De Angelis Pattern GoF2 ed elem. di impl. In Java * 21/11/2016 * De Angelis Esercitazione e discussione su Pattern. * 23/11/2016 * Cantone Eventi. Eventi asincroni e loro trattamento e programmazione in Java. Programmazione Java delle classi di Booundary per architetture laptop con AWT e Swing. JText , JCombo e JRadioButton. * 28/11/2016 * De Angelis Metamodellazione, Metaclassi, e Reflection : UML e Java. * 28/11/2016 * De Angelis Metamodellazione, Metaclassi, e Reflection : UML e Java. * 30/11/2016 * Cantone Esempi di classi Java di Booundary per architetture laptop con AWT e Swing.. * 05/12/2016 * De Angelis PERSISTENZA File Java. Serializzazione/Deserializzazione * 05/12/2016 * De Angelis Esempi su definizione e impiego File. * 19/12/2016 * De Angelis Diagrammi di sequenza * 19/12/2016 * De Angelis State machines * 21/12/2016 * Cantone Prova intermedia * 09/01/2017 * De Angelis Verifica e Validazione del Software 1. * 09/01/2017 * De Angelis Tecniche di verifica e di validazione II. * 11/01/2017 * Cantone Thread Java. Tipologie di codifica di thread in Java. * 13/01/2017 * Cantone Stati di thread Java. Monitor Java. Lock implicito e uso di Synchronized. Interfacce Lock e Condition. * 16/01/2017 * De Angelis Introduzione a JUnit. * 16/01/2017 * De Angelis Esempi di test con Junit. * 18/01/2017 * Cantone Stati di thread Java. Monitor Java. Lock implicito e uso di Synchronized. Interfacce Lock e Condition. * 20/01/2017 * Cantone (Altri) Tipi di Monitor. * 23/01/2017 * De Angelis Richiami su UML Sequence Diagram e su Pattern Observer e sua implementazione * 23/01/2017 * Cantone-De Angelis Organizzazione e contenuti degli esami. Domande e risposte. * 27/01/2017 * Cantone Domande e risposte sul progetto assegnato durante il corso. * 03/02/2017 * Cantone Domande e risposte sul progetto assegnato durante il corso. * 08/02/2017 * Cantone Domande e risposte sul progetto assegnato durante il corso. * 15/02/2017 * Cantone Sullo sviluppo del progetto del corso: domande e risposte.* 23/02/2017 * Cantone Domande e risposte sul progetto assegnato durante il corso.
* 08/02/2017 * Cantone Domande e risposte sul progetto assegnato durante il corso.
LABORATORIO GUIDATO (FACOLTATIVO)
Ogni mercoledì dalle 14:00 alle 15:30. Dalle 15:30 alle 19:00 solo per gli studenti non aventi altre lezioni.