quality software development lifecycle

21
1 Quality Software Development LifeCycle

Upload: consulthinkspa

Post on 16-Jan-2015

431 views

Category:

Education


4 download

DESCRIPTION

Breve seminario tenuto da Pasquale Camastra Responsabile Consulthink della BU Sviluppo Software e Qualità (it.linkedin.com/in/pasqualecamastra) su un metodo da adottare per lo sviluppo di Software di Qualità da applicare ad approcci, tecniche e contesti diversi.

TRANSCRIPT

Page 1: Quality Software Development LifeCycle

1

QualitySoftware Development

LifeCycle

Page 2: Quality Software Development LifeCycle

La visione Consulthink per un metodo

unico per lo sviluppo di Software di

Qualità da applicare ad approcci,

tecniche e contesti diversi.

Abstract

Q-SDLC

Page 3: Quality Software Development LifeCycle

Pasquale Camastra

Responsabile Consulthink dellaBU Sviluppo Software e Qualità

Relatore

• LinkedIn: it.linkedin.com/in/pasqualecamastra• Blog: www.tecnosfizi.com• Google+: https://

plus.google.com/115352426540657562170

Q-SDLC

Page 4: Quality Software Development LifeCycle

La Società

Una ICT company, certificata ISO9001 e ISO27001, specializzata nella progettazione ed implementazione di soluzioni complesse in ambito sviluppo, sicurezza & networking, nonchè servizi di consulenza in ambito formazione

Fondata nel 2004

In continua e costante espansione in termini di fatturato e numero di dipendenti

Operante nei settori della Pubblica Amministrazione e degli operatori di Telecomunicazioni.

Q-SDLC

Page 5: Quality Software Development LifeCycle

Le Nostre Sedi

Roma

Cagliari

Napoli

Catanzaro

Sede LegaleVia dell’Archivio di Stato,

1500144 Roma

Q-SDLC

Page 6: Quality Software Development LifeCycle

Skill Development

Application Development

Technology Integration

Security

Natural Language Interpretation

Speech to Text Translation

Augmented Reality

Georeferenced Applications

Predictive Analytics

Virtual Assistants

NFC Technology

Web 2.0 & 3.0

Semantic

Mobile Security

Enterprise Search Engines

Social Network

La BU R&D, nella quale viene investito circa il 10% del fatturato, collabora attivamente con diverse Università a livello nazionale ed internazionale allo scopo di consentire a Consulthink di essere costantemente attiva sulle evoluzioni delle tecnologie più innovative.

Company Offering ed R&D

Q-SDLC

Page 7: Quality Software Development LifeCycle

Enterprise Application Development

Consulthink è in grado di sviluppare rapidamente Applicazioni di tipo Enterprise basandosi sulla profonda comprensione delle esigenze dei propri clienti, utilizzando tecnologie collaudate come Java, .Net, Oracle e Software Open Source.

Allo scopo di migliorare sempre di più i prodotti ed i servizi forniti, vengono utilizzate architetture software industriali standard, basate sul modello SOA, adottando metodologie innovative quali Agile e Extreme Programming e Suite di Project Management altamente customizzabili e fortemente orientate verso prodotti di collaboration e social interaction.

La società, essendo continuamente coinvolta in tematiche all’avanguardia, quali ad esempio gli Open Data la Semantica, ha acquisito l’esperienza necessaria per approcciare agevolmente progetti avanzati ed fortemente innovativi

Technology Integration

Security

SkillsManagement

Application Development

Q-SDLC

Page 8: Quality Software Development LifeCycle

Technology Integration

Security

SkillsManagement

Application Development

La Sicurezza

Consulthink gestisce la Security Governance con un approccio globale che combina competenze tecnologiche e di processo per:

Progettare, implementare e gestire soluzioni per la sicurezza delle infrastrutture, dei sistemi e delle reti.

Fornire servizi altamente specializzati che vanno dalla valutazione di conformità (Compliance) ai Penetration Test ed ai Vulnerability Assessment, sia in infrastrutture classiche che in infrastrutture di tipo Mobile

Fornire e gestire soluzioni complete per la sicurezza dei dati (Database Firewall, WAF, encryption/obfuscation, ecc.), Forensic, Network Security, Event Management

Q-SDLC

Page 9: Quality Software Development LifeCycle

Technology Integration

Security

SkillsManagement

Application Development

Eucip services

Consulthink è accreditata come EUCIP (European Certification of Informatics Professionals), Business Competence Center di AICA, distributore esclusivo di questo framework in Italia. Misurare, valutare e sviluppare ulteriormente le competenze professionali sono i principali obiettivi in questo settore mediante valutazione, certificazione e formazione

Oltre alla qualificazione ed alla certificazione delle competenze, Consulthink è in grado di erogare corsi di formazione progettati su misura per soddisfare specifiche richieste, nel contesto ICT, quali:• Application Development• Security• Networking

Q-SDLC

Page 10: Quality Software Development LifeCycle

Qualità del Software

Si concretizza tipicamente con:

Regole per l’analisi e la progettazione del software e della

base dati

Regole di programmazione e scrittura del codice

Regole per il testing

Regole di utilizzo di un repository e di un software per il

versioning dei rilasci

Verificata in genere attraverso Audit puntuali e test da "ultimo

miglio"

“L’insieme delle caratteristiche che incidono sulla capacità di un

prodotto Software di soddisfare requisiti espliciti od impliciti”

(ISO 9126)

Q-SDLC

Page 11: Quality Software Development LifeCycle

Strumenti per definire e controllare la qualità

Criteri di valutazione del Software:

Visione dell’utente (problemi d’uso)

Visione dello sviluppatore (problemi tecnici)

Visione della direzione (problemi di costi)

Q-SDLC

Necessario un solo modello

per Cliente e Fornitore, per

uniformare la percezione e la

valutazione della qualità

Page 12: Quality Software Development LifeCycle

Q - SDLC: La visione ConsulthinkQualità: Pianificata Insegnata Sviluppata Misurata

REQUIREMENTS& USE CASE

ARCHITECTURE& DESIGN

TEST PLANCODE TEST

& TEST RESULTSDEPLOY

& FEEDBACK

Project Management Development Operations

• Best Practices• Security Requirements• Risk Analisys• Metrics• Risk Based Security Tests

• Continuous Integration• Code Inspection• Code Coverage• Multidimensional Analisys• Unit Tests• Risk Analisys

• Function Tests• Penetration Tests• Security Operations• Security &

Development Issues

Q-SDLC

Page 13: Quality Software Development LifeCycle

Strumento di gestione Qualità del SoftwareL'attuazione coordinata del Ciclo di Qualità del software fornisce potenti strumenti di controllo:

Per lo SviluppatoreAuto-Assessment e valutazione del Technical Debt in riferimento a:

Per il ManagementOverview costante della Complessità dei progetti attraverso l’utilizzo di Metriche Standard:• Size• Tests• Duplication• Design• Rules

Best Practices• Flessibilità• Solidità• Mobilità• Fluidità• Trasparenza

Bad Smells• Rigidità• Fragilità• Immobilità• Viscosità• Opacità

Q-SDLC

Page 14: Quality Software Development LifeCycle

Q-SDLC - Strumenti

GIT/SVN – Software Versioning

Maven – Software Packaging

Jenkins – Continuous Integration & Testing

Sonar Qube– Code Inspection

Atlassian Agile Suite– Project & Process Management

Selenium/iMacros – GUI Automatic Test

Q-SDLC

Page 15: Quality Software Development LifeCycle

Dashboard Sonar con visione d'insieme della qualità espressa dai progetti gestiti

Q-SDLC

Page 16: Quality Software Development LifeCycle

Q-SDLC – Concetti e Standard

Technical Debt

Continuous

Inspection

Quality Gates

Strategy & Metrics

Education &

Guidance

Agile Testing

Security "by design"

OWASP

SAMM

Q-SDLC

Page 17: Quality Software Development LifeCycle

DevOps - I "Facilitatori" della Qualità

DevOps (da development + operations) è una

metodologia di sviluppo del software che punta

alla comunicazione, collaborazione e integrazione

tra sviluppatori e operatori dell'Information

Technology, attraverso l'introduzione di una

relazione più collaborativa tra gruppi di sviluppo ed

operation.Tale metodologia culmina con l'introduzione della figura del Coordinatore

del Rilascio (anche indicato come Coordinatore d'Integrazione), ruolo

simile a quello di un controllore di volo che deve coordinare in tempo

reale attività di diversi gruppi per raggiungere un obiettivo

(atterraggi e decolli in sicurezza) usando risorse condivise (spazio aereo,

sentieri di volo, piste e terminali).

Da non confondere con la gestione del rilascio, che è focalizzata sulla

pianificazione delle modifiche al software in ottica di produzione.

Fonte WikipediaQ-SDLC

Page 18: Quality Software Development LifeCycle

I "COSTI" della Qualità

"Non c'è mai tempo per fare le cose bene, ma c'è sempre tempo

per rifarle"

Il processo di Qualità del Software presuppone un forte (e convinto)

commitment del management, poiché comporta voci di "costo" aggiuntive

per attuazione e mantenimento della Qualità:• Tempi di analisi e progettazione per includere "a monte" metriche di

qualità e regole di controllo.

• Predisposizione e manutenzione degli strumenti a supporto

• Aggiornamento periodico delle metriche e delle regole applicate (es.

OWASP)

• Adeguamento periodico dei Pattern di Sicurezza (nuove vulnerabilità)

• Formazione ed aggiornamento periodico delle risorse coinvolte sull'uso

degli strumenti e le nuove regole

Q-SDLC

Page 19: Quality Software Development LifeCycle

Q-SDLC – L'offerta

Fornitura, supporto, formazione e coaching su Strumenti e Metriche, ad

un’azienda o  un’organizzazione, per l’implementazione di una Software

Factory interna che conosca ed applichi una "visione d'insieme" della Qualità

del Software, attraverso l'introduzione di Strumenti di Controllo, Pattern e

Best Practice di Gestione dei Progetti Software, Sviluppo Sicuro e Testing,

secondo l’ottica DevOps.• Formazione e coaching su regole per l’analisi e la progettazione del software

• Formazione e coaching di regole per la scrittura del codice sicuro

• Formazione e coaching sull’utilizzo di architetture e framework di

riferimento

• Formazione e coaching sul Test Management

• Formazione e coaching sulla filosofia DevOps

• Configurazione e consegna “chiavi in mano” di un ambiente integrato Q-

SDLC

Per chi deve far partire la propria software factory ex-novo e soprattutto per

chi deve trasformare il proprio settore software, per migliorarne il rendimento

qualitativoQ-SDLC

Page 20: Quality Software Development LifeCycle

Bibliografia ed Approfondimenti

OWASP • CORE: https://www.owasp.org• SSDLC: https://

www.owasp.org/index.php/Secure_SDLC_Cheat_Sheet• SAMM: http://www.opensamm.org

SonarQube: http://www.sonarqube.org

DevOps: http://devops.com/

Q-SDLC

Page 21: Quality Software Development LifeCycle

21

Grazie per l’attenzione

ContattiWeb: www.consulthink.itMail: [email protected]:+39-06 4549 2416Fax:+39-06 4549 2454