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