Intervento didattico:
Il corso si prefigge l’obiettivo di formare analisti programmatori in grado di operare con Java e di svolgere il loro ruolo fornendo un valido contributo sia nella fase di progettazione che in quella di realizzazione.
Particolare attenzione viene posta alla questione del test del software in modo da mettere il discente in grado di produrre software di elevata affidabilità sin dalle prime fasi dello sviluppo e mantenendo tale caratteristica fino agli interventi manutentivi con il sistema ormai in esercizio.
Il corso presenta un utilizzo di Java in contesti molto diversi e quindi esplora gli aspetti fondamentali dei vari framework e standard esistenti. In particolare pone l’accento sullo sviluppo secondo il pattern Model-View-Controller che oggi è alla base di praticamente tutte le applicazioni di livello enterprise.
Vengono infine proposti i concetti per la realizzazione di web services efficaci ed efficienti sia in APIB REST sia in API SOAP ed esaminati i vari aspetti che ne conseguono, soprattutto in tema di scalabilità e load-balancing.
Al termine del corso il discente avrà acquisito le competenze per realizzare applicazioni, web o desktop che siano, in grado di integrare interfacce utente evolute, complesse logiche elaborative, accesso ai database più diffusi e servizi web distribuiti.
La tabella riepilogativa delle unità di competenza del corso e dei relativi moduli didattici (comprensiva di durata dei moduli espressa in ore) è riportata di seguito:
Analista programmatore Java
Unità di competenza Num. Titolo Modulo Durata
2. Progettazione tecnica applicazioni informatiche
2.1 Metodologie, framework e strumenti di progettazione 24
2.2 Progettazione di base del sistema e delle componenti 24
2.3 Definizione interfaccia utente, usabilità, veste grafica ed editoriale.
18
2.4 Modellazione database e progettazione DBMS 24
3. Sviluppo applicazioni informatiche
3.1 I linguaggi di programmazione ad oggetti, Java 24
3.2 Interfacciamento delle applicazioni con i database 18
3.3 Creazione di applicazioni su modello MVC 24
3.4 Introduzione alle applicazioni su cloud 18
4. Convalida applicazioni informatiche
4.1 Metodologie, modalità e strumenti per il collaudo e testing del sistema
18
5. Moduli trasversali 5.1 Sicurezza sul lavoro 8
Totale Ore 200
Modulo 2.1 – Metodologie, framework e strumenti di progettazione
Il modulo ha l’obiettivo di fornire una panoramica sui linguaggi di programmazione basati sull'approccio Object Oriented (Java), sui linguaggi per interagire con un DBMS (SQL) ed introduzione agli ambienti di sviluppo (tools) più usati
Obiettivi specifici:
Panoramica sui linguaggi di programmazione basati sull'approccio misto (C++) , Object Oriented (Java), sui linguaggi per interagire con un DBMS (SQL)
Introduzione agli ambienti di sviluppo (tools) più usati
Durata: 24 Ore
Conoscenze da acquisire (sapere):
Capire la differenza fra linguaggio procedurale ed Object Oriented ed avere un idea di cosa offre il mercato per interagire con un DBMS
Conoscere, a grandi linee, cosa offrono gli ambienti di sviluppo più diffusi
Competenze da acquisire (saper fare, abilità):
A fronte di un problema saper individuare il linguaggio o i linguaggi migliori con cui esprimere la soluzione.
Saper selezionare la tecnologia ed i tools più adatti per la progettazione tecnica del prodotto software
Modalità formative: Lezione frontale, esercitazioni guidate
Modalità di valutazione: Test a risposte multiple
Unità didattiche:
Cod. Titolo unità didattica
ud.1 I linguaggi di programmazione: a cosa servono e loro principali caratteristiche
ud.2 L'approccio procedurale: caratteristiche, pro e contro
ud.3 L'approccio OO: caratteristiche, pro e contro
ud.4 Interagire con un database: caratteristiche dei linguaggi commerciali
Indicatori di padronanza delle competenze acquisite: livello di comprensione delle differenze fra gli
approcci presentati
Attrezzature e tecnologie impiegate:
Postazione docente con leggio interattivo basata su Adora 24 2NC Postazioni Allievi con PC a scomparsa basate su Adora 20 G Lavagna interattiva modello Epson EB585Wi
Bibliografia e sitografia di riferimento:
Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma e Richard Helm (1994)
Introduction To Object-Oriented Programming, Timothy Budd (2001)
Sussidi didattici: Slide
Modulo 2.2 – Progettazione di base del sistema e delle componenti Il modulo ha come obiettivi di identificare i requisiti, le tecnologie e le piattaforme adatte al progetto come soluzione concreta ad un progetto di business. In particolare verranno presentati i principali costrutti dello standard UML per la modellazione della soluzione di un problema secondo l'approccio Object Oriented
Obiettivi specifici:
Presentare i principali costrutti dello standard UML per la modellazione dei processi e della soluzione di un problema secondo l'approccio Object Oriented.
Durata: 24 Ore
Conoscenze da acquisire (sapere):
A fronte di un progetto, verrà evidenziato come individuare e descrivere una possibile soluzione ad alto livello usando il linguaggio UML.
Identificare la struttura di base del prodotto software con i componenti principali (moduli) e le relative relazioni ed interrelazioni.
Competenze da acquisire (saper fare, abilità):
Capacità di distinguere le componenti principali di un’applicazione Implementazione di una semplice applicazione ASP.NET che permetta di progettare la parte
client (html, css, javascript), la parte server e una connessione dati di esempio
Modalità formative: Lezione frontale, esercitazioni guidate
Modalità di valutazione: Test finale e verifiche intermedie
Unità didattiche:
Cod. Titolo unità didattica
ud.1 Cosa è UML ed a cosa serve
ud.2 Il linguaggio UML per modellare i requisiti funzionali
ud.3 I costrutti UML per descrivere le classi ed i tipi di relazioni possibili fra classi
ud.4 I costrutti UML per modellare le relazioni fra le classi
ud.5 La modellazione del dominio: i diagrammi delle attività
Indicatori di padronanza delle competenze acquisite:
Capacità di rappresentare in UML un caso reale
Attrezzature e tecnologie impiegate:
Postazione docente con leggio interattivo basata su Adora 24 2NC Postazioni Allievi con PC a scomparsa basate su Adora 20 G Lavagna interattiva modello Epson EB585Wi
Bibliografia e sitografia di riferimento:
www.omg.org UML distilled. Guida rapida al linguaggio di modellazione standard Fowler, Baresi - Pearson; 4
edizione (giugno 2010)
Sussidi didattici: Slide
Modulo 2.3 – Definizione interfaccia utente, usabilità, veste grafica ed
editoriale Il modulo ha gli obiettivi di fornire gli elementi di base per la progettazione di un’interfaccia utente coerente e funzionale, ed approfondire gli strumenti che permettono di comporla.
Obiettivi specifici:
Fornire la conoscenza dei principi di usabilità ed ergonomia delle interfacce utente. Fornire la conoscenza delle metodologie di progettazione di interfacce. Fornire la conoscenza delle metodologie di prototipazione (a vari livelli di dettaglio) Elementi di HTML5 e CSS
Durata: 18 Ore
Conoscenze da acquisire (sapere):
Principi di usabilità Principi di progettazione delle interfacce e delle interazioni Metodologie di prototipazione statica e dinamica Elementi di HTML5 e CSS
Competenze da acquisire (saper fare, abilità):
Capacità di valutare l’usabilità di una interfaccia utente (Expert Review) Capacità di realizzare storyboard, sketch e wireframe Capacità di realizzare prototipi statici e dinamici Capacità di realizzare Style Guide Capacità di realizzare un’interfaccia grafica sfruttando gli attuali standard HTML5
Modalità formative: Lezione frontale, esercitazioni guidate
Modalità di valutazione:
Sviluppo di un caso di studio da realizzarsi singolarmente Sviluppo di un caso di studio da svilupparsi in gruppo Test a risposte multiple
Unità didattiche:
Cod. Titolo unità didattica
ud.1 Principi di usabilità
ud.2 Progettazione di interfacce: Storyboard, Sketch e Wireframe
ud.3 Prototipazione statica e dinamica
ud.4 Style Guide e veste grafica di un prodotto/servizio
Indicatori di padronanza delle competenze acquisite:
Capacità di riconoscere problemi di usabilità in una interfaccia utente. Capacità di realizzare, a diversi livelli di dettaglio, Storyboard, Sketch e Wireframe. Capacità di realizzare un prototipo, statico e dinamico, di una interfaccia utente. Capacità di realizzare una style guide.
Attrezzature e tecnologie impiegate:
Postazione docente con leggio interattivo basata su Adora 24 2NC Postazioni Allievi con PC a scomparsa basate su Adora 20 G Lavagna interattiva modello Epson EB585Wi
Bibliografia e sitografia di riferimento:
Fondamenti di grafica di Gavin Abrose e Paul Harris (2012) Don't make me think. Un approccio di buon senso all'usabilità web e mobile di Steve Krug e B.
Sansone (2014) A Project Guide to UX Design: For user experience designers in the field or in the making di Russ
Unger (2009)
Sussidi didattici: Slide
Modulo 2.4 Modellazione database e progettazione DBMS Il modulo ha come obiettivi la progettazione di database relazionali, e la concreta realizzazione ed utilizzo di un database tramite Oracle database 11 G.
Obiettivi specifici:
Acquisire le conoscenze necessarie a progettare un database relazionale Acquisire i fondamenti del linguaggio SQL
Durata: 24 Ore
Conoscenze da acquisire (sapere):
Cosa si intende per Data Base e da cosa è formato. I passi per la sua progettazione. La sintassi del linguaggio SQL (Creare oggetti di database, Creare e modificare tabelle tramite
sintassi SQL, Oggetti e classi, Creare e modificare viste, Creare e modificare vincoli, Eseguire query di dati tramite istruzioni SELECT, Implementare sottoquery, Implementare tipi di dati, Implementare le query aggregate, Creare e modificare stored procedure, Modificare dati tramite istruzioni INSERT, UPDATE e DELETE, Combinare set di dati, Utilizzare le funzioni, Risoluzione di problemi e ottimizzazione, Ottimizzare le query)
Competenze da acquisire (saper fare, abilità):
Capacità di descrivere la realtà di interesse in modo concettuale, relazionale e fisico. Adottare strumenti e procedure per la progettazione funzionale della base dati. Funzioni e linguaggi dei Data Bases relazionali Progettare un database, con le sue relazioni, chiavi, indici e constraint Interrogare e modificare un database tramite linguaggio SQL
Modalità formative: Lezione frontale, esercitazioni guidate
Modalità di valutazione:
Sviluppo di un caso di studio da realizzarsi singolarmente Test a risposte multiple
Unità didattiche:
Cod. Titolo unità didattica
ud.1 Introduzione ai Data Base. I passi per la sua progettazione
ud.2 La modellazione concettuale: lo schema E-R
ud.3 La modellazione logica: il modello relazionale
ud.4 Passaggio schema concettuale - schema relazionale
ud.5 Lo schema fisico
ud.6 L’utilizzo del linguaggio SQL
Indicatori di padronanza delle competenze acquisite:
livello di comprensione dei vari passi del percorso progettuale di un Data Base livello di abilità nell' uso di SQL
Attrezzature e tecnologie impiegate:
Postazione docente con leggio interattivo basata su Adora 24 2NC Postazioni Allievi con PC a scomparsa basate su Adora 20 G Lavagna interattiva modello Epson EB585Wi
Bibliografia e sitografia di riferimento:
Basi di dati - Atzeni, Ceri, Paraboschi, Fraternali, Editore : McGraw-Hill Education; 4 edizione (febbraio 2014)
www.oracle.com Welcome to Oracle Ruocchio Editore : Lulu.com (ottobre 2011)
Sussidi didattici: Slide
Modulo 3.1 I linguaggi di programmazione ad oggetti, Java Il modulo ha gli obiettivi di presentare un’introduzione ai linguaggi ad oggetti, con un concreto approfondimento su JAVA.
Obiettivi specifici:
implementare struttura e elementi di una classica applicazione desktop; creare classi, definire l'interfaccia, creare e usare collection; utilizzare l'ereditarietà per creare una gerarchia di classi; leggere e scrivere dati tramite file I/O e stream; utilizzare entity data model e LINQ; interrogare dati remoti tramite WCF Data Services e System.NET namespace; creare una interfaccia utente tramite XAML; integrare librerie e componenti dinamici.
Durata: 24 Ore
Conoscenze da acquisire (sapere):
Principi di programmazione a oggetti Sintassi del linguaggio JAVA Sintassi Linq
Competenze da acquisire (saper fare, abilità):
Creare un programma desktop in JAVA utilizzando il modello OOP.
Modalità formative: Lezione frontale, esercitazioni guidate
Modalità di valutazione:
Sviluppo di un caso di studio da realizzarsi singolarmente Test a risposte multiple
Unità didattiche:
Cod. Titolo unità didattica
ud.1 Java: struttura di un programma
ud.2 Java: tipi di dato primitivi e la dichiarazione di una variabile
ud.3 Java: strutture di controllo
ud.4 Java: arrays mono e bidimensionali
ud.5 Java: creazione di una classe e di oggetti
ud.6 Java: classi predefinite
ud.7 Java: l'ereditarietà e l'organizzazione delle classi nel mondo Java
ud.8 Java: classi abstract, interfaces
ud.9 Java: le eccezioni e la loro gestione
Indicatori di padronanza delle competenze acquisite:
Livello di abilità nell’uso del linguaggio
Attrezzature e tecnologie impiegate:
Postazione docente con leggio interattivo basata su Adora 24 2NC Postazioni Allievi con PC a scomparsa basate su Adora 20 G Lavagna interattiva modello Epson EB585Wi
Bibliografia e sitografia di riferimento:
www.oracle.com Java: The Complete Reference – Schildt - McGraw - Hill Education, nona edizione (aprile 2014)
Sussidi didattici: Slide
Modulo 3.2 Interfacciamento delle applicazioni con i database Il modulo ha l’obiettivo di approfondire il linguaggio Java con particolare attenzione all’interfacciamento con i database.
Obiettivi specifici:
I Data Provider: I Componenti di accesso ai dati: Programmazione e database con ADO.NET Introduzione a LINQ to SQL
Durata: 18 Ore
Conoscenze da acquisire (sapere):
Le tecnologie di accesso ai dati ADO.NET Interfacciamento ad un database tramite codice Sintassi LINQ
Competenze da acquisire (saper fare, abilità):
Capacità di realizzare un’applicazione di connessione ad un database
Modalità formative: Lezione frontale, esercitazioni guidate
Modalità di valutazione:
Sviluppo di un caso di studio da realizzarsi singolarmente Test a risposte multiple
Unità didattiche:
Cod. Titolo unità didattica
ud.1 Architettura di accesso ai dati.
ud.2 La tecnologia ADO.NET
ud.3 L’interazione con un RDBMS
ud.4 L’utilizzo e la sintassi di LINQ per l’accesso ai dati
Indicatori di padronanza delle competenze acquisite:
Capacità di configurare l’accesso ad un RDBMS Capacità di creare query con LINQ
Attrezzature e tecnologie impiegate:
Postazione docente con leggio interattivo basata su Adora 24 2NC
Postazioni Allievi con PC a scomparsa basate su Adora 20 G Lavagna interattiva modello Epson EB585Wi
Bibliografia e sitografia di riferimento:
ASP.NET: Programming success in a day: Beginners guide to fast, easy and efficient learning of ASP.NET programming (ASP.NET, ASP.NET Programming, ASP.NET ... Programming, Programming) (English Edition), Sam Key (2015)
Professional Asp.NET Mvc 5, Jon Galloway e Brad Wilson (2014)
Sussidi didattici: Slide
Modulo 3.3 - Creazione di applicazioni su modello MVC Introduzione al modello MVC (Model View Controller), e la sua applicazione in ASP.NET.
Obiettivi specifici:
Progettare l'architettura di una applicazione web per rispondere a specifici requisiti funzionali e di interfaccia;
Creare MVC Models; Aggiungere Controller ad una applicazione MVC; Creare Views in una applicazione MVC; Scrivere codice JavaScript e utilizzare la libreria JQuery; Scrivere un web service Windows Azure e richiamarlo da una applicazione MVC; Descrivere cosa sia una Web API e perchè la si dovrebbe aggiungere ad una applicazione MVC; Descrivere come distribuire una web application ASP.NET MVC su un web server
Durata: 24 Ore
Conoscenze da acquisire (sapere):
Il modello MVC L’implementazione ASP.NET di MVC Interfacciamento con il lato client
Competenze da acquisire (saper fare, abilità):
Creare un’applicazione ASP.NET basata sul modello MVC
Modalità formative: Lezione frontale, esercitazioni guidate
Modalità di valutazione:
Sviluppo di un caso di studio da realizzarsi singolarmente Test a risposte multiple
Unità didattiche:
Cod. Titolo unità didattica
ud.1 Il pattern MVC. Gli altri pattern fondamentali (Front Controller, Proxy, Singleton, …)
ud.2 Il Model-View-Controller di ASP.Net
ud.3 JQuery e l’interazione lato client.
ud.4 Definire e descrivi servizi web.
ud.5 La distribuzione di una web application
Indicatori di padronanza delle competenze acquisite:
Capacità di progettare casi d’uso in un contesto MVC Capacità di utilizzare JQuery per manipolare il DOM Capacità di definire ed implementare API di servizi Web Capacità di eseguire il deploy di un’applicazione su un server .Net
Attrezzature e tecnologie impiegate:
Postazione docente con leggio interattivo basata su Adora 24 2NC Postazioni Allievi con PC a scomparsa basate su Adora 20 G Lavagna interattiva modello Epson EB585Wi
Bibliografia e sitografia di riferimento:
ASP.NET: Programming success in a day: Beginners guide to fast, easy and efficient learning of ASP.NET programming (ASP.NET, ASP.NET Programming, ASP.NET ... Programming, Programming) (English Edition), Sam Key (2015)
Professional Asp.net Mvc 5, Jon Galloway e Brad Wilson (2014) Javascript & jQuery: Interactive Front-End Web Development, Jon Duckett e Gilles Ruppert
(2014)
Sussidi didattici: Slide
Modulo 3.4 – Introduzione alle applicazioni su cloud Il modulo ha gli obiettivi di presentare un’introduzione allo sviluppo su Cloud ed in particolare sulla piattaforma Microsoft Azure.
Obiettivi specifici:
manipolare i dati con Entity Framework; utilizzare ASP.NET Web API per creare servizi HTTP-based; creare servizi SOAP-based con WCF; utilizzare Windows Azure Service Bus; distribuire servizi su server on-premise e su Windows Azure; configurare e utilizzare lo Windows Azure Storage; monitorare i servizi sia sui server on-premise che in ambiente Windows Azure; creare servizi scalabili e load-balanced.
Durata: 18 Ore
Conoscenze da acquisire (sapere):
Principi delle architetture Cloud Utilizzo di Microsoft Azure Creazione di servizi e comunicazioni sincrone e asincrone
Competenze da acquisire (saper fare, abilità):
Capacità di realizzare servizi su cloud Capacità di integrare applicazioni cloud ad applicazioni client
Modalità formative: Lezione frontale, esercitazioni guidate
Modalità di valutazione:
Sviluppo di un caso di studio da realizzarsi singolarmente Test a risposte multiple
Unità didattiche:
Cod. Titolo unità didattica
ud.1 Utilizzare le entità per la gestione dei dati
ud.2 La progettazione e l’implementazione di API REST
ud.3 La progettazione e l’implementazione di API SOAP
ud.4 Scalare e bilanciare il carico di servizi web
Indicatori di padronanza delle competenze acquisite:
Capacità di progettare e implementare servizi web con API REST e SOAP Redazione di un progetto di load balancing per un’applicazione basata su servizi Web
Attrezzature e tecnologie impiegate:
Postazione docente con leggio interattivo basata su Adora 24 2NC Postazioni Allievi con PC a scomparsa basate su Adora 20 G Lavagna interattiva modello Epson EB585Wi
Bibliografia e sitografia di riferimento:
Professional Asp.net Mvc 5, Jon Galloway e Brad Wilson (2014)
Sussidi didattici: Slide
Modulo 4.1 – Metodologie, modalità e strumenti per il collaudo e testing
del sistema e aspetti legati alla sicurezza Il modulo ha gli obiettivi di presentare una panoramica delle tecniche ed aspetti generali legati al debug e alla sicurezza delle applicazioni.
Obiettivi specifici:
Tecniche di debug in visual studio Utilizzo dello Unit Testing Principi di un’applicazione robusta e sicura
Durata: 18 Ore
Conoscenze da acquisire (sapere):
Tecniche di debug Utilizzo dello Unit Testing Introduzione alla prevenzione di attacchi SQL Injection e D.O.S.
Competenze da acquisire (saper fare, abilità):
Realizzare un debug e il miglioramento di un’applicazione tramite unit testing
Modalità formative: Lezione frontale, esercitazioni guidate
Modalità di valutazione:
Sviluppo di un caso di studio da realizzarsi singolarmente Test a risposte multiple
Unità didattiche:
Cod. Titolo unità didattica
ud.1 Il debugging
ud.2 Principi di test del software
ud.3 Il test di unità. Altri tipi di test (non regressione, sicurezza, carico, …).
ud.4 I principali tipi di attacco da cyber criminali e le contromisure tipiche da adottare
Indicatori di padronanza delle competenze acquisite:
Capacità di debugging di codice Capacità di progettazione ed esecuzione di test di unità Capacità di progettare contromisure per attacchi DOS e SQL Injection
Attrezzature e tecnologie impiegate:
Postazione docente con leggio interattivo basata su Adora 24 2NC Postazioni Allievi con PC a scomparsa basate su Adora 20 G Lavagna interattiva modello Epson EB585Wi
Bibliografia e sitografia di riferimento:
Managing the Testing Process, 3rd Edition (2009) Design Driven Testing (2010)
Sussidi didattici: Slide
Modulo 5.1 – Sicurezza sul lavoro Il corso ha l’obiettivo di far acquisire ai lavoratori le nozioni di base della sicurezza sul lavoro in osservanza e ai sensi dell’art. 37 comma 2 del Testo Unico (D.Lgs. n. 81/2008) ed in conformità all’Accordo Stato Regioni del 21/12/2011 pubblicato nella Gazzetta Ufficiale n. 8 dell’11/01/2012.
Obiettivi specifici:
Conoscenza delle caratteristiche del posto di lavoro e dei rischi ad esso connessi; rispetto costante delle misure di prevenzione e sicurezza
Durata: 8 Ore
Conoscenze da acquisire (sapere):
I rischi connessi alla propria mansione/posto di lavoro;
Competenze da acquisire (saper fare, abilità):
Le misure di prevenzione collettiva presenti sul posto di lavoro
Modalità formative: Lezione frontale, esercitazioni guidate
Modalità di valutazione:
Test a risposte multiple
Unità didattiche:
Cod. Titolo unità didattica
ud.1 La sicurezza sui luoghi di lavoro – formazione di base
ud.2 Uso di videoterminali: aspetti di sicurezza sul lavoro
ud.3 Altri rischi specifici nel settore informatico
Indicatori di padronanza delle competenze acquisite:
Riduzione dei casi di infortunio e malattia professionale
Attrezzature e tecnologie impiegate:
Postazione docente con leggio interattivo basata su Adora 24 2NC Postazioni Allievi con PC a scomparsa basate su Adora 20 G Lavagna interattiva modello Epson EB585Wi
Bibliografia e sitografia di riferimento:
D. Lgs 81/08 e s.m.; D. Lgs 106/09 e s.m. http://www.lavoro.gov.it/AreaLavoro/saluteSicurezza/pages/default.aspx
Sussidi didattici: Slide