Hvordan Konstruer en basisblokk i en kontrollflytgraf

Hvordan Konstruer en basisblokk i en kontrollflytgraf


Kontrollflyt diagrammer er en teknikk for å sikre at dataprogrammer fungere riktig. Computer kode er komplisert og jobbet og omarbeides før den er klar for endelig versjon. Det kan være kode som aldri vil bli utført, og det kan være kode som vil føre til looper som du kan aldri exit. Kontrollflyt diagrammer er en måte å finne dette dårlig kode. Først koden er brutt opp i kontrollblokker, da grafer - trær, egentlig - er konstruert for å sikre at hver blokk er tilgjengelig, og at ingen blokk looper uendelige.

Bruksanvisning

1 Navn alle kontrollblokker. En styreblokk er en del av koden - noen instruksjoner - som har en slik i og en vei ut. Et dataprogram er en sekvens av instruksjoner. Med mindre en instruksjon sier til "hoppe" til en annen instruksjon, vil den neste instruksjonen som skal utføres være den neste i rekken. En styreblokk starter fordi det er den første instruksjonen etter utløpet av en annen styreblokk, eller fordi det ble hoppet til. En kontrollblokk slutter når den hopper eller seksjonen er det i endene.

2 Tegne et tre fra begynnelsen av programmet til hver styreblokk i programmet. Hvis det er en styreblokk som ikke er i dette treet, bør den fjernes fra programmet. Det vil aldri løpe, så det er ikke nås fra startblokken. Før den er fjernet, bør du se om det tjener noen nyttig funksjon. Hvis ikke, fjerner du det. Hvis det gjør tjene en nyttig funksjon - og ingen andre koden gjør denne funksjonen - vurdere å holde blokken, men sørg for at det er tilgjengelig fra startblokken.

3 Konstruer et annet tre der roten er utgangsblokken av programmet og resten av treet er alle kontrollblokker. Hvis det er blokker som ikke er i dette treet, men var i forrige treet, disse blokkene kan nås fra startblokken, men fører ikke til utgangsblokken. Disse blokkene er steder hvor kontrollen kan sette seg fast. Som før, bør du sjekke disse blokkene for å se om de bør fjernes eller omskrives for å sikre at kontrollen kan gå ut fra dem.

Hint

  • CFG kan bli sterkt forenklet hvis programmet er skrevet i en samling av sidestørrelse eller mindre moduler. Dette er standard programmering praksis på de fleste språk. Med moduler, vil du bare trenger å trekke trærne i en modul om gangen. Når alle modulene er bekreftet, vil det bare være nødvendig å fastslå at kontrollflyt mellom moduler er lyd.
  • CFG fungerer mye bedre i noen språk enn i andre. Det fungerer best i prosessuelle språk som C, BASIC, Fortran og Matlab. Det er litt vanskeligere i funksjonelle språk som Lisp, Scheme og Lua. Det er helt ubrukelig i objektorientert språk som C ++ og Java.