Spring til indhold

Programdesign: Forskelle mellem versioner

Fra Wikipedia, den frie encyklopædi
Content deleted Content added
m robot: automatisk teksterstatning: (-[Tt]echstub +It-stub); kosmetiske ændringer
m bot: fix links
Linje 11: Linje 11:
Uanset, hvordan man overoednet har valgt at designe sit program, er der nogle elementer, der ofte går igen. Man kan bruge et [[lagdelt programdesign]], hvor hvert lag kun kalder funktioner i laget lige under. Med et gennemført lagdelt design kan man lave store ændringer i et lag uden at andre lag skal ændres og derfor [[programtest|testes]] igen.
Uanset, hvordan man overoednet har valgt at designe sit program, er der nogle elementer, der ofte går igen. Man kan bruge et [[lagdelt programdesign]], hvor hvert lag kun kalder funktioner i laget lige under. Med et gennemført lagdelt design kan man lave store ændringer i et lag uden at andre lag skal ændres og derfor [[programtest|testes]] igen.


I objektorienterede systemer bruges nogle gange et [[model-view-controller]]-design (MVC), hvor sammenhængen mellem datamodellen og brugergrænsefladen håndteres af en "controller", der holder de to andre dele fra hinanden. I modsætning til et program med lagdelt design er styringen i et MVC-program baseret på hændelser. Eksempelvis vil en indtastning i brugergrænsefladen resultere i en hændelse til controlleren, som vil starte en opdatering. Når opdateringen er gennemført dannes en hændelse som brugergrænsefladen kan reagere på.
I objektorienterede systemer bruges nogle gange et [[Model-View-Controller]]-design (MVC), hvor sammenhængen mellem datamodellen og brugergrænsefladen håndteres af en "controller", der holder de to andre dele fra hinanden. I modsætning til et program med lagdelt design er styringen i et MVC-program baseret på hændelser. Eksempelvis vil en indtastning i brugergrænsefladen resultere i en hændelse til controlleren, som vil starte en opdatering. Når opdateringen er gennemført dannes en hændelse som brugergrænsefladen kan reagere på.


Da mange designmæssige problemer opsår igen og igen, har man inden for programdesign udviklet [[designmønster|designmønstre]], der beskriver, hvordan forskellige problemer med fordel kan løses.
Da mange designmæssige problemer opsår igen og igen, har man inden for programdesign udviklet [[designmønster|designmønstre]], der beskriver, hvordan forskellige problemer med fordel kan løses.

Versionen fra 27. jun. 2013, 22:33

Programdesign er design af computerprogrammer. Gennem tiden har der været mange forskellige tilgangsvinkler til design af programmer og computerbaserede systemer i det hele taget.

Måder at designe programmer på

Struktureret design er en af de ældste måder at designe programmer på. Man tager udgangspunkt i at computeren med program er en maskine, som forarbejder data. Kompleksiteten håndteres ved at programmets opgave opdeles i funktioner indtil hver funktion er overskuelig. Dette design kan bruges til programmer, der behandler data uden direkte input fra brugeren, men det er mindre egnet til interaktive programmer.

I integreret design laves et struktureret design sideløbende med et databasedesign for at sikre sammenhængen mellem programmets funktion og datagrundlaget. Da det antages, at datamodellen er mere statisk end de enkelte funktioner, bruges der ofte flest ressoucer på at få datamodellen på plads.

Med fremkomsten af objektorienteret programmering, blev der senere udviklet metoder til objektorienteret design. Da der både er data og funktioner i definitionen af et objekt, er det ikke så stor en udfordring at få data og funktioner til at hænge sammen. Til gengæld er der ikke mange objektorienterede databaser på markedet, så normalt må man ty til en oversættelse til et databasedesign.

Designelementer

Uanset, hvordan man overoednet har valgt at designe sit program, er der nogle elementer, der ofte går igen. Man kan bruge et lagdelt programdesign, hvor hvert lag kun kalder funktioner i laget lige under. Med et gennemført lagdelt design kan man lave store ændringer i et lag uden at andre lag skal ændres og derfor testes igen.

I objektorienterede systemer bruges nogle gange et Model-View-Controller-design (MVC), hvor sammenhængen mellem datamodellen og brugergrænsefladen håndteres af en "controller", der holder de to andre dele fra hinanden. I modsætning til et program med lagdelt design er styringen i et MVC-program baseret på hændelser. Eksempelvis vil en indtastning i brugergrænsefladen resultere i en hændelse til controlleren, som vil starte en opdatering. Når opdateringen er gennemført dannes en hændelse som brugergrænsefladen kan reagere på.

Da mange designmæssige problemer opsår igen og igen, har man inden for programdesign udviklet designmønstre, der beskriver, hvordan forskellige problemer med fordel kan løses.

ItSpire
Denne it-artikel er en spire som bør udbygges. Du er velkommen til at hjælpe Wikipedia ved at udvide den.