Projektowanie systemów informatycznych wykład 6
Iteracyjno-przyrostowy proces projektowania systemów Metodyka (ang. methodology) tworzenia systemów informatycznych (TSI) stanowi spójny, logicznie uporządkowany zestaw metod i procedur o charakterze technicznym i organizatorskim, pozwalających zespołowi projektowemu realizować cykl życia systemu. Ogólnie metodyki można podzielić na strukturalne, obiektowe i społeczne.
Podejście obiektowe Podobnie jak w przypadku metodyk strukturalnych, pojawił się szereg propozycji związanych z modelowaniem obiektowym. Największe uznanie zdobyły podejścia OMT, OOAD i OOSE, włączające pewne elementy metodyki. Pierwsza próba unifikacji obiektowego procesu tworzenia systemu nosiła nazwę USDP (Unified Software Development Process). Autorami USDP sa l. Jacobson, G. Booch oraz J. Rumbaugh. Jest to metodyka rodzajowa (ang. generic), stwarzająca możliwość opracowywania różnych jej konfiguracji i implementacji.
Metodyka rodzajowa Główne cechy tego podejścia: ukierunkowanie na przypadki użycia; potraktowanie architektury systemu jako centralnego zagadnienia w procesie tworzenia oprogramowania; iteracyjno-przyrostowy charakter procesu tworzenia systemu.
USDP Założenia rodzajowej metodyki USDP (Unified Software Development Process), iteracyjno-przyrostowy cykl życia systemu, a także kategorie modelowania języka UML wykorzystywane są przez inne, aktualnie rozwijane metodyki obiektowe. Do najbardziej interesujących należą: XP (Extreme Programming); Agile; Scrum, DSDM (Dynamic Systems Development Method).
RUP (ang. Rational Unified Process) RUP to metodyka tworzenia systemów informatycznych oparta na paradygmacie obiektowości i języku UML, zaproponowana przez korporacje Rational Software. Kompletna metodyka RUP zawiera następujące elementy: przyrostowo-iteracyjny cykl życia systemu; pojęcia, metody i techniki z zakresu języka UML i inne, w tym heurystyczne; zintegrowany pakiet narzędzi CASE, wspomagający stosowanie elementów metodyki; role zdefiniowane w zespole projektowym i procedury zarzadzania projektem; kryteria oceny i monitorowania postępu prac; hipertekstowa bazę wiedzy; internetowy serwis wspomagający metodykę i jej użytkowników.
Metodyka RUP Metodyka RUP jest ukształtowana w sposób umożliwiający dopasowanie procesu tworzenia systemu do potrzeb konkretnego przedsięwzięcia na podstawie pełnego spektrum swoich możliwości. W efekcie RUP jest elastyczny - znajduje zastosowanie zarówno przy mniejszych, jak i dużych projektach informatycznych.
Ewolucja metodyki RUP Najważniejsze obszary zmian w zakresie metodyki związane były z: rozwijaniem poszczególnych dyscyplin, w tym przepływów pracy oraz dotyczących ich dokumentów; wprowadzeniem modułów dodatkowych (ang. plug-ins) RUP oraz integracja i włączaniem nowych narzędzi CASE, wspomagających metodykę RUP; reorganizacja układu hipertekstowej bazy wiedzy; zdefiniowanymi w metodyce artefaktami - modelami i dokumentami.
Struktura RUP Przez kilka dekad dominującym wzorcem cyklu życia systemu był cykl liniowy, a później spiralny. Metodyka RUP opiera sie na zasadniczym novum: iteracyjno przyrostowym (ang. iterative-incremental) cyklu życia systemu. Ma on postać dwuwymiarowa. Linia pozioma reprezentuje czas (dynamiczny aspekt procesu TSI), uwzględniając: fazy; iteracje; punkty przeglądu. Z kolei linia pionowa odzwierciedla statyczny aspekt procesu TSI, tj. jego opis w kategoriach: dyscyplin; czynności; artefaktów; ról; przepływów pracy.
Struktura RUP
Role Rola oznacza obowiązki i kompetencje osoby lub zespołu zaangażowanego w proces tworzenia systemu informatycznego lub jego wycinka. W wyniku realizacji roli powstają oczekiwane artefakty. Spektrum ról, odpowiadających często współczesnym zawodom informatycznym, jest bardzo szerokie i wiąże sie z możliwościami zaawansowanych technologii informatycznych. Przykładami ról w metodyce RUP są: menadżer projektu, inżynier procesu, analityk procesów biznesowych, analityk systemowy, projektant testów, testujący, specjalista ds. narzędzi CASE. Przepływ pracy - stanowi sekwencje czynności, w wyniku której powstaje lub jest przetwarzany artefakt.
Artefakty i czynności Artefakt (ang. artifact) - dowolna grupa informacji lub fizyczny byt wykorzystywany (przetwarzany) przez czynności procesu. Przykłady: modele, plany, kod, programy wykonywalne, dokumenty, bazy danych,....). Podział pracy na czynności ułatwia monitorowanie, gdyż każda czynność jest odrębnym zadaniem, które może być zaplanowane i ocenione Artefakty są elementami tworzonymi, modyfikowanymi i wykorzystywanymi przez proces; pracownicy mogą otrzymywać określone artefakty na wejściu czynności oraz rezultatem wykonania czynności są również artefakty Zwykle artefakty mają określone w miarę szczegółowe zalecenia (ang. guidelines), dzięki czemu mogą być opisane w sposób wyczerpujący; ponadto mogą składać się z innych elementów (np. model projektowy zawierający klasy)
Dyscypliny Dyscyplina (ang. discipline), jest kolekcja powiązanych czynności, artefaktów, ról oraz przepływów pracy odpowiadających tematycznie głównym obszarom tworzenia systemów informatycznych. Dyscypliny podstawowe stanowią rdzeń procesu tworzenia systemu. Należą do nich: modelowanie biznesowe; specyfikacja wymagań; analiza i projektowanie; programowanie; testowanie; wdrożenie. Dyscypliny wspomagające realizują funkcje zarządcze i konfiguracyjne w procesie tworzenia systemu. Można do nich zaliczyć: zarzadzanie konfiguracjami i zmianami; zarzadzanie projektem; przygotowanie środowiska.
Układ dyscyplin cyklu życia RUP w iteracji
Podstawowy zakres merytoryczny dyscyplin w procesie RUP
Fazy Faza (ang. phase) w metodyce RUP jest okres miedzy kolejnymi punktami przeglądu cyklu iteracyjno-przyrostowego, w którym zrealizowano niezbędne czynności i opracowano adekwatne artefakty. Metodyka RUP wprowadza cztery fazy: rozpoczęcie (ang. inception); opracowanie (ang. elaboration); budowa (ang. construction); przekazanie (ang. transition).
Iteracje w fazach System informatyczny jest rozwijany w kolejnych iteracjach (ang. iterations), występujących w ramach każdej z wymienionych faz. Przejście pomiędzy iteracjami poprzedza przyrostowa integracja artefaktów otrzymanych we wszystkich dotychczasowych iteracjach. Iteracja w metodyce RUP to pojedynczy cykl w ramach fazy, polegający na realizacji czynności poszczególnych dyscyplin; jej efektem jest kolejny przyrost systemu. W wyniku oceny związanej z użytkowaniem systemu następuje jego modyfikacja. W ten sposób, po następujących po sobie cyklach użytkowania powstają kolejne generacje systemu. Przykładowe oznaczenie systemu w postaci 2.7 wskazuje siódmą wersję w ramach drugiej generacji systemu.
Iteracje w fazach W miarę realizacji kolejnych iteracji powstają kolekcje powiązanych ze sobą artefaktów stanowiących wersje projektu systemu. Początkowo są one ogólne, wzbogacane i udoskonalane w kolejnych iteracjach. Zastosowanie cyklu iteracyjno-przyrostowego znacząco zmniejsza ryzyku niepowodzenia projektu w porównaniu z cyklem liniowym. Wynika to z możliwości przeprowadzanie oceny kolejnych wersji systemu nie tylko pod kątem technicznym, lecz również pod kątem zgodności z wymaganiami użytkownika. Iteracyjne podejście umożliwia ponadto szybką reakcję na wprowadzenie nowych wymagań lub zmianę już istniejących. Liczba iteracji uzależniona jest od złożoności tworzonego systemu oraz czasochłonności poszczególnych faz.
Fazy w metodyce RUP i ich cele Rozpoczęcie (ang. inception) - wypracowanie ogólnej wizji przedsięwzięcia oraz osiągnięcie zrozumienia i akceptacji projektu ze strony wszystkich jego uczestników (poświęca się ok. 10% czasu). Opracowanie (ang. elaboration) - ustalenie architektury systemu, stworzenie planu projektu oraz wyeliminowanie elementów wysokiego ryzyka z projektu (poświęca się ok. 30% czasu). Budowa (ang. construction) - stworzenie systemu na podstawie przyjętej architektury (poświęca się ok. 50% czasu). Przekazanie (ang. transition) - dostarczenie gotowego systemu użytkownikom czy klientom (poświęca się ok. 10% czasu).
RUP