Životni ciklus razvoja softvera (SDLC) prolazi kroz različite faze kao što su planiranje, procjena zahtjeva, analiza, dizajn, izvedba, dokumentacija, testiranje itd. Svaka faza dalje je podijeljena na zadatke s pravilno definiranim ciljevima i rezultatima.
Analiza i dizajn su faze u kojima se postavlja stvarna arhitektura, radni model i proces izvođenja izrade softverskog proizvoda.
Dva ključna koraka u ovim fazama su dizajn sustava visoke razine i dizajn sustava niske razine.
Što je dizajn sustava visoke razine?
Dizajn visoke razine (HLD) pruža sveobuhvatan pregled procesa razvoja softvera zajedno s arhitekturu sustava, aplikacije, upravljanje bazom podataka i potpuni dijagram toka sustava i navigacija. To je nacrt koji objedinjuje različite korake i module, njihove ciljeve, promjenjive komponente, rezultate, arhitekturu i vremenski okvir za razvoj softvera. HLD prevodi poslovni plan u softverski proizvod ili uslugu.
Primjeri HLD-a u razvoju softvera uključuju dokumente o arhitekturi sustava, dijagrame toka razvoja aplikacija itd.
Što je dizajn sustava niske razine?
Low-Level Design (LLD) bavi se planiranjem, kodiranjem i izvođenjem različitih komponenti, modula i koraka u HLD-u, na individualnoj razini. Svaki modul u HLD-u ima jedinstveni LLD dokument koji pruža opsežne pojedinosti o tome kako će modul biti kodiran, izvršen, testiran na kvalitetu i integriran u veći program. LLD pruža praktične planove dekonstruirajući HLD komponente u radna rješenja.
Primjeri LLD-a u razvoju softvera uključuju integraciju kolica, sigurnosno testiranje, dizajn korisničkog sučelja itd.
Razlike između HLD-a i LLD-a
HLD i LLD također služe različitim funkcijama i svrhama poput programski jezici visoke razine i programski jezici niske razine.
Makro vs. Mikro arhitektura i dizajn
HLD je dizajn na makro razini koji pruža pogled iz ptičje perspektive na proces razvoja softvera. Uključuje dijagrame, dijagrame toka, navigacijske detalje i druge tehničke zahtjeve koji će činiti srž procesa razvoja.
Osim dijagrama toka, dijagrama, navigacijskih informacija i tehničkih zahtjeva, LLD također ima sveobuhvatne informacije o izvođenju korak po korak svake komponente HLD-a. Bavi se razvojem softvera na mikrorazini.
Svaka komponenta HLD-a ima jedinstveni LLD dokument.
Kronologija razvoja
HLD prethodi fazi LLD. Kada se HLD uspostavi i odobri za izvršenje, može započeti rad na pojedinačnim LLD-ovima.
HLD počinje nakon što se riješe faze planiranja i zahtjeva i nema drugih ovisnosti.
S druge strane, LLD se mora izvršiti određenim redoslijedom. Neki moduli moraju čekati izvršenje dok se drugi ne dovrše.
LLD spada u fazu dizajna SDLC-a, dok HLD spada u fazu analize SDLC-a.
Svrha
- Svrha HLD-a je navesti funkcionalne aspekte različitih modula zajedno s konačnim rezultatom.
- Svrha LLD-a je detaljno opisati logiku i izvođenje svakog modula u HLD-u.
Sudionici
Arhitekti rješenja odgovorni su za izradu HLD dokumenta. Može imati interne i vanjske dionike kao što je tim za pregled koji uzima u obzir softverske metrike, dizajnerski tim, klijenti i menadžeri.
LLD-om upravljaju programeri softvera, web administratori, sigurnosni inženjeri itd., koji su dio tvrtke ili timova dobavljača. LLD-ovi su općenito ograničeni na interne dionike.
Ciljana publika
HLD dokumenti imaju ciljanu publiku menadžera, klijenata i timova za razvoj softvera.
Softverski inženjeri, koderi, testeri i programeri koji rade na projektu ciljana su publika za LLD dokumente.
Očekivani ishod
- Ishod HLD-a je softverski proizvod ili usluga spremna za isporuku krajnjem korisniku.
- Ishod LLD-a je završetak jednog modula HLD-a, poput faza kodiranja ili testiranja.
Razumijevanje dokumenata dizajna softvera
Dokumenti o dizajnu softvera ocrtavaju strukturne, funkcionalne i logičke aspekte razvoja a softverski proizvod ili uslugu uz tehničke zahtjeve i drugu implementaciju detaljima. Bilo da se dizajn bavi izvođenjem na makro ili mikro razini, programeri i drugi dionici trebali bi znati i razumjeti opseg i različite korake procesa razvoja softvera.