Application Lifecycle Management. Software Configuration. Fabrizio Morando Application Development Manger Microsoft Italia



Похожие документы
Riccardo Sponza Technical Evangelism Manager Microsoft Italia

Virtualizzazione con Microsoft Tecnologie e Licensing

Alessandro Huber Chief Technology Officer, Microsoft Italia Claudia Angelelli Service Line Manager, Microsoft Italia

Gestione dell accesso alla rete con Network Access Protection

Cogliere le opportunità offerte dalla Mobility. Claudia Bonatti, Direttore Divisione Windows Microsoft Italia

Small Software Factories

Strumenti per la gestione della configurazione del software

DRUPAL CONTINUOUS INTEGRATION. Parte I - Introduzione

Ciclo di vita dimensionale

Il modello di ottimizzazione SAM

Concetti di base di ingegneria del software

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

Test e collaudo del software Continuous Integration and Testing

Professional Planner 2011

PRODUCT LIFECYCLE MANAGEMENT

SACE BT realizza su tecnologia Microsoft la piattaforma di gestione delle polizze

Big Data e IT Strategy

Docebo: la tua piattaforma E-Learning Google Ready.

Professional Planner 2008

Configuration Management

Identificare come i vari elementi dei Microsoft Dynamics CRM possono essere utilizzati per le relazioni con i clienti

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda

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

ALLINEARSI: IL DRIVER PER UNA INNOVAZIONE DI SUCCESSO!

Implementing a new ADT based on the HL7 version 3 RIM. Esempio

lem logic enterprise manager

Visual Studio 2008: rapido, flessibile, efficiente

Il cloud per la tua azienda.

Corso di Amministrazione di Sistema Parte I ITIL 2

Project Management. Modulo: Introduzione. prof. ing. Guido Guizzi

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

EXPLOit Content Management Data Base per documenti SGML/XML

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

Rational Unified Process Introduzione

Database. Si ringrazia Marco Bertini per le slides

Act: : un caso di gestione della conoscenza di processo. Tiziano Bertagna Responsabile SOX Office, RAS Group

La strada per sviluppare più rapidamente: Unit Test & Continuous Integration

IL PESO DELLE CAPACITA NELL ESERCIZIO DELLE COMPETENZE DISTINTIVE

Sicurezza e Gestione delle Reti (di telecomunicazioni)

Alma Mater Studiorum Università di Bologna. Controllo di versione. S. Golovchenko (UNIBO) INGEGNERIA DEI SISTEMI SOFTWARE / 18

La Sicurezza oggi Cause, Trend, Tattiche e.. Soluzioni Carlo Mauceli Chief technology Officer Microsoft Italia

Introduzione alla Virtualizzazione

La soluzione IBM per la Busines Analytics Luca Dalla Villa

DUCKMA SRL BACKEND DEVELOPER

Sistemi informativi secondo prospettive combinate

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ

MODULO 5 Appunti ACCESS - Basi di dati

Presentazione aziendale. soluzioni, servizi, consulenza

Progettazione dei Sistemi di Produzione

La migliore soluzione per la sicurezza documentale

Change Management. Obiettivi. Definizioni. Responsabilità. Attività. Input. Funzioni

WorkFLow (Gestione del flusso pratiche)

CORSO BUSINESS CONTINUITY AND DISASTER RECOVERY MANAGEMENT LE 10 PROFESSIONAL PRACTICES

Basi di Dati e Microsoft Access

Strutturazione logica dei dati: i file

Università degli studi di Salerno Corso di Ingegneria del Software 2. Sesa Maintenance - Project Thesis

I NUOVI MODELLI ORGANIZZATIVI E TECNOLOGICI A SUPPORTO DELL EFFICIENZA AZIENDALE

Policy sulla Gestione delle Informazioni

IL PERFORMANCE MANAGEMENT

EVMS (Earned Value Management System) impatti organizzativi della sua implementazione CARLO GAVAZZI SPACE

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

Le possibili sinergie della Direzione e della AQ orientate alla Buona Gestione del C.d.S.

UML e (R)UP (an overview)

Scrum. Caratteristiche, Punti di forza, Limiti. versione del tutorial: Pag. 1

Overview SAP Workflow. ECORA Srl - Massimo Rastaldi m.rastaldi@eco-ra.it Cell

Corso di Amministrazione di Sistema Parte I ITIL 1

Visual basic base Lezione 01. L'ambiente di sviluppo

Componenti, ruolo e integrazione dei sistemi per le aziende industriali che operano per commessa

SQL Server Introduzione all uso di SQL Server e utilizzo delle opzioni Olap. Dutto Riccardo - SQL Server 2005.

L o. Walter Ambu japs: una soluzione agile (

Che cos'è il cloud computing? e cosa può fare per la mia azienda

Indice. Indice Premessa e scopo del documento Ambiente operativo Architettura di sistema... 5

Generazione Automatica di Asserzioni da Modelli di Specifica

IL PLM (Product Lifecycle Management) Dalla produzione alla vendita attraverso la gestione documentale

I I SISTEMI INFORMATIVI INTEGRATI. Baan IV IV - Enterprise e Orgware NOTE

Simple & Efficient.

Microsoft. Partner Program. Mariano Fiorito Direttore Gruppo Partner

Ambiti Contestuale, Tecnico e Comportamentale

Tale attività non è descritta in questa dispensa

Dispensa di database Access

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

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

Software per la pianificazione finanziaria

Транскрипт:

Application Lifecycle Management Software Configuration Fabrizio Morando Application Development Manger Microsoft Italia

Application Lifecycle Management Ottimizzazione e gestione del ciclo di vita del software Do your systems talk business? 2

Cosa significa Application Lifecycle Management? Il coordinamento della attivita del Ciclo di Vita dello Sviluppo software come: la gestione dei requisiti, la creazione di modelli, lo sviluppo di codice, la build del software, il test dei prodotti. Do your systems talk business? 3

Cosa significa Application Lifecycle Management? Coordinamento attivita possibile attraverso: 1) Un processo che le guidi. Do your systems talk business? 4

Cosa significa Application Lifecycle Management? Coordinamento attivita possibile attraverso: 2) La gestione delle relazioni tra gli attori e gli artefatti di sviluppo prodotti. Do your systems talk business? 5

Cosa significa Application Lifecycle Management? Coordinamento attivita possibile attraverso: 3) Un real-time reporting sui progressi di tali attivita. Do your systems talk business? 6

Persone, Processi e Strumenti Individui Team Organizzazioni Aumento della complessita Orientamento alla Qualita Cultura dell Innovazione Collaborazione Transparenza Integrazione Chiarezza Allineamento Efficienza Integrazione Collaborazione Semplicita Estensibilita Do your systems talk business? 7

Fondamentali dello sviluppo software Collaborazione Predicibilita Processi Qualita Reportistica Testing Do your systems talk business? 8

AREE DI ALM Software Testers & Developers Dev Leads & Developers Issue Managers & Project Managers Configuration & Project Managers Build Managers & Developers Do your systems talk business? 9

Application Lifecycle Management Software Configuration Management Do your systems talk business? 10

Parallel Development Ogni progetto software, qualunque dimensione di team o complessità del sistema questi comporti, richiederà invariabilmente degli effort per condurre parte degli sviluppi in parallelo E necessario sviluppare e mantenere release multiple, o supportare differenti piattaforme. La pratica del Parallel Development aiuta ad incrementare sensibilmente la produttività e il coordinamento del team di sviluppo La domanda non dovrebbe dunque discutere se abilitare una metodologia di parallel development, ma come abilitarla. Do your systems talk business? 11

Sviluppi paralleli usando le branch Il Branching è una tecnica diffusa utilizzata in molti applicativi di version control (VC) per gestire lo sviluppo parallelo. Nella sua forma più semplice, il branching consente lo sviluppo in più di un percorso per uno specific file o gruppo di files Serial Development per il file prog.c Quando viene creata una branch, il contenuto della linea di codice che funge da branchpoint è lo stesso della prima versione della sua branch appena creata. Da quel momento, le due line di sviluppo avranno contenuto differente ed evolveranno in modo separato e isolato l una dall altra. Nuova Branch per il file prog.c Do your systems talk business? 12

Sincronizzazione di linee di sviluppo parallele utilizzando il Merge Il Merging è l azione con cui viene sincronizzato il contenuto di una linea di sviluppo con un altra. Quando si effettua il merging da una child branch verso la sua parent branch, il contenuto dell ultima versione della child viene riconciliato con il contenuto dell ultima versione della parent branch Merge nella parent branch per il file prog.c I contenuti dei due file vengono riuniti in una nuova revisione che risolve opportunamente gli eventuali conflitti tra le due linee di sviluppo venutisi a creare dal momento del branchpoint Do your systems talk business? 13

Branches e Codelines In generale, quando una branch corrisponde a una linea di sviluppo che contiene (o dovrà contenere) più set di modifiche, possiamo definire questa branch come codeline. In teoria, i termini branch e codeline possono essere usati come sinonimi, anche se piu correttamente dovremmo pensare alla codeline come al concetto e alla branch come la sua implementazione. Do your systems talk business? 14

Merging, Propagating, e Syncing Merging è il processo di integrazione delle revisioni di una codeline in un altra determinata codeline. Per esempio un bug fix in una codeline di maintenance potrebbe risultare necessaria nella corrispondente codeline di sviluppo, per poi generare la successiva release-branch. Questo meccanismo è definito change-propagation, o semplicemente Propagation. Quando l intero contenuto di una codeline viene integrato in un altra codeline, o nel workspace degli sviluppatori, questo tipo di attività di merging viene definito syncing with the codeline, o semplicemente syncing. Do your systems talk business? 15

Version Tree Diagrams Nel disegnare codelines, branches, change-tasks, e le relazioni tra di essi, si utilizza una struttura ad albero con nomi di branch in rettangoli e nomi di versione in cerchi ( box o circles senza nomi interni sono considerati anonimi). Branch e Codelines sono rappresentate con linea continua, laddove merge e propagations sono rappresentate con linee tratteggiate. Nuova Branch per il file prog.c Do your systems talk business? 16

Mainline Model Identificando il concetto di codeline partendo dalla definizione di linea di codice come un insieme di files di codice sorgente necessari per produrre il software in oggetto, vorremmo introdurre uno dei modelli più efficaci e allo stesso tempo di più semplice Il Mainline Model parte infatti dal concetto di Mainline come linea di codice principale, alla quale giungono tutte le modifiche effettuate, e dalla quale si diramano tutte le altre codelines, ognuna con il suo proprio obbiettivo e proposito di evoluzione. Do your systems talk business? 17

Mainline In un mondo ideale non ci sono bugs, non ci sono vincoli temporali, lo scheduling non viene mai disatteso, ogni release contiene features che funzionano perfettamente, gli utenti finali effettuano tutti contemporaneamente l upgrade alla nuova versione. Nel mondo ideale ad ogni fase di sviluppo corrisponde una precisa release, che sarà l unica realtà del nostro prodotto durante tutta la fase di sviluppo della release successiva, e così via. In un mondo ideale non avremmo bisogno di tecniche di SCM, sarebbe sufficiente una sola linea di codice, la nostra Mainline. Do your systems talk business? 18

Parallel Codelines Nel mondo reale però ci si deve scontrare con differenti realtà. Dobbiamo tenere presente che una release può richiedere manutenzione successiva al rilascio, bugfixing, e spesso le tempistiche di rilascio possono sovrapporsi all inizio di una nuova fase di sviluppo. E quindi evidente la necessità di congelare una determinata versione del prodotto, ed eventualmente lavorare ed evolvere il prodotto stesso, o alcune parti di esso, in maniera isolata rispetto ai nuovi sviluppi in corso d opera. Nel nostro modello, utilizziamo due tipologie di Codelines: Release Codelines Developement Codelines Do your systems talk business? 19

Release Codelines La prima evidenza è quindi rappresentata dall introduzione di nuove branches ai fini del rilascio. Queste si definiscono appunto Release Codelines. In questo modo, effettuando una branch completa della mainline di codice sorgente, e possibile parallelizzare le attività della nuova fase di sviluppo con le attività di stabilizzazione della versione in fase di rilascio. Un altra evidenza è data dalla possibilità di intervenire in bugfixing sul codice già rilasciato, lavorando sulla release codeline opportuna, senza impattare sugli sviluppi in corso sulla mainline. Do your systems talk business? 20

Development Codelines L esigenza di poter isolare gli sviluppi e le modifiche su codeline differenti introduce invece il concetto di Development Codelines. E possibile in questo modo lavorare su differenti parti del sistema in modo isolato, garantendo la consistenza della mainline, sulla quale vengono integrate le codelines di sviluppo giunte a code complete. Questa metodologia rende possibili gli sviluppi di singole features restano svincolati tra loro, quindi cicli di test e stabilizzazione sovrapposti e più ravvicinati, e consente anche il rilascio più frequente delle preview del prodotto con le features già disponibili Do your systems talk business? 21

Il flusso delle modifiche lo scopo primario della mainline è quello di contenere codice sufficientemente completo per il ciclo di stabilizzazione, per cui il suo grado di stabilità è necessariamente vincolato dalla stabilità introdotta dalle codelines di sviluppo integrate. Le modifiche fluiscono continuamente dalle release codelines nella mainline. Ogni qualvolta che viene corretto un bug in un release codeline, la modifica viene integrata nella mainline. Questo non compromette la mainline, in quanto le bugfix introdotte nelle release codelines sono già testate Do your systems talk business? 22

Il flusso delle modifiche (2) Le release codelines non vengono mai integrate dalla mainline. Questo per il motivo di stabilità e criticità della release codeline stessa C è un flusso costante di modifiche anche tra Mainline e Development Codelines. A doppio senso, in questo caso. Una Development Codeline è fortemente instabile e gran parte del tempo della sua vita potrebbe anche non essere build-abile. Per questo motivo, il flusso contrario di integrazione, dalla Development alla Mainline, dovrebbe invece avvenire solo al completamento dello sviluppo e stabilizzazione della feature sulla Development Codeline. Do your systems talk business? 23

BRANCHING STRATEGY SAMPLE Branch Branch Branch Branch RI FI RI RI RI Branch DEV FT3 V2.0 FT3 (start) V2.0 FT3 8 The DEV branches are created to isolate feature development. V2.0 FT2 (start) V2.0 FT2 DEV FT2 6 DEV FT1 V2.0 FT1 (start) V2.0 FT1 4 Using MAIN as an integration codeline, with test/production ready integrated artifacts. V1.0 V2.0 FT1 V2.0 Golden MAIN 1 2 2 2 3 5 9 V1.0 VSS V1.0 (Release) V1.0.1 V2.0 (RTM) (Initial base) PRODUCTION 7 V1.0.1 (hotfix) Do your systems talk business? 24

RI Branch RI Branch STABILIZING E ON-THE-FLY CR MANAGEMENT BRANCHING STRATEGY. Automatred non regression TEST execution + V2.0 FT 4 specific tests Bugfix 2.0.1 Bugfix 2.0.2 Bugfix 2.0.3 V2.0 (RTM) V 2.0 (PROD) 3 MAIN V2.0 (Release Candidate) 1 V2.0 Golden 4 DEV FT 4 2 V2.0 FT 4 Do your systems talk business? 25

Application Lifecycle Management SCM con Team Foundation Server Do your systems talk business? 26

Visual Studio 2010 Do your systems talk business? 27

IntelliTrace UML Modeling Architecture Explorer Logical Class Designer Load Testing UI Test Automation Performance Profiling Code Coverage Database Change Mgmt Database Unit Testing Silverlight Tools SharePoint Development Web Development Generate from Usage New WPF Editor Test and Lab Manager Test Case Management Manual Testing Test Record & Playback Layer Diagram Web Testing Test Impact Analysis Static Code Analysis Code Metrics Database Deployment Test Data Generation Multi-core Development Cloud Development Windows Development Office Development Customizable IDE Do your systems talk business? 28

Team Foundation Server Team Foundation Server At a Glance Process Focused Process Templates SharePoint Customizable Version Control Integrated Check-in Check-in Policies Shelving Work Item Tracking Manage work Bugs, Tasks, Requirements, Stories, Risks, etc. Very Extensible Build Automation Continuous Integration Scheduled Ad Hoc Reporting Decision Support Track Project Progress Do your systems talk business? 29

At a Glance - TFS Version Control Changesets Check-in Policies Shelving Branching & Merging Logical container of data related to check-in Requirements for Check-in Set aside pending changes Path-space, configurationbased Do your systems talk business? 30

2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.