Übersicht über das Szenario: Ändern des Entwurfs mithilfe von Visualisierung und Modellierung
Um sicherzustellen dass das Softwaresystem die Anforderungen der Benutzer erfüllt, verwenden Sie die Visualisierungs- und Modellierungstools in Visual Studio Ultimate um unterstützen Sie den Entwurf des Systems zu aktualisieren oder zu ändern. Diese Tools umfassen UML-Diagramme (Unified Modeling Language), Ebenendiagramme, codebasierte Abhängigkeitsdiagramme, Sequenzdiagramme und Klassendiagramme ein. Beispielsweise können Sie diese Tools verwenden, um folgende Aufgaben auszuführen:
Ermitteln der Anforderungen und Geschäftsprozesse von Benutzern
Visualisieren und Untersuchen von vorhandenem Code
Beschreiben der Änderungen an einem vorhandenen System
Sicherstellen, dass das System die Anforderungen erfüllt
Sicherstellen, dass der Code konsistent mit dem Entwurf ist
In dieser exemplarischen Vorgehensweise sollen mit einem Beispielszenario die folgenden Ziele erreicht werden:
Bereitstellen einer allgemeinen Übersicht der Tools und ihrer Vorteile für ein Softwareprojekt
Verdeutlichen, wie zwei Teams diese Tools in einem Beispielszenario verwenden können, unabhängig von ihren Entwicklungsansätzen
Weitere Informationen zu diesen Tools und den Szenarien, die sie unterstützen, finden Sie unter:
In diesem Thema
Abschnitt |
Beschreibung |
---|---|
Übersicht über das Szenario |
Beschreibt das Beispielszenario und seine Teilnehmer. |
Rollen von Architektur- und Modellierungsdiagrammen in der Softwareentwicklung |
Beschreibt die Rollen, die diese Tools während des Lebenszyklus der Softwareentwicklung spielen können. |
Verstehen und Kommunizieren von Informationen zum System |
Stellt eine allgemeine Übersicht dazu bereit, wie die Teilnehmer die Tools in diesem Szenario verwenden. |
Aktualisieren des Systems mithilfe von Visualisierung und Modellierung |
Stellt nähere Details zu den einzelnen Tools bereit und erläutert, wie sie in diesem Szenario verwendet werden können. |
Übersicht über das Szenario
Dieses Szenario beschreibt Episoden in den Lebenszyklen der Softwareentwicklung von zwei fiktiven Unternehmen: Dinner Now und Lucerne Publishing.Dinner Now bietet einen webbasierten Essenslieferdienst in Seattle an.Kunden können Essen bestellen auf der Dinner Now-Website bezahlen.Die Bestellungen werden dann an das entsprechende örtliche Restaurant für die Lieferung gesendet.Lucerne Publishing, ein Unternehmen in New York, unterhält mehrere Geschäfte sowohl im Internet als auch außerhalb des Internets.Beispielsweise wird eine Website betrieben, auf der Kunden Restaurantkritiken veröffentlichen können.
Lucerne hat vor kurzem Dinner Now übernommen und möchte die folgenden Änderungen vornehmen:
Integrieren der Websites durch Hinzufügen von Restaurantkritikfunktionen zu Dinner Now
Ersetzen des Zahlungssystems von Dinner Now durch das System von Lucerne
Erweitern Sie den Dinner Now-Dienst in der gesamten Region.
Dinner Now verwendet SCRUM- und eXtreme-Programmierung.Sie verfügen über eine sehr hohe Testabdeckung und nur wenig nicht unterstützten Code.Risiken werden minimiert, indem kleine, funktionierende Versionen eines Systems erstellt und dann schrittweise Funktionen hinzugefügt werden.Der Code wird über kurze und regelmäßige Iterationen entwickelt.Dadurch werden Änderungen auf sichere Weise eingeführt, der Code wird häufig umgestaltet, und ein "Big Design Up Front" wird vermieden.
Lucerne unterhält eine überaus umfangreichere und komplexe Auflistung von Systemen, die teilweise über 40 Jahre alt sind.Aufgrund von Komplexität und Umfang des älteren Codes werden Änderungen nur mit größter Vorsicht vorgenommen.Lucerne verfolgt einen rigoroseren Entwicklungsprozess und zieht es vor, detaillierte Lösungen zu entwerfen und den Entwurf und sowie während der Entwicklung auftretende Änderungen zu dokumentieren.
Beide Teams verwenden Modellierungsdiagramme in Visual Studio Ultimate, die sie dabei unterstützen, Systeme zu entwickeln, die die Anforderungen der Benutzer erfüllen.Verwenden Sie Team Foundation Server zusammen mit anderen Tools, um zu reproduzieren, ihre Arbeit zu planen, zu organisieren und zu verwalten.
Weitere Informationen zu Team Foundation Server, finden Sie unter:
Planen und Nachverfolgen der Arbeit
Testen, Überprüfen und Einchecken von aktualisiertem Code
Rollen von Architektur- und Modellierungsdiagrammen in der Softwareentwicklung
In der folgenden Tabelle werden Rollen beschrieben, die diese Tools während verschiedener Phasen des Lebenszyklus der Softwareentwicklung spielen können:
Modellieren von Benutzeranforderungen |
Modellierung von Geschäftsprozessen |
Systemarchitektur und -entwurf |
Visualisieren und Untersuchen von Code |
Überprüfung |
|
---|---|---|---|---|---|
Anwendungsfalldiagramm (UML) |
√ |
√ |
√ |
||
Aktivitätsdiagramm (UML) |
√ |
√ |
√ |
√ |
|
Klassendiagramm (UML) |
√ |
√ |
√ |
√ |
|
Komponentendiagramm (UML) |
√ |
√ |
√ |
√ |
|
Sequenzdiagramm (UML) |
√ |
√ |
√ |
√ |
|
DSL-Diagramm (domänenspezifische Sprache) |
√ |
√ |
√ |
||
Ebenendiagramm, Ebenenvalidierung |
√ |
√ |
√ |
||
Abhängigkeitsdiagramm (codebasiert) |
√ |
√ |
√ |
||
Sequenzdiagramm (codebasiert) |
√ |
√ |
|||
Klassen-Designer (codebasiert) |
√ |
||||
Architektur-Explorer |
√ |
Um UML-Diagramme und Ebenendiagramme zu zeichnen, müssen Sie ein Modellierungsprojekt als Teil einer vorhandenen oder einer neuen Lösung erstellen.Diese Diagramme müssen im Modellierungsprojekt erstellt werden.Elemente in UML-Diagrammen sind Teil eines allgemeinen Modells, und die UML-Diagramme sind Ansichten dieses Modells.Elemente in Ebenendiagrammen befinden sich im Modellierungsprojekt, sie werden jedoch nicht im allgemeinen Modell gespeichert.Codebasierte Abhängigkeitsdiagramme, Sequenzdiagramme und Klassendiagramme sind normalerweise außerhalb des Modellierungsprojekts vorhanden.
Thema
Gewusst wie: Erstellen von UML-Modellierungsprojekten und -Diagrammen
Visualisieren von Codeabhängigkeiten in Abhängigkeitsdiagrammen
Gewusst wie: Hinzufügen von Klassendiagrammen zu Projekten (Klassen-Designer)
Visualisierungs- und Modellierungs-SDK - Domänenspezifische Sprachen
Um alternative Ansichten der Architektur anzuzeigen, können Sie bestimmte Elemente aus demselben Modell in verschiedenen Diagrammen wiederverwenden.Beispielsweise können Sie eine Komponente in ein anderes Komponentendiagramm oder in ein Sequenzdiagramm ziehen, damit es als Akteur fungieren kann.Siehe Gewusst wie: Bearbeiten von UML-Modellen und Diagrammen.
Beide Teams verwenden außerdem Ebenenvalidierung, um sicherzustellen, dass Code in der Entwicklung mit dem Entwurf konsistent bleibt.
Thema
Sicherstellen der Konsistenz von Code und Entwurf
Beschreiben der logischen Architektur: Ebenendiagramme
Überprüfen von Code mit Ebenendiagrammen
Hinweis Visual Studio Premium unterstützt Ebenenvalidierung sowie schreibgeschützte Versionen dieser Diagramme zur Visualisierung und Modellierung.
Verstehen und Kommunizieren von Informationen zum System
Es gibt keine vorgeschriebene Reihenfolge zum Verwenden der Visual Studio Ultimate-Modellierungsdiagramme. Daher können Sie sie ganz ihren Anforderungen oder dem Ansatz entsprechend verwenden.Normalerweise rufen Teams ihre Modelle im Verlauf des Projekts wiederholt und häufig auf.Jedes Diagramm bietet bestimmte Vorteile, um verschiedene Aspekte des Systems in der Entwicklung zu verstehen, zu beschreiben und zu kommunizieren.
Dinner Now und Lucerne kommunizieren untereinander sowie mit Projektbeteiligten anhand von Diagrammen als einheitliche Sprache.Beispielsweise verwendet Dinner Now Diagramme, um folgende Aufgaben auszuführen:
Visualisieren von vorhandenem Code
Kommunizieren mit Lucerne über neue oder aktualisierte User Stories
Identifizieren von Änderungen, die für die Unterstützung neuer oder aktualisierter User Stories erforderlich sind
Lucerne verwendet Diagramme, um folgende Aufgaben auszuführen:
Aneignung von Kenntnissen über den Geschäftsprozess von Dinner Now
Verstehen des Systementwurfs
Kommunizieren mit Dinner Now über neue oder aktualisierte Benutzeranforderungen
Dokumentieren von Aktualisierungen am System
Die Diagramme werden in Team Foundation Server integriert, sodass die Teams ihre Arbeit leichter planen, verwalten und verfolgen. Beispielsweise verwenden sie Modelle, um Testfälle und Entwicklungsaufgaben zu identifizieren und um ihre Arbeit einzuschätzen.Lucerne verknüpft Team Foundation Server-Arbeitsaufgaben mit Modellelementen, um den Fortschritt zu überwachen und sicherzustellen, dass das System die Anforderungen der Benutzer erfüllt.Beispielsweise werden Anwendungsfälle mit Testfallarbeitsaufgaben verknüpft, um sehen zu können, dass Anwendungsfälle erfüllt werden, wenn alle Tests erfolgreich verlaufen.
Bevor Teams ihre Änderungen einchecken, überprüfen sie den Code anhand der Tests und des Entwurfs durch das Ausführen von Builds, die Ebenenvalidierung und automatisierte Tests beinhalten.Dadurch wird sichergestellt, dass der aktualisierte Code dem Entwurf nicht widerspricht und Funktionen, die bereits funktionieren, nicht beeinträchtigt werden.
Thema
Grundlegendes zur Rolle des Systems im Geschäftsprozess
Beschreiben neuer oder aktualisierter Benutzeranforderungen
Erstellen von Tests aus Modellen
Identifizieren von Änderungen am vorhandenen System
Sicherstellen der Konsistenz von Code und Entwurf
Allgemeine Tipps zum Erstellen und Verwenden von Modellen
Planen und Nachverfolgen der Arbeit
Testen, Überprüfen und Einchecken von aktualisiertem Code
Grundlegendes zur Rolle des Systems im Geschäftsprozess
Lucerne möchte mehr über den Geschäftsprozess von Dinner Now erfahren.Die folgenden Diagramme werden erstellt, um den Kenntnisstand mit Dinner Now leichter abzuklären:
Diagramm |
Beschreibt |
---|---|
Anwendungsfalldiagramm (UML) Thema |
|
Aktivitätsdiagramm (UML) Thema |
Der Ablauf von Schritten, wenn ein Kunde eine Bestellung aufgibt |
Klassendiagramm (UML) Thema |
Die bei Besprechungen verwendeten Geschäftsentitäten und Begriffe sowie die Beziehungen zwischen ihnenBeispielsweise sind "Bestellung" und "Menüelement" Teil des Vokabulars in diesem Szenario. |
Lucerne erstellt z. B. das folgende Anwendungsfalldiagramm, um zu verstehen, welche Aufgaben auf der Dinner Now-Website ausgeführt werden und von wem sie ausgeführt werden:
UML-Anwendungsfalldiagramm
Das folgende Aktivitätsdiagramm beschreibt den Ablauf von Schritten, wenn ein Kunde auf der Dinner Now-Website eine Bestellung aufgibt.In dieser Version identifizieren Kommentarelemente die Rollen, und mit Linien werden Verantwortlichkeitsbereiche erstellt, die die Schritte nach Rolle organisieren:
UML Activity Diagram
Das folgende Klassendiagramm beschreibt die Entitäten, die am Bestellvorgang beteiligt sind:
UML-Klassendiagramm
Beschreiben neuer oder aktualisierter Benutzeranforderungen
Lucerne will dem Dinner Now-System Funktionen hinzufügen, damit Kunden Restaurantkritiken lesen und veröffentlichen können.Die folgenden Diagramme werden aktualisiert, um diese neue Anforderung mit Dinner Now zu besprechen:
Diagramm |
Beschreibt |
---|---|
Anwendungsfalldiagramm (UML) Thema |
Ein neuer Anwendungsfall für "Restaurantkritik verfassen" |
Aktivitätsdiagramm (UML) Thema |
Die Schritte, die auftreten, wenn ein Kunde eine Restaurantkritik schreiben möchte |
Klassendiagramm (UML) Thema |
Die Daten, die zum Speichern einer Kritik erforderlich sind |
Beispielsweise enthält das folgende Anwendungsfalldiagramm den neuen Anwendungsfall "Kritik verfassen", um die neue Anforderung darzustellen.Zur leichteren Erkennung wird es im Diagramm orangefarben hervorgehoben:
UML-Anwendungsfalldiagramm
Das folgende Aktivitätsdiagramm enthält neue Elemente in orange, um den Ablauf von Schritten im neuen Anwendungsfall zu beschreiben:
UML-Aktivitätsdiagramm
Das folgende Klassendiagramm enthält die neue Klasse Review (Kritik) sowie zugehörige Beziehungen zu anderen Klassen, sodass die Teams die Einzelheiten erläutern können.Beachten Sie, dass ein Kunde und ein Restaurant über mehrere Kritiken verfügen können:
UML-Klassendiagramm
Erstellen von Tests aus Modellen
Beide Teams stimmen darin überein, dass sie einen vollständigen Satz von Tests für das System und seine Komponenten benötigen, bevor sie Änderungen vornehmen können.Lucerne verfügt über ein spezialisiertes Team, das Tests auf System- und Komponentenebene durchführt.Die von Dinner Now erstellten Tests werden wiederverwendet und mithilfe von UML-Diagrammen strukturiert:
Jeder Anwendungsfall wird durch einen oder mehrere Tests dargestellt.Die Elemente im Anwendungsfalldiagramm sind mit den Arbeitsaufgaben in Team Foundation Server.
Jeder Ablauf in einem Aktivitätsdiagramm oder einem Sequenzdiagramm auf Systemebene wird mindestens mit einem Test verknüpft.Das Testteam stellt systematisch sicher, dass jeder mögliche Pfad durch das Aktivitätsdiagramm getestet wird.
Die zum Beschreiben der Tests verwendeten Begriffe basieren auf den Begriffen, die durch Anwendungsfall-, Klassen- und Aktivitätsdiagramme definiert werden.
Mit der Änderung von Anforderungen und der entsprechenden Aktualisierung der Diagramme werden auch die Tests aktualisiert.Eine Anforderung wird nur als erfüllt betrachtet, wenn die Tests bestanden werden.Wenn es möglich oder praktikabel ist, werden die Tests auf Grundlage von UML-Diagrammen definiert, bevor mit der Implementierung begonnen wird.
Thema
Identifizieren von Änderungen am vorhandenen System
Dinner Now muss die Kosten für die Erfüllung der neuen Anforderung schätzen.Diese hängen teilweise davon ab, wie sehr sich diese Änderung auf andere Teile des Systems auswirkt.Zur Verdeutlichung erstellt einer der Dinner Now-Entwickler die folgenden Diagramme und aus vorhandenem Code:
Diagramm |
Zeigt Folgendes an |
---|---|
Abhängigkeitsdiagramm Thema |
Abhängigkeiten und andere Beziehungen im Code. Dinner Now könnte z. B. damit beginnen, Assemblyabhängigkeitsdiagramme zu überprüfen, um eine Übersicht der Assemblys und ihrer Abhängigkeiten zu erhalten.Sie können in den Diagrammen einen Drilldown durchführen, um die Namespaces und Klassen in diesen Assemblys zu untersuchen. Dinner Now kann auch Diagramme erstellen, um bestimmte Bereiche und andere Arten von Beziehungen im Code zu untersuchen.Sie verwenden Architektur-Explorer oder im Projektmappen-Explorer, um zu reproduzieren, die Bereiche und Beziehungen zu suchen und auszuwählen, die sie interessieren. |
Codebasiertes Sequenzdiagramm Siehe Visualisieren von Code durch Erzeugen von Sequenzdiagrammen. |
Sequenz der Interaktionen zwischen Instanzen. Sequenzdiagramme werden aus Methodendefinitionen generiert und sind hilfreich, um zu verstehen, wie Methodenverhalten vom Code implementiert wird. |
Codebasiertes Klassendiagramm Siehe Gewusst wie: Hinzufügen von Klassendiagrammen zu Projekten (Klassen-Designer). |
Vorhandene Klassen in Code |
Beispielsweise verwendet der Entwickler Architektur-Explorer, um die Namespaces auszuwählen, die sie an konzentrieren möchte und ein Abhängigkeitsdiagramm aus Code erstellt.Sie passt den Umfang an, um sich auf die Bereiche zu konzentrieren, die von dem neuen Szenario betroffen sind.Diese Bereiche werden ausgewählt und im Diagramm hervorgehoben:
Abhängigkeitsdiagramm für Namespaces
Die Entwicklerin erweitert die ausgewählten Namespaces, um die zugehörigen Klassen, Methoden und Beziehungen anzuzeigen:
Erweitertes Abhängigkeitsdiagramm für Namespaces mit sichtbaren gruppenübergreifenden Links
Die Entwicklerin untersucht den Code, um nach den betroffenen Klassen und Methoden zu suchen.Sie generiert Sequenzdiagramme und Klassendiagramme aus Code, um die Änderungen zu beschreiben und zu erläutern.Siehe Visualisieren und Verstehen von Code.
Tipp |
---|
Generieren Sie Abhängigkeitsdiagramme und Sequenzdiagramme nach jeder Änderung erneut aus dem Code, um die Auswirkungen der vorgenommenen Änderungen zu sehen. |
Um Änderungen an anderen Teilen des Systems zu beschreiben, wie z. B. Komponenten oder Interaktionen, kann das Team diese Elemente bei Bedarf auf Whiteboards zeichnen.Sie wurden möglicherweise auch die folgenden Diagramme in Visual Studio, sodass die Details von beiden Teams erfasst, verwaltet und verstanden werden können:
Diagramme |
Beschreibt |
---|---|
Aktivitätsdiagramm (UML) Thema |
Der Ablauf von Schritten, wenn das System erkennt, dass ein Kunde erneut eine Bestellung bei einem Restaurant aufgibt, und der Kunden aufgefordert wird, eine Kritik zu schreiben |
Klassendiagramm (UML) Thema |
Logische Klassen und ihre BeziehungenBeispielsweise wird eine neue Klasse hinzugefügt, um eine Kritik und die Beziehungen mit anderen Entitäten zu beschreiben, wie z. B. Restaurant, Menü und Kunde. Um Kritiken einem Kunden zuzuordnen, muss das System Kundendetails speichern.Ein UML-Klassendiagramm kann helfen, diese Details zu klären. |
Codebasiertes Klassendiagramm Siehe Gewusst wie: Hinzufügen von Klassendiagrammen zu Projekten (Klassen-Designer). |
Vorhandene Klassen in Code |
Komponentendiagramm (UML) Thema |
Die Teile des Systems auf höherer Ebene, wie z. B. die Dinner Now-Website und ihre SchnittstellenDiese Schnittstellen definieren, wie Komponenten untereinander durch die Methoden oder Dienste interagieren, die sie bereitstellen und nutzen. |
Sequenzdiagramm (UML) Thema |
Die Sequenz der Interaktionen zwischen Instanzen |
Das folgende Komponentendiagramm zeigt z. B. die neue Komponente an, die Teil der Dinner Now-Websitekomponente ist.Die Komponente ReviewProcessing behandelt die Funktionalität zum Erstellen von Kritiken und wird orangefarben angezeigt:
UML-Komponentendiagramm
Das folgende Sequenzdiagramm zeigt die Reihenfolge von Interaktionen an, die auftreten, wenn von der Dinner Now-Website überprüft wird, ob der Kunde schon einmal eine Bestellung bei einem Restaurant aufgegeben hat.Wenn dies zutrifft, wird der Kunde aufgefordert, eine Kritik zu erstellen, die an das Restaurant gesendet und auf der Website veröffentlicht wird:
UML-Sequenzdiagramm
Sicherstellen der Konsistenz von Code und Entwurf
Dinner Now muss sicherstellen, dass der aktualisierte Code konsistent mit dem Entwurf bleibt.Es werden Ebenendiagramme erstellt, die die Funktionsebenen im System beschreiben, die erlaubten Abhängigkeiten zwischen ihnen angeben und diesen Ebenen Lösungsartefakte zuordnen.
Diagramm |
Beschreibt |
---|---|
Ebenendiagramm Thema |
Die logische Architektur des Codes Mit einem Ebenendiagramm werden die Artefakte in einer Visual Studio-Projektmappe organisiert und abstrakten Gruppen, genannt Ebenen, zugeordnet.Diese Ebenen identifizieren die Rollen, Aufgaben oder Funktionen, die diese Artefakte im System spielen. Ebenendiagramme sind hilfreich, um den beabsichtigten Entwurf des Systems zu beschreiben und in der Entwicklung befindlichen Code anhand des Entwurfs zu validieren. Um Ebenen zu erstellen, ziehen Sie Elemente aus dem Projektmappen-Explorer, Abhängigkeitsdiagrammen oder Architektur-Explorer.Verwenden Sie die Toolbox, oder klicken Sie mit der rechten Maustaste auf die Diagrammoberfläche, um neue Ebenen zu zeichnen. Um vorhandene Abhängigkeiten anzuzeigen, klicken Sie mit der rechten Maustaste auf die Ebenendiagrammoberfläche, und klicken Sie dann auf Abhängigkeiten generieren.Um beabsichtigte Abhängigkeiten anzugeben, zeichnen Sie neue Abhängigkeiten. |
Das folgende Ebenendiagramm beschreibt z. B. Abhängigkeiten zwischen Ebenen sowie die Anzahl der Artefakte, die jeder Ebene zugeordnet sind:
Ebenendiagramm
Um sicherzustellen, dass Konflikte mit dem Entwurf nicht während der Codeentwicklung auftreten, verwenden die Teams Ebenenvalidierung in Builds, die auf Team Foundation Build ausgeführt werden.Sie erstellen auch eine benutzerdefinierte MSBuild-Aufgabe, Ebenenvalidierung in den Eincheckvorgängen zu erfordern.Mithilfe von Buildberichten werden Validierungsfehler erfasst.
Thema
Allgemeine Tipps zum Erstellen und Verwenden von Modellen
Die meisten Diagramme bestehen aus Knoten, die durch Linien verbunden sind.Für jeden Diagrammtyp stellt die Toolbox verschiedene Arten von Knoten und Linien bereit.
Zum Öffnen der Toolbox klicken Sie im Menü Ansicht auf Toolbox.
Um einen Knoten zu erstellen, ziehen Sie ihn von der Toolbox in das Diagramm.Bestimmte Arten von Knoten müssen auf vorhandene Knoten gezogen werden.In einem Komponentendiagramm muss einer vorhandenen Komponente z. B. ein neuer Port hinzugefügt werden.
Um eine Linie oder Verbindung zu erstellen, klicken Sie in der Toolbox auf das entsprechende Tool, klicken Sie auf den Quellknoten und dann auf den Zielknoten.Einige Linien können nur zwischen bestimmten Arten von Knoten erstellt werden.Wenn Sie den Mauszeiger über mögliche Quellen oder Ziele bewegen, wird angezeigt, ob Sie eine Verbindung erstellen können.
Wenn Sie Elemente in UML-Diagrammen erstellen, werden diese auch einem allgemeinen Modell hinzugefügt.Die UML-Diagramme in einem Modellierungsprojekt sind Ansichten dieses Modells.Elemente in einem Ebenendiagramm sind Teil des Modellierungsprojekts, obwohl sie nicht im allgemeinen Modell gespeichert werden.
Um das Modell, auf dem Menü Architektur, zeigen auf Fenster finden, und auf UML-Modell-Explorer klicken.
In einigen Fällen können Sie bestimmte Elemente aus UML-Modell-Explorer in ein UML-Diagramm ziehen.Einige Elemente innerhalb des gleichen Modells können in verschiedenen Diagrammen verwendet werden, um alternative Ansichten der Architektur anzuzeigen.Sie können z. B. eine Komponente in ein anderes Komponentendiagramm oder ein Sequenzdiagramm ziehen, um sie als Akteur zu verwenden.
Visual Studio Ultimate-Unterstützung UML 2.1.2.In dieser Übersicht werden nur die Hauptfunktionen der UML-Diagramme in dieser Version, es gibt jedoch viele Bücher, die UML und dessen Verwendung im Detail behandeln.
Siehe Entwickeln von Modellen für den Softwareentwurf.
Planen und Nachverfolgen der Arbeit
Visual Studio Ultimate, Diagramme, das modelliert werden mit Team Foundation Server, damit Sie planen können, verwalten und bequem integriert. Beide Teams verwenden Modelle, um Testfälle und Entwicklungsaufgaben zu identifizieren und um ihre Arbeit einzuschätzen.Lucerne erstellt und verknüpft Team Foundation Server-Arbeitsaufgaben mit Modellelementen, wie Anwendungsfällen oder Komponenten.Auf diese Weise kann der Status überwacht werden, und die Arbeit kann bis zu den Benutzeranforderungen zurückverfolgt werden.Somit wird sichergestellt, dass die Änderungen stets den Anforderungen entsprechen.
Im Verlauf ihrer Arbeit aktualisieren die Teams die Arbeitsaufgaben, um die Zeit zu berücksichtigen, die sie mit ihren Aufgaben verbracht haben.Sie auch Überwachung und Berichterstellung des Status der Arbeit, indem sie die folgenden Team Foundation Server-Funktionen verwenden:
Tägliche Burndownberichte, die angeben, ob die geplante Arbeit in der erwarteten Zeit angeschlossen wird.Sie werden andere ähnliche Berichte von Team Foundation Server, um den Status von Fehlern zu verfolgen.
Ein Iterationsarbeitsblatt, das Microsoft Excel verwendet, um dem Team beim, überwachen und Verteilen der Arbeitsauslastung zwischen Membern.Dieses Arbeitsblatt ist mit Team Foundation Server verknüpft und Fokus für Diskussionen während ihrer regulären Statusbesprechungen bereitstellt.
Ein Entwicklungsdashboard, das Office Project verwendet, um das Team zu halten, informierte sich zu wichtigen Projektinformationen.
Thema
Erstellen, Anpassen und Verwalten von Berichten für Visual Studio ALM
Planen von Aufgaben und Zuweisen von Ressourcen mit Microsoft Project
Testen, Überprüfen und Einchecken von Code
Während die Teams jede Aufgabe abschließen, überprüfen sie ihren Code in Team Foundation-Versionskontrolle und empfangen Erinnerungen von Team Foundation Server, wenn dies vergessen.Bevor Team Foundation Server das Einchecken akzeptiert, führen die Teams Komponententests und Ebenenvalidierung aus, um den Code anhand der Testfälle und den Entwurf zu überprüfen.Verwenden Sie Team Foundation Server, um Builds, automatisierte Komponententests und regelmäßig eine Ebenenvalidierung auszuführen.Dadurch wird sichergestellt, dass der Code die folgenden Kriterien erfüllt:
Er funktioniert.
Bereits funktionierender Code wird dadurch nicht beeinträchtigt.
Er steht nicht in Konflikt mit dem Entwurf.
Dinner Now verfügt über eine große Auflistung automatisierter Tests, die Lucerne wiederverwenden kann, da fast alle weiterhin gültig sind.Lucerne kann außerdem auf diesen Tests aufbauen und neue hinzufügen, um neue Funktionen abzudecken.Beide verwenden auch Visual Studio Ultimate, um manuelle Tests auszuführen.
Um sicherzustellen dass der Code dem Entwurf entspricht, konfigurieren die Teams ihre Builds in Team Foundation Build um Ebenenvalidierung in. Wenn Konflikte auftreten, wird ein Bericht mit den Details generiert auf.
Thema
Aktualisieren des Systems mithilfe von Visualisierung und Modellierung
Lucerne und Dinner Now müssen ihre Zahlungssysteme integrieren.Die folgenden Abschnitte zeigen die Modellierungsdiagramme in Visual Studio Ultimate ihnen helfen, diese Aufgabe ausgeführt werden:
Verstehen der Benutzeranforderungen: Anwendungsfalldiagramme
Verstehen des Geschäftsprozesses: Aktivitätsdiagramme
Beschreiben der Systemstruktur: Komponentendiagramme
Beschreiben der Interaktionen: Sequenzdiagramme
Visualisieren von vorhandenem Code: Abhängigkeitsdiagramme
Definieren eines Glossars der Typen: Klassendiagramme
Beschreiben der logischen Architektur: Ebenendiagramme
Thema
Verstehen der Benutzeranforderungen: Anwendungsfalldiagramme
Anwendungsfalldiagramme fassen zusammen, welche Aktivitäten ein System unterstützt und von wem diese ausgeführt werden.Lucerne verwendet ein Anwendungsfalldiagramm, um die folgenden Informationen über das Dinner Now-System zu erhalten:
Kunden geben Bestellungen auf.
Restaurants empfangen Bestellungen.
Das externe Zahlungsverarbeitungsgateway, das vom Dinner Now-Zahlungssystem zum Überprüfen von Zahlungen verwendet wird, liegt außerhalb des Projektumfangs der Website.
Das Diagramm zeigt auch, wie einige der Hauptanwendungsfälle in kleinere Anwendungsfälle unterteilt sind.Lucerne möchte sein eigenes Zahlungssystem verwenden.Der Anwendungsfall Process Payment (Zahlung verarbeiten) wird in einer anderen Farbe hervorgehoben, um auf erforderliche Änderungen hinzuweisen:
Hervorheben von "Process Payment" (Zahlung verarbeiten) im Anwendungsfalldiagramm
Wenn die Entwicklungszeit knapp wäre, könnte das Team erwägen, dass Kunden die Restaurants direkt bezahlen.Um dies zu verdeutlichen, würden sie den Anwendungsfall Process Payment (Zahlung verarbeiten) durch einen Anwendungsfall außerhalb der Dinner Now-Systemgrenze ersetzen.Anschließend würde der Kunde direkt mit dem Restaurant verknüpft, um anzugeben, dass Dinner Now nur die Bestellungen verarbeitet:
Neudefinition des Projektumfangs zum Bezahlen der Restaurants im Anwendungsfalldiagramm
Thema
Zeichnen eines Anwendungsfalldiagramms
Ein Anwendungsfalldiagramm umfasst die folgenden Hauptfunktionen:
Akteure stellen Rollen dar, die Personen, Organisationen, Maschinen oder Softwaresysteme spielen.Bespielsweise sind Kunde, Restaurant und das Dinner Now-Zahlungssystem Akteure.
Anwendungsfälle stellen Interaktionen zwischen Akteuren und dem System in der Entwicklung dar.Sie können eine beliebige Skala der Interaktion von einem einzelnen Mausklick oder einer Meldung bis hin zu einer mehrtägigen Transaktion darstellen.
Zuordnungen verknüpfen Akteure mit Anwendungsfällen.
Ein größerer Anwendungsfall kann kleinere einschließen, z. B. ist Select Restaurant (Restaurant auswählen) in Create Order (Bestellung aufgeben) enthalten.Sie können einen Anwendungsfall erweitern. Einem erweiterten Anwendungsfall werden Ziele und Schritte hinzugefügt, um anzugeben, dass der Anwendungsfall nur unter bestimmten Bedingungen auftritt.Anwendungsfälle können auch voneinander erben.
Ein Subsystem stellt das Softwaresystem dar, das sich in der Entwicklung befindet, oder eine seiner Komponenten.Dabei handelt es sich um ein großes Feld, das Anwendungsfälle enthält.Ein Anwendungsfalldiagramm klärt ab, was sich innerhalb oder außerhalb der Subsystemgrenze befindet.Um anzugeben, dass der Benutzer bestimmte Ziele auf andere Weise erreichen muss, zeichnen Sie diese Anwendungsfälle außerhalb der Subsystemgrenze.
Artefakte verknüpfen Elemente im Diagramm mit anderen Diagrammen oder Dokumenten.
Thema
Zusammenfassung: Vorteile von Anwendungsfalldiagrammen
Mit Anwendungsfalldiagrammen können Sie Folgendes visualisieren:
Die Aktivitäten, die ein System unterstützt bzw. nicht unterstützt
Die Personen und externen Systeme, von denen diese Aktivitäten ausgeführt werden
Die Hauptkomponenten des Systems, die die einzelnen Aktivitäten unterstützen und die Sie als im übergeordneten System geschachtelte Subsysteme darstellen können
Wie ein Anwendungsfall in kleinere Anwendungsfälle oder Variationen unterteilt sein kann
Beziehung zu anderen Diagrammen
Diagramm |
Beschreibt |
---|---|
Aktivitätsdiagramm |
Der Ablauf von Schritten in einem Anwendungsfall und die Personen, die diese Schritte in diesem Anwendungsfall ausführen. Die Namen von Anwendungsfällen spiegeln häufig die Schritte in einem Aktivitätsdiagramm wider.Aktivitätsdiagramme unterstützen Elemente wie z. B. Entscheidungen, Zusammenführungen, Eingaben und Ausgaben, gleichzeitige Abläufe usw. Thema |
Sequenzdiagramm |
Die Reihenfolge der Interaktionen zwischen den Teilnehmern in einem Anwendungsfall. Thema |
Klassendiagramm (UML) |
Die am Anwendungsfall beteiligten Entitäten oder Typen. Thema |
Verstehen des Geschäftsprozesses: Aktivitätsdiagramme
Aktivitätsdiagramme beschreiben den Ablauf von Schritten in einem Geschäftsprozess und bieten eine einfache Möglichkeit, den Workflow zu kommunizieren.Ein Entwicklungsprojekt kann mehrere Aktivitätsdiagramme umfassen.Normalerweise umfasst eine Aktivität alle Aktionen, die sich aus einer externen Aktion ergeben, wie z. B. das Bestellen einer Mahlzeit, das Aktualisieren eines Menüs oder das Hinzufügen eines neuen Restaurants zum Geschäft.Eine Aktivität kann auch die Details einer komplexen Aktion beschreiben.
Lucerne aktualisiert das folgende Aktivitätsdiagramm, um zu zeigen, dass Lucerne die Zahlung verarbeitet und das Restaurant bezahlt.Das Dinner Now-Zahlungssystem wird durch das Lucerne-Zahlungssystem ersetzt, wie hervorgehoben wird:
Ersetzen des Dinner Now-Zahlungssystems im Aktivitätsdiagramm
Mit dem aktualisierten Diagramm können Lucerne und Dinner Now darstellen, an welcher Stelle das Zahlungssystem von Lucerne in den Geschäftsprozess passt.In dieser Version werden Kommentare zum Identifizieren der Rollen verwendet, die die Schritte ausführen.Mithilfe von Linien werden Verantwortlichkeitsbereiche erstellt, mit denen die Schritte nach Rolle organisiert werden.
Die Teams könnten auch einen alternativen Textabschnitt in Erwägung ziehen, bei dem der Kunde das Restaurant bezahlt, nachdem die Bestellung geliefert wurde.Dies würde zu anderen Anforderungen an das Softwaresystem führen.
Zuvor hat Dinner Now diese Diagramme auf ein Whiteboard oder in PowerPoint gezeichnet.Sie verwenden nun auch Visual Studio Ultimate, um diese Diagramme zu zeichnen, sodass beide Teams die Details erfassen, verstehen und verwalten können.
Thema
Zeichnen eines Aktivitätsdiagramms
Ein Aktivitätsdiagramm umfasst die folgenden Hauptfunktionen:
Einen Startknoten, der die erste Aktion der Aktivität angibt.
Das Diagramm sollte immer einen dieser Knoten enthalten.
Aktionen, die Schritte beschreiben, bei denen der Benutzer oder die Software eine Aufgabe ausführt.
Kontrollflüsse, die den Ablauf zwischen Aktionen anzeigen.
Entscheidungsknoten, die bedingte Verzweigungen im Ablauf darstellen.
Gabelungsknoten, die einzelne Abläufe in gleichzeitige Abläufe teilen.
Aktivitätsendknoten, die Enden der Aktivität anzeigen.
Obwohl diese Knoten optional sind, ist deren Aufnahme in das Diagramm nützlich, um zu verdeutlichen, wo die Aktivität endet.
Thema
Zusammenfassung: Vorteile von Aktivitätsdiagrammen
Mit Aktivitätsdiagrammen können Sie den Steuerungsablauf und die Informationen zwischen den Aktionen eines Geschäfts, Systems oder Programms visuell darstellen und beschreiben.Dabei handelt es sich um eine einfache und hilfreiche Möglichkeit, anderen Personen den Workflow zu erläutern.
Beziehung zu anderen Diagrammen
Diagramm |
Beschreibung |
---|---|
Anwendungsfalldiagramm |
Fassen Sie die Aktivitäten zusammen, die jeder Akteur ausführt. Thema |
Komponentendiagramm |
Visualisieren Sie das System als Auflistung von wiederverwendbaren Komponenten, die durch einen genau definierten Satz von Schnittstellen Verhaltensweisen bereitstellen oder nutzen. Thema |
Beschreiben der Systemstruktur: Komponentendiagramme
Komponentendiagramme beschreiben ein System als Auflistung trennbarer Komponenten, die durch einen genau definierten Satz von Schnittstellen Verhaltensweisen bereitstellen oder nutzen.Die Komponenten können einen beliebigen Umfang aufweisen und auf beliebige Art miteinander verbunden sein.
Damit Lucerne und Dinner Now die Komponenten und Schnittstellen des Systems leichter visualisieren und besprechen können, werden die folgenden Komponentendiagramme erstellt:
Komponenten des Zahlungssystems von Dinner Now
Dieses Diagramm zeigt verschiedene Komponententypen und ihre Abhängigkeiten.Sowohl die Dinner Now-Website als auch das Zahlungssystem von Lucerne erfordern z. B. das externe Zahlungsverarbeitungsgateway zum Überprüfen von Zahlungen.Die Pfeile zwischen Komponenten stellen die Abhängigkeiten dar, mit denen angegeben wird, welche Komponenten die Funktionen anderer Komponenten erfordern.
Um das Zahlungssystem von Lucerne zu verwenden, muss die Dinner Now-Website für die Verwendung der Schnittstellen PaymentApproval und PayableInsertion des Zahlungssystems von Lucerne aktualisiert werden.
Das folgende Diagramm zeigt eine spezielle Konfiguration der Komponenten für die Dinner Now-Website.Diese Konfiguration gibt an, dass jede Instanz der Website aus vier Teilen besteht:
CustomerProcessing
OrderProcessing
ReviewProcessing
PaymentProcessing
Diese Teile sind Instanzen der angegebenen Komponententypen und sind wie folgt verbunden:
Komponenten innerhalb der Dinner Now-Website
Die Dinner Now-Website delegiert sein Verhalten an diese Teile, die die Funktionen der Website behandeln.Die Pfeile zwischen der übergeordneten Komponente und ihren Mitgliedskomponenten weisen auf Delegierungen hin, mit denen angegeben wird, welche Teile die Nachricht behandeln, die das übergeordnete Element über die Schnittstellen empfängt oder sendet.
In dieser Konfiguration werden die Kundenzahlungen von der PaymentProcessing-Komponente verarbeitet.Daher muss sie für die Integration mit dem Zahlungssystem von Lucerne aktualisiert werden.In anderen Szenarien können mehrere Instanzen eines Komponententyps in derselben übergeordneten Komponente vorhanden sein.
Thema
Zeichnen eines Komponentendiagramms
Ein Komponentendiagramm umfasst die folgenden Hauptfunktionen:
Komponenten, die trennbare Stücke der Systemfunktionalität darstellen.
Bereitgestellte Schnittstellenports, die Gruppen von Nachrichten oder Aufrufen darstellen, die von Komponenten implementiert und von anderen Komponenten oder externen Systemen verwendet werden.
Erforderliche Schnittstellenports, die Gruppen von Nachrichten oder Aufrufen darstellen, die von Komponenten an andere Komponenten oder externe Systeme gesendet werden.Diese Art von Port beschreibt die Vorgänge, die eine Komponente von anderen Komponenten oder externen Systemen mindestens erwartet.
Teile sind Elemente von Komponenten und üblicherweise Instanzen anderer Komponenten.Ein Teil ist ein Stück des internen Entwurfs der übergeordneten Komponente.
Abhängigkeiten, die angeben, dass Komponenten die Funktionalität anderer Komponenten erfordern.
Delegierungen, die angeben, dass Teile einer Komponente Nachrichten behandeln, die von der übergeordneten Komponente gesendet oder empfangen werden.
Thema
Zusammenfassung: Vorteile von Komponentendiagrammen
Mit Komponentendiagramme können Sie Folgendes visualisieren:
Das System als Auflistung trennbarer Teile, unabhängig von ihrer Implementierungssprache oder ihres Formats.
Komponenten mit genau definierten Schnittstellen, um den Entwurf leichter verstehen und aktualisieren zu können, wenn sich die Anforderungen ändern.
Beziehung zu anderen Diagrammen
Diagramm |
Beschreibung |
---|---|
Abhängigkeitsdiagramm |
Visualisieren Sie die Organisation und Beziehungen in vorhandenem Code. Um Kandidaten für Komponenten zu identifizieren, erstellen Sie ein Abhängigkeitsdiagramm und gruppieren Elemente nach ihrer Funktion im System. Thema |
Sequenzdiagramm |
Visualisieren Sie die Sequenz der Interaktionen zwischen Komponenten oder den Teilen innerhalb einer Komponente. Um aus einer Komponente eine Lebenslinie in einem Sequenzdiagramm zu erstellen, klicken Sie mit der rechten Maustaste auf die Komponente, und klicken Sie dann auf Lebenslinie erstellen. Thema |
Klassendiagramm (UML) |
Definieren Sie die Schnittstellen an den bereitgestellten oder angeforderten Ports sowie die Klassen, die die Funktionalität der Komponenten implementieren. Thema |
Ebenendiagramm |
Beschreiben Sie die logische Architektur des Systems in Bezug auf die Komponenten.Stellen Sie durch Ebenenvalidierung sicher, dass der Code konsistent mit dem Entwurf bleibt. Thema |
Aktivitätsdiagramm |
Visualisieren Sie die interne Verarbeitung, die Komponenten als Reaktion auf eingehende Nachrichten durchführen. Thema |
Visualisieren von vorhandenem Code: Abhängigkeitsdiagramme
Abhängigkeitsdiagramme zeigen die aktuelle Organisation und die Beziehungen im Code.Elemente werden im Diagramm durch Knoten dargestellt, und Beziehungen werden durch Links dargestellt.Mit Abhängigkeitsdiagrammen können Sie die folgenden Arten von Aufgaben ausführen:
Untersuchen von unbekanntem Code
Verstehen, wo und wie sich eine vorgeschlagene Änderung auf vorhandenen Code auswirken könnte
Auffinden von Bereichen mit Komplexität, natürlichen Ebenen oder Mustern sowie anderen Bereichen, die von Verbesserungen profitieren könnten
Dinner Now muss z. B. die Kosten für die Aktualisierung der PaymentProcessing-Komponente schätzen.Diese hängen teilweise davon ab, wie sehr sich diese Änderung auf andere Teile des Systems auswirkt.Zur Verdeutlichung erstellt einer der Dinner Now-Entwickler Abhängigkeitsdiagramme aus dem Code und richtet den Fokus des Projektumfangs auf die Bereiche aus, die durch die Änderung betroffen sein könnten.
Das folgende Diagramm zeigt die Abhängigkeiten zwischen der PaymentProcessing-Klasse und anderen Teilen des Dinner Now-Systems, die markiert dargestellt werden:
Abhängigkeitsdiagramm für das Zahlungssystem von Dinner Now
Der Entwickler untersucht das Diagramm, indem er die PaymentProcessing-Klasse erweitert und die zugehörigen Member auswählt, um die potenziell betroffenen Bereiche anzuzeigen:
Methoden in der PaymentProcessing-Klasse und ihre Abhängigkeiten
Für das Zahlungssystem von Lucerne wird das folgende Diagramm generiert, um die zugehörigen Klassen, Methoden und Abhängigkeiten zu untersuchen.Das Team erkennt, dass das Lucerne-System auch Arbeit erfordern könnte, damit es mit anderen Teilen von Dinner Now interagieren kann:
Abhängigkeitsdiagramm für das Zahlungssystem von Lucerne
Beide Teams arbeiten zusammen, um die Änderungen zu ermitteln, die zum Integrieren der beiden Systeme erforderlich sind.Es wird entschieden, einen Teil des Codes umzugestalten, damit er einfacher zu aktualisieren ist.Die PaymentApprover-Klasse wird in den DinnerNow.Business-Namespace verschoben und erfordert einige neue Methoden.Die Dinner Now-Klassen, die Transaktionen behandeln, erhalten einen eigenen Namespace.Die Teams erstellen und verwenden Arbeitsaufgaben, um ihre Arbeit zu planen, zu organisieren und nachzuverfolgen.Wo sinnvoll, werden Arbeitsaufgaben mit Modellelementen verknüpft.
Nach der Neuorganisation des Codes generieren die Teams ein neues Abhängigkeitsdiagramm, um die aktualisierte Struktur und die Beziehungen anzuzeigen:
Abhängigkeitsdiagramm mit neu organisiertem Code
Dieses Diagramm zeigt, dass sich die PaymentApprover-Klasse nun im DinnerNow.Business-Namespace befindet und über ein paar neue Methoden verfügt.Die Dinner Now-Transaktionsklassen verfügen jetzt über einen eigenen PaymentSystem-Namespace, mit dem der Code später leichter behandelt werden kann.
Erstellen eines Abhängigkeitsdiagramms
Folgen Sie den folgenden Schritten zum Generieren eines Abhängigkeitsdiagramms, um eine schnelle Übersicht über Quellcode zu erhalten:
Klicken Sie im Menü auf ArchitekturAbhängigkeitsdiagramm generieren und dann auf Für Projektmappe.
Für eine schnelle Übersicht über kompilierten Code, erstellen Sie ein leeres Abhängigkeitsdiagramm, und ziehen Sie dann Assemblydateien, oder Binärdateien in die Diagrammoberfläche.
Siehe Visualisieren von Codeabhängigkeiten in Abhängigkeitsdiagrammen.
Um bestimmte Code- oder Projektmappenelemente, dem Projektmappen-Explorer oder Architektur-Explorer untersuchen, um die Elemente und Beziehungen auszuwählen, die Sie visuell darstellen möchten.Sie können dann entweder ein neues Diagramm generieren oder einem vorhandenen Diagramm ausgewählte Elemente hinzufügen.
Weitere Informationen finden Sie unter Visualisieren von Codeabhängigkeiten in Abhängigkeitsdiagrammen und Suchen von Code im Architektur-Explorer.
Um das Diagramm besser zu untersuchen, können Sie das Layout den auszuführenden Aufgaben entsprechend neu anordnen.
Wählen Sie beispielsweise ein Strukturlayout aus, um die Ebenen im Code zu visualisieren.Siehe Durchsuchen und Neuanordnen von Abhängigkeitsdiagrammen.
Um sich auf bestimmte Bereiche des Diagramms zu konzentrieren, können Sie den Bereich indem Sie Elemente herausfiltern oder deren Darstellung anpassen.Siehe Bearbeiten und Anpassen von Abhängigkeitsdiagrammen.
Zusammenfassung: Vorteile von Abhängigkeitsdiagrammen
Mit Abhängigkeitsdiagrammen können Sie Folgendes durchführen:
Verdeutlichen der Organisation und Beziehungen in vorhandenem Code
Identifizieren der Bereiche, die von einer vorgeschlagenen Änderung betroffen sein könnten
Auffinden von Bereichen mit Komplexität, Mustern oder Ebenen sowie andere Bereichen, die Sie optimieren könnten, um den Code leichter verwalten, ändern und wiederverwenden zu können
Beziehung zu anderen Diagrammen
Diagramm |
Beschreibt |
---|---|
Ebenendiagramm |
Die logische Architektur des SystemsStellen Sie durch Ebenenvalidierung sicher, dass der Code konsistent mit dem Entwurf bleibt. Erstellen Sie ein Abhängigkeitsdiagramm, und gruppieren Sie verwandte Elemente, um vorhandene oder beabsichtigte Ebenen besser identifizieren zu können.Ziehen Sie Elemente aus dem Diagramm oder Architektur-Explorer, um ein Ebenendiagramm zu erstellen. Thema |
Komponentendiagramm |
Komponenten, ihre Schnittstellen und ihre Beziehungen Um Komponenten zu identifizieren, erstellen Sie ein Abhängigkeitsdiagramm und gruppieren Elemente nach ihrer Funktion im System. Thema |
Klassendiagramm (UML) |
Klassen, ihre Attribute und Vorgänge und ihre Beziehungen Um diese Elemente leichter zu identifizieren, können Sie ein Diagrammdokument mit den entsprechenden Elementen erstellen. Thema |
Klassendiagramm (codebasiert) |
Vorhandene Klassen in Code Verwenden Sie den Klassen-Designer, um eine vorhandene Klasse in Code zu visualisieren und zu ändern. Siehe Gewusst wie: Hinzufügen von Klassendiagrammen zu Projekten (Klassen-Designer). |
Beschreiben der Interaktionen: Sequenzdiagramme
Sequenzdiagramme beschreiben eine Reihe von Interaktionen zwischen Teilen eines Systems.Die Teile können beliebig skaliert sein.Sie können z. B. von einzelnen Objekten in einem Programm bis hin zu großen Subsystemen oder externen Akteuren reichen.Skala und Typ der Interaktionen können beliebig sein.Sie können z. B. von einzelnen Nachrichten bis hin zu erweiterten Transaktionen reichen, und es kann sich um Funktionsaufrufe oder Webdienstmeldungen handeln.
Um die Schritte im Anwendungsfall Process Payment (Zahlung verarbeiten) besser besprechen und erläutern zu können, erstellen Lucerne und Dinner Now das folgende Sequenzdiagramm aus dem Komponentendiagramm.Die Lebenslinien spiegeln die Dinner Now-Websitekomponente und seine Teile wider.Die Meldungen, die zwischen Lebenslinien auftreten, folgen den Verbindungen in den Komponentendiagrammen:
Sequenzdiagramm für den Anwendungsfall "Process Payment" (Zahlung verarbeiten)
Das Sequenzdiagramm zeigt, dass die Dinner Now-Website ProcessOrder in einer Instanz von OrderProcessing aufruft, wenn der Kunde eine Bestellung aufgibt.Anschließend wird ProcessPayment in PaymentProcessing von OrderProcessing aufgerufen.Dies wird fortgeführt, bis die Zahlung vom externen Zahlungsverarbeitungsgateway überprüft wird.Erst dann wird die Kontrolle an die Dinner Now-Website zurückgegeben.
Lucerne muss die Kosten für die Integration ihres Zahlungssystem in das Dinner Now-System schätzen.Zur Verdeutlichung generiert einer der Entwickler Sequenzdiagramme aus dem Code, um die vorhandenen Interaktionen zu visualisieren.
Thema
Zeichnen eines Sequenzdiagramms
Ein Sequenzdiagramm umfasst die folgenden Hauptfunktionen:
Vertikale Lebenslinien stellen Akteure oder Instanzen von Softwareobjekten dar.
Klicken Sie auf die Lebenslinie, um ein Akteursymbol hinzuzufügen, mit dem angegeben wird, dass sich ein Teilnehmer außerhalb des Systems in der Entwicklung befindet.Legen Sie im Fenster Eigenschaftenfenster die Option Akteur auf Wahr fest.Wenn das Fenster Eigenschaften nicht angezeigt wird, drücken Sie F4.
Horizontale Meldungen stellen Methodenaufrufe, Webdienstmeldungen oder eine andere Kommunikationsarten dar.Vorkommnisausführungen sind vertikal schraffierte Rechtecke, die auf Lebenslinien angezeigt werden und die Zeiträume darstellen, in denen Objektprozessaufrufe empfangen werden.
Bei einer synchronen Meldung wartet das Absenderobjekt auf das <<Zurückgeben>> der Kontrolle wie bei einem regulären Funktionsaufruf.Bei einer asynchronen Meldung kann der Absender unmittelbar fortfahren.
Verwenden Sie Meldungen vom Typ <<Erstellen>>, um auf die Erstellung von Objekten durch andere Objekte hinzuweisen.Dies sollte die erste an das Objekt gesendete Meldung sein.
Thema
Zusammenfassung: Vorteile von Sequenzdiagrammen
Mit Sequenzdiagrammen können Sie Folgendes visualisieren:
Der Kontrollfluss, der während der Ausführung eines Anwendungsfalls zwischen Akteuren oder Objekten übertragen wird.
Die Implementierung eines Methodenaufrufs oder einer Meldung
Beziehung zu anderen Diagrammen
Diagramm |
Beschreibung |
---|---|
Klassendiagramm (UML) |
Definieren Sie die Klassen, die Lebenslinien darstellen, sowie die Parameter und Rückgabewerte, die in zwischen Lebenslinien gesendeten Meldungen verwendet werden. Um eine Klasse aus einer Lebenslinie zu erstellen, klicken Sie mit der rechten Maustaste auf die Lebenslinie, und klicken Sie dann auf Klasse erstellen oder Schnittstelle erstellen.Um eine Lebenslinie aus einem Typ in einem Klassendiagramm zu erstellen, klicken Sie mit der rechten Maustaste auf den Typ, und klicken Sie dann auf Lebenslinie erstellen erstellen. Thema |
Komponentendiagramm |
Beschreiben Sie die Komponenten, die Lebenslinien darstellen, sowie die Schnittstellen, die das von Meldungen dargestellte Verhalten bereitstellen und nutzen. Um eine Lebenslinie aus einem Komponentendiagramm zu erstellen, klicken Sie mit der rechten Maustaste auf die Komponente, und klicken Sie dann auf Lebenslinie erstellen. Thema |
Anwendungsfalldiagramm |
Fassen Sie die Interaktionen zwischen Benutzern und Komponenten in einem Sequenzdiagramm als Anwendungsfall zusammen, der das Ziel eines Benutzers darstellt. Thema |
Definieren eines Glossars der Typen: Klassendiagramme
Klassendiagramme definieren die am System beteiligten Entitäten, Begriffe oder Konzepte sowie ihre Beziehungen untereinander.Beispielsweise können Sie diese Diagramme während der Entwicklung verwenden, um die Attribute und Vorgänge für jede Klasse unabhängig von Implementierungssprache oder Format zu beschreiben.
Um die am Anwendungsfall Process Payment (Zahlung verarbeiten) beteiligten Entitäten zu erläutern und zu besprechen, zeichnet Lucerne das folgende Klassendiagramm:
Process Payment-Entitäten in einem Klassendiagramm
Dieses Diagramm zeigt, dass ein Kunde über viele Bestellungen und verschiedene Methoden zum Bezahlen der Bestellungen verfügen kann.BankAccount und CreditCard erben beide von Payment.
Während der Entwicklung verwendet Lucerne das folgende Klassendiagramm, um die Details der einzelnen Klassen zu beschreiben und zu besprechen:
Process Payment-Details im Klassendiagramm
Thema
Zeichnen eines Klassendiagramms
Ein Klassendiagramm umfasst die folgenden Hauptfunktionen:
Typen wie z. B. Klassen, Schnittstellen und Enumerationen:
Eine Klasse ist die Definition von Objekten, die gemeinsame strukturelle Merkmale oder Verhaltensmerkmale aufweisen.
Eine Schnittstelle definiert einen Teil des extern sichtbaren Verhaltens eines Objekts.
Eine Enumeration ist eine Klassifizierung, die eine Liste von literalen Werten enthält.
Attribute sind Werte eines bestimmten Typs, der die einzelnen Instanzen einer Klassifizierung beschreiben.Eine Klassifizierung ist ein allgemeiner Name für Typen, Komponenten, Anwendungsfälle und sogar Akteure.
Vorgänge sind Methoden oder Funktionen, die Instanzen einer Klassifizierung ausführen können.
Eine Zuordnung gibt eine Art von Beziehung zwischen zwei Klassifizierungen an.
Eine Aggregation ist eine Zuordnung, die einen gemeinsamen Besitz zwischen Klassifizierungen angibt.
Eine Komposition ist eine Zuordnung, die eine ganzteilige Beziehung zwischen Klassifizierungen angibt.
Um Aggregationen oder Kompositionen anzuzeigen, legen Sie die Eigenschaft Aggregation für eine Zuordnung fest.Mit Freigegeben werden Aggregationen und mit Verbund werden Kompositionen angezeigt.
Eine Abhängigkeit gibt an, dass durch Änderungen an der Definition einer Klassifizierung möglicherweise auch die Definition einer anderen Klassifizierung geändert wird.
Eine Generalisierung gibt an, dass eine bestimmte Klassifizierung einen Teil ihrer Definition von einer allgemeinen Klassifizierung erbt.Eine Realisierung gibt an, dass eine Klasse die Vorgänge und Attribute implementiert, die von einer Schnittstelle bereitgestellt werden.
Verwenden Sie das Tool Vererbung, um diese Beziehungen zu erstellen.Alternativ kann eine Realisierung als Lollipop dargestellt werden.
Pakete sind Gruppen von Klassifizierern, Zuordnungen, Lebenslinien, Komponenten und anderen Paketen.Importbeziehungen geben an, dass ein Paket alle Definitionen eines anderen Pakets enthält.
Als Ausgangspunkt für die Untersuchung und Besprechung bestehender Klassen können Sie mit dem Klassen-Designer Klassendiagramme aus Code erstellen.
Thema
Zusammenfassung: Vorteile von Klassendiagrammen
Mit Klassendiagrammen können Sie Folgendes definieren:
Ein allgemeines Glossar von Begriffen, die zum Erläutern der Benutzeranforderungen und der am System beteiligten Entitäten verwendet werden.Siehe Modellieren von Benutzeranforderungen.
Typen, die von Teilen des Systems verwendet werden, wie z. B. Komponenten, unabhängig von ihrer Implementierung.Siehe Modellieren der Architektur eines Softwaresystems.
Beziehungen, wie z. B. Abhängigkeiten zwischen Typen.Sie können z. B. anzeigen, dass ein Typ mehreren Instanzen eines anderen Typs zugeordnet sein kann.
Beziehung zu anderen Diagrammen
Diagramm |
Beschreibung |
---|---|
Anwendungsfalldiagramm |
Definieren Sie die Typen, mit denen die Ziele und Schritte in Anwendungsfällen beschreiben werden. Thema |
Aktivitätsdiagramm |
Definieren Sie die Typen von Daten, die Objektknoten, Eingabepins, Ausgabepins und Aktivitätsparameterknoten durchlaufen. Thema |
Komponentendiagramm |
Beschreiben Sie Komponenten, ihre Schnittstellen und ihre Beziehungen.Eine Klasse kann auch eine vollständige Komponente beschreiben. Thema |
Ebenendiagramm |
Definieren Sie die logische Architektur des Systems in Bezug auf Klassen. Stellen Sie durch Ebenenvalidierung sicher, dass der Code konsistent mit dem Entwurf bleibt. Thema |
Sequenzdiagramm |
Definieren Sie die Typen von Lebenslinien sowie die Vorgänge, Parameter und Rückgabewerte für alle Meldungen, die die Lebenslinie empfangen kann. Um eine Lebenslinie aus einem Typ in einem Klassendiagramm zu erstellen, klicken Sie mit der rechten Maustaste auf den Typ, und klicken Sie dann auf Lebenslinie erstellen erstellen. Thema |
Abhängigkeitsdiagramm |
Visualisieren Sie die Organisation und Beziehungen in vorhandenem Code. Um Klassen, ihre Beziehungen und ihre Methoden zu identifizieren, erstellen Sie ein Diagrammdokument, in dem diese Elemente angezeigt werden. Thema |
Beschreiben der logischen Architektur: Ebenendiagramme
Ebenendiagramme beschreiben die logische Architektur eines Systems, indem die Artefakte in der Projektmappe in abstrakten Gruppen bzw. Ebenen organisiert werden.Artefakte können viele Dinge sein, z. B. Namespaces, Projekte, Klassen, Methoden usw.Ebenen stellen die Rollen oder Aufgaben dar, die die Artefakte im System ausführen.Sie können auch eine Ebenenvalidierung in die Build- und Eincheckvorgänge einschließen, um sicherzustellen, dass der Code konsistent mit dem Entwurf bleibt.
Um den Code mit dem Entwurf konsistent zu halten, überprüfen Dinner Now und Lucerne ihren Code während der Entwicklung mit dem folgenden Ebenendiagramm:
Ebenendiagramm für Dinner Now nach der Integration mit Lucerne
Die Ebenen in diesem Diagramm sind mit den entsprechenden Lösungsartefakten von Dinner Now und Lucerne verknüpft.Die Business-Ebene ist z. B. mit dem DinnerNow.Business-Namespace und seinen Membern verknüpft, die nun die PaymentApprover-Klasse einschließen.Die Resource Access-Ebene ist mit dem DinnerNow.Data-Namespace verknüpft.Die Pfeile, bzw. Abhängigkeiten, geben an, dass die Funktionen in der Resource Access-Ebene nur von der Business-Ebene verwendet werden können.Beim Aktualisieren des Codes durch die Teams wird regelmäßig eine Ebenenvalidierung ausgeführt, um Konflikte bei ihrer Entstehung sofort erkennen und beheben zu können.
Die Teams arbeiten zusammen, um die beiden Systeme schrittweise zu integrieren und zu testen.Zuerst wird sichergestellt, dass PaymentApprover und der Rest von Dinner Now erfolgreich miteinander funktionieren, bevor PaymentProcessing behandelt wird.
Das folgende Abhängigkeitsdiagramm zeigt die neuen Aufrufe zwischen Dinner Now und PaymentApprover:
Abhängigkeitsdiagramm mit aktualisierten Methodenaufrufen
Nachdem bestätigt wurde, dass das System wie erwartet funktioniert, wird der PaymentProcessing-Code von Dinner Now auskommentiert.Die Ebenenvalidierungsberichte sind einwandfrei, und das resultierende Abhängigkeitsdiagramm zeigt, dass keine PaymentProcessing-Abhängigkeiten mehr vorhanden sind:
Abhängigkeitsdiagramm ohne PaymentProcessing
Thema
Zeichnen eines Ebenendiagramms
Ein Ebenendiagramm umfasst die folgenden Hauptfunktionen:
Ebenen beschreiben logische Gruppen von Artefakten.
Ein Link ist eine Zuordnung zwischen einer Ebene und einem Artefakt.
Um Ebenen aus Artefakten zu erstellen, ziehen Sie Elemente aus dem Projektmappen-Explorer, Abhängigkeitsdiagrammen oder Architektur-Explorer.Um neue Ebenen zu zeichnen und sie dann mit Artefakten zu verknüpfen, verwenden Sie die Toolbox, oder klicken Sie mit der rechten Maustaste auf die Diagrammoberfläche, um die Ebenen zu erstellen, und ziehen Sie dann Elemente in diese Ebenen.
Die Zahl auf einer Ebene zeigt die Anzahl von Artefakten an, die mit der Ebene verknüpft sind.Diese Artefakte können Namespaces, Projekte, Klassen, Methoden usw. sein.Beachten Sie folgendes, wenn Sie die Anzahl der Artefakte in einer Ebene interpretieren:
Wenn eine Ebene mit einem Artefakt verknüpft ist, das andere Artefakte enthält, die Ebene jedoch nicht direkt mit den anderen Artefakten verknüpft ist, umfasst die Zahl nur das verknüpfte Artefakt.Die anderen Artefakte werden jedoch während der Ebenenvalidierung für die Analyse berücksichtigt.
Ist z. B. eine Ebene mit einem einzelnen Namespace verknüpft, ist die Anzahl der verknüpften Artefakte 1, auch wenn der Namespace Klassen enthält.Wenn die Ebene auch mit den einzelnen Klassen im Namespace verknüpft ist, umfasst die Zahl die verknüpften Klassen.
Wenn eine Ebene andere Ebenen enthält, die mit Artefakten verknüpft sind, ist die Containerebene ebenfalls mit diesen Artefakten verknüpft, obwohl in der Zahl auf der Containerebene diese Artefakte nicht berücksichtigt sind.
Klicken Sie mit der rechten Maustaste auf die Ebene, um die mit der Ebene verknüpften Artefakte anzuzeigen, und klicken Sie dann auf Links anzeigen, um den Ebenen-Explorer zu öffnen.
Eine Abhängigkeit gibt an, dass eine Ebene die Funktionen in einer anderen Ebene verwenden darf, jedoch nicht umgekehrt.Eine bidirektionale Abhängigkeit gibt an, dass eine Ebene die Funktionen in einer anderen Ebene verwenden darf und umgekehrt.
Um vorhandene Abhängigkeiten in einem Ebenendiagramm anzuzeigen, klicken Sie mit der rechten Maustaste auf die Diagrammoberfläche, und klicken Sie dann auf Abhängigkeiten generieren.Um beabsichtigte Abhängigkeiten zu beschreiben, zeichnen Sie neue.
Thema
Zusammenfassung: Vorteile von Ebenendiagrammen
Mit Ebenendiagrammen können Sie Folgendes ausführen:
Beschreiben der logischen Architektur eines Systems entsprechend den Funktionen der zugehörigen Artefakte
Sicherstellen, dass dieser Code in der Entwicklung dem vorgegebenen Entwurf entspricht
Beziehung zu anderen Diagrammen
Diagramm |
Beschreibung |
---|---|
Abhängigkeitsdiagramm |
Visualisieren Sie die Organisation und Beziehungen in vorhandenem Code. Um Ebenen zu erstellen, generieren Sie ein Abhängigkeitsdiagramm, und gruppieren Sie dann die Elemente im Diagramm als potenzielle Ebenen.Ziehen Sie die Gruppen aus dem Diagramm in das Ebenendiagramm. Thema |
Komponentendiagramm |
Beschreiben Sie Komponenten, ihre Schnittstellen und ihre Beziehungen. Um Ebenen zu visualisieren, erstellen Sie ein Komponentendiagramm, das die Funktionalität verschiedener Komponenten im System beschreibt. Thema |
Externe Ressourcen
Kategorie |
Links |
---|---|
Foren |
|
Blogs |
|
Technische Artikel und Journale |
The Architecture Journal – Ausgabe 23: Architekturmodellierung und -prozesse |
Andere Sites |
Siehe auch
Konzepte
Visualisieren und Verstehen von Code
Entwickeln von Modellen für den Softwareentwurf
Verwenden von Modellen im Entwicklungsprozess
Verwenden von Modellen in der Agile-Entwicklung