INFORMATYKA W ZARZĄDZANIU Wykład VI dr Jan Kazimirski jankazim@mac.edu.pl http://www.mac.edu.pl/jankazim
MODELOWANIE SYSTEMÓW UML
Literatura Joseph Schmuller UML dla każdego, Helion 2001 Perdita Stevens UML. Inżynieria oprogramowania, Helion 2007 Stanisław Wrycza, Bartosz Marcinkowski, Krzysztof Wyrzykowski UML 2.0 w modelowaniu systemów informatycznych, Helion, 2005
UML UML Unified Modeling Language Zunifikowany język modelowania Pozwala na graficzne przedstawienie systemów zorientowanych obiektowo Język wymiany informacji między programistami, analitykami i klientami Połączenie formalizmu i przejrzystości (diagramy)
UML c.d. Obejmuje szereg diagramów przedstawiających różne apekty modelowanego systemu np. Diagram przypadków użycia Diagram klas / diagram obiektów Diagram stanów Diagram czynności Diagram przebiegu Diagram kooperacji Diagram komponentów
Modelowanie obiektowe Podejście obiektowe jest aktualnym standardem tworzenia złozonych systemów komputerowych Obiektowość to sposób myślenia oparty na kilku podstawowych zasadach Poprzedni paradygmat programowania podejście strukturalne dopasowanie sposobu widzenia rzeczywistości do komputerów Modelowanie obiektowe dopasowanie komputerów do ludzkiego postrzegania rzeczywistości
Klasy i obiekty Wszystko, co nas otacza: przedmioty, zwierzęta, ludzie postrzegane mogą być jako obiekty. Obiekty należą do określonych kategorii klas Obiekt jest egzemplarzem klasy. Relacja obiekt klasa: Kot rodzaj ssaka o pewnych, dokładnie określonych cechach charakterystycznych (klasa) Kot burek siedzący na dachu przedstawiciel gatunku kotów (obiekt)
Struktura obiektu Każdy obiekt ma określone elementy składowe. Atrybuty (właściwości) Operacje (czynności, zachowania) Kot ma określony kolor, wagę, wzrost, długość ogona (atrybuty). Kot potrafi biagać mruczeć, miałczeć, łasić się, drapać itd. (operacje) Klasa jest szablonem (formą) obiektu definiuje jakie atrybuty i operacje będą miały obiekty.
Abstrakcja Modelowanie ma na celu stworzenie pewnego uproszczonego modelu rzeczywistości Model będący kopią rzeczywistości jest niepraktyczny zawiera zbyt dużo informacji Abstrakcja odfiltrowanie niepotrzebnych informacji, pozostawienie tylko istotnych dla danego problemu Decyzja które informacje pominąć należy do analityka
Dziedziczenie Klasy tworzą określone hierarchie klasy pochodne dziedziczą składowe po klasach bazowych Hierarchie dziedziczenia mogą być wielopoziomowe Kot jest ssakiem, który jest zwierzęciem, które jest istotą żywą. Definiując klasę pochodną nie musimy tworzyć jej od zera jeżeli możemy powołać się na klasy bazowe
Polimorfizm Niektóre operacje mogą mieć takie same nazwy ale inny sens dla różnych obiektów (np. otwarcie ksiązki, słoika, rachunku w banku) Polimorfizm to koncepcja w której każda klasa wie jak daną operację wykonać: Otwieram drzwi - klasa wykona właściwe działanie Otwieram konto - klasa wykona właściwe działanie
Przykład hierarchii klas Figura kolor k policz pole=? Bok a policz pole = a*a Boki a,b policz pole = a*b Promień r policz pole = 2*PI*r
Hermetyzacja (kapsułkowanie) Modelowane obiekty często mają niezwykle skomplikowaną strukturę wewnętrzną Często zaniedbujemy tą strukturę koncentrując się na operacjach (czyli co obiekt robi a nie jak to robi) jest to tzw. hermetyzacja Jak działa telewizor? To nie jest ważne dopóki mam w ręku pilota i wiem jak nim sterować Częśc jawna obiektu to interfejs, część ukryta - implementacja
Współpraca obiektów Obiekty nie są od siebie odizolowane. Współpracują wysyłając różnorodne komunikaty Przykład: obiekt pilot wysyła komunikat do obiektu telewizor powodując, że zmienia się jego stan (zmiana programu). Interfejs obiektu (klasy) można zdefiniować jako zbiór komunikatów jakie może on wymienić z otoczeniem.
Powiązania Obiekty często są ze sobą związane, np. pilot i telewizor, kierowca i samochód, pracownik i szef. Są to powiązania Powiązania możemy klasyfikować ze względu na różnorodne cechy Kierunek powiązania Charakter powiązania (np. agregacja) Liczebność powiązania
UML i klasy Kot Klasa bez określonej struktury kolor waga Kot mruczy() miałczy() Klasa z określoną strukturą: Atrybuty Operacje
UML i powiązania klas diagram klas
Analiza Przypadków Użycia Opisując dany system często pytamy jakie funkcje on realizuje i kto z niego może korzystać Pytania te są szczególnie ważne w fazie zbierania wymagań projektów IT Modelowanie tego aspektu systemu to analiza przypadków użycia Przypadek użycia to określenie co z systemem można zrobić, korzystający z systemu to aktor
Diagram przypadków użycia
Stany obiektu Obiekty posiadają atrybuty które mogą posiadać różne wartości obiekty są w różnych stanach Telewizor może odbierać na różnych kanałach Kot może mieć różne kolory W różnych sytuacjach stan obiektu może ulec zmianie następuje przejście między stanami Zmiana kanału telewizora Malowanie kota :-(
Diagram stanów
Komunikacja obiektów Obiekty komunikują się ze sobą wysyłając różne sygnały. Jeżeli interesuje nas jakie obiekty wysyłają jakie sygnały w trakcie gdy system wykonuje jakąś czynność, możemy wykorzystać diagram przebiegu (sekwencji)
Diagram przebiegu
Czynności W trakcie realizacji jakiegoś zadania system wykonuje określone czynności W trakcie wykonywania serii czynności system może wybierać różne ścieżki wykonania zależnie od określonych warunków punkty decyzyjne. Do przedstawienia czynności i kolejności ich wykonania służy diagram czynności
Diagram czynności
Język UML Przedstawione diagramy stanowią tylko część specyfikacji UML-a UML jest językiem bardzo elastycznym pozwala opisać dowolny system UML jest rozszerzalny można wprowadzać dodatkowe elementy uściślające model systemu
UML w biznesie Język UML został wymyślony przez programistów dla programistów (projektantów) Jest to jednak język ogólnego przeznaczenia można nim opisać np. model działania przedsiębiorstwa. Stworzony model może być obiektem analizy w celu otymalizacji jego działalności
Business Process Reengineering Działanie mające na celu zwiększenie wydajności i efektywności pracy przedsiębiorstwa Metodologia BPR Stworzenie modelu przedsiębiorstwa Analiza modelu w celu znalezioenia możliwości zmian Wprowadzenie i weryfikacja zmian w modelu Implementacja zmian w rzeczywistym systemie
Przykład projektu programistycznego realizowanego z wykorzystaniem języka modelowania UML