You are on page 1of 78

PROGRAMUJ APKI

Wprowadzenie do programowania

SPIS TRECI

Wprowadzenie do programowania, omwienie jzyka oraz kompilatora /prof.


Marlena Plebaska/

1. Typy podstawowe i zoone, omwienie typw zmiennych oraz ich zastosowanie


/Barbara Halska/

2. Podstawowe funkcje, zapoznanie z wbudowanymi funkcjami oraz bibliotekami, ktre


je obsuguj /Barbara Halska/

3. Programowanie obiektowe i funkcjonalne, przygotowanie funkcjonalnych aplikacji,


analiza zoonoci projektu, optymalizacja kodu /Pawe Bensel/

4. Interakcja z otoczeniem (we/wy, bd), zapisywanie i odczytywanie wynikw /Pawe


Bensel/
5. Interfejsy graficzne projektowanie interfejsu graficznego /Pawe Bensel/

6. Zarzdzanie projektem przeprowadzenie projektu przez procesy zwizane z


zarzdzaniem /prof. Marlena Plebaska/

WPROWADZENIE
/prof Marlena Plebaska/

Zainteresowanie programowaniem, tworzeniem aplikacji towarzyszy ludziom ju do wielu lat.


Eksplozja Internetu, oprogramowania, gier, aplikacji, sprztu sprawiy e wiat zmieni si,
przesta by analogowy, a sta si cyfrowy. Cyfrowy wiat przybra inne oblicze ni jego
poprzednik, a cyfryzacji krok po kroku zacza podlega kada dziedzina naszego ycia. Od
pocztkw istnienia ludzkoci technologie wizay si z innowacjami. Ju pierwsi ludzie,
czerpic z wiedzy przodkw, potrafili ulepsza otaczajc ich rzeczywisto, korzystajc ze
znanych

im

nowych

technologii,

poczwszy

od

konstruowania

coraz

bardziej

zaawansowanych przyrzdw ycia codziennego, a skoczywszy na postpie w rozwoju


zachowa spoecznych. Zasada ta nie zmienia si przez tysice lat.
W czasach nam wspczesnych technologia staa si generatorem zmian, ktre na nowo
zdefinioway zwyky dzie wspczesnego czowieka. Nowe technologie wspieraj dzi
wikszo naszych codziennych czynnoci - komputer, smartfon czy tablet towarzysz
ludziom na kadym kroku. Szczeglnie istotne staj si technologie mobilne, ktre
pozwalaj na korzystanie z dobrodziejstw cyfryzacji niezalenie od miejsca czy czasu. To
wanie za pomoc mobilnych aplikacji codziennie sprawdzamy pogod, czytamy
informacje, robimy zakupy, dokonujemy przeleww bankowych i rezerwacji hoteli itp.
Mobilne aplikacje wspomagaj nas w codziennych czynnociach, usprawniaj nasz prac,
uatwiaj zdobycie wiedzy z wielu dziedzin. Nie dziwi zatem fakt, i coraz wicej modych
ludzi interesuje si programowaniem. To ciekawa, przydatna umiejtno, a zawd
programisty czsto wymieniany jest w czowce zawodw przyszoci. Programowanie jest
dziedzin informatyki stale rozwijajc si, a programistw wci brakuje, klasy
informatyczne w szkoach rednich oraz uczelnie techniczne s oblegane, modzie chce
programowa, widzi w tej umiejtno konkretn warto do wykorzystania w przyszoci.
Niniejsza publikacja doskonale wpisuje si zatem nie tylko w wiatowe trendy, ale przede
wszystkim w potrzeby modych ludzi, ktrzy zarwno z samej publikacji, jak i z caego
projektu Akademia 3.0 - apki.org czerpa mog wiedz oraz praktyczne umiejtnoci z
zakresu programowania.

Publikacja skada si z szeciu rozdziaw, w ramach ktrych omwione zostay: typy


zmiennych programistycznych oraz zasady ich zastosowania, podstawowe funkcje oraz
biblioteki

programistyczne.

Przedstawione

zostay

rwnie

zasady

programowania

obiektowego, zasady funkcjonalnego przygotowania aplikacji, analiza zoonoci projektu,


zasady optymalizacji kodu oraz zasady interakcji z otoczeniem. W rozdziale pitym
omwione zostay interfejsy graficzne oraz zasady ich projektowania. W ostatnim rozdziale
przedstawiono natomiast najwaniejsze zasady zarzdzania projektem informatycznym oraz
tworzenia metodycznego zarzdzania pierwszym projektem informatycznym.
Publikacja zawiera szereg praktycznych przykadw

kodu, odniesie do praktyki

programowania oraz przykadw optymalizacji kodu. Podrcznik jako integralna cz


platformy www.apki.org jest cile skorelowany z udostpnionymi na niej materiaami
edukacyjnymi w postaci interaktywnych kursw programowania w najpopularniejszych
jzykach. Ucze, korzystajc z podrcznika, moe zdoby podstawy wiedzy niezbdne do
samodzielnego tworzenia pierwszych aplikacji. Podrcznik uatwia take zaplanowanie
caego procesu tworzenia wasnej aplikacji, a liczne zgromadzone przykady s inspiracj do
tworzenia wasnych autorskich rozwiza.
Zatem jeli interesuje Ci programowanie i zastanawiasz si jak stworzy swoj pierwsz
aplikacj, ta publikacja przeznaczona jest wanie dla Ciebie. Informatyk to projektant
przyszoci. Jeli zatem chcesz projektowa, kreowa nowe rozwizania, ta publikacja jest
wanie dla Ciebie. To wietny pierwszy krok, eby zosta architektem przyszoci.

Jak naley pisa kod programu?

Tak jak w yciu w wiecie programowania mamy do czynienia z unikalnymi jzykami.


To samo zdanie moemy zapisa w rnych jzykach, i chocia bdzie ono inaczej
wyglda, bdzie znaczy to samo i bdzie zrozumiae dla osb, ktre znaj dany jzyk.
np.
jzyk polski - Dzie dobry
jzyk angielski - Good morning
jzyk francuski - Bonjour

Pisanie

Przetwarzanie

Wykonanie

Kod programu moecie


pisa nawet w zwykym
notatniku, ale tak naprawd
w wikszoci wypadkw
istniej przeznaczone do
tego dedykowane programy,
o ktrych wicej dowiedzie
si przy omawianiu
konkretnych jzykw w
kursie.

Za przetwarzanie kodu
rwnie odpowiada
konkretny program, ktry
najczciej tworzy plik
wykonywalny. Jedynie jzyki
skryptowe takie jak Java
Script do przetwarzania
korzystaj z przegldarki
internetowej.

Gdy ju uzyskamy plik


wykonywalny, moemy go
po prostu uruchomi.

Pseudokod - a co to takiego?
Nie bdzie zbyt odkrywcze, jeli powiemy Wam, e pseudokod to po prostu co, co
przypomina kod, ale tak naprawd nie jest adnym jzykiem programowania. Wprawdzie
stosujemy w nim oglne instrukcje i schematy programowania, jednak nie jest konkretnym
jzykiem.
Pseudokod jest wic narzdziem, pozwalajcym nam rozwiza jaki problem, zbudowa
pewien zarys, ktry nastpnie wykorzystamy, piszc program w danym jzyku.
Pseudokod mona wic porwna z przepisem na wykonanie ciasta. Mamy podane
wszystkie skadniki oraz procedury, jakie musimy wykona, aby upiec ciasto, nie jest
natomiast wane to, produktw jakiej firmy uyjemy.
Przykad pseudokodu, ktry obrazuje procedur sprawdzania czy zmienna a jest rwna
zmiennej b oraz to co ma si zadzia, kiedy warunek jest niespeniony

Przykad
zmienna a = 3
zmienna b = 6
jeeli (a == b)
zwr prawda;
inaczej
zwr fasz;
Powyszy pseudokod jest oczywicie tylko prostym przykadem. Warto jednak pamita, e
w bardziej zoonych problemach zawsze moe Wam pomc rozoenia problemu na
mniejsze kawaki.

Zamiast pseudokodu schemat blokowy


Schemat blokowy to graficzny zapis pseudokodu, a wic rozwizania zadania, ktry mniej
instrukcjami, ale schematem przedstawia opis oraz kolejno wykonywania instrukcji

Rozdzia I: Typy podstawowe i zoone. Omwienie


typw zmiennych oraz ich zastosowanie
/Barbara Halska/
Zacznijmy od pocztku, a wic od sposobu zapisywania danych. Tak jak Wy macie potrzeb
zapisania jakich wartoci na kartce, w notatniku czy w telefonie, tak samo dzieje si z
danymi w programie. Dane te przypisujemy do zmiennych, ktre to wanie su do
przechowywania wartoci.

I.1. Zmienne
Zmienna to miejsce zarezerwowane w pamici, w ktrym zapisana jest jaka dana, z ktrej
korzysta napisany program. Mona przetwarza t zmienn, przechowywa w niej dane
tymczasowe, wykonywa na niej funkcje.

Pami komputera moemy porwna z koszykiem na zakupy, do ktrego wkadamy


produkty. Kady produkt ma nazw oraz kolor, smak czy rozmiar. Tak wic w naszym
koszyku moemy znale nabia, ktry raz jest mlekiem, raz jogurtem, a raz serkiem
homogenizowanym, ale to zawsze bdzie nabia.

Przykad:

owoce = "jabko" //ta instrukcja deklaruje zmienn o nazwie owoce i zapisuje w niej
acuch znakw
nabia = "ser"
pieczywo = "buka"

I.1.1 Typy zmiennych

Kada zmienna moe przechowywa okrelony rodzaj informacji. Informacj moe by


liczba (dowolnego rodzaju naturalna, cakowita, zmiennoprzecinkowa, staoprzecinkowa),
znaki. Rodzaj informacji zwany jest typem.
Rodzaje zmiennych:

cakowite (int) - przechowuj liczby cakowite np.: 1,10,1000;


zmiennoprzecinkowe (float) - przechowuje liczby uamkowe np.: 1,00001;

zmiennoprzecinkowe (double) - przechowuje liczby uamkowe o podwojonej precyzji

logiczne (bool) - przechowuj warto true lub false;


znakowe (char, string) - przechowuj dowolne znaki np.: "1","r","@";
Pamitajmy, e deklarujc zmienn rezerwujemy dla niej miejsce w pamici; to, ile tego
miejsca potrzebujemy uzalenione jest od jej typu.

Deklaracja zmiennej wie si od razu z rezerwacj miejsca w pamici operacyjnej, bo to


wanie tam bd przechowywane wartoci. Pami moemy porwna do szafy z
szufladami, z ktrych kada ma swj numer, a to jakie w niej bd przechowywane
elementy zaley od waciciela szuflady, a wic zmiennej, ktra zostanie do niej przypisana.
Wizualizacja pamici operacyjnej, w ktrej zmienne otrzymuj miejsce na przechowywanie
wartoci
ile_galek

owoce

nr

kod

imie

pieczywo

ulica

miaso

nabia

nazwisko

Sma_lodow

I.1.2 Deklaracja zmiennej


Zanim skorzystamy ze zmiennej musimy j zadeklarowa, nada jej nazw. Bardzo dobrym
rozwizaniem jest stosowanie nazw tak, aby od razu byo wiadomo, jakie wartoci bd w
niej przechowywane np.:

"nr_domu" -

taka zmienna bdzie przechowywa liczb. Nie

moemy te stosowa polskich znakw, ale w nazwie mog pojawi si rwnie cyfry.
Kompilatory rozrniaj due i mae litery dlatego zmienna ABC jest inn zmienn ni
zmienna abc, musimy pamita o tym odwoujc si do nich. No i jeszcze jedna sprawa nie wolno tworzy nazw zmiennych z wykorzystaniem sw kluczowych. Kady jzyk ma
wasn list, ale jest kilka, ktre s uniwersalne i spotykamy je w kadym: break, case,
class, do, else, if, false, for, public, private, protected, switch, true, while.
Kompilator to program, ktry rozumie instrukcje napisane w danym jzyku. Kompilacja
przeksztaca kod rdowy i powoduje wygenerowanie jego wydajnej, maszynowej
reprezentacji, ktra zazwyczaj jest zoptymalizowana pod ktem wydajnoci dziaania. Wrd
jzykw

programowania

te

jzyki

skryptowe,

ktre

natury

jzykami

interpretowanymi, co oznacza, e przegldarka moe wykona kad instrukcj w kodzie.

I.1.3 Instrukcja przypisania

Deklarujc zmienn moemy od razu przypisa jej wartoci, ale moemy te to zrobi
pniej. Do przypisania konkretnej wartoci wykorzystujemy operatory przypisania

np.:

znak =
Poniej przedstawiamy kilka przykadw deklaracji zmiennych:
Smak_lodow = truskawkowe //ta instrukcja deklaruje zmienn o nazwie smak_lodow
i zapisuje w niej acuch znakw w tym przypadku truskawkowe
Ile_galek = 2 //z kolei ta instrukcja zapisuje warto liczbow.
Na pewno zauwaylicie rnic przy zapisie w zalenoci od tego czy wprowadzamy
warto liczbow, czy cig znakw. W drugim przypadku stosujemy cudzysw. Tworzc
zmienn nie musimy od razu przypisa jej wartoci pocztkowej, zawsze moemy to zrobi
pniej.

Moe rysunek pudeek, ktre nazywamy tak jak deklarowana zmienna i do tych pudeek
bd wpaday wartoci tych zmiennych
* Zmienna dostaje jakie miejsce w pamici a co za tym idzie, wartoci, ktre tam ju kiedy
nasz system operacyjny zapisa, wic dla bezpieczestwa mona j wyzerowa np. nr = 0

I.2. Tablice

Ostatnio pada wygrana w totolotka w wysokoci 35 milionw, kady chciaby tak nagrod
wygra, udao si to jednej osobie. Szczliwiec wytypowa 6 cyfr z przedziau od 1 do 60.
Te wylosowane cyfry moemy zapisa: 1,14,23,31,33,35. Gdybymy chcieli zapisa je w
programie, musielibymy uy 6 zmiennych np. lotto1 = 1, lotto2 = 14 itd. Do tego typu
zapisu przy uyciu jednej zmiennej stosujemy tablice. Tablica (ang. array) jest typem
danych, ktry moe przechowywa wiele wartoci. W pamici komputera tablica zajmuje
cigy obszar pamici, a jej elementy, zwane komrkami, s umieszczone w tym obszarze
jeden obok drugiego.

Wizualizacja tablicy

I.2.1 Tworzenie prostej tablicy

Skoro tablica rwnie jest zmienn, to trzeba nada jej nazw np. lotto w ktrej bdzie
przechowywaa wyniki losowania.
lotto = [ 1,14,23,31,33,35]; //deklaracja tablicy lotto, ktra przechowuje wyniki
losowania
Wszystkie wartoci moemy potraktowa jako jedn cao, moemy te odwoywa si do
poszczeglnych elementw tej tablicy.
pisz(lotto[0]); //Wywietlony zostanie pierwszy element tablicy czyli liczba 1
Zanim przejdziemy dalej, musimy si upewni, czy rozumiecie czym s tablice. Jak ju
wczeniej byo to wytumaczone, tablic uywamy do przechowywania wielu wartoci w
odrnieniu od zmiennych, ktre pozwalaj zapisywa tylko jedn warto, tak jak liczba
czy sowo. Najczciej tablice, bdziemy stosowa do grupowania podobnych informacji,
takich jak wyniki meczw czy oceny. Zawsze wtedy, gdy bdziemy chcieli zgrupowa jaki
zbir danych moemy utworzy tablic i w niej je zapisa. Gdy bdzie to potrzebne, moemy
odwoa si do caej tablicy lub do konkretnej komrki w celu skorzystania z danych.

PRZYKAD
CHCEMY STWORZY TABLIC, KTRA BDZIE PRZECHOWYWA KOLORY
COLOR = ["NIEBIESKI", "ZIELONY", "CZERWONY", "TY"];

*Czy zwrcilicie uwag, e poszczeglne elementy tablicy s oddzielone przecinkami?


Kady element jest umieszczony w osobnej komrce, ktra ma swj indeks. Indeksowanie
zaczyna si od zera.
Kady element jest umieszczony w osobnej komrce, ktra ma swj indeks. Numerowanie
indeksw zaczyna si od zera. Jeeli tablica tak jak w przypadku naszej lotto jest 6
elementowa to ostatni indeks jest mniejszy o jeden a wic ma warto 5.

PRZYKAD
LOTTO = [ 1,14,23,31,33,35]; //DEKLARACJA TABLICY
PISZ(LOTTO[5]); //WYWIETLENIE SZSTEGO ELEMENTU TABLICY

Wizualizacja tablicy:
1

14

23

31

33

35

I.2.2 Cig znakw jako tablica

Zmienne typu string maj specyficzn budow. Mog zosta take zapisane tak naprawd
jak cig pojedynczych znakw.
name = ["a","p","k","i",".","o","r","g"] lub te name = "apki.org"
Jeeli wczeniej zmienna name zostaa zadeklarowana jako tablica to kompilator
samodzielnie podzieli string na pojedyncze znaki.
Wizualizacja tablicy
a

I.2.3 Tablica asocjacyjna

S to tablice, gdzie indeksem moe by znak lub string.


Przykad tablicy, ktra zawiera numery pokoi, a w rekordach zapisane s nazwiska osb,
ktre zarezerwoway pokj.
PRZYKAD
HOTEL[POKJ_1] = MARCIN
HOTEL[POKJ_2] = KASIA
HOTEL[POKJ_5] = BASIA

I.2.4 Tablice wielowymiarowe

Moemy te tworzy tablice wielowymiarowe - czyli tablice w tablicach. Do czego moe si


to przyda? Wykorzystajmy poprzedni przykad z hotelem, tworzc tablic, ktrej kolejna
kolumna bdzie przechowywa informacj o tym, czy osoba wykupia niadanie.
PRZYKAD
HOTEL[1]=[MARCIN, NIADANIE]
HOTEL[2]=[KASIA, BEZ NIADANIA]
HOTEL[3]=[BASIA, NIADANIE]

I.3. Podstawowe operacje na danych

Poradzilimy sobie ze zmiennymi i przyszed czas no wykonywanie operacji na danych, a


wic przetwarzanie ich. Do tego wykorzystujemy operatory np. takie jak dodawanie czy
porwnywanie dwch wartoci.

I.3.1 Podstawowe operacje matematyczne


Dodawanie
Podstawowymi operacjami s gwnie dodawanie, odejmowanie, mnoenie, dzielenie.
Mona w bardzo prosty sposb te operacje wykonywa, uywajc podstawowych dla
kadego jzyka programowania znakw.
liczba = 2 + 7 //po tym dziaaniu w stworzonej zmiennej liczba bdzie przechowywana
warto 9
W przeciwiestwie do matematyki, w programowaniu mona przeprowadza operacje, ktre
w matematyce nie miayby miejsca.
Kod:
liczba = liczba + 1 //po tej instrukcji w zmiennej zapisana zostanie warto 10 (jako, e
poprzedni wartoci zmiennej liczba jest liczba 9
nie jest operacj matematyczn, a operacj przypisania do zmiennej "liczba" wartoci o
jeden wikszej ni warto poprzednia.
Zapis mona skrci poprzez istnienie dodatkowego operatora dodawania:
liczba += 1
Zadaniem tego operatora jest dodanie do zmiennej dowolnej wartoci.
Analogicznie mona do jednej zmiennej zapisywa przetworzon drug liczb, np.:

Przykad
liczba1 = 5
liczba2 = liczba1 + 20
lub
liczba1 = 5
liczba2=0
liczba2+=liczba1
liczba2+=5 //Wynikiem ostatniej operacji jest zapisana w zmiennej "liczba2" warto
25.

Odejmowanie
Drugim podstawowym znakiem jest znak minus, ktrego uywa si w sposb analogiczny
do poprzedniego:
Przykad
liczba1 = 5
liczba2 = liczba1 20 //wynikiem bdzie warto -15.
Istnieje te moliwo wykorzystania operatora "-=":
liczba1 = 5
liczba2 += liczba1 //wynikiem bdzie warto 5.
liczba2 -= 20 //wynikiem bdzie warto -15.

Mnoenie
Operacja mnoenia jest reprezentowana za pomoc znaku "*". W bardzo prosty sposb
mona wyliczy kwadrat danego elementu przy pomocy poniszej operacji:
Przykad
liczba = 5
liczba = liczba * liczba //w zmiennej "liczba" zostanie zapisany wynik 25

10

Dzielenie
Operacja dzielenia reprezentowana jest za pomoc znaku "/". W zalenoci od typu danych
w jakim bdzie zapisywany wynik dziaania taka bdzie zwracana warto.
Przykad
liczba = 5/10 //w przypadku gdy zmienna "liczba" jest cakowit, wynikiem dziaania
jest 0
liczba = 5.0/10.0 //w przypadku gdy zmienna "liczba" jest cakowit, wynikiem
dziaania jest 0.5
Kolejny operator zwizany z dzieleniem, jest zwracajcy reszt tej operacji. Znakiem
uywanym w tym wypadku jest znak "%"
liczba = 2%5 //wynikiem jest 4

I.3.2 Operatory porwnania


Operatory porwnania su przede wszystkim do porwnania liczby:
Operator

Opis

>

wiksze od

>=

wiksze lub rwne

<

mniejsze

<=

mniejsze lub rwne

==

rwne

!=

rne

Wynikiem operacji porwnania jest prawda albo fasz, czyli warunek jest speniony albo nie.
Operatorami logicznymi nazywamy wszystkie spjniki klasycznego rachunku zda.
Najczstszymi s to i, lub oraz negacja. Bdziesz ich uywa/-a w instrukcjach
warunkowych. Zwracaj warto true lub false.

11

Iloczyn logiczny
Znak operatora logicznego to "&&". Wszystkie wartoci musz by prawdziwe, aby zostaa
zwrcona warto true(prawda).
wejcie

wejcie

wyjcie

Suma logiczna
Znak sumy logicznej to "||". Co najmniej jedna z wartoci musi by prawdziwa, aby zostaa
zwrcona prawda.
wejcie

wejcie

wyjcie

Wyrae logicznych mona uywa do podejmowania decyzji przy uyciu instrukcji


warunkowych if. Instrukcja ta pozwala wykonywa umieszczony w niej kod, jedynie wtedy
gdy warunek jest speniony, a wic osiga warto true.

I.3.3 Instrukcja warunkowa

Instrukcje warunkowe to konstrukcje, ktre su do sprawdzania, czy dany warunek zosta


speniony. Jest to praktycznie podstawowy element jzyka programowania. Dziki
instrukcjom warunkowym moemy odpowiednio zareagowa na istniejce sytuacje i
sterowa prac programu. Przykadowo: uytkownik musi wpisa swoje imi na samym
pocztku dziaania programu. Moe si jednak zdarzy, e uytkownik specjalnie lub
omykowo wpisze liczb. Jeeli programista nie uwzgldni tej moliwoci i nie wprowadzi

12

odpowiednich zabezpiecze, moe si to skoczy le dla programu lub (w przypadku


wikszych aplikacji) spowodowa bdy zwizane z bezpieczestwem systemu.

Konstrukcja warunku

Ciao instrukcji
if (warunek)
instrukcja jeeli warunek
jest speniony

Warunek skada si z dwch zasadniczych


czci sowa kluczowego if i gwnego
warunku.

Instrukcja

ta

pozwala

wykona

umieszczony w niej blok kodu, wycznie w


przypadku, gdy warunek przyjmie warto true.
Skadnia wyglda w nastpujcy sposb:

Podstawowym warunkiem jest warunek porwnujcy, czy warto dwch zmiennych jest
identyczna
Przykad
if (a==b)
pisza = b

Naley tutaj zwrci uwag, e w instrukcji warunkowej korzystamy z operatorw


porwnania.
Kady warunek powinien zwraca warto true lub false.
W programowaniu uywa si czasem take operatora negacji ktry zamienia warto
logiczn na przeciwn, np.

Przykad
!(a>b) //sprawd, czy nieprawd jest, e a jest wiksze od b
//operacja ta jest rwnowana z !(a<=b)
Bardzo wane jest te czenie warunkw ze sob su do tego operatory logiczne.

13

A co jeeli warunek nie zosta speniony?


Moemy rwnie wykona instrukcj, kiedy
if (warunek)
warunek nie jest speniony - do tego suy
instrukcja, jeeli warunek
else".
jest speniony
else
if (warunek)
instrukcja, jeeli warunek
Warunki
mona
te instrukcja, jeeli pierwszy warunek jest
nie
jest speniony
zagnieda
tzn, jeeli
speniony

else if(warunek)
instrukcja, jeeli drugi warunek jest
potrzeba
sprawdzenia
speniony
kolejnego warunku, jeeli
else
pierwszy nie zosta speniony.
Moemy poczy dowolnie wiele instrukcji if/else. Za pomoc
else if mona dodawa dowolnie
wiele warunkw,
przy czym
kadyzbdzie
mie wasny blok
instrukcja,
jeeli
aden
dwch
kodu, ktry bdzie wykonany,warunkw
jeeli warunek zostanie
speniony.
nie zosta
speniony
instrukcja

else

wystarczy,

nie

istnieje

Przykad
Sprawd czy podana przez uytkownika liczba jest dodatnia, ujemna czy zero.
Zaoenie wprowadzane liczby s cakowite
liczba = 3
if ( liczba > 0 )
pisz("Liczba jest dodatnia") //speniony warunek - zostanie wywietlony komunikat
else if ( liczba < 0 )
pisz ("Liczba jest ujemna ") //nie speniony warunek - nie zostanie wywietlony
komunikat else if ( liczba == 0 )
pisz ("Liczba jest dodatnia") //nie speniony warunek - nie zostanie wywietlony
komunikat

I.4. Optymalizacja kodu

Projektujc kod, zawsze staraj si zoptymalizowa go tak, aby by jak najmniej naraony na
bdy oraz nie zawiera niepotrzebnych instrukcji i tak przykad powyszy zostanie
zoptymalizowany.

14

Przykad
liczba = 3
if ( liczba > 0 )
pisz("Liczba jest dodatnia") //speniony warunek zostanie wywietlony komunikat
else if ( liczba < 0 )
pisz ("Liczba jest ujemna ") //nie speniony warunek nie zostanie wywietlony
komunikat
else
pisz ("Liczba jest dodatnia") //wywietli si tylko wtedy kiedy powysze warunki nie
zostan spenione
*Jeeli zmienna jest jest typu logicznego to nie musi sprawdza czy jest true, wystarczy j
tylko umieci w warunku

Przykad
sunny_day = true
if(sunny_day)
pisz(Idziemy na spacer)
else
pisze(Zostajemy w domu)

I.5. Konstrukcje ptli

Jest wiele czynnoci, ktre wykonujemy wicej ni jeden raz, to moe by pojedyncza
instrukcja lub zbir np. Wstajemy rano, myjemy zby.

15

Oczywicie, take w kodzie czsto musimy wykonywa czynnoci wicej ni jeden raz i
wanie do tego moemy wykorzysta ptle.
Wczeniej zostay ju omwione wyraenia, ktre zwracaj warto logiczna np a>0.
Wanie takie wyraenia, maj due znaczenie w dziaaniu ptli.
Ptla to chyba najwaniejszy skadnik programowania w dowolnym jzyku. Umoliwia
odcienie programisty od decydowania, ile razy dana operacja ma si wykona komputer
sam okrela ile razy wykonuje si dana operacja.

I.5.1 Ptla while

Dziaa nieco podobnie do instrukcji warunkowej, z t


rnic, e wykonuje kod nie jednokrotnie, a wielokrotnie.

Przykad
Tworzymy maszyn losujc liczby z duego LOTTO.
Jak wiemy trzeba ich wylosowa a 6 a wic bdzie

Skadnia jest
nastpujca:
while (warunek)
instrukcja do
wykonania

powtarzalno dziaania
Lotto = 1
while (lotto < 7) lub (lott<=6) // w obu przypadkach ptla wykona si 6 razy
{
Losowanie liczby lotto;
Lotto = lotto + 1;
}
*instrukcja while rozpoczyna si od sowa kluczowego while
*petla while uywa wyraenia logicznego, w skrcie zwanego warunkiem
*jeeli warunek jest speniony, czyli przyjmuje warto true, caa zawarto bloku kodu
zostanie wykonana
*co to takiego blok kodu? Jest to zbir instrukcji, ktre w naszym przykadzie zostay zawarte
w nawiasach klamrowych
*jeeli warunek bdzie speniony, po wykonaniu bloku kodu, wracamy na pocztek ptli i
realizujemy go ponownie. Jeeli natomiast warunek bdzie false to ptla zostanie
zakoczona i nie wykona si instrukcja.
Na pocztku programu tworzona jest zmienna lotto, ktra przyjmuje warto 1. Nastpnie
dodano do kodu ptl, ktra sprawdza, jaka jest warto ww. zmiennej. Jeeli zmienna lotto

16

jest mniejsza od 7 to nastpuje losowanie liczby oraz zwikszenie wartoci zmiennej lotto.
Zmienna stanu jest modyfikowana tylko i wycznie w przypadku, gdy zostao wpisane
poprawne haso. Po modyfikacji wartoci zmiennej stanu na True, program przechodzi do
koca ptli i koczy jej dziaanie a take programu dalej nie ma instrukcji.
Proponuj wprowadzi wizualizacj graficzn dziaania ptli - ok

I.5.2 Ptla do while

Ta ptla rni si od poprzedniej przede wszystkim tym, e zostanie przynajmniej raz


wykonana nawet, jeeli nie zostanie speniony warunek.

W przypadku tych dwch powyszych ptli nie wiemy ile


razy zostan wykonane - jest to uzalenione jedynie od
warunku, ktry zosta przez Was okrelony.

do
instrukcja do
wykonania
while( warunek )

Przykad
Lotto = 6
do
{
Losowanie liczby lotto;
Lotto = lotto + 1;
} while (lotto < 7) lub (lott<=6) // w obu przypadkach ptla wykona si 6 razy

I.5.3 Ptla for

Ta ptla charakteryzuje si tym, e moemy przy jej deklaracji


ustali, ile razy zostanie wykonana i najczciej stosowana jest
przy operacjach na tablicach takich jak wypenianie tablic,
wywietlanie oraz dokonywanie operacji na tablicach.

for ( warunek )
instrukcja do
wykonania

Przykad
Maszyna do losowanie liczb lotto tym razem przy wykorzystaniu ptli for
for( lotto=1; lotto<=6; lotto=lotto+1)

17

Losowanie liczby lotto.

Rozdzia II Podstawowe funkcje, zapoznanie z


wbudowanymi funkcjami, bibliotekami, ktre je
obsuguj
/Barbara Halska/
Podobnie jak biblioteka szkolna zawiera ksiki o rnej tematyce, tak biblioteki w jzykach
programowania mog zawiera rne funkcje, z ktrych moemy korzysta w naszym
programie. Korzystanie z bibliotek pozwoli Wam na rozbudowanie programu o dodatkowe
moliwoci, a przy okazji zwolni z tworzenia wasnego rozwizania. Po co zatem wywaa
otwarte drzwi?
Ju zdobylicie nieco informacji programistycznych, wic nadszed czas na uycie
supermocy, czyli zapoznanie si z funkcjami. Funkcje daj moliwo wykorzystanie w
ramach niej kodu we wszelkich moliwych okolicznociach, a wic wielokrotnie.

II.1 Biblioteki

Kady jzyk posiada biblioteki, po zaczeniu ktrych moemy korzysta z funkcji, procedur
oraz instrukcji.

Biblioteka zawierajca funkcje wejcia/wyjcia


Zawiera przede wszystkim funkcje, ktre pozwalaj przyjmowa dane wejciowe
uytkownika oraz wywietla je z powrotem. Dziki temu mona np. odczyta co jest
wpisywane, korzystajc z klawiatury, jak porusza si myszka. Ta biblioteka obsuguje te
monitor, a wic instrukcje zwizane z wywietlaniem na ekranie.

Biblioteka zawierajca funkcje matematyczne


Biblioteka matematyczna posiada funkcje, ktre umoliwiaj rne bardziej skomplikowane
obliczeniowo dziaania. Przykadem takiej funkcji jest funkcja pierwiastkowania. Kolejne
funkcje przydatne to np. random, ktra umoliwia losowanie liczb ze zbioru.

Przeprowadzimy analiz kodu:

18

Tworzymy funkcj, ktra bdzie oblicza redni ocen, a nastpnie informowa o tym, czy
ucze ma czerwony pasek czy nie.
nr_dziennik = 13
oceny = [ 4,4,4,5,5,5]
srednia = (oceny[0] + oceny[1] + oceny[2] + oceny[3] + oceny[4] + oceny[5])/6
if (srednia >= 4,75 )
pisz ("gratuluj")
else
pisz ("moe uda si za rok")
nr_dziennik = 18
oceny = [ 4,4,4,2,5,5]
srednia = (oceny[0] + oceny[1] + oceny[2] + oceny[3] + oceny[4] + oceny[5])/6
if (srednia >= 4,75 )
pisz ("gratuluj")
else
pisz ("moe uda si za rok")
Co zauwaylicie, dokonujc analizy powyszego kodu? Wybierzcie poprawne odpowiedzi

Kod jest czytelny,

Kod si powtarza,

Gdybymy chcieli zrobi analiz wszystkich uczniw w klasie, musielibymy powtrzy kod
wiele razy co wymaga sporej pracy,

Wpisywanie tego kodu byoby mczce.

Czy mona ten powtarzalny kod zapisa raz, a wykona tyle razy, ile program bdzie
potrzebowa? To moliwe wanie dziki zastosowaniu funkcji. To tak jak w przypadku
funkcji pisz, ktra wywietla komunikaty na ekranie.

II.2 Funkcje

Funkcje pozwalaj wyodrbni fragment kodu, nada mu nazw, a nastpnie odwoa si do


niego wszdzie tam, gdzie jest to potrzebne.

19

function nazwa_funkcji ()
instrukcja funkcji
Definicja funkcji rozpoczyna si od sowa kluczowego function, a nastpnie jest podawana
nazwa funkcji.
Stworzenie funkcji to tzw. deklaracja funkcji. Cay kod, ktry naley do danej funkcji ma
mniejsze znaczenie od samej deklaracji tak samo jak kod w ptlach i warunkach, dlatego
jest inaczej wyrwnany.

nazwa_funkcji () // wywoanie funkcji


Uycie funkcji w kodzie nazywane jest wywoaniem. Wywoanie nastpuje zawsze na
zawoanie uytkownika kod nie ma prawa wykona si sam z siebie nawet w
momencie deklaracji. Aby uy funkcji trzeba poda jej nazw. Instrukcje umieszczone w
ciele funkcji s wykonywane od gry do dou tak samo jak kady inny kod. Rnica polega
na tym, e wykonywane s wycznie wtedy, kiedy zostanie wywoana funkcja. Funkcja
moe co zwraca lub nie.
Przykad: Funkcja, ktra bdzie dodawa dwie liczby
funkcja dodaj(A, B)
{
zwr A + B;
}
Z=1
Y=2
dodaj(z,y); //zwrci 3
W tym przykadzie powinnicie zauway, e nazwa

zmiennych

programie

przekazywanych jako parametr funkcji nie jest wana.

Zmienne wewntrz funkcji, czyli zasig widzenia zmiennych


Zmienne zadeklarowane wewntrz funkcji s tylko dla niej dostpne. Jeeli chcesz, eby
mona byo ich uy poza funkcj, to skorzystaj ze zmiennych globalnych, pamitajc, e
takie rozwizanie, moe mie rwnie wad, gdy operacja na tych samych zmiennych w

20

kilku funkcjach moe spowodowa, e wynik operacji na nich zmieni funkcjonalno


programu.
Deklaracje zmiennych umieszczane wewntrz funkcji dziaaj dokadnie tak samo jak te
umieszczane poza funkcjami, przynajmniej w tym sensie, e powoduj utworzenie zmiennej
i zapisanie w niej pocztkowej wartoci. Jednak rnica pomidzy zmienn zadeklarowan
poza funkcj oraz zmienn, ktra deklarowana jest wewntrz funkcji zaley od tego, gdzie
bdziemy chcieli z nich skorzysta. Te, ktre znajduj si w funkcji, s zmiennymi lokalnymi
i do nich moemy odwoywa si tylko w obrbie funkcji, a zmienne znajdujce si poza
funkcj s zmiennymi globalnymi. Ma to bardzo due znaczenie, bo zmienne zadeklarowane
wewntrz funkcji nie s widoczne dla innych fragmentw kodu.

Rozdzia III Programowanie obiektowe i strukturalne, przygotowanie


funkcjonalnych aplikacji, analiza zoonoci projektu, optymalizacja
kodu
/Pawe Bensel/

Programowanie polega na zapisie rozwizania okrelonego problemu w jzyku zrozumiaym


dla komputera. Rozwizywanym zadaniem moe by proste sumowanie kolejnych liczb, ale
moe

ono

dotyczy

rwnie

skomplikowanych

algorytmw

obliczeniowych

czy

przetwarzajcych dane uytkownikw.


Programowanie pozwala na przetwarzanie danych w okrelony przez programist sposb
moe ono dotyczy zarwno wywietlania ich na ekranie, formatowania wydruku czy
przeprowadzenia oblicze i zapisywania danych do bazy danych w celu ich pniejszego
wykorzystania.
Wybr sposobu programowania zaleny jest od rozwizywanych problemw. Do prostych,
niepowtarzalnych zada mona wykorzysta proste programowanie przy uyciu funkcji;
bardziej zoone zadania dotyczce przetwarzania danych najczciej wykorzystuj
programowanie obiektowe, ktre dziki swoim cechom takim jak dziedziczenie czy
polimorfizm pozwalaj na szybsze i wygodniejsze tworzenie aplikacji.

III.1. Programowanie strukturalne


Programowanie strukturalne zakada tworzenie programw jako zestawu funkcji, ktrych
kolejno wykonania kontrolowana jest poprzez instrukcje warunkowe oraz ptle. Funkcje te

21

definiowane s przez programistw w celu zwrcenia okrelonego wyniku dziaania na


parametrach wejciowych lub wykonania pewnego dziaania.

Programowanie strukturalne w przeciwiestwie do programowania obiektowego trudniej


odwzorowuje rzeczywisto, gdy bardziej koncentruje si na algorytmach przetwarzania
danych, a nie na strukturach i ich metodach.

III.2. Programowanie obiektowe


Najbardziej

rozpowszechnionym

programowanie

obiektowe,

paradygmatem

gdzie

wykonywany

(wzorcem)
program

programowania

skada

si

jest

obiektw

komunikujcych si midzy sob w przeciwiestwie do programowania strukturalnego gdzie


program skada si z sekwencyjnie wykonywanych funkcji.
Programowanie obiektowe pozwala na lepsze odwzorowanie rzeczywistoci w jzyku
programowania, pozwala na lepsz organizacj kodu oraz jego wielokrotne wykorzystanie,
dziki czemu oprogramowanie powstaje szybciej, a co za tym idzie kosztuje mniej.
Kady obiekt w

programowaniu podobnie jak w

rzeczywistoci

posiada pewne

cechy(waciwoci), ktre go charakteryzuj oraz zachowania(metody), ktre su do jego


przetwarzania, np.
Obiektem moe by kwadrat, jego wasnoci jest dugo bokw, a metodami funkcje
zwracajce pole powierzchni oraz obwd.
Aby w jzyku programowania stworzy obiekt, w pierwszym kroku naley zdefiniowa jego
struktur - w tym celu tworzymy tzw. Klas opisujc wasnoci oraz funkcje a nastpnie
tworzymy konkretny obiekt danej klasy.
Oglny zapis definicji klasy i stworzenia obiektu wyglda w sposb nastpujcy:
PRZYKAD:
CLASS KWADRATKLASA { //DEKLARACJA KLASY O NAZWIE KWADRATKLASA
INT DLUGOSC_BOKU; //DEKLARACJA WACIWOCI O NAZWIE DLUGOSC_BOKU
FUNCTION PRZYPISZ_DLUGOSC_BOKU(INT BOK) //DEKLARACJA FUNKCJI PRZYPISZ_DLUGOSC_BOKU
SUCA DO PRZYPISANIA OBIEKTOWI WACIWOCI DLUGOSC_BOKU
{
DLUGOSC_BOKU=BOK; //INSTRUKCJA PRZYPISANIA WACIWOCI DLUGOSC_BOKU ZMIENNEJ BOK BDCEJ
PARAMETREM FUNKCJI

}
FUNCTION POLE() //DEKLARACJA FUNKCJI POLE ZWRACAJCEJ POLE POWIERZCHNI KWADRATU O
ZADEKLAROWANEJ DUGOCI BOKU

{
RETURN DLUGOSC_BOKU* DLUGOSC_BOKU;

22

FUNCTION OBWOD()//DEKLARACJA FUNKCJI OBWOD ZWRACAJCEJ OBWD KWADRATU O ZADEKLAROWANEJ


DUGOCI BOKU

{
RETURN 4* DLUGOSC_BOKU;

}
}

KWADRAT

= NEW KWADRATKLASA; //UTWORZENIE OBIEKTU O NAZWIE KWADRAT KLASY KWADRATKLASA

KWADRAT.PRZYPISZ_DLUGOSC_BOKU(4); //URUCHOMIENIE FUNKCJI PRZYPISZ_DLUGOSC_BOKU Z


PARAMETREM 4

PRINT(POLE KWADRATU WYNOSI , KWADRAT.POLE()); //WYPISANIE WARTOCI FUNKCJI POLE DLA OBIEKTU
KWADRAT
PRINT(OBWD KWADRATU WYNOSI, KWADRAT.POLE());//WYPISANIE WARTOCI FUNKCJI OBWD DLA
OBIEKTU KWADRAT

III. 2.1 Programowanie obiektowe charakteryzuje si


nastpujcymi cechami:
Hermetyzacja to mechanizm ukrywania danych skadowych obiektu (zarwno metod jak i
waciwoci) przed innymi klasami w ten sposb, aby byy one dostpne tylko metodom
wewntrznym danej klasy. Takie blokowanie dostpu pozwala atwiej kontrolowa
przetwarzane dane np. udostpniane waciwoci mog by zapisywane i przetwarzane
tylko przez wewntrzne metody danej klasy, co pozwala na atwiejsz kontrol zarwno
przetwarzania danych jak i rwnie tworzenia kodu.
Ze wzgldu na fakt, e komunikacja pomidzy obiektami nastpuje tylko i wycznie poprzez
metody danej klasy hermetyzacja pozwala m.in. na atwiejszy podzia prac przy duych
projektach programistycznych definiujc metody komunikacji midzy obiektami mona
rozdzieli implementacje poszczeglnych klas pomidzy programistw, ktrzy musz
przestrzega ustalonych regu komunikacji.
Zakresy dostpu do metod oraz waciwoci obiektw mog by zdefiniowane wraz z klas
przy uyciu sw kluczowych Public, private protected.
Metody i waciwoci opisane jako public widoczne s publicznie, dla wszystkich innych
obiektw, opisane jako protected bd dostpne dla obiektw nalecych do klas
potomnych, opisane jako private dostpn s tylko dla danego obiektu.
Dziedziczenie to mechanizm pozwalajcy na wspdzielenie tworzonych funkcjonalnoci
pomidzy klasami (a wic rwnie obiektami danych klas). Klasa dziedziczca (zwana take
pochodn lub potomn) moe dziedziczy po innej klasie (tzw. klasa bazowa) dziki czemu
oprcz swoich wasnych waciwoci i metod posiada rwnie wasnoci i metody klasy
bazowej.

23

Dziedziczenie pozwala na wielokrotne wykorzystanie tworzonego kodu tworzc


oprogramowanie gdzie klasy wykonuj podobne zadania mona stworzy uoglnione klasy
ze wsplnymi metodami i wasnociami, a nastpnie tworzc klasy pochodne mona
uszczegowi funkcjonalnoci do konkretnych potrzeb np.
Projektujc aplikacj gdzie przetwarzane bd dane Klientw oraz pracownikw mona
utworzy klas Osoba, ktra bdzie zawiera wsplne wasnoci takie jak imi, nazwisko,
data urodzenia, PESEL, adres, numer telefonu oraz metody do zapisu i odczytu do bazy
danych zapisz oraz czytaj.
Klasa Klient bdzie dziedziczy wasnoci oraz metody po klasie osoba oraz zawiera
specyficzne wasnoci takie jak adres kontaktowy, nazwa firmy czy numer NIP. Klasa
Pracownik bdzie zawiera dodatkowe wasnoci takie jak data zatrudnienia, wysoko
pensji czy metody takie jak oblicz premi.
Taki podzia na klas bazow oraz klasy potomne pozwala na wykorzystanie tego samego
kodu, dziki czemu tworzone oprogramowanie powstaje szybciej, jest mniej podatne na
bdy oraz atwiejsze do testowania.
Polimorfizm - to mechanizm pozwalajcy na zmian zachowania takich samych metod w
zalenoci od obiektu, ktry je wywouje.
Analizujc poprzedni przykad polimorfizm umoliwia, aby metoda dziedziczona zapisz do
bazy inaczej dziaaa, gdy zostanie wywoana przez obiekt klasy Klient oraz inaczej gdy
wywoana zostanie przez obiekt klasy Pracownik w pierwszym przypadku oprcz
wsplnych danych imi, nazwisko, data urodzenia, PESEL, adres, numer telefonu zapisane
zostan dodatkowo adres kontaktowy, nazwa firmy oraz numer NIP, w drugim przypadku
oprcz danych wsplnych dodatkowo zachowane zostan dane typowe dla pracownikw:
data zatrudnienia, wysoko pensji

III. 2.2 Konstruktory i Destruktory

Programowanie obiektowe pozwala na stworzenie specjalnych metod ktre uruchamiane s


w momencie utworzenia obiektu danej klasy (konstruktory) i w momencie usunicia obiektu
z pamici (destruktory). Konstruktory pozwalaj na przypisanie wstpnych (domylnych)
parametrw danego obiektu.
Deklaracja konstruktorw i destruktorw jest zalena od jzyka programowania moe to
by funkcja, ktra nazywa si tak samo jak klasa, ktrej nazwa jest okrelona w jzyku

24

programowania lub

ktrej

deklaracja jest

poprzedzona

wymaganym

sowem

np.

(constructor).

Rozdzia IV Interakcja z otoczeniem (we/wy, bd)


zapisywanie i odczytywanie wynikw
/Pawe Bensel/

Wikszo aplikacji do dziaania potrzebuje sposobu komunikacji, dziki ktremu uytkownik


bdzie mia wpyw na jej dziaanie - czy to poprzez wprowadzenie danych do przetworzenia,
poruszania okrelonym elementem na ekranie, wybranie okrelonego elementu na ekranie,
czy chociaby wczytania konfiguracji potrzebnej do uruchomienia programu.
W zalenoci od budowanej aplikacji komunikacja aplikacji z otoczeniem prowadzona jest
przy uyciu rnych kanaw. Mog to by operacje wprowadzania danych z klawiatury,
wczytywania ich z pliku czy z odczyt z bazy danych. W nowoczesnych aplikacjach
mobilnych czsto polecenia do aplikacji wydawane s poprzez klikanie okrelonych
elementw wywietlanych na ekranie. Wprowadzone dane czy te wybranie okrelonych
elementw mog mie wpyw na dziaanie aplikacji i powodowa rn reakcje aplikacji.
Operacje pobierania danych i ich przekazywania do uytkownika nazywa si operacjami
wejcia wyjcia.

IV.1. Operacje Wejcia - wyjcia

Wikszo aplikacji musi pobiera dane do przetworzenia mog to by dane pobierane np.
z klawiatury, graficznego interfejsu uytkownika, plikw czy bazy danych. Przetworzone
dane mog by przekazywane wywietlane na ekranie (tzw. urzdzenia wyjcia), zapisane
do pliku czy przekazane do bazy danych.
W zalenoci od jzyka programowania funkcje zwizane z odczytywaniem i zapisywaniem
danych dostpne mog by w zewntrznych bibliotekach.

IV.1.1 Operacje wejcia wyjcia dla klawiatury i monitora


(konsoli)

Najczciej operacje wejcia-wyjcia zapisuj dane do zmiennych, aby wykorzysta je w


pniejszym etapie.
Przykadowa operacja wczytywania danych z klawiatury i ich wywietlenia na monitorze
wyglda w sposb nastpujcy:

25

VAR
ZMIENNA: INTEGER; //DEKLARACJA ZMIENNEJ LICZBOWEJ

/*UWAGA OD AUTORA:
W ZALENOCI OD UYWANEGO JZYKA PROGRAMOWANIA
NIE BY WYMAGANA.
*/

WCZENIEJSZA DEKLARACJA ZMIENNYCH MOE

ZMIENNA=READ(); //PRZYPISANIE DO ZMIENNEJ WARTOCI ZACZYTANA Z KLAWIATURY


PRINT(ZMIENNA); //WYPISANIE WARTOCI ZMIENNEJ

FUNKCJE WYPISUJCE DANE NA EKRAN CZSTO POZWALAJ CZY WIELE ZMIENNYCH, WYWIETLA
WYNIKI OPERACJI NA ZMIENNYCH CZY CZY JE Z DOWOLNYMI ACUCHAMI ZNAKW, NP.:
VAR
LICZBA1, LICZBA2: INTEGER; //DEKLARACJA ZMIENNEJ LICZBOWEJ
PRINT(TEN PROGRAM OBLICZA SUM DWCH LICZB );
PRINT(PODAJ PIERWSZ LICZB: );
LICZBA1=READ();
PRINT(PODAJ DRUG LICZB: );
LICZBA2=READ();
PRINT(SUMA PODANYCH LICZB WYNOSI,LICZBA1+LICZBA2);

/*UWAGA OD AUTORA:
W ZALENOCI OD UYWANEGO JZYKA PROGRAMOWANIA PARAMETRY FUNKCJI WYPISUJCEJ ZMIENNE
MOG BY RNE.
*/

IV.1.2 Operacje na plikach

Wikszo jzykw programowania pozwala na operacje odczytu i zapisu danych do plikw.


Dane zapisywane do pliku mog by danymi tekstowymi, ale rwnie mog to by pliki
binarne w okrelonym formacie np. pliki graficzne czy pliki dwikowe.
Po wczytaniu danych mog by one przetworzone w kodzie programu i ponownie zapisane
do pliku. Najczciej operacja dostpu do pliku wymaga jego otworzenia przy pomocy
odpowiedniej funkcji jzyka programowania.

26

Podczas otwarcia pliku jako parametr funkcji otwierajcej plik - podajemy tryb dostpu do
pliku najczciej spotykane tryby to:

tryb do odczytu (read) oznaczany jako R

tryb do zapisu (write) oznaczany jako W

tryb do zapisu i odczytu (read/write) oznaczany jako RW

tryb dopisywania do pliku (append)- oznaczany jako A

Kolejnym krokiem jest operacja odczytu lub zapisu do pliku, po ktrej naley zamkn plik
spowoduje on odczenie (zwollnienie) pliku, dziki czemu bdzie mg by wykorzystywany
przez inne programy dziaajce w systemie operacyjnym.

IV.1.3 Operacje na plikach tekstowych

W zalenoci od jzyka programowania operacje czytania z plikw tekstowych mog


dotyczy:

odczytu caego pliku

odczytu kolejnej linii z pliku

odczyt kolejnego znaku z pliku

odczyt okrelonej liczby bajtw z pliku

Niektre jzyki programowania w celu uatwienia sekwencyjnego przetwarzania plikw


oferuj funkcj bd zmienn oznaczajc znacznik koca przetwarzanego pliku (ang. END
OF FILE, skrt EOF), dziki czemu w kodzie mona uywa ptli do odczytu danych.

Oglny kod rdowy odczytu z pliku tekstowego plik.txt zapisanego w katalogu


/home/user/wyglda bdzie nastpujco:

EOF=FALSE; //PRZYPISANIE WARTOCI DO ZMIENNEJ TYPU LOGICZNEGO WYKORZYSTYWANEJ DO


SPRAWDZANIA KOCA PLIKU

PLIK = OPEN(/HOME/USER/PLIK.TXT,R);
WHILE (NOT EOF)

{
LINIA_TEKSTU =READ(PLIK); //PRZYPISANIE DO ZMIENNEJ WARTOCI ZCZYTANEJ Z KLAWIATURY
IF (LINIA_TEKSTU==)
EOF=TRUE; //WCZYTANO PUST LINI, CO OZNACZA KONIEC PLIKU

27

ELSE

PRINT(LINIA_TEKSTU); //WYDRUK LINII NA EKRANIE


}
CLOSE (PLIK);

IV.1.4 Operacje na plikach o zdefiniowanych formatach

Wiele jzykw programowania oferuje biblioteki zawierajce funkcje obsugi popularnych


formatw plikw takich jak pliki graficzne, pliki edytorw tekstw czy pliki PDF. Dostp do
tych plikw oraz oferowanych funkcji zaleny jest od konkretnej biblioteki. W przypadku
plikw graficznych funkcje te mog dotyczy np.

zmiany rozdzielczoci obrazu

zmiany rozmiarw obrazu

wycicia fragmentu obrazu

dodanie znakw wodnych lub innych efektw

wstawianie tekstu na obraz

Przykadowy kod rdowy programu do zmiany rozmiaru obrazu zapisanego w katalogu


/home/user w pliku zdjecie.jpg i zapisanie go pod nazw miniaturka.jpg:
IMPORT IMAGELIBRARY; //DOCZENIE BIBLIOTEKI OBSUGI PLIKW GRAFICZNYCH IMAGELIBRARY
PLIKGRAFICZNY = NEW IMAGE; //UTWORZENIE OBIEKTU Z KLASY IMAGE ZDEFINIOWANEJ W BIBLIOTECE
PLIKGRAFICZNY.OPEN(/HOME/USER/ZDJECIE.JPG); //OTWARCIE OBRAZ ZAPISANEGO W PLIKU
PLIKGRAFICZNY.RESIZE(320,240); //ZMIANA ROZMIARU OBRAZU
PLIKGRAFICZNY.SAVE(/HOME/USER/MINIATURKA.JPG); //ZAPIS OBRAZU DO PLIKU
PLIKGRAFICZNY.DESTROY(); //USUNICIE Z PAMICI OBIEKTU PLIKGRAFICZNY

IV.2 Zapis i odczyt danych z baz danych

Wikszo wspczesnych aplikacji przetwarzajcych dane korzysta z serwerw baz danych


- jest to usuga (program) dziaajca na dowolnym serwerze (ktrym moe by rwnie
dowolny komputer w tym rwnie komputer programisty). Serwery baz danych pozwalaj na
zapis, odczyt i manipulacj danymi w okrelony standardowy sposb. Ze wzgldu na
standaryzacj dostpu do danych, moliwoci zabezpieczenia danych, moliwoci dostpu

28

przez wielu uytkownikw serwery baz danych s wygodnym narzdziem to zapisywania


danych.
Do najbardziej popularnych serwerw baz danych nale:

MySql

PostrgeSQL

MS Sql

SQLite

Dostp do danych zapisanych w bazach danych umoliwia jzyk SQL (ang. Structured
Query Language) strukturalny jzyk zapyta.
Najczciej wykonywane operacje dotyczce danych to:

Tworzenie danych i struktur (ang. create)

Odczyt danych (ang. read)

Aktualizacja danych (ang. update)

Usuwanie oznacza operacje usuwania danych

IV.2.1 Krtka teoria dotyczca baz danych

W systemach baz danych dane przechowywane s w tabelach o okrelonej strukturze.


Chcc zapisa w tabeli dane pracownikw naley stworzy tabel zawierajc wymagane
pola o okrelonym typie, np.:

Imi pole tekstowe o dugoci 100 znakw

Nazwisko pole tekstowe o dugoci 100 znakw

Numer PESEL pole tekstowe o dugoci 11 znakw

Data urodzenia pole typu data

Wynagrodzenie pole typu liczba zmiennoprzecinkowa

Liczba dzieci pole typu liczba cakowita

Przy zapisie danych do bazy warto utworzy dodatkowe pole pozwalajce jednoznacznie
zidentyfikowa poszczeglny wiersz (rekord) w tabeli. Takie pole najczciej jest polem typu
liczba cakowita, ktrego warto przypisywana jest automatycznie przez serwer bazy
danych (w bazie MySql pole autoincrement). Pole, ktre jednoznacznie okrela rekord w
tabeli nazywane jest kluczem gwnym (ang. Primary Key), jest ono uywane podczas
operacji odczytu i zapisu pojedynczych rekordw w bazie.

Instrukcja utworzenia tabeli danych osobowych pracownikw w jzyku SQL (skadnia MySql)
wyglda nastpujco:

29

Create table Pracownicy


(id int not null autoincrement,
imi varchar(100),
nazwisko varchar(100),
pesel varchar(11),
data_urodzenia date,
wynagrodzenie decimal(10,2),
liczba_dzieci int,
primary key (id));
Aby wstawi dane do tabeli w bazie SQL korzystamy z instrukcji INSERT:

Insert into pracownicy (imie, nazwisko,


pesel,data_urodzenia,wynagrodzenie,liczba_dzieci) values
(Jan,Kowalski,79010100234,1979-01-01,1000.00,0);
Insert into pracownicy (imie, nazwisko,
pesel,data_urodzenia,wynagrodzenie,liczba_dzieci) values
(Anna,Nowak,79020300234,1979-02-03,2000.00,2 );
Po wykonaniu powyszych instrukcji w bazie danych zostan dodane dwa rekordy o
podanych wartociach oraz automatycznych przypisanych dla pola ID:

ID Imie Nazwisko Pesel Data_urodzenia Wynagrodzenie Liczba_dzieci

30

ID

imi

nazwisko

PESEL

Jan

Kowalski

Anna

Nowak

Data_urodzenia

Wynagrodzeni Liczba_dzie
e

ci

7901010023 1979-01-01

1000.00

7902030023 1979-02-03

2000.00

Odczyt danych z tabel umoliwia komenda SELECT. Poniej prezentowane jest kilka
przykadw dotyczcych wywietlania poszczeglnych rekordw:

SELECT * FROM pracownicy;


Zwrci wszystkie pola tabeli pracownicy

SELECT imie, nazwisko FROM pracownicy ORDER BY nazwisko,


imie;
Zwrci pola imi oraz nazwisko z tabeli pracownicy posortowane w kolejnoci alfabetycznej
wg nazwiska oraz imienia

SELECT * FROM pracownicy WHERE id=2;


Zwrci wszystkie pola z rekordu, dla ktrego warto pola ID (klucz gwny) wynosi 2 z
tabeli pracownicy.

SELECT * FROM pracownicy WHERE data_urodzenia>1979-01-31;

31

Zwrci wszystkie rekordy z tabeli pracownicy, dla ktrego warto pola data urodzenia jest
wiksza ni 1979-01-31 czyli zwrci rekordy dotyczce osb urodzonych po 31 stycznia
1979.

Aby zmieni wartoci poszczeglnych pl w tabelach naley uy komendy UPDATE.


Przykadowa skadnia polecenia przedstawiona jest poniej:

UPDATE pracownicy SET wynagrodzenie=1500.00;


Polecenie przypisze dla wszystkich wierszy w tabeli pracownicy wynagrodzenie w wysokoci
1500.

UPDATE pracownicy SET wynagrodzenie=wynagrodzenie*1.2


where liczba_dzieci >=1;
Polecenie zwikszy wynagrodzenie o 20% dla wszystkich wierszy w tabeli pracownicy
wynagrodzenie w wysokoci 1500 dla osb posiadajcych wicej ni jedno dziecko.

UPDATE pracownicy SET liczba_dzieci=liczba_dzieci+1 where id=1;


Polecenie zwikszy warto pola liczba_dzieci o jeden dla wiersza oznaczonego
identyfikatorem (kluczem gwnym) 1.

Za usuwanie danych w bazach danych odpowiada polecenie DELETE.

DELETE from pracownicy;


Usuwa wszystkie rekordy z tabeli pracownicy.

DELETE from pracownicy where nazwisko =Kowalski;


Usuwa pracownika o nazwisku Kowalski

32

IV.2.2 Komunikacja z baz danych

W celu bezpieczestwa danych przechowywanych w bazach danych dostp do nich


wymaga autoryzacji przy uyciu nazwy uytkownika oraz hasa dane te konfigurowane s
przez administratora bazy danych.
Do podczenia do serwera bazy danych wymagane s nastpujce parametry:

Nazwa serwera baz danych

Port, na ktrym dziaa serwer baz danych

Nazwa bazy danych

Nazwa uytkownika

Haso uytkownika

Najczciej w jzykach programowania mechanizmy komunikacji z bazami danych dostpne


s w zewntrznych bibliotekach.
Niezalenie od jzyka programowania oraz uywanych baz danych komunikacja z serwerem
bazodanowym przebiega podobnie:

Import DBLibrary; //doczenie biblioteki obsugi bazy danych


DBLibrary
baza = new DBClass; //utworzenie obiektu z klasy DBClass
zdefiniowanej w bibliotece
baza.connect(localhost,3306,dbname,user,password123);
//otwarcie poczenia do bazy danych dbname dziaajcej na
serwerze lokalnym (localhost) na porcie 3306 jako uytkownik user
z hasem password123
baza.query(SELECT * FROM pracownicy order by nazwisko, imie);
// zapytanie SELECT
result=baza.fetchAll(); //pobranie wyniki wykonanego zapytania do
zmiennej tablicowej result;
foreach (result as row) //ptla wykonywana dla wszystkich wierszy
zmiennej result oznaczanych w kolejnych iteracjach jako zmienna
row
{
33

print(row[imie], row[nazwisko]); //wydruk na ekranie pl nazwisko


oraz imie kolejnych wierszy zmiennej result
}
baza.disconnect(); //zakoczenie poczenia z baz danych
baza.destroy();//usunicie obiektu z pamici
Podobny mechanizm komunikacji z serwerem baz danych ma zastosowanie w przypadku
innego rodzaju zapyta np, dodajcych czy aktualizujce dane wwczas zmianie ulega
tre zapytania w jzyku SQL wysyana do serwera bazy danych oraz analiza odpowiedzi.

IV.2.3 Bazy danych noSQL

Wraz z rozwojem internetu i nowych technologii zmienio si rwnie podejcie do


przechowywania danych. Dane zapisane w tabelach, kolejne zaindeksowane wiersze w
tabeli nie zawsze s wygodne przy przechowywaniu skomplikowanych i nieregularnych
struktur danych.
Serwery baz danych noSQL zapewniaj mechanizm przechowywania i dostpu do danych,
ktre nie s przechowywane w regularnych tabelach, na ktrych manipulacja jest bardziej
intuicyjna i nie wymaga znajomoci jzyka SQL. Dodatkowym atutem jest brak utrudnie
zwizanych ze zmianami w strukturze danych dziki czemu czsto serwery baz danych
noSQL wykorzystywane s przy przetwarzaniu duych iloci danych (ang. Big data).
Do najbardziej popularnych serwerw baz danych noSQL nale:
MongoDB
Apache Cassandra
Redis
Solr
W przeciwiestwie do danych zapisanych w tabelach SQL dane w bazach noSQL nie
posiadaj okrelonej struktury poszczeglne rekordy w bazie noSQL (odpowiadajce
wierszom) zapisywane s w tzw. Kolekcji mog rni si kolejnymi atrybutami
(odpowiadajcymi kolumnom w tabeli SQL).
Sprbujmy przeanalizowa przykad zapisu i odczytu danych dotyczcy pracownika w
bazach noSQL (na przykadzie MongoDB).

34

Jak powiedziano wczeniej bazy noSQL nie wymagaj wczeniejszej definicji struktury
danych, wystarczy jedynie deklaracja kolekcji, do ktrej zapisywane bd dane o dowolnie
zdefiniowanych polach.

db.createCollection("pracownik");

Polecenie to stworzy w bazie danych kolekcj o nazwie pracownik.


Aby doda dane naley uy komendy insert, ktrej parametrami s nazwy pl i ich
wartoci.

db.pracownik.insert({"imie":"Anna","nazwisko":"Nowak","pesel":"7
9020300234","data_urodzenia":"1979-02-03","wynagrodzenie
":2000.00, "liczba_dzieci":0});
Kolejny wpis do bazy moe rni si definicj danych nie jest wymagane podanie
wartoci poszczeglnych pl, ktre zostay zdefiniowane wczeniej, mog by wstawiane
zupenie inne dane.

db.pracownik.insert({"imie":"Jan","nazwisko":"Kowalski","pesel":"
79010100234","data_urodzenia":"1979-01-01","wynagrodzenie
":1000.00, "numer_telefonu":"501 501 501"});
Po dodaniu danych serwer bazy danych automatycznie nada identyfikator wprowadzonemu
rekordowi bdzie on zapisany w polu _id. Automatyczne indeksowanie kolejnych rekordw
moe by wyczone na etapie tworzenia kolekcji.

db.pracownik.find()
Zwrci wszystkie pola tabeli pracownicy

db.pracownik.find().sort({"nazwisko":1, "imie":1})

Zwrci dane pracownikw posortowane w kolejnoci alfabetycznej wg nazwiska oraz imienia

db.pracownik.find({_id:2})

Zwrci wszystkie pola z rekordu, dla ktrego warto pola _id (klucz gwny) wynosi 2 z
tabeli pracownicy.

SELECT * FROM pracownicy WHERE data_urodzenia>1979-01-31;


db.pracownik.find({ data_urodzenia: { $gt : 1979-01-31 } })
35

$gt wiksze ni
$lt mniejsze ni
Zwrci wszystkie rekordy pracownikw, dla ktrych warto pola data urodzenia jest
wiksza ni 1979-01-31 czyli dane dotyczce osb urodzonych po 31 stycznia 1979. W
celu porwnywania danych uywane s nastpujce operatory:
Aby zmieni wartoci poszczeglnych pl w tabelach naley uy komendy UPDATE.
Przykadowa skadnia polecenia przedstawiona jest poniej:

db.pracownik.update({},{ $set :{ "wynagrodzenie":1500} })

Polecenie przypisze dla wszystkich pracownikw wynagrodzenie w wysokoci 1500.

UPDATE pracownicy SET liczba_dzieci=liczba_dzieci+1 where id=1;


db.pracownik.update({"_id":1},{ $inc :{ "liczba_dzieci":1} })

Polecenie zwikszy warto pola liczba_dzieci o jeden dla wpisu oznaczonego


identyfikatorem (kluczem gwnym) 1.

Za usuwanie danych w odpowiada polecenie REMOVE.

db.pracownik.remove({})
Usuwa wszystkie rekordy z tabeli pracownicy.

db.pracownik.remove({"nazwisko":"Kowalski"})
Usuwa pracownika o nazwisku Kowalski
Wikszo nowoczesnych jzykw programowania zawiera biblioteki obsugujce bazy
noSQL ich obuga najczciej podobna jest do obsugi baz SQL, z t rnic, e dostp do
danych nie jest zapewniany przez zapytania SQL ale przy pomocy odpowiednich metod
obiektu reprezentujcego baz danych.
Oglna posta dostpu do bazy noSQL wyglda w sposb nastpujcy:

Import NoSQLLibrary; //doczenie biblioteki obsugi bazy danych


DBLibrary
36

baza = new NoSQLClass; //utworzenie obiektu z klasy DBClass


zdefiniowanej w bibliotece
baza.open(localhost,2233,dbname,user,password123);
//otwarcie poczenia do bazy danych dbname dziaajcej na
serwerze lokalnym (localhost) na porcie 2233 jako uytkownik user
z hasem password123
var pracownicy=baza.collection(pracownicy); // przypisanie do
obiektu pracownicy kolekcji pracownicy z bazy danych noSQL.
resullt=pracownicy.find({"nazwisko":"Kowalski"}).sort({"nazwisko":
1, "imie":1})
foreach (result as row) //ptla wykonywana dla kolejnych danych w
zmiennej result oznaczanych w kolejnych iteracjach jako zmienna
row
{
print(row.imie, row.nazwisko.); //wydruk na ekranie pl nazwisko
oraz imie kolejnych wierszy zmiennej result
}
baza.disconnect(); //zakoczenie poczenia z baz danych
baza.destroy();//usunicie obiektu z pamici
Funkcje obsugujce konkretne operacje na danych zalene s od wybranego jzyka
programowania.

37

Rozdzia V Interfejsy graficzne, projektowanie interfejsu graficznego


/Pawe Bensel/
Interfejs uytkownika (ang. user interface, UI) to cz aplikacji odpowiadajca na
komunikacj z uytkownikiem. Uytkownik nie ma moliwoci bezporedniej komunikacji z
systemem komputerowym, komunikacja obsugiwana jest przez stworzony infterfejs
uytkownika, ktry moe przyjmowa jedn z nastepujcych postaci:
Wiersz polece (linia komend) polecenia wydawane s przy pomocy zdefiniowanych
komend wpisywanych na klawiaturze. Przykadem tego rodzaju interfejsu jest system DOS,
wiersz polece systemu Windows, czy Windows PowerShell .

Interfejs/tryb tekstowy polecenia wydawane s klawiatur lub myszk, elementy interfejsu


wywietlane s na ekranie w trybie tekstowym, przy uyciu znakw specjalnych budowane
s prostokty imitujce okna, przyciski itp. Przykadem uycia interfejsu tekstowego jest
program Midnight commander

Interfejs/tryb

graficzny informacje s prezentowane w formie graficznej, komendy

wykonywane s poprzez wskazanie kliknicie myszk lub wskazanie elementu na ekranie


dotykowym.

Nowoczesne aplikacje najczciej pracuj w trybach graficznych, dziki czemu ich wygld
jest bardziej przyjazny dla uytkownika. Graficzna prezentacja dziaa aplikacji oraz

38

komunikacji z uytkownikiem nazywana jest interfejsem graficznym. Interfejsy graficzne to


cz tzw. User Experience (z ang. dowiadczenie uytkowania), ktre obejmuje cao
wrae, jakich dowiadcza uytkownik podczas korzystania z danego produktu. O wygodzie
uytkowania z okrelonego interfejsu decyduje ukad poszczeglnych elementw na
ekranie, ich uoenie wzgldem siebie, moliwo szybkiego dostpu do okrelonych funkcji,
ale rwnie wybrana czcionka czy uyte ikony, ich wielko czy kolor.
Aplikacje uruchamiane w wierszu polece wymagaj od uytkownika zaznajomienia si z
dokumentacj lub pomoc okrelonego polecenia, aby mc uruchomi poszczeglne
funkcje.
W trybie tekstowym uruchamia mona rwnie aplikacje, dla ktrych utworzony zosta
tekstowy interfejs (np. Midnight Commander) - s on bardziej przyjazne od aplikacji
uruchamianych w wierszu polece, bardzo czsto na ekranie wywietlane s informacje
opisujce poszczeglne funkcje, uytkownik nie musi zna okrelonych komend, poniewa
polecenia wydawane s poprzez wybr elementw na ekranie (najczciej okrelonym
skrtami klawiszowymi lub przy pomocy strzaek na klawiaturze).
Najwiksz popularnoci ciesz interfejsy graficzne s on bardzo intuicyjne, przejrzyste i
przyjazne dla uytkownika. Poszczeglne funkcje aplikacji uruchamiane s poprzez
przyciski i ikony, ich wielko powinna by dopasowana do urzdzenia, na ktrym dziaa
aplikacja, wpisywanie tekstu z klawiatury uywane jest tylko do przekazywania danych
wejciowych.
Zasadami tworzenia dowiadcze uytkownika mwi, e powinny by one pozytywnie
odbierane przez uytkownia i zaprojektowane zgodnie z podejciem zorientowanym na
uytkownika (ang. user-centered design), co oznacza, e uytkownik aplikacji bierze udzia
w kolejnych etapach jej tworzenia.

V.1. Projektowanie interfejsu graficznego


uytkownika

W pierwszych latach uytkowania komputerw komunikoway si one z uytkownikami przy


pomocy komunikatw wywietlanych na ekranie, wprowadzanie danych odbywao si przy
pomocy klawiatury.
Wraz ze wzrostem moliwoci sprztu oraz dostpnoci urzdze wspomagajcych
obsug grafiki interfejs tekstowy zosta zastpiony przez graficzny interfejs uytkownika.
Obecnie zdecydowana wikszo aplikacji dostpna jest rwnie na urzdzania mobilne,
gdzie komunikacja z uytkownikiem w gwnej mierze opiera si o interfejs graficzny.

39

Chcc stworzy doby interfejs graficzny aplikacji naley przeanalizowa nastpujce


aspekty jej dziaania:

Kim bd uytkownicy aplikacji? wygld i interakcja z uytkownikiem bdzie inna


dla dzieci, modziey czy seniorw, inaczej wygldaj aplikacje kierowane do
nastolatkw, inaczej dla klientw biznesowych

W jaki sposb nasza aplikacja bdzie wykorzystywana? Inaczej korzysta si z


aplikacji korzystajc z komputera wyposaonego w klawiatur i myszk, inaczej na
telefonie z niewielkim dotykowym ekranem. Co, co jest wygodne na duym ekranie
nie musi by wygodne i dostpne na mniejszym wywietlaczu.

Jakie treci bd prezentowane w naszej aplikacji? Biorc pod uwag, jakie dane
nasza aplikacja bdzie prezentowa uytkownikowi mona zastosowa rne
metody jej prezentacji inaczej wyglda bdzie katalog produktw w sklepie
internetowym,

inaczej

prezentowane

bd

dane

dotyczce

przepyww

finansowych.
Bardzo czsto interfejs urzdzenia czy aplikacji jest kluczowy w jej postrzeganiu przez
odbiorcw i moe zadecydowa o sukcesie lub porace danego produktu na rynku.
Doskonaym przykadem s projekty systemw obsugujcych telefony dotykowe w roku
2007 - czasie premiery przeomowego urzdzenia, jakim by telefon iPhone firmy APPLE.
Poniej prezentowane s interfejsy systemw Windows Mobile oraz iPhone OS (obecnie
iOS). Pierwszy z nich zawiera kilka tekstowych skrtw na pulpicie oraz znana z systemw
Windows Menu Start, drugi komunikuje si z uytkownikiem przy pomocy kolorowych ikon.
Dodatkowo do interfejsu dotykowego telefonu wprowadzono bardzo naturalne gesty
pozwalajce na wykonywanie rnych operacji, ktre bardzo przyspieszyy obsug
urzdzania i poszczeglnych aplikacji.

40

Ekran systemu Windows Mobile 6.5


https://en.wikipedia.org/wiki/Windows_Mobile#/media/File:Winmo65.PNG

Ekran systemu iPhone OS (obecnie iOS)

41

W zalenoci od przyjtej technologii tworzenia aplikacji wykorzystywany moe by interfejs


systemu operacyjnego w przypadku aplikacji dedykowanych lub interfejs oparty o jzyk
HTML w przypadku aplikacji www (aplikacji uruchamianych, jako strony internetow e
dostpne przez przegldark internetow).
W przypadku aplikacji www interfejs definiowany jest w jzyku HTML wraz ze stylami CSS.
Programowanie

aplikacji

graficznych

przeznaczonych

dla

konkretnego

systemu

operacyjnego opiera si na programowaniu obiektowym poszczeglne elementy interfejsu


w kodzie rdowym posiadaj reprezentujce je obiekty, ktrych wasnoci okrela mog
np. wygld elementu (np. dla przycisku mog okrela jego rozmiar, wyrodkowanie,
pozycje na ekranie czy napis), natomiast metody okrelaj dziaanie, ktre ma zosta
wykonane w przypadku zaistnienia okrelonego zdarzenia (np. zmiany treci czy nacinicia
przycisku).

Pomimo rnic w sposobie generowania interfejsu graficznego podstawowe elementy


interfejsu graficznego s takie same s uywane zarwno w aplikacjach uywanych na
komputerach, tabletach oraz telefonach nie wystpuj w aplikacjach na zegarki (ang.
smartwatch) - ze wzgldu na ograniczenia zwizane z wielkoci ekranu interfejs opiera si
gwnie o ikony.

Do najczciej wykorzystywanych elementw interfejsu graficznego nale:


ETYKIETA TEKSTOWA (ANG. LABEL) TEKST WYPISANY NA EKRANIE
POLE TEKSTOWE UYWANE NA STRONIE WWW

POLE TEKSTOWE W SYSTEMIE MACOS

POLE TEKSTOWE WRAZ Z ETYKIET W SYSTEMIE WINDOWS

42

POLE TEKSTOWE UYWANE W SYSTEMIE ANDROID

POLE TEKSTOWE UYWANE W SYSTEMIE IOS

Pole tekstowe (ang. Text Box) najczciej jednoliniowe pole, w ktrym mona wprowadza
tekst przetwarzany przez program. W zalenoci od rodowiska programistycznego istnie
mog rne rodzaje pl tekstowych, np. zawierajce maski wprowadzania danych
pozwalajcych wprowadza dane tylko w okrelonym formacie, pola pozwalajce na wybr
dat, pola tekstowe z elementami zwikszania lub zmniejszania wartoci czy pola
wprowadzania hasa.
Obszar tekstu uywany na stronie www

OBSZAR TEKSTU W SYSTEMIE WINDOWS

OBSZAR TEKSTU W SYSTEMIE IOS

43

OBSZAR TEKSTU W SYSTEMIE ANDROID

Obszar tekstu (ang. Text Area) pole, w ktrym mona wprowadza dane tekstowe
zawierajce wicej ni jedn lini tekstu

Lista wyboru uywana na stronie www

LISTA WYBORU UYWANA W SYSTEMIE MAC OS X

LISTA WYBORU UYWANA W SYSTEMIE ANDROID

44

LISTA WYBORU UYWANA W SYSTEMIE IOS

LISTA WYBORU UYWANA W SYSTEMIE WINDOWS

Lista wyboru (ang. Select List) Lista rozwijana pozwalajca wybra jedn (lub kilka) z
dostpnych opcji.

Opcje jednokrotnego wyboru uywane na stronach WWW

OPCJE JEDNOKROTNEGO WYBORU UYWANE W SYSTEMIE MAC OS X

45

OPCJE JEDNOKROTNEGO WYBORU UYWANE W SYSTEMIE WINDOWS

OPCJE JEDNOKROTNEGO WYBORU W SYSTEMIE IOS

OPCJE JEDNOKROTNEGO WYBORU W SYSTEMIE ANDROID

Przyciski opcji jednokrotnego wyboru (ang. Radio Button) przyciski pozwalajce wskaza
jedn z dostpnych opcji.

Pola wielokrotnego wyboru na stronach www

46

POLA WIELOKROTNEGO WYBORU W SYSTEMIE WINDOWS

POLA WIELOKROTNEGO WYBORU W SYSTEMIE IOS

POLA WIELOKROTNEGO WYBORU W SYSTEMIE ANDROID

POLA WIELOKROTNEGO WYBORU W SYSTEMIE MAC OS X

Przyciski opcji wielokrotnego wyboru (ang. Check Box) przyciski pozwalajce wskaza wiele
z dostpnych opcji.

Przycisk uywany na stronach www

PRZYCISK UYWANY NA W SYSTEMIE IOS

47

PRZYCISK UYWANY NA W SYSTEMIE ANDROID

PRZYCISK UYWANY NA W SYSTEMIE WINDOWS


PRZYCISK UYWANY NA W SYSTEMIE MACOS

Przycisk (ang. Button) to element uruchamiajcy akcje po jego klikniciu.


Obszar obrazu (ang. Canvas) obszar, w ktrym mona zaadowa, wywietla lub
generowa obrazy.

Istniej te elementy typowe dla aplikacji uruchamianych bezporednio w systemie


operacyjnym takie jak:
Okno (ang. Form) okno aplikacji, na ktrej zamieszczone s inne elementy interfejsu
graficznego.

OKNO W SYSTEMIE WINDOWS

48

OKNO W SYSTEMIE MAC OS X

PRZYCISKI STEROWANIA OKNEM W SYSTEMIE WINDOWS

PRZYCISKI STEROWANIA OKNEM W SYSTEMIE MAC OS X

Przyciski sterujce oknem (ang. Minimize button, maximize buton , close button) przyciski
znajdujce

si na grnym

pasku okna pozwalajce na

jego zminimalizowanie,

maksymalizacj oraz zamknicie

49

Paski przewijania (ang. Scroll Bar) paski pozwalajce na przesunicie zawartoci okna,
dziki czemu uytkownik widzi na ekranie interesujcy go fragment przetwarzanych czy
wywietlanych danych

Wikszo elementw graficznych potrafi obsugiwa nastpujce zdarzenia:


Kliknicie (ang. click) uruchomienie kodu rdowego w momencie kliknicia przycisku
myszy lub nacinicia elementu na ekranie dotykowym.

50

Podwjne klikniecie (ang. double Click) - uruchomienie kodu rdowego w momencie


podwjnego kliknicia przycisku myszy lub podwjnego nacinicia elementu na ekranie
dotykowym.

Zmiana (ang. Change) - uruchomienie kodu rdowego w momencie zmiany wartoci


danego elementu (np. wybrania innej wartoci opcji, czy wprowadzenie tekstu do pola
tekstowego).
Otrzymanie kursora tekstowego (ang. Focus) - uruchomienie kodu rdowego w momencie,
kiedy kursor tekstowy pojawi si wewntrz danego elementu (np. w momencie
przechodzenia pomidzy kolejnymi polami tekstowymi).

Opuszczenie kursora tekstowego (ang. Blur) - uruchomienie kodu rdowego w momencie,


kiedy kursor tekstowy opuszcza dany element (np. w momencie przechodzenia pomidzy
kolejnymi polami tekstowymi).

Wejcie kursora myszy (ang. mouse over) - uruchomienie kodu rdowego w momencie,
kiedy kursor myszy pojawia si ponad danym elementem.
Wyjcie kursora myszy (ang. Mouse out) - uruchomienie kodu rdowego w momencie,
kiedy kursor myszy przesunie si poza dany element.
Nacinicie klawisza (ang. Key down) - uruchomienie kodu rdowego w momencie, kiedy
naciskany jest klawisz na klawiaturze przed wywietleniem/przekazaniem okrelonego
znaku.
Przytrzymanie klawisza (ang. Key press) - uruchomienie kodu rdowego w momencie,
kiedy naciskany jest klawisz na klawiaturze po wywietleniu/przekazaniu okrelonego znaku

Zwolnienie klawisza (ang. Key Up) - uruchomienie kodu rdowego w momencie, kiedy
klawisz na klawiaturze jest zwalniany.

51

W zalenoci od uywanego rodowiska dostpne s rne zdarzenia wywoujce kod


rdowy, ktre mog obsugiwa m.in. zmiany rozmiaru, przesunicie elementu,
przesunicie obszaru przy uyciu paska przewijania itp.
Dla okien czy stron kolejnych ekranw aplikacji najczciej dostpne s zdarzenia
obsugujce zaadowanie/wczytanie danego elementu, jego wywietlenie na ekranie oraz
ukrycie.
Przykadowa aplikacja pozwalajca na operacje matematyczne na dwch liczbach moe
skada si z nastpujcych elementw:

Pole tekstowe o nazwie Liczba1TextBox


Pole wyboru o nazwie OperacjaSelect skadajce si z nastpujcych opcji: +, -, * /
Pole tekstowe o nazwie Liczba2TextBox
Przycisk o nazwie ObliczButton
Etykieta o nazwie WynikLabel
Przykadowe uoenie elementw moe wyglda nastpujco:

Tworzc

aplikacj

poza

samym

obliczeniem

wyniku,

warto

stworzy

dodatkowe

funkcjonalnoci polegajce na sprawdzeniu danych wejciowych (np. aby dopuszcza


wyczenie wartoci tekstowe, czy te w przypadku wybrania dziaania dzielenia
sprawdzania czy warto drugiej liczby jest rna od 0).
Przy zaoeniu, e biblioteka graficzna zawiera obsug standardowych elementw
graficznych (zdefiniowanych jako klasy bazowe) uywajc dziedziczenia istnieje moliwo
zdefiniowania wasnych klas odpowiedzialnych za wywietlanie i obsug konkretnych
elementw graficznych dopasowanych do naszych potrzeb. Przykadowy kod rdowy

52

takich klas odpowiedzialnych za obsug powyszego formularza moe wyglda


nastpujco:

Class Liczba1TextBoxClass : TextBoxClass{ //deklaracja klasy o


nazwie Liczba1TextBoxClass jako klasa pochodna od klasy
TextBoxClass
function Liczba1TextBoxClass () //deklaracja konstruktora obiektu
funkcja nazywana tak samo jak klasa, ktrej zadaniem jest
przypisanie wasnoci klasy.
{
this.left =0; //przypisanie waciwoci odpowiadajcej pozycji X na
ekranie.
this.top =0; //przypisanie waciwoci odpowiadajcej pozycji Y na
ekranie.
this.height=20; //przypisanie waciwoci odpowiadajcej
wysokoci obiektu.
this.width=200; //przypisanie waciwoci odpowiadajcej
szerokoci obiektu
return true;
}
function OnKeyPress() //deklaracja funkcji obsugujcej zdarzenia
nacinicia klawisza
{
if (this.key<0 and this.key>9) //sprawdzenie czy nacinito
klawisze z poza zakresu 0..9
{

53

alert(To pole moe przyjmowa tylko wartoci tekstowe);


//wywoanie funkcji wywoujce okno ostrzeenia.
return false;
}
return true;
}
}
Class Liczba2TextBoxClass : TextBoxClass{ //deklaracja klasy o
nazwie Liczba2TextBoxClass jako klasa pochodna od klasy
TextBoxClass
function Liczba2TextBoxClass () //deklaracja konstruktora obiektu
funkcja nazywana tak samo jak klasa, ktrej zadaniem jest
przypisanie wasnoci klasy.
{
this.left =320; //przypisanie waciwoci odpowiadajcej pozycji X
na ekranie.
this.top =0; //przypisanie waciwoci odpowiadajcej pozycji Y na
ekranie.
this.height=20; //przypisanie waciwoci odpowiadajcej
wysokoci obiektu.
this.width=200; //przypisanie waciwoci odpowiadajcej
szerokoci obiektu
return true;
}
function OnKeyPress() //deklaracja funkcji obsugujcej zdarzenia
nacinicia klawisza
54

{
if (this.key<0 and this.key>9) //sprawdzenie czy nacinito
klawisze z poza zakresu 0..9
{
alert(To pole moe przyjmowa tylko wartoci tekstowe);
//wywoanie funkcji wywoujce okno ostrzeenia.
return false;
}
return true;
}
}
Class OperacjaSelectClass : SelectClass{ //deklaracja klasy o
nazwie OperacjaSelectClass jako klasa pochodna od klasy
SelectClass
function OperacjaSelectClass () //deklaracja konstruktora obiektu
funkcja nazywana tak samo jak klasa, ktrej zadaniem jest
przypisanie wasnoci klasy.
{
this.left =220; //przypisanie waciwoci odpowiadajcej pozycji X
na ekranie.
this.top =0; //przypisanie waciwoci odpowiadajcej pozycji Y na
ekranie.
this.height=20; //przypisanie waciwoci odpowiadajcej
wysokoci obiektu.

55

this.width=80; //przypisanie waciwoci odpowiadajcej


szerokoci obiektu
this.options[]=[+]; //przypisanie kolejnej wartoci wyboru na licie
this.options[]=[-]; //przypisanie kolejnej wartoci wyboru na licie
this.options[]=[*]; //przypisanie kolejnej wartoci wyboru na licie
this.options[]=[/]; //przypisanie kolejnej wartoci wyboru na licie
return true;
}
}
Class ObliczButtonClass : ButtonClass{ //deklaracja klasy o nazwie
ObliczButton jako klasa pochodna od klasy ButtonClass
function ObliczButtonClass () //deklaracja konstruktora obiektu
funkcja nazywana tak samo jak klasa, ktrej zadaniem jest
przypisanie wasnoci klasy.
{
this.left =440; //przypisanie waciwoci odpowiadajcej pozycji X
na ekranie.
this.top =0; //przypisanie waciwoci odpowiadajcej pozycji Y na
ekranie.
this.height=20; //przypisanie waciwoci odpowiadajcej
wysokoci obiektu.
this.width=80; //przypisanie waciwoci odpowiadajcej
szerokoci obiektu
this.text=='; //przypisanie waciwoci odpowiadajcej napisowi
na przycisku
56

return true;
}
function OnClick () //deklaracja funkcji obsugujcej zdarzenia
nacinicia klawisza
{
if ((OperacjaSelect.GetValue()==/)and
Liczba2TextBoxClass.GetValue()==0)) //sprawdzenie czy warto
wybrana w obiekcie OperacjaSelect to dzielenie oraz czy warto
wprowadzona w obiekcie Liczba2TextBox wynosi 0
{
alert (Dzielenie przez 0 nie jest dozwolone);
return false;
}
else
{
swith (OperacjaSelect.GetValue())
{
case :+
wynik=
Liczba1TextBoxClass.GetValue()+Liczba2TextBoxClass.GetValue();
break;
case :-
wynik= Liczba1TextBoxClass.GetValue()Liczba2TextBoxClass.GetValue();
57

break;
case :*
wynik=
Liczba1TextBoxClass.GetValue()*Liczba2TextBoxClass.GetValue();
break;
case :/
wynik=
Liczba1TextBoxClass.GetValue()/Liczba2TextBoxClass.GetValue();
break;
}
WynikLabel.SetLabel(Wynik dziaania wynosi+wynik);
return true;
}
}
}
Class WynikLabelClass : LabelClass{ //deklaracja klasy o nazwie
WynikLabelClass jako klasa pochodna od klasy LabelClass
function WynikLabelClass () //deklaracja konstruktora obiektu
funkcja nazywana tak samo jak klasa, ktrej zadaniem jest
przypisanie wasnoci klasy.
{
this.left =540; //przypisanie waciwoci odpowiadajcej pozycji X
na ekranie
58

this.top =0; //przypisanie waciwoci odpowiadajcej pozycji Y na


ekranie
this.height=20; //przypisanie waciwoci odpowiadajcej
wysokoci obiektu
this.width=80; //przypisanie waciwoci odpowiadajcej
szerokoci obiektu
this.value=Wynik; //przypisanie wasnoci odpowiadajcej
wywietlanemu tekstowi
return true;
}
}
Class MainProgramClass : WindowClass{ //deklaracja klasy o
nazwie OperacjaSelectClass jako klasa pochodna od klasy
SelectClass
function MainProgramClass () //deklaracja konstruktora obiektu
funkcja nazywana tak samo jak klasa, ktrej zadaniem jest
przypisanie wasnoci klasy.
{
Liczba1TextBox = new Liczba2TextBoxClass; //utworzenie nowego
obiektu klasy Liczba1TextBoxClass o nazwie Liczba1TextBox
Liczba2TextBox = new Liczba2TextBoxClass; //utworzenie nowego
obiektu klasy Liczba2TextBoxClass o nazwie Liczba2TextBox
OperacjaSelect =new OperacjaSelectClass; //utworzenie nowego
obiektu klasy OperacjaSelectClass o nazwie OperacjaSelect
ObliczButton = new ObliczButtonClass; //utworzenie nowego
obiektu klasy ObliczButtonClass o nazwie ObliczButton

59

WynikLabel = new WynikLabelClass; //utworzenie nowego obiektu


klasy WynikLabelClass o nazwie WynikLabel
this.add (Liczba1TextBox); //dodanie do gwnego okna programu
obiektu Liczba1TextBox
this.add (OperacjaSelect); //dodanie do gwnego okna programu
obiektu OperacjaSelect
this.add (Liczba2TextBox); //dodanie do gwnego okna programu
obiektu Liczba2TextBox
this.add (ObliczButton); //dodanie do gwnego okna programu
obiektu ObliczButton
this.add (WynikLabel); //dodanie do gwnego okna programu
obiektu WynikLabel
return true;
}
}
Program gwny obsugujcy obsug wszystkich elementw interfejsu graficznego bdzie
dziaa, jako obiekt MainProgram, ktry w funkcji inicjujcej (konstruktorze) utworzy kolejne
obiekty odpowiedzialne za wywietlanie i obsug pl tekstowych, listy wybieralnej oraz
przycisku.

Rozdzia VI Zarzdzanie projektem przeprowadzenie projektu przez procesy zwizane z


zarzdzaniem
/prof. Marlena Plebaska/

Przystpujc do pracy nad pierwszym projektem warto dobrze zaplanowa realizacj


wszystkich zada, dobry plan oraz metodyczne podejcie do pracy nad projektem pozwoli
na uniknicie wielu trudnoci w jego realizacji. Stworzenie aplikacji to projekt, ktry moe
przybiera w zalenoci od stopnia zoonoci oraz zaawansowania aplikacji rnorodne

60

rozmiary i formy. Niezalenie jednak od tego jak dua i zoona aplikacja bdzie efektem
projektu jej powstawanie powinno zosta zaplanowane, zrealizowane oraz zewaluowane
zgodnie z wybran metodyk zarzdzania projektem. Dlaczego?
Podstaw do stworzenia ciekawej, potrzebnej, rwnie sprzedajcej si aplikacji jest dobra
koncepcja. Koncepcja ta powinna zosta przedyskutowana w zespole projektowym,
zweryfikowana z rynkiem, a potrzeba, cele jej realizacji oraz zakres funkcjonalny powinny
zosta poparte badaniem potrzeb. Jeeli aplikacja jest tworzona przez uczniw mini badanie
potrzeb moe zosta przeprowadzone w szkole, wrd rwienikw i nauczycieli. Projekt
aplikacji to praca zespoowa wymagajca wsppracy uczniw specjalizujcych si w
rnych dziedzinach informatyki: programistw, grafikw, testerw itp. Kady z uczniw w
projekcie pierwsza aplikacja odpowiedzialny jest za inn grup zada, a koordynacja pracy
bez zastosowania odpowiednich zasad zarzdzania projektem moe okaza si bardzo
trudna. Kady zesp projektowy rwnie zesp projektowy w projekcie pierwsza
aplikacja potrzebuje lidera, ktry zorganizuje wszelkie dziaania projektowe, stworzy zesp
projektowy, zaplanuje prace, dopilnuje aby zadania zostay wykonane w terminie zgodnie z
harmonogramem, z naleyt jakoci, zadba o komunikacj pomidzy czonkami zespou
projektowego, zapewni przestrze do dyskusji, zadba o testowanie prototypu projektu ect.
Aby dziaania te byy moliwe, efektywne warto korzysta ze sprawdzonych metodyk
zarzdzania projektami. Podobnie jak wielkie przedsibiorstwa, uczniowie w swoich
projektach

musz

zadba

odpowiednie

warunki

prowadzenia

projektw

oraz

przestrzeganie zasad prowadzenia projektw w przeciwnym razie nawet najciekawsze,


innowacyjne pomysy mog zosta bdnie zrealizowane lub ich realizacja moe nie zosta
doprowadzona do koca. Warto pamita, i projekt podlega staej zmianie, ewoluuje,
dotyczy to wszystkich projektw zwaszcza informatycznych. Czsto efekty realizacji
poszczeglnych etapw wymuszaj modyfikacj kolejnych etapw, czy te poszczeglnych
funkcjonalnoci,

zaoe,

specyfikacji

projektowych,

wanie

takich

sytuacjach

harmonogram projektu, dokadny plan dziaa , metodyka prowadzenia projektu pomog


sprawnie opanowa sytuacj i doprowadzi projekt do koca z sukcesem.
Stosowanie metodyk, zasad zarzdzania projektem przez uczniw w projektach szkolnych
wprowadza uczniw rwnie w warunki rynkowe. Kada firma informatyczna kreuje bowiem
produkty i usugi w oparciu o profesjonalne, uporzdkowane metodyki. Uczniowie stosujcy
metodyki zarzdzania projektami ju w szkole bd zatem lepiej przygotowani do pracy
zawodowej, zdobd dodatkowe kompetencje, ktre pomog im uzyska przewag
konkurencyjn na rynku pracy.

61

VI.1. Czym jest projekt?

Projekt moemy rozumie bardzo rnorodnie, jako zbir rnorodnych zasobw


zorganizowany w celu osignicia pewnego okrelonego celu/celw w zaoonym wczeniej
harmonogramie, jako zbir chronologicznych dziaa, dcych do realizacji okrelonego
zadania. Jedn z popularnych definicji projektu przedstawia James P. Lewis w publikacji
Project Planning, Scheduling & Control: Projekt to jednorazowe zadanie, ktre posiada
okrelony termin rozpoczcia i termin zakoczenia, jasno okrelone cele, zakres dziaania i
(z reguy) okrelony budet1. Z kolei Prince 2 definiuje projekt w nastpujcy sposb: Projekt
to organizacja powoana na pewien czas w celu wytworzenia w przyjtym czasie oraz przy
wykorzystaniu uprzednio okrelonych zasobw niepowtarzalnych, a wczeniej okrelonych
wynikw czy rezultatu."2
PMBOK

okrela

projekt

jako:

zoone,

niepowtarzalne

zarazem

tymczasowe

przedsiwzicie, polegajce na zorganizowaniu takiego cigu dziaa-zada, ktre


najczciej realizowane s zespoowo i maj na celu doprowadzenie do zamierzonego
osignicia, rezultatu poprzez wytworzenie unikatowego wyrobu-produktu lub dostarczenia
unikatowej usugi3.
Nie sposb wymieni wszystkich definicji projektu, jednak niezalenie od przyjtej definicji
mona wymieni kilka charakterystycznych cech projektu, a mianowicie:

Projekt ma charakter czasowy, okrelonym pocztkiem i terminem zakoczenia,


Projekt ma cile okresowy cel/ cele (rezultatem

projektu jest jaka

okrelona

zmiana)

Projekty kocz si z chwil osignicia celu lub gdy okae si, e nie da si ich
osign w okrelonym czasie, przy zaoonych ograniczeniach czasowych lub
budetu,

Projekt ma okrelony podzia zada i obowizkw


Projekt ma okrelony zakres finansowy- budet
Projekty s przedsiwziciem jednorazowym w rezultacie ktrych powstaje produkt
lub usuga,

Dziaania w projekcie zachodz w okrelonej sekwencji


Dziaania w projekcie nie s powtarzalne, ale s zoone i zachodzi midzy nimi
logiczna lub techniczna zaleno

Projekt angauje okrelone zasoby (ludzkie, rzeczowe, finansowe, informacyjne), a


zmiany ich wykorzystania s moliwe jedynie przy udziale kierownika projektu

62

Kocowy efekt projektu powinien spenia wymagania stawiane wczeniej, a zatem


zrealizowa cel w odpowiednim zakresie, z wymagan jakoci,

po

okrelonych

kosztach, w wyznaczonym czasie, przy zuyciu okrelonych zasobw


Istnieje te grupa projektw, ktre maj tzw. charakter organizacyjny, czyli ukierunkowany
na zmian organizacyjn np. zmian procedury, realizacj projektu szkoleniowego, dziaanie
o charakterze badawczym.
Podsumowujc projekt to uprzednio zaplanowane przedsiwzicie, realizowane aby
osign okrelony cel. Podsumowanie cechy projektu prezentuje schemat poniej.

Uwaga czy jest moliwo wykonania podobnego rysunku-ten jest z internetu i jest tylko
inspiracj dla grafika. Optymalnie byoby zrobi to interaktywnie, aby po klikniciu na
poszczeglne cechy pojawia si opis. Jeli nie to chociaz grafika, jeli jest to niemozliwe to
uswamy podsumowanie i zostan tylko wymienione powyej cechy.

2. Gwne metodyki zarzdzania projektami

Aby poprawnie zrozumie i prawidowo analizowa zagadnienia i kwestie zwizane z


prowadzeniem projektw, a take odpowiednio rozpoznawa sposoby prowadzenia
projektw naley zrozumie nie tylko to, czym jest sam projekt, ale rwnie to, czym jest
szeroko rozumiane i czsto spotykane okrelenie zarzdzanie projektami. Zarzdzanie

63

projektami to dyscyplina z obszaru zarzdzania, zajmujca si wiedz, umiejtnociami i


technikami zwizanymi z prowadzeniem projektw. Zarzdzanie projektami jako dziedzina
wiedzy nie jest dziedzin now. Jej pocztki sigaj czasw II wojny wiatowej. Jednak to
ostatnie lata s okresem istotnego rozwoju, o czym wiadcz liczne publikacje, badania
naukowe i konferencje, rozwj organizacji zawodowych oraz rozwj oprogramowania
wspomagajcego zarzdzanie projektami. Zarzdzanie projektami rwnie definiuje si w
bardzo rnorodny sposb najczciej jako asortyment wszystkich narzdzi, technik,
procesw

okrelania

planowania,

organizowania,

kontroli

prowadzenia

tych

chronologicznie uoonych, okrelonych w czasie dziaa prowadzcych do okrelonego


wczeniej rezultatu, a do czasu, kiedy wanie ten nadany cel zostaje ostatecznie
osignity. Jedn z najbardziej obszernych, ale jednoczenie uniwersalnych definicji
zarzdzania projektami podaje PMBOK, zgodnie z ktrym projekt jest przedsiwziciem
tymczasowym, ktry zobowizany jest do stworzenia unikalnego produktu, usugi (lub
osignicia innego, okrelonego celu). Czas trwania projektu okrela si jego pocztek (dat
startu) oraz zakoczenie (dat koca). Jednak koniec projektu moe zosta ogoszony w
kilku rnych okolicznociach np.: zakoczenie z sukcesem, realizacja celu, zakoczenie
bez sukcesu, poniewa niemoliwe okazuje si zrealizowanie celu czy np. zakoczenie bez
sukcesu, poniewa potrzeba projektu ju nie istnieje lub zakoczenie bez sukcesu,
poniewa taka decyzja zapada w ciele zarzdczym (czsto finansujcym, sponsorujcym
przedsiwzicie).
Metodyka zarzdzania projektami to og zasad, ktre okrelaj w jaki sposb wykona
okrelone czynnoci w projekcie. Metodyki zarzdzania projektami wynikaj z praktyki
prowadzenia rnych typw projektw, miay na celu uporzdkowanie dowiadcze oraz
dobrych praktyk w tym obszarze. Metodyki projektowe zwykle posiadaj wasne definicje
projektu, ktre uwzgldniaj specyfik projektu oraz kad nacisk na te elementy, ktre s
istotne z punktu widzenia danej metodyki. Metodyka zarzdzania projektami to zbir metod
stanowicy spjne pojciowo podejcie do zarzdzania projektem, zbir zasad dotyczcych
sposobw wykonywania zada projektowych oraz trybu postpowania prowadzcego do
okrelonego celu.
W 1969 roku powsta Project Management Institute (PMI). Nadrzdnym celem tej instytucji
jest gromadzenie, analiza dowiadcze z prowadzenia rnych typw projektw, by
nastpnie je wykorzysta do rozpowszechniania sprawdzonych metod odnonie realizacji
projektw. Nastpnie powsta zbir regu z zakresu zarzdzania projektami. Ujto je w
przewodniku MPBok najbardziej popularnej ksice - tzw. biblii zarzdzania projektami.
Rwnolegle w Wielkiej Brytanii powstaa metodyka Prince w oparciu o zasady PROMPT .

64

Pocztkowo metodyk t stosowa rzd Wielkiej Brytanii, jednak do szybko pojawia si


wersja Prince2, ktra zyskaa popularno na wiecie oraz szerokie zastosowanie w rnych
typach projektw. Obecnie PMI oraz Prince to dwie najpopularniejsze metodyki zarzdzania
projektami. Popularno w ostatnich latach zdobyy jednak rwnie inne metodyki takie jak
zwinne metodyki zarzdzania projektami np. SCRUM czy Ten Step , przyjrzyjmy si bliej
gwnym metodyk zarzdzania projektami.

VI.2.1 PMI

PMI czyli Project Management Institute powsta w 1969 roku jako oglnowiatowa
midzynarodowa organizacja skupiajca ronego typu firmy oraz indywidualne osoby
zajmujce si prowadzeniem projektw. Nastpnie dynamicznie si rozwijaa wraz z
rozwojem praktyki oraz teorii zarzdzania. Obecnie jest ona organizacj non-profit, zrzesza
ok. 300000 czonkw, jest rwnie organizacj certyfikujc profesjonalnych kierownikw
projektw, a sygnowane przez ni certyfikaty nale do najbardziej uznanych na wiecie.
Gwnym celem PMI jest doskonalenie praktycznego zarzdzania projektami, stay rozwj
wszelkich metod, technik i narzdzi wspomagajcych wspczesne zarzdzanie projektami.
PMI to najpopularniejsza metodyka zarzdzania projektami technologicznymi gwnie w
zakresie: projekty informatyczne, inynieria oprogramowania, projektowanie systemw
teleinformatycznych. Metodyka ta powstaa na bazie praktycznych dowiadcze w celu
podniesienia

jakoci

oraz

efektywnoci

realizacji

projektw.

Konieczno

usystematyzowania praktycznych dowiadcze z realizacji projektw oraz teoretycznej


wiedzy na ten temat zaowocowaa powstaniem metodyki adekwatnej do zoonoci oraz
skali realizacji wspczesnych projektw. PMI jako organizacja stale zbiera, analizuje, a
nastpnie systematyzuje dowiadczenia projektowe w celu cigego doskonalenia metod
zarzdzania projektami. Staa aktualizacja metodyki wymaga cigego gromadzenia
dowiadcze z realizacji ronych typw projektw, analizowania sposobw ich prowadzenia,
sabych oraz mocnych stron, a nastpnie uaktualniania metodyki.
Bibli zarzdzania projektami zgodnie z metodyk PMI jest tzw. PMBOK (A Guide to the
Project Management Body of Knowledge). Jest to zbir standardw oraz wytycznych ich
realizacji stanowicych podstawy metodyki. PMBOK to zbir praktyk zarzdzania projektami
rekomendowanych przez PMI ktre znajduj zastosowanie w praktyce zarzdzania
projektami.
PMBOK opisuje procesy zarzdzania projektem pogrupowane w 5 grup oraz 9 obszarw
wiedzy. Pi podstawowych procesw to:

65

1.Procesy rozpoczcia - procesy, ktre maj na celu zdefiniowaniu projektu oraz powoanie
go w organizacji.
2.Procesy planowania procesy, ktre definiuj sposb realizacji celw projektu,
wykorzystania rodkw finansowych na jego realizacj, terminw realizacji projektu,
kolejnoci realizacji poszczeglnych dziaa, odpowiedzialnoci za ich realizacj.
3.Procesy realizacji procesy, ktre grupuj dziaania realizowane w projekcie, koordynuj
wykorzystaniem zasobw projektowych w celu realizacji zaoe oraz planw projektu.
4.Procesy kontroli procesy, ktre monitoruj postpy realizacji dziaa w projekcie,
pomagaj zidentyfikowa ewentualne odchylenia w planie realizacji projektu, a nastpnie
podj dziaania zaradcze, naprawcze
5. Procesy zakoczenia procesy, ktre przygotowuj formaln akceptacj zakoczenia
projektu, akceptacj realizacji jego celw.
PMBOK definiuje nastpujce obszary zarzdzania projektem:

1. Zarzdzanie integralnoci projektu


2. Zarzdzanie zakresem
3. Zarzdzanie czasem
4. Zarzdzanie kosztami
5. Zarzdzanie jakoci _
6. Zarzdzanie zasobami ludzkimi
7. Zarzdzanie komunikacj
8. Zarzdzanie ryzykiem _
9. Zarzdzanie zaopatrzeniem

Projektem zgodnie z metodyk PMI zarzdza kierownik projektu. Kady projekt jest inny,
jeli nawet w jego ramach realizujemy podobny produkt czy usug, zawsze dziaamy w
zrnicowanych okolicznociach oraz z ryzykiem co do ksztatu osignicia ostatecznych
wynikw. Dlatego wanie warto stosowa metodyki zarzdzania projektami, dziel one
bowiem projekt na etapy, fazy co pozwala lepiej zapanowa nad realizacj celw, dokadniej
analizowa wszelkie zamierzone dziaania. Poszczeglne fazy projektu skadaj si na tzw.
cykl ycia projektu. Kada z faz dostarcza okrelonych rezultatw kocowych bdcych
podstaw prac w kolejnej fazie. Cykl ycia projektu okrela dziaania podejmowane na
pocztku kadej fazy oraz efekty jej zakoczenia, nazywamy to podejciem procesowym.
Podejcie procesowe jest charakterystyczne w metodyce PMI.

66

Jeli chcesz dowiedzie si wicej na temat metodyki odwied stron:


http://www.pmi.org.pl/

VI.2.2 Prince
PRINCE2 (PRojects IN a Controlled Environment) kolejna bardzo popularna metodyka
zarzdzania projektami. Powstaa ona w Wielkiej Brytanii w 1989 roku w jednej z rzdowych
agend Central Computer and Telecommunications Agency (CCTA) jako dokument pod
nazw PRINCE. Ju w pierwotnej formie by to dokument opisujcy zbir najlepszych
praktyk zarzdzania projektami zebranych w czasie realizacji rnego rodzaju projektw,
lecz w znacznej mierze projektw informatycznych. W 1996 roku opublikowana zostaa
kolejna wersja dokumentu pod nazw PRINCE2 jako oglna metodyka zarzdzania
projektami we wszystkich dziedzinach. Bardzo szybko zyskaa ona popularno, a wrcz
staa si standardem zarzdzania projektami w Wielkiej Brytanii. Obok PMI staa si drug
najpopularniejsz metodyk zarzdzania projektami na wiecie.
PRINCE2 stawia na tzw. ustrukturyzowane zrzdzanie projektem z zastosowaniem
logicznych etapw, zasad, wykonywania okrelonych dziaa w okrelonej kolejnoci.
Metodyka ta jako kluczowy cel realizacji projektu definiuje potrzeb biznesow realizacji
projektu, sam projekt jest rodowiskiem zarzdzania stworzonym na potrzeby realizacji tej
potrzeby biznesowej. Potrzeb biznesow stanowi realizacja produktu lub usugi, a jej
realizacja zwizana jest ze specyficznymi potrzebami biznesowymi danej organizacji.
Projekt realizowany zgodnie z metodyk Prince 2 posiada okrelony czas realizacji
(okrelony pocztek i koniec), okrelone wyniki realizacji projektu (zdefiniowane i mierzalne),
okrelony system dziaa realizacji projektu (okrelony przebieg realizacji projektu),
okrelone zasoby (ludzkie, rzeczowe, finansowe, informacyjne), okrelon struktur
organizacyjn projektu ( w tym struktur zarzdzajca). Metodyk PRINCE2 wyrnia
siedem obszarw zarzdzania projektem: uzasadnienie biznesowe, organizacja, jako,
plany, ryzyko, zmiana, postpy. Projektem zgodnie z metodyk Prince 2 zarzdza kierownik
projektu oraz komitet sterujcy ( grupa w skad ktrej wchodz przedstawicie 3 stron
inwestora, dostawcy i uytkownika). Metodyka Prince 2 to metodyka procesowa, precyzyjnie
definiuje ona 8 gwnych procesw realizacji projektu co stanowi szczegowy model
zarzdzania projektem. Metodyka ta opisuje cykl ycia projektu z dokadnym okreleniem
jego faz oraz realizowanych dziaa. Osiem gwnych procesw metodyki Pince 2 to:

1. Strategiczne zarzdzanie projektem - proces nadrzdny, okrela obowizki i


odpowiedzialno komitetu sterujcego.

67

2. Planowanie - procesy definiujce sposb realizacji projektu, okrelenie rezultatw


kocowych projektu (ksztatu produktw/usug bdcych rezultatem projektu),
okrelanie dziaa

projektowych,

szacowanie

pracochonnoci

dziaa

projektowych, harmonogramowanie dziaa, dokonanie oceny ryzyka, tworzenie


planw projektowych.

3. Uruchamianie Projektu/Przygotowanie Zaoe


poprzedzajca projekt. Procesy te

Projektu

przygotowuj

projekt

grupa
to

procesw

uruchomienia

(powoanie zespou zarzdzajcego projektem, okrelenie celu/celw projektu,


definiowanie

metody,

analiza

zasadnoci

ekonomicznej

planowanie prac planistycznych, okrelenie elementy

realizacji

sterowania

projektu,
projektem,

uzyskanie zgody na inicjacj projektu.

4. Inicjowanie projektu procesy definiujce Dokument Inicjujcego Projekt (DIP).


Akceptacja DIP przez Komitet Sterujcy jest rwnoznaczna z uruchomieniem
projektu.

5. Sterowanie Etapem - procesy w ramach ktrych na bieco monitorowany jest


poziom realizacji danego etapu zgodnie z przyjtym planem realizacji danego etapu,
a w razie niezgodnoci podejmowane s stosowne dziaania.

6. Zarzdzanie Wytwarzaniem Produktw-procesy


produkty bdce efektem projektu.

w ramach ktrych wytwarzane s

W ramach tego etapu ustalany jest zakres prac

z kierownikiem projektu, planowane orz nadzorowane prace zespou projektowego,


opracowywane raporty z postpu prac oraz jakoci produktu, zatwierdzane
poszczeglne etapy realizacji produktu.

7. Zarzdzanie Zakresem Etapu procesy majce


poziomie kadego etapu oraz uzyskanie

na celu ukoczenie prac na

akceptacji poziomu ich realizacji na

kadym poziomie przez Komitet Sterujcy.

8. Zamykanie Projektu - procesy majce na celu zamkniecie projektu w sposb


uporzdkowany i kontrolowany oraz majce na celu wytworzenie dokumentw
podsumowujcych prace projektowe.
Kady wymienionych powyej proces skada si z podprocesw, ktre s wzajemnie
powizane. Okrelaj one dokadnie sposb zarzdzania projektem, postpowania w
konkretnych sytuacjach projektowych.
Jeli chcesz dowiedzie si wicej na temat metodyki odwied stron:

www.ogc.gov.uk/prince2

68

VI.2.3 SCRUM

Od kilku lat na popularnoci zyskuj tzw. zwinne (adaptacyjne) metodyki zarzdzania tzw.
Agile Project Management, wrd ktrych najpopularniejszy jest SCRUM. Jest to zbir
zasad, regu pozwalajcych na stworzenie swojego wasnego procesu zarzdzania
projektem. Czsto mona spotka si z opinia i SCRUM to nie metodologia ale proces o
niepowtarzalnym przebiegu, konstruowany indywidualnie na potrzeby realizacji projektu lub
usugi przez organizacj lub osob indywidualn. Autorami SCRUM s dwaj Japoczycy ,
ojcowie zakresie zarzdzania wiedz - Hirotaka Takeuchi i Ikujiro Nonaka. Nastpnie
zosta on opisany przez Kena Schwabera oraz Jeffa Sutherlanda i po raz pierwszy zosta
zaprezentowany w Texasie w 1995 roku podczas konferencji OOPSLA (obecnie -Splash).
SCRUM tworzy podstaw dziaania w zarzdzaniu projektem zgodn z koncepcj zwinnoci
-metodyk agile, ktre powstay na fali niezadowolenia wobec sztywnych i silnie
sformalizowanych metodyk wytwarzania oprogramowania oraz zarzdzania projektami jak
np. omawiany wczeniej PMI czy Prince 2. Wedug twrcw zwinnych metodyk zarzdzania
projektami metodyki sztywne, nie byy ju adekwatne do aktualnych moliwoci technik
programistycznych, a stosowanie ich byo mao efektywne, zwaszcza w wykorzystaniu
zasobw. W zwizku z czym SCRUM sta si bardzo popularn metodyk zarzdzania
projektem w przypadku realizacji projektw bazujcych na tworzeniu produktw opartych o
prace programistyczne m.in. tworzenie aplikacji, tworzenie oprogramowanie czy systemw
informatycznych.
Szczegln role w metodyce SCRUM odgrywaj relacje midzy czonkami zespou
projektowego, czsto mwi si o tzw. samo zarzdzajcym/ samoorganizujcym si w celu
zwikszenia efektywnoci pracy zespole (najczciej bez rl i hierarchii). Zespoem
scramowym zarzdza Scrum master, osoba odpowiedzialna za cigo realizacji oraz stae
udoskonalania procesw, jak rwnie o zewntrzne problemy zespou. Cel projektu oraz
cele danego sprintu(etapu realizacji projektu w metodyce SCRUM) wyznacza Product
Owner (waciciel produktu). Zesp projektowy to Team s to osoby o zrnicowanych
kompetencjach, sami decyduj, ile s w stanie wykona w danym sprincie oraz jak dane
prace wykona - w jakiej technologii, z uyciem jakich narzdzi, dlatego tylko najlepsi
specjalici o bardzo wysokich kompetencjach oraz ogromnej odpowiedzialnoci i dojrzaoci
mog wej w skad zespou.

69

SCRUM bazuje na empirycznej kontroli procesu, ktrej trzy gwne filary realizacji projektu
to przejrzysto, kontrola i akceptacja. Wszystkie dziaania w projekcie realizowane zgodnie
z metodyka SCRUM bazuj na cile okrelonych kryteriach czasu.

1. Sprint - podstawow jednostk czasu w SCRUMIE jest Sprint czyli etap projektu
trwajcy od tygodnia do czterech tygodni, w czasie ktrego trwa jedna iteracja pracy
nad produktem. Dugo Sprintu ustalana na cay czas trwania projektu i nie zmienia
si. Kady Sprint ma cile okrelony cel tzw Cel Sprintu, nad osigniciem ktrego
pracuje zesp czyli Team. W czasie

trwania Sprintu cel nie moe ulec

zmianie, nie moe te zmieni si zesp pracujcy nad jego realizacj.

2. Planowanie - kolejne Sprinty planowane s w czasie spotka zespou z Srum


Masterem oraz wacicielem produktu. Spotkania odbywaj si cyklicznie w stae
ustalonych terminach np. kady poniedziaek, kady pierwszy dzie miesica itp.
Czas spotkania nie powinien trwa wicej ni 8 godzin, podzielony jest rwnomiernie
na dwie czci, 1. Okrelenie celw nowego sprintu (Co konkretnie ma by zrobione
w kolejnym sprincie?), 2. Okrelenie jak praca bdzie wykonana ( W jaki sposb, z
uyciem jakich technologii, jakich narzdzi).

3. Codzienny Scrum - jest to 15 min codzienne spotkanie caego zespou. W czasie


spotkania czonkowie zespou podsumowuj miniony dzie, aktualizuj swoj wiedz
na temat aktualnego stanu projektu, trwajcego Sprintu. Spotkanie takie odbywa
si kadego dnia o tej samej porze, najczciej w tym

samym

miejscu

np.

codziennie rano o 9.00 kiedy zesp zaczyna prac. W codziennych Scumach


najczciej uczestniczy Scrum Master, ale nie jest to konieczne. W czasie spotkania
kady z czonkw zespou ustala nastpujce kwestie: Co zrobiem poprzedniego
dnia dla realizacji Celu Sprintu?, Co dzi zrobi dla realizacji Celu Sprintu?, Czy
napotkaem jakie trudnoci? Jakie? Czonkowie zespou podsumowuj efekty swojej
pracy oraz aktualizuj swoj wiedz na temat tego co udao si osign pozostaym
czonkom zespou.

4. Przegld Sprintu spotkanie czonkw zespou, Scrum Mastera, Waciciela


Produktu, jak rwnie

wszystkich

interesariuszy

zainteresowani

przebiegiem

projektu. Spotkanie takie odbywa si w ostatnim tygodniu sprintu, trwa kilka godzinmax4.

W czasie spotkania analizowane s efekty ukoczenia funkcjonalnoci projektu


zaplanowane do realizacji w danym sprincie, omawiane s zarwno pozytywne jak i
negatywne dziaania zaistniae w danym Sprintcie, w przypadku dziaa negatywnych

70

omawiane sa rwnie sposoby ich rozwizania, prognozowane jest tempo


zakoczenia caego projektu i ustalenie dalszych krokw realizacji projektu.

1. Retrospektywa Sprintu spotkanie podsumowujce maksymalnie 3 godzinne. Odbywa


si po zakoczeniu Przegldu, uczestniczy w niej tylko zesp scrumowy. W czasie tego
spotkania analizuje si ostatni Sprint efekty pracy ludzi, procecy, efektywno uytych
narzdzi. W czasie takiego spotkania zbiera si rwnie dobre praktyki, ktre mog by
rekomendacj dla kolejnych sprintw. Retrospektywa koczy Sprint, nastpny dzie
roboczy zaczyna si od Planowania nowego Sprintu.

Jeli chcesz dowiedzie si wicej na temat metodyki odwied stron:

http://www.scrum.org/

VI.3.Specyfika projektw

Z projektami mamy do czynienia w zasadzie w kadej dziedzinie funkcjonowanie


gospodarki. Projekty mog mie rny rozmiar, mog by due lub mae, organizacyjne lub
prowadzone przez indywidualne osoby, w ramach projektu firma moe realizowa kolejny
produkt z grupy produktw ktre ju realizuje do lat lub produkt moe stanowi innowacje.
Projekty moemy klasyfikowa w rnorodny sposb, najpopularniejszy podzia dzieli
projekty na 9 grup.

1. Klasyfikacja

projektw poprzez dziedzin projekty mog by realizowane w

rnych dziedzinach, w rnych branach

i gaziach biznesu np. IT, edukacja,

telekomunikacja

2. Klasyfikacja

projektw poprzez specyfik - projekty mog mie rnorodn

specyfik uzalenion od tego co jest efektem finalnym projektu np. projekty


naukowo-badawczye, inwestycyjne, organizacyjnym, spoeczne,

3. Klasyfikacja projektw poprzez ich znaczenie projekty mog mie dla organizacji
rne znaczenie np. mog to by projekty strategiczne lub projekty taktyczne.

4. Klasyfikacja

projektw poprzez zakres

projekty przyjmuj

moemy wyrni np. projekty koncepcyjne czy projekty

5. Klasyfikacja

projektw poprzez pochodzenie

zlecenie

rny zakres,

kompleksowe,
na

realizacj

projektw moe pochodzi z wewntrz lub z zewntrz organizacji. Projekty mog by


realizowane na zlecenie wewntrzne organizacji tzw. zlecenie klienta wewntrznego

71

lub zewntrzne realizowane na zlecenie klientw zewntrznych najczciej innych


organizacji.

6. Klasyfikacja projektw poprzez rezultaty- projekty poprzez realizacj swoich celw


prowadz do ronych typw rezultatw. Dwa gwne typy rezultatw to rezultaty
materialne i rezultaty niematerialne.

7. Klasyfikacja

projektw poprzez innowacyjnoci

projektu mog przyjmowa

rny stopieni innowacyjnoci. Stopnie innowacyjnoci projektw s rnorodnie


definiowane.

8. Klasyfikacja

projektw poprzez zasig projekty przyjmuj rny zakres w

zalenoci od skali ich realizacji oraz zasigu oddziaywania rezultatw projektu np.
projekty wewntrz organizacyjne, projekty gminne, projekty krajowe, projekty
europejskie ect

9. Klasyfikacja

projektw poprzez rozmiar

poprzez skal wykorzystywanych

rozmiar projektu definiowany jest

zasobw

gwnie

budet

projektu.

Projekty

dzielimy na mae, mae, rednie, due. etc

Profil projektu
Bez wzgldu na sposb przyjtej klasyfikacji rozpoczynajc realizacj projektu naley
zwrci uwag na kilka kluczowych dla realizacji projektu czynnikw, ktre definiuj tzw.
profil projektu. Po pierwsze naley ustali stopie ryzyka realizacji projektu, okreli jakie
ono jest, po drugie przed rozpoczciem realizacji projektu musimy okreli jego warto
ekonomiczn, oszacowa czas realizacji-dat rozpoczcia i zakoczenie, a nastpnie
opracowa ramowy a nastpnie szczegowy harmonogram realizacji projektu. Bardzo
istotne jest rwnie okrelenie stopnia zoonoci projektu, musimy dokadnie wiedzie jak
zoony jest projekt, aby mc to zdiagnozowa jak zoone jest wewntrzne oraz zewntrzne
rodowisko

realizacji

projektu.

Niezmiernie

istotne

zwaszcza

przy

projektach

informatycznych jest okrelenie parametrw wyboru odpowiedniej technologii, a nastpnie


jej wybr, stajc przed wyborem technologii kierujc si okrelonymi kryteriami np.
technologia znana sprawdzona, a technologia innowacyjna ect. Okrelenie profilu projektu
pozwala na zakwalifikowanie projektu do odpowiedniej kategorii projektw. Na podstawie
okrelenie profilu projektu meneder projektu moe zdecydowa o wyborze metodologii
zarzdzania projektem najskuteczniejszej dla danego projektu.

72

4. Jak zaplanowa i przeprowadzi pierwszy


projekt?

Kady projekt stanowi zoone przedsiwzicie, szczeglnym wyzwaniem pozostaje jednak


zaplanowanie oraz realizacja pierwszego projektu. Kady projekt jest indywidualnym
przedsiwziciem, poniewa spenia specyficzne cele oraz potrzeby, kady projekt ma
zatem swj indywidualny cykl ycia skada si z faz, etapw, zada i dziaa specyficznych
dla danego projektu. Rozpoczynajc projekt zaraz na pocztku jeszcze przed podjciem
konkretnych dziaa projektowych naley dokadnie rozpozna potrzeby realizacji projektu, a
nastpnie na tej podstawie ustali cel projektu. Kolejnym krokiem jest zaplanowanie zaoe
projektu niezbdnych do osignicia celw projektu. Z zaoe wynikaj konkretne zadania
oraz dziaania projektowe. Na pocztku realizacji projektu szczeglnie istotne pozostaje
okrelenie skutecznej koncepcji realizacji projektu. Podstaw tworzenia koncepcji projektu
jest faza idei, ktra obejmuje okres przed oficjaln decyzj o powoaniu projektu.. W fazie
idei okrelane s podstawowe idee projektu, dokonywana jest analiza moliwoci realizacji
projektu oraz szacunek potencjalnych problemw, ktre mog wystpi w projekcie, a take
potencjalnych moliwoci ich rozwizania lub minimalizacji. Na tej podstawie opracowywana
jest koncepcja realizacji projektu.
Nastpny faza dziaa projektowych to zdefiniowanie projektu. W ramach tej fazy
opracowywana zostaje wstpna struktura projektu, okrelone zostaj kompetencje
poszczeglnych pracownikw projektu oraz zalenoci pomidzy nimi. Na tym etapie
realizowana zostaje rwnie ocen wykonalnoci realizacji projektu oraz wstpne
szacowanie kosztw. Na podstawie tych ustale opracowywany jest pocztkowo ramowy, a
nastpnie szczegowy harmonogram realizacji projektu. W skutecznym zarzdzaniu
projektem bardzo istotnym pozostaje rwnie okrelenie parametrw jakoci efektw
projektu co rwnie realizowane jest w fazie definiowania. Etap definiowania podsumowany
zostaje opisem projektu zawierajcym wszelkie wymienione powyej skadowe.
Trzeci etap realizacji projektu to tzw. sporzdzenie projektu. W ramach etapu trzeciego
dokadnie okrelane s wszelkie zadania oraz dziaanie/czynnoci projektowe niezbdne do
realizacji caego procesu projektu. Na tej podstawie przygotowywany jest plan prac w
projekcie. Nastpnie na podstawie planu pracy nastpuje podzia obowizkw projektowych.
Zatwierdzana

jest

rwnie

struktura

zarzdzania

projektem,

szczegowe

odpowiedzialnoci i obowizki przyporzdkowywane poszczeglnym czonkom zespou


projektowego. Na etapie sporzdzania projektu nastpuje uszczegowienie harmonogramu
realizacji projektu, budetu projektu oraz jakoci efektw kocowych projektu. Majc gotowe
harmonogramy oraz budet moemy okreli sposb oraz plan kontroli realizacji projektu

73

oraz tzw. punkty kontrolne projektu czyli momenty realizacji projektu w ktrych projekt
kontrolujemy. W opracowywaniu planu kontroli projektu bardzo istotna jest rwnie
znajomo

ogranicze

projektowych.

Cao

etapu

trzeciego

podsumowane

jest

sporzdzeniem dokumentacji zawierajcej ocen ryzyka oraz planu zarzdzania projektem.


Czwarty etap to realizacja projektu. W ramach tego etapu prowadzona jest realizacjia
projektu zgodnie z wczeniej zaoonym planem, harmonogramem oraz budetem. Przez
ca realizacj projekt musi by monitorowany, a rezultaty realizacji poszczeglnych zada,
dziaa/ czynnoci projektu analizowane i raportowane. Projekt jest ywym organizmem
moe zmienia si po ju rozpocztej realizacji, zmieniaj si bowiem jego zaoenia,
warunki prowadzenia czy czonkowie zespou projektowego. W zwizku z tym projekt
wymaga wprowadzania niezbdnych poprawek na bieco w celu realizacji projektu zgodnie
z jego zaoeniami. Poprawki mog by wprowadzane w zakresie projektu, harmonogramie,
budecie oraz kryteriach jakoci projektu.
Ostatni etap to zakoczenie zakoczeniem projektu. Obejmuje on oficjalne zakoczenie, z
take szereg czynnoci sprawozdawczych zwizanych z zakoczeniem projektu takich jak
opracowanie raportu z realizacji projektu , dokonanie oceny podsumowujcej projektu,
wycigniecie najlepszych praktyk z realizacji projektu w celu przeniesienia na grunt realizacji
nowych projektw oraz archiwizacja wszelkich dokumentw projektowych.

Oglny opis procesu zarzdzania projektami przedstawia rwnie J. Kisielnicki, ktrego na


proces ten skadaj si cztery podstawowe grupy dziaa, a s to: zaplanowanie,
organizowanie, motywowanie i kierowanie oraz kontrola wykonania, co wskazano na
Schemacie nr 1.

I etap plan realizacji w ramach tego etapu identyfikowane s potrzeby realizacji projektu
oraz wymagania stawiane wobec projektu, nastpnie definiowane s konkretne cele
projektu, ktrych realizacji ma zapewni osignicie podanej jakoci rezultatw projektu
(realizacj okrelonego produktu lub usugi). Etap pierwszy koczy si wyborem najlepszego
sposobu osignicia celu projektu, odzwierciedlonym w opracowanym w budecie i
harmonogramie.
II etap organizacja procesu w ramach etapu drugiego realizowane s wszelkie dziaania
koordynacyjne

projektu

takie

jak

koordynacja

wykorzystania

wszelkich

zasobw

projektowych ze szczeglnym uwzgldnieniem zasobw ludzkich, ktre w kadym projekcie


stanowi zarazem najmocniejsz i najsabsz stron.

74

III etap kierowanie i motywowanie w ramach realizacji etapu trzeciego prowadzone s


wszelkie prace zwizane z kierowaniem zespoem projektowym , motywowaniem go do
efektywnych dziaa, realizacji celw projektowych, a w efekcie uzyskania odpowiednich
rezultatw okrelonych w celach projektu.
IV etap kontrola wykonania w ramach etapu czwartego weryfikowane s zaoone cele
projektowe. Kontroli podlega satysfakcja klientw, dotrzymanie terminw, zaoenia
budetowe.

Szczeglnie istotna w zarzdzaniu projektem jest rola kierownika projektu. Musi on posiada
szereg umiejtnoci pozwalajcych mu na skuteczn realizacj projektu. Naley o tym
pamita ju przy realizacjach pierwszych projektw. Do kluczowych cech kierownika
projektu zaliczy naley:

Znajomo wszelkich etapw realizacji projektw

Znajomo metodyk zarzdzania projektami

Znajomo technik oraz narzdzi prowadzenia projektw

Umiejtno definiowania projektu, jego zakresu, harmonogramu, budetu

Umiejtno

zarzdzania wszelkim zasobami projektu ( finansowymi, ludzkimi,

rzeczowymi, informacyjnymi)

Umiejtno

prognozowania

ryzyk

projektowych

zarzdzania

nimi

przed

uruchomieniem projektu , jak rwnie w czasie jego realizacji oraz


ewaluacji.

Umiejtno

kontrolowania realizacji projektu na wszelkich jego etapach.

Umiejtno

efektywnego komunikowania z wewntrznym oraz zewntrznym

rodowiskiem projektu
Niezwykle istotne jest dowiadczenie kierownika oraz umiejtno przewidywania skutkw
podejmowanych decyzji, przy jednoczesnej szybkoci, prawnoci i trafnoci w ich
podejmowaniu, szczeglnie w przypadku pojawienia si trudnoci w projekcie. Mistrzostwo
kierownika projektw moemy pozna podobnie jak w przypadku mistrza szachowego po
umiejtnoci przewidywania kilu krokw w przd konsekwencji podejmowanych decyzji.
Zarzdzania projektami znaczco optymalizuje dziaanie wielu organizacji, jednak projekty
obcione s rwnie niepowodzeniami. Szczeglnie wiele napi odczuwa kierownik
projektu ktry jest katalizatorem pomidzy otoczeniem zewntrznym projektu ,a zespoem
projektowym. W zarzdzaniu projektami niepowodzenia najczciej wynikaj z:

nieprecyzyjnego zaplanowania i przygotowania projektu,


nierealistycznych oczekiwa wobec projektu,
75

zbyt czsto wprowadzanych zmian,


niedopasowania produktu do potrzeb beneficjentw,
niewystarczajcego uwzgldniania zagroe,
ignorowania czynnikw wpywajcych na trwaoci korzyci projektw,
brak wsparcia ze strony kierownictwa,
zbyt sabego zaangaowania si uytkownikw,
nieprofesjonalnego planowania realizacji projektu,
nie wykorzystania zdobytych dowiadcze,
nieadekwatnego zesp pracownikw, zasobw materialnych i finansowych,
przekroczenia terminu4.
Aby unikn niepowodze projektowych naley zarzdza projektem metodycznie. Zacz
przygod z zarzdzaniem projektami od maych projektw, lecz prowadzi je metodycznie, a
nastpnie krok po kroku wraz ze zdobytym dowiadczenie- krok po kroku podejmowa si
realizacji coraz wikszych projektw.

VII Bibliografia
1. P. Charette, A. Mitchell, S. Mazur (red.), E. McSweeney, Poradnik

dla

samorzdw

terytorialnych, Krakw 2004, s. 11.

2. PRINCE2 skuteczne zarzdzanie projektami, praca zbiorowa,

2009,

wydanie

elektroniczne
3. A Guide to the Project Management

Body of Knowledge (PMBOK Guide)

Fourth Edition, wydanie polskie, Warszawa 2009, s. 5.


4. Por. Podrcznik Zarzdzanie Cyklem Projektu, Ministerstwo Gospodarki i Pracy, 2004,
s. 6; Red. nauk. M. Trocki, Nowoczesne zarzdzanie projektami, Polskie Wydawnictwo
Ekonomiczne, Warszawa 2013, s. 53

76

5. Programowanie w JavaScript. Rusz gow!, Eric T. Freeman, Elisabeth Robson,


OREILLY

6. Analiza i projektowanie obiektowe. Rusz gow!, Brett D. McLaughlin, Gary Pollice, David
West, OREILLY

7. http://matblog.pl/jak-pisac-pseudokod-czy-jest-to-komus-potrzebne/
8. http://kursjs.pl
9. https://pl.wikipedia.org/

Polecana literatura
1. Project Management Institute (PMI) -A Guide to the Project Management Body

of

Knowledge (PMBOK Guide) 4th Edition,


2. TSO. Prince 2 TM Skuteczne zarzdzanie projektami, Norwich, UK,

2009.

Wydanie polskie Centrum Rozwiza Menaderskich.


3. M.

Chrapko- SCRUM.O zwinnym zarzdzaniu projektami, Wydawnictwo Helion

4. Robert

K. Wysocki, Ruud McGary. Efektywne

zarzdzanie

projektami,

Zarzdzanie

projektami.

wyd. III, Helion, Gliwice, 2005


5. Micha Trocki,

Bartosz

Grucza,

Krzysztof

Ogonek.

PWE. Warszawa, 2003.


6. Nancy Mingus. Zarzdzanie projektami. Helion. Gliwice. 2002.
7. J.

Davidson Frame. Zarzdzanie projektami

organizacjach. MT&DC.

Warszawa, 2001.
8. Zdzisaw

Szyjewski.

Zarzdzanie

projektami

informatycznymi.

Placet.

Warszawa, 2001.
9. Joseph

Phillips. Zarzdzanie projektami IT. Helion. Gliwice, 2010.

10. UX i analiza ruchu w sieci. Praktyczny poradnik Michael Beasley, Wydawnictwo Helion,
2014
1. Funkcjonalno aplikacji mobilnych. Nowoczesne standardy UX i UI, Jakob Nielsen, Raluca
Budiu, Wydawnictwo Helion, 2013
2. Magia interfejsu. Praktyczne metody projektowania aplikacji internetowych, Robert
Hoekman jr, Wydawnictwo Helion, 2010
3. Projektowanie nawigacji strony WWW. Optymalizacja funkcjonalnoci witryny, James
Kalbach , Wydawnictwo Helion, 2012

77

You might also like