09.01.2009, 10:10 Uhr
Architektur entdecken - der Architect Explorer in VSTS 2010
Die kommende Version von Visual Team System 2010 (der frühere Codename war «Rosario») wird neue Maßstäbe bei der Entwicklung von Software auf Basis von Microsoft Technologien setzen. Neben vielen Neuigkeiten für Entwickler, Architekten, Tester und Business Analysten soll sie den Schwerpunkt auf Application Lifecycle Management (ALM) legen.
von Damir Dobric
Software ist längst zu einem untrennbaren Teil unserer Gesellschaft geworden. Befragt man jedoch Anwender über die Qualität von Software, erhält man eher kritische Antworten. Stellt man Projektleitern dieselbe Frage, wird man auf Statistiken verwiesen, die in der Tat überwiegend schlechte Ergebnisse belegen. Die Tools im kommenden Visual Studio Team System Rosario sollen zu eine besseren Softwarequalität beitragen, in dem sie für die vielen kleinen und großen Problemfällen der Softwareentwicklung eine Unterstützung bieten. Ein Beispiel aus der täglichen Praxis ist das Implementieren von Schnittstellen im Kontext einer Anwendung, die von einem anderen Hersteller stammt. Beispiele sind SharePoint-Komponenten oder BizTalk-Adapter. Wünschenswert wäre es in diesem Fall, in Visual Studio um die eigenen Komponenten herum ein Sequenz-Diagramm erzeugen zu können oder sich bei größeren Projekten die Abhängigkeiten zwischen Projekten, Klassen und anderen Entitäten darstellen lassen zu können. Beispiele die diese haben in der Vergangenheit oft zu einem Produktivitätsverlust geführt. Mit dem kommenden VSTS 2010 soll das anders werden.
Der neue Architecture Explorer
Screeen 1: Der Architecture Explorer
Der neue Architecture Explorer ist ein in VSTS 2010 integriertes Tool, das ein «Entdecken» der Architektur in einem Projekt oder einer binären Datei ermöglicht. Zugegeben, diese Definition ist weit gefasst. Dahinter stehen in der Praxis viele Detailfragen wie z.B. das Zählen der Codezeilen in einer Klasse, das Darstellen der Klassen in einem Projekt oder gleich eines ganzen Anwendungsfalls. Oder wie wäre es mit einem Sequenz-Diagramm oder einem Module Dependency Graf? Nach dem Start des Architect Explorer stehen verschiedene Modi zur Auswahl: Binary Analyzer, Windows Application, Localhost und Rosario, wobei die beiden letzteren Optionen an den Team Foundation Server gebunden sind. Mit dem Binary Analyzer wird eine beliebige binäre Datei nach Klassen und ihren Abhängigkeiten durchsucht.
Screen 2: Abhängigkeiten im Assembly Dependency View
Der Architecture Explorer bietet unterschiedliche Darstellungsmöglichkeiten von Abhängigkeiten zwischen Artefakten zwischen Artefakten: By Assembly, By Namespace und By Class. Screen 2 zeigt eine By Assembly-View. Implizit bildet jede View eine «Dependency Matrix» ab, die von besonderer theoretischer Bedeutung ist. Die problematischen Abhängigkeiten, die mit dieser Matrix gefunden werden können, könnten mit Hilfe von Entwurfsmustern wie Dependency Injection bzw. Inversion of Control gelöst werden. Auch wenn die Details sehr umfangreich sind, wichtig ist, dass die Abhängigkeitsanalyse per Dependency Matrix ein Hilfsmittel zur Reduzierung der Abhängigkeiten einer Lösung ist. Dieser Aspekt ist deshalb wichtig, weil viele Abhängigkeiten zwischen Komponenten implizit zu schlechterer Qualität von Software führen.
Sequenzdiagramme erzeugen
Screen 3: Ein aus dem Code abgeleitetes Sequenzdiagramm
Neben der Darstellung von verschiedenen Artefakten und dem Feststellen von Abhängigkeiten ist der Architect Explorer in der Lage, sog. Sequenzdiagramme zu erzeugen. Dazu muss als erstes eine Methode (keine Klasse) ausgewählt werden. Anschließend wird mit dem rechten Mausklick Context-Menu-Item «Generate Sequence Diagram» ausgewählt. Für einen Test soll der Code in Listing 1 dienen. Dieser Code wirkt auf den ersten Blick zwar recht trivial, interessant ist die Rekursion, die einem Sequenzdiagramm etwas schwieriger darstellbar ist. Screen 3 zeigt, wie dies momentan gelöst wird (dabei muss berücksichtigt werden, dass Recurse to f11() mit einer neuen Instanz von Class11 aufgerufen wird).
UseCase-Diagramme als Alternative
Neben den Sequenzdiagrammen wird VSTS 2010 auch die Möglichkeit bieten UseCase-Diagramme zu erzeugen. Dazu steht eine Vorlage mit dem Namen ,,Use-Case Diagramm" zur Verfügung, die ein leeres UseCase-Modell anlegt. Über entsprechende Elemente in der Toolbox ist es relativ einfach, das gewünschte UseCase- Modell zu erstellen. Durch die Möglichkeit mit dem Architecture Explorer durch registrierte Team Server zu navigieren, dabei Working Items (z.B. Requirement-Items) auszuwählen und diesem dem Diagramm zuweisen entsteht eine Kopplung zwischen dem Use Case-Diagramm und einem Working item. Screen 4 zeigt am Beispiel ,,Dinner Now" ein Use Case Diagram.
Screen 4: Ein UseCase-Diagramm
Screen 4: Ein UseCase-Diagramm
ALM im Fokus
Seit der PDC 2008 gibt es eine aktuelle CTP des kommenden VSTS 2010. Vieles ist daher noch unfertig, manche Features werden noch hinzukommen. Doch die bereits vorhandenen Funktionalitäten vermitteln bereits ein aussagekräftiges Bild, um eine Vorstellung davon zu bekommen wohin die Reise gehen wird. Es wird deutlich, dass Microsoft das Thema ALM (Application Lifecycle Management) in den Mittelpunkt seiner Aktivitäten stellt. Ein weiterer Trend ist, dass sich der Nachfolger von Visual Studio Team System 2008 nicht nur an Entwickler richtet, sondern auch die übrigen Rollen, die im Entwicklungsprozess beteiligt sind, adressiert.
LISTING 1: Ein Beispielcode als Grundlage für ein Sequenzdiagramm
class Class11
{
public string f11(string s)
{
Class2 c2 = new Class2();
c2.f21(s);
return "something";
}
{
public string f11(string s)
{
Class2 c2 = new Class2();
c2.f21(s);
return "something";
}
public string f12(string s)
{
return s;
}
}
{
return s;
}
}
class Class2
{
public string f21(string s)
{
Class11 c1 = new Class11();
c1.f11(s);
return s;
}
{
public string f21(string s)
{
Class11 c1 = new Class11();
c1.f11(s);
return s;
}
public string f22(Class11 c1, string s)
{
return c1.f12(s);
}
}
{
return c1.f12(s);
}
}
Autoreninfo: Dipl.-Ing. Damir Dobric ist Lead-Architekt des Microsoft Gold-Partners DAENET GmbH aus Frankfurt a.M.. Er ist MVP, Technology Advisor der Microsoft Connected Technology Advisory Group und Mitglied von Visual Studio Team System Quality Board. Er bloggt unter http://developers.de/blogs/damir_dobric/default.aspx.
Peter Monadiemi