Software Development Life Cycle (SDLC) går igenom olika faser som planering, kravbedömning, analys, design, utförande, dokumentation, testning, etc. Varje fas är vidare uppdelad i uppgifter med väl definierade mål och resultat.

Analys och design är faser där den faktiska arkitekturen, arbetsmodellen och utförandeprocessen för att bygga en mjukvaruprodukt fastställs.

Två avgörande steg i dessa faser är High-Level System Design och Low-Level System Design.

Vad är systemdesign på hög nivå?

High-Level Design (HLD) ger en omfattande översikt över mjukvaruutvecklingsprocessen tillsammans med systemarkitekturen, applikationerna, databashanteringen och fullständigt flödesschema för systemet och navigering. Det är en ritning som konsoliderar de olika stegen och modulerna, deras mål, variabla komponenter, resultat, arkitektur och tidslinje för att utveckla programvaran. HLD översätter en affärsplan till en mjukvaruprodukt eller tjänst.

Exempel på HLD inom mjukvaruutveckling inkluderar systemarkitekturdokument, flödesscheman för apputveckling etc.

instagram viewer

Vad är systemdesign på låg nivå?

Low-Level Design (LLD) handlar om planering, kodning och utförande av de olika komponenterna, modulerna och stegen i HLD, på individuell nivå. Varje modul i en HLD har ett unikt LLD-dokument som ger omfattande information om hur modulen kommer att kodas, exekveras, testas för kvalitet och integreras i det större programmet. LLD tillhandahåller handlingsplaner genom att dekonstruera HLD-komponenter till fungerande lösningar.

Exempel på LLD inom mjukvaruutveckling inkluderar vagnintegration, säkerhetstestning, design av användargränssnitt, etc.

Skillnader mellan HLD och LLD

HLD och LLD tjänar också olika funktioner och syften som programmeringsspråk på hög nivå och programmeringsspråk på låg nivå.

Makro vs. Mikroarkitektur och design

HLD är en design på makronivå som ger ett fågelperspektiv av mjukvaruutvecklingsprocessen. Den innehåller diagram, flödesscheman, navigeringsdetaljer och andra tekniska krav som kommer att utgöra kärnan i utvecklingsprocessen.

Förutom flödesscheman, diagram, navigeringsinformation och tekniska krav har LLD också omfattande information om steg-för-steg-utförandet av varje komponent i HLD. Det handlar om mjukvaruutveckling på mikronivå.

Varje komponent i en HLD har ett unikt LLD-dokument.

Utvecklingskronologi

HLD föregår LLD-fasen. När HLD är på plats och godkänt för utförande kan arbetet med de enskilda LLD: erna påbörjas.

HLD börjar när planerings- och kravstadierna är klara och har inga andra beroenden.

Å andra sidan måste LLD utföras i en viss ordning. Vissa moduler måste vänta på att köras tills andra har slutförts.

LLD faller under designfasen av SDLC, medan HLD faller under analysfasen av SDLC.

Ändamål

  • Syftet med en HLD är att lista de funktionella aspekterna av de olika modulerna tillsammans med det slutliga resultatet.
  • Syftet med en LLD är att detaljera logiken och exekveringen av varje modul i en HLD.

Intressenter

Lösningsarkitekter ansvarar för att skapa ett HLD-dokument. Det kan ha interna och externa intressenter som granskningsteamet som tar hänsyn till mjukvarumått, designteamet, kunder och chefer.

LLD hanteras av mjukvaruutvecklare, webbadministratörer, säkerhetsingenjörer etc. som ingår i företagets eller leverantörsteamen. LLD är i allmänhet begränsade till interna intressenter.

Målgrupp

HLD-dokument har målgruppen chefer, kunder och mjukvaruutvecklingsteam.

Mjukvaruingenjörer, kodare, testare och utvecklare som arbetar med projektet är målgruppen för LLD-dokument.

Förväntat resultat

  • Resultatet av en HLD är en mjukvaruprodukt eller tjänst som är redo att skickas till slutanvändaren.
  • Resultatet av en LLD är slutförandet av en enda modul av HLD, som kodnings- eller testfaserna.

Förstå mjukvarudesigndokument

Programvarudesigndokument beskriver de strukturella, funktionella och logiska aspekterna av att utveckla en mjukvaruprodukt eller tjänst utöver de tekniska kraven och annan implementering detaljer. Oavsett om designen handlar om utförande på makronivå eller mikronivå bör programmerare och andra intressenter veta och förstå omfattningen och de olika stegen i mjukvaruutvecklingsprocessen.