13.07.2015 Views

Tarkvaratehnika

Tarkvaratehnika

Tarkvaratehnika

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Hinde kujunemineHinne koosneb mitmest osast● Kontrolltöö – tarkvaratehnika mõistetest● Kodused ülesanded – tehised süsteemianalüüsist ja kavandamisest● Arvestustöö – kursuse lõpus või● Referaat - kokkulepitud teemal, kirjalikultvormistatud ja õigeaegselt kogu rühmaleettekantud


Kirjandus (2)●●Grady Booch, James Rumbaugh, IvarJacobson, The Unified Modeling LanguageUser Guide. Addison-Wesley, 1999.Fowler, Martin. Patter ns of Enter pr iseApplication Ar chitectur e. Addison-Wesley.2003.


<strong>Tarkvaratehnika</strong> vajalikkus●●●●Kõigi arenenud riikide elanikud ja majandussõltuvad tarkvaratoodetest.Tarkvara juhib üha rohkem erinevaidsüsteeme.Tarkvara tootmise tulemused moodustavadolulise osa arenenud riikide rahvamajandusekoguproduktis.Def1: <strong>Tarkvaratehnika</strong> uurib meetodeid,teooriad ja vahendeid professionaalsetarkvaratootmise jaoks.


Piirangute kolmnurk (1)Projektijuhtimisest tuntud iron triangle.Millised kolm omadust on igasugusearendustegevuse nurgakivideks?● Aeg (fast) - kui palju on sul aega projektilõpetamiseks?● Maksumus (cheap) – kui palju on vaja(rahalisi) vahendeid töö tegemiseks?● Kvaliteet (good) - milliseid nõudeid töötulemus rahuldab, kui hea, kasutatav jmstulemus on?


Piirangute kolmnurk (2)Toodud kolmest omadusest võid valida kaks,kus tahad teatud taset saada, kuid kolmandaomaduse pead vabaks jätma.Wikipeedias on mõned toredad näited:http://en.wikipedia.org/wiki/Project_triangle


Piirangute kolmnurk (3).Tarkvaraga seoses●Kvaliteedi mõõdikud– funktsioonide ulatus– kasutusmugavus– efektiivsus– usaldatavus– muudetavus– porditavus●●Hind– arenduskulud– hoolduskulud– juurutamiskuludAeg– väljatöötamisaeg– juurutamisaeg– eluiga


Piirangute kolmnurk (4)●Kui kõik nurgad on rangelt paigas, on projektmääratud läbikukkumisele.●Kui pärast reaalsete hinnangute andmistigale nurgale jääb õigus vähemalt ühte nurkakorrigeerida, on võimalus, et läheb hästi.


Tarkvaraarenduse mured●●●Tarkvara on kõige keerulisem inimese pooltloodud süsteemidest, tal on kummalisedomadused (keerukas, nähtamatu, muutuv, ...),mida on raske täpselt määratleda.Programmeerimise tehnikad ja protsessid, mistöötasid hästi üksikisiku või väikese grupitasandil mõõduka suurusega tarkvaratoodetejaoks ei ole kohandatavad suuremate toodeteloomiseks.Kliendid ootavad, et tarkvara oleks kvaliteetneja saaks valmis neile sobiva tähtajaga.


Tarkvara●●●Tarkvara on programmid ning sellega seotuddokumentatsioonTarkvaratooted võivad olla arendatudkonkreetsele kliendile või laiale turule.Tarkvaratooted võivad olla:– Üldotstarbelised – arendatud müügiks laialeostjaskonnale– Spetsialiseeritud – loodud vastavalt kliendinõuetele


Ajalugu● 1950-60 – tarkvaratootmise laienemine, kriis● NATO konverentsid 1968 ja 1969 –pühendatud tarkvara tootmisele, mõisteSoftware Engineering● Korra toomine programmeerimistavadesse –nt E. Dijkstra GOTO-vastane artikkel 1969● 1982 SEI (Software Engineering Institute)USA kaitsenõukogu eestvedamisel.● Erialaliidud ACM ja IEEE, nende ajakirjad,konverentsid jm arendustegevus.


<strong>Tarkvaratehnika</strong>●●●<strong>Tarkvaratehnika</strong> on inseneriteaduse haru, mistegeleb tarkvaratootmise kõigi aspektidega.<strong>Tarkvaratehnika</strong> on kutseala, mis loob ja hooldabtarkvararakendusi kasutades tehnoloogiaid jateadmisi arvutiteadusest, projektijuhtimisest,inseneriteadustest, rakenduse valdkonnast jateistelt aladelt.Tarkvarainsenerid kasutavad süsteemset jaorganiseeritud lähenemist oma tööle. Nadkasutavad probleemide lahendamiseks sobivaidvahendeid ja tehnikaid, arvestades piirangute jakättesaadavate ressurssidega.


(Tarkvara)insenerid (1)●●●Insenerid hindavad võimalusi ja teevadotsuseid, mis on sobivad antud olukorras jaantud töö jaoks. Sobivuse üle saab otsustadamaksumust ja saadavat kasu võrreldes.Insenerid mõõdavad, hindavadmõõtmistulemusi, lähendavad ja üldistavadlähtudes kogemusest ja empiirilistestandmetest.Insenerid mõistavad korrastatud protsessivajalikkust kogu töö vältel ning oskavadtöötada efektiivselt meeskonna osana.


(Tarkvara)insenerid (2)●●●●Insenerid on erinevates rollides: uurija,arendaja, kavandaja, tootja, testija, haldaja,aga ka müüja, konsultant ja õpetaja.Insenerid kasutavad tööprotsessissüstemaatiliselt sobivaid töövahendeid.Insenerid edendavad ametiorganisatsioonidekaudu printsiipide, standardite ja edulugude(best practice) valideerimist ja levitamist.Insenerid kasutavad korduvalt nii kavandeidkui tehiseid.


<strong>Tarkvaratehnika</strong> raamistikRaamistiku moodustavad (vt pikemalt jutust):● Eesmärgid – milline peab tarkvara olema– Laitmatus; kasutatavus; majanduslik tasuvus.● Protsess – sammud, mida tegemisel läbida– Nõuded (requirements); kavandamine (design);teostamine (implementation); valideerimine●(validation); tugi (support).Põhimõtted – millega arvestatakse– Süsteemi kavandamine; tarkvara kavandamine;protsessi tugi; protsessi juhtimine


Raamistik.Eesmärgid●●●Laitmatus – peab vastama nõuetele,käituma etteaimatavalt; saavutatakse heaplaneerimise ja realiseerimisega, mitte lõpututestimise ja remontimisega.Kasutatavus – kasutajaskonna võimekasutada dokumentatsiooni ja toodet ennast;kasutajaskond varieerub.Majanduslik tasuvus – hõlmab nii tarkvaratootmist kui ka tema hooldamist jatäiendamist; madalama maksumusegatarkvara tootmine.


Raamistik.Protsess (1)● Tarkvaraprotsess on sammud, milletulemuseks on eesmärkidele vastavtarkvaratoode.● Tarkvaraprotsessi üldised tegevused (1):– tarkvara spetsifitseerimine – mida peab tarkvarategema;– tarkvara realiseerimine – teeme tarkvara valmis;– tarkvara valideerimine – kas tarkvara teeb seda,mida klient tahtis;– tarkvara edasiarendamine – muutused, etvastaks kasutajate muutunud nõudmistele.


Raamistik.Protsess (2)● Tarkvaraprotsessi üldised tegevused (2):– Nõuded – kirjeldatakse probleem vajadused,kitsendused– Kavandamine – kogu süsteemi arhitektuur,süsteemi osad ja nende vahelised seosed.– Teostamine – kavandist saab toode,kodeeritakse, testitakse,– Valideerimine – tõestamine, et toode vastatellija soovile– Tugi – arenduse lõpp ja kasutamise algus,aastaid kestev tegevus


Raamistik.Protsessimudel●●●Tarkvaraprotsessi lihtsustatud kirjeldusesitatuna mingist konkreetsest vaatenurgast.Erinevad vaatenurgad võivad olla näiteks:– Tegevuste järgnevus– Informatsiooni liikumine– Rollide jaotus ehk kes mida teeb?Peamised protsessimudelid:– Koskmudel– Evolutsiooniline mudel– Iteratiivne mudel– jne


Raamistik.Printsiibid (1)●●Süsteemi kavandamine – TT on osa kogusüsteemi kavandamise protsessist, ta peableppima süsteemi vigaselt kirjeldatud jahägusa olemusega, tegema kõik, et toodevastaks kasutaja soovidele.– Nõudmised, suhtlemine, probleemala, tellijasoovidTarkvara kavandamine – mõistlikepõhimõtete kasutamine toetab eesmärkidelevastava tarkvara arendust.– Modulaarsus, abstraktsioon, sobivus, seostelokaliseerimine


Raamistik.Printsiibid (2)●●Protsessi tugi – tarkvaraarendusprojektikvaliteet ja majanduslik tasuvus sõltubtarkvaraarendajatele antava toe kvaliteedistja tõhususest.– tööriistad, elutsükkel, produktiivsus, komponent,korduvkasutatavusProtsessi juhtimine - efektiivne arendustoimub siis, kui protsessi tulemuslikultjuhitakse.– Ressursid, oskused, motiveeritus, protsessiparandamine


ArendusmeetodidMeetod on struktuurne lähenemine tarkvaraarendamisele, mille eesmärgiks on kvaliteetsetarkvara tootmine mõistliku hinnaga.– Mudeli kirjeldamine – millist tüüpi mudeleidluua ja millist esitusviisi kasutada– Reeglid – kitsendused süsteemi mudelile.– Soovitused – hea disaini tavade kirjeldus;soovituste järgimine peaks tagama heastruktuuriga süsteemi mudeli.– Protsessi juhtimine – tegevuste kirjeldussüsteemi mudeli loomiseks, süsteemiarendamiseks, testimiseks, ...; tegevustesihipärane korraldamine.


CASE-vahendid●●●Computer-Aided Software Engineering.Programmid tarkvaraprotsessi tegevustetoetamiseks.Võib toetada konkreetset meetodit.Toetab erinevaid arendusfaase:– süsteemi analüüs ja modelleerimine,– programmi silumine ja testimine,– koodi- ja dokumendigeneraatorimine


Hea tarkvaraTarkvara omadused on seotud tema käitumise,lähtekoodi, dokumentatsiooni jms-ga:– Hooldatavus – lihte sisseviia muudatusi (kasutajatenõuded muutuvad tihti)– Usaldatavus - töökindlus, turvalisus, kindlustatus;süsteemi kokkujooksmine ei tohi põhjustada füüsilistega majanduslikku kahju.– Kasumlikkus – süsteem ei tohi töötades asjata aega,mälu jm ressursse raisata– Kasutatavus – tarkvara peab olema kasutatavsihtauditooriumi poolt ülearuste pingutusteta, tal onsobiv kasutajaliides ja adekvaatne dokumentatsioon.


<strong>Tarkvaratehnika</strong> väljakutsedMillega võitleb tarkvaraarendaja 21. sajandil:– Pärand – vana tarkvara täidab olulisi ärifunktsioone.Väljakutse: tarkvara hooldamine ja muutmine, vältideshiidkulutusi ja jätkates oluliste äriteenuste pakkumist.– Erisugusus – süsteemid töötavad hajutatult ülevõrgu, arvutid ja tugisüsteemid on erinevad.Väljakutse: arendada tehnikaid, mille abil luuatarkvara heterogeensesse keskkonda.– Üleandmine – traditsioonilised TV arendusmetoodikadon ajamahukad. Aeg kulub kvaliteedisaavutamiseks. Väljakutse: suure ja keerulise tarkvaralühem üleandmisaeg kvaliteedis järeleandmisitegemata.


Tootja vastutusTV inseneri vastutus on laiem kui tehnilisteoskuste omamine ja kasutamine: seadused,eetika, moraal.● Konfidentsiaalsus – töötajate ja klientideaustamine● Kompetentsus – ei tohi oskusi ülehinnata● Intellektuaalne omand – tuleb jälgidaseadusi patentide, copyright'ide jms osas niitöötajate kui klientide poolel● Arvuti väärkasutus – ei tohi oma oskusikasutades väärkasutada teiste arvuteid.


Eetika●Tarkvaraarendajal on kohustused ühiskonnaees. Eetikakoodeksist (Softwar eEngineer ing Code of Ethics and Pr ofessionalPr actice):“Because of their roles in developing software systems, softwareengineers have significant opportunities to do good or cause harm,to enable others to do good or cause harm, or to influence others todo good or cause harm. To ensure, as much as possible, that theirefforts will be used for good, software engineers must committhemselves to making software engineering a beneficial andrespected profession. In accordance with that commitment, softwareengineers shall adhere to the following Code of Ethics andProfessional Practice.”

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!