Traditionel systemudvikling er foregået som konstruktion af et system udfra specifikationer med efterfølgende drift og vedligeholdelse af systemet i begrænset omfang. Eventuelle større ændringer og tilføjelser er lavet som endnu et systemudviklingsforløb med konstruktion af et nyt system baseret på det eksisterende. Systemer konstrueres til at være færdige og potentielt at skulle anvendes i en længere periode.
For at håndtere ukendte krav og løbende forandringer i mange projekter sker systemudviklingen i stedet for som en mere evolutionær proces med gennemløb af et antal iterationer med gradvis ændring/udbygning og test af systemet. Målet er dog stadig at udvikle et færdigt system som løsning på et givent problem.
Systemet, der udvikles, er ikke nødvendigvis målet med systemudviklingen, men det kan primært være en anledning og et middel til at opnå forandringer i de omkringliggende systemer, og selve systemet er kun sekundært.
Traditionel systemudvikling er dårligt egnet til håndtering af ukendte og foranderlige krav til systemet, men selv med kendte og uforanderlige krav kan det være problematisk at specificere kravene og sikre en korrekt implementering med de traditionelle systemudviklingsmetoder og -værktøjer, samt at videreudvikle systemet.
Der er lavet mange tiltag for at tilpasse traditionel systemudvikling til en evolutionær process for eksempel i form af Boehms spiralmodel for systemudviklingsprocessen samt prototyping og Rapid Application Development (RAD) metoder og værktøjer. Der er dog stadig en del problemer i forbindelse med prototyping og RAD idet de udviklede systemer ofte er ineffektive, ukomplette og dårligt dokumenterede, hvorfor de ikke er egnede til store systemer medmindre, at de efterfølgende genudvikles med de traditionelle metoder og værktøjer. Desuden er prototyping og RAD metoder og værktøjer ofte primært beregnet til bestemte typer af systemer som for eksempel administrative database-baserede løsninger. Endeligt er den typiske, eksisterende evolutionære systemudvikling også primært beregnet til at nå et færdigt resultat og ikke så meget til en eventuelt uendelig udviklingsproces med konstant, løbende videreudvikling af systemet, da systemet eventuelt efterfølgende genimplementeres med mere driftseffektive værktøjer.
Med udviklingsprocessen selv og omkringliggende forandringer som det primære produkt er eksisterende systemudvikling forholdsvis rigid, omfattende og kompliceret for at få de tekniske systemer inddraget. Det begrænser mulighederne for bred og dyb problemudforskning, og der mangler fokus på understøttelse af flertydighed, alternative synsvinkler og konflikterende interesser. Håndtering af dette må ske med isolerede metoder og værktøjer ved siden af de almindelige teknisk orienterede metoder og værktøjer.
Generel systemmodellering bør således understøtte den nødvendige detaljering og præcision til specifikation og implementering af pålidelige og effektive computer systemer. Samtidigt bør generel systemmodellering være fleksibel og effektiv til eksperimenteren med håndtering af uklarheder, alternativer og konflikter; hurtig implementering af ad-hoc systemer og løbende implementering af computer systemer under konstant forandring. Endeligt bør generel systemmodellering have den nødvendige fleksibilitet for overgang fra eksperimenterende og ad-hoc computer systemer til pålidelige og effektive computer systemer (og omvendt). Dermed bør der ikke være grundlæggende forskel på generel systemmodellering i forbindelse med forskellige systemudviklingsformål.
|