Tarkvaraarenduse elutsükkel (SDLC) läbib erinevaid faase, nagu planeerimine, nõuete hindamine, analüüs, projekteerimine, teostamine, dokumenteerimine, testimine jne. Iga etapp jagatakse edasi ülesanneteks, millel on õigesti määratletud eesmärgid ja tulemused.
Analüüs ja projekteerimine on etapid, kus pannakse paika tarkvaratoote loomise tegelik arhitektuur, töömudel ja teostusprotsess.
Nendes etappides on kaks otsustavat etappi kõrgetasemeline süsteemikujundus ja madala taseme süsteemi projekteerimine.
Mis on kõrgetasemeline süsteemikujundus?
High-Level Design (HLD) annab põhjaliku ülevaate tarkvara arendusprotsessist koos süsteemi arhitektuur, rakendused, andmebaasihaldus ja täielik süsteemi vooskeemi ja navigeerimine. See on plaan, mis koondab tarkvara arendamiseks erinevaid etappe ja mooduleid, nende eesmärke, muutuvaid komponente, tulemusi, arhitektuuri ja ajakava. HLD muudab äriplaani tarkvaratooteks või -teenuseks.
Tarkvaraarenduse HLD näidete hulka kuuluvad süsteemiarhitektuuri dokumendid, rakenduste arendamise vooskeemid jne.
Mis on madala taseme süsteemi disain?
Low-Level Design (LLD) tegeleb HLD erinevate komponentide, moodulite ja etappide planeerimise, kodeerimise ja täitmisega individuaalsel tasandil. Igal HLD moodulil on ainulaadne LLD-dokument, mis annab põhjalikud üksikasjad mooduli kodeerimise, käivitamise, kvaliteedi testimise ja suuremasse programmi integreerimise kohta. LLD pakub teostatavaid plaane, dekonstrueerides HLD komponendid töötavateks lahendusteks.
Tarkvaraarenduse LLD näideteks on ostukorvi integreerimine, turvatestimine, kasutajaliidese disain jne.
Erinevused HLD ja LLD vahel
HLD ja LLD täidavad ka erinevaid funktsioone ja eesmärke, näiteks kõrgetasemelised programmeerimiskeeled ja madalatasemelised programmeerimiskeeled.
Makro vs. Mikroarhitektuur ja disain
HLD on makrotasandi disain, mis annab tarkvara arendusprotsessist linnulennulise ülevaate. See sisaldab diagramme, vooskeeme, navigatsiooni üksikasju ja muid tehnilisi nõudeid, mis moodustavad arendusprotsessi tuuma.
Lisaks vooskeemidele, diagrammidele, navigatsiooniteabele ja tehnilistele nõuetele on LLD-l ka põhjalik teave HLD iga komponendi samm-sammult täitmise kohta. See tegeleb tarkvaraarendusega mikrotasandil.
Igal HLD komponendil on ainulaadne LLD dokument.
Arengu kronoloogia
HLD eelneb LLD faasile. Kui HLD on paigas ja täitmiseks heaks kiidetud, võib töö üksikute LLD-dega alata.
HLD algab siis, kui planeerimise ja nõuete etapid on käsitletud ning sellel pole muid sõltuvusi.
Teisest küljest tuleb LLD täita kindlas järjekorras. Mõned moodulid peavad ootama täitmist, kuni teised on lõpetatud.
LLD kuulub SDLC projekteerimisfaasi, samas kui HLD kuulub SDLC analüüsifaasi alla.
Eesmärk
- HLD eesmärk on loetleda erinevate moodulite funktsionaalsed aspektid koos lõpptulemusega.
- LLD eesmärk on üksikasjalikult kirjeldada HLD iga mooduli loogikat ja täitmist.
Sidusrühmad
HLD-dokumendi loomise eest vastutavad lahenduse arhitektid. Sellel võivad olla nii sisemised kui ka välised sidusrühmad, näiteks ülevaatusmeeskond, kes võtab selle teadmiseks tarkvara mõõdikud, disainimeeskond, kliendid ja juhid.
LLD-ga tegelevad tarkvaraarendajad, veebiadministraatorid, turbeinsenerid jne, kes kuuluvad ettevõtte või hankijate meeskonda. LLD-d on üldiselt piiratud sisemiste sidusrühmadega.
Sihtgrupp
HLD-dokumentide sihtrühmaks on juhid, kliendid ja tarkvaraarendusmeeskonnad.
Projekti kallal töötavad tarkvarainsenerid, kodeerijad, testijad ja arendajad on LLD-dokumentide sihtrühm.
Oodatud tulemus
- HLD tulemus on tarkvaratoode või -teenus, mis on valmis lõppkasutajale tarnimiseks.
- LLD tulemuseks on HLD ühe mooduli, näiteks kodeerimise või testimise etapi lõpuleviimine.
Tarkvara projekteerimisdokumentide mõistmine
Tarkvara kujundamise dokumendid kirjeldavad väljatöötamise struktuurseid, funktsionaalseid ja loogilisi aspekte tarkvaratoode või -teenus lisaks tehnilistele nõuetele ja muule teostusele üksikasjad. Olenemata sellest, kas disain käsitleb makro- või mikrotasandi täitmist, peaksid programmeerijad ja teised sidusrühmad teadma ja mõistma tarkvara arendusprotsessi ulatust ja erinevaid etappe.