B.1.3. Süsteemiarenduse vahendid

iDevide ikoon Eesmärgid

1)      Kirjeldada arendusvahendite kasutamist süsteemi elutsükli eri faasides (nt “ülemised”, “alumised” ja integreeritud CASE-vahendid); 

2)      Kirjeldada erinevate arendusvahendite ja meetodite tugevad ning nõrgad küljed;

3)      Lihtsa arendusvahendi kasutamine näite varal.


Eelmises peatükis (B.1.2 Süsteemiarenduse põhimõtted ja metoodikad) selgus, et 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, milliseid tuntakse üldnimetuse CASE vahendid – Computer-Aided Software Engineering Tools - all. CASE-vahendid on programmid, millised toetavad tarkvara arendus- ja haldusprotsessi.

 

Mõnikord jagatakse CASE-vahendid kahte kategooriasse:

  • „ülemise taseme” CASE-vahendid toetavad analüüsi-projekteerimise läbiviimist. Need vahendid on tugevad visualiseerimisega, skeemide koostamises, dokumentatsiooni genereerimises;
  • „alumise taseme” CASE-vahendid keskenduvad koodi poolele, sh andmebaasi struktuuri genereerimisele, koodi genereerimisele, testide läbiviimisele, koodi versioniseerimisele ja konfiguratsioonihaldusele.

 

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, millised 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.

 

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 tiimitöö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 (ingl. k reverse engineering)
  • arhitektuurse disaini väljatöötamine:
    • võimaldama visualiseerida arhitektuurset lahendust, toetama valitud metoodikat ja notatsiooni, so 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 (ingl. k 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;

 

 

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.
iDevide ikoon Ülesanne
  1. Tutvuda mõne CASE vahendiga. Ühe võimaliku lähtenimekirja leiab http://www.cs.queensu.ca/Software-Engineering/tools.html
  2. Rühmatööna läbi mängida väiksemahuline tarkvara arendusprojekt. Jagada rühmas järgmised rollid: projektijuht, kasutaja, analüütik-testija, arhitekt-programmeerija.
  3. Tutvuda objekt-orienteeritud analüüsi, projekteerimise ja programmeerimise põhimõtetega.