09.09.2013 Views

2003:27 - Karlstads universitet

2003:27 - Karlstads universitet

2003:27 - Karlstads universitet

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!