2003:27 - Karlstads universitet
2003:27 - Karlstads universitet
2003:27 - Karlstads universitet
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
tid<br />
modul T modul S<br />
Figur 3.2 En modul vidareutvecklas över tid<br />
Vid en analys av ARR avslöjas dock att relationen mellan eftervillkor är onödigt restriktiv och<br />
det här kommer att illustreras med hjälp av två exempel. I första exemplet, se Figur 3.3,<br />
representeras en modul T av f ( x)<br />
= x . Under förutsättning att förvillkoret för metod mT i<br />
modul T i Figur 3.3 är uppfyllt kan modulen beräkna ett positivt värde för f ( x)<br />
inom en viss<br />
felmarginal ε . En modul S ska ärva av T och i villkoren för S inkluderas därför villkoren för<br />
modul T före S:s egna villkor. Se Figur 3.3 för villkor.<br />
Modul T:<br />
pre x ≥ 0<br />
2<br />
post result − x < ε ∧ result ≥ 0<br />
Modul S:<br />
pre x ≥ 0 ∨ x < 0<br />
result ε ∧ ( x < 0 result = −1)<br />
2<br />
post ( − x < ∧ result ≥ 0)<br />
Figur 3.3 Villkoren för modul T inkluderas i respektive villkor för modul S<br />
Observera att i förvillkoret för modul S vid arv, så gäller det egna villkoret eller det för modul<br />
T. Det betyder i det här första exemplet att modul S alltid kan anropas oberoende av värde på<br />
x och här gäller relationen pre T preS<br />
. Förvillkoret för S anger här att x kan vara större än<br />
eller lika med noll, eller så kan x vara mindre än noll. Här är pre T starkare än pre S , eftersom<br />
om pre T är uppfyllt så är också pre S uppfyllt. Däremot gäller inte relationen<br />
post post . För eftervillkoret så gäller att det ”egna” eftervillkoret för modul S ska gälla<br />
S<br />
T<br />
12