Szacowanie projektu
Problemy związane z naturą oprogramowania
specyfika oprogramowania - złożoność, niematerialność
jednostkowość nowych zastosowań
zmiany technologii
brak przenośności doświadczeń projektowych
implikacje polityczne
Problemy związane z szacowaniem
brak danych historycznych
miary pracy
złożoność
subiektywna natura oceny
Metody szacowania:
przez analogię
przez eksperta lub oprogramowanie
dostępne środki
cena do uzyskania
mikrotechnika
makrotechnika
modele parapetryczne (COCOMO, FPA)
Szacowanie jest dokonywane na bazie analizy porównawczej z podobnymi projektami, których charakterystyki są znane, udokumentowane i dobrze rozumiane.
Pozyskiwanie opinii ekspertów. Zabiega się o to by eksperci byli niezależni od siebie i posługiwali się różnymi podejściami do szacowania. Następnie eksperci są zbierani razem i dochodzą do uzgodnienia wspólnej opinii.
Planowanie i szacowanie jest prowadzone w oparciu o zakładane środki i zasoby przeznaczone do realizacji projektu.
Szacowanie kosztu jest dokonywane przez dostawcę tak by wygrać przetarg. Powstaje tu ryzyko, że wynikająca stąd cena będzie niższa niż rzeczywisty koszt systemu. Motywacje dostawcy mogą wynikać z oczekiwań, że wygrany kontrakt przyniesie mu korzyści w dalszej perspektywie. Sytuacja ta jest korzystna dla klienta o ile dostawca będzie zdolny do wypełnienia obietnic zawartych w kontrakcie.
Szacowanie jest dokonywane na bazie podziału na elementarne jednostki pracy. Wysiłek na wykonanie jednostki elementarnej jest wyznaczany np. metodą przez analogię.
Zadanie wytworzenia systemu jest najpierw dekomponowane na zadania prostsze i następnie przydział ilości pracy do każdego z tych zadań. Następnie podlegają one dalszej dekompozycji, aż do zadań, które mogą być oszacowane z dużą dokładnością. Przewidywane nakłady na te zadania są sumowane i jeżeli okaże się, że wynikająca z tego suma pracy na wykonanie zadań wyższego poziomu przekracza pierwotnie planowane nakłady, modyfikowane są wymagania względem systemu. Dzięki temu odgórnie zaplanowana dekompozycja nakładów pracy nie zostanie znacznie przekroczona.
Szacowanie jest otrzymywane poprzez zastosowanie formuły matematycznej, która modeluje statystyczną zależność pomiędzy nakładem pracy i czasem trwania projektu i tymi czynnikami, które mają na nie bezpośredni wpływ. Czynniki te nazywa się „czynnikami napędzającymi koszty”.
Dwie podstawowe metody:
Metoda Punktów Funkcyjnych (FPA)
COCOMO (COnstructive COst MOdel)
Metoda Punktów Funkcyjnych
głównymi wyznacznikami długości i kosztu procesu wytwarzania są złożoność i rozmiar projektowanego oprogramowania
kod powstaje późno, lepiej jest oceniać na podstawie funkcjonalności wynikającej ze specyfikacji
złożoność i rozmiar oprogramowania można ocenić szacując złożoność i wielkość funkcji operowania na danych
Idealny model: diagram przepływu danych (DFD), który daje na poziomie logicznym obraz wymaganych przetwarzań, przepływów, wejść, wyjść oraz magazynów danych.
Szacowanie wysiłku Metodą Punktów Funkcyjnych
wyróżnienie modułów projektu
określenie dla każdego modułu głównych typów danych
ocena w/w typów danych i przypisanie im wag w zależności od poziomu złożoności
obliczenie nieostatecznej liczby punktów funkcyjnych
analiza 14 parametrów wpływu
obliczenie ostatecznej liczby punktów funkcyjnych
określenie nakładu pracy w osobojednostkach
COCOMO:
Model podstawowy: za punkt wyjścia bierze liczbę dostarczanych instrukcji kodu DSI i typ projektu.
Model pośredni i COCOMO 2.0 uwzględniają szereg innych parametrów:
atrybuty produktu
cechy komputera
cechy zespołu pracującego nad projektem
atrybuty procesu wytwórczego
Szacowanie upływu czasu:
w planach ogólnych należy uwzględnić szkolenie, wakacje, zwolnienia itp. przyjmując ok. 200 dni roboczych
przyjmować, że przeciętny pracownik wykorzystuje na pracę 25 godzin w tygodniu
dla osób odpowiedzialnych za kierowanie ludźmi należy uwzględniać dodatkowo 15-20% na każdego podległego pracownika
...
Drogi rozwiązania problemów:
systematyczne wytwarzanie, zgodnie z przyjętym cyklem,
rozwój notacji modelujących i wspomaganie uznanych cykli rozwoju oprogramowania głównie klasycznego
definiowanie nowych cykli wytwórczych, często posiłkujących się nowymi metodologiami
rozwijanie nowych metodologii systematycznej konstrukcji oprogramowania, bazujących na istniejących bądź nowych notacjach
środowiska i narzędzia wspomagające
wspomaganie zarządzania projektem informatycznym, planowania, zarządzania ludźmi, minimalizacji ryzyka, zapewnienia jakości
Proces planowania
Plany strategiczne -> założenia -> opis projektu -> plan projektu -> plany etapowe
Planowanie zasobów
Rodzaje zasobów:
ludzkie
środki materialne (trwałe, nietrwałe)
środki niematerialne (wiedza, doświadczenie)
finansowe
czas
Plan: określenie zasobów w powiązaniu z zadaniami
jakie zasoby są potrzebne do realizacji zadania?
ile jednostek danego zasobu należy przydzielić do zadania?
po jakim czasie od rozpoczęcia zadania zasób będzie potrzebny i do kiedy?
Informacje związane z zadaniem:
Nazwa (jednoznaczny identyfikator, zwykle informacyjny)
Opis (wysokiego poziomu opis przedmiotu zadania)
Zadania składowe (lista, jeśli ma odniesienie)
Produkty (opis oczekiwanych rezultatów)
Priorytet (wskazanie istotności zadania, zwykle liczba 0-1)
Model wykonania (model działań prowadzących do realizacji zadania)
Ryzyko (opis ryzyka związanego z wykonaniem zadania)
Planowana data rozpoczęcia
Oczekiwany czas trwania
Wymagane zasoby (ludzie i środki niezbędne do realizacji)
Odstępstwa
Opis powiązań pomiędzy zadaniami:
Finish-to-start (FS) - zadanie B nie może rozpocząć się przed ukończeniem zad. A
Start-to-start (SS) - zad. B nie może rozpocząć się przed rozpoczęciem zad. A
Finish-to-finish (FF) - zad. B nie może zakończyć się dopóki nie zakończy się zad. A
Start-to-finish (SF) - zad. B nie może zakończyć się dopóki nie rozpocznie się zad. A
Standardowo przyjmuje się, że zadania rozpoczynają się gdy tylko jest to możliwe.
Modele sieciowe
Podstawową techniką stosowaną przy tworzeniu harmonogramów projektu są modele sieciowe.
Najczęstsze wystąpienia:
diagramy poprzedzania,
metoda ścieżki krytycznej (CPM)
metoda PERT
diagram Gantta
PERT (Program Evaluation and Review Technique)
Odmiana diagramu, w którym każde zadanie jest opisane przez „punkt startu” i „punkt ukończenia”, połączone linią. Innymi liniami zaznaczone są zależności pomiędzy zadaniami.
Diagramy poprzedzania
Opis węzła diagramu poprzedzania obejmuje identyfikator i opis zadania, czas trwania zadania, najwcześniejsze i najpóźniejsze terminy rozpoczęcia i zakończenia zadania, rozciągłość, będącą ilością czasu pomiędzy najwcześniejszym i najpóźniejszym terminem rozpoczęcia zadania i najpóźniejszym momentem jego zakończenia oraz płynność, odpowiadającą czasowi pomiędzy najwcześniejszym i najpóźniejszym momentem rozpoczęcia zadania.
Tworzenie harmonogramu
Harmonogram projektu musi ukazywać każde zadanie z listy zadań i identyfikować wszystkie powiązania pomiędzy zadaniami.
Ścieżka krytyczna - ciąg zadań, od terminowego ukończenia których zależy czas zakończenia projektu.
Wzajemne zależności między zadaniami:
sekwencje
nakładanie się
powiązanie
ograniczenie datą
Etapy tworzenia harmonogramu: podsumowanie
analiza opisu projektu
strategia postępowania
harmonogram dostarczania produktów
lista zadań
powiązania pomiędzy zadaniami
oszacowania czasowe i zasobów
utworzenie harmonogramu
analiza ścieżki krytycznej
analiza przydziału zasobów
Szacowanie projektu
Problemy związane z naturą oprogramowania
specyfika oprogramowania - złożoność, niematerialność
jednostkowość nowych zastosowań
zmiany technologii
brak przenośności doświadczeń projektowych
implikacje polityczne
Problemy związane z szacowaniem
brak danych historycznych
miary pracy
złożoność
subiektywna natura oceny
Metody szacowania:
przez analogię
przez eksperta lub oprogramowanie
dostępne środki
cena do uzyskania
mikrotechnika
makrotechnika
modele parapetryczne (COCOMO, FPA)
Szacowanie jest dokonywane na bazie analizy porównawczej z podobnymi projektami, których charakterystyki są znane, udokumentowane i dobrze rozumiane.
Pozyskiwanie opinii ekspertów. Zabiega się o to by eksperci byli niezależni od siebie i posługiwali się różnymi podejściami do szacowania. Następnie eksperci są zbierani razem i dochodzą do uzgodnienia wspólnej opinii.
Planowanie i szacowanie jest prowadzone w oparciu o zakładane środki i zasoby przeznaczone do realizacji projektu.
Szacowanie kosztu jest dokonywane przez dostawcę tak by wygrać przetarg. Powstaje tu ryzyko, że wynikająca stąd cena będzie niższa niż rzeczywisty koszt systemu. Motywacje dostawcy mogą wynikać z oczekiwań, że wygrany kontrakt przyniesie mu korzyści w dalszej perspektywie. Sytuacja ta jest korzystna dla klienta o ile dostawca będzie zdolny do wypełnienia obietnic zawartych w kontrakcie.
Szacowanie jest dokonywane na bazie podziału na elementarne jednostki pracy. Wysiłek na wykonanie jednostki elementarnej jest wyznaczany np. metodą przez analogię.
Zadanie wytworzenia systemu jest najpierw dekomponowane na zadania prostsze i następnie przydział ilości pracy do każdego z tych zadań. Następnie podlegają one dalszej dekompozycji, aż do zadań, które mogą być oszacowane z dużą dokładnością. Przewidywane nakłady na te zadania są sumowane i jeżeli okaże się, że wynikająca z tego suma pracy na wykonanie zadań wyższego poziomu przekracza pierwotnie planowane nakłady, modyfikowane są wymagania względem systemu. Dzięki temu odgórnie zaplanowana dekompozycja nakładów pracy nie zostanie znacznie przekroczona.
Szacowanie jest otrzymywane poprzez zastosowanie formuły matematycznej, która modeluje statystyczną zależność pomiędzy nakładem pracy i czasem trwania projektu i tymi czynnikami, które mają na nie bezpośredni wpływ. Czynniki te nazywa się „czynnikami napędzającymi koszty”.
Dwie podstawowe metody:
Metoda Punktów Funkcyjnych (FPA)
COCOMO (COnstructive COst MOdel)
Metoda Punktów Funkcyjnych
głównymi wyznacznikami długości i kosztu procesu wytwarzania są złożoność i rozmiar projektowanego oprogramowania
kod powstaje późno, lepiej jest oceniać na podstawie funkcjonalności wynikającej ze specyfikacji
złożoność i rozmiar oprogramowania można ocenić szacując złożoność i wielkość funkcji operowania na danych
Idealny model: diagram przepływu danych (DFD), który daje na poziomie logicznym obraz wymaganych przetwarzań, przepływów, wejść, wyjść oraz magazynów danych.
Szacowanie wysiłku Metodą Punktów Funkcyjnych
wyróżnienie modułów projektu
określenie dla każdego modułu głównych typów danych
ocena w/w typów danych i przypisanie im wag w zależności od poziomu złożoności
obliczenie nieostatecznej liczby punktów funkcyjnych
analiza 14 parametrów wpływu
obliczenie ostatecznej liczby punktów funkcyjnych
określenie nakładu pracy w osobojednostkach
COCOMO:
Model podstawowy: za punkt wyjścia bierze liczbę dostarczanych instrukcji kodu DSI i typ projektu.
Model pośredni i COCOMO 2.0 uwzględniają szereg innych parametrów:
atrybuty produktu
cechy komputera
cechy zespołu pracującego nad projektem
atrybuty procesu wytwórczego
Szacowanie upływu czasu:
w planach ogólnych należy uwzględnić szkolenie, wakacje, zwolnienia itp. przyjmując ok. 200 dni roboczych
przyjmować, że przeciętny pracownik wykorzystuje na pracę 25 godzin w tygodniu
dla osób odpowiedzialnych za kierowanie ludźmi należy uwzględniać dodatkowo 15-20% na każdego podległego pracownika
...
Drogi rozwiązania problemów:
systematyczne wytwarzanie, zgodnie z przyjętym cyklem,
rozwój notacji modelujących i wspomaganie uznanych cykli rozwoju oprogramowania głównie klasycznego
definiowanie nowych cykli wytwórczych, często posiłkujących się nowymi metodologiami
rozwijanie nowych metodologii systematycznej konstrukcji oprogramowania, bazujących na istniejących bądź nowych notacjach
środowiska i narzędzia wspomagające
wspomaganie zarządzania projektem informatycznym, planowania, zarządzania ludźmi, minimalizacji ryzyka, zapewnienia jakości
Proces planowania
Plany strategiczne -> założenia -> opis projektu -> plan projektu -> plany etapowe
Planowanie zasobów
Rodzaje zasobów:
ludzkie
środki materialne (trwałe, nietrwałe)
środki niematerialne (wiedza, doświadczenie)
finansowe
czas
Plan: określenie zasobów w powiązaniu z zadaniami
jakie zasoby są potrzebne do realizacji zadania?
ile jednostek danego zasobu należy przydzielić do zadania?
po jakim czasie od rozpoczęcia zadania zasób będzie potrzebny i do kiedy?
Informacje związane z zadaniem:
Nazwa (jednoznaczny identyfikator, zwykle informacyjny)
Opis (wysokiego poziomu opis przedmiotu zadania)
Zadania składowe (lista, jeśli ma odniesienie)
Produkty (opis oczekiwanych rezultatów)
Priorytet (wskazanie istotności zadania, zwykle liczba 0-1)
Model wykonania (model działań prowadzących do realizacji zadania)
Ryzyko (opis ryzyka związanego z wykonaniem zadania)
Planowana data rozpoczęcia
Oczekiwany czas trwania
Wymagane zasoby (ludzie i środki niezbędne do realizacji)
Odstępstwa
Opis powiązań pomiędzy zadaniami:
Finish-to-start (FS) - zadanie B nie może rozpocząć się przed ukończeniem zad. A
Start-to-start (SS) - zad. B nie może rozpocząć się przed rozpoczęciem zad. A
Finish-to-finish (FF) - zad. B nie może zakończyć się dopóki nie zakończy się zad. A
Start-to-finish (SF) - zad. B nie może zakończyć się dopóki nie rozpocznie się zad. A
Standardowo przyjmuje się, że zadania rozpoczynają się gdy tylko jest to możliwe.
Modele sieciowe
Podstawową techniką stosowaną przy tworzeniu harmonogramów projektu są modele sieciowe.
Najczęstsze wystąpienia:
diagramy poprzedzania,
metoda ścieżki krytycznej (CPM)
metoda PERT
diagram Gantta
PERT (Program Evaluation and Review Technique)
Odmiana diagramu, w którym każde zadanie jest opisane przez „punkt startu” i „punkt ukończenia”, połączone linią. Innymi liniami zaznaczone są zależności pomiędzy zadaniami.
Diagramy poprzedzania
Opis węzła diagramu poprzedzania obejmuje identyfikator i opis zadania, czas trwania zadania, najwcześniejsze i najpóźniejsze terminy rozpoczęcia i zakończenia zadania, rozciągłość, będącą ilością czasu pomiędzy najwcześniejszym i najpóźniejszym terminem rozpoczęcia zadania i najpóźniejszym momentem jego zakończenia oraz płynność, odpowiadającą czasowi pomiędzy najwcześniejszym i najpóźniejszym momentem rozpoczęcia zadania.
Tworzenie harmonogramu
Harmonogram projektu musi ukazywać każde zadanie z listy zadań i identyfikować wszystkie powiązania pomiędzy zadaniami.
Ścieżka krytyczna - ciąg zadań, od terminowego ukończenia których zależy czas zakończenia projektu.
Wzajemne zależności między zadaniami:
sekwencje
nakładanie się
powiązanie
ograniczenie datą
Etapy tworzenia harmonogramu: podsumowanie
analiza opisu projektu
strategia postępowania
harmonogram dostarczania produktów
lista zadań
powiązania pomiędzy zadaniami
oszacowania czasowe i zasobów
utworzenie harmonogramu
analiza ścieżki krytycznej
analiza przydziału zasobów