Lavniveau program modellering er detaljering af højniveau programkonstruktioner til af computeren direkte eksekverbare programinstruktioner i form af sekvenser af bytekoder til repræsentation af disse programinstruktioner samt data og adresser for data i computerens lager.
Lavniveau program modellering svarer til højniveau program modellering blot med simplere programkonstruktioner og datatyper der er bundet til en bestemt computertypes processor og anden hardware. Datatyperne omfatter simple data som bits og bytes, og al bearbejdning af data skal ske med et givent antal variable i form dataregistre samt adresserbart lager i computeren, Programinstruktionerne omfatter tilsvarende simple programinstruktioner til kopiering og sammenligning samt matematisk og logisk bearbejdning af disse data.
Dermed kan lavniveau program modellering ske med generel systemmodellering på tilsvarende måde som højniveau program modellering med netværk af programinstruktioner der er relateret via de data de anvender og bearbejder. De enkelte programinstruktioner og data er dog begrænset til et givent sæt af delsystemer der er defineret for en bestemt computertype. Disse delsystemer skal være nedbrudt til aksiomatiske delsystemer i form af for eksempel bits, som et generelt systemmodelleringsværktøj kan anvende til at generere direkte eksekverbare computer programfiler. Disse basale computerspecifikke delsystemer bør være defineret som standard delsystemmodeller for forskellige computertyper der umiddelbart kan anvendes i forbindelse med implementering af computerbaserede systemer.
Som for højniveau program modellering er lavniveau program modellering heller ikke bundet til bestemte præsentationsformer. Dataflow lignende matematisk graf baserede præsentationer fremhæver de reelle relationer mellem de enkelte programinstruktioner, mens at tekstuel præsentation i programkildetekst format er mere kompakt og umiddelbart muliggør udveksling af generelle systemmodeller med traditionelle, specialiserede systemudviklingsværktøjer.
Præsentation af lavniveau programmer (og højniveau programmer) som netværk af programinstruktioner viser at selv tilsyneladende forholdsvis simple programmer eventuelt omfatter mange relationer imellem de enkelte programinstruktioner i et komplekst netværk som det ses af et simpelt eksempel med generel systemmodellering af en funktion til kopiering af en blok data fra en adresse til en anden i computerens lager.
Den matematisk graf baserede præsentation af den generelle systemmodel bliver således forholdsvis omfattende og kompleks, og generel systemmodellering af lavniveau programmer som matematisk graf baseret modellering med generelle systemmodelleringsværktøjer er dermed eventuelt ikke hensigtsmæssig. Omvendt viser den matematisk graf baserede repræsentation den reelle kompleksitet, der ellers skal udledes og håndteres mentalt af systemudviklerne.
De enkelt basale programinstruktioner for en computerprocessor kan defineres meget detaljeret og præcist med generelle type-instance relationer for ind- og uddata. Dette svarer til formel specifikation af præ og post betingelser og sådanne definitioner kan således også danne udgangspunkt for formel specifikation og verifikation af (dele af) det samlede system. For de overliggende niveauer af systemmodellen vil præ og post betingelser således automatisk kunne beregnes igennem aggregering af de basale programinstruktioners præ og post betingelser, og dermed kan systemmodellen analyseres for konsistens.
Detaljeret definition af Motorola 68000 processor TST maskinkode programinstruktionen.
(Test om værdien af en lagercelle er nul, positiv eller negativ og angiv resultatet i processorens dataregister flag.)
Det er således også muligt at repræsentere lavniveau program modellering som generelle systemmodeller ved hjælp af de generelle koncepter i én integreret systemmodel for alle systemudviklingsaktiviteter.
|