Projekt – aktywność techniczna, której celem jest przejście od
Transkrypt
Projekt – aktywność techniczna, której celem jest przejście od
Projekt – aktywność techniczna, której celem jest przejście od wymagań użytkownika do fizycznego produktu spełniającego jego oczekiwania. Fazy projektu: Określenie potrzeby, Definiowanie projektu, Planowanie i organizacja, Realizacja projektu, Finalizowanie projektu. Procesy projektowe: Inicjacja, Specyfikacja, Projektowanie, Kodowanie, Integracja, Weryfikacja, Walidacja, Instalacja, Pielęgnowanie/Utrzymywanie. W trakcie tworzenia oprogramowania dokonuje się dekompozycji całego procesu na procesy mniejsze. Problemy projektowania systemów: Złożoność wymagań, Zmiana wymagań, Trudność zarządzania częstymi zmianami, Kompatybilność i obecność innych systemów. Cykl życia oprogramowania to okres czasu od początku prac nad stworzeniem oprogramowania do końca jego eksploatacji. Modelem cyklu życia nazywamy strukturę procesu związanego z realizacją takiego systemu. Cykl życia projektu często „zawiera” się w cyklu życia systemu. Model cyklu życia systemu koncentruje się na dostarczeniu systemu, a model cyklu życia projektu na wszystkich aspektach prowadzących do osiągnięcia celów projektu. Cykl życia: Rozwój systemu : [Definiowanie problemu, Projektowanie systemu, Użytkowanie systemu]. Ryzyko - możliwość wystąpienia sytuacji niepożądanej jako skutek pewnego zdarzenia, charakteryzują go : prawdopodobieństwo wystąpienia zdarzenia, negatywne skutki zdarzenia. Źródła ryzyka: działania , które zamierzamy podjąć; działania ,które zamierzają podjąć inni; wydarzenia zewnętrzne na które nie mamy wpływu. Pełny opis ryzyka: zakres (opis fragmentu przedsięwzięcia związanego z ryzykiem), zagrożenie (wydarzenie które jest niepożądane), skutki wystąpienia zdarzenia, czynniki ryzyka, prawdopodobieństwo wystąpienia, umiejscowienie w czasie, powiązania (jakie konsekwencje/efekty za sobą pociągnie), niepewność (stopień niepewności w stosunku do powyższych danych). Opcje postępowania: Uniknięcie ryzyka(wyeliminowanie możliwości zaistnienia niepożądanej sytuacji), Redukcja ryzyka, Kompensacja (jedno ryzyko kompensowane przez inne), Przerzucenie ryzyka na kogoś innego (np. firmę ubezpieczeniowa), Podział ryzyka (wspólnik ), Zaakceptowanie ryzyka. Analiza ryzyka: Identyfikacja – czynność krytyczna, wykrycie i zidentyfikowanie wszystkich rodzajów ryzyka; Profilowanie – ocena każdego zidentyfikowanego ryzyka, wartościowanie/profilowanie: prawdopodobieństwo zdarzenia, zależności pomiędzy poszczególnymi rodzajami ryzyka; Ewaluacja – pytanie o (nie)akceptację ryzyka (brak zmian w projekcie albo określenie działań alternatywnych), wyznaczenie progu akceptowalności ryzyka. Zarządzanie ryzykiem: Planowanie – zmniejsza prawdopodobieństwa ryzyka albo przyjmowanie ryzyka przy ograniczaniu negatywnych konsekwencji; Alokowanie – przydzielenie dostępnych zasobów do miejsc w projekcie o największym priorytecie, charakterystyczne jest balansowanie zasobami w stosunku do wcześniejszego planu; Nadzorowanie – zgodność realizacji zarządzania z przyjętymi założeniami, odstępstwa implikują zmianami w zarządzaniu; Monitorowanie – śledzenie i gromadzenie informacji na temat efektywności stosowanych procedur, dokonywanie odpowiednich pomiarów, dane wykorzystywane zarówno w bieżącym zarządzaniu ryzykiem jak i w przyszłej analizie, możliwość identyfikowanie nowych źródeł ryzyka. Identyfikowanie ryzyka Kategorie: Znane – jest tym czego w sposób naturalny obawiają się wykonawcy projektu; Nieznane – powinno być zidentyfikowane aby móc przeciwdziałać jego skutkom; Niepoznawalne – poza zasięgiem metod identyfikacji, określane jest w trakcie realizacji przedsięwzięcia. Strategie: Analiza zstępująca – przeglądanie list kontrolnych z wykazem potencjalnych zagrożeń i odnoszenie do sytuacji obecnej; Analiza wstępująca – ocena sytuacji obecnej i wskazanie jej możliwych skutków negatywnych. Metody: Burza mózgów; Analiza subiektywna. Podstawowe znaczeni mają metody oparte na tzw. Kwestionariuszach identyfikacyjnych, zawierających listy kontrolne z wykazem potencjalnych zagrożeń do rozważenia. Studium wykonalności – jest mini-analizą problemu, w ramach której powinna się pojawić odpowiedź na pytania o celowość kontynuowania prac, wykonalność zamierzonego przedsięwzięcia oraz jego kształt i ryzyko z nim związanie. SW jest czynnością wykonywaną przed projektem, przy czym jest to jakby projekt sam w sobie, wymagający zarządzania. Owocem jest raport wykonalności stanowiący podstawę podjęcia decyzji o kontynuowaniu albo zawieszeniu projektu. Uogólnienie – oznacza, że przypadek użycia-potomek dziedziczy całe zachowanie i znaczenie po przypadku-przodku. Zawieranie <<include>> - bazowy przypadek użycia jawnie włącza się w zachowanie innego przypadku użycia, w miejscu przez siebie określonym. Włączany przypadek nie występuje samodzielnie, jego egzemplarze mogą być tylko częścią większego, zawierającego przypadku użycia. Rozszerzenie <<extends>> - bazowy przypadek użycia w sposób domniemany włącza zachowanie innego przypadku użycia w określonym miejscu. Rozszerzenie służy do modelowania fragmentów przypadków użycia postrzeganych przez użytkownika systemu jako opcjonalne zachowanie. Port – miejsca, przez które realizowania jest interakcja klasy aktywnej. Sygnał – asynchroniczne wiadomości przesyłane pomiędzy klasami aktywnymi. Zdarzenie czasowe – reprezentuje upływ czasu, specyfikowane przez słowo after i wyrażenie, którego wartością jest przedział czasowy. Zdarzenie wywołania – reprezentuje zmianę stanu lub spełnienie pewnego warunku, słowo when i wyrażenie logiczne. Maszyna stanowa – określa ciąg stanów przyjmowanych przez obiekt i odpowiedzi w reakcji na zdarzenia zachodzące w trakcie życia obiektu. Warunek dozoru – jeśli nie jest spełnione to mimo pojawienia się zdarzenia uruchamiającego przejście nie będzie wykonane. Wartość dozoru obliczana jest po zajściu zdarzenia. Akcja – wykonywalna niepodzielna procedura obliczeniowa, które może mieć bezpośredni wpływ na obiekt będący właścicielem maszyny stanowej i pośredni wpływ na inne obiekty znajdujące się w jego zasięgu. Płytkie wznowienie – oznacza powrót do ostatniego aktywnego stanu najbliżej zagnieżdżonej maszyny stanowej (najbardziej zewnętrzny podstan). Głębokie wznowienie – oznacza zapamiętanie zagnieżdżonych podstanów na wszystkich poziomach. Obiekty pływające – poprzez wprowadzenie przepływu danych, istnieje możliwość obrazowania udziału obiektów (diagram czynności). Model kaskadowy – w każdej fazie wytwarzane są dokumenty będące podstawą (stanowiące wejście) dla fazy kolejnej. obrazuje proces liniowy, gdzie poszczególne fazy realizowane są sekwencyjnie. Cechuje go względnie duża łatwość zarządzania przedsięwzięciem, ściśle określona kolejność działań, łatwość stwierdzenia postępu prac, jednak błędy popełnione we wstępnych fazach mają wysoki koszt. Klient uczestniczy tylko w fazach wstępnych i końcowych – zła praktyka. W związku z tym trudno zdobywać od klienta wymagania. Występuje brak procesu (jawnej) weryfikacji pomiędzy poszczególnymi etapami. Wydaje się dobrym wyborem w sytuacji produkcji systemu o dobrze zdefiniowanych wymaganiach, łatwo w nim wskazać punkty kontrolne. Fazy modelu w ujęciu klasycznym: Definiowania wymagań, Projektowania, Implementacji/kodowania, Testowania, Konserwacji. Dodatkowe: Strategiczna, Analizy, Instalacji, Dokumentacji. Model V – zmienia poziom abstrahowania modelu. Rozwijanie oprogramowania ma charakter zstępujący, a jego testowanie i inspekcje – wstępujący. Fazy weryfikacji są sprzężone z każdym krokiem rozwijania. Proces zstępujący jest komplementarny ze wstępującym i vice versa. Umożliwia on polepszenie zarządzania procesem rozwijania systemu. Nie uwzględnia zależności czasowych i logicznych. Wykonalność -> Analiza -> Projekt -> [Programowanie] -> Test. Jednost. -> Test. Syst. -> Akceptacja Model ząb piły – konsekwencja spostrzeżenia, że percepcja systemu przebiega po odmiennych trajektoriach w przypadku klienta/użytkownika oraz wykonawcy. Wyróżniamy prototypy rewolucyjny i ewolucyjny, mają one odmienny charakter. Rewolucyjny – szybka budowa prototypu w celu niezwłocznej demonstracji funkcjonalności systemu. Będzie to raczej fragment całego systemu i powinien on zawierać jego najważniejsze składniki. Ewolucyjny – realizowany w dalszej fazie budowy, gdy duża część jego funkcjonalności została już zaimplementowana oraz wykonany jest cały projekt systemu. Model ząb rekina – jest rozszerzeniem poprzedniego modelu, wprowadza nowy poziom jakim jest kierownictwo. Model prototypowania/makietowania – stosowany gdy istnieje trudność uzyskania (pełnej) informacji o wymaganiach systemu, względnie informacje te nie są pewne. Przewiduje on szybką budowę prototypu aby pokazać go klientowi, a następnie rozwijanie pełnego systemu na podstawie prac nad prototypem. Prototypowanie wskazane jest w przypadku budowy systemu obarczonej dużym ryzykiem. Znacznie utrudnia szacowanie czasu i kosztów. Prototypowanie można uznać za bardzo specyficzną, rozbudowaną formę analizy wymagań. Podstawowe cele tego modelu to wykrycie: Potencjalnych nieporozumień pomiędzy stronami projektu ze względu na wymagania, Brakujących funkcjonalności systemu, Błędów w specyfikacji wymagań. Zalety: Możliwość szybkiej prezentacji pracującej wersji systemu, Możliwość rozpoczęcia szkoleń przed ukończeniem systemu Wady: Konieczność budowy prototypu (zwiększa koszty) - > Budowanie prototypu -> Weryfikacja prototypu -> Rozmowa z klientem -> Prototyp – niepełna realizacja, języki wysokiego poziomu, technologie komponentowe, generatory interfejsów. Model przyrostowy/ewolucyjny – kontynuacja modelu kaskadowego, składa się z części początkowej zakończonej projektem wysokiego poziomu, oraz części ewoluującej. Daje możliwość skrócenia przerw w kontaktach z klientem i dostarczania mu fragmentów systemu. Zwiększa koszty realizacji wynikające z przyrostowego wykonywania systemu. Jest przydatny gdy można wyróżnić i zaakceptować początkowe funkcjonalności systemu, z opcją dodawania kolejnych tzw. przyrostów. Model ten szybko daje działający produkt. Model spiralny – składa się z 4 kolejnych faz w każdym pojedynczym cyklu. Odległość punktu na krzywej od środka układu obrazuje akumulację dotychczas poniesionych nakładów. Na cały projekt składa się szereg pełnych obrotów rozkręcającej się spirali: LG – cele bieżącego obrotu, definiowanie ograniczeń dla planowanych celów; PG – ocena wariantów alternatywnych, identyfikowanie i szacowanie ryzyka; PD – przejście produktu przez proces wytwarzanie, weryfikacja i walidacja; LD – przygotowanie i planowanie realizacji kolejnych faz Ważnym aspektem modelu spiralnego jest analiza ryzyka. Można przypisać priorytety do poszczególnych kategorii ryzyka, przewiduje się serię prototypów dla zidentyfikowanych kategorii ryzyka począwszy od najwyższego. Jeśli problem ryzyka zostanie rozwiązany, to oceniane są jego rezultaty i planowana jest następna runda (w przeciwnym przypadku można zakończyć projekt). Dla każdego prototypu może być wykorzystany model kaskadowy. Poprzez nacisk na analizę alternatyw i ryzyka, wskazywany jest do produkcji wieloegzemplarzowej. Klasy prototypów: Ilustracyjny, Funkcjonalny, Eksploracyjny, Rewolucyjny Ewolucyjny