2003:27 - Karlstads universitet
2003:27 - Karlstads universitet
2003:27 - Karlstads universitet
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
En modul m är en modul (här i meningen subtyp) av en annan modul n endast om varje metod<br />
som tillhör modul n även tillhör m, se Figur 2.1.<br />
m<br />
Figur 2.1 En modul m är en modul av en annnan modul n endast om varje metod som<br />
tillhör modul n även tillhör m<br />
Vidare bör läsaren förstå innebörden av vad som sker med en modul när en av dess<br />
operationer förändras. När en operation förändras medför det att dess modul definieras om.<br />
Eftersom en modul definierar en typ så definieras även en ny typ och det är därför som det är<br />
intressant att diskutera subtyper. Däremot kan en operations metod förändras utan att varken<br />
operationen förändras eller modulen måste definieras om. För övrigt kan en modul också<br />
befinna sig i olika tillstånd. Egentligen oändligt många tillstånd eftersom en modul kan ha<br />
olika metoder. Ett tillstånd kännetecknas som en fas i implementationen.<br />
2.3 Förvillkor och eftervillkor<br />
Ett speciellt viktigt begrepp i den här uppsatsen är villkor. De två villkor som används är för-<br />
och eftervillkor, precondition respektive postcondition, varav här oftast används<br />
förkortningarna pre respektive post. En metod har två villkor och med ett förvillkor menas<br />
det villkor som måste vara uppfyllt före anrop till metoden. Ett eftervillkor är det villkor som<br />
skall vara uppfyllt efter exekveringen av metoden. En metod kan till exempel kräva som<br />
förvillkor att en variabel x ska vara större än eller lika med ett. En klient måste då uppfylla:<br />
pre x ≥1.<br />
Under förutsättning att klienten uppfyller förvillkoret, garanterar metoden i sin tur<br />
att eftervillkoret x > 10 kommer att uppfyllas. Eftervillkoret för metoden är då: post x > 10 .<br />
För att hålla isär förvillkor från eftervillkor, villkor för en metod från en annnan metod, är det<br />
nödvändigt att använda index. Vanligast i uppsatsen är att pre för T, skrivs som<br />
6<br />
n<br />
m<br />
pre T , där m