Kaspar Loog 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 Kaspar Loog
Aine koduleht http://courses.cs.ut.ee/2011/tvt/ Kõik küsimused Raimundas Matulevicius rma@ut.ee 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! Kaspar Loog
1. Sissejuhatus 2. Tarkvaratehnika ajalugu 3. Rusikareeglid tarkvaraarendusest 4. Tarkvaratehnika distsipliinide helikopterivaade Kaspar Loog
1 Sissejuhatus ja ajalugu Kaspar Loog
Valdkond, mis tegeleb tarkvara arendamise ja hooldamisega, kasutades tehnoloogiaid ja praktikaid arvutiteadusest, projektijuhtimisest ja teistest valdkondadest. Tarkvaratehnika... Kaspar Loog
Kaspar Loog
Tarkvara arenduse (Software engineering) mõiste 1968 Garmish- Partenkirchen, Saksamaal Esimesed konverentsid (NATO teaduskomitee) 1968 ja 1969 Kaspar Loog
Ajakava ja eelarve mitmekordsed ületamised olid tavalised Tarkvara (eriti vead) hakkas mõjutama igapäevaelu Inimesed said surma 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 Kaspar Loog
Denver International Airport 1993 Therac-25 kiiritusravi seade 1985 Ariane 5 lend 501 1996 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. 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 Kaspar Loog
Globaalne IT eelarve Kulu tarkvaravigadele USA-s (64% kannavad lõppkasutajad 36% kannavad arendajad ja tarnijad) Ca 48 triljonit krooni 48 000 000 000 000 EEK $60 miljardit Äriline kahju tarkvaravigadest ja katkestustest $200 miljardit Üle 80% arendustest ja tarkvaraostudest tehakse arvestamata tarkvaralist keskkonda Kaspar Loog
Kaspar Loog
Umbes pooltel arendajatel on kraad arvutitega seotud alal Mis tagab projektide edukuse? Kaspar Loog
Barry Boehm Kaspar Loog
Tarkvaraprobleemi lahendamine varajastes disainietappides on on 100 korda odavam kui... Kaspar Loog
Tarkvaraprojekti ajagraafikut saab tihendada maksimaalselt 25% võrra Kaspar Loog
Iga arendusele kuluv kroon tähendab, et hooldusele kulub 2 krooni Kaspar Loog
Tarkvara arendamise ja hoolduse kulud on funktsioon koodiridade arvust Kaspar Loog
Inimestevahelised erinevused on kõige suurem produktiivsuse mõjutaja Kaspar Loog
1955 15:85 1985 85:15 2006 -??? Kaspar Loog
Ülejäänu on programmeerimist toetav ja abistav töö Kaspar Loog
Tarkvarasüsteemi koodirida maksab 3x rohkem kui üksiku programmi koodirida Diseconomy of scale Kaspar Loog
Kaspar Loog
Kaspar Loog Know IT Estonia
Pareto printsiip Kaspar Loog
Nõuete analüüs Analüüs Arhitektuur Disain Kodeerimine Testimine Juurutamine Versioonide/konfiguratsioonihaldus Projektijuhtimine
Süstemaatiline viis millegi tegemiseks
Ü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
Rollid Oskused Tiimid Protsess Tehnikad Tegevused Tulemid (tehised) Verstapostid Standardid Kvaliteet Tiimi väärtused Tiimi iseloom Töövahendid
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...
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
Algus ja lõpp Eesmärgistatus Visioon Juhitud kindlate inimeste poolt Erinevad ressursid Mitte-rutiinne tegevus Palju riske Palju konflikte
Interdistsiplinaarne teadus kuidas juhtida projekte edukalt, kasutades selleks erinevaid ressursse inimeste, tehnoloogia, teadmiste ja otsustamisvahendite abil.
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
Võta näpust!
Kes oli projektijuht? Mis oli eesmärk? Visioon? Tegutsemine? Reaktsioon?
Visioon Head suhtlemisoskused Võime sisendada veendumust ja viitsimist Tegevusele Tulemustele orienteeritus
Emotsionaalne väljendusrikkus ja soojus Valmisolek võtta personaalseid riske Ebatraditsionaalsete strateegiate kasutamine Stressitaluvus
Kommunikatsioon (oskus kuulata) Organiseerimisoskused (planeerimine, eesmärkide püstitamine) Meeskonna ehitamine (Team spirit) Juhtimine Delegeerimine Oskused raskustes (stressitaluvus, etc) Tehnilised oskused
karismaatiline isiksus efektiivne organisatsiooni sisene poliitik tehniline ekspert kõrge tasemel administratiivsete oskustega isik e. kuivik
Millest koosneb projekt?
Eesmärk Plaan Lõpukriteerium RAHA Inimesed Ressursid
Kuidas seda koostada?
Ü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
Ehita projektiplaan üles lähtudes tulemitest, mitte tegevustest Parandab kontrollimist
Formaalsed meetodid Arhitektuurne meetod
Mis ohustab projekti? Mis võib juhtuda? Mida me ei oska? Millised on meie tundmatud alad? Kuidas me neid riske maandame?
Distsipliinide ülevaade
Nõuete analüüs Analüüs Arhitektuur Disain Kodeerimine Testimine Juurutamine Versioonide/konfiguratsioonihaldus Projektijuhtimine
Keskendub sellele, mida tarkvara tegema peab Millist maja meil vaja on?
Keskendub sellele, kuidas tarkvara oma eesmärki täidab Maja projekteerimine ja sisekujundus
Arhitektuuridokument Näidisarhitektuuridokument (Reference) Analüüsimudel/dokument Disainimudel/dokument Füüsilise arhitektuuri kirjeldus (deployment model) Andmemudel
Keskendub sellele, et tarkvara valmis teha Maja ehitamine
Keskendub sellele, kas süsteem teeb seda, mis oodati Küttesüsteemide test, soojapidavuse kontroll...
Tehtud töö lõppkasutajateni viimine Sissekolimine
Toetab ja arendab töötegemist Tellingud, segumasinad...
Requirements Analysis design - architecture Coding development -implementation Testing Deployment Support Maintenance Project management Improvement Documentation Configuration management Software Quality Assurance
WIKIPEDIA Otsi järgmseid märksõnu ja loe! Software engineering Software development process