Viele Programmierer, die vor einer schwierigen Aufgabe stehen, vernachlässigen die Entwurfsphase und verweisen auf die Tatsache, dass Entwurf Zeitverschwendung ist, und in diesem Fall wird es mich nur stören.
Oft stellt sich diese Aussage als richtig heraus, wenn die Aufgabe wirklich klein ist und die Qualifikationen des Programmierers ausreichen, um die optimalste Lösung zu ermitteln.
Programmierer, die UML nicht verwenden, werden in mehrere Gruppen unterteilt:
- Ich werde anfangen, Code zu schreiben, und dabei werde ich verstehen, was und wie.
- Ich lese Foren, Habr, Medium, Stapelüberlauf, ein Buch, Notizen an den Wänden, Schilder über ...;
- Ich frage meine Kollegen, vielleicht weiß jemand, wie man ein ähnliches Problem löst.
- Ich werde anfangen, kleine Quadrate zu zeichnen und schematisch zu zeigen, welche Vision des Problems sich in meinem Kopf gebildet hat.
Bei der Lösung komplexerer Probleme vereinfachen Vorausplanung und Modellierung die Programmierung erheblich. Darüber hinaus ist das Ändern von Klassendiagrammen einfacher als das Erstellen des Quellcodes.
Sie können eine Analogie zum Hausbau ziehen. Wenn jemand ein Haus bauen will, schlägt er nicht nur mit einem Hammer und macht sich an die Arbeit. Er braucht einen Plan - einen Entwurfsplan, damit er sein System analysieren und modifizieren kann.
Wenn Sie bereits begonnen haben, Ihre Aufgabe auf Papier zu beschreiben, ist dies bereits ein großes Plus.
Was ist UML?
Die offizielle Definition aus Wikipedia.
UML - Unified Modeling Language - ist ein Notationssystem, das für die objektorientierte Analyse und Gestaltung verwendet werden kann. Es kann zur Visualisierung, Spezifikation, zum Design und zur Dokumentation von Softwaresystemen verwendet werden.
Einfach ausgedrückt, wenn Sie Bilder in Suchmaschinen betrachten, wird klar, dass es bei UML um Schemata, Pfeile und Quadrate geht.
Es ist wichtig, dass UML als Unified Modeling Language übersetzt wird. Das Hauptwort hier ist Unified. Das heißt, unsere Bilder werden nicht nur von uns verstanden, sondern auch von anderen, die UML kennen. Es stellt sich heraus, dass dies eine so internationale Sprache für das Zeichnen von Schaltkreisen ist.
Vor- und Nachteile von UML Design
Nachteile:- Zeitverschwendung;
- die Notwendigkeit der Kenntnis verschiedener Diagramme und ihrer Notationen.
Vorteile:- eine Gelegenheit, eine Aufgabe aus verschiedenen Blickwinkeln zu betrachten;
- Andere Programmierer finden es einfacher, das Wesentliche der Aufgabe zu verstehen und sie umzusetzen.
- Diagramme sind relativ einfach zu lesen, nachdem Sie sich schnell mit ihrer Syntax vertraut gemacht haben.
Um herauszufinden, ob Sie UML verwenden müssen, müssen Sie die Hauptdiagramme berücksichtigen. Dank ihnen entsteht ein Gesamtbild, das einen Eindruck von den Möglichkeiten vermittelt, architektonische Ideen im Rahmen von Geschäftsaufgaben auszudrücken.
Alle folgenden Diagramme sind miteinander verbunden. Durch ihre Kombination können wir das erforderliche Maß an Zerlegung einzelner Aufgaben erreichen.
Ich schlage vor, einige der nützlichsten und am häufigsten verwendeten Diagramme kennenzulernen.
Wir werden über Diagramme von Sequenzen, Zuständen, Aktivitäten und die komplexesten davon sprechen - Klassendiagramme.
Zuerst I <...> und dann <...> und dann ... Sequenzdiagramm
Stellen Sie sich vor, Sie müssen die Abfolge der Aktionen für die Bestellung von Waren in einem Online-Shop beschreiben. Wer sollte in den Prozess einbezogen werden? Welche Phasen durchläuft eine Bestellung, bevor sie aufgegeben wird?
Normalerweise schreiben wir eine lange Liste von Phasen, die die Anwendung durchlaufen muss, um den stolzen Status „Dekoriert“ zu erhalten. Dann beschreiben wir, wer genau die spezifische Aktion ausführen wird. Und erst danach beginnen wir zu programmieren.
Was ist der Nachteil dieses Ansatzes? Er ist nicht visuell.
Stellen Sie sich vor, bevor Sie eine lange Liste der zuvor beschriebenen Schritte und Kommentare dazu erstellen. Wie einfach wird es für Sie sein, es herauszufinden? Wie lange kann es dauern? Ich denke das ist genug.
Eine Alternative zu diesem Ansatz ist die Verwendung des in der folgenden Abbildung gezeigten Sequenzdiagramms.
SequenzdiagrammDie Akteure werden oben angezeigt, und jeder Pfeil ist eine bestimmte Aktion, die ihnen zugeordnet ist. Erfahren Sie hier mehr über diese Tabelle
.Zustandsdiagramm. Wir konfigurieren alte elektronische Uhren
Mit dem Zustandsdiagramm können Sie das Verhalten eines einzelnen Objekts unter bestimmten Bedingungen beschreiben. Sie zeigt uns auch alle möglichen Zustände, in denen sich das Objekt befinden kann, sowie den Prozess der Zustandsänderung infolge äußerer Einflüsse.
Angenommen, wir programmieren eine sowjetische elektronische Uhr.
Zur Konfiguration erhalten wir nur wenige Schaltflächen. Ziemlich spärlich. Gleichzeitig wissen wir, dass eine der Tasten den Uhreinstellungsmodus umschaltet. Eine weitere Taste im ersten Modus ändert Minuten und in den zweiten Stunden.
Die Setup-Anweisung ist bereits recht klein, wird aber dank des Zustandsdiagramms visuell viel einfacher wahrgenommen.
ZustandsdiagrammLesen Sie hier mehr über das Zustandsdiagramm.
Klassendiagramm oder wie man ohne Code über seinen Code spricht
Klassendiagramme werden am häufigsten bei der Modellierung von PS verwendet. Sie sind eine Form der statischen Beschreibung des Systems unter dem Gesichtspunkt seines Entwurfs. Das Klassendiagramm zeigt nicht das dynamische Verhalten der Objekte der darauf abgebildeten Klassen an. Klassendiagramme zeigen Klassen, Schnittstellen und die Beziehungen zwischen ihnen.
In verschiedenen Dokumentationen, der Beschreibung von Entwurfsmustern sowie dem Lesen des Habr stoßen wir alle häufig auf ein Klassendiagramm. Warum wird es so oft verwendet?
Angenommen, Sie müssen ein System entwerfen. Bevor Sie mit der Implementierung mehrerer Klassen beginnen, sollten Sie ein konzeptionelles Verständnis des Systems haben - welche Klassen benötige ich? Welche Funktionen und Informationen werden diese Klassen haben? Wie interagieren sie miteinander? Wer kann diese Klassen sehen? Usw.
Hier erscheinen Klassendiagramme. Klassendiagramme sind eine großartige Möglichkeit, Klassen auf Ihrem System zu visualisieren, bevor Sie mit dem Codieren beginnen. Sie sind eine statische Darstellung der Struktur Ihres Systems.
Es ist das Klassendiagramm, das uns die vollständigste und detaillierteste Vorstellung von der Struktur und den Beziehungen im Programmcode gibt. Wenn Sie die Prinzipien der Erstellung dieses Diagramms verstehen, können Sie Ihre Gedanken und Ideen kurz und transparent ausdrücken.
Lassen Sie uns überlegen, wie das bekannte Entwurfsmuster „Besucher“ anhand des Klassendiagramms beschrieben werden kann.
"Besucher" ist ein Verhaltensentwurfsmuster, mit dem Sie dem Programm neue Operationen hinzufügen können, ohne die Objektklassen zu ändern, für die diese Operationen ausgeführt werden können.
KlassendiagrammDie wichtigsten Vorteile dieser Tabelle sind:
- Zeit sparen, wenn Sie anderen Programmierern die Aufgabe erklären;
- genauere und visuelle Darstellung der Struktur der Hauptelemente des Systems.
Zu den Nachteilen zählen erhebliche Zeitkosten, sofern keine Erfahrung mit diesem Diagramm vorliegt.
Weitere Informationen zum Klassendiagramm und zum Besuchermuster finden Sie
hier .
Aktivitätsdiagramm
Ein Aktivitätsdiagramm ist eine Technologie, mit der Sie die Logik von Prozeduren, Geschäftsprozessen und Workflows beschreiben können. In vielen Fällen ähneln sie Flussdiagrammen, aber der grundlegende Unterschied zwischen Aktivitätsdiagrammen und der Notation von Flussdiagrammen besteht darin, dass erstere parallele Prozesse unterstützen.
Kurz gesagt, das Aktivitätsdiagramm hilft uns, die Logik des Systemverhaltens zu beschreiben. Es ist möglich, mehrere Aktivitätsdiagramme für dasselbe System zu erstellen, von denen sich jedes auf verschiedene Aspekte des Systems konzentriert und verschiedene Aktionen zeigt, die in diesem System ausgeführt werden.
Auf dem Aktivitätsdiagramm werden die Übergänge von einer Aktivität zur anderen angezeigt. Dies ist in der Tat eine Art Zustandsdiagramm, in dem alle oder die meisten Zustände bestimmte Aktivitäten sind und alle oder die meisten Übergänge funktionieren, wenn eine bestimmte Aktivität abgeschlossen ist, und Sie mit der nächsten fortfahren können.
AktivitätsdiagrammDie Bedeutung des Diagramms ist verständlich. Es wird gezeigt, wie Sie mit einer Webanwendung arbeiten, die ein bestimmtes Problem in einer entfernten Datenbank löst. Beachten Sie die Anordnung der Aktivitäten in diesem Diagramm: Sie sind in drei Spalten verteilt, von denen jede dem Verhalten eines der drei Objekte entspricht - des Clients, des Webservers und des Datenbankservers. Dank dessen ist es einfach zu bestimmen, welches der Objekte jede der Aktivitäten ausführt.
Weitere Informationen zum Aktivitätsdiagramm finden Sie
hier .
Fazit
Hoffentlich werfen Sie nach diesem Artikel einen anderen Blick auf UML. Wenn Sie nun Literatur oder Websites lesen, die sich diesem Thema widmen, können Sie leichter verstehen, was der Zweck von UML ist, und Möglichkeiten für seine Anwendung finden. Wenn Sie versuchen, es anzuwenden, werden Sie die ganze Kraft und Kraft spüren, die sich hinter einer Reihe von Pfeilen und Quadraten verbirgt.
Hinterlasse einen Kommentar, wenn du denkst (oder weißt), dass etwas nicht stimmt oder besser beschrieben werden könnte.