Approccio basato sull'architettura basata su modelli nella programmazione / modellazione

1

Conosco le basi dell'architettura basata sul modello: è tutta una questione di modello del sistema che voglio creare e creare il codice base in seguito. Ho usato CORBA qualche tempo fa. La prima cosa che dovevo fare era creare un'interfaccia astratta (una sorta di modello del sistema che voglio costruire) e generare il codice di base più tardi.

Ma ho una domanda diversa: l'architettura model driven è un approccio ampio o no? Voglio dire, diciamo, che ho il linguaggio (linguaggio di modellazione) in cui voglio modellare il sistema ESISTENTE (opposto al sistema che voglio CREARE), e quindi analizzare il modello del sistema creato e fatti diversi su quell'astrazione modellata .

In questo caso, il processo che ho descritto sopra può essere considerato l'approccio dell'architettura model driven? Voglio dire, ho il modello, ma questo è il modello del sistema esistente, non il sistema da creare.

    
posta yak 30.04.2014 - 11:21
fonte

2 risposte

1

Non credo che il tuo approccio basato sull'analisi del modello sia utile fino a quando non desideri implementare il vecchio sistema.

Il vantaggio del model-driven-design è la creazione di un modello e il codice di base viene generato da esso se si dispone dei codegeneratori appropriati.

Ad esempio il hybris-shop-system è implementato in questo modo:

si crea un modello (un file xml) e uno schema di database, un codice di accesso al database java e una GUI per la manutenzione del negozio generata da quel modello.

Esempio:

Se aggiungi un nuovo attributo "lastOrderDate" al file di modello, ottieni il codice java / gui generato da esso.

puoi invertire il motore di un modello dal tuo modello di database esistente ma è abbastanza probabile che il codice generato corrispondente per businessmodell / databaseaccess / gui non sia compatibile con esso.

    
risposta data 30.06.2014 - 14:15
fonte
0

Le mie esperienze limitate sul tentativo di utilizzare la modellazione sul codice esistente non sono state molto soddisfacenti. Ho indicato uno strumento di "reverse engineering" in un programma Android abbastanza banale scritto in Java e il risultato è stato un pasticcio incomprensibile di scatole e relazioni di classe UML.

La mia ipotesi è che MDA potrebbe essere utile se ti venisse assegnato un nuovo codice legacy ... ad esempio prendi una sorta di app UNIX monolitica e la ristrutturerai in modo che alcune parti funzionino nel cloud, alcune su iOS e altre su Android. Puoi modellare i pezzi (ad un livello abbastanza alto!) Modellare le interazioni tra i pezzi e creare wrapper per blocchi di codice legacy che inseriresti in alcuni wrapper .. (?) Altri pezzi (per esempio iOS) potrebbero devono essere completamente re-implementati.

Tuttavia, se questo approccio funzionerebbe correttamente nella pratica o meno, dipenderebbe in larga misura dalle specifiche del compito in questione.

    
risposta data 01.05.2014 - 10:51
fonte

Leggi altre domande sui tag