Kaspar Loog Kaspar Loog - Know IT Estonia
Kaspar Loog Know IT Estonia
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 - Know IT Estonia
Aine koduleht http://courses.cs.ut.ee/2009/tvt/ Kõik küsimused Marlon Dumas Kaspar Loog - Know IT Estonia
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 - Know IT Estonia
1. Sissejuhatus 2. Tarkvaratehnika ajalugu 3. Rusikareeglid tarkvaraarendusest 4. Tarkvaratehnika distsipliinide helikopterivaade Kaspar Loog - Know IT Estonia
1 Sissejuhatus ja ajalugu Kaspar Loog - Know IT Estonia
Valdkond, mis tegeleb tarkvara arendamise ja hooldamisega, kasutades tehnoloogiaid ja praktikaid arvutiteadusest, projektijuhtimisest ja teistest valdkondadest. Tarkvaratehnika... Kaspar Loog - Know IT Estonia
Kaspar Loog - Know IT Estonia
Tarkvara arenduse (Software engineering) mõiste 1968 Garmish- Partenkirchen, Saksamaal Esimesed konverentsid (NATO teaduskomitee) 1968 ja 1969 Kaspar Loog - Know IT Estonia
Ajakava ja eelarve mitmekordsed ületamised olid tavalised Tarkvara (eriti vead) hakkas mõjutama igapäevaelu Inimesed said surma Kaspar Loog - Know IT Estonia
CHAOS Report 1994 2003 Edukaid projekte 16% 35% 2000 2003 Katkestatud projekte 31% 16% Tähtaja ületanud 82% 63% Funktsionaalsus 67% 52% Põhjused Keerukus Ootused Muutused Haridus Kaspar Loog - Know IT Estonia
Denver International Airport 1993 Therac-25 kiiritusravi seade 1985 Ariane 5 lend 501 1996 UK National Healthcare project 2007 ehk briti digitaalne terviselugu Kaspar Loog - Know IT Estonia
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 - Know IT Estonia
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 - Know IT Estonia
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 - Know IT Estonia
Kaspar Loog - Know IT Estonia
Umbes pooltel arendajatel on kraad arvutitega seotud alal Mis tagab projektide edukuse? Kaspar Loog - Know IT Estonia
Barry Boehm Kaspar Loog - Know IT Estonia
Tarkvaraprobleemi lahendamine varajastes disainietappides on on 100 korda odavam kui... Kaspar Loog - Know IT Estonia
Tarkvaraprojekti ajagraafikut saab tihendada maksimaalselt 25% võrra Kaspar Loog - Know IT Estonia
Iga arendusele kuluv kroon tähendab, et hooldusele kulub 2 krooni Kaspar Loog - Know IT Estonia
Tarkvara arendamise ja hoolduse kulud on funktsioon koodiridade arvust Kaspar Loog - Know IT Estonia
Inimestevahelised erinevused on kõige suurem produktiivsuse mõjutaja Kaspar Loog - Know IT Estonia
1955 15:85 1985 85:15 2006 -??? Kaspar Loog - Know IT Estonia
Ülejäänu on programmeerimist toetav ja abistav töö Kaspar Loog - Know IT Estonia
Tarkvarasüsteemi koodirida maksab 3x rohkem kui üksiku programmi koodirida Diseconomy of scale Kaspar Loog - Know IT Estonia
Kaspar Loog - Know IT Estonia
Kaspar Loog Know IT Estonia
Pareto printsiip Kaspar Loog - Know IT Estonia
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...
Kaspar Loog Know IT Estonia
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 Ressursid Eelarve Nõuded meeskonna oskustele Hindamismeetodid Võimalikud probleemid
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