![]() |
![]() | ![]() | ![]() | UMLIn UML (Unified Modeling Language) werden Erkenntnisse aus anderen technischen Bereichen auf die Software-Entwicklung übertragen. Die Unified Modeling Language (UML) ist eine grafische Sprache zum Strukturieren, Analysieren und Planen von Software-Projekten, bevor der Code geschrieben wird. Die UML-Spezifikation wird von der Objekt Management Group (OMG) betreut und wurde 1997 durch Kombination der Vorteile dreier verschiedener Software-Modellierungstechnologien geschaffen. Die derzeitige UML 2.2-Spezifikation enthält Änderungen, Vorschläge und Verbesserungen und ist das Resultat jahrelanger Anwendung von UML in der Praxis. UML-Diagramme bilden ein Modell für eine Software-Applikation, das mit den Plan eines Architekten verglichen werden kann. Mit Hilfe dieses Modells können die Software-Entwickler und Projektmanager überprüfen, ob die Logik der Applikation korrekt ist und die Anforderungen der Endbenutzer erfüllt werden, bevor tatsächlich Code geschrieben wird. Da UML Software-Applikationen in einer grafischen Ansicht darstellt, werden diese Applikationen auch für Nicht-Programmierer verständlich, wodurch die Kommunikation zwischen Entwicklern und anderen Projektbeteiligten vereinfacht wird. UML (Unified Modeling Language (UML) ist mittlerweile beim Erstellen und Analysieren von Projektanforderungen und dem Entwickeln effizienterer Software-Lösungen zum Standard des 21. Jahrhunderts avanciert.
In diesem Use Case UML-Diagramm wurde anstelle des stilisierten Strichmännchens, das normalerweise den Benutzer darstellt, eine Bilddatei verwendet. UML-DiagrammeIn der UML 2.2 Spezifikation sind 14 UML-Hauptdiagrammtypen und mehr als 1.000 graphische und textuelle Sprachelemente sowie Erweiterungsmechanismen definiert. Ein UML-Modell muss nicht unbedingt alle Diagrammtypen enthalten. Einige Diagramme eignen sich z.B. zum Entwickeln von Firmware zum Steuern von Hardware-Geräten, während andere wiederum zum Beschreiben komplexer Interaktionen zwischen Geschäftseinheiten dienen. So bildet sich bei vielen Entwicklern aufgrund der häufigen Verwendung bestimmter Diagramme eine gewisse Vorliebe für diese heraus. Die UML 2.2-Standarddiagramme sind:
Wie bereits aus vielen der Diagrammnamen ersichtlich, werden in UML gute objektorientierte Programmiermethoden verwendet. In der Abbildung unten ist die Vererbung in einem UML-Klassendiagramm dargestellt. Zum Vergrößern Bild anklicken Der hohe Komplexitätsgrad kann für Entwickler, die UML erlernen möchten, eine große Herausforderung darstellen. Welche Diagramme und Elemente sind für ein spezielles Problem zu verwenden? Wie interagieren die verschiedenen Diagrammtypen und in welcher Reihenfolge sollten Sie gezeichnet werden? Ist bei dem Projekt eine iterative Herangehensweise möglich und können Aufgaben zwischen Entwicklern aufgeteilt werden, sodass sie nachher in einem einheitlichen Modell wieder zusammengesetzt werden können? Ein UML-Modell muss nicht unbedingt alle Diagrammtypen enthalten. Zustands- und Zeitverlaufsdiagramme können sich z.B. für die Entwicklung von Firmware zur Steuerung von Hardware eignen, während man Aktivitätsdiagramme zur Beschreibung komplexer Wechselwirkungen zwischen Geschäftseinheiten verwenden kann. So bildet sich bei vielen Entwicklern aufgrund der häufigen Verwendung bestimmter Diagramme eine gewisse Vorliebe für diese heraus. Developer und ihre Teams entwickeln ihre eigenen Prozesse. Manche beginnen ihr Projekt gerne mit ein bisschen UML, bevor Sie anfangen, Code zu schreiben. So kann ein Programmiererteam, das gerade mit der UML-Implementierung beginnt, z.B. einige Use Case-Diagramme mit dem Kunden besprechen, um sicherzustellen, dass beide Seiten sich über die Aufgabenstellung im Klaren sind und die Applikation dann auf herkömmliche Weise manuell schreiben. Erfahrene Entwicklerteams wiederum möchten z.B. ihre UML-Modelle durch zusätzliche Spezialdiagramme wie z.B. Business Process Models oder XML-Schemadiagramme ergänzen, um XML-Datenstrukturen zu modellieren. UML CodegenerierungIn der Vergangenheit wurde UML kritisiert, weil dadurch die Planungs- und Analysephase zu Beginn eines Software-Projekts umfangreicher werden kann. Einige Entwickler und Projektmanager hatten Angst, Ihre Projekte würden nicht termingerecht fertig werden, weil die Phase des Code-Schreibens im Vergleich zu früheren Entwicklungsprojekten später begann. UML hat jedoch mehrere Vorteile. Sie können detaillierte Modelle erstellen, um Code automatisch zu generieren, wodurch sich Programmierer auf die Business Logic und die Gesamtarchitektur der Software konzentrieren können. Aufgrund der gründlicheren Anfangsanalyse sind außerdem die Chancen höher, dass das fertige Produkt den Anforderungen entspricht und weniger Fehler enthält. Im unten gezeigten UML-Sequenzdiagramm werden die Prozesse definiert, mit denen entschieden wird, ob ein Artikel per Luftfracht oder auf dem Landweg geliefert wird.
Viele UML-Tools enthalten einen Code-Generator zur automatischen Erstellung von Java-, C#- oder VB-NET oder anderen Quellcode-Dateien auf Basis des UML-Modells. Die Codegenerierung fördert einen iterativen Entwicklungsprozessstil, der von den führenden Software-Kapazitäten empfohlen wird. Entwickler können auf diese Weise ihr Modell überarbeiten und automatisch neuen Code anhand des aktualisierten Modells generieren. UML Reverse EngineeringOft ist es die Aufgabe von Wartungsprogrammierern, Softwarefehler zu beheben oder Features hinzuzufügen, nachdem der ursprüngliche Programmierer bereits längst an anderen Projekten arbeitet. Aufgrund unbekannten Quellcodes und unzureichender Dokumentation ist es oft schwierig, wichtige Business-Applikationen an neue Anforderungen zu adaptieren. Oft kann es auch zu Kompatibilitätsproblemen bei Änderungen der Betriebsumgebung wie z.B. der Installation einer neuen Betriebssystemversion kommen. In der UML-Software-Entwickung bedeutet Reverse Engineering die Fähigkeit, bestehenden Quellcode - oder sogar Binärdateien - zu lesen und automatisch entsprechende UML-Modelle davon zu generieren. Durch diese grafische UML-Darstellung erhalten Programmierer einen besseren und schnelleren Überblick über komplexe Applikationen und können bestehende Komponenten wiederverwenden oder ändern und in ein editierbares UML-Modell inkludieren. Hier sehen Sie ein UML-Zustandsdiagramm, in dem Firmware zur Steuerung eines Entfeuchters beschrieben wird.
UML Round Trip EngineeringEs kommt der Zeitpunkt in einem Entwicklungsprozess, an dem Programmierer Ihre Aufmerksamkeit vom UML-Modell auf den eigentlichen implementierten Quellcode richten. Mit der Zeit wird das Projekt im Laufe mehrerer Test- und Debug-Zyklen weiterentwickelt und es werden am Quellcode Änderungen vorgenommen, sodass das Modell nicht mehr aktuell ist und sich nicht mehr für die Dokumentation und Kommunikation eignet. Mit Hilfe von Round Trip Engineering kann das UML-Modell mit dem Quellcode, der vom Entwickler direkt in einem Quellcode-Editor bearbeitet und verbessert wurde, synchronisiert werden. Round Trip Engineering lässt sich jederzeit wiederholen. Entwickler versuchen immer, die beste Methode zur Implementierung der einzelnen Projektrevisionen zu wählen: den Code zuerst bearbeiten und das UML-Modell anschließend synchronisieren oder zuerst ein UML-Diagramm überarbeiten und den Code dann neu generieren. Austausch von UML-Modellen über XMIXMI (XML Metamodel Interchange) ist Teil der UML-Spezifikation, in der die Methode beschrieben wird, mit der UML-Modelle in einem allgemeinen Format als XML-Schema-konforme XML-Dokumente gespeichert werden können, sodass Modelle auch von Benutzern verwendet werden können, die nicht mit derselben UML-Applikation arbeiten. UML-Tools können UML-Modelle gemäß der XMI 2.2-Spezifikation importieren und exportieren und dadurch die Interoperabilität gewährleisten, wodurch Benutzer nicht mehr an bestimmte Anbieter gebunden sind. Unten sehen Sie ein Beispiel für ein als XML-Dokument exportiertes UML-Modell, das dem XMI-Standard für den Austausch mit anderen UML-Tools entspricht.
UML-ProjektdokumentationDokumentation ist ein wichtiger Teil eines jeden Software-Entwicklungsprojekts. Sie dient dazu, gemachte Fortschritte festzuhalten, Funktionalitäten für Teammitglieder zu dokumentieren und für spätere Aktualisierungen der Applikation eine Projektskizze bereitzustellen. Projektdokumentation zu erstellen und auf aktuellem Stand zu halten, kann mühsam und zeitaufwändig sein. Viele UML-Tools helfen Ihnen, die Produktivität zu steigern, indem sie automatisch Dokumentationsdateien in HTML, Microsoft Word oder im RTF-Format generieren. Im HTML-Format funktionieren die in die Dokumentation eingebetteten Links wie in jedem Webbrowser. In die Projektdokumentation können sogar Links zu den generierten Quellcodedateien inkludiert werden. Bei Auswahl der Option "Index" kann automatisch eine Zusammenfassung des Dokuments hinzugefügt werden, die Links enthält, über die Sie zu den wichtigsten Abschnitten gelangen. IDE-IntegrationHeutzutage verwenden Software-Entwickler nicht ein einziges Tool. Daher ist es wichtig, dass sich Software-Entwicklungstools nahtlos in eine Entwicklungsumgebung wie z.B. Eclipse oder Microsoft Visual Studio einbinden lassen, damit der Entwickler jederzeit zwischen dem Quellcode-Editor, dem Compiler und dem Debugger wechseln kann. Die besten UML-Tools unterstützen sogar die automatische Echtzeit-Synchronisierung zwischen dem UML-Projekt und dem Quellcode-Editor, sodass in beiden der aktuelle Projektstatus angezeigt wird und Änderungen, die in dem einen Fenster vorgenommen werden, sofort im anderen angezeigt werden. Altova UModelUModel® 2010 ist ein UML-Software-Modellierungstool mit einer intuitiven visuellen Benutzeroberfläche und allen raffinierten UML Code Engineering-Funktionen, die ein Entwicklerteam für Software-Modellierungsprojekte jeder Größe benötigt. Was kommt als nächstes?
UML®, OMG™, Object Management Group™ und Unified Modeling Language™ sind in den USA und/oder anderen Ländern entweder eingetragene Markenzeichen oder Markenzeichen von Object Management Group, Inc. | ![]() | ![]() | ![]() |
| Altova | Rechtsabteilung | Presse | Partner | Karriere | Übersicht | Kontakt | Altova Blog | |||
|
