24
TALLINNA ÜLIKOOL Matemaatika-loodusteaduskond Informaatika osakond AVATUD LÄHTEKOODIGA TARKVARA ARENDUS Seminaritöö Koostaja: Marek Mägi õpinguraamatu nr. 031294 õpperühm IF-31 Juhendaja: lektor Inga Petuhhov Tallinn 2005

TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

TALLINNA ÜLIKOOL

Matemaatika-loodusteaduskond

Informaatika osakond

AVATUD LÄHTEKOODIGA TARKVARA ARENDUS

Seminaritöö

Koostaja: Marek Mägi

õpinguraamatu nr. 031294

õpperühm IF-31

Juhendaja: lektor Inga Petuhhov

Tallinn 2005

Page 2: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

2/24

Sisukord

Sisukord................................................................................................................2

Sissejuhatus .........................................................................................................3

1 Ülevaade kasutuslitsentside tüüpidest...........................................................5

1.1 Arvutitarkvara liigid .................................................................................5

1.2 Vaba tarkvara litsentsid ..........................................................................8

1.3 Avatud lähtekoodiga tarkvara definitsioon ..............................................9

2 OSS'i ajalugu ...............................................................................................11

3 OSS'i arendusprotsess ................................................................................13

3.1 Protsess................................................................................................13

3.2 Elutsükkel .............................................................................................14

3.3 Arendamine Eestis ...............................................................................17

4 OSS protsessis osalejad..............................................................................19

5 OSS projektis osalemise erinevad motiivid..................................................20

6 Kokkuvõte....................................................................................................22

7 Lühendite ja kasutatavate võõrkeelsete terminite loetelu ............................23

8 Kasutatud kirjandus .....................................................................................24

Page 3: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

3/24

Sissejuhatus

Oleme jõudnud aega, mil enamus pangatehingutest tehakse interneti teel,

suhtlemine erinevate ametiasutustega on muutunud märgatavalt lihtsamaks,

kuna suur osa asjaajamisest on viidud arvutisüsteemidesse ja E-hääletus on

saanud reaalsuseks. Sellise infoühiskonna kiire arenguga kaasneb ka palju

kulusid infotehnoloogiavahendite peale. Ajaga sammu pidamiseks on vaja

pidevalt uusi investeeringuid seda nii riistvara kui tarkvara osas. Töötatakse välja

uusi meetodeid ja tehnikaid, et rahuldada üha kasvavat nõudmist optimaalse

kvaliteedi ja hinna suhtega tarkvara järele. Ometi mitte kõiki tarkvaraprojekte ei

ole algatatud rahalise kasu eesmärgil. Koos kõigi teiste tarkvaratoodete

juurdekasvuga kasvab pidevalt ka vaba tarkvara hulk iga aastaga. Oleme

jõudnud aega, mil ka väikeses Eestis on täiesti reaalne, et keskmine

kontoritöötaja saab oma tööga hakkama kasutades oma arvutis ainult vaba

tarkvara ning seejuures on soovi korral veel nii töökeskond/operatsioonisüsteem

kui ka kõik rakendusprogrammid emakeelsed.

Käesoleva seminaritöö eesmärgiks on uurida ja püüda välja selgitada, kuidas

toimib tarkvaraarendus, mida kasutatakse avatud lähtekoodiga tarkvara (OSS)

projektide puhul vabatahtlike arendajate poolt. Samuti püüab selgitada, millised

on sellistes projektides osalejad, mis on erinevate osapoolte roll ja kuidas

juhitakse nendevahelist koostööd.

Töö esimeses peatükis püütakse anda ülevaade kõigist kasutuslitsentside

tüüpidest. Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja

nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

erineva vaba tarkvara propageeriva organisatsiooni (OSI ja FSF) poolt

defineeritud mõisted „vaba tarkvara” ja „avatud lähtekoodiga tarkvara”.

Teises peatükis kajastatakse olulisemaid sündmusi, mis on mõjutanud OSS’i

arengut tema algusaastatel. Kajastamist leiavad olulised nimed, organisatsioonid

kui ka mitmed aastaarvud, mis ühel või teisel põhjusel läinud ajalukku.

Page 4: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

4/24

Kolmas punkt koosneb kolmest alapunktist. Esimeses kirjeldatakse OSS’i

arendusprotsessi üldiselt, teises tema elutsüklit ning kolmandas alapunktis

räägitakse Eestis toimunud vaba tarkvara arendustest.

Neljas peatükk keskendub OSS protsessis osalejatele, tuues samuti välja nende

võimalikud erinevad rollid.

Ka viiendas punktis räägitakse kaudselt tarkvaraarenduses kaasalööjatest.

Sedapuhku antakse ülevaade võimalikest põhjustest ja motiividest

arendusprotsessis kaasalöömiseks.

Töö kuuendas põhipunktis ehk kokkuvõttes võetakse kokku töös käsitletud

teema ja tehakse järeldused sissejuhatuses töö eesmärgiks püstitatud teemade

kohta.

Seitsmes põhipunkt on töös kasutatud lühendite ja terminite loetelu koos

seletustega ja kaheksandast leiab kasutatud kirjanduse loetelu.

Page 5: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

5/24

1 Ülevaade kasutuslitsentside tüüpidest

1.1 Arvutitarkvara liigid

Sõltuvalt kasutuslitsentside tüübist ja kasutatavast litsentsilepingute sõlmimise

tehnikast jaotab BSA (Business Software Alliance) arvutitarkvara järgmiselt [4]:

� ärivara (commercialware)

� jaosvara (shareware)

� proovivara (trialware)

� vabavara (freeware)

� vaba tarkvara (free software)

� avalik tarkvara (public domain software)

Ärivara (commercialware)

Ärivara on peamine arvutitarkvara liik, mida levitatakse tavaliselt

infotehnoloogiafirmade, arvutisalongide ja arvutikaupluste kaudu. Enamik suurte

tarkvaratootjate tarkvarapakettidest on just nimelt ärivara. Ärivara kasutamine on

lubatud alles pärast litsentsitasu maksmist.

Vaatamata sellele, et tootjate lõikes võivad litsentsilepingu tingimused erineda,

jäävad üldpõhimõtted samaks ja on üldjuhul järgmised:

� ärivara on kaitstud autoriõigusega;

� arvutiprogrammi õiguspärasel kasutajal on õigus teha programmist

arhiivikoopia, mida ta võib kasutada üksnes juhul, kui originaal-

tarkvarapakett on muutunud kasutamiskõlbmatuks või on hävinenud;

� muudatuste tegemine programmis ei ole lubatud;

� arvutiprogrammi dekompileerimine (näiteks pöördprojekteerimine) ilma

programmi õiguste valdaja nõusolekuta ei ole lubatud;

� arvutiprogrammi alusel uue programmi arendamine (nn tuletatud

programm) ilma programmi õiguste valdaja nõusolekuta ei ole lubatud.

Page 6: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

6/24

Jaosvara (shareware)

Jaosvara on ärivara eriliik, mida võib kindlaks määratud perioodi jooksul tasuta

kasutada (reeglina 14-90 päeva). Selle ajavahemiku lõppedes tuleb programmi

kasutajal kas kasutamine lõpetada või soetada kasutusõigus. Erinevalt ärivarast

võib jaosvara levitada igal moel va kommertseesmärkidel. Jaosvara erinevus

ärivarast seisneb ka selles, et tegemist on tarkvaraga, mille võimalused ja

funktsioonid on reeglina piiratud või lakkavad mingi tähtaja saabumisel

toimimast. Ka jaosvara suhtes kehtivad samad tingimused, mis ärivara suhteski,

arvestades eelpool toodud erinevusi.

Seega jaosvara üldreeglina ei erine oma kvaliteedilt ärivarast, vaid lihtsalt selle

programmi kasutamisvõimalused on kitsamad, kandes eneses rangelt toote

tutvustamise eesmärki.

Interneti üha laienev levik on järsult tõstnud jaosvara meetodi populaarsust

tarkvara tootjate hulgas: iga soovija võib programmipaketi endale tootjafirma

serverist kopeerida, paigaldada selle oma arvutisse ning juhul, kui paketi

omadused ja hind rahuldavad, osta litsents. Seega on tegemist tarkvaraga, mille

selge eelis ärivara ees seisneb selles, et see võimaldab tarkvarakasutajatel

tasuta proovida erinevaid tooteid ja selgitada toodete vastavust omapoolsetele

nõudmistele.

Proovivara (trialware)

Proovivara on üks jaosvara eriliikidest, mis erineb viimasest üldjuhul selle

poolest, et sellel puudub reeglina kolmandatele isikutele edasiandmise õigus.

Sarnaselt jaosvaraga on ka proovivaral kindel ajavahemik, mille jooksul võib

seda tasuta kasutada.

Vabavara (freeware)

Vabavara on mõeldud üldsusele tasuta kasutamiseks. Selle tarkvaraliigi abil

püüavad tarkvara tootjad ennast teiste tarkvaratootjate kõrval esile tõsta.

Page 7: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

7/24

Vabavara kohta sätestatud tingimused on otse vastupidised ärivara kohta

sätestatule ning sisaldavad üldjuhul järgmisi põhimõtteid:

� vabavara on kaitstud autoriõigusega;

� programmist võib teha koopiaid ja neid ka levitada, va

kommertseesmärkidel;

� vabavara alusel uue programmi arendamine (nn tuletatud programm) on

lubatud tingimusel, et uus programm oleks samuti loodud vabavaraks.

Vaba tarkvara (free software)

Vaba tarkvara puhul on tarkvara kasutajale antud kõige rohkem õigusi võrreldes

eelpool toodud arvutitarkavara liikidega. Vaba tarkvara kasutajal on võimalik

üldjuhul omada järgmisi õigusi:

� õigus käivitada programmi suvalisel eesmärgil;

� õigus uurida, kuidas programm töötab, ja kohandada programmi vastavalt

oma vajadustele;

� õigus programmi koopiat vabalt levitada;

� õigus programmi muuta või parandada ning tulemust levitada.

Oluline on mõista, et vaba tarkvara puhul tähendab vabadus just nelja

ülalnimetatud aspekti ja mitte tingimata seda, et tarkvara kasutusõigust on

võimalik omandada ilma selle eest maksmata. Vaba tarkvara puhul on

programmi lähtetekstid alati kättesaadavad.

Avalik tarkvara (public domain software)

Avalik tarkvara on tarkvara, mille puhul programmi autor on selgesõnaliselt

loobunud kõikidest varalistest õigustest, mis tulenevad programmi loomisest.

Vastavalt Eesti Vabariigi autoriõiguse seaduse (edaspidi AutÕS) § 7-le tekib

autoriõigus teosele (sh ka arvutiprogrammile) teose loomisega, seetõttu on

äärmiselt oluline, et kõik seda liiki tarkvarad oleks täpselt määratletud avalikuks

tarkvaraks. Viimane tuleneb sellest, et autoriõiguse tekkimiseks ei nõuta mingite

formaalsuste täitmist (AutÕS § 7 lg 3).

Page 8: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

8/24

Avaliku tarkvara suhtes kehtivad järgmised üldpõhimõtted:

� autori varalistest õigustest programmi suhtes on loobutud;

� programmist võib teha arhiivikoopiaid ning samuti ka koopiaid levitamise

eesmärgil ilma igasuguste piiranguteta;

� muudatuste tegemine programmis on lubatud;

� arvutiprogrammi dekompileerimine (näiteks pöördprojekteerimine) on

lubatud;

� avaliku tarkvara alusel uue programmi arendamine (nn tuletatud

programm) on lubatud ilma tingimusteta.

Nagu eelpool toodust võib järeldada, on tegemist tarkvaraga, mis erineb

kõikidest teistest tarkvara liikidest oma kasutamisvabaduse poolest, mis

omakorda on tingitud sellest, et autor on loobunud oma varalistest õigustest

vastava programmi osas [4].

1.2 Vaba tarkvara litsentsid

Erinevaid vaba tarkvara litsentse on tänaseks päevaks juba päris palju. Kõiki

neid selles peatükis kindlasti käsitleda ei jõua, aga kolm põhilist vaba tarkvara

litsentsi koos lühikirjeldustega tasub siiski eraldi välja tuua. Need oleks

järgmised [9]:

� GPL (The GNU General Public License) - Litsents, mis sätestab kasutaja

neli põhiõigust (kasutada, kopeerida, muuta, edasi anda) ja nõuab kõigi

seda litsentsi kasutavate tarkvarapakettide puhul nende õiguste laienemist

ka tuletistele - GPL-programmist saab tuletada vaid teise sama litsentsiga

programmi.

� LGPL (The GNU Lesser Public License) - "väiksem" (lesser) GPL (algselt

tähendas esimene "L" aga library't ehk teeki) - erinevalt GPL'st lubab

siduda tarkvara mittevabade moodulitega (peamiselt kasutatigi teekide

ehk tarkvara erinevaid funktsioone realiseerivate abiprogrammikogumite

puhul).

Page 9: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

9/24

� BSD litsents (The Berkeley Software Distribution License)- Berkeley Unixi

litsents (sageli täpsustatakse "uuendatud BSD"). Sarnaneb GPL'ga, kuid

ei keela tuletatud toodete omandivormi muutmist.

Lisaks neile kõige levinumatele on olemas veel rida teisi litsentse, mis leiavad

töös kajastamist lihtsalt nimelise loeteluna. Need oleks järgmised: The MIT

License, The Artistic License, The Mozilla Public License v. 1.0 and 1.1 (MPL 1.0

and MPL 1.1), The Qt Public License (QPL), The IBM Public License, The

MITRE Collaborative Virtual Workspace License (CVW License), The Ricoh

Source Code Public License, The Python License, The zlib/libpng License, The

Apache Software License, The Vovida Software License v. 1.0, The Sun Internet

Standards Source License (SISSL), The Intel Open Source License, The Jabber

Open Source License, The Nokia Open Source License, The Sleepycat

License [1].

1.3 Avatud lähtekoodiga tarkvara definitsioon

OSI poolt defineeritud avatud lähtekoodiga tarkvara ei tähenda pelgalt ligipääsu

lähtekoodile. Lisaks peab OSS vastama ka järgmisele kümnele põhipunktile:

1. Vabalt levitatav

Litsentsi kohaselt ei piira ükski osapool tarkvara, mis on arendatud vabast

tarkvarast või selle osadest, levitamist. Litsents ei näe ette autoritasu ega

honorari. Programmi koopiat peab olema võimalik vabalt ära anda või müüa.

2. Avatud lähetekood

Programmi lähtekood peab olema kättesaadav ning programmi kompileeritud

kuju peab olema sellest tuletatav. Kui programm ei ole otse lähtekoodist

tuletatav, peavad selleks mõeldud vahendid ja meetodid vabalt ja tasuta

kättesaadavad olema. Lähtekoodil peab olema eelistatud kuju, mis võimaldab

programmeerijatel programmi muuta. Lähtekoodi ei tohi teadlikult segaseks

(raskesti arusaadavaks) muuta. Programmi vahekujud (ei ole masinkood ega ka

täielikult kompileeritud) ei ole lubatud.

Page 10: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

10/24

3. Tuletatud tarkvara

Litsents peab võimaldama luua tarkvarast modifikatsioone ja tuletatud tarkvara

ning samuti lubama neid levitada samadel tingimustel nagu originaaltarkvara.

4. Algse lähtekoodi terviklikkus

Litsents lubab lähtekoodi muudetud kuju levikut piirata ainult juhul, kui lähtekoodi

levitamine on lubatud koos parandustega (patch files) muutmiseesmärgiks

loomise ajal. Litsents peab selgesõnaliselt lubama tarkvara, mis on loodud

muudetud lähtekoodist, levitamise. Litsents võib nõuda tuletatud programmidelt

originaaltarkvarast erinevat nime või versiooni numbrit.

5. Isikute või rühmade diskrimineerimise keeld

Litsents ei tohi diskrimineerida ühtegi isikut ega gruppi (kõigil peab olema võrdne

võimalus projektis osalemiseks ja tarkvara kasutamiseks). Litsents peab kehtima

kõigile ja igaühele.

6. Tegevusvaldkondade diskrimineerimise keeld

Litsents ei tohi piirata kedagi kasutamast programmi erinevate spetsiifiliste

valdkondade tarvis. Näiteks ei ole lubatud piirata programmi kasutada äris või

kasutada seda geeniuuringuteks. Programmi ärilist kasutust ei tohi keelata.

7. Litsentsi levitamine

Õigused, mis on omistatud programmile, peavad kehtima kõigile, kellele

programm on edasi levitatud, ilma, et nad vajaksid lisalitsentse programmi

osadele.

8. Litsents ei tohi olla tootespetsiifiline

Õigused, mis kaasnevad programmiga, ei tohi sõltuda suuremast

programmikogumist (distributsioonist), mille osa on litsentseeritav programm.

9. Litsents ei tohi piirata muud tarkvara

Litsents ei saa piirata teise tarkvara kasutust, mis on välja antud koos

litsentseeritud tarkvaraga. Näiteks ei saa litsents nõuda, et kõik teised

programmid, mida levitatakse samal andmekandjal, peavad olema avatud

lähtekoodiga tarkvarad.

Page 11: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

11/24

10. Litsents peab olema tehnoloogiliselt neutraalne

Ükski litsentsi säte ei tohi seada individuaalseid tehnoloogilisi nõudeid või stiile

kasutajaliidesele. Keelatud on nõuda salvestusmeediumist sõltuvate litsentsiga

nõustumise kinnitamise meetodite kasutamist [10].

Siinkohal on paslik ära märkida ka see, kuidas FSF määratleb vaba tarkvara.

Nimelt tunnustab FSF vaba tarkvarana tarkvara, mille kasutajaile on tagatud neli

põhivabadust:

� Vabadus programmi mistahes eesmärgil kasutada (vabadus 0).

� Vabadus uurida, kuidas programm töötab, ja seda oma vajadustele

vastavaks kohandada (vabadus 1). Juurdepääs lähtetekstile on selle

vabaduse teostamise eeltingimuseks.

� Vabadus programmi koopiaid levitada, et oma naabrit aidata (vabadus 2).

� Vabadus programmi parendada ning oma täiendusi avalikkusele

kättesaadavaks teha, et kogu ühiskond sellest kasu saaks (vabadus 3).

Juurdepääs lähtetekstile on selle vabaduse teostamise eeltingimuseks.

2 OSS'i ajalugu

Üheks olulisimaks sündmuseks vaba tarkvara arengu ja leviku ajaloos võib

erinevate allikate põhjal pidada USA ettevõtte AT&T (American Telephone and

Telegraph) programmeerijate poolt väljatöötatud porditava, mitmetegumilise ja

mitmekasutajaga operatsioonisüsteemi Unix loomist. Kuna USA

konkurentsiameti otsuse põhjal ei tohtinud AT&T Unixit kommertsalusel turustada

ega toetada, võimaldas ta ülikoolidel seda õppe- ja arenduseesmärkidel

kasutada. Arvestades nii määratud kasutuseesmärke, ärilise toe puudumist kui

tolleaegse arvutustehnika madalat standardiseeritust levitas AT&T oma tarkvara

koos lähtetekstidega. Ülikoolidel oli õigus süsteemi kohandada, täiendada ja

edasi arendada. Kuna akadeemilistes ringkondades oli teadustöö tulemuste

publitseerimine ja teiste avaldatud tööde edasiarendamine normiks, hakkasid

"kontrollimatult" levima ka Unixi täiendused. Paraku küll edasised aastad tõid

Page 12: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

12/24

kaasa hulgaliselt kohtuvaidlusi erinevate Unix süsteemi arendajate poolt

kasutusõiguste osas, siis kindlasti tuleks ära märkida veel üks olulisem aasta

avatud lähtekoodiga tarkvara ajaloos. Nimelt 1991 aastal otsustas tollane

Helsingi Ülikooli tudeng Linus Torvalds hobi korras luua sõltumatu

operatsioonisüsteemi, mis ei sisalda ridagi võõraid koodiridu ja seega ei sõltu

ühegi teise toote litsentsitingimustest. 26. augustil 1991 saatis Torvalds Useneti

uudistegruppi comp.os.minix ajaloolise postituse, kus ootas kõikvõimalikku

tagasisidet operatsioonisüsteemi Minix kohta, mida tema süsteem mõnevõrra

meenutas [11].

Septembris 1991 avaldas Linus Torvalds Linuxi kerneli versiooni 0.01, mis

sisaldas 10 239 koodirida. 14. märtsil 1994 ilmunud Linux 1.0.0 sisaldas juba 176

250 koodirida. Tänaseks värskeim Linuxi kernel, versioon 2.6.13.3, ilmus 3.

oktoobril 2005 ning sisaldas ligi 6 miljonit rida lähteteksti. IT-turbe ekspert David

A. Wheeler on COCOMO metoodikale tuginedes väitnud, et selle taasloomiseks

Ameerika Ühendriikides konventsionaalsel meetodil - suletud eratarkvarana

oleks vaja investeerida rohkem kui 600 miljonit dollarit [11].

OSS tarkvara arendamise huvi on ka viimasel ajal suurenenud märkimisväärselt.

Kindlasti on oluline roll selles mitmetel erinevatel tarkvaraprojektidel. Kõigil

siinkohal pikemalt peatuda ei jõua, kuid nimetada tasuks veel võib-olla Apache

serverit, Perl programmeerimiskeelt, SendMail meilitarkvara jne.

Olulise sündmusena ajaloo poole pealt tasub ilmselt ka mainimist aasta 1998.

Sel aastal Palo Altos peetud strateegianõupidamisel leidsid Raymond, Bruce

Perens ja teised vaba tarkvara huvilised, et äriringkondadele vastuvõetav termin

seni kasutusel olnud "vaba tarkvara " asemel vaja muutmist. Nad leidsid, et võiks

kasutusele võtta termini "avatud lähtetekstiga tarkvara" (open source software).

Samal aastal Raymond ja Perens asutasid mittetulundusühingu Open Source

Initiative (OSI), mis on tänaseni FSFi kõrval teine oluline vaba tarkvara

propageerija.

Page 13: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

13/24

3 OSS'i arendusprotsess

3.1 Protsess

OSS projekti võib alustada mitmel viisil: leida uus, võtta üle eelmistelt omanikelt

või võtta üle mõni käimasolev hääbuv projekt [3]. Sageli on just eeldatavad

kasutajad need, kes defineerivad toote olemuse ja kirjutavad koodi. Protsess on

pidev nagu ka tarkvara arendus on lõputu.

Tuginedes mitmele allikale [1], [3], võib väita, et OSS’i arendusprotsess sarnaneb

mõningal määral teiste agiilmetoodikatega nii ideedes kui praktikas, kuid sellel on

kindlasti ka omad kindlad eripärad. Nimelt OSS'i arendust peetakse teistest

agiilmeetoodikatest erinevaks filosoofilises plaanis, majanduslikus plaanis kui ka

meeskonna struktuuri poolest. Arendusprotsessi sarnasuseks võib aga pidada

samuti varajaste sagedaste tulemite publitseerimine ning seal puuduvad mitmed

traditsioonilised mehhanismid ja koordineerimised tarkvara arendamise

planeerimisel, süsteemi disainis, aja planeerimisel ja teistes määratud

protsessides.

Tüüpiliselt OSS projekt sisaldab endas järgmisi faase [3]:

1. probleemi püstitus

2. vabatahtlike leidmine

3. lahenduse identifitseerimine

4. koodiarendus ja testimine

5. koodimuutuste ülevaade

6. koodi realiseerimine ja dokumenteerimine

7. tarkvara haldus

OSS projekt ei ole kombinatsioon hästi dokumenteeritud ja kirjeldatud

tarkvaraarendusest, mis üldiselt iseloomustab head arendusmeetodit. Seda on

parem kirjeldada kui paljudes erinevates kohtades asuvate inimeste koostööl

põhinevat viisi toota tarkvara väikeste ja sagedaste täienduste kaupa [3]. Selline

globaalne koostöö kolleegide vahel tugevnes tunduvalt interneti laienemisega 90.

aastatel, kuna arendajad ja samuti väikesed arendusgrupid on geograafiliselt

Page 14: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

14/24

hajutatud ja edukaks tööks on vajalik avatud ja hästitoimivad

kommunikatsioonikanalid.

Mokus et al. on OSS'i arendusmeetodeid kirjeldanud järgmiste peamiste

seisukohtadega/omadustega [3]:

� süsteemid luuakse suure hulga vabatahtlikega

� tööülesanded pole määratud; inimesed valivad ise ülesande, mis neid huvitab

� puudub täpne süsteemi tasemete kava

� puudub projekti plaan ja ajakava

� programme testitakse sageli

Vastavalt Feller’i ja Fitzgerald’i mõtetele tuleb OSS'i arendamise

organiseerimisel tegeleda samaaegselt arenduse ja veakõrvaldustega [3]. See

koosneb üksikute arendajate tsentraliseerimata koostööst ja tasuta panusest.

OSS'i arendusprotsess ei sisalda ühtegi eeldefineeritud ametlikku

dokumentatsiooni, reeglit ega tava. Siiski tuginetakse protsessis varasematele

kogemustele. Kuigi kogu OSS'i arendusprotsess näib üsna vaba ja

ebareeglipärane, peab tal siiski olema kindel struktuur. Vastasel juhul poleks ta

kunagi saavutanud nii tähelepanuväärseid tulemusi.

OSS’i arendusprotsessi iseennast saab täiustada mitmete spetsiifiliste tarkvara

arendusmeetoditega, kuid need meetodid peavad lähtuma OSS’i spetsiifilisusest.

Seega võib protsess omada kiiresti muutuvaid aspekte, kuid teisest küljest võib

arendamisprotsess ise aeglustuda mitmetel erinevatel põhjustel nagu huvitatud

ja oskustega arendajate puudumine ning erinevate tulevikunägemuste

konfliktid [3].

3.2 Elutsükkel

See punkt sisaldab ülevaadet OSS'i arendusprotsessi elutsüklist tuginedes

suuresti Feller, J. ja Fitzgerald, B. kirjapandule raamatus "Understanding Open

Source Software Development". Traditsioonilise tarkvaraarenduse elutsükkel

(Software Development life cycle - SDLC) neljast põhilisest osast.

Page 15: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

15/24

Need on järgmised:

� planeerimine

� analüüs

� disain

� kasutussevõtmine

Samas on OSS' arendusmudel üpris erinev. Esiteks, planeerimine, analüüs ja

disain tehakse suures osas ära projekti alustaja poolt ega ole OSS'i tavalise

arendustsükli osad, mis aga ei tee neid olemuselt vähetähtsateks. OSS tarkvara

puhul on tarkvara tõhusalt mooduliteks jagamine ja disain vägagi kriitilise

tähtsusega. Esiteks, moodulid peavad olema nõrgalt seotud, et oleks võimalikud

jagatud arendamine. Vähem tähtis, kuid samas efektiivse mudeli huvides peavad

moodulid olema ka kompaktsed ja täitma ühte konkreetselt neile pandud

ülesannet. Samas tehakse disaini puudutavad otsused tihti enne suurema hulga

arendajate lisandumist ning põhinevad töökindlatel arendusmudelitel. See laseb

arendajatel osaleda ilma, et nad peaksid tegema läbi mahuka analüüsi ja disaini

etapi.

Uurides erinevaid projekte on mitmed uurijad jõudnud üsna sarnase

arendusmudelini. Näiteks Mockus, kes oma väidetes tugines Apache projekti

jälgimisele, ja Jorgensen, kes on uuringud lähemal FreeBSD projekti on jõudnud

enamvähem samasugusete mudeliteni [1].

Seega võib väita, et üldjuhul on OSS'i arenduse elutsüklis esindatud järgmised

etapid:

� Koodikirjutamine

� Loodu ülevaatamine

� Koodibaasi lisamiseelne testimine

� Arendusversiooni avalikustamine

� Paralleelne veaparandus

� Valmisversiooni avalikustamine

Koodikirjutamine

See on kõigile avatud protsess. Samas, mitmed potentsiaalsed OSS'i arendajad

ei julge antud etapis osaleda, sest kardetakse kogenenumate ja respekteeritud

Page 16: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

16/24

OSS arendajate kriitikat. Samas, koodi pidev ülevaatamine kõige kogenenumate

ja oskajamate poolt tingib ka koodi kvaliteedi kasvu.

Loodu ülevaatamine

Nagu juba mainitud aus ja otsekohene tagasiside koodi kvaliteedi kohta on üks

OSS'i arenduse peamisi tugevusi. Samas võib algajatel seda vägagi raske saada

olla. Samuti on märgatud, et mida lihtsam kood on, seda rohkem see tagasisidet

saab, kuigi keeruline kood saab tagasisidest palju rohkem otsest kasu. Ka disaini

osas on tagasiside saamine tihti vägagi raske.

Koodibaasi lisamisseelne testimine

Testimise suunamine või osaline suunamine kasutajatele (näiteks Mozilla,

GNOME) on üks OSS'i tugevusi. Oluliseks peetakse, et paigaldamine läheks

võimalikult libedalt ilma üleliigse häireta ja sellepärast liigselt keerulised ja

röövellikud moodulid tuleb juba varakult välja praakida. On tähendatud, et

testimine on tihti vägagi isiklik protsess. Tavaliselt ei ole mingeid nõudeid, et

testijuhtumid peavad olema planeeritud või kirja pandud. Samas, vigasest

moodulist põhjustatud negatiivse tagasiside võimalikkuse tõttu võetakse testimist

siiski väga tõsiselt.

Arendusversiooni avalikustamine

Kui koodikirjutaja tõdeb, et tema kirjutatud moodul on valmis, võidakse see lisada

arendusversiooni. See on peamine tasu arendajatele - näha enda kirjutatud

koodi kiiresti tootesse lisatuna.

Paralleelne veaparandus

Nagu ka testimises ei ole veaparanduses ühtset plaani. Põhiline edu sõltub just

potentsiaalsete veaparandajate suures numbris. Kui leitakse vead, võidakse

need parandada ja moodul uuele ringile lasta või luuakse probleemiraportid, kus

need vead teatavaks tehakse.

Valmisversiooni avalikustamine

Kõik arendused saavad viimaks valmisversiooni osaks, pannes need stabiilse

valmisversiooni harusse. See on erinevates projektides lahendatud erinevalt.

Näiteks FreeBSD aredusprotsessis stabiilne valmisversioon ja ajakohased

Page 17: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

17/24

arendusharud ning koodijupid, mis loetakse sobivaks, lisatakse lõpuks ka

lõppversiooni. Veaparanduse korral läheb see ka seotud

arenduskoodiharudesse. Linux'i puhul on valmisversioon ja arendusversioonid

erinevates kaustades ning identifitseerimises kasutatakse väljalaske numbreid -

valmisversioon on paaris number ja arendusversioon on paaritu number.

3.3 Arendamine Eestis

Nagu kogu maailmas, nii ka Eestis on viimasel ajal märgata teatavat huvi kasvu

OSS'i vastu. On äärmiselt positiivne näha, et ka riik on pannud oma õla alla

mitmete OSS projektide arendamisele ja erinevate toodete lokaliseerimisele ehk

eestindamisele. Nii on meile kõigile tänaseks tasuta kättesaadavad

kontoritarkvara OpenOffice.org eestikeelne versioon, mitmed emakeelsed

operatsioonisüsteemid ja palju muudki.

Et täpsemalt aimu saada sellisest arendusprotsessist kirjeldatakse järgnevalt

näitena üht konkreetset Eestis läbiviidud projekti. Selleks sobiks hästi Tiigrihüppe

Sihtasutuse poolt rahastatud ja kolme Eesti ettevõtte (Nordtech OÜ, Cybernetica

AS ja MTÜ Offline.ee) poolt algatatud projekt vabatarkvaralise tarkvaraplatvormi

arendamiseks [13].

Projekti põhieesmärkideks olid:

� Vaba tarkvara eesti keele toe täiustamine - eestikeelne vaba tarkvara ja

vabad eesti keele töövahendid koolidel

� Tarkvara ja oskusteabe viimine kasutajateni - 500 tarkvara

paigalduskomplekti ja käsiraamatut

� Tugi- ja seotud teenuste võrgustiku loomine - tasuta tugitelefon ja

suhtlusfoorumid

� Jätkusuutlikkus - koostöövormid, mis toetavad vaba tarkvara lahenduste

kasutamist ka pärast projekti nominaalse tähtaja lõppu

Page 18: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

18/24

� Loodud lahenduste taaskasutamine - valmivad lahendused jõuavad

programmide autorite kaudu kõigi kasutajateni ning saavad vastavalt vaba

tarkvara arendusmudelile baasiks järgmistele arendustele

Projekt jaotati kolme etappi järgmiselt:

I etapp

� Tehnoloogilise platvormi valik - lähtutakse järgmistest argumentidest:

olemasolev laiapõhjaline kasutajate ja arendajate kogukond, projekti

käigus tehtud arendustööde kiirem jõudmine paljude kasutajateni,

stabiilsem ja võimalusterohkem keskkond tänu juba olemasolevale

kogemustepagasile, jätkusuutlikkus, riistvaratoetus, seadistusvahendid,

tarkvarauuenduste kättesaadavus, levitamisõigus

� Valitud tarkvara lokaliseerimine - lokaliseeritakse ühtlustatult: paigaldus- ja

seadistusprogrammid, töökeskkond, kontoritarkvara

� Paigalduskomplekti koostamine - lokaliseeritud paigaldus- ja

seadistusprogrammid ning töökeskkond ja kontoritarkvara

� Paigalduskomplekti testimine - pööratakse tähelepanu järgnevale: dual-

boot süsteemid, haldusvahendite piisavus, ühilduvus teiste lahendustega,

töökindlus ja turvalisus

II etapp

� Eesti keelevahendite loomine - vabatarkvaralise eesti spelleri ja poolitaja

loomine

� Õpitarkvara valimine ja testimine - õpitarkvara valimine ja testimine toimub

koostöös projekti teostajate ja haridusasutuste esindajatega

III etapp

� Käsiraamatu koostamine ja kirjastamine

� Paigalduskomplekti tiražeerimine

� Tugiteenuste infrastruktuuri loomine

� Infopäevade korraldamine

Page 19: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

19/24

Projekti esimese etapiga alustati 2005. aasta jaanuaris ja projekti ajakava

kohaselt peaks tänaseks olema lõpetatud juba ka IIl etapiga. Projekti peamisteks

tulemiteks on üks tehnoloogiline platvorm täielikult eestindatud paigaldus- ja

seadistustarkvaraga, töökeskkonnaga ning kontoritarkvaraga OpenOffice.org 2.0.

Samuti vabatarkvaraline speller MySpell ja Aspell mootoritele (võimaldavad

õigekirjakontrolli sisuliselt kõigis Linuxi rakendustes), käsiraamatud, 500

paigalduskomplekti erinevatele haridusasutustele, tasuta elektrooniline tugi

tarkvara paigaldamisel ja kasutamisel (Offline.ee foorum).

4 OSS protsessis osalejad

Koos üldise arenguga OSS'i maailmas on kasvanud ka huvi vanade tuntud

firmade poolt OSS'i vastu. Teiste seas võib ära märkida IBM, Apple, Oracle,

Corel, Netscape, Intel, Ericsson, mis on võtnud koordinaatori ja mediaatori rolli

ning käituvad projekti haldajatena eriti suurte OSS projektide juures. Samuti on

viimase aja tendents see, et on tekkinud niiöelda andmetalletusleheküljed nagu

näiteks freshmeat.net ja sourceforge.net. Need leheküljed varustavad OSS'i

arendajaid tasuta teenustega nagu projektimajutus, versiooni kontroll, vigade ja

küsimuste jälgimine, projektihaldus, tagavarakoopiad ja arhiivid ning ka

kommunikatsioon [3]. Kuna näost näkku koosolekuid OSS projektis üldjuhul ei

kasutata, siis on kommunikatsiooni korraldamine ülioluline protsessi toimimiseks.

Samuti ei saa alahinnata teistegi tööriistade rolli, kuna arendatav tarkvara peab

olema organiseeritud ja töökorras pidevalt päeval ja öösel ning arendajad on ise

väga erinevate oskuste ja taustaga.

Tavaliselt kasutatakse OSS'i arenduse struktuuris järgmisi vabatahtlikke:

1. projektijuhid, kes vastutavad üldiselt kogu projekti eest ja kes tavaliselt

on kirjutanud esialgse koodi

2. vabatahtlikud arendajad, kes loovad ja edastavad koodi projekti jaoks.

Nemad võib edaspidi liigitada nii:

Page 20: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

20/24

a. vanemad liikmed (seniors) või alusarendaja (core developers), kellel

on laiem autoriteetsus

b. väline arendaja (peripheral developers), kes viib sisse koodimuutusi ja

edastavad need

c. juhuslik kaastöötaja (occasional contributors)

d. hooldaja (maintainers) ja tunnustatud arendaja (credited developers)

3. teised isikud, kes on suunatud tarkvara kasutama, teostama teste,

tuvastama vigu ja edastama tarkvara probleemide aruandeid

4. postitaja (posters), kes osalevad sageli uudistegruppides ja

diskusioonidel, aga ei kirjuta koodi.

Sharma et al. (2002) põhjal on OSS'i arendusprojektid tavaliselt jaotatud

peaarhitektide või disainerite poolt väiksemateks ja kergemini juhitavateks

ülesanneteks, millega tegelevad konkreetsed isikud või grupid, kes valivad ise

endale sobiva ülesande. Seega üldprojekti ratsionaalne mooduliteks jagamine on

hädavajalik arendusprotsessi edukuseks. Samuti peavad need moodulid huvi ja

atraktiivsust pakkuma arendajatele [3].

5 OSS projektis osalemise erinevad motiivid

Lähtuvalt Joseph Feller'i ja Brian Fitzgerald'i uuringust nende väljaantud

raamatus "Understanding Open Source Software Development" võib OSS

protsessis osalemise eri motiivid jagada kolme gruppi. Need on tehnoloogilised,

majanduslikud ja sotsiaal-poliitilised motiivid. Sellest lähtudes võib neid kirjeldada

järgmise kokkuvõtliku tabeliga:

Page 21: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

21/24

Mikrotase (üksikisik)

Makrotase (oraganistatsioon/ühiskond)

Tehnoloogilised motiivid

� Rakendada personaalset tehnoloogilist vajadust

� Tõhus ülevaade kogu protsessist protsessi enda seest

� Võimalus töötada tehnoloogia viimase sõna kallal

� Parandada toote kvaliteeti

� Jagada rutiinseid ja ajamahukaid arenduse osi (testimine, dokumenteerimine) kasutajatega

� Kasutada vabasid ressursse arendustegevuses

� Soodustada uuendusi

� Kindlustada rakenduste läbipaistvus

Majanduslikud motivatsioonid

� Saada kogemuslikke eeliseid

� Parandada koodikirjutamise oskusi

� Saada „ratsa rikkaks“

� Kogemus tasuta - kaotada pole midagi

� Kasutada maksimaalselt ära investorite vaimustust avatud lähtekoodiga tarkvarast

� Aidata kaasa tarkvara arenduse paradigma muutumist mugavustootest kasutajate vajadusest lähtuva teenuseni

� Tagada teadmiste vabadus ja tugevdada brändid

� Teenida mitteotsest kasu lisateenuste ja seotud toodete kaudu

� Teha tarkvara kätte-saadavaks arengumaades

� Väiksemad kulud - odavam platvorm kui alternatiivsed

Sotsiaal-poliitilised motivatsioonid

� Isikliku ego rahuldamise soov

� Sisemine vajadus programmeerida

� Kogukonda kuulumise tunne

� Omakasupüüdmatus

� Sotsiaalsed liikumised vajavad „vaenlast“ - nt Microsoft

� Ideoloogia - tarkvara peab olema vaba

� Uute töömudelite arendamine ning üldlevinuks tegemine

Page 22: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

22/24

6 Kokkuvõte

Antud teemat oma seminaritööks valides olin veendunud, et OSS

arendusmeetod on nagu iga teinegi tarkvaraarendusmeetod konkreetsetest

etappidest ja meetoditest koosnev dokumenteeritud tarkvaraarendusmudel.

Ometi materjali antud teema kohta otsides ja sellega tutvudes, pidin aga tõdema,

et mingisuguseid õpikulaadseid materjale selle kohta ei leidu ja OSS'i arendus on

paljuski kindlate ettekirjutusteta. Tihti lähenetakse iga projekti puhul konkreetse

projekti vajadustele vastavalt ja mingist kindlast aredusreeglistikust ei lähtuta.

Selline lähenemine tuleneb eelkõige ilmselt ajaolust, et tavaliselt osaleb ühe OSS

projekti kallal suur hulk inimesi üle maailma, kel kõigil erinevad nägemused,

oskused ja taust. Siiski leitakse mitmetes allikates, kus seniajani teostatud

erinevaid OSS projekte uuritud, et OSS'i arendusprotsess sarnaneb teiste agiil-

ehk välemetoodikatele nii ideedes kui praktikas (näiteks sagedaste tulemite välja-

andmine), kuid erineb nendest filosoofilises plaanis, majanduslikus plaanis kui ka

meeskonna struktuuri poolest.

Page 23: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

23/24

7 Lühendite ja kasutatavate võõrkeelsete terminite loetelu

agiilmetoodika - tarkvaraarendusmeetodite grupp, mida tuntakse ka väledate

meetodite nime all

BSA - (Business Software Alliance) organisatsioon, mis kaitseb autorite huve

distributsioon - levitamine, jaotamine, erinevad tarkvaratooted/projektid -

näiteks operatsioonisüsteemil Linux on üle saja eri distributsiooni (RedHad, Suse

jne)

dual-boot süsteem - võimaldab ühte arvutisse paigaldada mitu

operatsioonisüsteemi ja neid vastavalt vajadusele eraldi käivitada

E-hääletus - oma hääle andmine interneti teel

FreeBSD - üks paljudest Linux'i distributsioonidest

FSF - (Free Software Foundation) 1985. aasta oktoobris asutatud vaba tarkvara

Sihtasutus

GNU - 80. aastate algul Richard Stallman koos rühma huvilistega USA-s

alustanud Unixi vaba teisendi väljatöötamist, mida nad nimetasid GNU-ks

SDLC - (software development life cycle) tarkvara arenduse elutsükkel

OSI - (Open Source Initiative) vaba tarkvara propageeriv mittetulundusühing

OSS - (Open Source Software) avatud lähtekoodiga tarkvara

patch files - tarkvara vigade parandusteks mõeldud failid

vaba tarkvara - töös on kasutatud seda sõnapaari samas tähenduses, mis

avatud lähtekoodiga tarkvara, avatud lähtetekstiga tarkvara ja ka lühendit OSS

Page 24: TALLINNA ÜLIKOOL Matemaatika …...Samas peatükis tuuakse välja vaba tarkvara peamised litsentsid ja nende põhitingimused. Sama peatüki viimases punktis on välja toodud kahe

24/24

8 Kasutatud kirjandus

1. Feller, J., Fitzgerald, B. Understanding Open Source Software

Development. Great Britain, 2002.

2. Golden, B. Succeeding with Open Source. Addison Wesley Professional,

2004.

3. Abrahamsson, P., Salo, O., Ronkainen, J., Warsta, J. Agile software

development methots. Review and analysis. VTT Electronic, 2002.

4. Arvutitarkvara liigid [WWW]

http://www.bsa.ee/index.php3?menu_id=103&lang=ee (16.10.2005)

5. Leis, P. Agiilmetoodikad. A&A, 04/2001.

6. Raymond, Eric S., The Cathedral and the Bazaar, Thyrsus Enterprises

[http://www.tuxedo.org/~esr/]

7. No Software Patents! [WWW] http://www.nosoftwarepatents.com/en/m/

intro/index.html (26.10.2005)

8. Vilgota, A., Bakalaureusetöö „Mudelipõhine tarkvaraarendus” Tartu

Ülikool, 2004.

9. Kikas, K., Pingviiniaabits, OÜ Vali Press, 2004.

10. Open Source Initiative OSI [WWW] http://www.opensource.org/docs/

definition.php (28.10.2005)

11. VabaTarkvara - LIBA [WWW] http://isiklik.info/LIBA/VabaTarkvara#head-

58be3a0b7b0944f13404992f5fbe110e6942706e (28.10.2005)

12. The GNU Operating System [WWW] http://www.gnu.org/ (16.10.2005)

13. Taotlus Tiigrihüppe Sihtasutusele vabatarkvaralise tarkvaraplatvormi

arendamiseks [WWW] http://foorum.offline.ee/files/3/473/tsaprojekt.pdf

(4.11.2005)