background image

1

Inżynieria oprogramowania

Tworzenie i śledzenie 

harmonogramów

background image

2/32

Harmonogramowanie –
podstawowe informacje

cel → pomaga w terminowej realizacji 
przedsięwzięcia

wykonanie → podział przedsięwzięcia na mniejsze 
zadania, ustalenie czasu i kolejności ich 
wykonania

praktyczna realizacja → możliwe wspomaganie 
komputerowe, np. MsProject, Primavera
Contractor, Project Manager, Planista

background image

3/32

Czynności wykonywane podczas 
tworzenia harmonogramu

podział prac procesu wytwórczego na mniejsze zadania

określenie efektów realizacji poszczególnych zadań

ułożenie zadań w określonym porządku przewidzianym do 
realizacji, zgodnie z przyjętym modelem procesu 
wytwórczego i z uwzględnieniem zależności między 
zadaniami

określenie pracochłonności zadań i przydzielenie na tej 
podstawie czasu na realizację (data rozpoczęcia i 
zakończenia)

przydzielenie do poszczególnych zadań zasobów (osoba 
odpowiedzialna, pracownicy, środowisko programistyczne, 
komponenty i inne)

background image

4/32

Przyczyny opóźnień w 
realizacji przedsięwzięcia

wymuszony i nierealny termin wykonania ustalony przez osobę spoza 
zespołu programistów

zmiany wymagań klienta, nie uwzględnione na etapie planowania w 
harmonogramie

niedoszacowanie pracochłonności przedsięwzięcia lub poszczególnych 
zadań

niedoszacowanie niezbędnych zasobów (za mało sprzętu, za mały 
zespół)

zagrożenia nie uwzględnione na etapie planowania

czynniki losowe powodujące nieprzewidziane trudności techniczne

nieprzewidziane kłopoty z pracownikami 

nieporozumienia, słaba współpraca w zespole

niedostateczny nadzór i monitorowanie procesu wytwórczego, brak 
reakcji na opóźnienia

background image

5/32

Zależność między czasem realizacji 
przedsięwzięcia a jego pracochłonnością*

zależność ma charakter nieliniowy

E = L

3

/ (P

3

∙t

4

)

E - pracochłonność w osobomiesiącach

L – liczba wierszy kodu

t - czas trwania przedsięwzięcia w miesiącach/latach

P – współczynnik wydajności, np. P=10000 dla syst. operacyjnych, 
P=28000 dla aplikacji informacyjnych, zależny od m.in. dojrzałości 
procesu wytw., metod zarządzania, umiejętności pracowników, 
poziomu języków programowania, stos. metod inż.. oprogr., 
złożoności aplikacji, środowiska programistycznego

wniosek: można uzyskać korzyści realizując 
przedsięwzięcie w dłuższym okresie ale mniejszym 
zespołem 

* L. Putnam, W. Myers: „Measures for Excellence”,Yourdon Press, 1992

background image

6/32

Podział czasu realizacji 
przedsięwzięcia

podział czasu pracy jest zwykle indywidualnie 
dostosowywany do charakterystyki przedsięwzięcia

reguła 40-20-40 (obecnie niezalecana): analizowanie i 
projektowanie oraz testowanie – po 40%, kodowanie 
20%

obecnie szacuje się następująco średni nakład pracy:

planowanie: 2-3%

analizowanie wymagań: 10-25%

projektowanie: 20-25%

kodowanie: 15-20%

testowanie, usuwanie błędów: 30-40% 

background image

7/32

Typy przedsięwzięć
informatycznych

nowy projekt wg wymagań klienta

projekt koncepcyjny – nowy pomysł na produkt, 
inne zastosowanie, nowa technologia

modyfikacja istniejącego produktu 
(funkcjonalności, interfejs, efektywność działania)

pielęgnacja produktu

reinżynieria – częściowa lub całkowita 
przebudowa odziedziczonego produktu

background image

8/32

Stopnie rygoru pracy

swobodny → podstawowe czynności wytwórcze zgodne z 
zasadami inżynierii oprogramowania, ograniczone jednak do 
minimum (ograniczenia: dokumentacja, czynności 
przekrojowe)

strukturalny → prace wg uniwersalnego schematu proc. 
wytw., stosowane procedury zapewnienia jakości, 
prowadzona dokumentacja oraz pomiary (proc. wytw. i  
produktu)

ścisły → pełny schemat proc. wytw. dla zapewnienia 
jakości, wykonywane czynności przekrojowe

szybkiego reagowania → stos. w nagłych wypadkach, 
wykonywane tylko zadania niezbędne dla utrzymania 
jakości, inne zadania (np. dokumentacja) wykonywane są
później (po oddaniu produktu użytkownikowi)

background image

9/32

Kryteria adaptacji

analizowane w celu wyznaczenia zalecanego rygoru pracy

kryteria dla przedsięwzięcia programistycznego*

wielkość przedsięwzięcia

liczba potencjalnych użytkowników

skala skutków potencjalnej awarii (krytyczność)

trwałość produktu

stabilność wymagań

łatwość komunikacji między twórcą a klientem

stopień dojrzałości stosowanej technologii

ograniczenia dotyczące efektywności produktu

różnice między systemami wbudowanymi i innymi

pracownicy

czynniki związane ze stosowaniem reinżynierii

każdemu kryterium przypisywana jest waga (1-5), gdzie 1-
wykonywane nie wszystkie czynności wytwórcze, małe wymagania 
dotyczące metod pracy i dokumentacji, 5-wykonywane wszystkie 
zadania wytwórcze, duże wymagania dot. metod pracy i dokumentacji

* R.S. Pressman: „Adaptable Process Model”,R. S. pressman & Associates 1999

background image

10/32

Obliczanie wskaźnika doboru 
zadań (1)

1

0

0

0

0

1,2

czynniki reinżynierii

1

1

1

1

0

1,1

współdziałanie z innymi syst.

1

1

1

1

1

1,0

pracownicy

1

0

1

1

1

1,2

systemy wbudowane/inne

1

0

1

1

0

0,8

ograniczenia efektywności

1

0

0

1

1

0,9

dojrzałość technologii

1

1

1

1

1

0,9

łatwość komunikacji

1

1

1

1

0

1,2

stabilność wymagań

0

0

1

1

0

0,9

trwałość

1

1

1

1

0

1,1

krytyczność

1

1

1

1

0

1,1

liczba użytkowników

1

1

1

1

0

1,2

wielkość przedsięwzięcia

reinży-

nieria

pielę-

gnacja

rozsze-

rzenie

nowy

koncep-

cja

iloczyn

mnożnik punktowy

waga

wartość

kryterium

background image

11/32

Obliczanie wskaźnika doboru 
zadań (2)

analiza kryteriów adaptacji i przypisanie im wartości z zakresu 1-5

analiza  wag przypisanych kryteriom (0.8-1.2) i ewentualna ich zmiana 
w danych warunkach realizacji przedsięwzięcia

dla każdego kryterium obliczenie iloczynu: 
wartość∙waga∙mnożnik_punktowy

obliczenie wartości średniej iloczynów

wyznaczenie stopnia rygoru wg poniższej tabeli (wspomagane 
doświadczeniem i analizą konkretnego przypadku - przedziały 
częściowo pokrywają się):

ścisły

> 2.4

strukturalny

1.0 – 3.0

swobodny

< 1.2

stopień rygoru

wskaźnik doboru zadań

background image

12/32

Sieć zadań

przedstawia graficznie zależności między zadaniami i 
podzadaniami

zadania muszą być wykonywane w określonej 
kolejności, wykonanie niektórych zadań warunkuje 
wykonanie następnych

zadania mogą być wykonywane równocześnie, gdy są
niezależne od siebie a nad przedsięwzięciem pracuje 
większa liczba osób

należy zidentyfikować zadania leżące na tzw. ścieżce 
krytycznej procesu wytwórczego

sieć zadań może stanowić dane wejściowe do 
automatycznych narzędzi generujących harmonogram

background image

13/32

Techniki planowania i 
harmonogramowania

WBS (Work Break-Down Structure)

sieciowe (PERT, CPM)

wykresy (diagramy) Gantta

background image

14/32

Planowanie metodą WBS

przedstawia działania w sposób hierarchiczny (projekt, 
podprojekt, grupa zadań, zadanie)

po określeniu najważniejszych grup zadań, dzieli się je na 
bardziej szczegółowe, aż do założonego poziomu 
szczegółowości

każde zadanie powinno być związane z konkretnym 
rezultatem (produktem), powinno mieć przypisane zasoby 
ludzkie, musi istnieć możliwość określenia czy zadanie 
zostało zrealizowane 

background image

15/32

Planowanie metodą WBS -
schemat

zadanie główne

zadanie 2

zadanie 3

zadanie 1

zadanie 1.1

zadanie 1.2

zadanie 2.1

zadanie2.2

zadanie 2.3

zadanie 3.1

zadanie 3.2

zadanie 3.2.1

zadanie 3.2.2

zadanie 2.2.1

zadanie 2.2.2

background image

16/32

Metody sieciowe

oparte są na teorii grafów

zbiór działań można przedstawić w postaci grafu 
skierowanego zadań i zależności

każde zadanie ma zdefiniowany czas realizacji, moment 
rozpoczęcia i zakończenia, przydzielone zasoby, 
zdefiniowany poprzednik i następnik

zdarzenia (działania pozorne)→ nie zużywają czasu ani 
zasobów

background image

17/32

Podstawowe metody sieciowe

CPM (Critical Path Method) → stosowana w projektach 
o zdeterminowanych czasach realizacji zadań
składowych

PERT (Programm Evaluation and Receive Technique) 
→ stosowana w projektach o stochastycznych czasach 
realizacji zadań składowych (nie można dokładnie 
określić czasu realizacji zadania, wykorzystywane są
metody rachunku prawdopodobieństwa: wartość
oczekiwana, wariancja)

background image

18/32

Metody sieciowe –
reprezentacja zadania

NWP

NPP

NWK

NPK

4.2

testowanie

5 d

czas realizacji

nazwa zadania

numer zadania

background image

19/32

Czasy rozpoczęcia/zakończenia 
zadania

NWP → najwcześniejszy czas rozpoczęcia 
zadania

NPP → najpóźniejszy czas rozpoczęcia 
zadania

NWK → najwcześniejszy czas zakończenia 
zadania

NPK → najpóźniejszy czas zakończenia 
zadania

background image

20/32

Relacje między zadaniami

ZR (FS) → zadanie następne może się
rozpocząć najwcześniej po zakończeniu 
zadania poprzedniego

ZZ (FF) → zadanie następne może się
zakończyć się najwcześniej po 
zakończeniu zadania poprzedniego

RR (SS) → zadanie następne może się
rozpocząć najwcześniej po rozpoczęciu 
zadania poprzedniego

RZ (SF) → zadanie następne może 
zakończyć się najwcześniej po 
rozpoczęciu zadania poprzedniego

A

B

A

B

A

B

A

B

background image

21/32

Ścieżka krytyczna

jeżeli zadanie ma NWP=NPP oraz NWK=NPK, to jest 
zadaniem krytycznym

ciąg zadań krytycznych tworzy ścieżkę krytyczną

ścieżka krytyczna określa maksymalny czas wykonania 
projektu

każde opóźnienie wykonania zadania krytycznego 
powoduje opóźnienie realizacji całego projektu

przyśpieszenie wykonania zadania krytycznego może 
spowodować przyśpieszenie realizacji całego projektu

background image

22/32

Ścieżka krytyczna - przykład

zadanie 

wykonane

zadanie 

wykonane 

częściowo

background image

23/32

Zalety i wady metod sieciowych

zalety: 

pokazują logiczne zależności między 
poszczególnymi zadaniami

pozwalają na określanie ścieżek krytycznych i ryzyka

wady: 

nienajlepsza czytelność

trudności podczas nanoszenia poprawek

background image

24/32

Wykres (diagram) Gantta

graficzne przedstawienie kolejności działań, 
zależności między nimi,  terminów rozpoczęcia i 
zakończenia poszczególnych zadań, czasu ich 
wykonania, wykorzystywanych zasobów

jest jedną z najpopularniejszych metod 
harmonogramowania

umożliwia tworzenie różnego typu raportów, 
wyznaczenie ścieżki krytycznej i wyświetlenie 
projektu w widoku sieciowym

background image

25/32

Procedura tworzenia wykresu 
Gantta

określenie celu projektu

podział projektu na zadania

określenie kolejności wykonywania zadań

określenie czasów trwania zadań oraz terminów 
rozpoczęcia/zakończenia

określenie zależności między zadaniami

przydzielenie zasobów dla poszczególnych 
zadań

background image

26/32

Wykres Gantta - przykład

background image

27/32

Wykres Gantta – tryb śledzenia

background image

28/32

Śledzenie harmonogramu-
możliwości

spotkania informacyjne zespołu, opisywanie postępów 
prac i ewentualnych problemów

analiza wyników przeglądów technicznych 
(wyszukiwanie błędów, sprawdzenie zgodności z 
wymaganiami i inne działania mające na celu 
zapewnienie jakości oprogramowania)

porównywanie planowanego i rzeczywistego czasu 
rozpoczęcia/zakończenia poszczególnych zadań

ilościowa analiza postępu prac wytwórczych w oparciu 
o pewne wskaźniki

pomaga w zarządzaniu zasobami i skutecznej reakcji 
na zagrożenia, pomaga w zarządzaniu pracownikami

background image

29/32

Analiza wartości uzyskanej

analiza wartości uzyskanej → earned value analysis (EVA)

pomaga w obiektywnej (ilościowej) ocenie postępu prac w 
procesie wytwórczym i ewentualny wdrożeniu działań
naprawczych celem dotrzymania czasu realizacji 
przedsięwzięcia 

obliczenie wartości uzyskanej:

dla każdego zadania w harmonogramie ustala się pracochłonność
w osobomiesiącach lub osobodniach – BCWS

i

w analizowanym momencie wykonywania przedsięwzięcia oblicza 
się planowaną pracochłonność zaplanowanych zadań BCWS (dla 
zadań które wg harmonogramu powinny się już zakończyć)

obliczenie całkowitej planowanej pracochłonności (dla wszystkich 
zadań):  BAC=Σ(BCWS

k

)

obliczenie planowanej pracochłonności wykonanych zadań BCWP

background image

30/32

Wskaźniki realizacji 
przedsięwzięcia

I - na podstawie BCWS, BCWP, BAC:

wskaźnik wykonania harmonogramu SPI=BCWP/BCWS
wskaźnik ten opisuje tzw. efektywność wykorzystania zaplanowanego 
czasu pracy, wartość bliska 1 oznacza postęp prac zgodny z 
harmonogramem

odchylenie (bezwzględne) od harmonogramu SV=BCWP-BCWS

zaplanowany postęp prac = BCWS/BAC, pokazuje jaka część prac 
powinna być już zrealizowana

rzeczywisty postęp prac = BCWP/BAC, pokazuje jaką część prac 
faktycznie zrealizowano

II - na podstawie rzeczywistej pracochłonności wykonanych zadań ACWP

wskaźnik wykonania budżetu CPI=BCWP/ACWP (bliskie 1 oznacza 
koszty pracy nieprzekraczające zaplanowanego budżetu)

odchylenie od budżetu CV=BCWP-ACWP (miara oszczędności)

background image

31/32

Plan przedsięwzięcia

zakres przedsięwzięcia

dostępne zasoby

potencjalne zagrożenia przedsięwzięcia, 
metody zapobiegania i reakcji gdy wystąpią

kosztorys przedsięwzięcia

harmonogram

podejście do procesu wytwórczego

metody zapewnienia jakości i zarządzania 
zmianami

background image

32

Dziękuję za uwagę

źródło: „Praktyczne podejście do inżynierii oprogramowania”, R.S. Pressman