Język UML w projektowaniu oprogramowania

Podobne dokumenty
Kurs programowania. Wykład 12. Wojciech Macyna. 7 czerwca 2017

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Język UML w modelowaniu systemów informatycznych

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

UML w Visual Studio. Michał Ciećwierz

UML. dr inż. Marcin Pietroo

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Podstawy inżynierii oprogramowania

Podstawy programowania III WYKŁAD 4

Modelowanie obiektowe

Rysunek 1: Przykłady graficznej prezentacji klas.

Podstawy projektowania systemów komputerowych

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Wymiar poziomy: oś na której umieszczono instancje klasyfikatorów biorące udział w interakcji.

Język UML w modelowaniu systemów informatycznych

Faza analizy (modelowania) Faza projektowania

Język UML w modelowaniu systemów informatycznych

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Diagramy klas. dr Jarosław Skaruz

Diagramy sekwencji. wymienianych między nimi

Podstawy języka UML UML

Laboratorium 6 DIAGRAM KLAS (Class Diagram)

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

UML cz. I. UML cz. I 1/1

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Diagramy czynności Na podstawie UML 2.0 Tutorial

Wykład 1 Inżynieria Oprogramowania

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2

Świat rzeczywisty i jego model

Spis treúci. 1. Wprowadzenie... 13

Język UML w modelowaniu systemów informatycznych

Diagramy przypadków użycia. WYKŁAD Piotr Ciskowski

Podstawy modelowania programów Kod przedmiotu

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

ECDL Podstawy programowania Sylabus - wersja 1.0

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 1

DIAGRAM KLAS. Kamila Vestergaard. materiał dydaktyczny

UML cz. II. UML cz. II 1/38

Michał Adamczyk. Język UML

TECHNOLOGIE OBIEKTOWE. Wykład 3

UML - zarys 2007/2008

Diagram przypadków użycia

Inżynieria oprogramowania. Część 5: UML Diagramy klas

UML (Unified Modeling Language jest to sposób formalnego opisu modeli reprezentujących projekty informatyczne.

Diagramy czynności. Widok logiczny. Widok fizyczny

Procesowa specyfikacja systemów IT

Inżynierski Projekt Zespołowy

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

MODELOWANIE OBIEKTOWE

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Iteracyjno-rozwojowy proces tworzenia oprogramowania Wykład 3 część 1

Modelowanie i Programowanie Obiektowe

Diagramy klas. WYKŁAD Piotr Ciskowski

Język UML w modelowaniu systemów informatycznych

Bazy danych TERMINOLOGIA

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 3 Ćwiczenia w narzędziu CASE diagram sekwencji. Materiały dla studentów

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela

Spis treúci. Księgarnia PWN: Robert A. Maksimchuk, Eric J. Naiburg - UML dla zwykłych śmiertelników. Wstęp Podziękowania...

Diagramy obiegu dokumentów a UML w modelowaniu procesów biznesowych. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska

Język UML w modelowaniu systemów informatycznych

Technologie obiektowe

Podstawy modelowania w języku UML

Podstawy języka UML UML

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

KATEDRA INFORMATYKI STOSOWANEJ PŁ INŻYNIERIA OPROGRAMOWANIA

Modelowanie obiektowe - Ćw. 3.

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Analiza i programowanie obiektowe 2016/2017. Wykład 6: Projektowanie obiektowe: diagramy interakcji

Modelowanie danych, projektowanie systemu informatycznego

Inżynieria oprogramowania

Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2

Wzorce projektowe. dr inż. Marcin Pietroo

UML. zastosowanie i projektowanie w języku UML

Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial

Podstawy modelowania w języku UML

UML cz. III. UML cz. III 1/36

Język UML w modelowaniu systemów informatycznych

Inżynieria oprogramowania II

12) Wadą modelu kaskadowego jest: Zagadnienia obowiązujące na egzaminie z inżynierii oprogramowania: 13) Wadą modelu opartego na prototypowaniu jest:

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Modelowanie. Wykład 1: Wprowadzenie do Modelowania i języka UML. Anna Kulig

Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Diagramy przypadków użycia

INŻYNIERIA OPROGRAMOWANIA. laboratorium

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

SPECYFIKACJA WYMAGAŃ

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Wzorce projektowe. dr inż. Marcin Pietroo

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

Identyfikacja i modelowanie struktur i procesów biologicznych

Inżynieria oprogramowania. Wykład 7 Inżynieria wymagań: punkty widzenia, scenariusze, przypadki użycia

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie obiektowe - 1.

Transkrypt:

Język UML w projektowaniu oprogramowania Autor: Jawor & others źródła: - czyjś pdf z paczki Mojziaka - prezentacja K. Materla, P. Stasiak - Martin Fowler: UML w Kropelce - Russ Milles, Kim Hamilton: Learning UML 2.0 - http://brasil.cel.agh.edu.pl/~09sbfraczek/ Co to jest UML? UML (ang. Unified Modeling Language, czyli Zunifikowany Język Modelowania) jest to język formalny wykorzystywany do modelowania różnego rodzaju systemów. Język modelowania może występowad w formie kodu, pseudokodu, obrazów, diagramów lub nawet fragmentów tekstowych. Elementami tworzącymi język modelowania jest notacja (czyli elementy wyrażające model). Sam język UML nie określa metody modelowania, a jedynie zaleca podejście przyrostowe i jest specyfikacją dla narzędzi. UML ma 6 następujących zalet: - Jest językiem formalnym Każdy z elementów języka ma swoją określoną definicję więc nie ma niebezpieczeostwa złego zrozumienia danego elementu systemu - jest zwięzły cały język składa się z prostych i zwięzłych notacji - jest wyczerpujący opisuje wszystkie możliwe aspekty systemu - jest skalowalny w razie potrzeby język potrafi opisywad potężne projekty systemów, z drugiej strony da się je uprościd do mniejszych i bardziej ogólnych sytuacji - zbudowany na wieloletnim doświadczeniu, bazujący na najlepszych praktykach społeczności projektującej obiektowo - jest standardem UML złożony jest z dwóch podstawowych elementów: notacji(reprezentacja graficzna, elementy graficzne, które widad w modelach składnia języka modelowania) oraz metamodelu (definicje pojęd i powiązania, jest to nadanie modelom większej ścisłości bez poświęcania ich przydatności). W modelowaniu ważniejsza jest notacja, natomiast podczas generowania kodu ważniejszy jest metamodel. Języka UML można używad podczas tworzenia wyprzedzającego jak i odtwarzania wstecznego. Oznacza to, że diagram UML można stworzyd przed napisaniem kodu programu jak również można go skonstruowad dla istniejącego kodu w celu lepszego zrozumienia go. Język został stworzony z myślą o prezentowaniu szkiców, które mogą zostad narysowane na kartce papieru. Mają charakter nieformalny i dynamiczny. Najczęściej rozpatrywane są one szybko i w grupie. Rzadko kto wówczas trzyma się wszystkich zasad języka UML. Projektowanie oprogramowania jest zadaniem trudnym i złożonym, najczęściej angażującym wiele osób o różnych sposobach postrzegania projektowanego systemu. Aby to uwzględnid często stosuje się podejście z 4+1 perspektywą. Cztery pierwsze opisują wewnętrzną strukturę systemu na różnych poziomach abstrakcji i szczegółowości. Ostatnia perspektywa opisuje funkcjonalnośd systemu widzianą przez jego użytkowników. Każda perspektywa korzysta z własnego zestawu diagramów. Perspektywa przypadków użycia opisuje funkcjonalnośd, jaką powinien dostarczad system, widzianą przez jego użytkowników Perspektywa logiczna zawiera sposób realizacji funkcjonalności, strukturę systemu widzianą przez projektanta Perspektywa implementacyjna opisuje poszczególne moduły i ich interfejsy wraz z

zależnościami (dla programisty) Perspektywa procesowa zawiera podział systemu na procesy (czynności) i procesory (jednostki wykonawcze); opisuje właściwości pozafunkcjonalne systemu (dla programistów i integratorów) Perspektywa wdrożenia definiuje fizyczny podział elementów systemu i ich rozmieszczenie w infrastrukturze (dla integratorów i instalatorów) Diagram przypadków użycia Przypadki użycia systemu to technika wyznaczania funkcjonalnych wymagao systemu. Ich działanie polega na opisywaniu typowych interakcji między użytkownikami systemu a samym systemem, czyli opowiadaniu, w jaki sposób system jest używany. Często przed stworzeniem diagramu przypadków użycia definiuje się scenariusze. Scenariusz jest to ciąg kroków opisujących interakcję między użytkownikiem a systemem. Przedstawia on zazwyczaj sytuacje, które mogą się wydarzyd. W terminologii przypadków użycia systemu użytkowników nazywa się aktorami. Aktor jest to funkcja, którą użytkownik pełni w stosunku do systemu. Jeden aktor może występowad w wielu przypadkach użycia i na odwrót - przypadek użycia może byd wykonywany przez wielu aktorów. Wyróżniamy aktorów osobowych i nieosobowych. Aktorem osobowym może byd osoba, zespół, dział, instytucja, organizacja, zrzeszenie organizacji lub organizacja wirtualna. Nazwy aktorów osobowych często pokryte są z nazwami funkcji jakie pełnią w organizacji, projekcie lub przedsięwzięciu bądź nazwą stanowiska jakie piastują. Natomiast aktorem bezosobowym może byd system zewnętrzny (podsystemy, bazy danych), urządzenie lub czas. Przypadek użycia reprezentuje konkretną funkcjonalnośd ale bez prezentowania jej szczegółów. Przypadki mogą byd powiązane ze sobą relacjami uogólnienia, rozszerzania i zawierania. Diagramy Klas Klasy opisują różne typu obiektów, które są potrzebne do odwzorowania założeo systemu. Diagramy klas są częścią perspektywy logicznej. Diagramy klas opisują typy obiektów w systemie oraz różne rodzaje statycznych relacji między nimi. Diagram taki pokazuje również atrybuty oraz operacje klas oraz ograniczenia tego w jaki sposób obiekty mogą byd powiązane. W ogólności atrybuty i operacje nazywa się cechami. Cechy reprezentują strukturalne właściwości klasy. Atrybuty zapisywane są jako wiersz tekstu umieszczony w ramce klasy: specyfikator-dostępu nazwa : typ krotność = wartość domyślna {opis-cechy} np. public nazwa : String [1] = Bez Nazwy {read-only} Wymagana jest tylko nazwa. Inne atrybuty są opcjonalne. - Specyfikacja: zasięg, np. prywatny, publiczny - nazwa: w jaki sposób system ma identyfikowad atrybut - typ: określa rodzaj obiektu - krotnośd: wskazuje ile obiektów może zawierad dana cecha - wartośd domyślna - opis cechy: wskazuje dodatkowe atrybuty, właściwości.

Podobnie wygląda zapis operacji: specyfikator-dostępu nazwa (lista-parametrów): typ-wyniku {opis-cechy} Przykład wyglądu klasy w diagramie poniżej: Asocjacje są innym sposobem prezentacji cech obiektu. Większośd z cech, które zostały wyszczególnione powyżej można zapisad w formie asocjacji. Przykładowo: Asocjacja występuje pod postacią strzałki. Jej początek określa źródło, zaś grot wskazuje cel. Przy strzałkach przedstawione są dodatkowo inne cechy. Klasy mogą byd powiązane ze sobą na kilka możliwości: zależnośd - najsłabszy rodzaj relacji. Występuje gdy zmiana definicji jednej klasy może spowodowad zmianę drugiej - np. operacja w klasie A wywołuje operacje w klasie B. Asocjacja - obiekt powiązany asocjacją z drugim posiada referencję do niego, ale nie jest jego właścicielem. Asocjacja jest równoważna z atrybutami. Agregacja - silniejsza forma asocjacji. Istnieje właściciel i obiekt podrzędny. Kompozycja - najsilniejsza relacja łącząca kasy. Podobnie jak w Agregacji istnieje właściciel i obiekt podrzędny, ale właściciel i obiekt nie mogą istnied bez siebie.

Powyżej zaprezentowane zostały asocjacje jednokierunkowe. Możliwe są jeszcze asocjacje dwukierunkowe, w której przechodząc z jednej cechy do drugiej mamy możliwośd powrócid do cechy wcześniejszej. Diagramy Obiektów Diagramy obiektów obrazują obiekty występujące w systemie i ich związki. Są one zazwyczaj wykorzystywane do wyjaśnienia znaczenia diagramów klas.diagram ten posługuje się identycznymi symbolami co diagram klas, jednak, dla odróżnienia obiektów od klas, nazwa składa się z nazwy obiektu i nazwy klasy, oddzielonych dwukropkiem. Diagramy obiektów przydają się w przypadku szczególnie skomplikowanych zależności, których nie można przedstawid na diagramie klas. Wówczas przykładowe konfiguracje obiektów pomagają w zrozumieniu modelu. Diagram sekwencji Diagram sekwencji (z grupy diagramów interakcji) prezentuje jak współpracują ze sobą grupy obiektów. Zwykle diagram sekwencji tyczy się jednego przypadku użycia. Pokazuje kilka przykładowych obiektów i komunikaty między nimi wymieniane z zachowaniem ich kolejności. Rodzaje komunikatów:

Każdy z obiektów przedstawiany jest za pomocą linii czasu. Na każdej linii czasu umieszczane są słupki aktywności reprezentujące chwile, w których użytkownik bierze udział w interakcji. Oznaczają one obecnośd jednej z metod uczestnika na stosie wywołao. Przykładowy diagram: Możliwe jest również prezentowanie pewnych bloków zdarzeo o specjalnej własności, np. sekcja krytyczna, pętla, instrukcja warunkowa Wówczas używa się bloków. Na diagramach sekwencji taką grupę operacji obejmuje się prostokątem, w którego lewym górnym narożniku, w pięciokącie umieszcza się słowo kluczowe lub opis określający znaczenie danego bloku (tzw. operator interakcji) OPERATORY INTERAKCJI - alt (od alternative ) - określający warunek wykonania bloku operacji, odpowiadający instrukcji if-else - opt (od optional ) - reprezentujący instrukcję if (bez else ) - par (od parallel ) - nakazujący wykonad operacje równolegle - critical - blok atomowy, oznaczający obszar krytyczny - loop - definiujący pętlę typu for lub while - break - wykonanie fragmentu i zakooczenie interakcji - seq - słaba sekwencja (podobnie do współbieżności) dotyczy zdarzeo z kilku linii - ignore/consider - ignore(komunikat1, komunikat2,...) oznacza, że na diagramie nie pokazano wymienionych komunikatów, chod mogą wystąpid. Consider = odwrotnie Diagram aktywności (czynności) Diagramy czynności to technika opisywania logiki działania systemu, procesów biznesowych i przepływów pracy. Odgrywają rolę podobną do schematów przepływu danych, ale różnią się tym, że potrafią pokazad działania równoległe. Diagram określa wówczas najważniejsze zasady dotyczące kolejności wykonywania czynności, których należy się trzymad. Samo zaś wykonanie poszczególnych zadao w procesach równoległych jest dowolne. Mówi w jaki sposób osiągnąd zamierzony cel. Jest przydatny przy modelowaniu sytuacji decyzyjnych, operacji, algorytmów, procesów systemowych. Naturalnie w przypadku działao równoległych pojawia się zagadnienie synchronizacji, które należy rozwiązad.

Przykład diagramu podczas sytuacji decyzyjnej: Przykład diagramu podczas wykonywania procesów równoległych: Diagramy maszyny stanów Używany przy analizie i projektowaniu oprogramowania. Pokazuje przede wszystkim możliwe stany obiektu oraz przejścia, które powodują zmianę tego stanu. Można też z niego odczytad, jakie sekwencje sygnałów (danych) wejściowych powodują przejście systemu w dany stan, a także jakie akcje są podejmowane w odpowiedzi na pojawienie się określonych stanów wejściowych. Tym samym tworzony jest cykl życia obiektu, który może byd tym istotniejszy w procesie wytwarzania oprogramowania, im więcej jest możliwych stanów obiektu. Diagram składa się z określonych stanów. Zawiera również reguły, na podstawie których kontroler zmienia swój stan z jednego na drugi. Reguły pokazane są za pomocą przejśd linii łączących stany. Każde przejście ma etykietę złożoną z dwóch części: wyzwalacz [dozór] / czynność Wyzwalacz pojedyncze zdarzenie uruchamiające zmianę stanu Dozór wyrażenie logiczne, które musi byd prawdziwe, aby przejście mogło zostad zrealizowane Czynnośd zachowanie wykonywane podczas przejścia z jednego stanu w drugi Przykład: