quality software development lifecycle
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
1
QualitySoftware 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
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
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
Le Nostre Sedi
Roma
Cagliari
Napoli
Catanzaro
Sede LegaleVia dell’Archivio di Stato,
1500144 Roma
Q-SDLC
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
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
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
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
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
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à
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
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
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
Dashboard Sonar con visione d'insieme della qualità espressa dai progetti gestiti
Q-SDLC
Q-SDLC – Concetti e Standard
Technical Debt
Continuous
Inspection
Quality Gates
Strategy & Metrics
Education &
Guidance
Agile Testing
Security "by design"
OWASP
SAMM
Q-SDLC
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
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
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
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
21
Grazie per l’attenzione
ContattiWeb: www.consulthink.itMail: [email protected]:+39-06 4549 2416Fax:+39-06 4549 2454