Raalprojekteerimine
Euroopa struktuurfondide logo
Automatiseerimise viide Mehhatroonikaseadmete viide Pneumoautomaatika viide Siemens LOGO! viide Siemens S7-1200 viide

SÜSTEEMIARENDUSE PROTSESS JA MEETODID

Süsteemiarenduse põhimõtted ja metoodikad

Tarkvara arendusprotsess koosneb mitmetest eripalgelistest tegevustest ning on info kaardistamise, analüüsi, visualiseerimise ja kommunikeerumisrikas loomeprotsess. Arendusprotsessis loodud infoühikud peaksid olema omavahel seostatud – selline lähenemine võimaldab nt funktsionaalse nõude muutudes kergelt leida muutmist vajavad koodiosad ning nende muutmisel omakorda otsida ületestimist vajavad moodulid. Sellise töö lihtsustamiseks on kasutusel spetsiaalsed vahendid, mida tuntakse üldnimetuse CASE vahendid – Computer-Aided Software Engineering Tools - all. CASE-vahendid on programmid, mis toetavad tarkvara arendus- ja haldusprotsessi.

Erinevad CASE-vahendid toetavad tarkvara arendusprotsessi eri ulatuses – mingist konkreetsest arendussammust kuni integreeritud lahendusteni, so nõuete kogumisest kui tarkvara haldamiseni. CASE-vahendite eriliigi moodustavad programmid, mis võimaldavad läbida tarkvara arendusprotsessi „vastupidises suunas” (siit nimetus reverse engineering), nt genereerida koodist süsteemi ülesehitust kirjeldavat arhitektuuri või genereerida kompileeritud koodist lähtekoodi. Selliseid vahendeid kasutatakse tihti tarkvara puuduoleva, ebatäieliku või vananenud dokumentatsiooni korral. [5]

IT-ajalugu pajatab, et ühe esimese CASE-vahendi loomisega oli seotud Albert F. Case nimeline isik. Kuulujutt, et ta muutis oma perekonnanime, ei vasta siiski tõele.

Süsteemiarenduse vahendid

CASE-tööriistad aitavad rakendada nii töövahendeid kui ka meetodeid kvaliteetsete süsteemide loomiseks. Seega võivad vahendid olla ülesehitatud selliselt, et nad toetavad ja soodustavad konkreetse arendusmeetodi kasutamist.

Eestikeelse mõistena CASE jaoks pakub vallaste.ee välja tarkvara raaltehnoloogia. See on arenduskeskkond, mis võimaldab automatiseerida, hallata ja lihtsustada süsteemiarenduse protsessi. Siia hulka kuuluvad näiteks vahendid lähtetingimuste analüüsiks, vooskeemi ja arendustöö ajakava koostamiseks, dokumentatsiooni kirjutamiseks, programmiversioonide juhtimiseks, programmikoodi kirjutamiseks jne. Kitsamalt mõeldakse CASE all objektorienteeritud programmeerimist toetavaid süsteeme, kuid üldisemalt kuuluvad selle mõiste alla kõik tarkvaraarenduse keskkonnad.

CASE-vahendid aitavad automatiseerida tegevusi süsteemiarenduse elutsükli erinevates faasides. Näiteks prototüüpimise vajaduse korral on olemas spetsiaalsed tarkvaralised vahendid, millega mugavalt ja kiirelt luua rakenduse ekraanipiltide graafilisi mudeleid. [5]

CASE-vahendeid võib nende konkreetse otstarbe järgi klassifitseerida mitmel viisil. Süsteemiarenduse elutsüklit toetavad CASE-vahendid jaotatakse näiteks kahte kategooriasse:

  • „ülemise taseme" CASE-vahendid (upper CASE tools) toetavad analüüsi ja projekteerimist. Peamiselt on nad kasutusel kasutajanõuete analüüsimisel ja dokumenteerimisel. Nad on ennekõike mõeldud visualiseerimiseks, erinevate skeemide koostamiseks ja ka dokumentatsiooni genereerimiseks. nad toetavad traditsiooniliste diagrammikeelte kasutamist (olem-seos diagrammid, andmemudelid, UML-skeemid, jne).
  • „alumise taseme" CASE vahendid (lower CASE tools) keskenduvad teostusele, kus mudelitest saab tegelik tarkvaratoode. Nad toetavad andmebaasi struktuuri genereerimist, koodi genereerimist, testide läbiviimist, koodi versioonihaldust, konfiguratsioonihaldust, pöördprojekteerimist jms.

CASE vahendid võivad olla mõne kitsa tegevuse toetuseks, kuid uuem suund on vahendid integreerida, et süsteemiarenduse erinevatel etappidel loodud dokumentatsioon, mudelid, kood, testid jne oleksid paremini omavahel seostatavad. Seetõttu on ühte tarkvarasse ühendatud ka alumise ja ülemise taseme CASE vahendid.

Erinevad CASE-vahendid toetavad tarkvara arendusprotsessi eri ulatuses - mõnest üksikust arendussammust kuni integreeritud lahendusteni, st nõuete kogumisest kui tarkvara haldamiseni. CASE-vahendite eriliigi moodustavad programmid, mis võimaldavad läbida tarkvara arendusprotsessi „vastupidises suunas", st teha pöördprojekteerimist (reverse engineering), nt genereerida koodist süsteemi ülesehitust kirjeldavat arhitektuuriskeemi või genereerida kompileeritud koodist lähtekoodi. Selliseid vahendeid kasutatakse tihti tarkvara puuduoleva, ebatäieliku või vananenud dokumentatsiooni korral.

Tarkvara arendusprotsessi etapid nõuavad erinevat tuge süsteemiarenduse vahenditelt:

  • projektijuhtimine:
    • projektiplaani koostamine ja jälgimine
    • ressursside haldus
  • nõuete kogumine ja analüüs:
    • info kogumine: küsitluslehtede analüüs
    • talitlusprotsesside (äriprotsesside) modelleerimine
    • prototüüpimine, so piiratud funktsionaalsusega lahenduse loomine ja kasutajatelt selle põhjal tagasiside saamine
    • nõuete haldus: nõuete dokumenteerimine, viitamine, nõuete varustamine atribuutidega (nõude selgus, nõude allikad, jm), nõuete prioritiseerimine, nõuete versioonihaldus (seotuna muudatuse taotleja ja muutuse põhjendusega) jne
    • nõuete kogumist ja analüüsi toetav töövahend peaks võimaldama meeskonnatööd, sh võimaldama mitmel kasutajal samaaegset nõuete muutmist, võimaldama määrata erinevatele kasutajarollidele (projektijuht, analüütik, arhitekt, kasutaja) erinevaid õigusi
    • andmemudeli ja sõnastiku koostamine, vältides nii mitmetimõistetavusi ja andmete kvaliteediprobleeme (sh dubleerimist)
    • olemasolevast, dokumenteerimata koodist, automaatselt dokumentatsiooni genereerimine
  • arhitektuurse disaini väljatöötamine:
    • võimaldama visualiseerida arhitektuurset lahendust, toetama valitud metoodikat ja ülesmärkimisviisi, st skeemide koostamise „keelt", nt UMLi
    • kirjeldada tarkvara komponente ja nendevahelisi seoseid, liideseid
    • versioonihaldust, arhitektuuriotsuste seostamist nõuetega ja muudatustaotlustega
  • programmikoodi loomine, testimine:
    • koodi, sh ekraanivormide, raportite, automaatne genereerimine arhitektuurse disaini alusel
    • silur (debugger) koodi samm-sammuliseks käivitamiseks ja testimiseks
    • testide läbiviimine, sh testide kirjeldamine, käivitamine, tulemuste analüüs ja dokumenteerimine
    • koodi kommenteerimine ja dokumenteerimine
    • koodi versioonihaldus
  • toote konfiguratsioonihaldus:
    • koodi versioonihaldus

CASE-vahendid aitavad mugavamalt läbida süsteemiarenduse erinevaid etappe, kuid nende kasutamisega võivad olla seotud ka probleemid ja riskid.

  • Ebapiisav standardiseeritus - erinevate tootjate vahendid ei pruugi ühilduda ega olla võimelised infot vahetama - näiteks andmete klassifikatsioonid on erinevad, failiformaatide konverteerimine pole ökonoomne. See sunnib kasutama sama tootja vahendeid
  • Ebareaalsed ootused - firmad võtavad CASE-vahendid kasutusel selleks, et vähendada arenduskulusid. Kuid alguses on kulutused just suured, sest võimekamad CASE-vahendid on reeglina kallid. Arvestada tuleb üsna pika tasuvuse perioodiga. Lisaks tuleb mõelda ka uutele strateegiatele CASE-vahendeid kasutades.
  • Aeglane rakendumine - CASE tehnika rakendamine võib oluliselt muuta harjumuslikku arenduskeskkonda. Reeglina ei soovitata esimest korda kasutada CASE-vahendit kriitiliste projektide ja lühikeste tähtaegade korral, sest vahendite kasutamine nõuab õppimist. Ehk siis alustada tuleks väikestest projektidest.

Lihtsamaid, madala taseme CASE-vahendeid, saab rakendada väikeste programmide koostamisel (ka programmeerimise õppimisel). Need aitavad läbi viia lihtsat programmi loomise elutsüklit sisaldavad tüüpiliselt redaktorit koodi kirjutamiseks, kompilaatorit koodi kompileerimiseks ning edasiseks käivitamiseks. Testimise vahendid on seotud ennekõike silumisega - silumisvahendid lubavad koodi lause-haaval käivitada ning jälgida samal ajal muutujate väärtuste muutumist. Samuti kuvatakse veateateid nii kompileerimise kui ka täitmisaegsete vigade kohta. Kõik need tegevused on tehtavad ühes keskkonnas. Tihti lisandub veel võimalus keelevahendite kohta abi (Help) küsida, koodi värvimine mugavamaks jälgimiseks, automaatne taanete pidamine, sulgude lõpetamine jms. [5]

Creative Commons Licence
"Raalprojekteerimine" by Eduard Brindfeldt and Urmo Lepiksoo is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Estonia License .