1
!
"
#%$
&'
(*)*+-,
.
/102*3*4
576*89051/*:;4
<
=?>A@
B
CED
F*G
H
IKJ-LNM%OQPSRUT1VWXIET*O
YEZ[-\^]
_
`
a
b!c
dfe^gih^j
k-lnmpo%q
rs!tunvwxt
y
z|{%}~n
n ^Ep!
-
%
p-|^
!
-
^^n
!
¡
¢
¢
£n¤-£n¥n¦n¤9§A¨
%©¨
©pª
£n«
¬f
¦%®¨
p«
¢
¯K°®p¤9±|
²
³
´
µ|¶n·
¸
¹
·
º»f¼f¹
»|½
¹
º^¾»
¿º^¶n·
ºÀ
Á;µ|Â-ÃfÄ9Å
Æ
Ç
È
É
Ê
Ë
ÌÍ|Î
ÏÐÑÒ
Ó
ÔÕKÖ×Ø
Ù
ÚÛÜKÝÞßxà
á
â7ãiä
á
åæ
çè
Zatrudnienie wysokiej klasy specjalistów oraz stosowanie zaawansowanych
narz
é
dzi wspomagaj
ê
cych nie gwarantuje jeszcze sukcesu projektu; niezb
ë
dne
jest w
ì
a
í
ciwe zarz
î
dzanie przedsi
ï
wzi
ï
ciem
Podstawowe zadania kierownictwa przedsi
ï
wzi
ï
cia programistycznego:
• opracowanie propozycji dotycz
ð
cych sposobu prowadzenia przedsi
ñ
wzi
ñ
cia,
• kosztorysowanie przedsi
ñ
wzi
ñ
cia i jego wycena
• planowanie i harmonogramowanie przedsi
ñ
wzi
ñ
cia,
• monitorowanie i kontrolowanie realizacji przedsi
ñ
wzi
ñ
cia,
• dobór i ocena personelu,
• opracowanie i prezentowanie sprawozda
ò
dla kierownictwa wy
ó
szego szczebla.
Sposoby zarz
ô
dzania przedsi
õ
wzi
õ
ciem programistycznym w wielu aspektach nie
ró
ö
ni
÷
si
ø
od zarz
÷
dzania innymi przedsi
ø
wzi
ø
ciami, ale musz
÷
bra
ù
pod uwag
ú
specyfik
ú
procesu budowy oprogramowania (np. nieprzejrzysto
û
ù
procesu)
ü
ý
þ
ÿ|ý
^ý
;ÿ
"!#$&%'!$&#)(+*'(,#-*
.
/,0'1,243
1653
78
9
:&7-;,<=7)1=8+3
>@?BADCE0F2
9
Kierownik
programu
Dyrektor d/s
oprogramowania
Kierownik
programu
Kierownik
d/s jako
G
ci
Kierownik
przedsi
H
wzi
H
cia
Koordynator
przedsi
H
wzi
H
cia
ze strony klienta
Szef zespo
I
u
programistycznego
Szef zespo
I
u
programistycznego
Szef zespo
I
u
programistycznego
Nie powinien
podlega
J
kierownikom
programów i
przedsi
K
wzi
KJ
Kierownik
przedsi
K
wzi
K
cia
Koordynator
przedsi
K
wzi
K
cia
ze strony klienta
L
M
N
O MP
Q
R
P
STUR
T V
R
SWXT
YSMP
SXZ
[ O \]^`_
a
b
S
c
d
e
fg h
ikj&l4mEnoqp6r&sut=vxw&y-z"n{jEo
|
}@~D}{""
= ,)
=
"
&=
=
• Kierownik przedsi
wzi
cia
• Analityk
- osoba bezpo
rednio kontaktuj
ca si
z klientem, której celem jest okre
lenie wymaga
i budowa modelu systemu
• Projektant
- osoba odpowiedzialna za realizacj
oprogramowania; mo
e posiada
wyspecjalizowane funkcje:
– projektant interfejsu u
ytkownika
– projektant bazy danych
• Programista (implementacja)
• Tester (testowanie)
• Twórca dokumentacji u
ytkownika
• Ekspert metodyczny
- osoba szczególnie
dobrze znaj
ca stosowan
metodyk
• Ekspert techniczny
- osoba szczególnie dobrze
znaj
ca sprz
t i narz
dzia
W mniejszych przedsi
wzi
ciach jedna
osoba mo
e pe
ni
wiele funkcji,
cz
sto rozwa
ane s
nast
puj
ce
modele:
•
analityk/projektant + programista:
funkcje analizy i projektu w jednych
r
kach; zak
ada wysoki poziom
projektanta, natomiast nie wymaga
zbyt wiele od programistów (funkcje
programisty do
¡¢
niskiego poziomu);
w warunkach polskich model nie zdaje
raczej egzaminu
•
analityk + projektant/programista:
model bardziej realistyczny; zak
£
ada
znacznie wy
¤
szy poziom
przygotowania programisty
¥
¦
§
¨ ¦©
ª
«
©
¬®«
¯
«
¬°
±¬¦©
¬ ²
³ ¨´µ¶·
¸
¹
¬
º
»
¼
½¾¿
À=Á
Â4Ã-ÄÅÇÆ=Á
ÈÊÉ,Ã)ÄFËÌÂ&ÈEÍÎ
Zadaniem szefa nie jest wykonywanie pracy za podleg
Ï
ych mu
pracowników, lecz dbanie aby wykonywali oni swoj
Ð
prac
Ñ
; zadaniem
szefa nie jest zmuszanie ludzi do pracy, ale umo
Ò
liwienie im tego
Po
ÓÔ
dane cechy kierownika:
•
Zdolno
Õ
Ö
do przewidywania - umiej
×
tno
ØÙ
dostrzegania drobnych spraw, które
mog
Ú
by
Ù
zal
ÚÛ
kiem powa
Û
niejszych problemów, przewidywania skutków,
podejmowanie zawczasu akcji naprawczych
•
Umiej
Ü
tno
Ý-Þ
motywowania - zdolno
ß`à
do pobudzania poczucia przynale
á
no
ß
ci
do grupy, zainteresowania wykonywan
â
prac
â
, uto
á
samiania si
ã
z projektem,
atmosfery wspó
ä
pracy w zespole (przywództwo i budowanie zespo
ä
u)
•
Zdolno
ÝÞ
do przystosowania si
Ü
do zmieniaj
å
cej si
æ
sytuacji - umiej
ç
tno
èé
podj
ç
cia niezb
ç
dnych dzia
ê
a
ë
maj
ì
cych na celu przystosowanie zespo
í
u i jego
metod pracy do zmienionych warunków
î
ï
ð
ñ ïò
ó
ô
ò
õö÷ô
ö ø
ô
õùXö
úõïò
õXû
ü ñ ýþÿ
õ
! "
$#% '&()"
*
+
,- .
•
Zdolno
/10
do przekonania otoczenia do w
2
asnych mo
3
liwo
4
ci i warto
4
ci -
kierownik powinien wzbudza
5
zaufanie; sukces zespo
6
u zale
7
y w du
7
ej mierze od
cech przywódczych szefa i powa
7
ania i zaufania jakim si
8
cieszy w
9
ród cz
6
onków
grupy
•
Rozpoznawanie i rozwijanie potencja
:
u swoich wspó
:
pracowników -
naturalnym zjawiskiem jest wymiana personelu (np. dobrze wyszkoleni i
kompetentni pracownicy awansuj
;
lub zmieniaj
;
prac
8
); powstaje potrzeba
wprowadzania do zespo
6
u nowych ludzi, w
6
a
9
ciwego ich szkolenia, pomocy w
rozwijaniu ich potencja
6
u
•
Komunikatywno
4=<
-
6
atwo
9
5
komunikownia si
8
z szerokim wachlarzem ludzi -
podw
6
adni, kierownictwo, klienci, dostawcy, ...
•
Terminowe podejmowanie decyzji dostosowanych do bie
3>
cej sytuacji i
potrzeb - kierownik powinien precyzyjnie okre
9
li
5
co ma by
5
zrobione i w jakim
terminie; wi
;
7
e si
8
to cz
8
sto z podejmowaniem decyzji w sytuacji niepe
6
nej
wiedzy.
2
?
@
A
B@1C
D
E
C
FHGJIJE
GK
E
FMLNG
OPFM@1C
FNQ
RNBJS1TMUWV
X
Y
F
Z
[
\
] ^`_
acb%de$f)g
hiejNkle
hm'nop
q
r
Struktura sieciowa - ka
s
dy komunikuje si
t
i wspó
u
pracuje z pozosta
u
ymi
(nie powinna by
v
zbyt liczna); zespo
u
y o podobnym do
w
wiadczeniu i
stopniu zaawansowania; zalety:
• dzi
t
ki
w
cis
u
ej wspó
u
pracy cz
u
onkowie zespo
u
u wzajemnie kontroluj
x
swoj
x
prac
t
; szybko osi
x
gane s
x
standardy jako
w
ci
• umo
s
liwia realizacj
t
idei wspólnego programowania
• poniewa
s
praca cz
u
onków zespo
u
u jest znana dla innych cz
u
onków,
u
atwo mog
x
oni przej
x`v
obowi
x
zki pracownika, który opu
w
ci
u
zespó
u
Struktura gwia
y
dzista - szef zespo
z
u jest jedyn
{
osob
{
|
ci
|
le
wspó
z
pracuj
{
c
{
z pozosta
z
ymi osobami; przydziela zadania i kontroluje
efekty; komunikacja pomi
}
dzy cz
z
onkami zespo
z
u poprzez szefa; jest
przydatna wtedy, gdy w sk
z
ad zespo
z
u wchodzi wielu
niedo
|
wiadczonych pracowników; wielko
|~
zespo
z
u mo
e by
~
znacznie
wi
}
ksza ni
w strukturze sieciowej (ogranicza j
{
jedynie zdolno
|~
szefa
do równoczesnego kierowania du
{
grup
{
); najpowa
niejsz
{
wad
{
jest
trudno
|~
zast
{
pienia szefa w momencie jego odej
|
cia
1
HJJ
M
PM1
NWJ
¡ ¢£¤ H¢¡=¥§¦¨¡%©ª¨«
¬iª¥¤®H
Zespó
¯
programisty wiod
°
cego:
• programista wiod
±
cy
(wybitne kwalifikacje):
– wymy
²
la koncepcj
³
i specyfikuje zadania
– sam realizuje najwa
´
niejsze zadania
– przydziela zadania puli specjalistów
• zast
µ
pca (dobrze wykwalifikowana osoba)
– na bie
´
¶
co, biernie uczestniczy w pracy
szefa (w ka
´
dej chwili mo
´
e go zast
¶
pi
·
)
– mo
´
e przygotowywa
·
testy
• bibliotekarz/sekretarz
- odpowiada za
dokumentacj
³
i komunikacj
³
w zespole
Testerzy
Zespó
¸
internetowy
Zespó
¸
baz danych
Analitycy
Zespó
¹
kompetencyjny
Projekt
P1
P2
P3
2
1.5
3
1
0.5
1
-
0.5
0.5
3
2
1
Programista
wiod
º
cy
Zast
»
pca Bibliotekarz
/sekretarz
Zespó
¼
programisty wiod
½
cego
Pula specjalistów
Struktura macierzowa
• specjali
¾
ci pogrupowani w zespo
¿
y kom-
petencyjne i przydzielani do wykonania
konkretnych zada
À
w ramach projektów
• ekonomiczne wykorzystanie zasobów
ludzkich
• podstawowa wada: dwupodleg
¿
o
¾Á
(szef
zespo
¿
u i szef projektu)
Â
Ã
Ä
ÅÃ1Æ
Ç
È
Æ
ÉHÊJËJÈ
ÊÌ
È
ÉMÍNÊ
ÎPÉMÃ1Æ
ÉNÏ
ÐNÅJÑ1ÒMÓWÔ
Õ
Ö
É
×
Ø
Ù
Ú Û`Ü
ÝÞ
ßà
áâ$ãäæåäåçè
é
ã
ß
è$ã¨é
äêlâ
Þ¨ë$êlÞ'ì)ê%â¨í(Þ'îïâã¨é
â
•
Umiej
ð
tno
ñ
ò
pracy w stresie
- w procesie budowy i konserwacji
oprogramowania cz
ó
sto zdarzaj
ô
si
ó
okresy wymagaj
ô
ce szybkiego wykonania
z
õ
o
ö
onych zada
÷
; dla wi
ó
kszo
ø
ci osób niewielki stres dzia
õ
a mobilizuj
ô
co, ale po
przekroczeniu pewnego progu nast
ó
puje spadek mo
ö
liwo
ø
ci danej osoby (próg
ten jest bardzo ró
ö
ny dla ró
ö
nych osób); nale
ö
y pami
ó
ta
ù
,
ö
e w stresie nie
pracuje si
ó
lepiej a jedynie szybciej.
•
Zdolno
ú
ci adaptacyjne
- informatyka jest jedn
ô
z najszybciej zmieniaj
ô
cych
si
ó
dziedzin; ocenia si
ó
,
ö
e 7-9 miesi
ó
cy przynosi w informatyce zmiany, które w
innych bardziej tradycyjnych dziedzinach zajmuj
ô
5-7 lat; narzuca to konieczno
øWù
sta
õ
ego dokszta
õ
cania si
ó
(poznawanie nowych narz
ó
dzi, sprz
ó
tu,
oprogramowania, technologii, metod, sposobów pracy), gdy
ö
stosunkowo szybko
mo
ö
na „wypa
ø`ù
z gry o najwy
ö
sze stawki”(u
ø
pienie - zajmowanie si
ó
jednym
problemem w jednym
ø
rodowisku przez lata mo
ö
e mie
ù
nieprzyjemne
konsekwencje); z drugiej strony wiele osób nie wytrzymuje zawrotnego tempa
(tzw. wypalanie si
ó
osób)
û
ü
ý
þü1ÿ
ÿ
ü1ÿ
þ
!#"%$'&")(+*
,.-/*
,
0.132.46587:9<;>=:?%@A2B1DC
?
Czynniki psychologiczne maj
E
zasadniczy wp
F
yw na efektywno
GH
pracy zespo
F
u.
Wyró
I
nia si
J
nast
J
puj
E
ce typy osób:
•
Zorientowani na zadanie (ang. task-oriented)
- osoby samowystarczalne,
zdolne, zamkni
K
te, agresywne, lubi
L
ce wspó
M
zawodnictwo, niezale
N
ne; s
L
zwykle
efektywne, o ile pracuj
L
w pojedynk
K
, natomiast zespó
M
z
M
o
N
ony tylko z takich osób
mo
N
e by
O
jednak nieefektywny (zbyt wiele indywidualno
P
ci - rywalizacja); je
P
li nie s
L
doceniani mog
L
przeorientowa
O
si
K
na siebie
•
Zorientowani na siebie (ang. self-oriented)
- osoby niezgodne, dogmatyczne,
agresywne, zamkni
K
te, lubi
L
ce wspó
M
zawodnictwo, zazdrosne; mog
L
by
O
efektywne w
zespole pod warunkiem odpowiedniego motywowania przez kierownictwo
•
Zorientowani na interakcj
Q
(ang. interaction-oriented)
- osoby nieagresywne, o
niewielkiej potrzebie autonomii i indywidualnych osi
L
gni
K
O
, pomocne, przyjazne;
zespo
M
y z
M
o
N
one z tego typu osób pracuj
L
najefektywniej; szczególnie potrzebni we
wst
K
pnych fazach projektu podczas kontaktów z klientami
R
S
T
USWV
X
Y
V
Z[\Y
[]
Y
Z ^_[
` Z SWV
Z_a
b_UcWd ef
g
h
Z
i
j
kk
lnmo
p%qsrut/vBtDwyx
z|{.q6zB}~
• Zamiast du
ej hali („ameryka
skie biuro”), lepsze wyniki daje umieszczenia 2-3
stanowisk pracy w wielu mniejszych pomieszczeniach
• Umo
liwienie personalizacji stanowiska pracy
• Zdrowe stanowisko pracy (prawid
owe o
wietlenie - okna, ...)
• Pokój zebra
dla organizowania formalnych spotka
pracowników; zakaz
dyskusji w pokojach pracy
• Miejsce dla spo
ywania posi
ków, przerw relaksuj
cych w pracy, spotka
nieformalnych (np. omówienie spraw przy kawie)
• Poczucie pracy na nowoczesnym sprz
cie (wydajno
i ch
ludzi do pracy
gwa
townie spada, je
eli odczuwaj
oni,
e pracuj
na przestarza
ym sprz
cie -
nawet wtedy, gdy wymiana sprz
tu jest merytorycznie nieuzasadniona)
• Komfort psychiczny, w
a
ciwa atmosfera w pracy, eliminacja napi
i zadra
nie
,
nie dopuszczanie do rozmycia odpowiedzialno
ci, sprawiedliwa ocena wyników
pracy poszczególnych cz
onków zespo
u, równomierny rozk
ad zada
.
W
W
_
¡
¢#£.¤ ¥§¦.¨%¦u©/¤s£ª¥§¦B«¬£.¨/
®|¯u¤s°:®8±ª²³
´
«µ°)
´
¶
Uk
·
adanie planu realizacji przedsi
¸
wzi
¸
cia polega na:
•
ustaleniu kalendarza prac:
– daty rozpocz
¹
cia przedsi
¹
wzi
¹
cia
– dni roboczych i wolnych w przewidywanym okresie realizacji przedsi
¹
wzi
¹
cia
– czasu pracy w poszczególnych dniach
• podziale przedsi
º
wzi
º
cia na poszczególne zadania,
• okre
»
lenie parametrów zada
¼
,
• okre
»
lenie zasobów niezb
º
dnych do realizacji poszczególnych zada
¼
,
• ustaleniu dost
º
pno
»
ci zasobów,
• ustaleniu kolejno
»
ci i czasów wykonania poszczególnych zada
¼
.
Przedsi
¸
wzi
¸
cie powinno by
½
podzielone na stosunkowo ma
·
e zadania (realizacja
do kilku dni), których parametry mo
¾
na
·
atwo okre
¿
li
½
; harmonogramowanie
mo
¾
na wykonywa
½
z ró
¾
nym stopniem dok
·
adno
¿
ci (najbli
¾
sze zadania
szczegó
·
owo; pó
À
niejsze bardziej ogólnie)
3
Á
Â
Ã
ÄÂWÅ
Æ
Ç
Å
ÈÉÊÇ
ÉË
Ç
È Ì_É
Í È ÂWÅ
È_Î
Ï_ÄÐWÑ ÒÓ
Ô
Õ
È
Ö
×
ØÙ
ÚnÙÛ
Ü#ÝuÞ ß§àªáBàuâ/ÞsÝ/ߧà8ãäÝuá/å
æ
ç
è6é
Po ustaleniu zada
ê
konieczne jest okre
ë
lenie parametrów czasowych:
• czasu wykonania,
• najwcze
ì
niejszy mo
í
liwy termin rozpocz
î
cia (np. niezb
î
dne s
ï
pewne dane, które mog
ï
by
ð
dostarczone dopiero ...),
• po
íï
dany czas zako
ñ
czenia,
oraz innych ogranicze
ê
kolejno
ë
ci wykonywania prac (np. aby rozpocz
òWó
nowe
zadanie niezb
ô
dne jest zako
ê
czenie pewnych innych zada
ê
); mo
õ
na
wykorzysta
ó
do tego diagramy typu PERT
Pewne zadania mog
ò
zosta
ó
opó
ö
nione bez wp
÷
ywu na termin zako
ê
czenia ca
÷
ego
przedsi
ô
wzi
ô
cia, inne natomiast tzw. zadania krytyczne nie mog
ò
zosta
ó
opó
ö
nione; ich ci
ò
g definiuj
ò
cy termin zako
ê
czenia nazywany jest
ë
cie
õ
k
ò
krytyczn
ò
Uk
÷
adaj
ò
c harmonogram nale
õ
y bra
ó
pod uwag
ô
dost
ô
pno
ë
ó
zasobów niezb
ô
dnych
do realizacji poszczególnych zada
ê
(g
÷
ównie zasoby ludzkie, ale mo
õ
e by
ó
równie
õ
sprz
ô
t i oprogramowanie)
ø
ù
ú
ûùWü
ý
þ
ü
ÿ
þ
þ
ÿ
ÿ ùWü
ÿ
û
ÿ
!"#%$'&(
)
Monitorowanie polega na
*
ledzeniu przebiegu realizacji przedsi
+
wzi
+
cia oraz
reagowaniu na pojawiaj
,
ce si
+
problemy; nast
+
puj
,
ce czynno
*
ci:
• obserwacja rzeczywistych terminów rozpocz
-
cia i zako
.
czenia zada
.
oraz
porównywanie ich z zaplanowanymi,
• identyfikacja przyczyn niezgodno
/
ci z planem,
• modyfikacja harmonogramu, je
0
eli ró
0
nice pomi
-
dzy harmonogramem a
rzeczywistym przebiegiem realizacji s
1
zbyt du
0
e,
• obserwacja wykorzystania zasobów oraz rozstrzyganie konfliktów zasobowych,
• przesuwanie zasobów pomi
-
dzy zadaniami oraz przedsi
-
wzi
-
ciami.
Szczególn
,
uwag
+
nale
2
y zwraca
3
na zadania krytyczne i na zadania ze
stosunkowo niewielkim luzem
4
5
6
785:9
;
<
9
=>?<
>8@
<
=BAC>
DE=B5:9
=CF
GC7H:IBJ K
L
M
=
N
O
PQ
RTSU
V%WYXZ%X[]\
^Y_YZa`
bacYda`(WYe#f
g
_h\
b
i
bkj
ZaX
l
mon
pEn
qrts
• O ile celem in
u
ynierii oprogramowania jest tworzenie dobrego oprogramowania,
o tyle celem firmy programistycznej jest po prostu zarabianie pieni
v
dzy
• Jako
wx
produktu jest tylko jednym z czynników wp
y
ywaj
z
cych na wynik
ekonomiczny firmy; inne istotne aspekty:
– reklama i promocja produktu,
– renoma i zaufanie do producenta,
– rodzaj i zakres gwarancji oraz innych us
{
ug dla klientów,
– przyzwyczajenia klientów,
– sposób wyceny rozmaitych wersji produktu,
– sposób rozwoju produktu, polityka uaktualnie
|
,
– efektywno
}8~
sposóbu pozyskiwania klientów lub dystrybucji produktu.
• Czynniki te pozwalaj
z
redukowa
x
wp
y
yw ni
u
szej jako
w
ci produktów danej firmy;
wydaje si
v
jednak,
u
e wiele firm zwraca zbyt wielk
z
uwag
v
na dzia
y
alno
wx
marketingow
z
zaniedbuj
z
c kwestie podstawowe
8:
8
B
EB:
C8
((
¡n(r]n
¢£q s
¤¥so(¢Y¦¨§%
l
m©n
Wydajno
}~
Warto
}~
Koszt
Jako
}~
Ilo
}8~
Personel
Zasoby
Z
{
o
ª
ono
}~
Niezawodno
}~
Defekty
Wielko
}~
Funkcjonalno
}~
Czas
Pieni
«
dze
Sprz
¬
t
Oprogramowanie
Ograniczenia
}
rodowiskowe
Trudno
}~
problemu
Czynniki
wp
{
ywaj
«
ce
na ogóln
«
wydajno
}~
Myl
z
ce, wr
v
cz niebezpieczne jest zast
v
powanie wielu miar
jedn
z
miar
z
, np. d
y
ugo
w
ci
z
wyprodukowanego kodu
8:
8
BC
EB:
C
C:B
T
®°¯a±³²£´µ
¶oµ³·¹¸¹ºa±Y»%¼½º%´µ
º¾´aº£¶
¿
ºaÀ(Á%¼ÃÂ(Äźo±¹Æ
• Modele algorytmiczne
- opis przedsi
Ç
wzi
Ç
cia za pomoc
È
charakteryzuj
È
cych go
atrybutów (liczbowych) i na tej bazie wyliczenie (np. prosta formu
É
a matematyczna)
nak
É
adów
• Ocena przez ekspertów
- bazuj
È
na w
É
asnym do
Ê
wiadczeniu zdobytym przy
realizacji innych projektów
• Ocena przez analogi
Ë
- przy za
É
o
Ì
eniu gromadzenia informacji o uprzednio
wykonanych projektach; wyszukuje si
Ç
podobne systemy poprzednio zrealizowane i
wykorzystuje nak
É
ady poniesione na ich stworzenie
• Wycena dla wygranej (ang. pricing to win)
- na podstawie oceny mo
Ì
liwo
Ê
ci
klienta oraz przewidywanych dzia
É
a
Í
konkurencji; opiera si
Ç
na prawie Parkinsona -
przedsi
Ç
wzi
Ç
cia s
È
wykonywane przy za
É
o
Ì
onych kosztach (jakie by one nie by
É
y)
• Szacowanie wst
Ë
puj
Î
ce
- dzieli si
Ç
przedsi
Ç
wzi
Ç
cie na mniejsze zadania, które
É
atwiej oszacowa
Ï
; koszt ca
É
o
Ê
ci jest ich sum
È
(ew. z narzutem na integracj
Ç
)
Ð
Ñ
Ò
Ó8Ñ:Ô
Õ
Ö
Ô
×ØÙÖ
Ø8Ú
Ö
×BÛØ
ÜE×BÑ:Ô
×Ý
ÞCÓ8ß àáâ
ã
ä
×
å
æ
çá
èéê
ë»(À(¯ì
¯íºì
kÄïÆ©ðEñ]µ
±Y¸Y´a¯ò·¹¸¹ºa±Y»o¼óº(´µ
º¾´oº£¶
¿
ºaÀ(Á%¼
• Wi
ô
kszo
õö
modeli przyjmuje,
÷
e jednym z istotnych atrybutów jest rozmiar
systemu, mierzony np. liczb
ø
instrukcji (linii) kodu (ang. Lines Of Code - LOC),
KLOC (ang. Kilo-LOC), KDSI (ang. Kilo (thousand) of Delivered Source code
Instructions)
• Specjalizacja metryk w kierunku konkretnej klasy oprogramowania powinna
dawa
ö
lepsze i bardziej adekwatne oceny ni
÷
metryki uniwersalne
• Najlepiej jest stosowa
ö
zestawy metryk, co pozwala zmniejszy
ö
b
ù
ô
dy pomiaru
• Metryki powinny by
ö
wykorzystywane jako metody wspomagania ekspertów
(stosowane formalistycznie mog
ø
by
ö
gro
ú
ne)
• Pomimo pochodzenia empirycznego, metryki skutecznie pomagaj
ø
w szybkiej i
mniej subiektywnej ocenie oprogramowania
•
û
adna metoda przewidywania kosztów nie jest doskona
ü
a i jest oparta na
szeregu arbitralnych za
ü
o
ý
e
þ
; niemniej dla celów planowania tego rodzaju
metody staj
ÿ
si konieczno
ci
ÿ
4
!"
#%$'&
(*),+%-/./02143*5/67+ 8:9<;=+>
?,)21@3A67+A(B3C./)ED
F
GHIG H=JKHMLONQP
Powsta
R
a w oparciu o dane z rzeczywistych projektów, realizowanych
tradycyjnie (np. bez narz
S
dzi CASE) w oparciu o model kaskadowy, autor
Boehm, 1981 r.
Wymaga oszacowania liczby instrukcji, z których b
S
dzie sk
R
ada
R
si
S
system
(co mo
T
e by
U
tak samo trudne jak oszacowanie nak
R
adów)
Wyró
T
nia si
S
trzy klasy przedsi
S
wzi
SVU
:
•
W
atwe (ang. organic)
- wykonywane przez stosunkowo ma
X
e zespo
X
y, z
X
o
Y
one z osób o
podobnych wysokich kwalifikacjach; dziedzina oraz wykorzystywane metody i narz
Z
dzia
s
[
dobrze znane
•
Po
\
rednie (ang. semi-detached)
- cz
X
onkowie zespo
X
u ró
Y
ni
[
si
Z
stopniem
zaawansowania; pewne aspekty dziedziny problemu lub wykorzystywane narz
Z
dzia nie
s
[
dobrze znane
•
Trudne (osadzone, ang. embedded)
- przedsi
Z
wzi
Z
cia realizuj
[
ce systemy o bardzo
z
X
o
Y
onych wymaganiach; dziedzina problemu, stosowane narz
Z
dzia i metody mog
[
by
]
w
du
Y
ej mierze nieznane; cz
X
onkowie zespo
X
u nie maj
[
do
^
wiadczenia w realizacji
podobnych zada
_
`
a
b
cad
e
f
d
g hif
hj
f
gklh
mgad
gln
ocpqr's
t
u
g
v
w
x'y
z:{|x
}~/% ~B~//4A@B
KDSI
Nak
ad
atwe
trudne
po
rednie
• Podstawowy wzór dla oszacowania
nak
adów w osobomiesi
cach
(zale
no
wyk
adnicza):
¡/¢¤£¦¥¨§ª©
«
• K oznacza rozmiar kodu
¬
ród
owego
mierzony w tysi
®
cach linii (KDSI); nie
obejmuje kodu, który nie zosta
wykorzystany w systemie
• Warto
¯
ci sta
ych A i b zale
°
®
od klasy,
do której zaliczono przedsi
±
wzi
±
cie
• Dla niewielkich przedsi
±
wzi
±'²
s
®
to
zale
°
no
¯
ci bliskie liniowym; wzrost jest
szczególnie szybki dla przedsi
±
wzi
±²
trudnych (du
°
y rozmiar kodu)
Przedsi
³
wzi
³
cie
´
atwe:
µ·¶¹¸
º
»·¼¾½
¿
¿·À
À
Á
Á
ÂÄÃ
ÅOÆ
Ç
ÅOÆ
Ç È
È
Przedsi
É
wzi
É
cie po
Ê
rednie:
˷̹Í
Î
ϷоÑ
Ò
Ò·Ó
Ó
Ô
Ô
ÕÄÖ
×OØ
×
×OØ
×QÙ
Ù
Przedsi
Ú
wzi
Ú
cie trudne:
۷ܹÝ
Þ
Ü·ß¾à
á
á·â
â
ã
ã
äÄå
æOç
è
æOç
è é
é
ê
ë
ì
íîï
ð
ñ
ï
ò óôñ
óõ
ñ
òöó
÷òîï
òø
ùíúûüý
þ
ÿ
• Znaj
c nak
!
ad mo
"
na oszacowa
#
czas
(w miesi
$
cach) realizacji, z czego
wynika przybli
%
ona wielko
&('
zespo
)
u
• Z obserwacji wiadomo,
*
e dla ka
*
dego
przedsi
+
wzi
+
cia istnieje optymalna
liczba cz
,
onków zespo
,
u wykonawców
• Zwi
+
kszenie tej liczby mo
-
e nawet
wyd
,
u
-
y
.
czas realizacji
Przedsi
+
wzi
+
cie
,
atwe:
/10(2436587:9
;=<6>?2?@
A
BDC
EGF
HI
Przedsi
J
wzi
J
cie po
K
rednie:
L1M(N4O6P8Q:R
S=T6U?N?V
W
NDX
YGZ
[\
Przedsi
]
wzi
]
cie trudne:
^1_(`4a6b8c:d
e=f6g?`?h
i
`Dj
kGl
mn
Otrzymane w ten sposób oszacowania powinny
by
o
skorygowane przy pomocy tzw.
czynników modyfikuj
p
cych
Atrybuty przedsi
q
wzi
q
cia brane pod uwag
q
:
• wymagania wobec niezawodno
r
ci systemu
• rozmiar bazy danych w stosunku do
rozmiaru kodu
• z
s
o
t
ono
r(o
systemu (z
s
o
t
ono
ruo
struktur
danych i algorytmów, komunikacja z innymi
systemami, stosowanie obl. równoleg
s
ych)
• wymagania co do wydajno
r
ci systemu
• ograniczenia pami
q
ci
• zmienno
r(o
sprz
q
tu i oprogramowania
systemowego tworz
p
cego
r
rodowisko pracy
systemu
v
w
x
yuw{z
|
}
z
~:((}
u
}
~D
4~w{z
~D
?yu(
~
¢¡£¡£¤£
• Liczba linii kodu jest znana dok
¥
adnie dopiero wtedy, gdy system jest napisany a
szacunki mog
¦
by
§
(i zwykle s
¨
) obarczone bardzo powa
©
nym b
ª
«
dem
(niekiedy ponad 100%)
• Okre
¬
lenie “linii kodu
ród
®
owego” inaczej wygl
¯
da dla ka
°
dego j
±
zyka
programowania (np. 1 linia w Smalltalk’u jest równowa
°
na 10-ciu linii w C; dla
j
±
zyków 4GL ten stosunek mo
°
e by
²
nawet 1000:1)
• Koncepcja oparta na liniach kodu
ród
®
owego natomiast ca
®
kowicie nie przystaje
do wspó
®
czesnych narz
±
dzi programistycznych, np. opartych o programowanie
wizyjne
• Opiera si
±
tylko na d
®
ugo
³
ci kodu i nie bierze w ogóle pod uwag
±
funkcjonalno
³
ci ani z
®
o
°
ono
³
ci produktu
• Kwalifikacja przedsi
±
wzi
±
cia do predefiniowanych klas oraz dobór czynników
modyfikuj
¯
cych jest trudny, a ewentualne b
®
±
dy mog
¯
prowadzi
²
do znacznych
rozbie
°
no
³
ci pomi
±
dzy oczekiwanym i rzeczywistym kosztem
´
µ
¶
·uµ{¸
¹
º
¸
»:¼(½(º
¼u¾
º
»¿?¼
À4»µ{¸
»?Á
Â?·(Ã{ÄÅÆ
Ç
È
»
É
Ê
Ë Ì
ÍÌ Ë
Î8ÏÐÑ
Ò
ÓÔÐÕÖ×ÏÙØ1ÚÛ=ÜÞÝ6Ö×Ï×ØàßÔá1â:Ïãáßåä
• Metoda analizy punktów funkcyjnych (ang. functional points - FP), zosta
æ
a
opracowana przez Albrechta;
æ
ç
czy ona w
æ
asno
è
ci metody, badaj
ç
cej rozmiar
projektu programu z mo
é
liwo
è
ciami metody badaj
ç
cej produkt programowy
(jego funkcjonalno
èê
)
ëíìïîðãëíìòñ
ëíìïîðãëíìóñõô÷öóë
ô÷öóë
Liczb
ø
pierwotn
ù
punktów funkcyjnych (UFP) wylicza si
ø
korzystaj
ù
c z
nast
ø
puj
ù
cych danych:
• Wej
ú
cia u
û
ytkownika: obiekty wej
ú
ciowe wp
ü
ywaj
ý
cych na dane w systemie
• Wyj
ú
cia u
û
ytkownika: obiekty wyj
ú
ciowe zwi
ý
zane z danymi w systemie
• Zbiory danych wewn
þ
trzne: liczba wewn
þ
trznych plików roboczych
• Zbiory danych zewn
þ
trzne: liczba plików zewn
þ
trznych zape
ü
nianych przez produkt
programowy
• Zapytania zewn
þ
trzne: interfejsy z otoczeniem programu
ÿ
!
"$#%
&('
)+*-,/.10 21)
3(4+57698;:=<$4+5+6?>@:9A 51B
Czynnik z
C
o
D
ono
E
ci
Wej
F
cia u
G
ytkownika (I)
Wyj
F
cia u
G
ytkownika (O)
Zbiory danych wewn
H
trzne (l)
Zbiory danych zewn
H
trzne (E)
Zapytania zewn
H
trzne (F)
Prosty
3
4
7
5
3
I
redni
4
5
10
7
4
Z
J
o
K
ony
6
7
15
10
6
Wagi przypisywane elementom zale
LM
od ich typu
NPORQ/SUT
NVORQWSUT
X
X
Y[Z
YRZ
\
\
]U^
]U^
_
_
`Ra
`Ra
_
_
b
bUc
c
d
d
eRf
eRf
d
d
gUh
gUh
i
i
j[k
jRk
i
i
lUm
lUm
n
n
o
op
p
n
n
gdzie w
x
- wagi czynników, e
x
- liczno
q
ci elementów
5
r
s
t
usv
w
x
v
y z{x
z|
x
y}z
~ysv
y
u
y
91
?R(7
1
¡V¢¤£¥1¡§¦7¨7¢
¡?©¤¨ª¥9«¬-®°¯°±¤²
TCF - liczba ustalana na podstawie
wp
³
ywu 14 czynników
(0.65<=TCF<=1.35 ):
• wyst
´
powanie urz
µ
dze
¶
komunikacyjnych
• rozproszenie przetwarzania
• d
·
ugo
¸¹
czasu oczekiwania na odpowied
º
systemu
• stopie
»
obci
¼½
enia sprz
¾
tu istniej
¼
cego
• cz
¾
stotliwo
¿À
wykonywania du
½
ych
transakcji
• wprowadzanie danych w trybie
bezpo
¿
rednim
• wydajno
¿À
u
½
ytkownika ko
»
cowego
• aktualizacja danych w trybie
bezpo
¿
rednim
• z
Á
o
½
ono
¿À
przetwarzania danych
• mo
½
liwo
¿À
ponownego u
½
ycia
programów w innych
zastosowaniach
•
Á
atwo
¿À
instalacji
•
Á
atwo
¿À
obs
Á
ugi systemu
• rozproszenie terytorialne
•
Á
atwo
¿À
wprowadzania zmian -
piel
¾
gnowania systemu
Â
Ã
Ä
ÅÃÆ
Ç
È
Æ
É ÊËÈ
ÊÌ
È
ÉÍÊ
ÎÉÃÆ
ÉÏ
ÐÅÑÒÓÔ
Õ
Ö
É
×
Ø
ÙÚ
Û$Ü%Ù
ÝßÞ(à?áâ-ãäÞ1åRæ$ç(èé
êUë+ì+è(à¤æîíªïñð$ì7è+à?ò@Þ9óôèVÞVò§õ
• Ocena z
ö
o
÷
ono
ø
ci realizacji systemów
• Audyt projektów
• Wybór systemów informatycznych
funkcjonuj
ù
cych w przedsi
ú
biorstwie do
rein
÷
ynierii (wg. koszt utrzymania/FPs)
• Szacowanie liczby testów
• Ocena jako
ø
ci pracy i wydajno
ø
ci zespo
ö
ów
ludzkich
• Ocena stopnia zmian, wprowadzanych przez
u
÷
ytkownika na poszczególnych etapach
budowy systemu informatycznego
• Prognozowanie kosztów piel
ú
gnacji
i rozwoju systemów
• Porównanie i ocena ró
÷
nych ofert dostawców
oprogramowania pod k
ù
tem merytorycznym i
kosztowym
1 FP
≈ 125 instrukcji w C
10 FPs - typowy ma
ö
y program
tworzony samodzielnie przez
klienta (1 m-c)
100 FPs - wi
ú
kszo
øû
popularnych
aplikacji; warto
øû
typowa dla
aplikacji tworzonych przez klienta
samodzielnie (6 m-cy)
1,000 FPs - komercyjne aplikacje w
MS Windows, ma
ö
e aplikacje klient-
serwer (10 osób, ponad 12 m-cy)
10,000 FPs - systemy (100 osób,
ponad 18 m-cy)
100,000 FPs - MS Windows’95, MVS,
systemy militarne
ü
ý
þ
ÿý
ý
ÿ
!#"%$'&)(+*-,/.%0
12&)(3,#451
• Alternatywna metoda w stosunku do punktów funkcyjnych
zaproponowana na pocz
6
tku lat 90-tych przez Bankera i wspó
7
p.
• Wykorzystywana do j
8
zyków programowania baz danych, 4GL
– obiektowe w nazwie nie ma tutaj zwi
9
zku z programowaniem obiektowym
• Liczba punktów obiektowych jest wa
:
on
;
sum
;
:
– liczby ró
<
nych formatek ekranowych (prosty ekran - 1 punkt,
=
redno z
>
o
<
ony - 2
punkty, bardzo z
>
o
<
ony - 3 punkty)
– liczba generowanych raportów (prosty raport - 2 punkty,
=
rednio skomplikowany -
5 punktów, a potencjalnie najtrudniejsze do utworzenia - 8 p.)
– liczba modu
>
ów w j
?
zykach 3GL (takich jak C++; Java) , które nale
<
y utworzy
@
w
celu uzupe
>
nienia kodu 4GL - ka
<
dy modu
>
10 punktów
• Zalet
;
punktów obiektowych w porównaniu z punktami fukcyjnymi jest
to,
:
e
A
atwiej je obliczy
B
na podstawie specyfikacji oprogramowania
wysokiego poziomu
C
D
E
F DG
H
I
G
JKLI
K M
I
JNOK
PJDG
JOQ
R F STU V
W
X
J
Y
Z
[ U
\3]^[
_a`ab
cedgfihj'k/l
`mconp`qhsr+f'tuj
v
w xzys{
|}~z
x3|O )z
w}) u
• Wiele zamierze
zwi
zanych z metrykami oprogramowania zawiod
o,
gdy
cele by
y zwykle s
abo zdefiniowane; aby temu przeciwdzia
a
na
Uniwersytecie Maryland (Vic Basili et al.) opracowano metod
GQM
• Trzy podstawowe kroki:
– ustalenie celów w kategoriach zamiaru, perspektywy i
rodowiska
– ponowne wypowiedzenie celów w terminach opowiedzi na
atwe do
“skwantyfikowania” pytania
– okre
lenie metryk i danych, które nale
y zgromadzi
, aby udzieli
odpowiedzi na
postawione pytania
• Dzi
ki takiemu u
o
eniu koncentrujemy si
tylko na metrykach, które
odnosz
si
do interesuj
cego nas celu
• Klika pomiarów, aby odpowiedzie
na jedno pytanie; pojedynczy
pomiar mo
e mie
zastosowanie do kilku pyta
¡ ¢
£
¤
¢
¥¦§¤
¦ ¨
¤
¥© ¦
ª¥¢
¥ «
¬ ¡®¯°
±
²
¥
³
´
µ ¶
·¸ µ
¹#ºz»¼2½
¾
¿qÀÂÁÄÃ2ÅuÆ%ÇzÈÃ#ÉËÊz¿'Ì/Í
¿ÏÎeÐ5Ñ
Oceni
Ò
skuteczno
Ó+Ò
narz
Ô
dzia ‘X’
Kto u
Õ
ywa
narz
Ö
dzia ‘X’ ?
Jaka jest wydajno
×Ø
programisty?
Jaka jest
jako
×Ø
kodu?
CEL:
PYTANIA:
METRYKI:
Odsetek
programistów
Do
×
wiadczenie
programistów:
- lata pracy
- miesi
Ù
ce
stosowania ‘X’
Wielko
×Ø
kodu:
- KLOC
- FP
- ....
Nak
Ú
ad
pracy
Defekty
...
Û
Ü
Ý
Þ Üß
à
á
ß
âãäá
ã å
á
âæOã
çâÜß
âOè
é Þ êëì í
î
ï
â
ð
ñ
ò ó
ô3ò^õ
öø÷gùsúzûü
ý
÷
þ
ÿ
Niedojrza
o
Dojrza
o
!
Improwizacja podczas procesu
wytwórczego
!
Proces jest wyspecyfikowany, ale
specyfikacja nie jest stosowana
!
Dora
"
ne reagowanie w sytuacji
kryzysów
!
Harmonogram i bud
#
et s
$
przekraczane
!
Funkcjonalno
%'&
jest stopniowo
okrajana
!
Jako
%'&
produktu jest niska
!
Brak obiektywnych kryteriów oceny
(
Zdolno
)'*
do budowy
oprogramowania jest cech
+
organizacji a nie personelu
(
Proces jest zdefiniowany, znany i
wykorzystywany
(
Proces jest obserwowany i
ulepszany
(
Prace s
+
planowane i monitorowane
(
Role i odpowiedzialno
)
ci s
+
zdefiniowane
(
Obiektywna, ilo
)
ciowa ocena
6
,
-
.
/0-21
3
4
1
576'8'4
609
4
5;:<6
=>5;-21
5<?
@</'A2B;CED
F
G
5
H
I
JLK
MNJPO
QSRTUWVTRYX[Z\^]
_
R
`
ab
cde fghikjlnmNjodfpqg re
• Model dojrza
s
o
t
ci procesu wytwórczego (ang. Capability Maturity Model -
CMM) zosta
s
opracowany w latach 80-tych przez ameryka
u
ski Instytut
In
v
ynierii Oprogramowania na zlecenie rz
w
du USA
• Wykorzystywany by
x
w procedurach oceny (klasyfikacji) potencjalnych
wykonawców oprogramowania dla Departamentu Obrony
• Opiera si
y
w znacznym stopniu na koncepcjach TQM (ang. Total Quality
Management)
• Ocenia wiele ró
v
nych atrybutów wytwarzania oprogramowania, obejmuj
w
cych
u
v
ycie narz
y
dzi i standardowych praktyk
• Model ten szybko zyska
x
szerok
w
akceptacj
y
jako wzorzec do usprawniania
procesu programowania
• Wywar
x
znaczny wp
x
yw na u
z
wiadomienie znaczenia miar i ich stosowanie,
gdy
v
w CMM miary s
w
uwa
v
ane za wa
v
ne dla osi
w
gni
y
cia wy
v
szych
poziomów usprawnienia procesu
{
|
}
~0|2
7''
0
;
>;|2
<~0E'P
P
¡ Y¢[£^¤
¥
¦
§¨©nª¨¬«£§« ¨
Wyró
v
niono 5 poziomów dojrza
x
o
z
ci wytwórców (poczynaj
w
c od p. najni
v
szego):
• pocz
tkowy (1) - proces chaotyczny, nie istniej
®
adne standardy, decyzje podejmowane
ad hoc; mo
®
e dotyczy
¯
nawet firm o dobrym zaawansowaniu technicznym
• powtarzalny (2) - proces zindywidualizowany;przedsi
°
wzi
°
cia wykonywane w podobny
sposób (standardy de facto); standardy nie s
udokumentowane i nie istniej
±
cis
²
e
procedury kontroli
• zdefiniowany (3) - proces zinstytucjonalizowany; standardy post
°
powania s
zdefiniowane, sformalizowane i ich stosowanie jest kontrolowane
• zarz
dzany (4) - proces nie tylko podlega kontroli ale jest równie
®
mierzony w sposób
ilo
±
ciowy; informacje zwrotne wykorzystywane s
do sterowania procesem
• optymalizuj
cy (5) - standardy s
ci
gle uaktualniane; informacje zwrotne wp
²
ywaj
na
ulepszenie procesu; standardy zawieraj
elementy pozwalaj
ce na dostrojenie procesu
do aktualnych potrzeb
Niewiele firm uzyska
x
o poziom 3-ci, umo
v
liwiaj
w
cy dostarczanie oprogr. dla Dep.
Obrony; tylko IBM w zakresie oprogr. promu kosmicznego dla NASA uzyska
x
poziom 5-ty