Redigerer
Design ovenfra og nedenfra
(avsnitt)
Hopp til navigering
Hopp til søk
Advarsel:
Du er ikke innlogget. IP-adressen din vil bli vist offentlig om du redigerer. Hvis du
logger inn
eller
oppretter en konto
vil redigeringene dine tilskrives brukernavnet ditt, og du vil få flere andre fordeler.
Antispamsjekk.
Ikke
fyll inn dette feltet!
== Informatikk == === Programvareutvikling === I [[Programvareutviklingsprosess|programvareutvikling]] spiller ovenfra- og nedenfra-tilnærmelsene en nøkkelrolle. Ovenfra tilnærminger legger vekt på planlegging og fullstendig forståelse av systemet. Ingen koding kan begynne før tilstrekkelig detaljnivå har blitt oppnådd i designet av minst en del av systemet. Ovenfra tilnærminger implementeres ved å sette spirer inn for modulene, men dette sinker testing av de endelige funksjonelle enhetene i et system inntil et betydelig design er komplett. Nedenfra tilnærminger legger vekt på koding og tidlig testing, hvilket kan begynne så fort den første modulen er spesifisert. Risikoen med denne tilnærmingen er at moduler kan bli kodet uten å ha en klar tanke om hvordan de skal linkes til andre deler av systemet, slik at linking kan bli vanskeligere enn først tenkt. [[Gjenbruk av kode]] er en av hovedfordelene med en nedenfra tilnærming.<ref name="treisman1980">{{Kilde www|url=http://step.psy.cmu.edu/scripts/Attention/Treisman1980.html|tittel=STEP: Scripts: Attention: Treisman and Gelade 1980|besøksdato=21. oktober 2012|arkiv-url=https://web.archive.org/web/20110914130951/http://step.psy.cmu.edu/scripts/Attention/Treisman1980.html|arkivdato=2011-09-14|forlag=Step.psy.cmu.edu|url-status=dead}}</ref> Ovenfra design ble fremmet i 1970-årene av [[IBM]]-forskerne Harlan Mills og [[Niklaus Wirth]]. Mills utviklet konsepter for [[strukturert programmering]] for praktisk bruk, og testet de i et prosjekt fra 1969 for å automatisere indeksen i ''[[The New York Times|New York Times]]'' sitt arkiv. Prosjektets tekniske og ledelsesmessige suksess førte til spredningen av ovenfra-tilnærmingen i IBM og resten av IT-industrien. Niklaus Wirth som hadde utviklet programmeringsspråket [[Pascal (programmeringsspråk)|Pascal]] skrev også den innflytelsesrike artikkelen ''Program Development by Stepwise Refinement''. Siden fortsatte Wirth med å utvikle språk som [[Modula]] og [[Oberon (programmeringsspråk)|Oberon]] hvor man kunne definere en modul før man visste hele programspesifikasjonen, og utifraa dette kan man konkludere med at han ikke strengt fremmet ovenfra programmering. Ovenfra metoder ble stort sett foretrukket i programvareutvikling inntil slutten av 1980-årene,<ref name="treisman1980"/> og [[objektorientert programmering]] hjalp med å demonstrere ideen om at både aspekter av ovenfra og nedenfra programmering kunne brukes. Moderne tilnærminger til [[programvaredesign]] kombinerer vanligvis ovefra og nedenfra tilnærminger. Selv om en forståelse av det komplette systemet vanligvis anses nødvendig for godt design – og dermed teoretisk fører til en ovenfra tilnærming – forsøker de fleste programvareprosjekter å bruke eksisterende kode til en viss grad. Allerede eksisterende moduler gir designene en «nedenfra stil». <gallery> Top Down Approach.png|Ovenfra tilnærming til [[integrasjonstesting]] Bottom Up Approach.png|Nedenfra tilnærming Sandwich Approach.png|Smørbrød-tilnærming Bing Bang Approach.png|Storsmell-tilnærming </gallery> === Programmering === [[Fil:Lego_Chicago_City_View_2001.jpg|venstre|miniatyr|Byggeblokker (her [[Lego]]) er et eksempel på nedenfra design fordi delene først blir skapt og deretter montert uten hensyn til hvordan delene vil fungere i den endelige sammenstillingen]] Ovenfra som programmeringsstil er bærebjelken i tradisjonelle [[Prosedyrisk programmering|prosedyriske språk]] der designet starter ved å spesifisere komplekse deler og deretter dele de inn i gradvis mindre biter. En ovenfra teknikk for å skrive et program er å lage en hovedfunksjon (''main function'') som navngir alle de viktigste funksjonene den vil trenge. Deretter vil utviklerne se på alle kravene til hver av disse funksjonene og prosessen gjentas for disse. Disse [[Kompartmentalisering (informatikk)|kompartmentaliserte]] [[Delrutine|delrutinene]] vil til slutt utføre handlinger som er så enkle at de enkelt og konsist kan kodes. Når alle de ulike underrutinene har blitt kodet er programmet klart for testing. Ved å definere hvordan applikasjonen henger sammen på høyt nivå kan arbeidene på lavere nivå utføres selvstendig. I en nedenfra tilnærming blir de enkelte grunnelementene i systemet først spesifisert i stor detalj. Disse elementene blir deretter koblet sammen for å danne større delsystemer som igjen er koblet sammen (noen ganger på mange nivåer) inntil et komplett system er dannet på toppnivå. Denne strategien ligner ofte en spiremodell som er liten i begynnelsen, men til slutt vokser i kompleksitet og kompletthet. Objektorientert programmering er et paradigme som bruker [[Objekt (informatikk)|objekter]] til å designe applikasjoner og dataprogrammer.
Redigeringsforklaring:
Merk at alle bidrag til Wikisida.no anses som frigitt under Creative Commons Navngivelse-DelPåSammeVilkår (se
Wikisida.no:Opphavsrett
for detaljer). Om du ikke vil at ditt materiale skal kunne redigeres og distribueres fritt må du ikke lagre det her.
Du lover oss også at du har skrevet teksten selv, eller kopiert den fra en kilde i offentlig eie eller en annen fri ressurs.
Ikke lagre opphavsrettsbeskyttet materiale uten tillatelse!
Avbryt
Redigeringshjelp
(åpnes i et nytt vindu)
Denne siden er medlem av 1 skjult kategori:
Kategori:Artikler med ufullstendige referanser
Navigasjonsmeny
Personlige verktøy
Ikke logget inn
Brukerdiskusjon
Bidrag
Opprett konto
Logg inn
Navnerom
Side
Diskusjon
norsk bokmål
Visninger
Les
Rediger
Rediger kilde
Vis historikk
Mer
Navigasjon
Forside
Siste endringer
Tilfeldig side
Hjelp til MediaWiki
Verktøy
Lenker hit
Relaterte endringer
Spesialsider
Sideinformasjon