Najbardziej popularną metodologią tworzenia obiektowych modeli systemów informatycznych (przydatną szczególnie na etapie ich projektowania) jest język.

Slides:



Advertisements
Podobne prezentacje
Związki w UML.
Advertisements

Programowanie obiektowe
Modelowanie przypadków użycia
Projektowanie w cyklu życia oprogramowania
Zaawansowane metody programowania – Wykład V
Zrównoleglanie programu sekwencyjnego
UML Unified Modeling Language
Co UML może zrobić dla Twojego projektu?
Bartosz Walter Prowadzący: Bartosz Walter
Tomasz Jabłoński Michał Ziach
Zasady zaliczenia Warunki uzyskania zaliczenia:
Projektowanie systemów informacyjnych
Diagramy klas w języku UML
Diagram czynności (Activity Diagrams)
Wstęp do programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie i programowanie obiektowe II - Wykład II
Wstęp do interpretacji algorytmów
Modele baz danych - spojrzenie na poziom fizyczny
Projektowanie - wprowadzenie
Analiza, projekt i częściowa implementacja systemu obsługi kina
Wykład 4 Analiza i projektowanie obiektowe
Wykład 5 UML - Unified Modeling Language
Wykład 3 Analiza i projektowanie strukturalne
Wykład 2 Cykl życia systemu informacyjnego
C.d. wstępu do tematyki RUP
Unified Modeling Language graficzny język wizualizacji, specyfikowania, tworzenia i dokumentowania systemów informatycznych.
Inżynieria Oprogramowania
UML 2.x Robert Pająk.
Kontrola spójności modeli UML za pomocą modelu przestrzennego DOD
Model przestrzenny Diagramu Obiegu Dokumentów
Źródła: podręcznikopracował: A. Jędryczkowski.
Jakub Wołczko W obiektowym świecie… Jakub Wołczko
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Związki w UML Do zrobienia jest: -Przerysować jak ktoś ma Visio te dwa diagramy tak żeby podmienić tylko nazwy a reszta Taka sama, -I dodać po jednym zdaniu.
Wybrane zagadnienia relacyjnych baz danych
Programowanie obiektowe – język C++
Rational Unified Process Implementacja Aleksandra Reiman, gr. I-52.
Programowanie obiektowe 2013/2014
Modelowanie obiektowe Diagramy czynności
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
1 Każdy obiekt jest scharakteryzowany poprzez: tożsamość – daje się jednoznacznie wyróżnić; stan; zachowanie. W analizie obiektowej podstawową strukturą
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Unified Modeling Language - Zunifikowany Język Modelowania
Wprowadzenie do UML dr hab. inż. Kazimierz Subieta profesor PJWSTK.
Modelowanie obiektowe Diagramy klas
Programowanie w języku C++
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
Komputerowe wspomaganie projektowania
Diagram aktywności (czynności)
Diagram przypadków użycia
Diagram klas Kluczowymi elementami są: klasy (class)
Proces tworzenia oprogramowania Proces tworzenia oprogramowania jest zbiorem czynności i związanych z nimi wyników, które prowadzą do powstania produktu.
Modelowanie obiektowe - system zarządzania projektami.
Projektowanie relacyjnych baz danych – diagramy związków encji
Diagram czynności Diagram czynności (activity diagram) służy do modelowania dynamicznych aspektów systemu. Diagram czynności przedstawia sekwencyjne lub.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Projektowanie bazy danych z użyciem diagramów UML Obiektowe projektowanie relacyjnej bazy danych Paweł Jarecki.
Programowanie Zaawansowane
Wstęp do interpretacji algorytmów
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Temat: Tworzenie bazy danych
Inżynieria systemów informacyjnych
Inżynieria Oprogramowania Laboratorium
Projekt modułu BANK INTERNETOWY Moduł funkcji banku
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Najbardziej popularną metodologią tworzenia obiektowych modeli systemów informatycznych (przydatną szczególnie na etapie ich projektowania) jest język UML i związana z nim metodologia

Metodologia wspomaga modelowanie dziedziny problemowej stanowiącej przedmiot projektowanego systemu. Metodologia dostarcza szeregu pojęć, modeli, diagramów, języków, technik i sposobów postępowania. Metodologia jest wykorzystywana zarówno do projektowania pojęciowego, jak i logicznego czy fizycznego.

Metodologia ustala fazy realizacji projektu, a ponadto dla każdej z faz projektu wyznacza: 1. role uczestników projektu; 2. scenariusze postępowania; 3. reguły przechodzenia do następnej fazy; 4. modele, które powinny być wytworzone; 5. dokumentację, która powinna powstać; 6. notację, którą należy używać.

Proces projektowania systemu informatycznego polega na kolejnym tworzeniu i wzajemnym przekształcaniu wielu modeli

Etapy tworzenia modeli systemu Diagramy zwi ązków encji Schemat logiczny Dzia łalność organizacyjna Uzgodnienie Normalizacja Istniej ąca baza danych

Przejście od modelu do fizycznej realizacji systemu

Podczas projektowania systemu informacyjnego ważną rolę odgrywa notacja Notacja służy do dokumentowania wyników poszczególnych faz projektu, zarówno pośrednich jak i końcowych. Notacja wspomaga ludzką pamięć i wyobraźnię. Właściwa notacja ułatwia komunikację zarówno między członkami zespołu projektowego, jak i między zespołem projektowym a klientem. Notacja jest ważnym elementem metodologii. Kiedy notacja nie jest “tą właściwą” - może zrodzić wiele problemów!

Notacja stosowana w UML jest notacją graficzną, to znaczy większość elementów projektów ma charakter rysunkowy Przykład: Tak zwany diagram przypadków użycia symulatora sieci neuronowych

Rysunki mogą obrazować poszczególne elementy projektu z większą albo mniejsza dokładnością Przykład: Ten sam diagram co poprzednio z większą liczbą szczegółów

Najczęściej rysunki używane w projektowaniu obiektowym pokazują wzajemne relacje elementów systemu

Niestety funkcjonuje kilka różnych notacji prezentujących te zależności

Bardziej znane wcześniejsze metodologie i notacje obiektowe

Największy wpływ na rozwój metodologii obiektowej miały książki trzech znanych metodologów: Grady Booch'a, Ivara Jacobsona i James'a Rumbaugh'a. W książkach tych autorzy opisywali swoje metodologie nadając im nazwy: Booch - OOADA (ang.: Object-Oriented Analisis and Design with Aplications), Jacobson - OOSE (ang.: Object-Oriented Software Engineering), Rumbaugh - OMT (ang.: Object Modeling Technique).

Każda metodologia miała mocne oraz słabe strony Każda metodologia miała mocne oraz słabe strony. OMT było mocne w analizie, ale słabsze w projektowaniu. OOADA na odwrót. Natomiast OOSE było bardzo dobre w analizowaniu potrzeb użytkownika, czego nie uwzględniono ani w OMT, ani w OOADA.

Język UML powstał więc jako powszechnie oczekiwana unifikacja

Historia UML

Przypomnienie: podstawowe pojęcia metodologii obiektowej: Obiekt (ang.: Object) jest podstawowym pojęciem w podejściu obiektowym. Obiekt reprezentuję sobą konkretny pojedynczy byt. Obiekt jest charakteryzowany poprzez: identyfikator (nazwę), stan (wartości atrybutów obiektu) oraz zachowanie (operacje obiektu). Zachowanie może zmieniać stan obiektu, od którego pochodzi i/lub stany innych obiektów. Klasa (ang.: Class) reprezentuje zbiór obiektów, które dzielą strukturę i wspólne zachowanie.

Klasa a obiekt Operacje i atrybuty są definiowane jednorazowo (w klasie). O obiektach, które należą do danej klasy, mówi się, że są instancjami tej klasy. Instancje te zawierają określone własne (czasem nawet określane jako “prywatne”) wartości atrybutów klasy. Współdzielą one natomiast operacje klasy. Zachowanie tych instancji jest więc jednolite.

Klasa i jej instancje

Enkapsulacja Enkapsulacja jest techniką, w której dane są przechowywane w obiektach razem z operacjami, jakie można na nich wykonać. W dodatku dane są zazwyczaj chronione wewnątrz “kapsuły” utworzonej z operacji, co oznacza, że dowolny obiekt zewnętrzny może wywołać działanie określonej operacji, natomiast nie może bezpośrednio zmienić (ani nawet odczytać) żadnej wewnętrznej danej. Jedynym sposobem dotarcia do danych ukrytych wewnątrz obiektu jest użycie operacji należącej do powłoki kapsuły, która na żądanie wykona stosowną operację na danych. Eliminuje to ryzyko niepoprawnego użycia danych obiektu, ponieważ operują na nich zawsze wyłącznie “autoryzowane” własne operacje tegoż obiektu.

Przykład enkapsulowanego obiektu

Polimorfizm Polimorfizm jest techniką, w której ukrywa się szczegóły implementacji we wspólnym interfejsie. Polimorfizm upraszcza komunikację pomiędzy obiektami.

Model obiektowy oprócz klas i obiektów uwzględnia związki między nimi. a. związek zależności (ang.: Dependency) – oznacza wykorzystanie jednego obiektu przez drugi. Najczęściej dotyczy sytuacji użycia obiektu jako argumentu w operacji obiektu drugiego; b. związek generalizacji (ang.: Generalization) – jest relacją między jedną klasą a klasami, które są jej udoskonalonymi wersjami. Klasa, która została udoskonalona nazywa się nadklasą, a każda jej wersja nazywa się podklasą. Każda podklasa dziedziczy cechy swojej nadklasy; c. związek asocjacyjny (ang.: Association) - oznacza grupę więzi o wspólnej strukturze i znaczeniu. Więź z kolei to połączenie, jakie istnieje między instancjami. Najważniejszą z cech tego związku jest jego typ wyróżniony ze względu na liczność wystąpienia instancji w związku.

Typy asocjacji: ü jeden do jednego – instancja może mieć tylko jedną więź w danym związku; ü jeden do wielu – instancja może mieć wiele więzi w danym związku. Jednak ta instancja, która jest z nią powiązana już nie może mieć więzi więcej niż jedną; ü wiele do wielu – zarówno instancja jak i instancje z nią powiązane mogą mieć wiele więzi w danym związku.

Typy asocjacji:

Specjalne typy asocjacji: Agregacja – jest relacją typu całość-część. Jeden element składa się z innych elementów. Agregacja jest relacją antysymetryczną. Oznacza to, że element-całość zawiera elementy-części, lecz elementy-części nie mogą zawierać elementu-całości. Przykładem tego związku jest relacja między linią a punktami. Linia składa się z punktów. Punkty nie zawierają linii. Ponadto punkt może być współdzielony z wieloma liniami

Specjalne typy asocjacji: Kompozycja – jest silniejszą formą agregacji. W agregacji elementy-części mogą być wykorzystywane przez inne elementy, jednak w kompozycji żaden element-część nie może być dzielony. Często także się dzieję, że z chwilą zniszczenia elementu-całości ulega zniszczeniu element-część. Przykładem tego związku jest relacją między samochodem a silnikiem. Samochód zawiera silnik. Silnik może być wykorzystywany tylko przez jeden samochód jednocześnie.

Czym jest UML? UML jest językiem do specyfikacji, wizualizacji, konstrukcji i dokumentowania projektów związanych z systemami informacyjnymi intensywnie wykorzystującymi oprogramowanie, a także do modelowania biznesowego wszelkich innych systemów.

UML oferuje standaryzowany sposób zapisu projektu, obejmującego zarówno jego konceptualne aspekty, takie jak procesy biznesowe czy funkcje systemu, jak też i elementy fizyczne (np. schematy bazy danych).

UML zapewnia: 1. semantykę i notacje dotyczącą szerokiej gamy współczesnych aspektów modelowania; 2. semantykę adresującą określone aspekty modelowania, które są przewidywane w przyszłości. Szczególnie chodzi tu o aspekty związane z technologią komponentów, przetwarzaniem rozproszonym, szkieletem (ang.: frameworks) oraz wykonywalnością (ang.: executablility); 3. mechanizmy rozszerzalności, tak aby poszczególne zespoły projektowe mogły rozszerzać język dla potrzeb ich aplikacji przy zmniejszonym wysiłku; 4. semantykę ułatwiającą wymianę danych modelu pomiędzy wieloma narzędziami CASE.

Istotnymi składnikami UML są diagramy Wyróżnić możemy między innymi następujące ważniejsze diagramy: Diagramy strukturalne Diagram klas Diagram komponentów Diagramy behawioralne Diagram przypadków użycia Diagram sekwencji Diagram aktywności

W sumie jednak diagramów używanych w tej metodologii jest więcej. Pełne zestawienie diagramów wykorzystywanych w UML obejmuje: diagram przypadków użycia diagram klas diagram obiektów diagram sekwencji diagram współpracy diagram stanów diagram aktywności diagram komponentów diagram wdrożeniowy

diagram klas obrazuje statyczną strukturę systemu wykorzystując klasy i ich relacje. Jest w gruncie rzeczy centralnym diagramem w rozważanej tu metodologii

Zadania przejmowane i delegowane przez diagram klas

diagram przypadków użycia obrazuje sposób w jaki aktorzy (np. ludzie) mogą wykorzystać system. Jego głównym celem jest odwzorowanie funkcji projektowanego systemu w taki sposób, w jaki będą je widzieć jego użytkownicy;

diagram obiektów obrazuję statyczną strukturę systemu wykorzystując obiekty (instancje) i ich relacje;

diagram sekwencji obrazuję kolejność w czasie wysyłania komunikatów pomiędzy różnymi obiektami w systemie

diagram współpracy podobnie jak diagram sekwencji, obrazuję przepływ komunikatów pomiędzy obiektami. Uzupełnia jednak ten obraz o statyczną strukturę obiektów. Obrazuję sposób współpracy grupy obiektów w celu zrealizowania określonego celu

diagram stanów obrazuję stany, w których obiekt może się znaleźć w czasie jego istnienia

diagram aktywności obrazuję akcje, które są wykonywane (w całości lub częściowo) przez system. Umożliwia zaprezentowanie równoległego wykonywania czynności

diagram komponentów obrazuję komponenty, które składają się na aplikację, system lub przedsięwzięcie. Przedstawia powiązania między komponentami oraz ich publiczne interfejsy

diagram wdrożeniowy obrazuję architekturę systemu. Prezentuję sposób rozmieszczenia komponentów w określonej konfiguracji sprzętowej

Zbiorcza charakterystyka diagramów

Związki pomiędzy diagramami

Tworząc diagramy trzeba zadbać o właściwy stopień ich szczegółowości Liczba elementów na diagramie powinna być adekwatna do jego celu i odbiorcy. Zbyt ubogi diagram nie spełni zamierzonego celu, zbyt szczegółowy może przysłonić istotne elementy nawet specjaliście, a już na pewno będzie nie czytelny dla osoby nie zaznajomionej ze standardem.

Do tworzenia modeli systemu informatycznego wykorzystuję się różnorodne techniki. Poczynając od ołówka i kartki papieru, a kończąc na zaawansowanych programach komputerowych. Programy takie zalicza się do narzędzi CASE (ang.: Computer-aided Software Engineering Tools) wspomagających komputerowo inżynierię oprogramowania.

Korzystanie z narzędzi CASE do tworzenia modeli w UML’u ma wiele zalet: 1. ponowne wykorzystanie - stworzony model można bez ograniczeń ponownie wykorzystywać. W szczególności, jeśli narzędzie wykorzystuję zaawansowany interfejs graficzny implementujący mechanizmy "przeciągnij i upuść" (ang.: Drag & Drop), można eksportować określone elementy z jednego modelu do drugiego; 2. wiele perspektyw - prezentację gotowego modelu można dostosować do wymaganej sytuacji. Przykładowo można ukrywać określone elementy bez ich usuwania;

Zalety CASE - ciąg dalszy: 3. automatyczne generowanie kodu - zwrot z nakładu pracy poniesionego na stworzenie modelu jest dużo większy, gdy wyeliminowana jest konieczność prostej translacji modelu do kodu w języku programowania. Ponadto automatyczna translacja jest mniej podatna na błędy; 4. sprawdzenie poprawności modelu - zdefiniowane reguły biznesowe i ograniczenia są szybciej i pewniej sprawdzone; 5. szybkie utworzenie modelu przez reinżynierię (ang.: Reverse engineering) - tworzenie modelu ze źródeł programu eliminuję żmudny proces translacji kodu do modelu.

Zestawienie przykładowych narzędzi CASE obsługujących notację UML.

Omówimy teraz prosty przykład opisujący system (hipotetyczny) mający wspomagać przydzielanie pokoi w akademiku. Na tym przykładzie zilustrowane będą krok po kroku wszystkie modele i diagramy języka UML.

Jako pierwszy wygodnie będzie zbudować diagram aktywności Jak wiadomo obrazuje on akcje, które są wykonywane (w całości lub częściowo) przez system. Umożliwia zaprezentowanie równoległego wykonywania czynności

Całościowy diagram aktywności: schemat funkcjonowania rezerwacji pokoi w akademikach (fragment)

Przykładowy diagram aktywności drobniejszego fragmentu systemu (cofnięcie rezerwacji pokoju)

Jako następny zbudujemy diagram przypadków użycia Służy on do prezentacji przypadków użycia i aktorów, którzy pozostają w interakcji z tymi przypadkami. Najważniejsze jest ujawnienie relacji pomiędzy nimi.

Diagram przypadków użycia

Diagram przypadków użycia z większą liczbą szczegółów

Diagramom towarzyszą opisy Diagramom towarzyszą opisy. Obok podano przykładowy wzorzec opisu przypadku użycia (część rutynowa)

Przykładowy wzorzec opisu przypadku użycia (część nierutynowa)

Teraz przychodzi czas na zbudowanie diagramu klas Teraz przychodzi czas na zbudowanie diagramu klas. Diagram klas przedstawia obraz strukturalnych powiązań pomiędzy klasami modelowanego systemu. Obraz ten nie uwzględnia upływu czasu. Nie da się więc przy jego użyciu śledzić przepływu zdarzeń i akcji – czyli cech behawioralnych.

Diagram klas

Struktura rezerwacji z większą liczbą szczegółów - diagram klas

Diagram klas umożliwia już wygenerowanie kodu programu, który uwzględnia wyodrębnione klasy i ich właściwości. Ta część kodu opisuje statyczne właściwości systemu.

Przykład kodu (w języku java) wygenerowanego z diagramu klas

Przykład kodu w języku C++

Teraz nadchodzi pora na uchwycenie działania systemu w aspekcie behawioralnym. Podstawowym narzędziem, wykorzystywanym do tego celu jest diagram sekwencji.

Diagram sekwencji

Rezerwacja miejsca w scenariuszu alternatywnym - diagram sekwencji

Diagram sekwencji dla symulatora sieci neuronowej Użytkownik naciska klawisz “ucz”klais Wywołanie funkcji obsługi komunikatu WM_BUTTON_UCZ Uruchomienie metody “wylicz” dla obiektu sieć Sekwencyjnie wywoływanie metody “wylicz” dla obiektów klasy neuron Uruchomienie metody “uczenie” dla obiektu sieć Sekwencyjnie wywoływanie metody “uczenie” dla obiektów klasy neuron Zgłoszenie stanu gotowości Użytkownik naciska klawisz “testuj” Wywołanie funkcji obsługi komunikatu U_BUTTON_TESTUJ Użytkownik naciska klawisz “opcje” Wyświetlenie okna dialogowego Dld Użytkownik naciska klawisz zmiany parametru Wywołanie metody zmieniającej wartość parametru dla obiektu sieć Wywołanie metody zmieniającej wartość parametru – zmiennej statycznej, dla obiektów klasy neuron Użytkownik naciska klawisz zamykający okno Dld Diagram sekwencji dla symulatora sieci neuronowej

Zestawienie informacji zawartych we wcześniej opisanych diagramach pozwala na opis dynamiki działania systemu w postaci diagramu stanów.

Diagram stanów (stany pokoju)

Stany (pokoju) w większych szczegółach - diagram stanów

Uwaga końcowa: Metodologia obiektowa także nie jest idealna Uwaga końcowa: Metodologia obiektowa także nie jest idealna. Wiele celów łatwiej jest czasem osiągnąć stosując tradycyjne metody projektowania, takie jak metodologia strukturalna i tradycyjne narzędzie, takie jak diagramy encji i relacji.

Jednak ze względu na konieczność zapewnienia bezpiecznej pracy przy tworzeniu dużych systemów informatycznych przez duże zespoły projektantów – właśnie ta metodologia będzie zapewne dominująca w przyszłości.