Post on 02-Aug-2020
Kaspar Loog
2.09.2011 © Kaspar Loog
Austa kõiki teisi loengutes ja praksides viibijaid
Meeskonnatöös küsi endalt, “Kas kõigi arvamust on arvestatud?”
Ole positiivne ja haara initsiatiivi Õppejõu käest võib küsida kõike, kui miski
segaseks jäi
2.09.2011 © Kaspar Loog
Aine koduleht
http://courses.cs.ut.ee/2011/tvt/
Kõik küsimused Raimundas Matulevicius rma@ut.ee
2.09.2011 © Kaspar Loog
Tutvuda valdkonna ja ajalooga Õppida tarkvara arenduse põhimõisteid ja
metoodikat Õppida üksteiselt Mõista meeskonnatööd Kogeda tarkvara arendamisega seotud
probleeme Et natuke lõbus ka oleks!
2.09.2011 © Kaspar Loog
1. Sissejuhatus 2. Tarkvaratehnika ajalugu 3. Rusikareeglid tarkvaraarendusest 4. Tarkvaratehnika distsipliinide
helikopterivaade
2.09.2011 © Kaspar Loog
1 – Sissejuhatus ja ajalugu
2.09.2011 © Kaspar Loog
Valdkond, mis tegeleb tarkvara arendamise ja
hooldamisega, kasutades tehnoloogiaid ja praktikaid arvutiteadusest, projektijuhtimisest ja teistest valdkondadest.
Tarkvaratehnika...
2.09.2011 © Kaspar Loog
2.09.2011 © Kaspar Loog
Tarkvara arenduse (Software engineering) mõiste 1968 Garmish-Partenkirchen, Saksamaal
Esimesed konverentsid (NATO teaduskomitee) 1968 ja 1969
© Kaspar Loog 2.09.2011
Ajakava ja eelarve mitmekordsed ületamised olid tavalised
Tarkvara (eriti vead) hakkas mõjutama igapäevaelu
Inimesed said surma
2.09.2011 © Kaspar Loog
CHAOS Report 1994 2009 Edukaid projekte 16% 32%
2000 2003 Katkestatud projekte 31% 16%
Tähtaja ületanud 82% 63%
Funktsionaalsus 67% 52% Põhjused Keerukus
Ootused
Muutused
Haridus
2.09.2011 © Kaspar Loog
Denver International Airport 1993
Therac-25 kiiritusravi seade 1985
Ariane 5 lend 501 1996
2.09.2011 © Kaspar Loog
Pidevalt hüppasid välja uued tehnoloogiad, mis väitsid tarkvara arendust mitmekümnekordselt parandavat/kiirendavat jne.
1987 – Fred Brooks “No Silver Bullet”
Ükski üksik tehnoloogia või praktika ei too kaasa võitu üle 10x arendusajas, -rahas või funktsionaalsuses.
2.09.2011 © Kaspar Loog
Elukutse “Tarkvarainsener” teke
Naised domineerisid tarkvara arendust 1950-1960-ndatel
Protsesside ja metoodikate pealetung
Riistvara-tarkvara hinnasuhte drastiline muutus
USA-s tarkvara arvel 25% majanduskasvust 1990-ndatel 2.09.2011 © Kaspar Loog
Globaalne IT eelarve Ca 48 triljonit krooni 48 000 000 000 000 EEK
Kulu tarkvaravigadele USA-s (64% kannavad lõppkasutajad 36% kannavad arendajad ja tarnijad)
$60 miljardit
Äriline kahju tarkvaravigadest ja –katkestustest
$200 miljardit
Üle 80% arendustest ja tarkvaraostudest tehakse arvestamata tarkvaralist keskkonda
2.09.2011 © Kaspar Loog
2.09.2011 © Kaspar Loog
Umbes pooltel arendajatel on kraad arvutitega seotud alal
Mis tagab projektide edukuse?
2.09.2011 © Kaspar Loog
2.09.2011 © Kaspar Loog
Barry Boehm
Tarkvaraprobleemi lahendamine varajastes disainietappides on on 100 korda odavam kui...
2.09.2011 © Kaspar Loog
Tarkvaraprojekti ajagraafikut saab tihendada maksimaalselt 25% võrra
2.09.2011 © Kaspar Loog
Iga arendusele kuluv kroon tähendab, et hooldusele kulub 2 krooni
2.09.2011 © Kaspar Loog
Tarkvara arendamise ja hoolduse kulud on funktsioon koodiridade arvust
2.09.2011 © Kaspar Loog
Inimestevahelised erinevused on kõige suurem produktiivsuse mõjutaja
2.09.2011 © Kaspar Loog
1955 – 15:85 1985 – 85:15 2006 - ???
2.09.2011 © Kaspar Loog
Ülejäänu on programmeerimist toetav ja abistav töö
2.09.2011 © Kaspar Loog
Tarkvarasüsteemi koodirida maksab 3x rohkem kui üksiku programmi koodirida “Diseconomy of scale”
2.09.2011 © Kaspar Loog
2.09.2011 © Kaspar Loog
2.09.2011 © Kaspar Loog – Know IT Estonia
Pareto printsiip
2.09.2011 © Kaspar Loog
2.09.2011
Nõuete analüüs Analüüs Arhitektuur Disain Kodeerimine Testimine Juurutamine Versioonide/konfiguratsioonihaldus Projektijuhtimine
2.09.2011
Süstemaatiline viis millegi tegemiseks
2.09.2011
Üsna konkreetsed juhised tarkvaraprojekti läbiviimiseks ja juhtimiseks
Praktilised nõuanded, mis puudutavad tehnilisi aspekte
Keskenduvad
Tulemuste kirjeldamisele
Projektiplaani ülesehitusele ja tööde soovituslikule järjekorrale
2.09.2011
Rollid Oskused Tiimid Protsess Tehnikad Tegevused Tulemid (tehised)
Verstapostid Standardid Kvaliteet Tiimi väärtused Tiimi iseloom Töövahendid
2.09.2011
Waterfall – kaskaadmudel Spiraalmudel Iteratiivmudel
Rational Unified Process (RUP)
Select Enterprise Väledad metoodikad
Scrum
XP – eXtreme programming
FDD – feature-driven development
ADD – adaptive software development
Crystal
RUP kohendused
...
2.09.2011
CMM – Capability Maturity Model ISO sarja standardid
Näiteks: ISO 9001:2000 – Ettevõttesisene kvaliteedijuhtimissüsteem
EVS ISO/ICE 12207 – Tarkvara elutsükli protsessid
IEEE
SWEBOK
PMOBOK
2.09.2011
2.09.2011
Algus ja lõpp Eesmärgistatus
Visioon Juhitud kindlate
inimeste poolt Erinevad ressursid Mitte-rutiinne
tegevus Palju riske Palju konflikte
2.09.2011
Interdistsiplinaarne “teadus” kuidas juhtida projekte edukalt, kasutades selleks erinevaid ressursse inimeste, tehnoloogia, teadmiste ja otsustamisvahendite abil.
2.09.2011
Meeskonna liikmete mõjutamine oma isikliku mõjuga, et saavutada nii organisatoorsed kui ka isiklikud eesmärgid
Oskus luua haaravat kollektiivset visiooni ja seda edasi anda nii, et see motiveeriks teisi
Tegutsemine selliselt, et töötajad reageeriksid su tegudele
2.09.2011
Võta näpust!
2.09.2011
Kes oli projektijuht? Mis oli eesmärk? Visioon? Tegutsemine? Reaktsioon?
2.09.2011
Visioon Head suhtlemisoskused Võime sisendada veendumust ja
viitsimist Tegevusele Tulemustele orienteeritus
2.09.2011
Emotsionaalne väljendusrikkus ja soojus Valmisolek võtta personaalseid riske Ebatraditsionaalsete strateegiate
kasutamine Stressitaluvus
2.09.2011
2.09.2011
Kommunikatsioon (oskus kuulata) Organiseerimisoskused (planeerimine,
eesmärkide püstitamine) Meeskonna ehitamine (Team spirit) Juhtimine Delegeerimine Oskused raskustes (stressitaluvus, etc) Tehnilised oskused
2.09.2011
karismaatiline isiksus efektiivne organisatsiooni sisene poliitik tehniline ekspert kõrge tasemel administratiivsete oskustega
isik e. kuivik
2.09.2011
Millest koosneb projekt?
2.09.2011
Eesmärk
Plaan
Lõpukriteerium
Inimesed
Ressursid
2.09.2011
RAHA
Kuidas seda koostada?
2.09.2011
2.09.2011
Ülevaade (peamised verstapostid)
Eesmärgid (kasum, strateegia, …)
Üldine lähenemine Lepingust tulenevad
asjaolud Graafikud (release
plan, test plan jne.)
Ressursid Eelarve Nõuded meeskonna
oskustele Hindamismeetodid Riskid
2.09.2011
Ehita projektiplaan üles lähtudes tulemitest, mitte tegevustest Parandab kontrollimist
2.09.2011
Formaalsed meetodid ‘Arhitektuurne’ meetod
2.09.2011
Mis ohustab projekti? Mis võib juhtuda? Mida me ei oska? Millised on meie tundmatud alad? Kuidas me neid riske maandame?
2.09.2011
2.09.2011
Distsipliinide ülevaade
2.09.2011
Nõuete analüüs Analüüs Arhitektuur Disain Kodeerimine Testimine Juurutamine Versioonide/konfiguratsioonihaldus Projektijuhtimine
2.09.2011
Keskendub sellele, mida tarkvara tegema peab “Millist maja meil vaja on?”
2.09.2011
Keskendub sellele, kuidas tarkvara oma eesmärki täidab “Maja projekteerimine ja sisekujundus”
2.09.2011
Arhitektuuridokument Näidisarhitektuuridokument (Reference) Analüüsimudel/dokument Disainimudel/dokument Füüsilise arhitektuuri kirjeldus (deployment
model) Andmemudel
2.09.2011
Keskendub sellele, et tarkvara valmis teha “Maja ehitamine”
2.09.2011
Keskendub sellele, kas süsteem teeb seda, mis oodati “Küttesüsteemide test, soojapidavuse kontroll...”
2.09.2011
Tehtud töö lõppkasutajateni viimine “Sissekolimine”
2.09.2011
2.09.2011
Toetab ja arendab töötegemist “Tellingud, segumasinad ...”
2.09.2011
2.09.2011
Requirements Analysis – design -
architecture Coding – development
-implementation Testing Deployment Support Maintenance
Project management Improvement Documentation Configuration
management Software Quality
Assurance
2.09.2011
WIKIPEDIA
Otsi järgmseid märksõnu ja loe! Software engineering
Software development process
2.09.2011