Identyfikacja i modelowanie struktur i procesów biologicznych Laboratorium 2: Wprowadzenie do UML-a. mgr inż. Urszula Smyczyńska AGH Akademia Górniczo-Hutnicza 1. Cel zajęć Celem zajęć jest zapoznanie z podstawami modelowania systemów w języku UML, ze szczególnym uwzględnieniem jego zastosowań związanych z medycyną i inżynierią biomedyczną. 2. Wstęp UML (ang. Unified Modelling Language), zunifikowany język modelowania, służy do graficznego modelowania różnorodnych systemów i procesów. Pierwotnie UML, zaprojektowany około połowy lat 90. XX wieku jako narzędzie do modelowania systemów informatycznych, miał służyć przede wszystkim do usprawnienia komunikacji w zespołach zajmujących się projektowaniem i produkcją oprogramowania. Było to wówczas istotne, ponieważ systemy (najczęściej budowane w oparciu o techniki programowania obiektowego) stawały się bardzo złożone, a ich twórcy posługiwali się bardzo różnymi metodami opisu, co w praktyce często uniemożliwiało sprawny przepływ informacji. Istnienie jednolitej notacji, znanej niemal wszystkim osobom zaangażowanym w produkcję systemów informatycznych, miało ułatwić m.in. uzyskanie porozumienia między klientem a dostawcą oprogramowania, przepływ informacji między członkami zespołu twórców oprogramowania (np. kierownikiem projektu, analitykami i programistami) oraz szybkie wprowadzenie nowych członków zespołu w pracę nad projektem. Modelowanie systemu w UML-u polega na graficznym przedstawieniu jego funkcjonalności, stawianych mu wymagań i działania w określonych okolicznościach. Proces ten jest praktycznie niezależny od technologii informatycznej, w jakiej system będzie później realizowany. Dzięki temu okazało się, że UML może być z powodzeniem stosowany nie tylko w modelowaniu systemów informatycznych, ale też innych procesów i struktur, np. działania systemów biznesowych czy przedsiębiorstw, baz danych, a nawet procedur medycznych. Ponieważ zajęcia przeznaczone są dla inżynierii biomedycznej, większość przykładów będzie pochodziła z tej dziedziny, choć nie jest ona najbardziej typowym obszarem zastosowania modelowania w UML-u. 1
3. Diagramy UML Notacja UML zakłada, że opis systemu będzie składał się z szeregu powiązanych diagramów, budowanych w oparciu o zunifikowaną notację. Diagramy dostępne w UML-u zwykle dzieli się na 2 kategorie: diagramy zachowań (dynamiczne), prezentujące działanie systemu oraz diagramy struktur (statyczne), odwzorowujące budowę systemu. Do diagramów zachowań zalicza się w UML 2.4.1 (najczęściej używane zaznaczone na czerwono): 1. Diagram przypadków użycia (ang. use case diagram) 2. Diagram aktywności, czynności (ang. activity diagram) 3. Diagram maszyny stanów (ang. state machine diagram) 4. Diagramy interakcji (ang. interaction diagram): Diagram komunikacji (ang. communication diagram) Diagram sekwencji (ang. sequence diagram) Diagram czasowy (ang. timing diagram) Diagram przeglądu interakcji (ang. interaction overview diagram) Do diagramów struktur w UML 2.4.1 zaliczmy: 1. Diagram klas (ang. class diagram) 2. Diagram obiektów (ang. object diagram) 3. Diagram komponentów (ang. component diagram) 4. Diagram wdrożenia (ang. deployment diagram) 5. Diagram struktur złożonych (ang. composite structure diagram) 6. Diagram pakietów (ang. package diagram) 7. Diagram profili (ang. profile diagram) Klasyfikacja diagramów może być również zaprezentowana graficznie, co jest widoczne na poniższym rysunku, będącym jednocześnie pierwszym przykładem użycia notacji UML, a konkretnie diagramu klas. Typy diagramów UML; przetłumaczony schemat z [1] 2
3.1. Diagram przypadków użycia Diagram przypadków użycia służy do zobrazowania działania modelowanego systemu, a w szczególności sytuacji, w których może on być stosowany. Elementami diagramów przypadków użycia są m.in.: Aktorzy osoby (aktor osobowy), urządzenia lub programy (aktorzy nieosobowi), które wchodzą w interakcję z modelowanym systemem oraz inicjują jego działanie. Przypadki użycia sytuacje, w których używany jest system. Przy konstruowaniu przypadków użycia stosujemy zasadę, że opisane ma być co się dzieje?, a nie jak ma się to stać?. Związki powiązania między elementami modelu: Asocjacja połączenie aktora z przypadkiem użycia, z którego może korzystać. Zawieranie związek oznaczający, że jeden przypadek zawiera inny. Poniższy diagram czytamy zgodnie z kierunkiem strzałki, czyli Przypadek użycia 1 zawiera Przypadek użycia 2. Rozszerzanie związek, służący do opisania opcjonalnych działań, które mogą, ale nie muszą być elementem konkretnego przypadku użycia. Również czytamy zgodnie z kierunkiem strzałki, czyli poniżej mamy Przypadek użycia 2 rozszerza Przypadek użycia 1. 3
Przykład 3.1: system do zdalnego wykonywania badań USG W pracy [2] języka UML użyto do opisania działania systemu zdalnego wykonywania badania USG. Projekt zakładał, że lekarz specjalista będzie mógł, za pomocą odpowiednich urządzeń, zdalnie sterować robotem wyposażonym w głowicę ultrasonograficzną i dzięki temu wykonać badanie u pacjenta znajdującego się w zupełnie innym miejscu. Poniższy diagram pokazuje funkcje systemu i osoby oraz urządzenia, zaangażowane w różne sytuacje związane z jego użyciem. Diagram przypadków użycia dla robotycznego systemu badań USG, z [2] 4
3.2. Diagram klas Diagramy klas są używane do opisywania elementów składowych systemu, w szczególności klas w programowaniu obiektowym. Podstawowymi elementami diagramu klas są: Klasy elementy systemu. Opis klasy składa się z nazwy, atrybutów (cech) i metod (funkcji), przy czym dwa ostatnie elementy mogą zostać pominięte. Związki powiązania między klasami: Generalizacja (dziedziczenie) związek oznaczający, że klasa pochodna posiada wszystkie cechy i funkcje klasy bazowej oraz inne dodatkowe. Strzałki na diagramach skierowane są od klasy pochodnej do bazowej, czyli na poniższym rysunku Klasa 2 dziedziczy po Klasie 1. Agregacja opisuje relacje typu część-całość, przy czym poszczególne części mogą funkcjonować również niezależnie, bez łączenia w całość. Kompozycja relacja podobna do agregacji, z tym, że części składowe nie są niezależne. Poniżej: Klasa 1 składa się z Klasy 2 i Klasy 3. 5
Zależność powiązanie oznaczające, że zmiana jednej z jego stron powoduje zmianę w drugiej. Asocjacja dowolne, inne, trwałe powiązanie. Może być skierowanie linia ze strzałką lub nie. Przykład 3.2: Schemat organizacyjny szpitala Struktura organizacyjna szpitala w formie diagramu klas, źródło: [3] 6
3.3. Diagram aktywności (czynności) Diagramy aktywności służą do prezentowania sekwencji czynności składających się na modelowany proces. Szczególnie ważna jest tu kolejność wykonywania czynności. W diagramach aktywności wykorzystujemy m.in. następujące elementy: Stan początkowy początek opisywanego procesu. Stan końcowy koniec procesu. Stany akcji kolejne wykonywane czynności. Węzeł decyzyjny możliwość wyboru jednej z kilku alternatywnych sekwencji zdarzeń. Punkty synchronizacji rozdzielanie i łączenie równoległych przepływów czynności. 7
Przykład 3.3: Organizacja konsultacji chirurgicznej Diagram sekwencji dla konsultacji chirurgicznej pacjenta, źródło: [4] 8
3.4. Diagram sekwencji Diagramy sekwencji używane są do modelowania komunikacji między poszczególnymi elementami systemu i jego otoczenia. Na tym diagramie czynności przedstawia się zawsze w kolejności chronologicznej z początkiem procesu u góry. Podstawowymi częściami diagramu sekwencji są: Linie życia obiektów (uczestników) służą do zaznaczania, jakie obiekty biorą udział w procesie, kiedy wykonują działania i jak się ze sobą komunikują. U góry linii w prostokącie wpisuje są nazwę obiektu. W dół od prostokąta biegnie przerywana oś czasu, której pogrubione fragmenty oznaczają okresy, gdy obiekt jest aktywny. Komunikat wysłanie komunikatu oznacza się strzałką, skierowaną od obiektu wysyłającego do adresata; nad strzałką dodaje się opis komunikatu. Odpowiedź na komunikat oznaczana strzałką przerywaną. 9
Przykład 3.4: Wyszukiwanie danych pacjenta w systemie informatycznym Diagram sekwencji dla wyszukiwania informacji o pacjencie w bazie danych, źródło: [5] 10
4. Ćwiczenia Ćwiczenia będą wykonywane w programie Violet UML Editor. W każdej grupie zrealizowane zostaną niektóre z poniższych zadań. Ćwiczenie 4.1 Przerysować diagram z przykładu 3.1, tłumacząc podpisy na język polski i w miarę możliwości zmodyfikować go lub uzupełnić o dodatkowe elementy. Ćwiczenie 4.2 Przerysować diagram z przykładu 3.3, tłumacząc podpisy na język polski i ewentualnie zmodyfikować go lub uzupełnić o dodatkowe elementy. Ćwiczenie 4.3 Przedstawić funkcjonowanie izby przyjęć szpitalnego oddziału ratunkowego w formie diagramu przypadków użycia i/lub diagramu aktywności. Ćwiczenie 4.4 Przedstawić w formie diagramu klas UML rodzaje modeli, stosowanych do badania systemów biologicznych oraz w miarę możliwości ich podstawowe cechy charakterystyczne. Ćwiczenie 4.5 Przygotować projekt programu do analizy wybranego sygnału elektrodiagnostycznego w formie diagramów UML (co najmniej diagram przypadków użycia i klas). Ćwiczenie 4.6 Korzystając z diagramów UML, przygotować projekt systemu do analizy obrazów medycznych (co najmniej diagram przypadków użycia i klas). Ćwiczenie 4.7 W formie diagramów UML (przede wszystkim sekwencji i przypadków użycia) pokazać, jak powinien wyglądać przepływ informacji w szpitalnym systemie informatycznym lub jego spójnym fragmencie. 11
Ćwiczenie 4.8 Narysować diagram klas, prezentujący grupy biomateriałów. Ćwiczenie 4.9 Wykorzystać diagram aktywności i/lub sekwencji do opisania procesu wytwarzania wybranego biomateriału, implantu lub protezy. Ćwiczenie 4.10 Przedstawić na diagramie UML (aktywności lub sekwencji) proces badania nowego leku lub biomateriału, umożliwiający jego wprowadzenie do obrotu. Przy większej szczegółowości modelu można pokazać tylko wybrany etap tego procesu. Ćwiczenie 4.11 W formie diagramu aktywności i/lub sekwencji pokazać przebieg dowolnie wybranego zabiegu lub badania medycznego, np. operacji z wykorzystaniem robota medycznego, badania MRI głowy przed i po podaniu środka cieniującego. Ćwiczenie 4.12 Korzystając z diagramu przypadków użycia zaprezentować działanie robota chirurgicznego. 12
5. Literatura [1] OMG Unified Modelling Language TM (OMG UML), Superstructure. Version 2.4.1 część dokumentacji UML 2.4.1 [2] Guiochet J., Tondu B., Baron C. Integration of UML in Human Factors Analysis for Safety of a medical robot for tele-echography, Proceedings of the 2003 IEEE/RSJ Intl. Conference on Intelligent Robots and Systems, Las Vegas, Nevada 2003 [3] http://www.uml-diagrams.org [4] Sobolev B., Sanchez V., Kuramoto R. Health Care Evaluation Using Computer Simulation, Springer 2012 [5] Shi S., Xiong S. Analysis and Design of Clinical Information Management System Based on UML of AIDS of Traditional Chinese Medicine, National Conference on Information Technology and Computer Science 2012 13