Charakterystyka języka UML.
UML - jest językiem umożliwiającym graficzne projektowanie systemów, który pierwotnie był ukierunkowany na systemy informatyczne, ale nadaje się do użycia w innych dziedzinach i jest stosowany do modelowania biznesowego, finansowego, organizacyjnego, itd.
Projekt systemu informatycznego w języku UML składa się z szeregu powiązanych ze sobą logicznie diagramów, czyli schematów zawierających symbole języka UML. UML definiuje kilkanaście rodzajów diagramów, które mają różne znaczenie i zastosowanie.
Krótko opisać przebieg procesu realizowanego zgodnie z MDA.
Budowa modelu przypadków użycia jest rezultatem identyfikacji i dokumentowania wymagań. W tym celu tworzy się diagram przypadków użycia, który jest odzwierciedleniem wymagań funkcjonalnych i zawiera aktorów systemu i skojarzone z nimi przypadki użycia. Ponadto zawiera on tekstowe opisy przypadków użycia i ich scenariusze.
Budowa modelu analitycznego opisującego elementy składowe systemu i ich współdziałanie. Model analityczny powinien pokazywać realizacje wszystkich przypadków użycia w postaci diagramów klas obejmujących klasy potrzebne do zrealizowania modelowanego działania.
Budowa modelu projektowego będącego podstawą do wygenerowania szkieletu kodu aplikacji. Model projektowy jest kompletnym modelem klas powstałym z rozszerzenia diagramu z modelu analitycznego o wszystkie atrybuty i metody klas.
Implementacja rozpoczynająca się od wygenerowania szkieletu aplikacji. Kolejnym krokiem jest uzupełnienie plików z kodem źródłowym odpowiednimi treściami.
Uruchomienie wykonywane po zakończeniu etapu kodowania. Ma ono na celu doprowadzenie do podstawowej, poprawnej pracy. Wykonuje się je drogą debugowania.
Testowanie mające na celu ujawnienie wszelkich niesprawności działania aplikacji i niezgodności z wymaganiami.
Cechy diagramu przypadku użycia. Podać prosty przykład. Jaką kategorię reprezentuje aktor – czy aktor może być nieosobowy?
Diagramy te tworzy się na podstawie wymagań użytkowych sformułowanych dla
systemu. Pozwalają one przedstawić w sposób syntetyczny wszystkie funkcje, jakich
oczekuje się od systemu. Poza tym stanowią punkt wyjścia do tworzenia innych
elementów projektu – diagramów interakcji, klas, itd.
Aktor reprezentuje jedną kategorię obiektów mogących oddziaływać na system. Tę
kategorię można utożsamiać ze spójnym zbiorem ról odgrywanych przez użytkowników
systemu. Zakłada się, że obok aktorów typu osobowego (ludzi) występują aktorzy
nieosobowi (inne systemy) – to jest uzasadnienie odpowidzi.
Przykład
Cechy diagramu klas. Co to jest klasa podać czym się charakteryzuje opisać symbol klasy.
Co to jest obiekt czym się charakteryzuje. Co to jest konstruktor i destruktor. Na czym polega dziedziczenie i polimorfizm. Co to jest agregacja . Co to jest interfejs.
Diagramy klas - Służą one do przedstawienia statycznego aspektu systemu – postaci jego
elementów i występujących między nimi powiązań. Diagramy te przedstawiają klasy i interfejsy, będące podstawowymi składnikami każdego systemu o obiektowej strukturze, a także różnorodne związki występujące między tymi klasyfikatorami.
Klasa - uogólnienie zbioru obiektów, mających takie same atrybuty, operacje i znaczenie. Jeśli pewne klasy mają wspólną część, to powinna ona być ich wspólną klasą bazową (lub inaczej nadklasą).
Obiekt - egzemplarz danej klasy, zawiera wartości atrybutów i wyłącznie na nich działające usługi. To każdy byt (pojęcie lub rzecz), mający znaczenie w dziedzinie zastosowania.
Symbol klasy jest prostokątem, wewnątrz którego wyróżnia się części specyfikujące kolejno nazwę klasy, jej atrybuty i operacje, a czasem również zobowiązania. Zarówno atrybuty jak i operacje posiadają zdefiniowany dostęp: prywatny, chroniony lub publiczny, oznaczane odpowiednio symbolami -, # i +.
Dziedziczenie – polega na przejmowaniu cech pewnych obiektów przez inne, z równoczesnym dodawaniem nowych cech tworzenie tzw. specjalizacji. Oznacza to przyporządkowanie atrybutów i operacji do klas zgodnie z hierarchiczną zależnością, jakiej podlegają klasy. Dzięki temu można budować systemy złożone, lecz elastyczne w zastosowaniu.
Polimorfizm – polega na nadaniu takiej samej nazwy różnym atrybutom i operacjom w klasach należących do jednej hierarchii (od nadklasy przez wszystkie podklasy). Pozwala m.in. na wywołanie tzw. wirtualnej metody (procedury lub funkcji), która może mieć różne znaczenie w zależności od kontekstu wywołania.
Konstruktor jest to funkcja w klasie, wywoływana w trakcie tworzenia każdego obiektu danej klasy. Funkcja może stać się konstruktorem gdy spełni poniższe warunki.
Destruktor jest natomiast funkcją, którą wykonuje się w celu zwolnienia pamięci; następuje niszczenie obiektu danej klasy.
Interfejs jest zestawem operacji, które wyznaczają usługi oferowane przez klasę lub komponent. Deklaracja interfejsu jest to specyfikacja własności związanych z operacją/ami, która ma znaczenie dla klas implementujących go i klas korzystających z niego. Ma to zastosowanie przy specyfikowaniu współpracy obiektów między sobą.
Agregacja zwykła służy tylko do pojęciowego odróżnienia całości od części.
Agregacja całkowita (kompozycja) - cechuje się wyłącznym posiadaniem części przez całość, co oznacza również zawieranie się czasu istnienia części w czasie istnienia całości (części o nieustalonej liczebności mogą powstawać po utworzeniu całości, ale są niszczone najpóźniej tuż przed zniszczeniem całości).
Cechy diagramu sekwencji. Podaj i opisz przykłady komunikatów. Dla jednego z wybranych komunikatów przedstaw interpretacje graficzną.
Diagram sekwencji - jest jedną z form diagramu interakcji i ukazuje
obiekty łącznie z ich liniami życia biegnącymi w dół, równolegle do osi czasu,
co pozwala uwypuklić kolejność komunikatów w czasie.
Linia życia reprezentuje aktywność pojedynczego uczestnika diagramu sekwencji.
Komunikaty mogą być:
Synchroniczne - po nadejściu komunikatu do odbiorcy następuje
przekazanie mu sterowania, natomiast przepływ sterowania nadawcy zostaje
przerwany do czasu zakończenia przez odbiorcę operacji inicjowanej komunikatem;
asynchroniczne - nie powodują przerwania przepływu sterowania
nadawcy (może on kontynuować przetwarzanie – w tym wysyłanie innych
komunikatów), ponieważ nie oczekuje on odpowiedzi;
zwrotne -wskazują na powrót sterowania do nadawcy komunikatu
synchronicznego, z ewentualnym zainicjowaniem pewnej operacji. Nie jest
wymagane używanie komunikatu zwrotnego po komunikacie synchronicznym, ale
poprawia to czytelność modelu i pozwala zainicjować operację, która ma być
wykonana po zwróceniu sterowania do nadawcy komunikatu synchronicznego.
utracone lub znalezione – należą do kategorii niekompletnych, tzn. takich dla
których odbiorca lub nadawca nie są znani. Komunikat utracony stosuje się,
gdy na pewnym etapie szczegółowości lub rozwoju projektu nie jest możliwe
określenie klasyfikatora odbiorcy, ale jest to konieczne w wersji docelowej.
Komunikat znaleziony reprezentuje komunikat wysłany spoza diagramu
sekwencji, np. w celu ujęciu w modelu zjawisk zewnętrznych;
opcjonalne - wysyłane w celu niezwłocznej obsługi przez odbiorcę. Jeśli taka
obsługa nie jest możliwa, nadawca nie ponawia wysyłania tego komunikatu.
oczekujące - są podobne do opcjonalnych, z tym że nadawca jest gotowy
czekać przez określony czas na obsłużenie. Jeśli odbiorca nie może przyjąć
komunikatu w tym czasie, nadawca rezygnuje z interakcji.
komunikaty samowywołania -mogą reprezentować wywołanie
rekursywne tej samej metody lub wywołanie pewnej metody obiektu przez inną
metodę tego samego obiektu. Jest to uwidocznione na diagramie przez
wprowadzenie zagnieżdżonego ośrodka sterowania na linii życia obiektu.
Przykład
Diagram czynności logowania do bankomatu