Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az alkalmazás részeit létrehozhatja vagy konfigurálhatja egy modellből.
A modell a követelményeket közvetlenül a kódnál jobban képviseli. Ha közvetlenül a modellből származtatja az alkalmazás viselkedését, sokkal gyorsabban és megbízhatóbban reagálhat a megváltozott követelményekre, mint a kód frissítésével. Bár a származtatás beállításához némi kezdeti munka szükséges, ezt a befektetést akkor kapja vissza a rendszer, ha a követelmények változása várható, vagy ha a termék több változatának készítését tervezi.
Az alkalmazás kódjának létrehozása modellből
A kód létrehozásának legegyszerűbb módja a szövegsablonok használata. A kódot ugyanabban a Visual Studio-megoldásban hozhatja létre, amelyben megtartja a modellt. További információkért lásd:
Kód létrehozása Domain-Specific nyelvről
Ez a módszer egyszerűen alkalmazható növekményesen. Kezdje egy olyan alkalmazással, amely csak egy adott esethez működik, és válasszon ki néhány olyan részt, amelyet a modelltől eltérően szeretne használni. Nevezze át ezeknek a részeknek a forrásfájljait úgy, hogy szövegsablonok (.tt) fájlokká váljanak. Ezen a ponton a forrás .cs fájlok automatikusan létrejönnek a sablonfájlokból, így az alkalmazás ugyanúgy fog működni, mint korábban.
Ezután elvégezheti a kód egy részét, és lecserélheti egy szövegsablon-kifejezésre, amely beolvassa a modellt, és létrehozza a forrásfájl ezen részét. A modell legalább egy értékének létre kell hoznia az eredeti forrást, hogy ismét futtathassa az alkalmazást, és a korábbiakhoz hasonlóan működjön. A különböző modellértékek tesztelése után továbbléphet a sablonkifejezések beszúrására a kód egy másik részében.
Ez a növekményes módszer azt jelenti, hogy a kódlétrehozás általában alacsony kockázatú megközelítés. Az eredményül kapott alkalmazások általában szinte ugyanúgy működnek, mint egy kézzel írt verzió.
Ha azonban egy meglévő alkalmazással kezd, előfordulhat, hogy sok újrabontásra van szükség a modell által szabályozott különböző viselkedések elkülönítéséhez, hogy egymástól függetlenül eltérőek legyenek. Javasoljuk, hogy értékelje az alkalmazás ezen aspektusát, amikor megbecsüli a projekt költségeit.
Az alkalmazás konfigurálása modellből
Ha az alkalmazás működését futásidőben szeretné eltéríteni, nem használhat kódgenerálást, amely forráskódot hoz létre az alkalmazás fordítása előtt. Ehelyett úgy tervezheti meg az alkalmazást, hogy elolvassa a modellt, és ennek megfelelően változtatja annak viselkedését. További információkért lásd:
Útmutató: Modell megnyitása fájlból a Program Code-ban
Ez a módszer növekményesen is alkalmazható, de az elején több munka van. Meg kell írnia a modellt beolvasni kívánt kódot, és be kell állítania egy keretrendszert, amely lehetővé teszi, hogy az értékei elérhetők legyenek a változó részek számára. A változórészek általánossá tétele drágább, mint a kódgenerálás.
Az általános alkalmazások általában kevésbé jól teljesítenek, mint az adott társaik. Ha a teljesítmény kritikus fontosságú, a projekttervnek tartalmaznia kell ennek a kockázatnak a értékelését.
Származtatott alkalmazás fejlesztése
Hasznosnak találhatja az alábbi általános irányelveket.
Kezdjen konkrétan, majd általánosítsa. Először írja meg az alkalmazás egy adott verzióját. Ennek a verziónak egy feltételkészletben kell működnie. Ha meggyőződik arról, hogy megfelelően működik, készíthet belőle néhányat egy modellből. Fokozatosan bővítse ki a származtatott részeket.
Tervezzen például egy olyan webhelyet, amely egy adott weblapkészlettel rendelkezik, mielőtt olyan webalkalmazást tervez, amely egy modellben definiált lapokat jelenít meg.
Modellezheti a variációs szempontokat. Azonosítsa azokat a szempontokat, amelyek az üzembe helyezés és a másik üzembe helyezés között, illetve a követelmények változásakor idővel eltérőek lesznek. Ezek azok a szempontok, amelyeket egy modellből kell származtatnia.
Ha például a weblapok és a köztük lévő hivatkozások halmaza megváltozik, de a lapok stílusa és formátuma mindig ugyanaz, akkor a modellnek le kell írnia a hivatkozásokat, de nem kell leírnia a lapok formátumát.
Külön aggályokat. Ha a változó aspektusai független területekre oszthatók, minden területhez használjon külön modelleket. A ModelBus használatával olyan műveleteket határozhat meg, amelyek hatással vannak a modellekre és a köztük fennálló korlátozásokra.
Például egy modellel definiálhatja a weblapok közötti navigációt egy másik modellel a lapok elrendezésének meghatározásához.
Modellezd a követelményt, ne a megoldást. Úgy tervezheti meg a modellt, hogy az a felhasználói követelményeket írja le. Ezzel szemben ne a megvalósítás változó szempontjainak megfelelően tervezd meg a jelölést.
A webes navigációs modellnek például weblapokat és közöttük lévő hivatkozásokat kell ábrázolnia. A webes navigációs modell nem jelölhet HTML- vagy osztálytöredékeket az alkalmazásban.
Generál vagy értelmez? Ha egy adott üzembe helyezés követelményei ritkán változnak, hozzon létre programkódot a modellből. Ha a követelmények gyakran változnak, vagy több változatban is léteznek ugyanabban az üzembe helyezésben, írja be az alkalmazást, hogy elolvashassa és értelmezhesse a modellt.
Ha például a webhelymodellt különböző és külön telepített webhelyek sorozatának fejlesztésére használja, akkor a modellből kell létrehoznia a webhely kódját. A modell használatával azonban szabályozhatja a naponta változó webhelyeket, így jobb, ha olyan webkiszolgálót ír, amely beolvassa a modellt, és ennek megfelelően mutatja be a webhelyet.
UML vagy DSL? Fontolja meg a modellezési jelölés létrehozását sztereotípusok használatával az UML kiterjesztése érdekében. Definiáljon DSL-t, ha nincs a célnak megfelelő UML-diagram. De ne törje meg az UML szabványos szemantikáját.
Az UML-osztálydiagram például dobozok és nyilak gyűjteménye; ezzel a jelöléssel elméletileg bármit meghatározhat. De nem javasoljuk, hogy az osztálydiagramot használja, kivéve, ha valójában egy típuskészletet ír le. Módosíthatja például az osztálydiagramokat a különböző típusú weblapok leírásához.