Maggio INSIDE REPORT



Documenti analoghi
Piano di gestione della qualità


Generazione Automatica di Asserzioni da Modelli di Specifica

leaders in engineering excellence

Il service di ISC Group si distingue nel panorama della distribuzione delle macchine per la pulizia


Scopo della lezione. Informatica. Informatica - def. 1. Informatica

UN NUOVO MODELLO DI PRODUZIONE

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

Automation Solutions

TXT e-solutions. Passion for Quality. Banking&Finance

Il servizio di registrazione contabile. che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili

SAP per centralizzare tutte le informazioni aziendali

IL CASO DELL AZIENDA. Perché SAP.

JOB. JOB - Amministrazione del personale. La soluzione Sistemi per le paghe in Azienda.

Corso di Informatica

Cos è la UNI EN ISO 9001?

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

EasyCloud400. Il tuo AS/400. Come vuoi, quanto vuoi. Telecomunicazioni per l Emilia Romagna. Società del Gruppo Hera

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ

Il futuro della normazione tecnica tra legislazione, condivisione e mercato. Gian Luca Salerio Responsabile Area Normazione UNI

Sistemi informativi secondo prospettive combinate

Il cloud per la tua azienda.

Il controllo dell azienda nelle tue mani

Software - Software applicativo - Altri campi di applicazione

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE

*AGEFor. Applicativo GEstionale per le attività Formative

airis consulting Via Domenichino, Milano Tel: Fax: info@airisconsulting.it web:

POLYEDRO. La migliore piattaforma tecnologica di sempre per EMBYON, l evoluzione dell ERP Metodo

Area Marketing. Approfondimento

Anno scolastico 2015 / Piano di lavoro individuale. ITE Falcone e Borsellino. Classe: IV ITE. Insegnante: DEGASPERI EMANUELA

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Docebo: la tua piattaforma E-Learning Google Ready.

THS: un idea semplice, per un lavoro complesso.

INDICOD-ECR Istituto per le imprese di beni di consumo

I valori distintivi della nostra offerta di BPO:

La reingegnerizzazione dei processi nella Pubblica Amministrazione

Incentive & La soluzione per informatizzare e gestire il processo di. Performance Management

IDENTIFICAZIONE DEI BISOGNI DEL CLIENTE

ascoltare ispirare e motivare miglioramento problem solving Flex360 pianificare comunicare la vision organizzare

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Alla c.a. Sindaco/Presidente Segretario Generale Dirigente competente

Cloud Service Broker

LO SVILUPPO DELLE COMPETENZE PER UNA FORZA VENDITA VINCENTE

IDENTITÀ GIOVANE. Nata nel 2006 con l intento di diventare leader nel settore IT, Easytech cresce con una solida competenza in tre divisioni:

EasyMACHINERY ERPGestionaleCRM. partner

L INNOVAZIONE CHE TI SEMPLIFICA LA VITA IL TUO SITO WEB LA GESTIONE DI UN IMPRESA VENDI TRAMITE INTERNET L ARCHIVIO DEI TUOI DOCUMENTI

OFFERTA FORMATIVA INDIRIZZI DI STUDIO

Base di dati e sistemi informativi

PROGETTIAMO IL TUO FUTURO

Ridurre i rischi. Ridurre i costi. Migliorare i risultati.

Le effettive esigenze della Direzione del Personale nella gestione delle risorse umane in azienda. Andamento dal 2005 ad oggi

SISTEMA UNICO E CENTRALIZZATO

enside

Appendice III. Competenza e definizione della competenza

SVILUPPO SOFTWARE. dai una nuova energia ai tuoi piani di sviluppo software SVILUPPO SOFTWARE

Osservatorio ICT nel NonProfit. Claudio Tancini Novembre 2009

STUDIO MESSANO UFFICIO SVILUPPO NUOVE TECNOLOGIE

itime Chiaramente inclusa la stampa del cartellino presenze come previsto dalle normative

Attività federale di marketing

CREA IL CATALOGO DEI TUOI PRODOTTI SU IPAD E IPHONE CON UN APP. ANZI, CON UPP!

TEORIA DEI SISTEMI OPERATIVI

IL CENTRALINO VoIP. Schema progetto: Work-flow. Hydra Control

JOB - Amministrazione del personale. La soluzione Sistemi per il professionista delle paghe.

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

DATAMORFOSI. E la sintesi della strategia di prodotto di Webgate400.

CONTENT MANAGEMENT SYSTEM

Software per Helpdesk

Più processori uguale più velocità?

Progetto GRIIN Gestione Remota di Illuminazione in edifici INdustriali pubblici - commerciali

Gestire il rischio di processo: una possibile leva di rilancio del modello di business

REFERENZIAZIONI 2001) NUP

La valutazione dell efficienza aziendale ECONOMIA E GESTIONE DELLE IMPRESE

Voi sapete cosa vi serve, noi sappiamo come farlo. SoftRail Sistema integrato per rotabili

Chi Siamo Azienda Certificata ISO 9001:2000.

PROFILO FORMATIVO Profilo professionale e percorso formativo

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda.

La gestione dei rapporti con i fornitori è un tema cruciale per le grandi Aziende nello scenario attuale del mercato e delle sue logiche di sviluppo.

Informatica e Telecomunicazioni

SIEBEL CRM ON DEMAND MARKETING

METODO_ SOLUZIONI_ DIALOGO_ MANAGEMENT_ COMPETENZE_ ASSISTENZA_ SERVIZI_ MISSION_ TECNOLOGIE_

Mission dell Area Tecnica: Logistica ed Impiantistica

PROFILO AZIENDALE 2011

IT Cloud Service. Semplice - accessibile - sicuro - economico

PROCESSI PRODUTTIVI E LOGISTICA I.T.S.T J.F. KENNEDY - PN

I modelli di qualità come spinta allo sviluppo

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

L a p i p at a taf a or o ma a p e p r e ga g r a an a t n ire e l ef e fici c en e za za e n e e n r e ge g t e ica Powered By

Sito web per la presentazione e l accesso ai servizi di Ruven integrato con la piattaforma B2B del pacchetto software ERP Stratega.NET.

Processo parte VII. Strumenti. Maggiore integrazione. Sviluppo tecnologico

Tesi di laurea specialistica SPERIMENTAZIONI DI TECNICHE DI TESTING STATICO PER APPLICAZIONI ANDROID

Il nuovo operatore logistico. per il trasporto delle merci speciali

1- Corso di IT Strategy

Ciclo di vita dimensionale

Business Intelligence

Progettaz. e sviluppo Data Base

Servizio Monitoraggio Energia via Web. CEAM CWS32-H01 Professional Web Platform

LA GESTIONE DELLE INFORMAZIONI IN AZIENDA: LA FUNZIONE SISTEMI INFORMATIVI 173 7/001.0

SCRIVANIA DIGITALE Soluzione per la dematerializzazione dei documenti del ciclo passivo.

Le best practice nello Studio professionale

Transcript:

Maggio 2015 INSIDE REPORT Come e perché gli strumenti automatici di analisi garantiscono un software di qualità Software Code Analyzer, ovvero SCA: sintattici o, più evoluti, semantici. Sono fondamentali nel Software Lifecycle Management e giustificano il ROI. Lo confermano le aziende in una survey condotta da ICT4Executive sulla qualità del software in Italia in collaborazione con:

APP system test PHP software code analyzer SCA 3.0 software di qualità analisi statica c++ programmazione RPG testing sistemi operativi </> antivirus responsive codice sviluppo ERP business continuity firmware collaudo debugging ABAT java diagnostica compilatori SAAS HTML</> visual basic integration test RUBY driver patch management ROI android.net SQL interpreti middleware librerie technical test ADA user test browser SAP CMS ADA oberon

Sviluppo software: quali sono le nuove sfide della programmazione DAL SOFTWARE Il software è l intelligenza gestionale del business. Man mano che l informatizzazione ha permeato tutti i gangli delle organizzazioni, le esigenze si sono diversificate. Così la programmazione si è specializzata su più linguaggi e su più orizzonti di sviluppo: firmware, software di base, driver e un infinità di programmi applicativi, da quelli per la produttività individuale ai videogiochi, dai browser al client di posta, dai player audio/video alle applicazioni di messaging e di chat, dai programmi batch od on line a supporto della sicurezza a quelli per il funzionamento automatico o supportato dall automazione di procedure per il monitoraggio e il controllo di macchinari e/o dispositivi elettronici. La diversificazione delle esigenze del mercato e una domanda crescente di soluzioni sempre più personalizzate in funzione delle abitudini e dei dispositivi utilizzati (smartphone e tablet in testa), ha abituato le persone alle filosofie più pratiche del Software As a Service, on demand e pay per use e/o delle app. Tutto questo ha avuto un forte impatto sullo sviluppo applicativo, perché ha portato a un accelerazione incrementale dei tempi di produzione e di rilascio, con un proliferare di nuove soluzioni, diversificate per target e funzionalità. IN A BOX Il time to market è tiranno e alla programmazione si chiede maggiore velocità nell ideazione, nella scrittura dei codici e nella messa in produzione di qualsiasi applicazione. Nel frattempo gli sviluppatori software hanno abbracciato nuovi linguaggi e nuovi metodi di sviluppo, imparando ad avvalersi di strumenti ausiliari e automatici di vario tipo, capaci di intervenire a livello sintattico o a livello semantico durante la programmazione per intercettare errori e inefficienze e verificare così la qualità del codice rilasciato. AL MONDO DELLE APP AL SOFTWARE AS A SERVICE A P P 31 3

</ < Grazie a questi tool di analisi, detti SCA (Software Code Analyzer), è possibile monitorare e intercettare gli errori intercorsi nella scrittura dei vari codici di programmazione, garantendo così la qualità del software rilasciato. I motivi per cui sono diventati indispensabili sono legati alla rapidissima evoluzione delle tecnologie e dei mercati. cosa è cambiato e cosa sta cambiando a livello di progettazione e sviluppo applicativo </ < IERI Ieri il software abitava solo i computer industriali. L arrivo dei desktop e delle soluzioni sempre più portatili ha dato vita a un accelerazione dello sviluppo tale per cui l intelligenza informatica è diventata parte integrante di una moltitudine di dispositivi fissi e mobili, secondo un intelligenza distribuita in modalità tradizionale o in cloud, con formule di erogazione ubique e pervasive. La smartizzazione degli oggetti oggi richiede sempre nuova intelligenza di sistema, ma anche nuove vision a supporto di una progettazione capace di immaginare le applicazioni di un futuro ad alto tasso di funzionalità. OGGI LA SFIDA PER GLI SVILUPPATORI È RIUSCIRE A REALIZZARE SOFTWARE PIÙ SICURI IN TERMINI DI PERFORMANCE RESPONSIVE (capaci di conformarsi a qualsiasi tipo di schermo) COSTANTEMENTE AGGIORNATI ADATTI A TUTTI I TIPI DI SISTEMA OPERATIVI ADATTI A TUTTI I TIPI DI BROWSER ADATTI A QUALSIASI MODALITÀ DI INTERAZIONE: TASTIERA, MOUSE, PENNA, MODALITÀ TOUCH SCREEN, MOTION CAPTURE, INTERAZIONI BIOMETRICHE 4 SVILUPPATI IN MODALITÀ COLLABORATIVA E IN TEMPI MOLTO PIÙ RAPIDI

? LE DIFFERENZE SW di qualità: l importanza degli strumenti automatici di verifica e di testing G li SCA sono progettati per funzionare in modo automatico, introducendo proattività nello sviluppo per accelerare tempi di collaudo e risoluzioni degli errori, giocando d anticipo rispetto all individuazione di potenziali problemi di performance, difetti del software o vulnerabilità del codice. La programmazione del software, infatti, consiste nella scrittura progressiva dei codici corrispondenti alle varie funzionalità di comando a cui mira l ingegnerizzazione dello sviluppo. La procedura viene svolta manualmente e, indipendentemente dello stile e del linguaggio utilizzato dal programmatore, il risultato ha sempre dei margini di errore. Sono questi errori di programmazione a generare malfunzionamenti del software, per cui il sistema o non fa quello che l utente si aspetta, o manifesta difetti (in inglese: bug). SCA STATICA DI TIPO SINTATTICO Gli analizzatori statici di tipo sintattico si limitano a controllare l aderenza a certi schemi o pattern sintattici di scrittura del codice che statisticamente escludono la presenza di alcuni errori., dunque, non effettuano molte o nessuna verifica di correttezza semantica del codice, cioè non coprono l attività di debugging. SCA STATICA DI TIPO SEMANTICO Gli SCA 3.0 sono analizzatori statici di tipo semantico basati su algoritmi più sofisticati. Usando l Intelligenza artificiale, effettuano un analisi di tipo organico dell intero codice. La scansione del codice compilato, infatti, viene verificata in modo integrale, consentendo così di mapparne la correttezza in modo scientifico, aiutando a risolvere anche il debugging. DRIVER ERP MIDDLEWARE INTERPRETI qualità del software significa business continuity CONTENT MANAGEMENT SYSTEM SOFTWARE DI SYSTEM MANAGEMENT SISTEMI OPERATIVI ANTIVIRUS COMPILATORI ENTERPRISE APP È per ovviare a questi problemi che nel ciclo di sviluppo del software diverse fasi della programmazione includono test e collaudi allo scopo di rilevare i difetti e intercettare i malfunzionamenti, riducendo così la probabilità di errori in fase di rilascio. Nessun collaudo, però, porta a zero tale probabilità: le possibili combinazioni di valori di input validi sono infinite, e non possono essere riprodotte in un tempo ragionevole. Ecco perché gli SCA sono indispensabili e, garantendo massimo ritorno dell investimento (ROI - Return of Investment). SOFTWARE DI DIAGNOSTICA FIRMWARE PROGRAMMI APPLICATIVI APP LIBRERIE Nella compilazione del codice la quantità di comandi da inputare è enorme: per questo motivo nel ciclo dello sviluppo test e collaudi sono momenti fondamentali per assicurare la qualità dei risultati. Questi difetti possono risultare bloccanti per l applicazione, oppure possono comportare notevoli inefficienze: nei tempi di esecuzione nel consumo di risorse nel grado di manutenibilità della soluzione Un programma, infatti, può essere sintatticamente corretto ma avere degli errori di stile rispetto alle raccomandazioni e alle best practice di programmazione. BROWSER 5

Sca nel software lifecycle management Nello sviluppo di un software utilizzare gli SCA, ovvero gli strumenti di analisi statica, consente di velocizzare a vari livelli la diagnostica in fase di codifica, di test e nelle fasi successive legate alla gestione delle patch e degli aggiornamenti. La valenza degli SCA è strategica anche rispetto al tema della sicurezza: gli hacker, infatti, è principalmente sui difetti e sui malfunzionamenti di un programma che costruiscono i loro attacchi. Garantendo la qualità dello sviluppo, gli strumenti automatici di analisi non solo aumentano l efficienza del processo di programmazione e la gratificazione degli utilizzatori, ma contribuiscono anche a garantire l invulnerabilità del software e quindi la reputazione dell azienda che rilascia la soluzione. Anticipare l uso di uno SCA nel SLM, dunque, consente di snellire i processi, abbattere i costi di debugging e ottenere software più sicuri, funzionali, utilizzabili, disponibili, efficienti, manutenibili e portabili. 6

Software di qualità: un analisi dello sviluppo applicativo in Italia Che si tratti di aziende operanti nel settore metalmeccanico, chimico, finanziario, edile, bancario, GDO e retail, logistica e trasporti, in Italia oltre il 60% delle aziende ha al suo interno una figura se non addirittura un team preposto al controllo qualità del software. I motivi sono diversi, anche se il driver principale per oltre la metà delle aziende sono senz altro le certificazioni (ISO in primis), che contribuiscono non solo a introdurre adeguate metriche di controllo ma anche ad avvalorare il risultato della produzione agli occhi degli utilizzatori finali. LE OPZIONI Delle aziende end user è il 58% ad avere una figura o addirittura un area preposta al controllo qualità del software mentre i partner del canale arrivano al 65%. Il controllo di qualità risulta un asset importantissimo della programmazione.? Oggi sul mercato esistono vari strumenti di analisi statica del software: alcuni effettuano un analisi del codice sorgente mentre altri analizzano il codice compilato. Le soluzioni più avanzate permettono anche modalità di personalizzazione, consentendo la costruzione di nuove analisi. A livello di fruizione è possibile scegliere anche tra soluzioni utilizzabili tramite server aziendale in modalità condivisa tra più utenti o soluzioni in cloud. Per tutte le organizzazioni i controlli sono ripartiti sulle tre aree chiave dello sviluppo: vulnerabilità, performance e attività di debugging, ovvero su tutta quella serie di attività legate all intercettazione e alla risoluzione dei bug rilevati nella compilazione delle sequenze dei vari codici di comando. 7

Java e Android in Italia Dalla survey emerge come oltre tre quarti delle aziende italiane intervistate sviluppi in Java e Android. Segue una percentuale più ridotta che continua a utilizzare linguaggi più antichi legati alle attività di supporto e manutenzione dei sistemi legacy come RPG o C++, e un altra piccola parte legata allo sviluppo di linguaggi nelle varianti PHP, Abat, Sap e.net. i vantaggi nell uso di strumenti ausiliari e automatici per l analisi e la verifica Tutte le aziende concordano nell affermare che, grazie al controllo qualità e all utilizzo di strumenti ausiliari a supporto delle analisi e delle verifiche del software, hanno ottenuto un elevato miglioramento della qualità del software sviluppato e una riduzione dei tempi di debugging. Tra gli strumenti per l analisi statica più utilizzati dagli end user figurano Coverity, SonarQube, FindBugs, Klocwork, PMD e Checkstyle, mentre Fortify, FindBugs, SonarQube, Cast e Julia sono quelli più usati dal canale. La survey rivela come gli strumenti che vanno per la maggiore sono ancora quelli orientati a un pattern matching sintattico più che quelli di ultima generazione come Julia, incentrati su un analisi semantica, capaci di effettuare un debugging fattivo e completo. Il livello evolutivo degli SCA utilizzati in Italia, insomma, non arriva a sfruttare quell intelligenza artificiale che consente di ragionare sull ordine di esecuzione delle istruzioni del codice compilato, concentrandosi più su ragionamenti locali alla singola istruzione. 8

JULIA LO SCA 3.0 CHE GARANTISCE LA QUALITÀ DELLA PROGRAMMAZIONE JAVA E ANDROID SCA 3.0 SOFTWARE DI QUALITÀ Julia è l unico analizzatore riconosciuto a livello internazionale che al termine della diagnosi certifica l assenza di possibili errori. Il suo essere uno SCA 3.0 lo rende una soluzione unica, includendo il più potente verificatore di errori di puntatore a null (NullPointerException) e un verificatore di terminazione per programmi reali, con modalità di controllo continuamente potenziate. La soluzione si compone di un insieme moduli di analisi, detti checker. Ogni checker è dedicato alla verifica di una particolare vulnerabilità del software. I checker sono tra loro indipendenti e possono essere liberamente inclusi nell analisi. Ogni checker produce diversi tipi di segnalazioni, dette warning. I warning segnalano diverse criticità legate all analisi specifica del checker e sono classificati in tre classi principali: Bug - errori nel codice che possono avere un impatto molto serio a tempo di esecuzione: per esempio, potrebbero dare origine a NullPointerException, ClassCastException, grosse imprecisioni nei dati o anche cicli infiniti. Julia è analizzatore statico semantico, completamente automatico. SCA 3.0 basato sulla teoria scientifica dell interpretazione astratta, utilizza tecniche di intelligenza artificiale per interpretare il codice compilato e può essere utilizzato on premise o in cloud Efficiency - soluzioni adottate nel codice che potrebbero influenzare negativamente l efficienza del programma; per esempio, potrebbero rendere il programma difficile da mantenere, portare il tempo di esecuzione ad essere inutilmente elevato o generare un uso eccessivo di risorse di sistema. Style - parti di codice che non seguono le convenzioni Java; per esempio nell uso di keywords, nei nomi delle keywords e delle variabili e nella sintassi degli identificatori definiti dall utente. IL PARTNER Julia è una società software fondata nel 2010 come spin-off dell'università di Verona. La sua mission è la produzione di strumenti e l erogazione di servizi per la verifica formale ed automatica di programmi informatici, tramite l utilizzo dell interpretazione astratta, una teoria matematica per l analisi statica del software. Julia ha collaborato e collabora con il mondo nazionale e internazionale delle Università, U.S. AIR Force, gruppi assicurativi e bancari multinazionali, contribuendo a realizzare numerosi progetti di analisi statica e verifica software. Inoltre, ha ottenuto premi e riconoscimenti a livello nazionale ed internazionale vincendo, tra gli altri, il Java Bytecode Recursive Contest e il Java Non-Recursive Contest della Termination Competion (U.S.A.). www.juliasoft.com

INSIDE REPORT Maggio 2015 ICT4executive www.ict4executive.it QUALITÀ in collaborazione con: