Ainekava

  • Sissejuhatus (2 tundi) - Tarkvaratehnika olemus. Tarkvara roll ja selle evolutsioon. Tarkavara krooniline kriis, müüdid. Tarkvaratehnika kui inseneridistsipliin ja metodoloogia. Tarkvaratehnika distsipliinid: projektijuhtimine, süsteemianalüüs, nõuete spetsifitseerimine, kavandamine, realiseerimine, kvaliteet & testimine, konfiguratsioonijuhtimine, muudatuste haldus, keskkond, juurutamine, hooldus.
  • Projektijuhtimine (4 tundi) - Alustamine, mõõdud ja meetrika, hindamine, riskianalüüs, ajakava, jälgimine ja juhtimine. Planeerimine, organiseerimine, personaliküsimused, tiimide loomine ja juhtimine, kontrollimine.
  • Protsessimudelid (6 tundi) - Unified Process, Väledad protsessid, protsesside eesmärgid ja olemus üldisemalt, Crystal Family, eXtreme Programming, muude protsesside lühiülevaated.
  • Analüüs: nõuete analüüs (2 tundi) - Funktsionaalsed nõuded, mitte-funktsionaalsed nõuded, kasutatavus, käideldavus, jõudlus, toetus.
  • Analüüs: valdkonna analüüs (2 tundi) - Visioon, ainemudel, protsessimudel, kasutusloomudel, stsenaariumid, andmemudel, prototüüp. Läbirääkimiste metoodika.
  • Modelleerimine (2 tundi) - Mudel. UML mudelielement, pakett, skeem. UML skeemid: klassiskeem, objektiskeem, kasutuslooskeem, olekuskeem, tegevusskeem, jadaskeem, koostööskeem, komponendiskeemskeem, levitusskeem. CASE vahendi kasutamine: mudeli loomine, genereerimine, kvaliteedikontroll.
  • Andmete haldamine & töötlus (6 tundi) - Masin- ja inimloetavad andmed. Andmete struktuur (väärtuspaarid, grupeeritud väärtuspaarid, tabulaarne, grupeeritud tabulaarne). Andmemudelid (hierarhiline, relatsiooniline, objekt-orienteeritud, väärtus-orienteeritud). Mudel vs diagramm. Notatsioon. ERD ja selle erinevad notatsioonid. Klassidiagrammi eripärad. Päringukeeled (andmete sisu ja struktuuri haldamine). (Mudelite teisendused - loetakse "Java raamistike" osas). Andmebaasisüsteemid. Andmete füüsiline hoidmine. Andmete iseärasused (OLTP, OLAP, Temporal, Spatial (GIS), Full-Text, Multimedia, XML). Relatsiooniliste ABS optimiseerimisküsimused ((de)normaliseerimine, indeksid, ruumikasutus). Liidesed andmete töötlemiseks (ODBC, JDBC, OLE DB).
  • Kavandamine & arhitektuur (4 tundi) - arhitektuur vs. disain, erinevad rakenduste tüübid, jaotamine kihtideks, tehnoloogilised valikud, agile design, domain-driven design, OO disaini printsiibid, mustrid
  • Realiseerimine (2 tundi) - Kodeerimine, silumine, refaktoorimine, vertikaalide programmeerimine. Vahendid: ehitamissüsteemid (ANT, make), ühiktestimine (JUnit), lihtsad koodigeneraatorid, käsurida, skriptimine, tekstitöötlus (perl), võimas IDE/editor. Automatiseerimine, taaskasutamine. Lühidalt konfiguratsiooni ning projektijuhtimise vahenditest.
  • Java raamistikud (4 tundi) - Milleks raamistikud? Kõige olulisem raamistik: J2SE API. Levinumad raamistikud. Spring Framework. ORM raamistikud, Hibernate. Veebirakenduste raamistikud, WebWork. Open source.
  • Kvaliteet & testimine (2 tundi) - Tarkvaraviga ehk puuk: ajalugu, tekkepõhjused, hind. Testimise alused: mõisted, osa tarkvaarenduse klassikalistes mudelites, põhitõed. Staatiline testimine: spetsifikatsiooni testimine, koodi uurimine. Dünaamiline testimine: pimetestimine, röntgentestimine; ekvivalentsiklassid, piirtingimused; komponenditestimine ja integratsioonitestimine, koodikaetus.
  • Formaalsed meetodid (4 tundi) - Formaalne spetsifikatsioon, analüüs, verifitseerimine.
  • Meetrikad (2 tundi) - Tarkvarameetrika mõiste, kasutus, liigitus. Otseselt ja kaudselt mõõdetavad meetrikad: koodirida, funktsioonipunkt, erisuspunkt. Kvaliteedimeetrikad: kasutus, liigitus, tähtsamad näited.
  • Konfiguratsiooni- ning muudatuste juhtimine. Keskkond, juurutamine, hooldus (2 tundi) - Software configuration management. Version control. Dependencies. Automatiseerimine. Continuous integration. Erinevad keskkonnad. Konfiguratsioon. Rakendus toodangukeskkonnas.
  • Kasutajaliidese projekteerimine (2 tundi) - Mõttemaailma mudelid. Konfliktid huvides. Produktiivsus vs teadlikkus. Küsimused ja veateated. 'Data immunity' vs 'data integrity'.
  • Ärirakenduste arhitektuur (2 tundi) - Rakenduse loogilised ja füüsilised kihid. Suhtlus kihtide vahel. Concurrency (lõimed, transaktsioonid). Hajussüsteemid (veebiteenused, remote calls). Seisundi hoidmine.
  • Ärirakenduste integratsioon (2 tundi) - Erinevat tüüpi integratsioonid. Loose coupling. Erinevad lahendusvariandid. Sõnumiedastus (messaging). Uued standardid.

Märkused

  • 2 akadeemilist tundi = 1 loeng
edit