Tarkvaraaarenduse elutsükkel koosneb erinevatest etappidest, milles tehtavad tegevused on väga erinevad.
Kuid kõik etappid sisaldavad arendatava tarkvara jaoks vajalikke tegevusi. Need lahendatakse või tehakse tööriistadega,
mida nimetatakse CASE-vahenditeks (inglise keeles Computer-Aided Software Engineering) ehk tarkvara raaltehnoloogiaks.
CASE-vahendid on kasutusel erinevates etappides ja lubavad arendajal teha tegevusi nagu nõuete analüüs,
erinevate protsesside voolu kujundamine, ajakava seadmine, dokumentatsiooni genereerimine,
versioonihaldus (olgu siis dokumentatsiooni endale või arendatavale tarkvarale), arendustöö enda teostamine,
arendusmeeskonna ja arendustöö organiseerimine, prototüüpide genereerimine ja palju muud.
Selle eesmärgil kategoriseeritaksegi CASE-vahendid kahte peamisse kategooriasse:
Upper-case-vahendid
Lower-case-vahendid
CASE-vahendid lubavad teha kas mingit ühte tegevust või otsast-lõpuni arendustööd.
Enamasti integreerivad CASE-vahendid endas ka mitme etapi või mõlema taseme tööriistu.
Arendusmudel koskmudel (inglise keeles Waterfall Model) on lineaarne, järjestikune arendusmudel ning omab endas järgmisi samme:
| Arendusmudeli samm | Sammus tehtavad tööd | Vastav CASE-vahend (Näide) | CASE-vahendi kirjeldus |
|---|---|---|---|
| Nõuete määratlemine | Dokumenteeritakse arendatava toote või süsteemi nõuded (nt nõuete spetsifikatsioon). | MS Word (või nt Confluence) | Tekstiredaktor (kasutatakse nõuete dokumenteerimiseks). |
| Süsteemide ja tarkvara kavandamine | Luuakse süsteemi arhitektuur ja disain (nt UML-diagrammid). | Diagrammi- või modelleerimisvahend (nt Visual Paradigm) | Tööriist süsteemi kavandite ja mudelite loomiseks (nt klassidiagrammid, andmevoogude diagrammid). |
| Teostus ning moodulite testimine | Koodi kirjutamine ja üksikute moodulite testimine (ühiktestimine). | Selenium (või nt JUnit, pytest) | Testimise automatiseerimisvahend (veebirakenduste automaattestide käitamiseks). |
| Integratsiooni ja süsteemi testimine | Erinevate moodulite integreerimine ja süsteemi terviklik testimine. | ZOE (või nt Tricentis Tosca) | Intelligentne automatiseerimisvahend, mis ühendab tehisintellekti, arvutinägemise ja natiivse objektituvastuse, võimaldades testimismeeskondadel automatiseerida käsitsi tehtavaid ülesandeid. |
| Kasutamine ja hooldus | Tarkvara juurutamine tootmiskeskkonda ja selle hooldamine (vigade parandus, uuendused). | Skype/Slack (või nt Jira Service Desk) | Suhtlustarkvara või probleemihalduse süsteem (kasutajatoe ja meeskonnasisese suhtluse jaoks). |
Olen oma töös ja õpingutes kasutanud mitmesuguseid tööriistu, mis jagunevad nii Upper-CASE (analüüs ja disain)
kui ka Lower-CASE (kodeerimine ja testimine) kategooriatesse, lisaks ka meeskonnatöö ja dokumentatsiooni haldamise vahendeid.
Visual Studio, Visual Studio Code, PyCharm: IDE-d ja koodiredaktorid programmeerimiseks, testimiseks ja silumiseks.
Unity: Arendusplatvorm mängude ja interaktiivsete rakenduste loomiseks.
Renpy: Spetsiaalne arendusraamistik (mootor) visuaalsete romaanide loomiseks.
MakeCode: Visuaalne programmeerimisvahend lihtsa koodi ja prototüüpide loomiseks.
Git: Versioonihalduse süsteem (VCS), mis on kriitiline Lower-CASE tööriist koodimuudatuste jälgimiseks ja haldamiseks.
MS Office (Word, Excel, PowerPoint): Kasutatakse nõuete dokumenteerimiseks, süsteemide kavandite koostamiseks ja projektijuhtimise tabelite loomiseks (nt ajakava, eelarve).
Jira: Projekti- ja ülesannete haldamise tööriist (sageli Upper-CASE), mida kasutatakse nõuete, vigade ja arendustöö organiseerimiseks.
Google Docs / Canvas: Pilvepõhised tööriistad (sh tekstitöötlus, tabelarvutus) ja õppeplatvormid dokumentatsiooni jagamiseks ja nõuete analüüsi faasis koostööks.
Discord: Suhtlusplatvorm (sageli sarnane Skype'iga hooldus- ja suhtlusetapis), mida kasutatakse meeskonnasiseseks suhtluseks.