Programmazione Web con Java: corso avanzato

Lo sviluppo di applicazioni web in Java ha subito negli ultimi anni notevoli evoluzioni e le tecnologie basate su servlet e JSP non sono più sufficienti per soddisfare tutti i requisiti delle applicazioni esistenti. A disposizione degli sviluppatori ci sono numerosi framework che consentono di sviluppare applicazioni di classe enterprise sia con interfaccia web tradizionale sia con le nuove interfacce ricche e interattive. Il corso, tramite l'esposizione di esempi e casi studio, vuole fornire le basi per lo sviluppo di applicazioni java con i nuovi framework e le linee guida per la scelta degli strumenti.

Destinatari

  • Progettisti e sviluppatori
  • Prerequisiti
  • Partecipazione al corso "Programmazione Web con Java: corso base" o conoscenze equivalenti

Contenuti

  • Architettura delle applicazioni java di ultima generazione;
  • Quale pattern: MVC o EventDriven?;
  • Sviluppo di applicazioni con Java Server Faces;
  • Estensioni ricche (Ajax based) per le Java Server Faces;
  • Confronto fra i principali framework basati su JSF;
  • Il framework Struts2;
  • Architettura di un'applicazione Struts2;
  • Implementare applicazioni MVC con Struts2;
  • Il framework Spring;
  • Dependency Injection;
  • Architettura di un'applicazione Spring;
  • Implementare applicazioni MVC con Spring;
  • Le componenti per l'accesso ai dati di Spring;
  • Altre componenti utili di Spring;
  • Utilizzo del pattern DAO;
  • Confronto fra i framework;
  • Un nuovo framework MVC: Stripes;
  • Esempi e casi studio.

Durata

3 giorni

Leggi tutto...

REST Oriented Architecture

Negli ultimi anni il mondo dell'Information Technology ha visto l'affermarsi di nuovi paradigmi per lo sviluppo e la fruizione di applicazioni aziendali quali la Service Oriented Architecture, il Web 2.0, il Cloud Computing e le Piattaforme Mobili. SOA aveva lo scopo principale di fornire strumenti di infrastruttura e governance per la razionalizzazione dei servizi aziendali che potevano essere esposti e fruiti, virtualmente, con qualsiasi tecnologia. Il Cloud ha lo scopo di virtualizzare le applicazioni e i servizi aziendali in modo da ottimizzare l'utilizzo delle risorse informatiche. Con l'affermarsi delle applicazioni web di ultima generazione, sia per PC (Rich Internet Application) che per Piattaforme Mobili (Rich Mobile Application) le tecnologie di esposizione dei servizi, come, ad esempio, XML e SOAP, stanno lentamente scomparendo dal WEB per essere sostituite da strumenti meno rigorosi e più flessibili come REST.Si sta configurando, quindi, la creazione di una REST Oriented Architecture (anche chiamata Web Oriented Architecture) dove le tecnologie web, basate sul protocollo HTTP stanno soppiantando tutte le altre e si pongono come collante universale per fare interoperare le applicazioni aziendali della stessa azienda o di aziende partner. Ma cos'è una REST Oriented Architecture? Su quali principi si basa? Cosa eredita da SOA? Quali sono i vantaggi e quali sono gli svantaggi? Quali strumenti sono disponibili sul mercato? Questo seminario, di carattere introduttivo, partendo dal confronto di una ROA con una SOA pone le basi per l'introduzione in azienda di una REST Oriented Architecture e per la sua connessione con altre aziende e con il Cloud.

Destinatari

  • Capi progetto
  • Analisti
  • Progettisti
  • Sviluppatori

Chiunque sia interessato ad approfondire i concetti relativi al Cloud Computing

Prerequisiti
Conoscenze base sulle SOA, sulle tecnologie internet e sulle applicazioni distribuite

Contenuti

  • Introduzione: evoluzione delle applicazioni aziendali - dal Web al Web 2.0, le Service Oriented Architecture, le Piattaforme Mobili, l'avvento del Cloud Computing, confronto fra le funzionalità, i vantaggi e gli svantaggi delle singole architetture;
  • REST Oriented Architecture - cos'è una REST Oriented Architecture, i principi su cui si basa una ROA, architettura delle applicazioni, cosa cambia nel ciclo di vita del software, cosa viene ereditato dalle architetture precedenti (punti di contatto con SOA, Web 2.0, Cloud e Mobile), realizzazione di applicazioni composite: i mashup, il problema del testing, standard, strumenti e best practices;
  • ROA e Governance - cos'è la governance, cosa cambia rispetto a SOA, gestire servizi nel mondo Web 2.0 e Cloud, standard, strumenti e best practices;
  • Le tecnologie per l'esposizione dei servizi - cenni su XML e web services SOAP - perché i Web Services di tipo SOAP sono in declino, l'avvento di REST, architettura dei servizi REST, protocolli per lo scambio dei messaggi (JSON, ATOM,...), possibili estensioni dell’architettura (WADL, JSON-P, JSON-Schema, JSON Encryption,…), strumenti per l'interrogazione del web (YQL), mashup e presentation services: strumenti e tecnologie, API o servizi? Strumenti per l’API Management, Tecnologie a confronto;
  • ROA e sicurezza - ROA eredita i problemi di sicurezza del web, quali standard? Come gestire la sicurezza di una ROA,Security as a Services.

Durata

3 giorni

Leggi tutto...

Stima di tempi e costi dello sviluppo software

Stimare in modo efficace i tempi e i costi di un’attività di sviluppo software, che si tratti di un progetto articolato o di un semplice intervento di manutenzione, è una pratica con cui si cimentano costantemente i project manager e, più in generale, tutti gli addetti alla realizzazione del software.
La stima basata sull’esperienza personale, ancora oggi largamente utilizzata, spesso non porta a buoni risultati e non ha le caratteristiche di oggettività e ripetibilità necessarie per un buon metodo di stima.
Nasce quindi l’esigenza di disporre di tecniche più oggettive e formali, raffrontabili in ambienti eterogenei, basate su standard internazionali e su criteri più scientifici.
Il corso, dopo aver ripreso le problematiche più comuni nella realizzazione delle stime, illustra le metriche di riferimento oggi disponibili per la misurazione dei software e le modalità con cui sono normalmente utilizzate, esamina alcune tecniche e best practices largamente diffuse e le inquadra nell’ambito di un processo che ne guida l’utilizzo.
I Function Point IFPUG, caposaldo del corso, sono trattati con ampi ed esaurienti riferimenti alle regole di conteggio e a diffuse tecniche di stima (E&QFP, FFPA), mentre per lo spinoso tema della conversione del size in effort vengono presentate le più importanti indicazioni fornite da linee guida nazionali e internazionali, e le migliori pratiche oggi adottate dalle realtà aziendali più evolute.
Il tema dell’uso contrattuale dei Function Point e, più in generale, delle metriche del software viene affrontato a corollario dei principali argomenti.

Destinatari

  • Capi progetto, team leader
  • Analisti funzionali
  • Specialisti nel campo delle metriche del software

Prerequisiti

Conoscenza delle problematiche legate al dimensionamento del software e alla stima di tempi e costi dello sviluppo del software

Contenuti

  • Le problematiche legate alle stime – il cono di incertezza, l’importanza di una buona stima, le caratteristiche di un buon metodo di stima;
  • Il dimensionamento del software – le metriche più diffuse (LOC - Lines Of Code, Function Point) e quelle emergenti (SNAP, Cosmic, Use Case Point, Story Point, …);
  • I Function Point IFPUG 4.3 - elementi teorici fondamentali per il conteggio e la stima; cenni al loro utilizzo contrattuale;
  • Stima dell’effort – la stima basata sui Function Point: best practices e linee guida; la stima per analogia; la stima bottom-up; la stima top-down basata sui work product; la stima basata su modelli parametrici (COCOMO II);
  • Il processo di stima calato nel processo di sviluppo – quando e come stimare (i momenti di stima e le tecniche più idonee); la gestione delle stime in ambito di progetto e in ambito aziendale;
  • Gli strumenti per la stima – templates, repository: con cosa partire e come evolvere;
  • Casi studio tratti da esperienze reali.

Durata
2 giorni

Leggi tutto...
Sottoscrivi questo feed RSS