Software Development Life Cycle (SDLC) går gjennom ulike faser som planlegging, kravvurdering, analyse, design, utførelse, dokumentasjon, testing, etc. Hver fase er videre delt inn i oppgaver med riktig definerte mål og resultater.
Analyse og design er faser der den faktiske arkitekturen, arbeidsmodellen og utførelsesprosessen for å bygge et programvareprodukt er lagt ned.
To avgjørende trinn i disse fasene er High-Level System Design og Low-Level System Design.
Hva er systemdesign på høyt nivå?
High-Level Design (HLD) gir en omfattende oversikt over programvareutviklingsprosessen sammen med systemarkitekturen, applikasjonene, databaseadministrasjonen og komplett flytskjema for systemet og navigasjon. Det er en blåkopi som konsoliderer de ulike trinnene og modulene, deres mål, variable komponenter, resultater, arkitektur og tidslinje for å utvikle programvaren. HLD oversetter en forretningsplan til et programvareprodukt eller en tjeneste.
Eksempler på HLD i programvareutvikling inkluderer systemarkitekturdokumenter, flytskjemaer for apputvikling osv.
Hva er systemdesign på lavt nivå?
Low-Level Design (LLD) omhandler planlegging, koding og utførelse av de ulike komponentene, modulene og trinnene i HLD, på individuelt nivå. Hver modul i en HLD har et unikt LLD-dokument som gir omfattende detaljer om hvordan modulen vil bli kodet, utført, testet for kvalitet og integrert i det større programmet. LLD gir handlingsplaner ved å dekonstruere HLD-komponenter til fungerende løsninger.
Eksempler på LLD i programvareutvikling inkluderer handlevognintegrasjon, sikkerhetstesting, brukergrensesnittdesign, etc.
Forskjeller mellom HLD og LLD
HLD og LLD tjener også forskjellige funksjoner og formål som programmeringsspråk på høyt nivå og programmeringsspråk på lavt nivå.
Makro vs. Mikroarkitektur og design
HLD er et design på makronivå som gir et fugleperspektiv av programvareutviklingsprosessen. Den inkluderer diagrammer, flytskjemaer, navigasjonsdetaljer og andre tekniske krav som vil utgjøre kjernen i utviklingsprosessen.
I tillegg til flytskjemaer, diagrammer, navigasjonsinformasjon og tekniske krav, har LLD også omfattende informasjon om trinn-for-trinn utførelse av hver komponent i HLD. Den tar for seg programvareutvikling på mikronivå.
Hver komponent i en HLD har et unikt LLD-dokument.
Utviklingskronologi
HLD går foran LLD-fasen. Når HLD-en er på plass og godkjent for utførelse, kan arbeidet med de enkelte LLD-ene starte.
HLD begynner når planleggings- og kravstadiene er behandlet og har ingen andre avhengigheter.
På den annen side må LLD utføres i en bestemt rekkefølge. Noen moduler må avvente utførelse til andre er fullført.
LLD faller inn under designfasen til SDLC, mens HLD faller inn under analysefasen til SDLC.
Hensikt
- Hensikten med en HLD er å liste opp de funksjonelle aspektene ved de ulike modulene sammen med det endelige resultatet.
- Hensikten med en LLD er å detaljere logikken og utførelsen av hver modul i en HLD.
Interessenter
Løsningsarkitekter er ansvarlige for å lage et HLD-dokument. Det kan ha interne og eksterne interessenter som gjennomgangsteamet som tar hensyn til programvareberegninger, designteamet, kunder og ledere.
LLD håndteres av programvareutviklere, nettadministratorer, sikkerhetsingeniører, etc., som er en del av selskapet eller leverandørteamene. LLD-er er generelt begrenset til interne interessenter.
Målgruppe
HLD-dokumenter har målgruppen for ledere, kunder og programvareutviklingsteam.
Programvareingeniører, kodere, testere og utviklere som jobber med prosjektet er målgruppen for LLD-dokumenter.
Forventet resultat
- Resultatet av en HLD er et programvareprodukt eller en tjeneste som er klar til å sendes til sluttbrukeren.
- Resultatet av en LLD er fullføringen av en enkelt modul av HLD, som kodings- eller testfasene.
Forstå programvaredesigndokumenter
Programvaredesigndokumenter skisserer de strukturelle, funksjonelle og logiske aspektene ved å utvikle en programvareprodukt eller tjeneste i tillegg til de tekniske kravene og annen implementering detaljer. Enten designet omhandler utførelse på makronivå eller mikronivå, bør programmerere og andre interessenter kjenne til og forstå omfanget og de ulike trinnene i programvareutviklingsprosessen.