SVILUPPO SOFTWARE:
LINGUAGGI E TECNICHE

SVILUPPO SOFTWARE:
LINGUAGGI E TECNICHE

Corsi su linguaggi e tecnologie per lo sviluppo del software con particolare attenzione agli ambienti web e open source, alla OOP e ai principali framework (Hibernate, Struts, Spring), alla sicurezza del software, allo sviluppo di applicazioni mobile e cloud.
Scopri nel dettaglio i programmi dei corsi.

SL01 Framework di sviluppo software in ambiente Java

Corso tecnico-pratico sui principali framework (Hibernate, Apache Struts, Spring).

Descrizione: Il corso fornisce una panoramica sui framework open source più diffusi e utilizzati per lo sviluppo di applicazioni web su piattaforma Java.
Hibernate è una libreria Object Relational Mapping (ORM) che consente di ottenere la persistenza dei dati per applicazioni Java tramite il mapping sotto forma di oggetti di tabelle preesistenti.
Struts è un framework open-source nato nell’ambito del progetto Apache Jakarta per lo sviluppo di applicazioni web Java EE conformi al Model View Controller (MVC).
Spring è un framework che consente di semplificare le fasi di progettazione e realizzazione di applicazioni Java.

Obiettivi: fornire le conoscenze teoriche e gli strumenti pratici necessari per sviluppare applicazioni web basate sui framework maggiormente diffusi per lo sviluppo di applicazioni Java EE.

Destinatari: analisti e sviluppatori software.

Prerequisiti: conoscenze di sviluppo applicazioni in linguaggio Java,  modellazione a oggetti e dell’architettura Java EE.

Struttura e contenuto:
•    Introduzione alle tecniche di persistenza
•    Architettura di Hibernate
•    Classi persistenti e mapping
•    Persistenza degli oggetti
•    Introduzione al framework Apache Jakarta Struts.
•    Architettura di Struts.
•    Componenti fondamentali del framework e plugin aggiuntivi.
•    Validazione server-side e client-side.
•    Gestione delle eccezioni.
•    Realizzazione di interfacce utente complesse
•    Persistenza di oggetti Java su database relazionali.
•    Mapping delle classi persistenti.
•    Strategie di gestione delle transazioni.
•    Il meccanismo di caching.
•    Performance tuning: ottimizzazione delle query e funzionalità avanzate.
•    Design Pattern MVC
•    Action Classes
•    Realizzare le JSP
•    Validazione dei form
•    Exception Handling
•    Accesso ai dati (Transaction Management, Supporto DAO ecc.).
•    Architetture multi-tier.
•    Introduzione al framework Spring.
•    Architettura di Spring.
•    Concetti di Inversion of Control e Dependency Injection.
•    Spring Container e Spring Beans.
•    Aspect Oriented Programming in Spring.
•    Servizi del business layer.
•    Transazionalità programmatica, dichiarativa o annotation based.
•    Servizi cross-cutting.
•    Gestione della persistenza.
•    Realizzazione del data access layer: integrazione con JDBC e framework ORM Hibernate.
•    Presentation Layer: MVC e Web Flow.
•    Spring Batch.
•    Applicazioni Spring.
•    Modello di sicurezza delle Spring Applications.
•    Architetture per le applicazioni Spring.

Durata del corso: 3 giorni

SL02 Programmazione object oriented in Java

Corso sulla programmazione a oggetti e il linguaggio Java, con cenni di modellazione UML.

Descrizione: la metodologia di sviluppo software orientata agli oggetti trova la sua espressione più diffusa e consolidata nella tecnologia Java. Nel corso vengono descritte la metodologia di progettazione a oggetti, le caratteristiche fondamentali del linguaggio Java e le principali differenze rispetto agli altri linguaggi di programmazione a oggetti come C++ e C#. In particolare, vengono fornite le competenze necessarie allo sviluppo di applicazioni server-side tramite l’utilizzo di Java Servlet e Java Server Pages. Sono infine illustrati i fondamenti di base del linguaggio UML.

Obiettivi: fornire le conoscenze teoriche e pratiche sulla programmazione a oggetti in linguaggio Java, sull’architettura J2EE e sui componenti Java Servlet e Java Server Pages.

Destinatari: analisti e sviluppatori software di applicazioni web, Project Manager.

Prerequisiti: conoscenze base di IT.

Struttura e contenuto:
•    Introduzione al linguaggio Java
•    La programmazione orientata agli oggetti
•    Costrutti base del linguaggio
•    L’architettura J2EE
•    Introduzione ai web component: servlet e Java Server Pages
•    Le API JDBC
•    Realizzazione di un’applicazione web in Java
•    Esercitazioni
•    Concetti generali di UML

Durata del corso: 3 giorni

SL03 Sicurezza delle applicazioni software

Corso metodologico-pratico per lo sviluppo di applicazioni web sicure.

Descrizione: con il diffondersi di applicazioni web e architetture IT distribuite, le vulnerabilità e le problematiche di sicurezza dei sistemi informativi aziendali sono aumentate di pari passo.
Il corso pone l’accento sulla necessità da parte di un’organizzazione di perseguire il miglioramento continuo della sicurezza delle applicazioni software, evidenziandone le più diffuse criticità e le principali tecniche di attacco, per mettere in grado tutti gli attori coinvolti di verificare proattivamente il grado di sicurezza degli applicativi web e adottare soluzioni tempestive ed efficaci per mitigare i relativi rischi.

Obiettivi: acquisire i principi fondamentali in materia di sicurezza applicativa e le competenze di base su metodologie e strumenti per progettare e sviluppare applicazioni web sicure.

Destinatari: Project Manager, analisti e programmatori software, manager di dipartimenti IT per il collaudo e l’esercizio di applicazioni, responsabili di sicurezza IT.

Prerequisiti: Conoscenze base di IT e sviluppo software.

Struttura e contenuto:
•    Associazioni internazionali, normative vigenti, risorse e documentazione sulla sicurezza delle applicazioni e sullo sviluppo di software sicuro
•    Le principali e più comuni vulnerabilità di un’applicazione web
•    Criteri e metodologie per lo sviluppo di applicazioni sicure
•    Test di applicativi web e criteri di reporting
•    Concetti di base, architettura generale e panoramica dei principali tool di mercato
•    Tecniche e strumenti per l’Information Gathering di applicazioni web
•    Metodi e tecniche di attacco alle applicazioni web e relative contromisure
•    Funzionamento e vulnerabilità dei programmi antivirus

Durata del corso: 2 giorni

SL04 Sviluppo software in ambiente Android

Corso sulla progettazione software per dispositivi mobile Android.

Descrizione: Android è il sistema operativo open source basato su Java più diffuso nei dispositivi mobile: smartphone, tablet ecc.
Nella parte iniziale del corso vengono illustrate le caratteristiche tipiche dello sviluppo software per dispositivi mobile e l’architettura del sistema Android. In seguito si descrive la progettazione e distribuzione delle applicazioni, la gestione dell’interfaccia grafica, i servizi di localizzazione (GPS), di comunicazione e di rete.

Obiettivi: acquisire le conoscenze di base sulle caratteristiche principali dello sviluppo di applicazioni Java in ambiente Android.

Destinatari: analisti e sviluppatori software.

Prerequisiti: conoscenze base di IT e di sviluppo software.

Struttura e contenuto:
•    Introduzione all’ambiente Android
•    Sviluppo di applicazioni per dispositivi mobile
•    Caratteristiche delle applicazioni Android
•    Ambiente di sviluppo
•    Componenti e gestione delle risorse
•    Activity e Intent
•    Interfaccia grafica
•    Gestione dei dati
•    Gestione dei thread e servizi
•    Sincronizzazione
•    Rete e sicurezza
•    Le API di Google Maps
•    Gestione dei media

Durata del corso: 2 giorni

SL05 Sviluppo software in ambiente iOS

Corso sulla progettazione software per dispositivi mobile Apple.

Descrizione: iOS è il sistema operativo dei dispositivi mobile Apple iP*: smartphone, tablet ecc.
Nella parte iniziale del corso vengono illustrate le caratteristiche tipiche dello sviluppo software per dispositivi mobile Apple e l’architettura del sistema iOS. In seguito si descrive la progettazione e distribuzione delle applicazioni, il linguaggio Objective-C, i servizi di localizzazione (GPS), di comunicazione e di rete.

Obiettivi: acquisire le conoscenze di base sulle caratteristiche principali dello sviluppo di applicazioni software in ambiente iOS.

Destinatari: analisti e sviluppatori software.

Prerequisiti: conoscenze base di IT e di sviluppo software.

Struttura e contenuto:
•    Introduzione al sistema iOS
•    Il modello di programmazione Apple: XCode e Interface builder
•    Programmazione di applicazioni con Objective-C
•    Introduzione alle collections
•    Il modello Apple MVC
•    Custom Views e View Controllers
•    Gestione degli eventi
•    Table e Table View
•    MultiViews, Tab Bars, Pickers
•    Rotazione automatica, ridimensionamento automatico
•    Collegamento HTTP, parsing XML, navigazione web
•    Introduzione alle mappe

Durata del corso: 2 giorni

SL06 Sviluppo software in ambiente Windows

Strumenti, framework e linguaggi di programmazione (Visual Basic, C#, ASP.NET MVC) in ambiente MS Windows.

Descrizione: Il corso introduce i concetti fondamentali della programmazione in ambiente Windows, con particolare riferimento al linguaggio C#. Viene descritto l’ambiente integrato di sviluppo Visual Studio e le principali caratteristiche del Framework .NET 4.5, con una panoramica sullo sviluppo di applicazioni web con ASP.NET MVC.

Obiettivi: fornire le conoscenze di base per creare applicazioni con il linguaggio C#, e una panoramica sullo sviluppo di web application con ASP.NET MVC.

Destinatari: sviluppatori software.

Prerequisiti: conoscenze base di programmazione a oggetti.

Struttura e contenuto:
•    Cenni di linguaggio C# (sintassi, tipi di dati, operatori, espressioni, costrutti)
•    Creazione di metodi e gestione delle eccezioni
•    Gestione di eventi
•    Creazione di classi e interfacce
•    Gerarchie di classi ed ereditarietà
•    Estensione delle classi del framework .NET
•    Lettura e scrittura di dati
•    Accesso a database
•    Accesso a dati remoti
•    Disegno di un’interfaccia utente
•    Creazione di oggetti dinamici
•    Cenni sulla creazione di web application con ASP.NET MVC.

Durata del corso: 5 giorni

SL07 Usabilità delle applicazioni software

Metodologie, strumenti e tecniche per la progettazione e lo sviluppo di applicazioni web secondo gli standard W3C di usabilità e accessibilità; best practice con PHP e MySQL.

Descrizione: con la crescente diffusione delle tecnologie e degli strumenti di comunicazione via Internet, in particolare per i dispositivi mobili di nuova generazione, il mondo dei servizi web ha subito, negli ultimi anni, una rapida evoluzione in quanto gli utenti sono sempre più sensibili anche al modo in cui tali servizi e le informazioni vengono presentati: l’usabilità ha quindi assunto un ruolo strategico nella progettazione dei servizi e delle applicazioni web.
Sono stati redatti e concordati a livello internazionale (dal World Wide Web Consortium – W3C) una serie di standard e regole da seguire per realizzare i siti web affinché questi siano disponibili e fruibili anche per le persone diversamente abili, nonché da postazioni informatiche non di ultima generazione o da dispositivi mobili.
Il PHP è un linguaggio di scripting utilizzato per realizzare applicazioni web complesse lato server: è un linguaggio multipiattaforma e open source ideale per essere impiegato insieme con MySQL, database server open source, per la creazione e gestione di contenuti dinamici per il web.

Obiettivi: descrivere i principi di usabilità per le applicazioni web, le metodologie e le fasi dello sviluppo con PHP e MySQL per realizzare siti web usabili e accessibili a chiunque, anche con strumenti e tecnologie di navigazione di vecchia generazione.

Destinatari: responsabili IT, analisti e sviluppatori di applicazioni e siti web.

Prerequisiti: conoscenze base di sviluppo software per il web.

Struttura e contenuto:
•    Introduzione ai principi di usabilità
•    Definizioni: accessibilità, usabilità ed ergonomia
•    Usabilità delle interfacce software
•    Ruota dei colori, accostamenti e schemi cromatici
•    Standard W3C e riferimenti normativi
•    Sviluppare un sito web usabile con PHP
•    Esempi di applicazioni e siti web con la valutazione del loro livello di usabilità.

Durata del corso: 2 giorni

SL08 DevOps Docker

Corso teorico-pratico di introduzione alla metodologia DevOps attraverso l’utilizzo di Docker e dei Linux containers

Descrizione: Docker e i Linux container sono il principale strumento per lo sviluppo e la gestione dei progetti software basati sulla metodologia DevOps (“Developers and Operations”). Grazie alle funzionalità di isolamento del sistema operativo Linux, Docker permette di sviluppare le applicazioni all’interno di “contenitori virtuali” indipendenti e consente a più applicazioni di coesistere sulla stessa macchina fisica evitando l’installazione e la manutenzione di macchine virtuali. Grazie all’interfaccia standardizzata, Docker consente agli sviluppatori (“Developers”) di realizzare velocemente le applicazioni, semplificando il flusso di lavoro e garantendo processi sempre ripetibili e controllabili. Con Docker, gli amministratori (“Operations”) possono controllare la gestione delle applicazioni garantendo automazione, controllo, sicurezza, portabilità e consistenza tra i diversi ambienti di sviluppo, test e produzione

Obiettivi: Il corso fornisce le basi per familiarizzare con la metodologia DevOps, comprendere la tecnologia Docker ed i Linux Container e realizzare applicazioni software usando questi nuovi concetti. Attraverso esercitazioni pratiche condotte via Internet e un pizzico di teoria (q.b.) saranno introdotti tutti gli strumenti necessari per predisporre, da zero, un ambiente di sviluppo basato su Docker, strutturare un’applicazione e distribuirla sul Cloud.

Destinatari: Il workshop è rivolto a sviluppatori software, sistemisti e manager interessati a conoscere ed esplorare le nuove metodologie DevOps di sviluppo e gestione delle applicazioni software. E’ richiesta una conoscenza di base dei sistemi Linux e della programmazione software

Struttura e contenuto:
•   Il ciclo di vita delle applicazioni software
•   Introduzione alla metodologia DevOps
•   Docker e la tecnologia dei Linux containers
•   Containers e macchine virtuali Academy
•   Installare e configurare Docker in ambiente Linux
•   Eseguire applicazioni all’interno di container applicativi
•   Amministrare i Linux container da linea di comando
•   Cockpit, un pannello di controllo per amministrare i Linux containers
•   Creare proprie immagini
•   Creare un registro locale di immagini
•   Architetture software basate su micro-servizi
•   Software Defined Networks e Linux container
•   La persistenza dei dati nei Linux container
•   Software Defined Storage e Linux container
•   Orchestrare container su più macchine

Durata del corso: 2 giorni

SL09 Angular 2 Js

Il corso prevede lo studio del framework Angular 2 con accenni al linguaggio Typescript

Descrizione: Il corso interessa l’ultima tecnologia Google Angular 2 per lo sviluppo di applicazioni web attraverso Typescript. Al termine del corso i discenti saranno in grado di sviluppare applicazioni Angular 2 e conosceranno i campi di applicazione per utilizzare tale framework anche in altri contesti.

Destinatari: Sviluppatori frontend che hanno la necessità di conoscere Angular 2 o che hanno necessità di aggiornare la propria applicazione Angular all’ultima versione.

Struttura e contenuto:

  • Generalità su Angular 2
  • Da Angular JS 1.xx ad Angular 2: cosa è cambiato
  • Struttura di una applicazione Angular 2
  • I “Componenti” di Angular 2
  • Template ed Interpolazione
  • Gestire gli eventi in Angular 2
  • I moduli web in Angular 2
  • L’uso di TypeScript e ES6 e Angular 2
  • TypeScript
  • Differenze tra Angular 1.x $http e Angular 2 http
  • Definire i membri di una classe
  • Definire un costruttore
  • Definire un metodo
  • Creare l’istanza di una classe
  • Estendere una classe: ereditarietà
  • Stringhe e Template in TypeScript
  • Richieste http in Angular 2
  • Differenze tra Angular 1.x $http e Angular 2 http

Durata del corso: 3 giorni

SL10 Agile Testing

Descrizione: il corso permette di acquisire tutte le basi per scrivere test automatici (in C#, Java & Java script) nel contesto delle metodologie Agili. Viene inoltre fornita una panoramica su Scrum e la gestione dei requisiti basta su User Stories.

Obiettivi: fornire la basi per lo sviluppo impronta-to su Unit Test e BDD.

Destinatari: chiunque voglia scrivere software utilizzando metodologie Agili e migliorare la qualità del codice.

Prerequisiti: buona conoscenza di almeno un linguaggio di programmazione (Java o C# idealmente).

Struttura e contenuto:

Gestione dei requisiti, panoramica:

– Traditional Business Analysis

– Use Cases, Scenarios and Tests

– Non functional requirements

– Performance

– Conformance

– UML in Business Analysis

Scrum:

– Sprint backlog & tests user stories

– Planning Poker

-Scrum review meeting

Introduzione al testing e definizioni:

– Functional Tests

– Regression Test

– UAT Tests

– Unit Tests

– Usability Tests

– Non Functional Tests

– Performance test

– Load test

– Stress test

– Soak test

Product owner and Tests:

– User Stories

– Scenari

– Precondizioni e Post Condizioni

I processo di testing:

– Processo e strategia

– Identificare gli scenari dalla user stories

– Tests Design

– Dati e ambienti di test

– Creazione e organizzazione

Tools per il Testing:

– JUnit (o Visual Studio Unit Test Framework)

– Cucumber (SpecFlow)

– Selenium Web Driver

– Javascript Unit Testing (Mocha)

– Gulp

– Apache JMeter

– Continuous IntegratiON

 

Durata: 2 giorni

SL11 Programming in C# (Visual Studio 2012) (MOC 20483)

Programming in C# (Visual Studio 2012) (MOC 20483)

Descrizione: Il corso fornisce ai partecipanti le conoscenze di programmazione richieste per gli sviluppatori software che debbano creare applicazioni Windows in linguaggio C#. Durante il corso
verranno riepilogati i concetti base della struttura di un programma C#, la sintassi del linguaggio e i dettagli sull’implementazione, quindi verranno consolidate tali conoscenze attraverso la costruzione di un’applicazione che incorpora le diverse funzionalità del Framework .NET 4.5.
Il corso introduce molte delle tecniche e tecnologie impiegate dalle moderne applicazioni desktop ed enterprise, inclusi: costruzione di nuovi tipi di dati, gestione degli eventi, programmare l’interfaccia utente, accedere a un database, utilizzare dati remoti, eseguire operazioni asincrone, implementare l’integrazione con codice non gestito, creare attributi custom, crittografare e decrittografare dati.

Il corso utilizza Visual Studio 2012 in ambiente Windows 8.

Obiettivi: al termine del corso i partecipanti possiederanno una solida conoscenza di C# e saranno in grado di utilizzarla per sviluppare applicazioni .NET Framework 4.5.

Destinatari: sviluppatori software che siano in grado di comprendere i concetti di programmazione a oggetti e abbiano almeno un mese di esperienza di programmazione in C, C++, JavaScript, Objective-C, Microsoft Visual Basic o Java.

Prerequisiti: i partecipanti devono avere una conoscenza base di sviluppo software in linguaggio C#, almeno sufficiente a completare semplici attività di programmazione (operatori, cicli, costrutto IF, funzioni, connessione a un database SQL, ordinamento dati, uso di classi e metodi).

Struttura e contenuto:
•    Riepilogo della sintassi C#
•    Creazione di metodi, gestione delle eccezioni e monitoraggio di applicazioni
•    Sviluppo di codice per un’applicazione grafica
•    Creazione di classi e implementazione di collezioni type-safe
•    Creazione di una gerarchia di classi utilizzando l’ereditarietà
•    Lettura e scrittura di dati in locale
•    Accesso a un database
•    Accesso a dati remoti
•    Progettazione dell’interfaccia utente per un’applicazione grafica
•    Miglioramento delle prestazioni e della reattività delle applicazioni
•    Integrazione con codice non gestito
•    Creazione di tipi riutilizzabili e assembly
•    Crittografia e decrittografia di dati

Durata del corso: 5 giorni

SL12 Developing ASP.NET MVC 4 Web Applications (MOC 20486)

Developing ASP.NET MVC 4 Web Applications (MOC 20486)

Descrizione: Il corso illustra come sviluppare applicazioni avanzate in ASP .NET MVC utilizzando strumenti e tecnologie del Framework .NET 4.5. L’attenzione viene posta in particolare sulle attività di codifica che migliorano le prestazioni e la scalabilità delle applicazioni web. Viene introdotto ASP.NET MVC e messo a confronto con le Web Forms, in modo da consentire ai partecipanti di capire come decidere quale scelta effettuare tra i due strumenti.

Obiettivi: al termine del corso i partecipanti saranno in grado di progettare e implementare applicazioni web con ASP.NET MVC

Destinatari: programmatori di applicazioni web che usano Microsoft Visual Studio in ambienti di sviluppo di qualsiasi dimensione, persone che siano interessate a sviluppare applicazioni web di tipo avanzato.

Prerequisiti: minimo due anni di esperienza nello sviluppo di applicazioni web con Microsoft Visual Studio e Microsoft ASP.NET, competenze nell’utilizzo del Framework .NET e conoscenza base del linguaggio C#.

Durata del corso: 5 giorni

hai domande?

richiedi maggiori informazioni

Il tuo nome (richiesto)

La tua email (richiesto)

Oggetto

Il tuo messaggio

CONTATTACI



DOVE SIAMO

(+39) 06 83608417

(+39) 06 83608418

info@philmark.it

Viale Trastevere, 203 – 00153 Roma

Via Copernico, 38 – 20125 Milano

CONTATTACI

Il tuo nome (richiesto)

La tua email (richiesto)

Oggetto

Il tuo messaggio

DOVE SIAMO

(+39) 06 83608417

(+39) 06 83608418

info@philmark.it

Viale Trastevere, 203 – 00153 Roma

Via Copernico, 38 – 20125 Milano