The Model Driven Software Network

Raise your level of abstraction

MDD and software architecture - where do they meet, and where do they collide?

I'm preparing a presentation on MDD and software architecture, and on where they complement each other or get in each other's way. This in the broadest sense: not only on technical level, but also where processes and organisation are involved. Also, I'm looking for broader experiences than just 'yeah, domain driven design works for both'.

I have my own experience, but would love to include some references to other peoples' as well.

This is for a seminar in the Netherlands, end of March, but could provide some input for a (brief) lightning talk at Code Generation 2010. Those who want to will be mentioned by name in either case.

Views: 74

Reply to This

Replies to This Discussion

Hi Angelo

I think MDD needs SA. This is an important point people often forget. They think with MDD everything is fine. It is not. You still need a clean architecture and the Model needs to conform to the architecture.

OTOH in my experience a SA most of the time gets cleaner if the software is done via MDD. The probability to violate the architecture is much less, because most artefacts are generated and hence conform to the initial Model (which should conform to the SA as mentioned above).

Also I often use Models (Architecture Models) to verify the SA of software which is NOT developed via MDD. This is very efficient and you can easily spot violations (e.g. deviation of the is and should architecture). I can contribute concrete examples in this area if you like :-)

IMO they do not really collide. I think more they complete each other :-)

kind regards,
Very nice topic Angelo! I fully agree with Bernhard comments.

Moreover, MDD provides an exceptional way of really evolve your Software Architecture (SA) using a super-sonic speed.

1. First SA version and firsts applications must be built manually to fully understand the domain.
But after that, SA can be evolved quite fast supporting the applications with a MDD layer.

Example: you can create two o more versions of the SA (design/architectural choices) and test them generating with your real business problem, measuring and compare results in terms of performance, scalability, or any other properties you are interested in.

2. For my experience in consulting, and having many different customers: each of them has its tailored Software Architectures and inhouse standards. MDD provides real economies of scope when deriving code for different customers and architectures based from common metamodels (languages).

3. Taking these ideas in mind, and putting them in to practice: MDD is like first-class heavy weapon that every Software Architect should be considering to mastering a soon as possible. }:)

Pedro J.
My simple and quick take on this subject:

SA = MDD done without a formal specification
Thanks so much gentlemen. We're aligned as far as the conclusion goes - still looking for a few examples of failures like realizing too late that an architecture was still needed.

@Rui: not sure I fully understand that one - If I use a DSL based approach, I can do MDD without formal models and still have SA, unless you have a less mathematical definition of formal than some others.




© 2019   Created by Mark Dalgarno.   Powered by

Badges  |  Report an Issue  |  Terms of Service