---
title: "Teil 2 – Analyse einer bestehenden Anwendung mit Altova UModel"
date: "2009-04-24"
tags: 
  - "c"
  - "java"
  - "missionkit"
  - "software-modeling"
  - "uml"
  - "uml-tool"
  - "umodel"
description: Dieser Artikel behandelt die Erstellung von Anwendungsfalldiagrammen für eine bestehende Geldautomatenanwendung mithilfe von Altova UModel, wobei der Schwerpunkt auf Benutzerinteraktionen und geplanten Verbesserungen liegt.
---
Status: #blog

Tags:  #c #java #missionkit #software-modeling #uml #uml-tool #umodel

Categories: [Altova](/blog/de/category/altova.md) 
# Teil 2 – Analyse einer bestehenden Anwendung mit Altova UModel

In [Teil 1](https://www.altova.com/blog/2009/04/analyzing-legacy-application-with.html) In der Reihe "Analyse einer Legacy-Anwendung" haben wir unsere Simulations-App für Geldautomaten vorgestellt und den Java-Quellcode in ein.. [UModel](https://www.altova.com/de/products/umodel/uml_tool.html) Projekt, und wir haben ein Klassendiagramm verfeinert, um einen Überblick über die Anwendungsklassen und ihre Beziehungen zu erhalten. In diesem Beitrag werden wir.. [Anwendungsfall diagrams](https://www.altova.com/de/features_use_case.html) um die aktuelle Funktionalität unserer ATM-App zu dokumentieren, und wir werden ein Use-Case-Diagramm erstellen, um eine zukünftige Erweiterung zu planen. Wie wir in Teil 1 gesehen haben, wird der Benutzer aufgefordert, sich bei der Ausführung unserer ATM-Simulation mit einer Kontonummer und einem PIN-Code anzumelden. Anschließend wird ihm ein Transaktionsmenü angezeigt, das alle verfügbaren Interaktionen mit der Anwendung zusammenfasst: 

[![Menü für Transaktionen bei der Simulation eines Geldautomaten](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSDHQ4GSI/AAAAAAAAAEM/jvo19yCSOQo/transaction%20menu_thumb%5B2%5D.gif?imgmax=800 "ATM Simulation transaction menu")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSC3HfXsI/AAAAAAAAAEI/b8fsi30qDyg/s1600-h/transaction%20menu%5B4%5D.gif) 

Mit dem Menüpunkt "Transaktionen" als Grundlage können wir ein Anwendungsfalldiagramm erstellen, das die Interaktionen der Benutzer mit der ATM-Simulation dokumentiert: 

[![Übersicht über die Funktionsweise einer Geldautomaten-Simulation, dargestellt in einem Anwendungsfall-Diagramm](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSEJlkKRI/AAAAAAAAAEU/zZp4OlbX7Ms/usecase1_thumb%5B1%5D.gif?imgmax=800 "ATM Simulation overview use case diagram")](http://lh3.ggpht.com/_REdrfeVqYdU/SfHSDuArD2I/AAAAAAAAAEQ/pb26wYjQWWA/s1600-h/usecase1%5B3%5D.gif)

Wenn Sie mit der UML-Notation vertraut sind, ist Ihnen vielleicht aufgefallen, dass die im Diagramm dargestellte "Akteur"-Figur nicht wie die typische, einfache UML-Darstellung aussieht. Mit UModel können Softwaremodellierer jedem beliebigen Windows-.bmp-Bild eine Rolle als "Akteur" in einem Anwendungsfalldiagramm zuweisen. Wir haben das Hilfsprogramm "Eigenschaften" verwendet, um ein Bild aus der mit UModel gelieferten Bibliothek auszuwählen und zuzuweisen.

[![Altova UModel-Eigenschaftsfenster](https://lh4.ggpht.com/_REdrfeVqYdU/SfHSEq2AYoI/AAAAAAAAAEc/qDV7VjIP0p4/PropertiesWindow_thumb%5B1%5D.gif?imgmax=800 "Altova UModel Properties Window")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSEfzVyeI/AAAAAAAAAEY/1m5PRtMuCHg/s1600-h/PropertiesWindow%5B3%5D.gif) 

Ein Anwendungsfalldiagramm ist nicht der geeignete Ort, um Anwendungsabläufe oder objektorientierte Klassen zu definieren, sondern dient lediglich dazu, zu dokumentieren, wie ein Benutzer (ein Akteur in der UML-Terminologie) mit dem System interagiert. Wir können zusätzliche Anwendungsfalldiagramme erstellen, um detailliertere Informationen über jede Interaktion darzustellen. Die Darstellung jeder Interaktion in einem separaten Diagramm verbessert die Übersichtlichkeit, da jedes Layout einfach und übersichtlich bleibt und ausreichend Platz für die Ausprobierung verschiedener Optionen bietet. 

[![Detailliertes Anwendungsfalldiagramm für die Benutzeranmeldung](https://lh4.ggpht.com/_REdrfeVqYdU/SfHSFKI29WI/AAAAAAAAAEk/AFJI7u3ywco/usecase2_thumb%5B1%5D.gif?imgmax=800 "Detailed user sign in use case diagram")](http://lh5.ggpht.com/_REdrfeVqYdU/SfHSE60c0kI/AAAAAAAAAEg/Lg11jQtejFM/s1600-h/usecase2%5B3%5D.gif) 

Wir haben die Authentifizierung der Kontonummer und der PIN in einem separaten Hinweis hinzugefügt, anstatt in einem Use-Case-Diagramm, da der Benutzer des Geldautomaten nicht die Person ist, die diesen Schritt ausführt. Basierend auf unserer Erfahrung mit Geldautomaten können wir vermuten (da wir den Code noch nicht analysiert haben), dass eine Abhebung abgebrochen wird, wenn der angeforderte Betrag höher ist als der Kontostand. Das Vergleichen des Abhebungsbetrags mit dem Kontostand wird jedoch nicht vom Benutzer durchgeführt, daher wird diese Aktivität ebenfalls nicht in einem Use-Case-Diagramm dargestellt. 

[![Diagramm für den Anwendungsfall "Bargeld abheben"](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSF209eRI/AAAAAAAAAEs/eB3dPyG57PI/usecase3_thumb%5B1%5D.gif?imgmax=800 "Withdraw cash use case diagram")](http://lh5.ggpht.com/_REdrfeVqYdU/SfHSFm6llBI/AAAAAAAAAEo/xn6UYTTGn7I/s1600-h/usecase3%5B3%5D.gif) 

Der Pfeil innerhalb des Anwendungsfalls "Bargeld abheben" zeigt einen Hyperlink an. Mit UModel können Sie einem beliebigen Element in Ihren Diagrammen einen oder mehrere Hyperlinks zuordnen. Ein Hyperlink kann auf eine URL, eine externe Datei oder ein anderes Diagramm verweisen. Das Dialogfenster für Hyperlinks ermöglicht es Ihnen sogar, Hilfetexte für Ihre Hyperlinks zu definieren. 

[![Dialogfenster für Hyperlinks in Altova UModel](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSGYeH0rI/AAAAAAAAAE0/36DgzV_Yl-0/hyperlinksdialog_thumb%5B1%5D.gif?imgmax=800 "Altova UModel hyperlinks dialog")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSGFUiWVI/AAAAAAAAAEw/ZZU8p5k9ks4/s1600-h/hyperlinksdialog%5B3%5D.gif) 

[![Text für Hyperlinks in Diagrammen von Anwendungsfällen](https://lh4.ggpht.com/_REdrfeVqYdU/SfHSHKYq3HI/AAAAAAAAAE8/fw1H_zlU6Vo/usecase4_thumb%5B1%5D.gif?imgmax=800 "Hyperlink pop-up text in use case diagram")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSGu60M4I/AAAAAAAAAE4/qrle7DV5PXw/s1600-h/usecase4%5B3%5D.gif) 

Wenn Sie mehr als einen Hyperlink definieren, wird Ihr Hilfetext zu einem Popup-Auswahlmenü. Nehmen wir an, wir sollen die bestehende ATM-Simulation so ändern, dass für jede Abhebung eine Gebühr erhoben wird. Wenn der Abhebebetrag weniger als 100 Dollar beträgt, beträgt die Gebühr 2 Dollar. Wenn der Abhebebetrag 100 Dollar oder mehr beträgt, beträgt die Gebühr 4 Dollar. Da das Geldautomat keine Ein-Dollar-Scheine ausgibt, muss die Gebühr vom Konto belastet werden, nicht vom Bargeldbetrag abgezogen. Die Gebühr wird dem Benutzer angezeigt, bevor Bargeld ausgegeben wird, und er hat die Möglichkeit, die Transaktion abzubrechen. Wir können diese neue Anforderung unserem Use-Case-Diagramm für die Geldautomat-Abhebung hinzufügen. 

[![Verbessertes Anwendungsfall-Diagramm für die Funktion "Bargeld abheben"](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSHjveWdI/AAAAAAAAAFE/etX3ZjlAsQM/usecase5b_thumb%5B1%5D.gif?imgmax=800 "Enhanced Withdraw Cash use case diagram")](http://lh3.ggpht.com/_REdrfeVqYdU/SfHSHRdwdII/AAAAAAAAAFA/3zBX6tvvOAM/s1600-h/usecase5b%5B3%5D.gif) 

Wir haben die Farbe des Ovalsymbols für den Anwendungsfall "Gebühr genehmigen" geändert, um anzuzeigen, dass es sich um eine geplante Funktion handelt, die noch nicht implementiert ist. Einige Entwickler würden argumentieren, dass der Hinweis, der an das Ovalsymbol für "Gebühr genehmigen" angefügt ist, überflüssig ist, da die Angabe "inkludiert" allein bereits darauf hinweist, dass "Gebühr genehmigen" ein notwendiger Bestandteil von "Bargeld abheben" ist. Aber viele Menschen sind verwirrt über den Unterschied zwischen "inkludiert" und "erweitert", daher ist es am besten, absolut klar zu sein. Wir können auch die Funktion "UModel-Ebenen" nutzen, um alle Elemente, die mit der neuen Funktion zusammenhängen, in einer separaten Ebene zu platzieren.

[![Kontextmenü "Ebene zuweisen" in Altova UModel](https://lh5.ggpht.com/_REdrfeVqYdU/SfHSIi2xicI/AAAAAAAAAFM/ScNlckyeir4/layersAssign_thumb%5B1%5D.gif?imgmax=800 "Altova UModel Assign Layer context menu")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSIBpiEzI/AAAAAAAAAFI/CcWmv9OlLxs/s1600-h/layersAssign%5B3%5D.gif)

Das Hilfefenster "Ebenen" ermöglicht es uns jetzt, die geplante Funktion in unserer Diagrammansicht ein- oder auszublenden. 

[![Altova UModel: Hilfenfenster für Ebenen](https://lh6.ggpht.com/_REdrfeVqYdU/SfHSJdL7XKI/AAAAAAAAAFU/3N3VfK_DHpM/layersview_thumb%5B1%5D.gif?imgmax=800 "Altova UModel Layer helper window")](http://lh4.ggpht.com/_REdrfeVqYdU/SfHSI19nEtI/AAAAAAAAAFQ/uwwdU85SDgo/s1600-h/layersview%5B3%5D.gif) 

Die Erfahrungen mit realen Geldautomaten zeigen, dass eine Transaktion in der bestehenden ATM-Simulation fehlt. Das Transaktionsmenü bietet keine Möglichkeit, Geld zwischen Konten zu überweisen. Aus den bereits erstellten Diagrammen können wir erkennen, dass das ursprüngliche Anwendungsdesign eine Überweisung nur schwer umsetzbar macht. Die Benutzeranmeldung basiert auf der Kontonummer, und es scheint, dass die bestehende Anwendung das Konzept eines einzelnen Bankkunden, der sowohl ein Girokonto als auch ein Sparkonto besitzt, nicht versteht. Wenn unser Vorgesetzter die Funktion zur Überweisung von Geldern anfordert, müssen wir ein Gespräch mit unserem Unternehmensarchitekten für Software führen. Eine Benutzer-ID, die mit mehreren Konten verknüpft ist, muss nicht nur in unserer ATM-Simulationsanwendung, sondern auch in der Bankdatenbank implementiert werden. 

Das mit dem [Jolt-Preis ausgezeichnete](https://www.altova.com/de/JOLTAward_MissionKit_031809.html) Altova [MissionKit für Enterprise-Architekten](https://www.altova.com/de/products/missionkit/software_architect_tools.html) ist eine Sammlung aus acht XML-, Datenbank- und UML-Tools für Softwarearchitekten, die neben fortschrittlichen XML-, Web-Service- und Datenintegrationsfunktionen möglicherweise auch UML-Modellierungs- und Datenbankverwaltungstools benötigen. 

[Klicken Sie hier, um eine voll funktionsfähige 30-Tage-Testversion herunterzuladen.](https://www.altova.com/de/download/missionkit/software_development_tools_enterprise.html) In der nächsten Folge werden wir die bestehende ATM-Simulation aus einer völlig neuen Perspektive betrachten, während wir uns darauf vorbereiten, den Code genauer zu untersuchen. 
