Systemudvikling

Fra Wikipedia, den frie encyklopædi

Systemudvikling er en bred betegnelse for udvikling af software-baserede systemer. Systemudvikling består af en kombination af at finde frem til kravene til det kommende system, analysere sammenhængene i, designe, programmere og teste det.

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.

[redigér] Udviklingsforløb

Et software-baseret system udvikles normalt projektbaseret. 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 iterative 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 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.

[redigér] Uddannelse

En systemudvikler har ofte en formel og bred uddannelse inden for it, og det kan være datalogi eller datamatikeruddannelsen eller f.eks. en ingeniøruddannelse. 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