De tre primære, overordnede indgangsvinkler til analyse, design og implementering af software er funktionel, data- og objektorienteret systemudvikling med fokus på henholdsvis processerne og trinvis nedbrydning/forfining af disse; information-/datastrukturer i form af elementer og relationer mellem disse; og gruppering af "naturligt" sammenhørende funktioner og data i selvstændige objekter og relationer mellem disse.
De forskellige synsvinkler/fremgangsmåder er velegnede til forskellige opgaver afhængigt af det enkelte projekt, den enkelte udvikler og de enkelte aktiviteter indenfor et projekt. Typisk er man dog bundet til ét enkelt paradigme afhængigt af valget af systemudviklingsmetodologi/-værktøj indenfor projektet/virksomheden.
Er der reelt tale om uforenelige paradigmer med fundamentale forskelle eller er det blot dårlig implementering når det ikke er muligt eller vanskeligt at kombinere de forskellige indgangsvinkler? I sidste ende drejer det sig trods alt om de samme data, funktioner og relationer mellem disse.
Med generel systemmodellering bør det være muligt frit at kunne skifte mellem de forskellige synsvinkler, således at den bedst egnede indgangsvinkel kan vælges til den enkelte delopgave for den enkelte udvikler. Ikke blot således at der kan vælges forskellige synsvinkler på de enkelte delopgaver, men således at hver enkelt delopgave frit kan præsenteres udfra flere/alle synsvinkler for at fremhæve forskellige aspekter.
En anden dimension på analyse, design og implementering af software er henholdsvis top-down og bottom-up baserede systemudviklingsforløb. Ved top-down systemudvikling nedbrydes problemstillingen analytisk og trinvist indtil et niveau bestående af simple komponenter og programinstruktioner. Ved bottom-up systemudvikling løses problemstillingen konstruktivistisk med kombination af programinstruktioner og simple komponenter til trinvist større komponenter indtil et komplet system nåes.
Top-down og bottom-up baseret systemudvikling betegnes ofte som uforenelige paradigmer og forskellige systemudviklingsmetodologier, -metoder og -værktøjer tager udgangspunkt i et af dem. I forbindelse med generel systemmodellering bør top-down og bottom-up baseret systemudvikling dog frit kunne kombineres, da de i stedet for uforenelige paradigmer kan ses som naturlige, supplerende indgangsvinkler der er velegnede til forskellige aktiviteter i et systemudviklingsforløb og forskellige dele af et system. Top-down baseret systemudvikling er velegnet til analytisk refleksion for problemstillinger og bottom-up er velegnet til eksperimentiel "dialog" med forskellige løsningsmuligheder.
|