Co powinniśmy zapamiętać
Na czym polega modelowanie?
Podstawą modelowania jest tworzenie modeli, czyli uproszczonych reprezentacji rzeczywistości. Celem modelowania może być np. testowanie właściwości fizycznych obiektów przed ich wykonaniem, wizualizacja i komunikacja z klientami, czy też redukcja złożoności modelowanego zagadnienia. Modelowanie stosuje różne zasady radzenia sobie ze złożonością rzeczywistości, a w szczególności – zasadę abstrakcji. Zasada abstrakcji jest realizowana m.in. przez techniki klasyfikacji, enkapsulacji i generalizacji.
Język UML
Unified Modelling Language (ujednolicony język modelowania) powstał na początku jat 90-tych XX wieku i jest cały czas rozwijany. UML jest językiem graficznym, za pomocą którego można tworzyć modele niezbędne w całym procesie budowy systemu informatycznego. Można go również wykorzystywać do modelowania rzeczywistości niekoniecznie powiązanej z systemem informatycznym.
Modelowanie obiektowe
Najbardziej rozpowszechnionym współcześnie paradygmatem modelowania jest modelowanie obiektowe. Zgodnie z nazwą opiera się ono na obiektach, czyli wyodrębnionych elementach rzeczywistości istotnych z perspektywy tworzonego modelu. Każdy obiekt stanowi osobny byt wyraźnie wyodrębniony z całości modelowanej dziedziny. Obiekty mogą zatem reprezentować różnego rodzaju przedmioty, osoby, zdarzenia, procesy lub inne twory niematerialne występujące w danym środowisku. Modelowanie obiektowe polega na znajdowaniu interesujących nas obiektów rzeczywistych w danej dziedzinie, opisywaniu struktury i sposobu działania tych obiektów, klasyfikacji i generalizacji obiektów, znajdowaniu powiązań między nimi oraz opisywaniu dynamicznych aspektów współpracy pomiędzy obiektami.
Model klas
Model klas jest uniwersalnym modelem, używanym do odzwierciedlania struktury wynikłej z klasyfikacji elementów i uporządkowania łączących je zależności. Diagramy klas mogą dotyczyć opisu rzeczywistości, definicji struktur danych lub projektu szczegółowej struktury kodu. Podstawowymi elementami modelu klas są klasy i interfejsy oraz łączące je relacje: asocjacje, agregacje, kompozycje, generalizacje, realizacje. Klasy mogą posiadać atrybuty oraz operacje.
Model komponentów
Model komponentów znajduje zastosowanie przede wszystkim w definiowaniu architektur logicznych systemów oprogramowania. Ma on na celu przedstawianie struktur systemów, które są na tyle złożone, że konieczne jest opisanie ich na wyższym poziomie abstrakcji niż poziom klas. Dzięki temu możliwe jest istotne ograniczenie liczby prezentowanych szczegółów, a tym samym – lepsze panowanie nad złożonością całości. Diagramy komponentów zawierają komponenty z portami oraz interfejsami dostarczanymi i wymaganymi, a także odpowiednie relacje zależności między nimi.
Model wdrożenia
Model wdrożenia (nazywany też modelem montażu) znajduje zastosowanie w modelowaniu architektur fizycznych systemów oprogramowania. Diagramy wdrożenia pozwalają na zdefiniowanie fizycznych elementów budowanego systemu informatycznego oraz połączeń między nimi. Umożliwiają one również pokazanie zależności pomiędzy strukturą logiczną a fizyczną podmiotu modelowania. Na diagramach montażu umieszczamy węzły z relacjami oraz artefakty z komponentami, połączone odpowiednimi relacjami montażu i wyrażania.
Model przypadków użycia
Za pomocą diagramów przypadków użycia możemy opisywać zewnętrzny sposób zachowania się systemu, tzn. jego funkcjonalność z punktu widzenia środowiska (głównie – użytkowników). Model ten zawiera przypadki użycia realizowane na rzecz aktorów. W modelu przypadków użycia uwzględniamy również relacje między przypadkami użycia, które oznaczają wzajemne włączanie, rozszerzanie lub wywoływanie funkcjonalności.
Model czynności
Diagramy czynności stanowią grafy skierowane opisujące sieci akcji wraz z odpowiednimi przepływami sterowania między akcjami. Model ten realizuje częstą potrzebę podczas modelowania systemów, jaką jest przedstawienie jakiegoś procesu w postaci schematu blokowego. Oznacza to konieczność zbudowania modelu składającego się z akcji oraz przepływów sterowania między akcjami, czyli modelu czynności. Modele czynności mogą opisywać algorytmy, procesy biznesowe, procesy fizyczne lub scenariusze przypadków użycia, które też tworzą pewnego rodzaju proces. W modelu czynności występują węzły sterujące (decyzyjne, rozwidlenia itd.) umożliwiające zmianę przepływu sterowania.
Model maszyny stanów
Diagramy maszyny stanów służą do pokazywania sposobu zachowania się jakiegoś elementu struktury systemu (np. klasy obiektów) w postaci przejść pomiędzy jego stanami, czyli stabilnymi konfiguracjami. Model maszyny stanów jest bardzo podobny w swojej notacji do modelu czynności. Obydwa rodzaje diagramów posługują się notacją grafu. Podstawowa różnica jest taka, że węzły w diagramach maszyny stanów definiują stany, a nie akcje.
Model sekwencji
Diagramy sekwencji pokazują sekwencje komunikatów przesyłanych między obiektami w ramach działającego systemu. Komunikaty oznaczają polecenia wykonania określonych usług, opisują przepływ sterowania między obiektami oraz przepływ danych (parametry komunikatów). Modele sekwencji zazwyczaj tworzymy w kontekście konkretnej struktury systemu wyrażonej modelem klas lub modelem komponentów. Komunikaty wymieniane między obiektami mogą odpowiadać konkretnym operacjom klas lub interfejsów komponentów. Ponadto, wymiana komunikatów powinna się odbywać zgodnie z nawigowalnością relacji między klasami lub komponentami.