Systemudvikling: Forskelle mellem versioner

Content deleted Content added
topsort
m ændre sorteringsnøgle til Kategori:Systemudvikling; kosmetiske ændringer
Linje 3:
Programmeringsdisciplinen omfatter en række kompetencer, der kan studeres og behandles for sig selv, og derfor benyttes betegnelsen "systemudvikling" ofte om alt det, der ikke direkte har med programmering at gøre, nemlig at skabe fundamentet for, at man udvikler det rigtige system.
 
== Udviklingsforløb ==
Et software-baseret system udvikles normalt [[projekt]]baseret. Dette indebærer, at det udføres i en dertil defineret organisation, der som sit primære mål har netop udviklingen af systemet. Udviklingsgruppen fungerer bedst, hvis den inden for passende rammer kan tilrettelægge sit arbejde selv. En typisk (simpel) organisering omfatter derfor en '''projektgruppe''' bestående af systemudviklerne, heraf en projektleder, samt en '''styregruppe''', der udstikker rammerne og er i stand til at handle, når projektgruppen føler rammerne snære (f.eks. ved større forsinkelser).
 
Styringen af forløbet foregår ved anvendelse af en systemudviklingsmodel, der definerer en række faser og milepæle. Projektgruppen kan i forbindelse med passeringen af milepæle holde styregruppen orienteret og derved sandsynliggøre fremskridt i forløbet. [[Vandfaldsmodellen]] er et eksempel på sådan en model, men i de senere år har [[iterativ]]e modeller vundet indpas.
 
Selve udviklingsarbejdet tilrettelægges normalt ved hjælp af en [[udviklingsmetode]], der er en række forskrifter for, hvordan man mere eller mindre systematisk kan arbejde sig hen mod det endelige system. En udviklingsmetode vil ofte gøre brug af et antal værktøjer og teknikker, der hjælper udvikleren med at systematisere sin forståelse. I [[objektorientering|objektorienterede]] metoder bruges nu om stunder normalt [[UML]], der kan betragtes som en værktøjskasse bestående af en række diagramtyper, som man kan bruge til at beskrive forskellige egenskaber ved det kommende system. Klassediagrammet er en diagramtype, men for at kunne lave et konkret klassediagram er det også nødvendigt, at man kender til teknikker i den forbindelse. Identifikation af navneord og udvælgelse af de relevante er en anvendt teknik, der leder frem mod tegningen af et klassediagram.
 
Som hjælp til udvikleren findes der en række computerbaserede programmer kaldet [[CASE]]-værktøjer. Et CASE-værktøj understøtter en række værktøjer, f.eks. UML, og med det kan udvikleren nemmere tegne de ønskede diagrammer samt sikre, at de indbyrdes hænger sammen. De bedste CASE-værktøjer er endvidere integreret med programmeringsværktøjer, så man umiddelbart kan arbejde videre på de dele, som man i starten på et ret abstrakt plan beskriver, til de til sidst bliver til det endelige program.
== Uddannelse ==
En systemudvikler har ofte en formel og bred uddannelse inden for it, og det kan være [[datalogi]] eller [[datamatiker]]uddannelsen eller f.eks. en [[ingeniør]]uddannelse. Blandt en systemudviklers ideelle kompetencer kan nævnes:
* Systematik: Behov for at systematisere ofte store mængder data
* Kommunikation: Behov for at samarbejde med bruger/kunde om at forstå kravene til det kommende system
* Innovation: Nytænkning i løsninger kan ofte være en nødvendighed
* Samarbejde: Systemudvikling foregår normalt i grupper bestående af personer med forskellige specialer
* Selvdisciplin: Mange systemudviklere kan have en tendens til at indføre smarte faciliteter i et system, men det er sjældent økonomisk muligt
 
[[Kategori:Systemudvikling| ]]