Rapid Development of Custom Software Architecture Design ...
Rapid Development of Custom Software Architecture Design ...
Rapid Development of Custom Software Architecture Design ...
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));};