The Model Driven Software Network

Raise your level of abstraction

Beginners Tutorials for Model Driven Software

I am currently studying to become a Business Analyst with a subsidiary skill as a Data Analyst. I am an obsolete programmer who is slowly re-tooling into web development (Expression Web/Visual Studio Web Development Express). I am mostly interested in Xhtml, CSS, JavaScript, Sql and C#. I have Visio 2003 as well is MS Office 2002 with Access. My training program will include UML, Use Cases, MS Sql 2008 Express, Entity Relationship Diagrams and other stuff I am clueless about.

I have Eclipse Ganymede installed.

I am completely clueless about how to get started in Model Driven Software. Does anyone one have some primer level URLs, especially that provide context as well as step-by-step for Eclipse Ganymede?

Views: 1310

Reply to This

Replies to This Discussion

Hi Tom,
Welcome to MDD...Maybe I shared with you the same path to this paradigm, even starting earlier...
Perhaps a little on MDA would give you a reasonable starting point. Most of our conversations are MDA based, and most of diverse ways to face MDD are enhancements of reactions to MDA.
From this point of view, the better source of knowledge is the OMG itself. Let me point to some sites:
OMG have some useful papers at http://www.omg.org/mda/presentations.htm
There are a MDA site at http://www.omg.org/mda/
Almost any MDD/MDA product offers some kind of tutorial, like AndroMDA.
IBM/Rational have papers and tutorials on MDD/MDA, like the brief introduction from Alan Brown.
Moving to DSL tools, as soon as you have a vision on relations and differences between MDA/DSLs, Metacase have some useful papers
introducing the idea.
If you want to navigate on resources, take a look at my del.icio.us links on MDD and MDA.
Thank you Jorge, this is the kind of thing I was looking for. Search engines can only do so much. You have to know what your looking for!
Errata: When I said "and most of diverse ways to face MDD are enhancements of reactions to MDA", I want to say "enhancements or reactions"
It looks like AndroMDA needs a copy of the Apache Webserver to be running. Right?
It is clear that my BA coursework will include learning UML because I was told to buy "UML for the IT Business Analyst" by Howard Podeswa. This book includes references to "Rational Rose" which is nice but not in my price range :)

I was able to locate an older copy of MS Visio 2003 for a modest price ($53USD). I bought it because it seems to come up regularly in some of other the BA materials (including www.modernanalyst.com and "Seven Steps to Mastering Business Analysis") I have been reviewing. I have downloaded someone's UML 2.2 stencils for it.

I have noticed in the tutorial for "AndroMDA" the specifics recommend a UML diagramming program that produces v 1.4 and makes XMI format available to export the results.

No matter what, I have to master at least some UML and at least 1 uml tool probably more than one if I want to play with the AndroMDA setup.
If you want to experiment full code generation from models (having models as source rather than code) you might be interested to download trial version of MetaEdit+ from http://www.metacase.com. The package provides two concrete tutorials on familiar domains as well as other examples (mobile phone, telecom, automotive etc) on MDD. You may then create a model and work with high-level constructs and generate the code in Java, C, Assembler, Python, C++ and so on depending on the case.
I vaguely remember reading someplace a while ago about the idea of "executing the model" instead of creating/compiling source code from the model. While I can understand the attractiveness of wanting to execute the model, I remember the discussion mentioning that then specific optimization tweaks and customization wouldn't be possible.

Thank you for the resource link.

Tom
Model Driven Software Development not necessarily means that models are made with UML. openArchitectureWare is a framework used often for Model Driven Software Development. You can use UML models with it, best with EMF UML2 models. EMF UML2 is supported by many of current UML2 tools, also free ones, but not Visio. openArchitectureWare is based on Eclipse Modeling technologies and can be downloaded for free. Tutorials in the Reference Manual give a step-by-step guide to get started with MDSD based on EMF based models. The Xtext Tutorial gives you an impression how MDSD with textual Domain Specific Languages is realized. Also explained in the manual is how to use with UML2 based models. Some open source projects, e.g. the Fornax Platform, provide cartridges for this framework.
Hi Tom,

Welcome to an exciting world! As you'll already have guessed it's a very diverse field and it would be easy to get swamped. I'd suggest in the first place you do some prioritisation based on what you're expecting to do:
- I'd expect a typical "Business Analyst" to be more focused on requirements specification than realising them in specific technologies
- however you also seem to be heavily involved in the technologies used to realise the systems, so maybe you need to cover this too.

MDD can be very roughly split into those same categories:
- the "Modelling Languages" - such as UML - apply principally in the "Analysis" space, i.e. describing the problem domain and desired features
- the "generation tools" - such as OpenArchitectureWare and AndroMDA - apply principally in the mapping of analysis models onto underlying technology to realise target systems.

I stress that's an approximation, and it's not quite that simple. But it's a good place to start. On that basis, I'd recommend the following:

- Get a really good grounding in core analysis - describing the problem. IMO there's far too much writing that conflates the two. Being able to describe the problem space accurately, efficiently and intuitively is a fundamental skill for any BA, irrespective of the description language (UML, informal diagrams, text, ...). To that end I'd strongly recommend Leon Starr's writings, in particular his book How to Build Class Models. It's discussed in the context of "Executable UML", but don't worry about that - it's a great tutorial in looking critically and analytically at problems. Have a dig about his website too, he has some great articles and is an excellent writer. The good thing is you can do all this on paper - no tools required.

- If you need to cover translating the models into systems too (and it's a good idea to get an appreciation, even if you're not going to do it in anger) then I'd make a couple of suggestions:

- Gorillalogic have a neat little tool that will generate simple but fully functional web based apps directly from UML models. The resulting systems are just prototypes, and limited in many ways. But it's a great way to see the tangible results of your model. It fully supports behavioural specifications, not just class diagrams, so you can build and execute state models, put in constraints, etc. I'd recommend using it with Magicdraw as the modelling tool - it works well and they have a free community edition available.

- if you want to get into actually constructing the mappings from model to technology, look at OpenArchitectureWare. It's a first class toolkit, there's good resources available, has good tooling, and also works well with MagicDraw.

Other than that I'd recommend just getting some practice. And come back here regularly to ask questions. As with most things, there's no substitute for experience. But if I had a parting recommendation, I'd go back to the modelling: learning how to abstract the problem domain into well-structured, intuitive descriptions - in UML, a DSL, or whatever - is I believe the most fundamental and important skill. To steal the hifi analogy, "garbage in, garbage out". A bad model will result in a bad system irrespective of the mappings or underlying technology.

Hope that helps - and good luck.

- Scott.
Tom, I think the network would also be interested in your learning experience.

Many of us have been working in this field for a while and we're maybe less aware of the beginner's perceptions and experience than we should be.
I want to thank everyone for both there information and encouragement. I still create my own websites, sometimes for money, so yes, I am both learning to be more of an "analyst" and I still do some programming.

All of you are right. The reason I am posting and participating here is I couldn't get a handle on where to actually start in model driven development. I will certainly take a look at "gorillaware" because my chief interest is websites. I don't remember if there is an easy URL back to my main business website so here it is: Blue Collar Consulting Services It should help you see ("more or less") where I am at and where I am trying to go.

I am both watching my course videos and "booking along" in the related books that my teachers have had me buy. This is a block of time (next 4-6 months) I have allocated to try to make a fulltime career shift back into the IT field. Otherwise I get to perform blue collar labor (truck driving) till I can't work anymore :(
Its funny, I've been involved in MDSD for several years now and even I still feel like a beginner at times! My advice would be to start off with something like an Xtext project in OAW and generate some code from it (pretty elegant and relatively simple to do within a day or two I think). Then progress to UML2 diagrams (mainly just the class, component and activity diagrams), profile creation and code generation perhaps using something like MOFScript...

I guess a lot depends on what you want to generate from UML too...

RSS

Badge

Loading…

© 2014   Created by Mark Dalgarno.   Powered by

Badges  |  Report an Issue  |  Terms of Service