WPROWADZENIE DO UML-a Maciej Patan Instytut Sterowania i Systemów Informatycznych
Dlaczego modelujemy... tworzenie metodologii rozwiązywania problemów, eksploracja różnorakich rozwiązań na drodze eksperymentalnej, dostarczanie mechanizmów zarządzania złożonością, redukcja czasu trwania procesu, ograniczanie kosztów wytwarzania, sterowanie ryzykiem występowania błędów.... graficznie? obraz graficzny odkrywa dane jakościowe, łatwość formułowania i percepcji złożonych systemów, 1 obraz = 1 megasłowo. 1
Przykład 1: Projekt sieci komputerowej opis słowny opis graficzny Komponenty: serwer (S1) + 4 stacje robocze (K1 K4) K1 K2 S1 Lista połączeń: S1 K1,K1-K4,K4 S1,S1 K2, K2 K1,K2 K3,S1 K3,K3 K4 K4 K3 2
Czym jest UML? Unified Modelling Language (UML) graficzny język służący do: specyfikacji, wizualizacji, konstrukcji, dokumentacji części składowych systemów oprogramowania. 3
Zadania i założenia OMG UML zdefiniowanie łatwego do nauczenia, ale bogatego semantycznie wizualnego narzędzia modelowania, prostota i precyzja, unifikacja technik Booch, OMT i OODE oraz wdrażanie idei z innych języków modelowania, wykorzystanie najlepszych doświadczeń przemysłowych, odpowiedź na współczesne zagadnienia inżynierii oprogramowania, rozszerzalność, niezależność od implementacji i procesu. 4
Historia i tło 1. poł. 1970-poł. 1990 rozwój różnych technik tworzenia i modelowania oprogramowania Booch 93 (Booch 91) projektowanie i tworzenie systemów oprogr. (Grady Booch), OMT-2 (Object Modelling Technique) analiza systemów oprogr. (James Rumbaugh), OODE (Object-OrienteD software Engineering) modelowanie biznesowe i analiza wymagań (Ivar Jacobson) 2. 1990-1997 unifikacja metod Booch a, Rumbaugh a i Jacobsona i wyłonienie się języka UML 1.0, 5
3. 4 kw. 1997 dodanie do listy standardów technologicznych Object Management Group (OMG) w wer. UML 1.1. 4. 3 kw. 1999 standard międzynarodowy organizacji ISO w formie dostępnej publicznie specyfikacji (PAS), 5. 1997 2003 powołanie zespołów korekcyjnych RTF (Revision Task Force) i poprawianie standardu do wersji aktualnej tj. UML 1.5 (www.omg.org), 6. kon. 2004 planowane zakończenie prac nad wersją UML 2.0. 6
UML a cykl życia rozwoju systemu ❶ definicja wymogów systemu, ❷ analiza zrozumienie i sprawdzenie poprawności wymogów, ❸ projektowanie ustalenie architektury systemu, ❹ implementacja budowanie systemu, ❺ testowanie weryfikacja wymogów, ❻ wdrożenie. 7
Metoda kaskadowa realizacji cyklu życia aplikacji schemat blokowy, Definicja Analiza Projekt. Implement. Testowanie Wdra anie nakład środków w poszczególnych etapach, Def. Analiza Projektowanie Implementacja Testowanie Wdra anie 8
Metoda kaskadowa (cd.) bardzo dobrze sprecyzowane fazy projektu i klarowny harmonogram prac, dogodny dla problemów z dobrze zdefiniowanymi wymogami (np. w automatyzacji dobrze sprecyzowanych procesów sterowania ręcznego), zmniejszenie szansy na ścisłą współpracę między zespołami realizującymi poszczególne etapy, zminimalizowanie wpływu doświadczenia zdobytego w czasie projektu, ogromna dysproporcja środków przypadających na analizę i implementację, późne wykrycie problemu prowadzi do katastrofalnych skutków lub ogromnych kosztów. 9
Metoda iteracyjna schemat blokowy, Definicja Analiza Projekt. Implement. Testowanie Wdra anie nakład środków w poszczególnych etapach, Def. Analiza Projektowanie Implementacja Testowanie Wdra anie 10
Metoda iteracyjna (cd.) zatarcie granic między kolejnymi fazami i chaotyczny harmonogram prac, niebezpieczeńtwo niekończącej się analizy i redukcji implementacji do użycia narzędzi typu CASE, możliwość równoległego realizowania postawionych zadań, zmaksymalizowanie współpracy między różnymi zespołami, możliwość lepszego radzenia sobie ze złożonością i zmianami w wymogach, redukcja kosztów, czasu realizacji projektu oraz ryzyka błędów. 11
Metoda rekursyjna przeznaczona dla dużych systemów z wieloma podsystemami, modułami itd. startując od najogólniejszej postaci systemu wywołujemy w trakcie trwania aktualnego procesu cyklu życia aplikacji kolejny proces dla badanego podsystemu, itd. metoda nie stanowi alternatywy dla metody kaskadowej czy iteracyjnej, może być stosowana w połączeniu z nimi. 12
Struktura blokowa języka UML Podstawowymi blokami UML-a są: elementy modelu (klasy, interfejsy, komponenty, przypadki użycia itd.), związki (asocjacje, generalizacje, zależności itd.), diagramy (klas, przypadków użycia, stanów itd.), Proste bloki są używane do tworzenia większych złożonych struktur. 13
Przykład 2: Cząsteczki chemiczne Diagram klas Diagram obiektów Woda H 2 O :Wodór H Wodór H << wi¹zanie >> Tlen :Wodór O H :Tlen O 14
Poprawność reguł języka UML Poprawność oznacza, że model lub też jego część jest zgodny ze wszystkimi semantycznymi i syntaktycznymi zasadami, które mają do niego zastosowanie. UML precyzuje zasady dla: nazewnictwa, definiowania zakresów, dostępności, integralności, wykonywalności UWAGA:, w czasie procesu iteracyjnego oczekuje się jednak, że kolejne modele mogą być niekompletne i/lub niespójne. 15
Architektura języka Nr Warstwa Opis IV metametamodel Definiuje język opisu metamodeli. III metamodel II model I obiekty użytkownika Konkretny egzemplarz metametamodelu. Definuje język opisu modelu. (Klasa, Atrybut, Operacja, Komponent) Egzemplarz metamodelu. Definiuje język opisu domeny informacyjnej systemu. rym budujemy. system) kretną domenę informacyjną (środowiska w którym Przykład konkretnego modelu. Definiuje konkretną 16