Fordelene av Lagdelt programvare

Lagdelt programvare kan inkludere brukernes grensesnitt, et program og programvare som implementerer programmet. Den kan også inneholde andre lag, for eksempel en virtuell maskin for å kjøre programvaren. Hvert lag kommuniserer bare med laget rett under den, noe som resulterer i forskjellige lag som har en høy grad av uavhengighet av hverandre.

Selvstendighet

Uavhengige lag bare kommuniserer med hverandre gjennom konkrete grensesnitt og protokoller. Så lenge grensesnittene forblir operative, kan du endre koden på gjennomføringen programvaren uten at det påvirker applikasjonslaget. Man kan også vedlikeholde, distribuere og oppdatere forskjellige nivåer av programvare på forskjellige tidspunkter, i stedet for å håndtere hele systemet på en gang. Hvis forskjellige programmerings team arbeider i ulike lag i prosjektet, trenger de ikke å vite nøyaktig hva de andre lagene gjør, bare de grunnleggende detaljer om hvordan de samhandler.

Bruke om igjen

Designe programvare i lag betyr at du kan bruke det lettere. Dataene er implementert i det lavere nivået er ikke laget for å kjøre bare programmet i det øvre laget, slik at du kan bruke det for et annet program, eller kjøre flere programmer på øverste nivå samtidig. Hvis du ikke trenger å komme opp med en helt ny bunn lag for hvert program, sparer gjenbruk mye programmering tid du kan bruke til andre prosjekter.

Design

Med lag, kan en designer bygge programvare fra bunnen opp i stedet for ovenfra og ned. Top-down design krever en detaljert kunnskap om hva kunden ønsker fra programvaren før du begynner. I et lagdelt system, kan de lavere nivåene tilpasse seg et bredt spekter av øvre nivå bruksområder, så dette er ikke et problem: Hvis du holder den generelle begrepet produktet i tankene, kan du begynne på bunnen og gjøre det funksjonelt og fleksibel nok til å jobbe.

ulempene

Designe programvare i lag har sin nedover siden. Programvare konsulent Steven Svart sier på sin nettside at jo mer selvstendig du gjør lagene, jo lettere blir det å miste oversikten over hva som skjer på de lavere nivåene. Ikke å kunne få tilgang til eller samhandle med lavere nivåer kan føre til ineffektivitet i de øvre nivåene. Hvis du tillater nivåer for å samhandle for å kompensere for det, men du kan ende opp med å gjøre programvaren avhengige av hverandre og miste fordelene ved lagdeling.