Kaspar Loog - ut · Pidevalt hüppasid välja uued tehnoloogiad, mis väitsid tarkvara arendust...

Post on 02-Aug-2020

2 views 0 download

Transcript of Kaspar Loog - ut · Pidevalt hüppasid välja uued tehnoloogiad, mis väitsid tarkvara arendust...

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

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