Tarkvaratehnika

Aine kood: MTAT.03.094

Vastutav õppejõud: J.Kiho

Aine maht: 4 ap.
Loenguid 64 tundi
Iseseisev töö: 96 tundi

Õpetamise aeg: 1 - 16 nädal

Hindamine: eksam

Eeldusained: Programmeerimine

Sisu lühikirjeldus:
Tarkvaratehnika paradigmad, projekti juhtimine, ülesande ja tarkvara nõuete analüüs, tarkvara kavandamine, realiseerimine, testimine, kvaliteedi juhtimine ja kontroll.

Kirjandus:
1. R.S.Pressman. Software Engineering: Practitioner’s Approach. European 3Rev.ed.McGraw-Hill, UK, 1994, 801 p.
2. I.Sommerville. Software Engineering. Addison-Wesley, 1992, 649 p.
3. R.Jürgenson, V.Vahe. Objektorienteeritud lähenemine programmeerimisele. TTÜ, 1999 107 lk.

Temaatiline kava

1. Tarkvaratehnika olemus. Tarkvara roll ja selle evolutsioon. Tarkavara krooniline kriis, müüdid. Tarkvaratehnika kui inseneridistsipliin ja metodoloogia.

2. Tarkvaratehnika paradigmad. Klassikaline elutsükkel ja prototüüpimine. Spiraalmudel.

3. Tarkvaratehnika konstrueerimise etapid. Defineerimine, süsteemianalüüs, projekti planeerimine, nõuete analüüs. Arendamine; kavandamine e. projekteerimine, kodeerimine, testimine ja silumine. Hooldus; korrigeerimine, kohandamine, täiustamine.

4. Projekti juhtimise alused. Alustamine, mõõdud ja meetrika, hindamine, riskianalüüs, ajakava, jälgimine ja juhtimine.

5. Projekti juhtimine: tarkvara meetrika. Mahu mõõtmine. Funktsionaalsuse mõõtmine. Funktsioonpunktide meetod, tunnuspunktide meetod. Kvaliteedi mõõtmine.

6. Projekti juhtimine: hindamine. Dekomponeerimisel põhinev hindamine, hindamine tegevusmahu põhjal. Empiirilised hinnangud; COCOMO, Putmani mudel.

7. Projekti juhtimine: põhitegevused. Planeerimine, organiseerimine, personaliküsimused, tiimide loomine ja juhtimine, kontrollimine.

8. Projekti juhtimine: plaanid. Projekti plaan, organisatsiooni plaan, tiimikorrlduse plaan, kontrolliplaan, riskiplaan, töögraafik.

9. Süsteemitehnika. Süsteemi analüüs; vajadus, teostuvusuuring, tasuvus, tehniline teostuvus, kontseptsioon, arhitektuur, modelleerimine, spetsifikatsioon.

10. Tarkvara nõuete analüüsi alused. Koht tarkvara arendusprotsessis. Ülesanded. Analüütik. Raskused. Läbirääkimiste metoodika. Analüüsi printsiibid. Prototüüpimine. Spetsifitseerimine. Spetsifikatsiooni struktuur.

11. Struktuurne analüüs ja selle laiendused. Andmevoo diagramm, sümboolika. Mudeli kihid. Protsessikirjeldus. Andmekirjeldus. Juhtimisvoo diagramm. Juhtimiskirjeldus, olekumuutuste diagramm. Protsesside aktiveerimise tabel.

12. Objekt-orienteeritud analüüs. Erinevad metoodikad (Coad-Yourdon, Shlaer-Mellor, Rumbaugh, Wirfs-Brock, Firesmith, Seidewitz-Stark).

13. Formaalne spetsifitseerimine, Z.

14. Tarkvara kavandamine (projekteerimine). Koht tarkvara arendusprotsessis. Mõju kvaliteedile. Abstraktsioonid. Peenendamine. Moodulaarne kavandamine. Moodulite funktsionaalsus, eristatus ja seostatus. Andmete kavandamine.

15. Andmevoog-orinteeritud kavandamine. Transaktsioonanalüüs. Transformatsioon-analüüs.

16. Objekt-orienteeritud kavandamine. Notatsioonid.

17. Andme-orienteeritud kavandamine. Jacksoni ja Warnier-Orri diagrammid.

18. Suhtlusliidese kavandamine. Lähtemudelid. Tööülesannete analüüs ja modelleerimine, realiseerimise vahendid. Kavandi hindamine. Tavasuunised. Kasutajaliidese eriküsimused.

19. Kodeerimine. Koodi kvaliteedi tagamine ja kontroll.

20. Tarkvara kvaliteedi tagamine. Koht tarkvara arendusprotsessis. Kvaliteedi näitajad. Kvaliteedi juhtimise süsteem ja plaanid. Üldised ja kohalikud standardid. Tehnilised ülevaatused ja retsensioonid.

21. Tarkvara testimine. Koht tarkvara arendusprotsessis, seos silumisega. Testimise strateegia. Organiseerimine, lõpetamine. Üksuste testid, integraaltestid. Verifitseerimis-, valiidsus- ja süsteemtestid. Valge-kast-testimine. Must-kast-testimine. Testide kavandamine; teed, juhtimisstruktuurid, tingimused. Andmevoo test. Tsüklite testimine. Testandmete ekvivalentsiklassid. Ääreväärtuste analüüs. Põhjus-tagajärg testid. Võrdlustestid. Testide andmebaas. Automatiseerimise võimalused.

22. Tarkvara hooldus. Koht tarkvara elutsüklis. Korrigeerimine, kohandamine, täiustamine, ennetamine. Hoolduse protsess, selle maht ja hind. Hoolduse raskuse põhjused. Hoolduse organisatsioon, aruandlus, andmebaas, kõrvalefektid. Võõra/pärandunud tarkvara hooldus.

23. Tarkvara konfiguratsiooni juhtimine. Koht tarkvara elutsüklis. Konfiguratsiooni ja selle juhtimise mõisted. Konfiguratsiooni juhtimise korraldus, üksused ja lävejooned. Versioonid, variandid ja nende juhtimine.