130 likes | 241 Views
Universit ät zu Köln Historische-Kulturwissenschaftliche Informationsverarbeitung Hauptseminar: Praktische Probleme rechnergestützter Editionsphilologie Prof. Dr. Thaller. UML Begleitdokumentation des Projekts. Andrea Sardo WS 2006/07. Was ist die UML?.
E N D
Universität zu KölnHistorische-Kulturwissenschaftliche InformationsverarbeitungHauptseminar: Praktische Probleme rechnergestützter EditionsphilologieProf. Dr. Thaller UML Begleitdokumentation des Projekts Andrea Sardo WS 2006/07
Was ist die UML? Die Unified Modeling Language (UML) ist eineSprache zur Spezifikation, Visualisierung, Konstruktion und Dokumentation von Modellen für Softwaresysteme, Geschäftsmodelle und andere Nicht-Softwaresysteme.. Entwickelt wurde die UML von Grady Boch, Ivar Jacobsen und Jim Rumbaugh,von der Object Management Group (OMG) . Der Grundgedanke bei der UML bestand darin, eine einheitliche Notation für viele Einsatzgebiete zu haben. Die UML dient der Beschreibung von: • Datenbankanwendungen; • Echtzeitsystemen; • Grafikprogrammen; • Workflow-Anwendungen; • usw.; Kurz gesagt: Alle Softwaresysteme sollen mit der UML darstellbar sein.
Was ist die UML nicht • Die UML ist keine Methode. Sie ist lediglich ein Satz von Notationen zur Formung einer allgemeinen Sprache zur Softwareentwicklung. Eine Methode beinhaltet Empfehlungen zur Vorgehensweise bei Entwicklungsprozessen • Die UML ist kein Software-Entwicklungsprozess ... sondern beschreibt Diagramme und Notationen. • Die UML ist kein semantisches Meta-Modell • Die UML ist nicht als Werkzeug-Schnittstelle, Datenbank oder Laufzeitmodell gedacht .. sondern als Modellierungssprache für Menschen • UML ist keine Visuelle Programmiersprache ... sondern eine Entwurfssprache • Das heißt, ein in der UML definierter Begriff ist kein Wort …sondern einfache geometrische Forme
Wie arbeitet die UML • Die zentrale Rolle wird in der UML von den Diagrammen gespielt. • Die UML Diagramme sind verschiedene Ansichten von der Software/Projekt • Jedes Diagramm stellt also ein Modell dar, das ganz bestimmte Aspekte der Software zeigt eine Software wird durch Diagramme aus verschiedenen Blickwinkeln beschrieben.
Diagramme Die Diagramme lassen sich in 2 Gruppen einteilen: • Strukturdiagramme Was das System ist. Sie dienen zur Darstellung der statischen Architektur des Systems auf Klassen, und Objektebene, d.h. zur Darstellung der Innensicht • Verhaltensdiagramme Was das System macht. Sie eignen sich zur Beschreibung des Verhaltens des System, d.h. zur Modellierung der Außensicht und sind damit die Diagramme, die für eine Anforderungs-Analyse eingesetzt werden sollten.
Unserer Fall Wir betrachten drei sehr wichtige Diagramme von der UML: • Klassendiagramm beschreibt den strukturellen Aspekt in Form von Klassen, Interfaces und Beziehungen • Anwendungsfalldiagramm (Use case-Diagramm) beschreibt die Funktionalität des entwickelnden Systems aus Benutzersicht • Sequenzdiagramm beschreibt den zeitlichen Verlauf von Interaktionen zwischen einer Menge von Objekten innerhalb eines zeitlich begrenzten Kontextes.
Poseidon for UML Diese Diagramme wurden mit einem UML-Tool, Gentleware-Poseidon, entwicklelt. Es gibt verschiedene Software, die die UML-Modellierung (auch Eclipse) ermöglichen Außer dem Entwurf von Diagrammen, erlaubt Poseidon auch die Generation von Dokumentation und Javacode.
Beispiel: generierte Dokumentation • Documentation generated with Poseidon for UMLtm • Modelle • model 1 • @author Andrea • Authors: • Andrea • public class Benutzer • Namespace: model 1 • Attribute Summary: private String adresse, private Integer id, private String name, • private String password, private String typ • Method Summary: public public anmelden(),private void bereitStellen() • Association Summary: Benutzer To Anmeldung • Own Association End Summary: Benutzer • Opposite Association End Summary: Anmeldung • Attribute Detail: • adresse • private String adresse • Multiplicity: 1 • Ordering: unspecified
Beispiel: generierter Javacode • public class Text { • /** * <p>Represents ...</p> * */ • public String autor; • /** * <p>Represents ...</p> * */ • public String titel; • /** * <p>Represents ...</p> * */ • private int edition; • /** * <p>Represents ...</p> * */ • private int jahr; • /** * <p>Represents ...</p> * */ • private int documentID; • /** * * */ • public Suche suche; • /** * * */ • public Bereitstellung bereitstellung; • /** * * */ • public Fenster fenster; • /** * <p>Does ...</p> * */ • public void speichern() { • // your code here • } • } /** * * */ public class administrator extends Benutzer { /** * <p>Does ...</p> * */ public void dataSichern() { // your code here } /** * <p>Does ...</p> * */ public void benutzerVerwaltung() { // your code here } }