08.07.2015 Views

Rapid Development of Custom Software Architecture Design ...

Rapid Development of Custom Software Architecture Design ...

Rapid Development of Custom Software Architecture Design ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

6\VWHPLQVWDQFHVPD\PDNHXVHRI WKHGHVLJQYRFDEXODU\DQGDQDO\VHVSDFNDJHGLQDVW\OHE\GHFODULQJ WKDW WKH V\VWHP VDWLVILHV D VW\OH 7KH V\QWD[ IRU GHFODULQJ WKDW D V\VWHP LQVWDQFHVDWLVILHVDVW\OHLVDQDORJRXVWRGHFODULQJWKDWDGHVLJQHOHPHQWVDWLVILHVDQHOHPHQWW\SHSystem : = { } ;:KHQDV\VWHPLQVWDQFHGHFODUHVWKDWLWLVGHVLJQHGLQDVSHFLILFVW\OHWKHQDPHVRI DOORI WKHW\SHVDQGGHVLJQDQDO\VHVGHFODUHGLQWKDWVW\OHDUHYLVLEOHZLWKLQWKHV\VWHPLQVWDQFH)XUWKHUDOORI WKHGHVLJQUXOHVFRQWDLQHGLQWKHVW\OHGHILQLWLRQPXVWKROGRYHUWKHV\VWHPLQVWDQFH7KDWLVWKHGHVLJQUXOHVLQWKHVW\OHGHILQLWLRQWDNHHIIHFWLQWKHVFRSHRI WKHV\VWHPLQVWDQFHELQGLQJWKHFRQFUHWHHOHPHQWVLQWKHV\VWHPLQVWDQFHWRWKHDSSURSULDWHDEVWUDFWGHVLJQUXOHVRI WKHVW\OH'HFODULQJWKDWDV\VWHPLVGHVLJQHGLQDVSHFLILFVW\OHLQGLFDWHVWKDWWKHGHVLJQUXOHVGHFODUHGLQWKDWVW\OHPXVWEHPDLQWDLQHGLQWKHV\VWHPLQVWDQFH)DLOXUHWRVDWLVI\WKHVHFRQVWUDLQWVFRQVWLWXWHVDW\SHHUURU7KHVHWRI W\SHVSHFLILFDWLRQVJLYHQLQDVW\OHGHFODUDWLRQSURYLGHYRFDEXODU\HOHPHQWVWKDWFDQEHXVHGZLWKLQV\VWHPVSHFLILFDWLRQVLQWKDWVW\OH7KHV\VWHPGHILQLWLRQLVQRWKRZHYHUOLPLWHG WR XVLQJ RQO\ WKH W\SHV SURYLGHG E\ WKH VW\OH XQOHVV WKHUH LV D GHVLJQ UXOH WKDWH[SOLFLWO\OLPLWVWKHW\SHVRI YRFDEXODU\WKDWFDQEHXVHG'HVLJQHOHPHQWVZLWKLQWKHV\VWHPLQVWDQFH WKDW FODLP WR VDWLVI\ D W\SH GHILQHG LQ WKH VW\OH PXVW KRZHYHU VDWLVI\ WKH W\SHSUHGLFDWHJLYHQLQWKHVW\OHGHILQLWLRQ,QVWDQWLDWLQJVW\OHLQVWDQFHV7KH QHZ RSHUDWRU GHILQHG HDUOLHU LQ WKLV FKDSWHU IRU FUHDWLQJ PLQLPDO LQVWDQFHV RI VLPSOHHOHPHQW W\SHV FDQ DOVR EH XVHG ZLWK VW\OHV WR FUHDWH V\VWHPV ZLWK WKH PLQLPDO UHTXLUHGVWUXFWXUHWRVDWLVI\WKHVW\OHVSHFLILFDWLRQ$VZLWKVLPSOHHOHPHQWW\SHVWKHH[WHQGHGZLWKFRQVWUXFWFDQEHXVHGWRH[WHQGWKHPLQLPDOVWUXFWXUHSURYLGHGE\QHZDQGFXVWRPL]HWKHFUHDWHGV\VWHP7KHEDVLFV\QWD[IRUFUHDWLQJDQHZPLQLPDOLQVWDQFHRI DVW\OHIROORZVSystem : = new [ extended with {…} ] ;7KHVHPDQWLFVIRUXVLQJWKHQHZRSHUDWRUZLWKV\VWHPVDUHDQDODJRXVWRWKHVHPDQWLFVIRUXVLQJQHZZLWKVLPSOHHOHPHQWW\SHV6XEVW\OHV%HFDXVHWKHVW\OHFRQVWUXFWLVEDVHGRQ$UPDQLVHOHPHQWW\SHFRQVWUXFWVWKHW\SHV\VWHPVQRWLRQRI VXEW\SLQJH[WHQGVWRVW\OHVDVZHOO8VLQJWKLVVXEW\SLQJQRWLRQDVW\OHFDQH[WHQGDQH[LVWLQJVW\OHWRPDNHXVHRI WKHW\SHVDQGGHVLJQUXOHVGHILQHGLQWKHH[LVWLQJVW\OH7KHH[LVWLQJVW\OHEHFRPHVWKHVXSHUVW\OHDQGWKHQHZO\GHILQHGVW\OHLVWKHVXEVW\OH7KHIROORZLQJH[DPSOHLOOXVWUDWHVVXFKDQH[WHQVLRQStyle super = { ... };Style sub extends super withComponent type new-component = { ... };Invariant forall x in self.components • foo(x));};

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

Saved successfully!

Ooh no, something went wrong!