The Model Driven Software Network

Raise your level of abstraction

Tom Miller

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?

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.

Reply to This

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!

Reply to This

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"

Reply to This

It looks like AndroMDA needs a copy of the Apache Webserver to be running. Right?

Reply to This

You have many different cartridges and to run the generate code requires a server. I think that you don't need today AndroMDA because even if this excellent project it is getting older and really very very few new companies are launching new project on this framework today. Even if I don't like them I think that Microsoft and Rational IBM are always good learning investments because market leaders.
Good luck in your personal project and may god help you because after such courageous posts you deserve it.

Reply to This

I think that you need to be able to create UML diagrams. You have many different ways of modeling but only UML diagrams are widely used inside many companies. UML is a secure investment if you look to start a new career as a business analyst.

Don't spend time on technology at this stage because all tools produce diagrams and there is no real value today on the employment market. What is important as a business analyst if you want to immediately find a job is to know what and how to create UML diagrams which will be the documentation start of a new project.
Eclipse Ganymede provides many modeling projects but these projects are only used by a small community and are targeting the early adopter market. You will not therefore be able to find any job if you learn EMF, GEF or GMF because very few companies are really using these technologies today.
Many companies are using Eclipse and UML but certainly not all these modeling plugins !!

Once you have this UML modeling knowledge then you can have a look at technologies. In my experience you have many jobs today for adding new services on legacy systems. You should therefore decide if your modeling self teaching should be a research project or directly related to the start of a new job and a new career.

Reply to This

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.

Reply to This

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.

Reply to This

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

Reply to This

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.

Reply to This

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.

Reply to This

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.

Reply to This

RSS

Badge

Loading…

© 2010   Created by Mark Dalgarno on Ning.   Create a Ning Network!

Badges  |  Report an Issue  |  Privacy  |  Terms of Service