Metodyka RUP i język UML w projektowaniu inżynierskim
Transkrypt
Metodyka RUP i język UML w projektowaniu inżynierskim
Pomiary Automatyka Robotyka 2/2005 Metodyka RUP i język UML w projektowaniu inżynierskim Zbigniew Mrozek* Metodyka RUP (Rational Unified Process) i język UML pozwalają na zidentyfikowanie i usunięcie na wstępnych etapach projektowania znacznej części zagrożeń, które mogłyby spowodować fiasko projektu, względnie znaczne przekroczenie jego budżetu i czasu realizacji. Z asadniczym celem projektanta jest przygotowanie nowego lub ulepszonego produktu, który będzie konkurencyjny na rynku. Realizacja tego celu wymaga stosowania odpowiednich narzędzi wspomagających projektowanie. Szybkie wprowadzenie na rynek produktu o wymaganych właściwościach i odpowiedniej jakości daje szansę uzyskania dodatkowego zysku (first to market premium), jeśli tylko konkurenci nie zaoferują podobnego wyrobu. Projektowanie złożonego produktu (systemu) może stanowić poważne wyzwanie organizacyjne, naukowe i logistyczne [6]. Typowymi zagrożeniami są: przekroczenie budżetu i/lub terminu zakończenia prac, a nawet kompletne fiasko projektu. Niechlubnym przykładem był wadliwy system zarządzania bagażami na lotnisku Denver International Airport, otwartym w lutym 1995, z 16-miesięcznym opóźnieniem. Spowodowane tymi błędami przekroczenie budżetu wyniosło około 300 milionów USD [1]. Projektowanie jako element cyklu życia produktu usprawnienia wczesnych etapów projektowania, to jest przygotowania specyfikacji wymagań oraz projektowania koncepcyjnego. Projektowanie systemów z wykorzystaniem RUP W wielu firmach już w latach 90. ubiegłego wieku opracowywano zalecenia i procedury pozwalające zmniejszyć ryzyko związane z realizacją dużych projektów. Analiza przebiegu realizacji dużych systemów informatycznych pozwoliła stwierdzić, że istotne jest precyzyjne określenie rzeczywistych wymagań zleceniodawcy oraz wczesne eliminowanie zagrożeń wystąpienia poważniejszych przeszkód w realizacji projektu. Weryfikacja wymagań zleceniodawcy (pod kątem ich kompletności, braku wzajemnych konfliktów i możliwości realizacji) powinna być niezwykle staranna i możliwie wcześnie prowadzona. RUP i powstanie języka UML Jednym z udanych rozwiązań wspomagających projektowanie jest metodyka i środowisko RUP (Rational Unified Process) [16, 2]. Stworzono ją poprzez zintegrowanie metodyki Rational Approach opracowanej przez Boocha i Rumbaugha z metodyką Objectory process Ivara Jacobsona ze Szwecji. Do projektowania wykorzystuje się narzędzia wspomagające modelowanie i symulację na wysokim poziomie abstrakcji. Istotne jest też zaplanowanie i śledzenie postępów realizacji projektu oraz wspomaganie pracy zespołowej projektantów — szczególnie, jeśli reprezentują oni różne specjalności. Ponadto poprzez Rys. 1. Typowy cykl życia wyrobu serwery WWW udostępnia się modele i automatycznie tworzone ra* dr inż. Zbigniew Mrozek – Wydział Inżynierii Elektrycznej porty. i Komputerowej, Politechnika Krakowska Twórcy RUP dostrzegli potrzebę stworzenia nowego języka, który by Typowy cykl życia produktu obejmuje jego projektowanie, implementację, produkcję, eksploatację oraz utylizację (rys. 1). W artykule przedstawiono propozycje 18 Pomiary Automatyka Robotyka 2/2005 uporządkował niespójną notację odziedziczoną po wcześniej stosowanych metodykach. Rezultatem ich pracy była wstępna wersja języka UML. Jego specyfikacja została powszechnie udostępniona poprzez dobrowolne jej zgłoszenie jako odpowiedź na RFP (request for proposal) ogłoszone przez niekomercyjną organizację OMG (object managment group). W 1997 roku UML 1.1 został ogłoszony jako jedna z technologii zaadoptowanych przez OMG [12]. Aktualnie każdy może bez opłat wykorzystywać specyfikację i diagramy tego języka, a dalszy jego rozwój jest koordynowany przez OMG. W rezultacie język UML jest rozwijany przez wiele firm, a oferta narzędzi wspomagających projektowanie z wykorzystaniem języka UML szybko wzrasta. W ubiegłym roku oferowano ponad 100 takich produktów komercyjnych i bezpłatnych. Wykaz takiego oprogramowania znajduje się na stronie http://www.objectsbydesign.com/ tools/umltools_byProduct.html Zalecenia dobrej praktyki inżynierskiej Istotnym elementem RUP są zalecenia dobrej praktyki inżynierskiej (best practices) [15, 13]. Większość tych zaleceń może być z powodzeniem wykorzystana w projektowaniu procesów technologicznych, systemów sterowania, wyrobów mechatronicznych i innych [5, 7–10]. Najważniejsze z nich to: 1. Zarządzaj wymaganiami. Jak najwcześniej wdrażaj konieczne zmiany i badaj ich skutki 2. Określ główne zagrożenia i wcześnie im zapobiegaj, a pomoże to ochronić się przed fiaskiem projektu 3. Wykorzystuj gotowe elementy i podzespoły 4. Modeluj system graficznie (np. z użyciem UML) 5. Projektuj iteracyjnie, zapewnij wysoką jakość już podczas projektowania, a nie dopiero po badaniu lub awarii prototypu 6. Pracuj zespołowo 7. Zadowolenie klienta i odbiorcy to twój cel nadrzędny. RUP: fazy i aktywności projektu W RUP określa się cztery fazy realizacji projektu: faza wstępna (inception), projektowanie koncepcyjne (elaboration), projektowanie szczegółowe z prototypowaniem (construction) oraz wdrożenie, produkcja i przygotowanie do dystrybucji (transition). Przejście do każdej następnej fazy projektowania jest uzależnione od spełnienia warunków określonych przez „kamień milowy” (milestone). Na przykład przejście do fazy wdrożenia może być uwarunkowane spełnieniem wszystkich następujących warunków: uzyskanie pełnej funkcjonalności i stabilności opracowanych wcześniej rozwiązań nieprzekroczenie budżetu poprzedniej fazy projektu i brak istotnych opóźnień w realizacji projektu uzyskanie zgody sponsorów na dalszą realizację projektu. Użyteczność diagramów UML w projektowaniu systemów i wyrobów Język UML pozwala na opisanie (na wysokim poziomie abstrakcji) funkcji, zadań i wzajemnej współpracy różnych elementów projektowanego systemu — niezależnie od ich natury fizycznej. Diagramy UML pozwalają na tworzenie modeli projektowanego systemu na różnych poziomach szczegółowości oraz na skuteczne komunikowanie się i wzajemne zrozumienie projektantów, nawet specjalistów z różnych dziedzin. Wizualizacja i animacja pracy projektowanego systemu (np. za pomocą diagramów UML) pozwala zweryfikować jego działanie i zbadać zgodność ze specyfikacją wymagań. Co ważniejsze, weryfikację tę wykonuje się zanim zostanie podjęta decyzja o budowie kosztownego prototypu systemu lub jego części. Tworzenie modeli na wysokim poziomie abstrakcji umożliwia badanie i poprawianie koncepcji projektowanego produktu bez ponoszenia dużych kosztów i bez straty czasu na budowę i poprawianie modelu szczegółowego (czy też prototypu fizycznego). Prototyp fizyczny powinien być zbudowany dopiero po wszechstronnym zweryfikowaniu modeli przygotowanych w UML oraz po zbudowaniu i przetestowaniu modeli szczegółowych. Modele szczegółowe buduje się z wykorzystaniem narzędzi specjalistycznych jak MATLAB/Simulink, pakiety CAD/CAM i EDA (electronic design automation) oraz inne — zgodnie z potrzebami. Istotnym elementem projektowania i weryfikacji produktu może też być wirtualne modelowanie fizyczne, opisane w [11]. Przygotowanie specyfikacji wymagań dla projektowanego produktu Opis tekstowy wymagań dla projektowanego produktu może być trudny do zweryfikowania pod kątem kompletności, precyzji opisu i braku wewnętrznych sprzeczności. Duża objętość dokumentacji tekstowej i liczne, szczegółowe rysunki mogą skutecznie utrudnić weryfikację takiej dokumentacji. Ponadto pewna dowolność interpretacji użytych pojęć i fragmentów tekstu może być powodem nieporozumień podczas realizacji projektu. Zalecanym podejściem jest sformalizowanie opisu wymagań poprzez przygotowanie scenariuszy i diagramów przypadków użycia w języku UML. Mogą być one tworzone przy czynnym udziale klienta. Klient może nie mieć żadnego przygotowania w zakresie modelowania, ale po krótkim objaśnieniu powinien prawidłowo odczytywać i weryfikować te diagramy pod kątem właściwego uwzględnienia potrzebnych mu funkcji i usług. Dodatkowo można wspólnie przygotować słownik z objaśnieniami pojęć, które mogą być inaczej rozumiane przez projektantów i zleceniodawcę. Na przykład, jeśli przedmiotem projektu jest układ sterowania żurawia do przeładunku towarów, to zleceniodawca może wymagać, aby: 19 Pomiary Automatyka Robotyka 2/2005 minimalizować czas przenoszenia ładunku, przy zachowaniu wymaganej precyzji jego umieszczenia w miejscu docelowym ruchy żurawia nie powodowały oscylacji ładunku, a istniejące oscylacje były skutecznie tłumione podczas ruchu żurawia zmiany parametrów żurawia (jego konfiguracji i długości liny) oraz ładunku (masy, kształtu i wymiarów), a także warunków atmosferycznych (wiatr) nie pogarszały skuteczności tłumienia oscylacji. Wymagania te przedstawia się w postaci scenariuszy i diagramu przypadków użycia (rys. 2) oraz w razie potrzeby w postaci dodatkowych komentarzy i opisu tekstowego. Scenariusz opisuje sekwencję zdarzeń, w których zewnętrzni aktorzy współdziałają z obiektami należącymi do systemu. Zdefiniowanie aktorów (człowiek względnie zewnętrzny system albo obiekt) jest niezwykle istotne, gdyż pozwala na precyzyjnie określenie granicy pomiędzy projektowanym systemem a jego otoczeniem. Poniżej podano przykład scenariusza opisującego pracę żurawia portowego. Dodatkowe scenariusze mogą opisywać inne warianty pracy żurawia oraz działania w stanach awaryjnych. „Operator żurawia, po uzyskaniu potwierdzenia prawidłowego umocowania ładunku, włącza silnik wciągarki i unosi ładunek na wysokość ok. 4 m, po czym przenosi go w kierunku miejsca rozładowania. Ładunek jest opuszczany precyzyjnie w miejscu wskazanym przez obsługę naziemną ładunku — z zachowaniem dużej ostrożności i po wytłumieniu jego oscylacji.” Projektowanie koncepcyjne z wykorzystaniem diagramów UML Celem tej fazy projektowania jest: opracowanie stabilnej struktury wewnętrznej (architektury) projektowanego systemu wykrycie i usunięcie zagrożeń powodowanych przez błędy w specyfikacji wymagań oraz ewentualne błędy w modelach tworzonych w tej i w poprzedniej fazie projektowania. Projektowanie koncepcyjne w istotnym stopniu wpływa na jakość projektowanego produktu poprzez wczesne eliminowanie zagrożeń oraz przez wielokrotną (po każdym cyklu iteracji) weryfikację zgodności ulepszanej wersji projektu z wymaganiami. Projektowanie jest wspomagane przez odpowiednie narzędzia CASE (computer aided system engineering) np. [14, 15, 17]. Określenie struktury budowanego systemu Analiza diagramu przypadków użycia i scenariuszy pozwala na zidentyfikowanie obiektów, czyli elementów systemu (lub podsystemu), które są odpowiedzialne za realizację określonych usług i funkcji. Możliwe jest też określenie, które obiekty ze sobą współpracują. Podobne obiekty grupuje się w klasy, które definiują typ obiektu i jego właściwości, w tym atrybuty (nazwy i typy parametrów, których wartości określają stan obiektu) oraz operacje, czyli funkcje i usługi realizowane przez każdy obiekt danej klasy. Przykładowo enkoder wału wciągarki jest obiektem klasy Czujniki (rys. 3). Wstępną propozycję struktury projektowanego systemu lub jego części można przedstawić na diagramie klas (rys. 3). Ikony klas i obiektów mają postać prostokątów. W środkowej części ikony można podać atrybuty, a w dolnej operacje. Współpracujące klasy lub obiekty są połączone poprzez różne relacje, pokazane jako linie na diagramie. Rys. 2. Diagram przypadków użycia pokazuje współpracę zewnętrznych aktorów z projektowanym systemem. Aktorami są ludzie (np. operator żurawia), ale też ładunek i czynniki zakłócające pracę systemu Diagram przypadków użycia może być modyfikowany na ekranie komputera, a brak jego zgodności z opisem tekstowym lub rzeczywistymi wymaganiami przyszłego użytkownika może być łatwo wykryty. Na rys. 2 pokazano, że zmiana parametrów żurawia (np. wydłużenie liny, opuszczanie bomu) oraz wiatr wpływają na przemieszczanie ładunku. Zwraca się uwagę na strzałki, które pokazują kierunek inicjowania interakcji pomiędzy elementami tego diagramu. 20 Rys. 3. Diagram klas pokazuje strukturę wewnętrzną projektowanego systemu. Pokazano parametry i operacje dla wybranych klas Pomiary Automatyka Robotyka 2/2005 Weryfikacja scenariusza i diagramu klas Rys. 4. Diagram sekwencyjny pokazuje realizację wybranego scenariusza przez obiekty z diagramu klas, z wykorzystaniem atrybutów i operacji tych klas Diagram sekwencyjny (rys. 4) pokazuje, jak obiekty z diagramu klas realizują kolejne funkcje opisane przez wybrany scenariusz. Podobne możliwości ma diagram współpracy (kolaboracji) [10]. Brak precyzji scenariusza lub błędy diagramu klas uniemożliwią przygotowanie diagramu sekwencyjnego. Oznacza to wykrycie błędów, które są zagrożeniem dla realizacji projektu. Po ich poprawieniu należy powrócić do przygotowywania diagramów. Pozwoli to zweryfikować poprawność kolejnej wersji budowanego systemu. Weryfikacja odpowiedzialności podsystemów i ich elementów Na diagramie stanów (rys. 5) sprawdza się, czy można prawidłowo zrealizować wszystkie sytuacje, które mogą wystąpić w pełnym cyklu życia produktu lub jego podsystemu. Służy to zweryfikowaniu właściwości behawioralnych całego systemu lub jego elementów składowych (podsystem lub jego część opisana przez: przypadek użycia, klasę lub obiekt). Stany, w których dany element może się znajdować są przedstawione przez prostokątne ikony z zaokrąglonymi brzegami. Dopuszczalne przejścia pomiędzy stanami są oznaczone liniami ze strzałką pokazującą kierunek przejścia. Wnioski końcowe W pracy przedstawiono metodykę RUP i pakiety wspomagające projektowanie graficzne, do modelowania systemów na wysokim poziomie abstrakcji, z użyciem języka UML. Głównym celem projektowania wstępnego jest opracowanie struktury projektowanego produktu (lub systemu) oraz wykrycie i eliminacja zagrożeń, mogących utrudnić lub uniemożliwić zrealizowanie projektu. Wczesne wykrycie zagrożeń (przed rozpoczęciem szczegółowego projektowania podsystemów) obniża koszty ich usunięcia, zmniejsza straty czasu i ułatwia zapewnienie wymaganej jakości produktu końcowego. Pozwala to zrealizować nadrzędny cel projektanta: zadowolenie zleceniodawcy [10, 18]. Bibliografia 1. 2. 3. 4. Rys. 5. Diagram stanów pokazuje wszystkie dopuszczalne stany dla projektowanego systemu lub wybranego podsystemu oraz warunki przejścia i realizowane operacje. Pokazany tutaj sterownik poślizgowy [4, 8] można stosować w obiektach nieliniowych i niestacjonarnych Obok każdego przejścia podaje się warunek realizacji tego przejścia lub nazwę zdarzenia inicjującego to przejście. Idea tych diagramów jest oparta na maszynie stanów Harela [3]. Pomimo, że diagramy stanu są elementem języka UML wspieranego przez liczne narzędzia CASE [14, 17], to znacznie większe możliwości ma pakiet Stateflow ze środowiska MATLAB/Simulink [4]. Prócz animacji stanów umożliwia on automatyczne generowanie oprogramowania czasu rzeczywistego dla modeli Simulinka zawierających diagramy stanu. Należy jednak dodatkowo mieć oprogramowanie RTW i StateflowCoder. Jeśli pewne czynności można wykonywać równolegle w tym samym czasie, to można to pokazać i zweryfikować na diagramie aktywności opisanym w [6, 10]. 5. Bruegge B, Dutoit A, Object-Oriented Software Engineering: Conquering Complex and Changing Systems, Prentice-Hall, 1999. Jacobson I., Booch G, and Rumbaugh G. The Unified Software Development Process Addison-Wesley, 1999. Harel D., Statecharts: A visual formalism for complex syst, Sci of Comp. Programming, 1987, No 8, pp. 231–274. Mrozek B, Mrozek Z., MATLAB i Simulink, poradnik użytkownika, Wydawnictwo Helion, 2004. Mrozek Z.: Wykorzystanie UML i Modeliki w szybkim projektowaniu mechatronicznym, [w: ] Projektowanie Mechatroniczne, Zagadnienia wybrane, praca 21 Pomiary Automatyka Robotyka 2/2005 6. 7. 8. 9. 10. zbiorowa pod red. T. Uhla, Zespół Mechatroniki Komitetu Budowy Maszyn PAN, Wydawnictwo Katedry Robotyki i Dynamiki Maszyn, AGH Kraków, 2002, s. 16–35. Mrozek Z.: Importance of early design phase in mechatronic design, Proc. 10-th IEEE International Conference on Methods and Models in Automation and Robotics MMAR, pp. 1131–1136, Międzyzdroje, Poland, 2004. Mrozek Z.: Computer aided design of mechatronic systems, International Journal of Applied Mathematics and Computer Science, vol 13 No 2, 2003, pp. 255–267. Mrozek Z., Tarasiewicz S.: Attempting sliding mode controller to mobile robot arc welding process, pp. 369–373, ed R. Tadeusiewicz, A. Ligęza, M. Szymkat, III Krajowa Konf. Metody i Systemy Komputerowe, Kraków 19–21 listopada 2001. Mrozek Z.: UML as integration tool for design of the mechatronic system, Second Workshop on Robot Motion and Control, pp. 189–195, Oct 18–20, Bukowy Dworek, 2001. Mrozek Z.: Komputerowo wspomagane projektowanie systemów mechatronicznych, Zeszyty Nauko- 11. 12. 13. 14. 15. 16. 17. 18. we Politechniki Krakowskiej, seria Inżynieria Elektryczna i Komputerowa, nr 1, 2002. Mrozek Z.: Modelowanie fizyczne, PAR 4/2004 s. 18–23. OMG Unified Modeling Language Homepage http: //www.omg.org/uml Probasco L.: The Ten Essentials off RUP, the essence off an effective development process, TP177 9/00, Rational Software Corporation, 2000. Rational Rose, Rational Rose RT Rational Software Corporation, http://www.rational.com/products/ rose/ Rational Unified Process, Best Practices for Software Development Teams, Rational Software White Paper, TP026B, Rev 11/01. Rational Unified Process, http://www.rational. com/products/rup/ Real-time Studio, ARTiSAN Software Tools, Inc. http://www.artisansw.com/ Uhl T. (red.), Bojko T., Mrozek Z., Petko M., Szwabowski W., Korendo Z., Bogacz M.: Wybrane problemy projektowania mechatronicznego, Wydawnictwo Katedry Robotyki i Dynamiki Maszyn, AGH Kraków, 1999. Nowe władze Polskiego Stowarzyszenia Pomiarów, Automatyki i Robotyki POLSPAR 15 grudnia 2004 roku odbyło się Walne Zgromadzenie Delegatów Polskiego Stowarzyszenia Pomiarów, Automatyki i Robotyki. Prezes POLSPAR prof. Tadeusz Puchałka złożył sprawozdanie z działalności Zarządu w minionej kadencji, a szczegółowe sprawozdania z działalności poszczególnych Komitetów przedstawili: prof. Andrzej Masłowski (Komitet Robotyki) prof. Janusz Mindykowski (Komitet Pomiarów) oraz prof. Tadeusz Puchałka (Komitet Automatyki). Sprawozdanie finansowe złożył skarbnik dr Jan Barczyk. W tej części zebrania prof. Jerzy Kurek przedstawił sprawozdanie Przedstawiciela POLSPAR w Radzie Federacji NOT. Sprawozdanie Komisji Rewizyjnej przedstawił prof. Tadeusz Missala — Komisja zgłosiła wniosek o udzielenie absolutorium ustępującemu Zarządowi. W dyskusji nad sprawozdaniami podkreślono konieczność współpracy POLSPAR z odpowiednimi Komitetami PAN oraz współpracy z przemysłem, zwłaszcza konieczność pozyskiwania członków wspierających. Delegaci Walnego Zgromadzenia POLSPAR wybrali na następną kadencję Prezesa Stowarzyszenia 22 Prezes Stowarzyszenia POLSPAR – dr hab. inż. Wiesław Winiecki z Politechniki Warszawskiej dr. hab. inż. Wiesława Winieckiego z Politechniki Warszawskiej oraz Zarząd w składzie: Jan Barczyk (skarbnik), Małgorzata Kaliczyńska, Józef Korbicz, Jan Maciej Kościelny, Zdzisław Kowalczuk, Dorota Kozanecka, Jerzy Kurek, Andrzej Masłowski, Krzysztof Mianowski, Janusz Mindykowski, Zbigniew Pilat, Tadeusz Ustaborowicz, Jarosław Warczyński, Romuald Zielonko. Do Komisji Rewizyjnej wybrano 5 osób: Tadeusza Missalę, Andrzeja. Kasińskiego, Mariusza Olszewskiego, Jerzego Honczarenkę, Bolesława Tynca. Przewodniczącym Komisji Rewizyjnej został ponownie prof. Tadeusz Missala. Delegaci przyjęli Uchwałę Walnego Zgromadzenia POLSPAR określającą kierunki działalności Stowarzyszenia w latach 2005–2007. dr inż. Jan Barczyk