Visual Studio 2005 Team System
Artikel erschienen in Swiss IT Magazine 2005/09
Den Bereich Software Lifecycle Management hat Microsoft in ihren Entwicklungswerkzeugen bislang vernachlässigt. Wer Tools für Projekt-Management, Architektur, Testing oder Teamarbeit im Umfeld von Visual Studio einsetzen wollte, musste sich bisher bei Drittherstellern oder im Open-Source-Umfeld eindecken. Mit Visual Studio 2005 Team System will Microsoft nun in der zweiten Hälfte dieses Jahres die klaffende Lücke schliessen. Hinter Visual Studio Team System versteckt sich eine modulare Sammlung an integrierbaren Werkzeugen, die den Software-Entwicklungsprozess von der Planung bis zur Auslieferung abdecken soll. Statt alle Werkzeuge in einem Gesamtpaket zu liefern, hat sich Microsoft dazu entschlossen, die Tools in auf Rollen zugeschnittenen Editionen auf den Markt zu bringen. So wird es Visual Studio 2005 Team System in Varianten für Software-Architekten, Entwickler und Tester geben. Ergänzend dazu wird es den Team Foundation Server geben, der eine Reihe von zentralen Diensten für Teamarbeit, Projektüberwachung sowie Source- und Versionsmanagement zur Verfügung stellen wird (siehe auch Diagramm unten).
Die auf Software-Architekten zugeschnittene Edition steht ganz im Zeichen des Modellierens von verteilten, service-orientierten Systemen. Die unter dem Codenamen «Whitehorse» entwickelten Tools sind Teil von Microsofts Dynamic Systems Initiative (DSI), die zum Ziel hat, Aufwand und Kosten bei der Planung, dem Ausliefern und dem Betrieb von verteilten Systemen zu reduzieren. «Whitehorse» setzt sich aus vier Design-Tools zusammen, mit deren Hilfe die Systeme auf unterschiedlichen Abstraktionsebenen modelliert werden können. Auf der Ebene der Anwendungen steht der Application Connection Designer. Hier können die verschiedenen Anwendungen eines Systems und deren Kommunikationswege unabhängig von der effektiv vorhandenen Serverinfrastruktur gestaltet werden. Auf der Ebene der physisch vorhandenen Server kommt dann der Logical Datacenter Designer ins Spiel. Mit diesem Werkzeug lassen sich die eingesetzten Server grafisch aufzeichnen. Der Deployment Designer bildet schliesslich das Bindeglied zwischen Application und Datacenter Designer. Hier kann definiert werden, welche Anwendungen auf welchem Server zum Einsatz kommen sollen. Sowohl im Application Connection Designer als auch im Logical Datacenter Designer können für die einzelnen Systeme Regeln (z.B. verschlüsselte Kommunikation via SSL) und Konfigurationseinstellungen vorgegeben werden. Mit einer Validierungsfunktion lässt sich prüfen, ob die im Application Design vorgenommenen Einstellungen mit den Regeln des Datacenter Design konform sind und umgekehrt.
Die Team Edition for Software Testers ist auf das Durchführen von Software-Tests spezialisiert. Zu den unterstützten Testverfahren gehört insbesondere das Unit Testing. Im Wesentlichen geht es hier darum, die Funktionen einer Software-Komponente mit Hilfe von Scripts automatisiert zu testen. Dabei werden die Tests nach jeder Änderung im Source Code (z.B. während des Check-in-Prozesses) oder vor der Erstellung eines neuen Builds durchgeführt.
Ein weiteres unterstütztes Verfahren sind die Web Tests, die beim Überprüfen der Funktionalität von Webanwendungen helfen. Dabei werden automatisch Webseiten anhand eines vorgegebenen Ablaufs – der sich während einer Browsersession aufzeichnen lässt – aufgerufen und geprüft. Das Interessante bei den Web Tests ist, dass sie mehrfach mit unterschiedlichen Parametern durchgeführt werden können. Die Suchfunktion einer Site könnte so etwa mit unterschiedlichen Stichwörtern und Verknüpfungsoperatoren automatisiert auf korrekte Funktion geprüft werden. Noch etwas weiter gehen die Load Tests, mit deren Hilfe sich die Performance und die Belastungsgrenze einer Web-Anwendung ausloten lassen. Für die Testläufe lassen sich wiederum aufgezeichnete Ablauffolgen verwenden. Anhand dieser Folgen wird die gewünschte Anzahl an gleichzeitigen Benutzerzugriffen simuliert. Visual Studio Team System erlaubt auch, eigene Tests über Kommandozeilen-Aufrufe in die Testumgebung zu integrieren. Ebenfalls Bestandteil der Test Edition ist die zuschaltbare Code-Coverage-Funktion, mit der sich visualisieren lässt, welche Code-Teile während eines Test-Runs ausgeführt wurden.
Die Entwickler-Variante kommt mit Werkzeugen für Code-Analyse und -Profiling. Dabei wurden die Werkzeuge PREfast und FxCop direkt in die IDE integriert. PREfast alarmiert C++-Entwickler bei häufigen Fehlern wie Buffer Overruns, nicht initialisiertem Speicher und Null Pointer Dereferences. FxCop, das bisher als Freeware-Tool zur Verfügung stand, überprüft .Net-Assemblies auf Konformität zu den in den .Net-Framework-Design-Guidelines festgelegten Richtlinien. Die Performance-Werkzeuge helfen dabei, Schwachstellen im Code, die negativen Einfluss auf die Geschwindigkeit haben, auszuloten. Ebenfalls in der Developer Edition enthalten sind die Funktionen für Unit-Testing und Code Coverage aus der Test Edition.
Das zentrale Element von Visual Studio Team System bildet der Team Foundation Server, der eine ganze Palette von serverbasierten Diensten zur Verfügung stellt. Dazu zählen Collaboration- und Projekt-Management-Tools sowie ein umfassendes Source-Code- und Versions-Management. Ausserdem stellt der Team Foundation Server die notwendigen Integrationsdienste bereit, die einerseits von den verschiedenen Werkzeugen von Visual Studio 2005 genutzt werden, andererseits aber auch Drittanbietern für die Anbindung eigener Add-ons offenstehen.
Das Kernelement für die Steuerung und Überwachung des Entwicklungsprozesses bilden die so genannten Work Items. Dabei handelt es sich im Wesentlichen um Informationsobjekte, mit denen Arbeitseinheiten verwaltet werden können. Diese lassen sich bestimmten Personen zuordnen und können mit zugewiesenen Statusinformationen durch den Workflow-Prozess geschleust werden. Visual Studio Team Foundation kennt unterschiedliche Typen von Work Items. Dazu gehören beispielsweise ein genereller Task, ein Bug, ein Requirement oder ein Feature. Falls notwenig können auch eigene Item-Typen definiert oder bestehende angepasst werden.
Sämtliche Work Items eines Projekts werden auf dem Team Foundation Server in einer zentralen Datenbank gespeichert und lassen sich mit unterschiedlichen Programmen wie Excel, Project oder direkt in Visual Studio nutzen. So kann ein Projektleiter eine Requirement-Liste beispielsweise mit Excel verwalten, während ein Entwickler in der Lage ist, alle ihm zugeordneten Bugs direkt in Visual Studio aufzurufen.
Der Team Foundation Server verwaltet sämtliche Objekte eines Software-Projektes in einem Portfolio Project. Dazu zählen die oben beschriebenen Work Items ebenso wie Projektpläne, Spezifikationen oder Source-Code-Dateien. Der in Visual Studio verfügbare Project Explorer bietet über eine hierarchische Baumstruktur Zugang zu den diversen Projektobjekten.
Interessant ist, dass innerhalb eines Portfolio Projects auch Standard-Prozesse und -Methoden mitberücksichtigt werden können. Dazu muss bei der Erzeugung eines neuen Portfolio-Projekts bloss die Vorlage der gewünschten Methodik gewählt werden. Team Foundation erzeugt dann automatisch ein entsprechendes Portfolio Project mit allen notwendigen Dokumentvorlagen, Work Items, Workflows, Berichten, Sicherheitsgruppen und Regeln. Standardmässig wird Visual Studio Team System die neue Version 4.0 des Microsoft Solution Frameworks (MSF) unterstützen, welches neu in den Varianten MSF Agile für einfache und MSF Formal für grössere, strikter geführte Software-Projekte geliefert wird. Da Microsoft das Vorlagenkonzept individuell anpassbar konzipiert hat, ist damit zu rechnen, dass Drittanbieter weitere Methodology-Vorlagen entwickeln werden.
Um den Projektfortschritt und -status besser überwachen zu können, verfügt der Team Foundation Server über ein umfangreiches Bericht-system, das auf den Reporting Services des SQL Server 2005 basiert. Dabei werden während des Entwicklungsprozesses gesammelte Messdaten, die beispielsweise aus Work Items oder Unit Tests stammen, in einem zentralen Data Warehouse gespeichert. Der Status eines Projekts kann so aus unterschiedlichen Blickwinkeln analysiert werden. Visual Studio Team System wird mit über 50 vorbereiteten Reports geliefert – unter anderem für Informationen über Code-Qualität, Projektfortschritt, Software-Stabilität oder Test-Effektivität.
Visual Studio Team System erstellt zu jedem Portfolio Project automatisch eine Project-Site, die auf den Windows SharePoint Services (WSS) basiert. Dabei handelt es sich um ein Web-basiertes Abbild des Portfolios, das Zugang zu allen projektrelevanten Informationen und Ressourcen wie Dokumente, Work Items, Builds und Reports bietet. Dank der modularen SharePoint-Technologie lässt sich die Project-Site sehr einfach mit Zusatzdiensten wie Diskussionen, Ankündigungen oder Tasklisten ausbauen. Da die Project-sites ausschliesslich auf Web-Technologie basieren, lassen sich auch externe Benutzer, wie Projektleiter, Management oder Kunden in den Entwicklungsprozess einbinden, die über kein eigenes Visual Studio verfügen.
Die Visual Studio Team Foundation ist mit einem umfassenden Source-Code-Management ausgestattet. Als Besonderheit bietet es die Möglichkeit, Work Items mit Source Code und Builds zu verlinken. So kann etwa ein Bug-Work-Item auf ein bestimmtes Source-File verweisen. Wird der Fehler korrigiert und das File eingecheckt, kann auch gleich das betreffende Work Item mit den nötigen Angaben wie Status oder Bemerkungen versehen werden.
Ein sehr praktisches Feature ist die Check-In Policy Engine, die den Code vor dem Einchecken mit Regeln auf Konformität prüft. Dabei lässt er sich mit Unit Testing, einer statischen Analyse (FxCop) oder eigenen Policies prüfen. Der Code kann erst dann eingecheckt werden, nachdem er die Konformitätsprüfung bestanden hat.
Der Team Foundation Server wird nur als Bestandteil der Visual Studio Team Suite erhältlich sein, die neben den Serverkomponenten auch die Architect-, Developer- und Test-Edition enthält. Sowohl die Team Suite als auch die Editions werden für MSDN-Abonnenten kostenpflichtig sein, allerdings mit einem Preisnachlass. Einzige Ausnahme bilden die Abonnenten von MSDN Universal: Sie erhalten bei Erscheinen eine der Team-Edition-Varianten kostenlos nach Wahl.