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