Model-View-Controller (MVC)jest podstawowym wzorcem projektowym, który oddziela logikę interfejsu użytkownika od logiki biznesowej. Wzorzec Model-View-Controller (MVC) to sposób podziału aplikacji na trzy wyraźne komponenty: model, widok i kontroler.
Framework MVC z wykorzystaniem modelowania UML
Ten model-view-controller można najlepiej opisać wizualnie, używając analizy odporności w stereotypowej notacji UML, która została po raz pierwszy zaproponowana przez Ivara Jacobsona w jego nagradzanej książce Inżynieria Oprogramowania Obiektowego (patrz odniesienia poniżej) i dalej wyjaśniona przez Douga Rosenberga i in. w jego książce Modelowanie Obiektowe UML Napędzane Przypadkami Użycia.
Oto prosty i hipotetyczny diagram sekwencji dla MVC. To, co widzisz na powyższym diagramie, to fakt, że użytkownik sieciowy inicjuje zapytanie i generuje zdarzenie, które jest przetwarzane przez kontroler w celu uzyskania wymaganych informacji z modelu, walidacji informacji i przekazania zestawu wyników z powrotem do widoku.
Obiekty encji (model) to nic innego jak informacje lub dane, których szukają twoje obiekty graniczne. Mogą to być tabele bazy danych, pliki Excel, lub „przejrzyste” sesje lub dane w pamięci podręcznej lub coś w tym stylu.
- Opisuje obiekty, które istnieją w czasie i są głównie związane z trwałym stanem.
- Zwykle obiekty z modelu domeny
- Rzeczy, które musimy śledzić i przechowywać
Obiekty graniczne (Widok) to obiekty, z którymi aktorzy (np. użytkownicy) komunikują się w twoim systemie oprogramowania. Te obiekty mogą być dowolnym oknem, ekranem, dialogiem i menu lub innym interfejsem użytkownika w twoim systemie. Możesz je łatwo zidentyfikować podczas analizy przypadków użycia.
- opisuje połączenia między systemem a środowiskiem, które komunikują się.
- Używane przez aktorów podczas komunikacji z systemem
- Tylko obiekty encji mogą inicjować zdarzenia
- (zwykle główne elementy interfejsu użytkownika, np. ekrany)
Obiekty kontrolne (kontrolery) to obiekty biznesowe lub twoje usługi internetowe. Tutaj uchwycisz zasady biznesowe, które są używane do filtrowania danych, które mają być prezentowane użytkownikowi, o co prosi. Tak więc kontroler faktycznie kontroluje logikę biznesową i transformację danych.
- opisuje zachowanie w danym przypadku użycia.
- „Lepik” między obiektami granicznymi a obiektami encji
- Uchwyć zasady i polityki biznesowe
- (uwaga: często implementowane jako metody innych obiektów)
Zasady połączeń w modelu MVC
Zauważ, że obiekty graniczne i obiekty encji to rzeczowniki, podczas gdy kontrolery to czasowniki.
Oto cztery podstawowe zasady połączenia.
- Aktorzy mogą tylko wchodzić w interakcje lub komunikować się z obiektami granicznymi.
- Obiekty graniczne mogą komunikować się tylko z kontrolerami i aktorami.
- Obiekty encji mogą wchodzić w interakcje tylko z kontrolerami.
- Kontrolery mogą komunikować się z obiektami granicznymi i obiektami encji, a także z innymi kontrolerami, ale nie z aktorami
Pamiętaj, że zarówno obiekty graniczne, jak i obiekty encji to rzeczowniki, podczas gdy kontrolery to czasowniki. Rzeczowniki nie mogą rozmawiać z innymi rzeczownikami, ale czasowniki mogą rozmawiać z rzeczownikami lub czasownikami.
Diagram analizy odporności w skrócie
Załóżmy, że mamy następujący prosty opis przypadku użycia w formacie tekstowym:
Na stronie szczegółów studenta nauczyciel klika przycisk „Dodaj kursy”, a system wyświetla listę kursów. Nauczyciel wybiera nazwę kursu i naciska przycisk „Zarejestruj”. System rejestruje studenta na kurs.
Teraz możesz stworzyć prosty diagram odporności zgodnie z powyższym przypadkiem użycia:
Możesz również użyć etykiety tekstowej, aby dołączyć opis przypadku użycia po prawej stronie diagramu odporności.
Pięć kroków do stworzenia analizy odporności
- Przeprowadzasz analizę odporności dla przypadku użycia, przechodząc przez tekst przypadku użycia.
- Jedno zdanie na raz, rysując aktorów, odpowiednie obiekty graniczne, obiekty encji i kontrolery oraz połączenia między różnymi elementami diagramu.
- Powinieneś być w stanie zmieścić podstawowy kurs i wszystkie alternatywne kursy na jednym diagramie.
- Każdy, kto przegląda diagram odporności, powinien być w stanie odczytać przebieg działań w tekście przypadku użycia, śledzić palcem powiązania na diagramie i zobaczyć wyraźne dopasowanie między tekstem a obrazem.
Prawdopodobnie będziesz musiał przepisać tekst swojego przypadku użycia podczas tego procesu, aby usunąć niejednoznaczności i wyraźnie odwołać się do obiektów granicznych i obiektów encji. Większość ludzi nie pisze idealnego tekstu przypadku użycia w pierwszym szkicu. Dlatego możemy użyć analizy odporności, aby zniwelować różnicę między tekstem przypadku użycia a diagramem.
Opracuj scenariusz przypadku użycia przy użyciu diagramów sekwencji MVC
Na podstawie analizy odporności możemy opracować scenariusze przypadków użycia (normalne lub alternatywne) przy użyciu zestawu powiązanych diagramów sekwencji w formacie MVC. Podobnie, MVC Diagram sekwencjima obiekty interfejsu, obiekty kontrolera i obiekty encji:
- Encje to obiekty reprezentujące dane systemowe: Klient, Produkt, Transakcja, Koszyk itp.
- Granice to obiekty, które komunikują się z aktorami systemu: InterfejsUżytkownika, BramaBazyDanych, ProxySerwera itp.
- Kontrole to obiekty, które pośredniczą między granicami a encjami.
Orkiestrują wykonanie poleceń pochodzących z granicy, wchodząc w interakcje z encjami za pośrednictwem obiektów granicznych. Obiekt kontrolera często odpowiada scenariuszowi przypadku użycia i często jest reprezentowany przez diagram sekwencji.
Możesz użyć stereotypów dla linii życia w diagramie sekwencji MVC, aby wizualnie wyjaśnić, jakiego rodzaju obiektów używasz w MVC, podobnie jak w diagramie analizy odporności powyżej.
Przykład diagramu sekwencji MVC
Załóżmy, że mamy aplikację, która pozwala na wyszukiwanie osób. Interfejs użytkownika musi mieć pole tekstowe, w którym użytkownik może wpisać ciąg wyszukiwania, a także może mieć przycisk do rozpoczęcia wyszukiwania. Na koniec musi mieć obszar, w którym wyświetlane są wyniki wyszukiwania. W naszym przypadku jest to zaimplementowane za pomocą komponentu listy.
Scenariusz przypadku użycia „Wyszukiwanie osób” to:
- Użytkownik wpisuje ciąg wyszukiwania w polu tekstowym
- Użytkownik klika przycisk wyszukiwania.
- Wynik wyszukiwania jest wyświetlany na liście wyników.
Diagram sekwencji powyżej pokazuje, jak kliknięcie przycisku przez użytkownika przechodzi przez aplikację, aż wynik zostanie ostatecznie wyświetlony w komponencie listy.
Odniesienia
- Samouczek dotyczący diagramu sekwencji
- Jak narysować diagram sekwencji?
- Szablony diagramów sekwencji
- Narzędzie do diagramów sekwencji UML
Ten post dostępny jest również w Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文