Software Development Life Cycle (SDLC) gennemgår forskellige faser som planlægning, kravvurdering, analyse, design, udførelse, dokumentation, test osv. Hver fase er yderligere opdelt i opgaver med korrekt definerede mål og resultater.
Analyse og design er faser, hvor selve arkitekturen, arbejdsmodellen og udførelsesprocessen for at bygge et softwareprodukt er fastlagt.
To afgørende trin i disse faser er High-Level System Design og Low-Level System Design.
Hvad er systemdesign på højt niveau?
High-Level Design (HLD) giver et omfattende overblik over softwareudviklingsprocessen sammen med systemarkitekturen, applikationer, databasestyring og komplet flowchart af systemet og navigation. Det er en plan, der konsoliderer de forskellige trin og moduler, deres mål, variable komponenter, resultater, arkitektur og tidslinje for at udvikle softwaren. HLD oversætter en forretningsplan til et softwareprodukt eller en service.
Eksempler på HLD i softwareudvikling omfatter systemarkitekturdokumenter, appudviklingsflowdiagrammer osv.
Hvad er systemdesign på lavt niveau?
Low-Level Design (LLD) omhandler planlægning, kodning og udførelse af de forskellige komponenter, moduler og trin i HLD'en på individuelt niveau. Hvert modul i en HLD har et unikt LLD-dokument, der giver omfattende detaljer om, hvordan modulet vil blive kodet, eksekveret, testet for kvalitet og integreret i det større program. LLD leverer handlingsplaner ved at dekonstruere HLD-komponenter til fungerende løsninger.
Eksempler på LLD i softwareudvikling inkluderer vognintegration, sikkerhedstest, brugergrænsefladedesign osv.
Forskelle mellem HLD og LLD
HLD og LLD tjener også forskellige funktioner og formål som f.eks programmeringssprog på højt niveau og programmeringssprog på lavt niveau.
Makro vs. Mikroarkitektur og design
HLD er et design på makroniveau, der giver et fugleperspektiv af softwareudviklingsprocessen. Det inkluderer diagrammer, rutediagrammer, navigationsdetaljer og andre tekniske krav, der vil udgøre kernen i udviklingsprocessen.
Ud over rutediagrammer, diagrammer, navigationsinformation og tekniske krav har LLD også omfattende information om trin-for-trin udførelse af hver komponent i HLD. Det omhandler softwareudvikling på mikroniveau.
Hver komponent i en HLD har et unikt LLD-dokument.
Udviklingskronologi
HLD går forud for LLD-fasen. Når HLD'en er på plads og godkendt til udførelse, kan arbejdet med de enkelte LLD'er begynde.
HLD begynder, når planlægnings- og kravstadierne er behandlet og har ingen andre afhængigheder.
På den anden side skal LLD udføres i en bestemt rækkefølge. Nogle moduler skal afvente udførelse, indtil andre er afsluttet.
LLD falder ind under designfasen af SDLC, hvorimod HLD falder ind under analysefasen af SDLC.
Formål
- Formålet med en HLD er at liste de funktionelle aspekter af de forskellige moduler sammen med det endelige resultat.
- Formålet med en LLD er at detaljere logikken og udførelsen af hvert modul i en HLD.
Interessenter
Løsningsarkitekter er ansvarlige for at skabe et HLD-dokument. Det kan have interne og eksterne interessenter som review-teamet, der tager kendskab til software målinger, designteamet, kunder og ledere.
LLD håndteres af softwareudviklere, webadministratorer, sikkerhedsingeniører osv., som er en del af virksomhedens eller leverandørteams. LLD'er er generelt begrænset til interne interessenter.
Målgruppe
HLD-dokumenter har målgruppen for ledere, kunder og softwareudviklingsteams.
Softwareingeniører, kodere, testere og udviklere, der arbejder på projektet, er målgruppen for LLD-dokumenter.
Forventet resultat
- Resultatet af en HLD er et softwareprodukt eller en service, der er klar til at blive sendt til slutbrugeren.
- Resultatet af en LLD er færdiggørelsen af et enkelt modul af HLD, ligesom kodnings- eller testfaserne.
Forstå softwaredesigndokumenter
Softwaredesigndokumenter skitserer de strukturelle, funktionelle og logiske aspekter ved at udvikle en softwareprodukt eller -tjeneste ud over de tekniske krav og anden implementering detaljer. Uanset om designet omhandler udførelse på makro- eller mikroniveau, bør programmører og andre interessenter kende og forstå omfanget og de forskellige trin i softwareudviklingsprocessen.