Wie Modellierung mit UML zu besserem Code führt

Von Sammy Baghdadi
1 Kommentar
UML Web Development Coding

In diesem Gastbeitrag auf Never Code Alone möchte ich die Wichtigkeit von Modellen – vor allem mit Hilfe von UML – und die Vorteile einer sinnvollen Anwendung derselben für Programmierer und Projektleiter aufzeigen.

 

Eine Entwicklung, die ich in jüngster Vergangenheit wahrgenommen habe, besteht darin, dass die vorherige Modellierung in Softwareprojekten eine immer größere Rolle einnimmt. Der Trend scheint jedoch im Web-Bereich noch nicht ganz angekommen zu sein, denn in meinem Berufsalltag habe ich es nur ein bis zweimal pro Jahr mit einem ERM, PAP, BPMN oder Use-Case-Diagramm zu tun. Meist reicht dies aber nicht aus, und oft wird viel Code produziert, der vorher nicht modelliert wurde. Das führt dazu, dass geschriebener Code oft überarbeitet und angepasst werden muss.

 

Auffällig ist dann jedoch dabei, dass die Projekte, die diese Art von Diagrammen produzierten, meist einen deutlich höheren Level der Software-Qualität aufwiesen.

Gap zwischen klassischen und agilen Projekten

In meiner Ausbildung und in meinem derzeitigen Studium sind ein Drittel der Lehrinhalte Modellierungen verschiedenster Systeme auf unterschiedliche Arten und Weisen. Jedoch habe ich in meiner bisherigen beruflichen Laufbahn nur sehr wenige Leute kennengelernt, die eine abgeschlossene Ausbildung oder ein Studium im Bereich der IT vorweisen konnten. Hauptsächlich bin ich im Bereich Webdevelopment im Berliner Agenturumfeld unterwegs. Möglicherweise lässt sich damit der Gap des Modellierungsgrades zwischen klassischen Softwareprojekten (die, wie eingangs erwähnt, schon durchaus viele dieser planerischen Methoden und Techniken einsetzen) und den agilen, meist unterbudgetierten Webprojekten erklären.

 

Was ist also die Schlussfolgerung daraus? Ganz einfach: spread the word! Denn viele Autodidakten im Web-Bereich haben bisher wenig bis kaum mit guten und einfachen Modellen, wie sie z. B. die UML liefert, zu tun gehabt. Oftmals ist vielleicht auch der Zeitdruck oder die Scheu vor dem zu Anfang recht komplex anmuteten Bereich groß. Aber ich bin davon überzeugt, dass man mit wenigen Stunden Aufwand schon ein gewisses Grundverständnis für die Modellierung mit UML erlangen kann. Zumal Modelle ja genau diesen Zweck haben: Sie sollen komplexe Sachverhalte einfach und reduziert auf die notwendigsten Informationen so darstellen, dass sie jeden in die Lage versetzen, etwas damit anfangen zu können.

Was also ist Unified Modeling Language?

UML steht für Unified Modeling Language und bedeutet übersetzt so viel wie „vereinheitlichte Modellierungssprache“. Im Kern ist UML eine grafische Modellierungssprache, die im Bereich Softwaresystem-Modellierung dominiert. Sie liegt momentan in Version 2.5 vor und wurde in den 1990er Jahren entwickelt. Sie besteht aus ca. 14 verschiedenen Diagrammarten, die in den unterschiedlichen Versionen der UML mal mehr und mal weniger angepasst oder verändert worden sind. Die wirkliche Power der UML liegt aber in der Standardisierung und der damit auch sehr internationalen Komponente dieser Sprache. Außerdem sind die Diagramme meist so einfach und schlicht gehalten, dass sie auch von Personen gedeutet werden können, die selbst nicht in der Lage wären, so ein Diagramm zu erstellen. Das macht die UML darüber hinaus zu einem idealen Werkzeug, um in Präsentationen und Schulungen komplexe Abläufe anschaulich darzustellen.

 

Natürlich reduzieren sich sämtliche Diagramme dieser Welt nicht alle auf UML, aber es ist ein guter und stabiler Anfang, um einen Einstieg in die Software- (oder auch Website-) Modellierung zu finden und für ein planerisches Herangehen bei der Umsetzung zu sorgen.

 

Die vielseitigen deutschsprachigen und kostenfreien Quellen, die man zur UML im Netz findet, unterstützen einen einfachen Einstieg in die Sprache. Wer außerdem keine Scheu vor der englischen Sprache hat, wird überrascht sein, dass man auf der Plattform Coursetalk einen kostenfreien UML-Kurs an der Standford University absolvieren kann>.

Modellierung mit UML praktisch anwenden

Das eine ist es, eine Sprache zu lernen und zu verstehen, das andere die praktische Anwendung. Wie kann man nun aber, wenn meine Vorstufen (Akquise, Projektleitung, Konzeption) nicht an Software-Modellierung gedacht haben, dies noch möglichst einfach nachholen? Viele kostenfreie und einfach gehaltene Online-Tools wie z. B. draw.io oder genmymodel helfen, die technische Hürde möglichst flach zu halten und schnell und ortsunabhängig UML-Diagramme zu erstellen. Ganz im Gegensatz zu den etablierten Software-Größen in diesem Bereich wie Aris, MS Visio oder der PowerDesigner. Was diese Tools aber teilweise als zusätzlichen Benefit bieten, ist die Möglichkeit, Klassen oder ER-Diagramme in fertigen Code oder SQL zu exportierten. Damit bekommt die Modellierung sogar noch eine weitere Qualität: Sie sorgt für gute Planung und ist sogar in der Lage, das eigene Coden zu beschleunigen.

Die Kollegen und Kunden von UML überzeugen

Nicht selten stellt es sich jedoch als sehr schwierig heraus, die verschiedenen Akteure (besonders die Stakeholder) von der Sinnhaftigkeit und dem Mehrwert von UML-Diagrammen zu überzeugen. Hier ist es wie bei vielen anderen Dingen so: Richtig überzeugen wird man nur, wenn man selbst überzeugt ist und an die Sache glaubt. Oftmals erstelle ich einfach für mich selbst kleine UML-Diagramme und nutze dann, wenn möglich, die Gunst der Stunde und baue diese in Konzepte oder Präsentationen ein. Ich sorge somit also selbst für Argumente. Wenn sich dann ein bis zwei Jahre nach Abschluss eines Projektes jemand neu in den Sachverhalt einarbeitet, ist der Mehrwert von solchen Diagrammen meist enorm.

Mein Fazit

Ich bin ein großer Fan und Anwender von UML und anderen Diagrammen und versuche so oft wie möglich, mein zukünftiges Vorgehen damit zu planen. Dies bewahrt mich in aller Regel davor, geschriebenen Code wegwerfen zu müssen, wenn ein Fehler erst beim Programmieren aufgefallen ist. Außerdem kann ich mich mittlerweile aus einem schönen Archiv bedienen und habe für einige Probleme Standardlösungen entwickelt, die häufig auch als Basis für komplexe Anforderungen taugen. In meinem Alltag haben UML & Co. einen festen Platz im Projektablauf bekommen, und ich versuche aktiv auch andere davon zu überzeugen.

 

Ist UML neu für dich oder nutzt du es bereits? Wenn ja, welche Erfahrungen hast du damit gemacht?

1 Kommentar

Tutorials und Top Posts

1 Kommentar

Stephan Hochhaus 21. Februar 2017 - 12:35

UML ist besonders großer Spaß, wenn man es mittels PlantUML automatisch generiert. Wir nutzen das als kostenloses Confluence-Plugin und so reicht es aus, eine Zeile zu schreiben, um ein ganzes Diagram zu erzeugen:
„Client->Server : ehlo“

Reply

Gib uns Feedback

Diese Seite benutzt Cookies. Ein Akzeptieren hilft uns die Seite zu verbessern. Ok Mehr dazu