Was sind die wesentlichen Dinge, die man über UML wissen muss?

18

Ich möchte, dass meine Skizzen zum Design und Verhalten eines Programms rationalisiert werden und eine gemeinsame Sprache mit anderen Entwicklern haben.

Ich habe mir UML angesehen und im Prinzip scheint es das zu sein, wonach ich suche, aber es scheint übertrieben zu sein. Die Informationen, die ich online gefunden habe, wirken ebenfalls sehr aufgebläht und akademisch.

Wie kann ich UML im Klartext verstehen, um es meinen Kollegen erklären zu können? Was sind die kanonischen Ressourcen für das Verständnis von UML auf der Basis?

Hanno Fietz
quelle
1
Mir hat der alte Titel besser gefallen, zumindest der Anfang: "Was sind die nützlichsten 10% von UML?" Ansonsten gut bearbeiten!
Joey Adams
Wenn Sie bereits eine Dokumentation geschrieben haben, die wahrscheinlich bereits in UML vorliegt, sind Sie mit der
Bezeichnung

Antworten:

4

Die Fragen haben mir gefallen - die gleichen, die ich mir gestellt habe:

Wie kann ich UML im Klartext verstehen, um es meinen Kollegen erklären zu können? Was sind die kanonischen Ressourcen für das Verständnis von UML auf der Basis?

Folgendes habe ich gefunden:

Für einen Kick-Start: Meine Wahl wäre Fowlers UML Destilled . Es ist wirklich eine Destillation der Grundlagen, wie bereits erwähnt wurde: Definitionen, Beispiele, Ratschläge, wann ein bestimmter Diagrammtyp verwendet werden sollte oder nicht. Es ist auch eine gute Referenz , wenn Sie sich auf einen bestimmten Teil der UML konzentrieren möchten, ohne das Buch von Anfang bis Ende zu lesen.

Für eine ausführlichere, aber einfachere Einführung: UML 2 für Dummies wurde für meine Kollegen und mich erstellt. Es wird nicht nur UML, seine Syntax und Verwendungsmöglichkeiten ausführlich vorgestellt, sondern es werden auch viele Tipps zu guten Programmier- und Entwurfspraktiken gegeben.

Es gibt gelegentlich Unterschiede zwischen den beiden Büchern, welche Syntax zu welcher Version des UML-Standards gehört. Diese sind jedoch winzig und definitiv nicht erforderlich, um mithilfe von UML-Diagrammen Entwurfsideen zu kommunizieren. (Zum Beispiel: ob UML 2 diskrete Multiplizitäten zulässt, dh zeigt, dass eine bestimmte Eigenschaft genau X-, Y- oder Z-Objekte haben kann, anstatt nur null, eins, viele oder mehr als X, wenn die Namen der Teilnehmer unterstrichen werden sollen. ..)

Für eine nicht akademische und weniger wortreiche Einführung: Dieser Blog enthält Artikel zu verschiedenen Aspekten der UML: http://blog.diadraw.com/category/uml/

Es ist kein Lehrbuch, ist also alles andere als erschöpfend, sondern verwendet auch Geschichten und Beispiele, die sich nicht auf Lehrbücher beziehen. Die wenigen verfügbaren Beiträge konzentrieren sich auf die visuelle Einführung von UML-Konzepten, sodass Sie das Lesen des Textes insgesamt überspringen können.

rollen
quelle
Dieser Blog-Link ist nett.
Hanno Fietz,
8

Martin Fowlers UML Destilled hat mir sehr gut gefallen . Kurz und knapp und mehr als ausreichend für Whiteboard-Diskussionen. Holen Sie sich ein paar Exemplare und leiten Sie sie an das Team weiter.

Kevin Cline
quelle
1
+1 für die Erwähnung dieses Buches, ich habe es beim Schreiben meiner Antwort völlig vergessen!
Alexander Galkin
2
Können Sie etwas mehr über Ihre Erfahrungen mit dem Buch erzählen?
Was war der Grund für die Ablehnung?
Kevin Cline
1
Eines der ersten Dinge, die ich tat, als ich Teamleiter wurde, war, Kopien dieses Buches für alle in meinem Team zu kaufen. Es gab uns allen ein gemeinsames Vokabular für die Diskussion unserer Entwürfe. Einige der jüngeren Jungs berichteten auch, dass es ihnen half, die Diagramme in den verschiedenen Design-Pattern-Büchern, die sie lasen, besser zu verstehen.
TMN
2
@ kevincline Ich verknüpfe normalerweise mit Amazon, da der Link in eine Referrer-URL für Stack Exchange konvertiert wird. Wenn jemand von dieser URL klickt und kauft, kann Stack Exchange Geld verdienen. Es wird auch trivial, das Buch mit den Titel-, Autoren- und ISBN-Informationen von Amazon bei dem Buchhändler Ihrer Wahl zu finden.
Thomas Owens
5

Diagramme alleine sind nicht immer hilfreich. Das Anwendungsfalldiagramm kann beispielsweise keine Geschäftsregeln im Detail vermitteln. Das Klassendiagramm kann sehr nützlich sein, da Sie möglicherweise Klassencode und DLLs daraus generieren können.

Ich finde diese Diagramme am nützlichsten:

  • Anwendungsfalldiagramm
  • Klassendiagramme
  • Aktivitätsdiagramm
  • Sequenzdiagramm

Es gibt so viele nützliche Ressourcen, aber überprüfen Sie diese:

Edit-1 als Antwort auf Marks Kommentar.

Obwohl ich diese Ressourcen nicht täglich verwende, dienen sie als Kurzreferenz für die UML-Syntax. Die oben genannten Ressourcen werden ausgewählt, da sie eine schnelle und einigermaßen umfassende Darstellung von UML-Diagrammen bieten. Es zeigt allgemeine Diagramme und hilft dem neuen UML-Benutzer, den Unterschied zwischen ihnen schnell zu erkennen. Die erste Ressource, das Video, enthält Details zum Anwendungsfall und dessen Beziehung zu anderen Diagrammen. Es wird nicht erwartet, dass die oben genannten Ressourcen für jeden ausreichen, der UML oder OOD lernen möchte. Mir ist klar, dass das Erlernen solcher Themen in der ursprünglichen Frage nicht beabsichtigt war.

Keine Chance
quelle
+1 für Klassen- , Sequenz- und Aktivitätsdiagramme . Ich bin überhaupt nicht von Use Case Diagrammen überzeugt, außer dass sie ausgezeichnete Cover für Berichte sind, da Benutzer die Bilder zu lieben scheinen.
Sjoerd
@Sjoerd, danke für deinen Kommentar. Wie Sie richtig angegeben haben, werden Anwendungsfälle von Benutzern geliebt. Anwendungsfalldiagramme haben auch viele Werte. Sie ermöglichen es Ihnen, die Akteure (primär und sekundär) zu identifizieren und "C-Level Cse Cases" zu entdecken. Die Beziehung zu Ihrem Aktivitäts- und Klassendiagramm bildet einen Zusammenhang in Ihrer Spezifikation. Denken Sie daran, dass sie keinen Ersatz für detaillierte Geschäftsregeln und eine vollständige Anforderungsdokumentation darstellen.
NoChance
Können Sie mehr über Ihre Erfahrungen mit diesen Ressourcen erzählen? Was hat Ihnen dabei geholfen, UML zu verstehen, und nicht anderen?
@MarkTrapp, danke für deinen Kommentar und für die Änderungen.
NoChance
2

Wenn Sie mit nur 10% davon zufrieden sind , sollten Sie nicht versuchen, es aus dem UML-Buch zu lernen. Lesen Sie lieber ein gutes Buch über objektorientierte Analysen oder Entwurfsmuster - diese Bücher liefern Ihnen die 10%, die Sie suchen.

Wenn Sie dennoch ein Tutorial für UML suchen, würde ich diese Webseite und insbesondere diesen Aufsatz über UML-Diagramme empfehlen (Es ist keine Anzeige, ich persönlich habe keinerlei Beziehung zu dieser Site). Blättern Sie einfach durch die Diagramme und sehen Sie sie sich an: Sie sind größtenteils selbsterklärend und Sie können leicht verstehen, was sie darstellen, solange Sie sich mit OOP und dem allgemeinen Programmdesign und der Architektur auskennen.

Warum würde ich genau diese Seite empfehlen? (im Kommentar gefragt)

Es gibt mehrere Gründe, warum es mir besser gefallen hat als den anderen:

  1. Auf der ersten Seite finden Sie eine Übersichtstabelle mit UML-Diagrammen.
  2. Diese Tabelle enthält neben der Kurzbeschreibung jedes UML2.0-Digramms auch eine sehr nützliche Spalte "Lernpriorität", mit deren Hilfe UML-Anfänger die am häufigsten verwendeten UML-Diagramme identifizieren können.
  3. Auch wenn es auch maschinen gerenderte Diagramme enthält, sehen die meisten Diagramme wie von Hand gezeichnet ist (wahrscheinlich sie sind von Hand gezeichnet). Ich nehme das als Zeichen, dass die Modellierung immer noch nur mit Bleistift und Papier durchgeführt werden kann, ohne dass Sie sich gleich zu Beginn mit der UML-Visualisierungssoftware befassen müssen.
Alexander Galkin
quelle
Können Sie mehr über Ihre Erfahrungen mit diesen Empfehlungen erzählen? Was hat Ihnen dabei geholfen, UML zu verstehen, und nicht anderen?
1

Die UML 2.0-Taschenreferenz von O'Reilly ist etwas detaillierter, aber wahrscheinlich die beste Wahl, da sie klein genug ist, um schnell zu finden, was Sie benötigen, aber dennoch Erklärungen enthält, wenn Sie sie benötigen. Und es ist auf dem neuesten Stand, was bei den "UML-Spickzettel" oder Referenzkarten, die ich im Internet gefunden habe, nicht der Fall ist - diese beschreiben meistens UML 1.x.

Michael Borgwardt
quelle
Können Sie mehr über Ihre Erfahrungen mit diesem Buch erzählen? Was hat Ihnen dabei geholfen, UML zu verstehen, und nicht andere Bücher?
@ Mark Trapp: vor allem die Tatsache, dass es klein ist, so dass Sie schnell alle wichtigen Dinge erfassen können, ohne sich in Details und Sonderfällen zu verlieren.
Michael Borgwardt
0

Dazu gibt es drei Teile:

  1. Holen Sie sich eine formale UML-Referenz

    Wenn Sie eine neue "Sprache" lernen, erhalten Sie eine Referenz, die Sie jederzeit aufrufen und verwenden können, unabhängig davon, ob es sich um ein Buch oder eine Online-Ressource handelt. UML Destilled ist klein, hat großartige Erklärungen und viele klare Diagramme. Auch wenn Sie nicht alle Funktionen nutzen, können Sie jederzeit zurückgehen und nach dem "richtigen" Weg suchen, um etwas auszudrücken.

  2. Verwenden Sie UML, um Dinge zu modellieren

    Nachdem Sie eine Referenz erstellt haben, beginnen Sie damit, einige kleine vorhandene Systeme oder Systeme zu modellieren, die Sie gerade verwenden. Sie werden wahrscheinlich in den meisten Situationen bei Klassendiagrammen, Sequenzdiagrammen und Zustandsdiagrammen bleiben wollen. Wenn Sie sich bei etwas nicht sicher sind, gehen Sie zu Ihrer Referenz und suchen Sie nach der "richtigen" Verwendung. Wenn dies nicht hilft, versuchen Sie es mit Googeln oder fragen Sie bei Stack Overflow. Übung ist genau wie Programmierung der Schlüssel.

  3. Verwenden Sie einige UML in realen Projekten

    Denken Sie beim Einsatz von UML in Ihrem Team daran, dass dies nur ein Hilfsmittel ist, um zu verstehen, welches System Sie erstellt haben oder erstellen werden. Sie sollten Ihre Referenz während des Diagramms weiterhin überprüfen, sich jedoch darauf konzentrieren, die Informationen zu übermitteln, ohne die Regeln genau einzuhalten.

Denken Sie an Ihre High-School-Schreibkurse zurück. Ihr Lehrer hielt es wahrscheinlich für eine Hauptsünde, Sätze mit "und", "aber" oder "oder" zu beginnen. Als Sie mehr geschrieben und mehr Kontrolle über die englische Sprache erlangt haben, haben Sie gelernt, die Regeln zu biegen, um eine größere Wirkung zu erzielen. Sie haben den Übergang von der richtigen Herangehensweise zur Herangehensweise vollzogen, die das vermittelt, was Sie am besten sagen wollten. UML sollte in der Industrie genauso verwendet werden.

derekerdmann
quelle
0

Ich würde sagen, wenn Sie UML kennen, geben Ihnen alle Diagramme unterschiedliche Ansichten Ihrer Anwendung. Viele Bücher sind verfügbar.

Wenn Sie UML nicht kennen, ist es am einfachsten, nur Klassen- / Sequenzdiagramme zu erstellen, die vom vorhandenen Code umgekehrt wurden. Sie müssen nur den vorhandenen Code in UML umkehren und Ihre eigenen Notizen in die Klassen- / Sequenzdiagramme einfügen. Klassendiagramme geben eine statische Ansicht Ihrer Anwendung, Sequenzdiagramme beschreiben Methodenabläufe und damit das Anwendungsverhalten. UML Job erledigt und kein Fehler :)

UML_GURU
quelle