La gestione del ciclo di sviluppo secondo Microsoft
Adriano Venturini
- S.E.D. Centro di Calcolo
Ricerca e sviluppo
Articoli0002
30 giugno 2005
Microsoft segna
un altro passo avanti nelle tecnologie per lo sviluppo di applicazioni tipicamente
enterprise.
Visual Studio Team Systems è l'etichetta sotto la quale Microsoft propone
agli sviluppatori una serie di tool integrati nell'ambiente di sviluppo per
gestire i progetti, definire i modelli e i componenti con diagrammi Uml, pianificare
il lavoro di sviluppo in team e gestire i requisiti hardware e software e le
connessioni di rete.
Chi sviluppa applicazioni sa che queste devono essere prima di tutto pensate,
poi correttamente progettate, sviluppate, testate ed infine distribuite mantenendo
il tutto, possibilmente, coerentemente colllegato.
Al giorno d'oggi molti team di sviluppo, anche di piccole o medie dimensioni,
si sono attrezzati con strumenti che aiutano il ciclo di sviluppo come, ad esempio:
Project per la pianificazione e l'assegnazione delle varie attività;
Uml per definire le classi; tool vari per workflow e flussi applicativi; Visio
per le strutture dati e la topologia di rete; Visual Studio 6.0 o Visual Studio
2003 per lo sviluppo ed il debug; tool specifici per gestire i test; Excel per
analizzare i dati dei test; performance monitor da utilizzare durante l'effettuazione
dei test; word per le relazioni; ed altri ancora.
Microsoft propone ... Visual Studio Team System il cui obiettivo è quello
di fornire, in un unico strumento integrato, il supporto per gestire l'intero
ciclo di sviluppo software. L'edizione 2005 è in avanzata fase di sviluppo
e sarà rilasciata, con Visual Studio 2005 e il Framework .Net 2.0, entro
il 2005.
Sono previste tre
edizioni distinte ma integrate: Team Architect
per il software architect e la progettazione visuale di soluzioni service-oriented;
Team Developer per lo sviluppatore, comprende strumenti
quali Code Analyzer, Code Profiler, Code Coverage; Team
Test per la creazione di Unit text, test manuale, Web test, stress
test. Tutti e tre gli strumenti si appoggiano a Team
Foundation che centralizza le informazioni sul progetto e facilita
l'integrazione con Excel, Project, SharePoint.
Architect
Edition.
Tool per realizzare Architetture: disegnare le applicazioni pensando alla distribuzione.
Disegnare le applicazioni perchè siano distribuite in un ambiente complesso e’ sempre stata una delle sfide più difficili. Archited Edition offre ai progettisti di soluzioni complesse una serie di designer per facilitare il disegno, lo sviluppo e il deploy secondo quanto stabilito da Microsoft nella Microsoft Dynamic System Initiative (Dsi). (vedi Dsi e WhiteHorse su Microsoft TechNet)
La funzionalità Acd - Application Connection Designer - aiuta a definire e configurare le componenti che formano l'applicazione. Tramite una serie di prototipi predefiniti è possibile disegnare Web Service, Web application, Windows application, database. I diagrammi possone essere costruiti semplicemente trascinando e collegando i vari prototipi sulla lavagna virtuale oppure con operazioni di reverse engineering su applicazioni esistenti.
La funzionalità Ldd - Logical Datacenter Designer - serve per definire il diagramma dei server e ottenere informazioni per la fase di deployment reale. Si possono specificare e configurare i vari server, le tipologie di comunicazione, i flussi e i tipi di servizi abilitabili su ognuno. Ldd è integrato in Visual Studio e quindi riutilizzabile da qualunque membro del team di sviluppo. E' prevista una serie di tipologie di server predefiniti che può essere estesa secondo le necessità. Una volta definito il modello logico è possibile associare policy, constraint e settaggi applicativi a ogni server o comunicazione. Tali settaggi saranno poi impostati fisicamente nella fase di deployment.
La funzionalità
System Designer da la possibilità di comporre e configurare sistemi in
base alle componenti definite in Acd. Un sistema è l'unità di
deployment e può essere aggregato ad altri sistemi. Si possono definire
varie aggregazioni di componenti applicativi suddividendo il sistema in vari
sottosistemi e prevedere varie tipologie di installazione.
Con questo designer si definiscono le varie pacchettizzazioni dell'applicazione
che verranno distribuite.
La funzionalità
Deployment Designer, definisce il mapping fra un sistema ed il logical datacenter.
Vengono associate le applicazioni di un sistema definito ai vari server logici.
In questa fase vengono validate tutte le regole e i constraint definiti nei
vari modelli; vengono verificati i constraint definiti con Aed rispetto al datacenter
che dovrà ospitare l'applicazione, così come tutti i protocolli
di comunicazione fra le componenti applicative.
... inizio
Developer
Edition.
Tool per l'analisi del codice.
La Developer Edition
è destinata agli sviluppatori. Fornisce una serie di strumenti per analizzare
il codice eliminando la necessità di strumenti di terze parti spesso
poco integrati con Visual Studio.
I tool si dividono in due categorie: Code Analysis e Performance Analysis. Entrambe
facilitano l’individuazione di problemi durante la fase di scrittura del
codice evitando perdite di tempo durante i test.
Due sono i tool per eseguire verifiche statiche sul codice: PreFast e FxCop.
Il primo serve per prevenire alcuni problemi comuni nel codice C/C++ come buffer
overrun, null pointer, resource leak, memory leak; il secondo analizza il codice
managed e riporta informazioni su eventuali problemi di violazione delle regole
definite a priori.
Altri strumenti particolarmente utili sono Code Coverage che, integrato con
il modulo di testing, consente di verificare quali flussi di codice sono stati
eseguiti e testati e quali sono rimasti non coperti dal test. Diversamente dai
software sul mercato, che iniettano codice di test all’interno del codice
reale, questo strumento è integrato con l’ambiente di sviluppo
risultando così più aderente all’esecuzione reale nel caso
di test di performance e carichi.
Code Profiler consente di profilare il codice analizzando cosa succede durante
il runtime: call-stack, vista sulle funzioni, grafico su chiamante/chiamato,
allocazione degli oggetti in memoria, vista sull’allocazione degli oggetti
del Garbage Collector, thread in esecuzione e così via. Ancora una volta
il tutto è integrato all’interno dell’ambiente.
Una serie di wizard consentono di definire test sulle performance durante il
profiling e ottenere dati o grafici sui risultati. Per esempio al termine di
una profilazione è possibile sapere quante volte sono stati richiamati
una funzione, un costruttore, un set di una proprietà.
Con la Developer Edition possono anche essere definite una serie di regole per
eseguire il check-in di un componente software. Per esempio è possibile
forzare lo sviluppatore a eseguire uno unit test del componente prima di poter
rilasciare una versione del componente stesso.
... inizio
Team
Test Edition.
Tool per test.
Destinata a chi
effettua test di funzionamento e carico delle applicazioni, questa edizione
è pensata per creare Unit Test, analizzare Code Coverage e creare, gestire
o analizzare stress test.
Si possono creare stress test partendo da Unit Test oppure definendo test completi
da zero.
È anche possibile, come accade oggi con Application Center Test, simulare
il carico di lavoro da più macchine client verso Web service, applicazioni
asp.net oppure componenti invocati tramite remoting. Terminato il test, si possono
analizzare i risultati sulla copertura del codice, sulla profilazione dell’esecuzione
e sui counter del performance monitor delle varie macchine coinvolte.
... inizio
Team Foundation.
La piattaforma aperta.
L’obiettivo
di Team Foundation è fornire una piattaforma aperta utilizzabile da Project,
Excel, Visual Studio e prodotti stand-alone con tutte le informazioni sul progetto:
dalle task alle assegnazioni ai vari membri del team, dai sorgenti sotto controllo
alle regole per poter fare il check-in, dai test definiti ai rispettivi risultati.
Si parte creando un nuovo project site, che verrà esposto anche tramite
Sharepoint, in base a un template. Si prosegue aggiungendo tutto quello che
serve per il progetto: definizione delle fasi, work items, tasks, owner di ogni
task, documentazione, requisiti, richieste.Questo repository può essere
interrogato con Project dal project manager, con Excel per quanto riguarda task
e reportistica, con Visual Studio per tutto ciò che riguarda le attività
elencate.
Tutti i prodotti lavorano con la Foundation leggendo o memorizzando i dati all’interno
di essa. Per esempio uno stress test effettuato con Team Test memorizza i dati
all’interno della foundation; con Excel è possibile estrarre dei
grafici sull’andamento dei bug risolti. La Foundation contiene anche le
regole per i vari sviluppatori che verranno imposte ai vari membri del team
per effettuare operazioni di check-in o verifica del codice.
Tutte le operazioni di check-in e check-out vengono effettuate tramite la foundation
che quindi rappresenta anche il nuovo Visual SourceSafe. Team Foundation tiene
traccia dei vari work item, esegue il controllo dei sorgenti, consente di eseguire
build schedulate, è la base per le analisi Olap e fornisce il portale
(tramite Sharepoint) per tutti i membri del team di progetto.
Per Microsoft, "Visual Studio Team Systems" è il nuovo ambiente per gestire l’intero ciclo di vita di un’applicazione con un unico strumento integrato. È uno strumento complesso che richiede un team mentalmente preparato a gestire il software ed un periodo di tempo non breve per essere completamente assimilato.
Riferimenti:
Visual Studio Team System, Visual Studio 2005, Microsoft Dynamic System Initiative
e le nuove tecnologie Microsoft, si trovano sul sito Microsoft Msdn
e Microsoft TechNet. Per chi lo desidera, sempre sul sito Microsoft
Msdn, sono disponibili le presentazioni "dal vivo" tenute da esperti
di tecnologie Microsoft. Per coloro che non hanno avuto la possibilità
di seguire una presentazione (un Webcast), nella stessa sezione troveranno le
registrazioni e le presentazioni dei Webcast passati.
... inizio