Model-View-Controller (MVC) ist ein grundlegendes Entwurfsmuster, das die Logik der Benutzeroberfläche von der Geschäftslogik trennt. Das Model-View-Controller (MVC)-Muster ist eine Möglichkeit, eine Anwendung in drei verschiedene Komponenten zu unterteilen; das Modell, die Ansicht und der Controller.
MVC Framework mit UML-Modellierung
Dieser Model-View-Controller lässt sich am besten visuell mithilfe der Robustheitsanalyse in stereotyper UML-Notation beschreiben, die erstmals von Ivar Jacobson in seinem preisgekrönten Buch Object-Oriented Software Engineering (siehe Referenzen unten) vorgeschlagen und von Doug Rosenberg et al . in seinem Buch Use Case-Driven UML Object Modeling.
Hier ist ein einfaches und hypothetisches Sequenzdiagramm für MVC. Was Sie im obigen Diagramm sehen, ist, dass ein Webbenutzer eine Abfrage initiiert und ein Ereignis generiert, das vom Controller verarbeitet wird, um die erforderlichen Informationen aus dem Modell zu erhalten, die Informationen zu validieren und die Ergebnismenge an die Ansicht zurückzugeben.
Entitätsobjekte (Modell) sind nichts anderes als die Informationen oder Daten, nach denen Ihre Begrenzungsobjekte suchen. Dies können Datenbanktabellen, Excel-Dateien oder „transiente“ Sitzungen oder zwischengespeicherte Daten oder ähnliches sein.
- Beschreiben Sie Objekte, die im Laufe der Zeit existieren und sich hauptsächlich mit dem dauerhaften Zustand befassen.
- Normalerweise Objekte aus dem Domänenmodell
- Dinge, die wir im Auge behalten und speichern müssen
Boundary Objects (View) sind Objekte, mit denen Akteure (z. B. Benutzer) in Ihrem Softwaresystem kommunizieren. Diese Objekte können beliebige Fenster, Bildschirme, Dialoge und Menüs oder andere Benutzeroberflächen in Ihrem System sein. Sie können sie bei der Analyse von Anwendungsfällen leicht identifizieren.
- beschreiben die Verbindungen zwischen dem System und der Umgebung, die kommunizieren.
- Wird von Akteuren bei der Kommunikation mit dem System verwendet
- Nur Entitätsobjekte können Ereignisse initiieren
- (normalerweise Hauptelemente der Benutzeroberfläche, z. B. Bildschirme)
Steuerungsobjekte (Controller) sind Geschäftsobjekte oder Ihre Geschäftswebdienste. Hier erfassen Sie die Geschäftsregeln, die verwendet werden, um die Daten herauszufiltern, die dem Benutzer präsentiert werden sollen, was er verlangt. Der Controller steuert also tatsächlich die Geschäftslogik und die Datentransformation.
- Beschreiben Sie das Verhalten in einem bestimmten Anwendungsfall.
- Der „Klebstoff“ zwischen Begrenzungsobjekten und Entitätsobjekten
- Erfassen Sie Geschäftsregeln und Richtlinien
- (Hinweis: oft als Methoden anderer Objekte implementiert)
Verbindungsregeln im MVC-Modell
Beachten Sie, dass Begrenzungsobjekte und Entitätsobjekte Substantive sind, während Controller Verben sind.
Hier sind die vier Grundregeln der Verbindung.
- Akteure können nur mit Begrenzungsobjekten interagieren oder kommunizieren.
- Begrenzungsobjekte können nur mit Controllern und Akteuren kommunizieren.
- Entitätsobjekte können nur mit Controllern interagieren.
- Controller können mit Begrenzungsobjekten und Entitätsobjekten sowie anderen Controllern kommunizieren, aber nicht mit Akteuren
Denken Sie daran, dass sowohl Begrenzungsobjekte als auch Entitätsobjekte Substantive sind, während Controller Verben sind. Substantive können nicht mit anderen Substantiven sprechen, aber Verben können mit Substantiven oder Verben sprechen.
Diagramm der Robustheitsanalyse auf einen Blick
Angenommen, wir haben die folgende einfache Anwendungsfallbeschreibung im Textformat:
Auf der Schülerdetailseite klickt der Lehrer auf die Schaltfläche „Kurse hinzufügen“ und das System zeigt die Liste der Kurse an. Der Lehrer wählt den Namen eines Kurses aus und drückt die Schaltfläche „Anmelden“. Das System meldet den Studenten für den Kurs an.
Jetzt können Sie ein einfaches Robustheitsdiagramm gemäß dem obigen Anwendungsfall erstellen:
Sie können auch eine Textbeschriftung verwenden, um die Beschreibung des Anwendungsfalls auf der rechten Seite des Robustheitsdiagramms anzubringen.
Fünf Schritte zum Erstellen einer Robustheitsanalyse
- Sie führen eine Robustheitsanalyse für einen Anwendungsfall durch, indem Sie den Anwendungsfalltext durchgehen.
- Einen Satz nach dem anderen und Zeichnen der Akteure, der entsprechenden Grenze, der Entitätsobjekte und Controller sowie der Verbindungen zwischen den verschiedenen Elementen des Diagramms.
- Sie sollten in der Lage sein, den Grundkurs und alle alternativen Kurse in einem Diagramm unterzubringen.
- Jeder, der ein Robustheitsdiagramm überprüft, sollte in der Lage sein, eine Vorgehensweise im Anwendungsfalltext zu lesen, mit dem Finger die Assoziationen auf dem Diagramm nachzuzeichnen und eine klare Übereinstimmung zwischen Text und Bild zu sehen.
Wahrscheinlich müssen Sie dabei Ihren Anwendungsfalltext neu schreiben, um Mehrdeutigkeiten zu beseitigen und explizit auf Begrenzungsobjekte und Entitätsobjekte zu verweisen. Die meisten Leute schreiben im ersten Entwurf keinen perfekten Use-Case-Text. Wir können also die Robustheitsanalyse verwenden, um die Lücke zwischen dem Anwendungsfalltext und dem Diagramm zu schließen.
Anwendungsfall-Szenario mit MVC-Sequenzdiagrammen entwickeln
Basierend auf der Robustheitsanalyse können wir Anwendungsszenarien (normal oder alternativ) entwickeln, indem wir eine Reihe verwandter Sequenzdiagramme im MVC-Format verwenden. In ähnlicher Weise hat das MVC – Sequenzdiagramm Schnittstellenobjekte, Controller-Objekte und Entitätsobjekte:
- Entitäten sind Objekte, die Systemdaten darstellen: Kunde, Produkt, Transaktion, Warenkorb usw.
- Grenzen sind Objekte, die mit Systemakteuren verbunden sind: UserInterface, DataBaseGateway, ServerProxy usw.
- Steuerelemente sind Objekte, die zwischen Grenzen und Entitäten vermitteln.
Sie orchestrieren die Ausführung von Befehlen, die von der Grenze kommen, indem sie mit Entitäten über die Grenzobjekte interagieren. Ein Controller-Objekt entspricht oft dem Anwendungsfall-Szenario und wird oft durch ein Sequenzdiagramm dargestellt.
Sie können Stereotype für die Lebenslinie im MVC-Sequenzdiagramm verwenden, um visuell deutlich zu machen, welche Art von Objekten Sie im MVC verwenden, wie im obigen Robustness Analysis Diagram.
Beispiel für ein MVC-Sequenzdiagramm
Stellen Sie sich eine Anwendung vor, mit der Sie nach Personen suchen können. Die Benutzeroberfläche muss über ein Textfeld verfügen, in das der Benutzer eine Suchzeichenfolge eingeben kann, und möglicherweise über eine Schaltfläche zum Starten der Suche. Schließlich muss es einen Bereich geben, in dem die Suchergebnisse angezeigt werden. In unserem Fall wird es mit einer Listenkomponente implementiert.
Das Use-Case-Szenario „Suche nach Personen“ ist:
- Der Benutzer gibt eine Suchzeichenfolge in das Textfeld ein
- Der Benutzer klickt auf die Suchschaltfläche.
- Das Suchergebnis wird in der Ergebnisliste angezeigt.
Das obige Sequenzdiagramm zeigt, wie sich der Klick des Benutzers auf die Schaltfläche durch die Anwendung bewegt, bis das Ergebnis schließlich in der Listenkomponente angezeigt wird.
Verweise