Højniveau programmering detaljerer systemdesignet til sekvenser af basale data og kommandoer i forhold til et givent programmeringssprog ved traditionel systemudvikling. Sådanne basale data og kommandoer omfatter typisk et antal basale datatyper som for eksempel heltal, decimaltal, tekst og sammensatte datastrukturer, samt kommandoer til at erklære forekomster af disse datatyper i form af variable. Disse variable anvendes i forbindelse med basale kommandoer til bearbejdning i form af for eksempel kopiering, addition og subtraktion. Derudover omfatter programmeringssprog kontrol kommandoer til styring af programeksekveringen med iteration og selektion samt kommandoer til gruppering og abstraktion i form af procedurer og funktioner. Endeligt omfatter programmeringssprog eksplicitte eller implicitte kommandoer til allokering og styring af systemressourcer i form af for eksempel lager og filer samt ind- og uddata enheder.
Der findes nærmest utallige forskellige programmeringssprog indenfor et antal forskellige programmeringsparadigmer med varierende syntaks for og varierende fokus på forskellige datatyper samt bearbejdnings- og kontrolkommandoer. De er dog alle abstraktioner for effektiv anvendelse af ofte benyttede programkonstruktioner i forbindelse med forskellige programtyper baseret på de samme basale, lavniveau computerinstruktioner, der benyttes ved fortolkning eller kompilering af programkoden.
Traditionelle programmeringssprogs programkonstruktioner består typisk i blokke og sekvenser af enkelte programinstruktioner men disse dækker dog over mere komplekse netværk af programinstruktioner idet de enkelte programinstruktioner udover de simple, sekventielle relationer er relaterede via de data de anvender og bearbejder. Sådanne komplekse netværk udledes for eksempel i forbindelse med optimering af programkonstruktioner ved kompilering af højniveau programkode til lavniveau programkode.
Ved generel systemmodellering kan programkonstruktioner tilsvarende modelleres med netværk af delsystemer svarende til de enkelte programinstruktioner samt hierarkier af disse. En sådan netværk modellering af programkonstruktioner afspejler bedre de reelle bindinger mellem de enkelte programinstruktioner samt programinstruktioner uden indbyrdes bindinger som derfor kan ekskveres parallelt.
Med generel systemmodellering, der omfatter systemmodellering med hierarkier og netværk af lavniveau computerinstruktioner samt generelle abstraktionsmekanismer, er det således også muligt at definere delsystemer svarende til de basale data og kommandoer i højniveau programmeringssprog. Ved generel systemmodellering behøver højniveau program modellering dermed ikke at være bundet til et enkelt programmeringssprogs basale koncepter og syntaks. Der kan umiddelbart defineres og anvendes en vilkårlig sammensætning af forskellige basale programkonstruktioner. Sådanne basale programkonstruktioner bør være defineret som standard delsystemmodeller der umiddelbart kan anvendes i forbindelse med implementering af computerbaserede systemer.
Gode programmeringssprog er dog mere end blot en samling tilfældige, basale programkonstruktioner men snarere en omhyggeligt sammensat samling af basale programkonstruktioner orienteret mod implementering af bestemte programtyper selvom mange programmeringssprog kan betegnes som generelle programmeringssprog. Det er dermed eventuelt ikke hensigtsmæssigt at blande for mange og for forskellige basale koncepter ved generel systemmodellering. Ved generel systemmodellering har man dog altid muligheden for at anvende eller definere andre basale programkonstruktioner, hvis det er hensigtsmæssigt eller nødvendigt.
Generel systemmodellering af programkonstruktioner er her præsenteret som dataflow lignende diagrammer, men dette er dog primært for at fremhæve de matematisk graf orienterede strukturer, og det er ikke ensbetydende med at generel systemmodellering af programkonstruktioner er bundet til dataflow orienteret visuel programmering. Generel systemmodellering er ikke bundet til en bestemt syntaks til repræsentation af programmer, idet alle programkonstruktioner er defineret som generelle systemmodeller uden bunden syntaks.
Der kan dermed defineres forskellige præsentationsformer for generelle systemmodeller for programkonstruktioner, der præsenterer programkonstruktionerne i et vilkårligt format som for eksempel i form af dataflow lignende diagrammer eller programkildetekst svarende til syntaksen for et traditionelt programmeringssprog. Ved præsentation i programkildetekst format kan generelle systemmodeller umiddelbart udveksles med traditionelle, specialiserede systemudviklingsværktøjer, og systemudviklere kan programmere ved hjælp af velkendte, effektive programmeringssprog. Dette forudsætter dog at den generelle systemmodel kun omfatter programkonstruktioner, det umiddelbart er muligt at udtrykke med det pågældende programmeringssprog eller at der er defineret specielle delsystemer i form af funktioner/procedurer for de manglende programkonstruktioner.
Med generel systemmodellering kan højniveau program modellering således ske som detaljering af systemdesign i én integreret, generel systemmodel med de samme generelle systemkoncepter.
|