Navigazione di Sezione:
Ingegneria Del Software E Progettazione Web 2018/2019
DOCENTI
- Prof. Ing. Giovanni Cantone
- Dott. Guglielmo G. De Angelis, PhD
- Dott. Ing. Manuel Mastrofini, PhD - Tutor
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). Applicare il tutto allo sviluppo di un progetto semi-professionale.
REGISTRO DI LEZIONI (2H), ESERCITAZIONI (2H) E LABORATORI (4H)
INCLUDE PROGRAMMA DI Laboratorio di Applicazioni Software (3 CFU)
24/09/2018 Introduzione ai corsi coordinati di ISPW e LAS . Organizzazione e contenuti.
24/09/2018 Java: Linguaggio e Piattaforma (Macchina virtuale).
26/09/2018 Processo di sviluppo software. Cascata. Accenno a processi iterativi e incrementali.
26/09/2018 Ricevimento. Domande libere e risposte.
28/09/2018 Elementi di RUP.
28/09/2018 Completamento di Elementi di RUP. Introduzione a OO Thinking: Reasoning on Objetcs (oggetti e idea sul loro possibile livello).
01/10/2018 Modellazione software. UML.
01/10/2018 Introd. alla Ing. dei Requisiti I. Requisiti di utente: Funzionali e non: Stakeholder requests. Features. Attributi, relazioni e tracciabilità dei requisiti e relative motivazioni. Dinamicità dei requisiti.
03/10/2018 OO Thinking: Reasoning on Objetcs (oggetti, classi, comportamenti, stato, relazioni, implementazioni, attributi, operazioni, metodi, misuso di set & get).
03/10/2018 OO Coding. JVM & Ambiente di sviluppo: istruzioni di download. Richiami su Programmazione procedurale vs. OOP. Java: piccolo progetto in Java con qualche classe d'utente.
05/10/2018 OO Thinking: Reasoning on Objetcs ( costruttori, distruttori, creazione, metodi e attributi di classe). Ereditarietà singola e multipla. Relazioni Intensionali and Estensionali.
08/10/2018 UML Introduzione ai casi d'uso. UML UC Diagrams.
08/10/2018 UML. Activity Diagram.
12/10/2018 OO Thinking: Metamorphism and Polymorphism. Object variables in typed languages. Polymorphism in programming: C++, Java. From objects to meta*classes.
15/10/2018 Classi, Oggetti ed Information Hiding. Esempi. UML Class Diagram I.
15/10/2018 Ereditarietà. Esempi. UML Class Diagram 2.
17/10/2018 OO Analysis. Sintesi su Analisi software fino a rispondere alla seguente domanda: Quali classi di analisi per un progetto software? Modelli Boundary-Control-Enity (BCE) e Model-View-Contro, (MVC) e Model-View-Presentation (MVP). Concetto di classe Bean.
17/10/2018 Un primo piccolo progetto OO e sue estensioni. Da Persona a Cittadino, eventualmente con coniuge, madre, padre, figli, Occupato/Inoccupato, con Carta di identita, Lista Vaccinazioni. Implementazione in Java di classi, con impiego di ereditarietà, relazioni associative, anche riflessive, a molteplicità 0..1 o multipla.
19/10/2018 Requisiti del Progetto del corso: "User needs". Workshop
22/10/2018 Polimorfismo
22/10/2018 Binding di metodi in Java 1
24/10/2018 Binding di metodi in Java 2
24/10/2018 Documentazione del progetto del corso
26/10/2018 Requisiti del Progetto del corso: "User needs" 2. Workshop 2
31/10/2018 Grafica in Java con JFX. Eventi. Eventi asincroni e loro trattamento e programmazione in Java. Programmazione grafica Java: TextBox , ComboBox e RadioButton). Esempi di programmazione grafica in Java con JFX.
05/11/2018 Class Diagram 3: Interfacce. Ereditarietà multipla fra interfacce in Java.
05/11/2018 Class Diagram 4 : Associazioni, aggregazioni e composizioni. Implementazione delle associazioni. Differenza fra Associazione ed Ereditarietà. Dipendenze e loro tipi.
07/11/2018 Applicazioni web. Architetture MVC/PVC di applicazioni Laptop. Le classi di Boundary nelle architetture Laptop e Web.
07/11/2018 Sviluppo di UC relativi al progetto del corso.
09/11/2018 Introduzione ai sottosistemi.
12/11/2018 Progettazione con Responsabilità. Introduzione ai Pattern. Pattern GRASP.
12/11/2018 Pattern GoF1 ed elementi di implementazione in Java
14/11/2018 Use case per il progetto del corso
14/11/2018 JDBC. ORS: Object Relational System.
14/11/2018 Esercitazione su sviluppo di casi d’uso per il progetto del corso.
16/11/2018 Dai sottodomini del progetto del corso ai suoi sotto-sistemi.
19/11/2018 Pattern GoF2 ed elementi di implementazione in Java
19/11/2018 Esercitazione e discussione su Pattern.
21/11/2018 Mappa Gruppi-Sottosistemi.
21/11/2018 Esercitazione Agile-like con tre sottogruppi
23/11/2018 Thread Java: eredità vs. delega per il codice run. Esempi.
26/11/2018 Persistenza. File Java. Serializzazione/Deserializzazione
26/11/2018 Esempi su definizione e impiego File.
28/11/2018 Thread Java Daemon e non. Esempi. Monitor Java. Lock implicito e uso di Synchronized. Introduzione a Stati di thread Java.
28/11/2018 Laboratorio assistito di progettazione
30/11/2018 Condition implicita e impiego di wait(), notifyAll() e notify(). Interfacce Lock e loro implementazioni e impieghi. Conditioni esplicite: await(), signalAll(), signal(). Stati di thread Java. Reentrant Synchronization.
03/12/2018 Diagrammi di sequenza
03/12/2018 State Machines
05/12/2018 Using explicit conditions. Stati di thread Java.
05/12/2018 Laboratorio assistito di progettazione
07/12/2018 Altri tipi di monitor.
10/12/2018 Eccezioni e loro modello di programmazione in Java
10/12/2018 Esempi su eccezioni e loro modello di programmazione in Java
12/12/2018 Sottosistemi e loro interfacce
12/12/2018 JDBC. Persistent Data Access Interface (DAO) . Data Transfer Object (DTO) ed esempi .
14/12/2018 UC Sottosistemi: Announcing, Evaluation, Renting, Filters mgt.
17/12/2018 Verifica e Validazione del Software 1.
17/12/2018 Tecniche di verifica e di validazione II.
19/12/2018 Elementi di HTML e CSS ed applicazioni. JSP ed esempi
19/12/2018 UC Sottosistemi: Announcing, Physical Apt, Rules, Map mgt.
21/12/2018 UC Sottosistemi: User Profile & Role, Renting, Evaluation mgt.
07/01/2019 Introduzione a JUnit.
07/01/2019 Esempi di test con Junit.
09/01/2019 Integrazione Sottosistemi
09/01/2019 Laboratorio assistito di Integrazione di Sottosistemi
11/01/2019 Meta-modellazione, Meta-classi, e Reflection : UML e Java.
14/01/2019 Implementazione e integrazione di sottosistemi
16/01/2019 Implementazione e integrazione sottosistemi
16/01/2019 Laboratorio assistito di Implementazione di sottosistemi
18/01/2019 Domande e risposte: incontro con la classe.
23/01/2019 Laboratorio assistito di Implementazione di sottosistemi.
30/01/2019 Laboratorio assistito di Implementazione di sottosistemi.