While in Moscow working with a client the topic of Model Driven Architecture (MDA) and SOA was discussed. The client's view is that MDA in many regards is more advanced than SOA. It is of course an interesting perspective but one I disagree. SOA is not in conflict nor does it compete with any software engineering best practices. Suggesting that one is more advanced than the other places a value judgment on the use of best practices which I don't think promotes their usage.
MDA supports model-driven engineering of software systems. and provides guidelines for structuring various specifications as models. MDA also promotes the use of a platform-independent model (PIM) using an appropriate domain-specific language which can be translated to one or more platform-specific models (PSMs).
SOA's contribution to software engineering is under hot debate and discussion but I assert one of its impacts is in the area of both how we capture business requirements and how those requirements are communicated from business to IT. The notion of a service requires that business no longer push functionality to IT which is housed in silo applications, the function oriented approach. Instead services become first class constructs where they represent an application has more granular reusable assets called services. This changes the software engineering approach in several ways. One notable way is in how many organizations do use cases which have a large amount of behavior of things that occur on the glass, the user interface.
The change in development approach is that the service would be identified prior to use case development and as part of either understanding the business process, its re-engineering or its optimization. Separate use cases would be developed to represent the business functionality needs of the service versus the user interface work flow and design. This will allow for improved separation of concerns down stream during design and development.
But the big point is that this is complimentary to MDA as SOA builds or adds to best practices it does not conflict.
MDA and SOA