Search the web
Sign In
New User? Sign Up
mda-discussion · Model Driven Architecture discussion
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Want to share photos of your group with the world? Add a group photo to Flickr.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Hurdles to MDA adoption   Message List  
Reply | Forward Message #993 of 1125 |
Re: [mda-discussion] Hurdles to MDA adoption

Responding to Arnel_periquet...

>Let me bounce off some observations I have regarding developer
>behavior in practice and why I believe developers, sometimes
>justifiably?, believe using models "in their head" and "on paper"
>along with conventional IDE tools provides an advantage over MDD.
>
>For example, experienced developer behavior can often overcome the
>proposed advantages of MDD. Here's a list of some MDD advantages and
>conventional developer behavior:
>- model execution <==> source level debuggers
>- code generation <==> initial development
>- design exploration <==> collaborative whiteboard
>
>Model execution is useful for understanding domain element
>interactions abstractly, e.g. how file formats, decoders, cameras and
>audio/video renderers typically interact in multi-media systems.
>After developers learn the domain, they map the implementation to it
>mentally while stepping through code. If more formalization is
>needed, UML diagrams are formalized and their system constraints are
>tracked. The process relies on developer experience and
>communication. Albeit, turnover of developers experienced with the
>code base and non-conformance to system constraints and architecture
>can cause problems. On the whole, however, process checks exist to
>keep rapidly changing constraints and general maintenance violations
>in check. - It seems like domain knowledge isn't so much the
>advantage of automation, as is the mapping knowledge from domain
>concepts to how they are commonly implemented and maintained. It
>would be nice if the models "teach us" the mapping as well as the
>domain, but marks seems to hide the former. Is this a valid concern
>and how is it addressed?
>
>

One problem here is that stepping through the code is employing a
representation that is an order of magnitude less compact that an OOA/D
model. In addition, the code addresses many different concerns at the
same time (e.g., both functional and nonfunctional requirements
resolution is mixed together by the time one gets to OOP). But the big
problem is the level of abstraction. The advantage of dealing with the
design in an OOA/D model is that one is not distracted by the details of
implementation like language vagaries, particular technologies (SOAP,
CORBA, etc.), and techniques (collection class libraries, refactoring to
reduce the physical coupling of 3GLs). Those details constitute most of
the order of magnitude difference in compaction.

I would also point out that an OOA/D model is supposed to be a complete,
precise, and unambiguous specification of what the software
implementation must do. So there shouldn't be a need for more
formalization and the models aren't teaching anything because they /are/
the solution. It is that rigor that allows model level simulation to
validate that the design has satisfied the functional requirements prior
to committing to code.

Bottom line: I think the point of MDD is that one doesn't have to step
through the code to figure out what it is doing or to validate its
correctness with respect to functional requirements. IOW, the big gain
is not dealing with 3GL code. [As a translationist, I doubt I have
written 10 KLOC of 3GL code in total since 1990. I also regard a 3GL
debugger like MS VC/C++ pretty much the same way a C/C++ programmer
regards an assembly debugger -- life is simply too short for that.]

>Code generation that takes 5 minutes versus 3 days of manual coding
>is an advantage of only fixed cost. The real cost is in program
>maintenance. - How does the MDA address maintenance concernces, I
>mean, other than re-generation? Are there techniques for exposing
>design actions that map to program manipulation?
>
>

I would have to argue that the main advantage of MDD code generation is
that one /can/ re-generate the code rather than mucking with it at the
3GL level. That ensures that the OOA/D models are always in synch with
the actual code and it removes the need for worrying about things like
maintainability refactoring. [I know one translation vendor who
deliberately makes the generated code difficult to read to prevent
people from making changes to it rather than the model.]

However, MDA does support round-trip development by providing a semantic
framework with meta models so that tool vendors can provide reverse
engineering of code changes back into the models. Unfortunately that is
inherently limited because design information about Why things were done
the way they were is lost by the time one gets to 3GL code. That's
because there tends to be a *:* relationship between OOA/D model
artifacts and the OOP implementation mechanisms. So working backwards
from 3GL code tends to be ambiguous. IOW, reverse engineering provides a
model of the code rather than a model of the design.

>Finally, exploring design alternatives with models instead of code is
>a seemingly decided advantage with MDD. However, design exploration
>is often a collaborative process involving mutiple experts and
>stakeholders, e.g. product manager, project managers, architects,
>designers and testers. The input from various levels should be staged
>according to adopted process, e.g. agile. This could provide one
>explanation of the use of whiteboarding and conference calls over the
>adoption of MDD tools at the system architecture level. - Do MDA
>tools directly address collaboration?
>
>

I think this is a quite different issue. It is about how one defines
requirements. Product managers, end users, and SQA people are not going
to be looking at either 3GL code or OOA/D models, so it really doesn't
matter how the developers express their solution design.

One thing to note is that UML combined with a compliant abstract action
language is a 4GL. IOW, when one is creating an MDD model one is
programming in the same sense that 3GL programmers do; it is just at a
higher level of abstraction and resolving nonfunctional requirements has
been delegated to a different trade union (the transformation engine
tool vendors). That has two important implications here. The first is
that one still needs requirements prior to programming and the shop
needs a process for defining them and managing changes to them. How
formal or informal that process is depends upon the shop's culture, not
whether one is programming in a 3GL or 4GL.

The second point is that agile techniques can be applied to 4GL
development in much the same way they are applied to OOP development.
(There is a paper on the Pathfinder web site that describes how XP's
practices map into translation-based MDD development.)


*************
There is nothing wrong with me that could
not be cured by a capful of Drano.

H. S. Lahman
hsl@...
Pathfinder Solutions
http://www.pathfindermda.com
blog: http://pathfinderpeople.blogs.com/hslahman
"Model-Based Translation: The Next Step in Agile Development". Email
info@... for your copy.
Pathfinder is hiring: http://www.pathfindermda.com/about_us/careers_pos3.php.
(888)OOA-PATH









Tue Nov 13, 2007 4:56 pm

H.S.Lahman
Offline Offline
Send Email Send Email

Forward
Message #993 of 1125 |
Expand Messages Author Sort by Date

Hi, I'm examining various model driven approaches and their applicability to organizations that have a commitment to existing open-source OO frameworks they...
arnel_periquet
Offline Send Email
Nov 12, 2007
8:55 pm

Responding to Arnel_periquet... ... One problem here is that stepping through the code is employing a representation that is an order of magnitude less compact...
H. S Lahman
H.S.Lahman
Offline Send Email
Nov 13, 2007
4:57 pm

... unambiguous specification of what the software implementation must do. So there shouldn't be a need for more formalization and the models aren't teaching...
arnel_periquet
Offline Send Email
Nov 13, 2007
9:12 pm

Responding to Arnel_periquet... ... Hmm. Unfortunately I see the role of frameworks -- either for development tools or in the customer domain -- to be...
H. S Lahman
H.S.Lahman
Offline Send Email
Nov 14, 2007
4:14 pm

... likely ... I think I understand how the approaches mirror at different abstraction levels. You're take is that you either go 4G with an optimized model...
arnel_periquet
Offline Send Email
Nov 14, 2007
7:46 pm

Responding to Arnel_periquet... ... The OOP-based agile processes are not the only game in town at the 3GL level, so the OR to 4GL development is broader. I...
H. S Lahman
H.S.Lahman
Offline Send Email
Nov 15, 2007
9:56 pm

... where ... MDD ... selected ... new ... capitalize ... hi Arnel, Are the existing frameworks successful? Do they get the job done adequately, and are people...
Srinivas Nedunuri
s_nedunuri
Offline Send Email
Nov 16, 2007
5:43 pm

Hi Srinivas, ... I'm personally part of the Series 60 Multimedia team with Nokia. We develop a platform offering for the mobile phones market based on the ...
arnel_periquet
Offline Send Email
Nov 18, 2007
3:47 am

... <Arnel.Periquet@...> wrote: I see that your are looking different kind of frameworks here: the other is more domain-specific and tied with specific OS,...
Juha-Pekka Tolvanen
jpt_mcc
Offline Send Email
Apr 2, 2008
8:10 am

Thanks Juha-Pekka! I'll definitely have a look. -Arnel ________________________________ From: mda-discussion@yahoogroups.com ...
Arnel.Periquet@...
arnel_periquet
Offline Send Email
Apr 4, 2008
4:24 pm

Hi Arnel, ... commitment to their frameworks. In some cases, the frameworks _are_ the business which means the non-functional part of the work is where much of...
Jorn Bettin
jorn_bettin
Offline Send Email
Nov 13, 2007
10:08 pm

Hi I have a question (vaguely related to this thread): What is the difference between a "Programming Language" (such as C++) and an "Executable Modelling...
Ashley at Metamaxim
keplervic
Offline Send Email
Nov 13, 2007
10:58 pm

Responding to Ashley... ... I think they are all programming languages (as was BAL) if one uses a sufficiently general definition of 'programming language'....
H. S Lahman
H.S.Lahman
Offline Send Email
Nov 14, 2007
4:32 pm

I appreciate your insight, Jorn. Let me refocus the "hurdles" to a couple more issues: (1) templates and transformation is meta-programming which may be a ...
arnel_periquet
Offline Send Email
Nov 14, 2007
5:25 pm

Responding to Arnel_periquet... ... Templates are implementation mechanisms. For example, the templates used in PathMATE are exposed to the customer and they...
H. S Lahman
H.S.Lahman
Offline Send Email
Nov 16, 2007
12:34 am

Hi Arnel, ... tough transition for traditional framework developers The difficult part of the learning curve is the mind shift required by framework...
Jorn Bettin
jorn_bettin
Offline Send Email
Nov 16, 2007
10:21 am

To H.S. Lahman and Jorn Bettin: Thanks very much for the insight and discussion. I really appreciate your helpful advice. For the benefit of this forum, here's...
arnel_periquet
Offline Send Email
Nov 19, 2007
11:01 pm

Responding to Arnel_periquet... ... Qualification: in a translation environment with full code generation the templates/transformations are provided by the...
H. S Lahman
H.S.Lahman
Offline Send Email
Nov 20, 2007
4:05 pm
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help