tag:blogger.com,1999:blog-193986452024-03-07T11:03:15.500+01:00voelterblogMarkus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.comBlogger34125tag:blogger.com,1999:blog-19398645.post-61009233379606459972009-03-09T09:05:00.001+01:002009-03-09T09:06:58.080+01:00Semantics for Xtext LanguagesMany languages defined with oAW Xtext have aspects in common. One way of exploiting this is to modularize language definitions and then composing specific languages from these modules. However, because of limitations of the current (4.3.1) version of Xtext, this is not necessarily a very viable approach. <br /><br />The <a href="http://code.google.com/p/metamodelsemantics/">semantic annotation toolkit</a> provides support for another approach. Languages are built from scratch (i.e. there is no reuse between grammar fragments), but the semantics of various language building blocks are still reusable. By annotating grammar elements with semantic annotations, the necessary Xtext infrastructure can be generated to make those grammar elements behave in a specific way. <br /><br />Technically, this is implemented by generating extensions and checks as well as by model transformations and extensions of the meta- model. <br /><br />Take a look at the latest documentation on the <a href="http://code.google.com/p/metamodelsemantics/downloads/list">download page</a> or watch this <a href="http://metamodelsemantics.googlecode.com/files/semanticAnnotationsIntroScreencast-0.3.zip">introductory screencast</a>.Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com1tag:blogger.com,1999:blog-19398645.post-70106168867323952022008-12-02T22:15:00.003+01:002008-12-02T22:20:02.868+01:00OSLO Video Comments: Customizing and Extending the Visual Design ExperienceSo here's my comments on the second video, <a href="http://channel9.msdn.com/pdc2008/TL18/">Customizing and Extending the Visual Design Experience</a>. Notice that the comments really are based on just watching the videos, not on working or playing with anything. <br /><br />I guess the stuff isn't really finished yet, but if Microsoft continues down this road, this stuff will be *very* interesting.<br /><br />Also, if you're an Eclipse E4 person: take a look at this stuff - this is very related!<br /><br />Based on Videos - didn't work with tool! <br />E4 - look at that!<br /><br />So here we go. <br /><br />Don Box calls stuff "Data Driven". That sounds more like I would call what they do...<br /><br />Don Box, as well as Doug Purdy in the previous video, always talk about data being "dynamic and transparent" vs. code being "opaque and static"... what does that mean?<br /><br />MS wants to get to a world where "software is data"... I wonder what the Lispers and generally, the dynamic languages guys will say about this. I also think this not quite the right focus. Models are about the "right" abstraction level... it doesn't really matter whether you interpret or generate... this depends on a number of non-functional requirements... Imagine running a data driven app (with an SQL server as a repository :-)) on an embedded device... I do agree that "data driven" is a good idea for many enterprisey apps, but it is not the right approach for all kinds of systems. Models - I think - *are* the right approach for all kinds of systems. It's just the question what you do with the code: interpret, or generate?<br /><br />Hehe, the property form he shows on the canvas really does remind me of Naked Objects now :-)<br /><br />The Quadrant stuff really does look very nice.... <br /><br />Now he shows a diagram right inside the workspace... Nice, but not overwhelming... Wow, now he nests the property view inside the tree. Nice -- but you'll run out of real estate quickly. I wonder whether they can also embed an editor for a textual DSL inside Quadrant, imaging some calculation rules as part of the data, you want to show them as text, with a nice editor, right inside Quadrant. <br /><br />Looking at quadrant as he shows it, yes, it looks like an efficient way to interact with data. But I see now real consistent "language" yet. Maybe that's not the intent, but that's what I'd like to see.<br /><br />Ok, becomes more interesting ... they now have a workflow diagram right inside the workspace. You can of course also author it directly in the workspace. Nice!<br /><br />Question is, of course, if I want to build my own (graphical) languaga and want to integrate that into Quadrant, do I do this with "regular code", or with DSLs, too? (I guess, the latter, since they said previously that the tool itself id "data driven")<br /><br />Florian mentions something quite interesting. And that is, that once *everything* is a model you can connect everything. For example, if implementation artifacts are models, and requirements ("goals") are also models, you can easily trace between these different things. Janos Stipanovits mentioned a similar potential for integration: software architecture and systems engineering.... very nice :-)<br /><br />Ok, Don says it again .... Quadrant itself is Model-Driven. Nice! <br /><br />Ok ... now they will show how "the data drives the tool" and how to customize it. Now it becomes interesting :-)<br /><br />Flovo shows a diagram that is basically a "meta model" ... and ... he says they will integrate Intellipad into the Quadrant workspace. Cool!<br /><br />He now shows the way how to customize the tool.... nice, completely reflective. And it updates in real time, no recompilation or redeployment. Everything is dynamic. Nice.<br /><br />Sorry to repeat myself, but it's really a bit like "Naked Models" :-)<br /><br />They repeatedly say "Smalltalk-like" ... interesting. <br /><br />They use LINQ inside the tool to define queries from which to build diagrams and stuff.<br /><br />Still seems quite simplistic how the define the diagrams via queries. But I guess this can be improved over time.<br /><br />Ok, they prove that the tool itself is model-driven by changing the underlying models that describe the UI... and the UI changes. Really pretty much like Smalltalk :-) And the E4 guys could take a look, too!<br /><br />cool -- they now show how the tool is built via the tool itself by changing some of the buttons by chaning model data.<br /><br />Very nice - they were changing the data in the model that describes the ribbons, they used the usual table/form notation for that; then they changed the presentation, and they now have the ribbon display *in the editor*, directly in place. Cool :-)Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-5478498285689202402008-12-02T21:24:00.003+01:002008-12-08T09:00:17.574+01:00oAW 4.3.1 Release PlanFYI, the <a href="http://www.openarchitectureware.org/article.php/oaw431_release_schedule">oAW 4.3.1 Release Plan and Release Notes</a> are available.Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-10852440943056980502008-12-01T20:42:00.003+01:002008-12-01T20:47:17.323+01:00OSLO Video Comments: A Lap Around OsloI just (finally!) started watching the OSLO videos from PDC. I started with the over view session <a href="http://channel9.msdn.com/pdc2008/TL23/">A Lap around OSLO</a>. Here are some thoughts:<br /><br />I don't like the message that "you've done this for years, it's just like XML and [Attributes] and all that..." Why on the one hand side talk about how new, important and ground-breaking OSLO is, and then say that it's all just XML, SQL and other stuff everybody has done for a long time?<br /><br />Quadrant is actually all the tooling; part of it is the visual DSL designers as well as the textual ones<br /><br />Why the heck show the SQL that works with the DSL definition when the "database is just a repository"? Seems like an unimportant implementation detail to me. They even say "M is a way to describe stuff stored in a repository". Sounds to me that's beside the point - isn't M about defining languages??<br /><br />The longer I watch the video, the more all the stuff seems to me like a new database tool ... I know that's not the idea, but it is presented in that way.<br /><br />I really like that everything is interpeted. Even the grammar/parsing facilties are interpreted. Very nice.<br /><br />So it seems that the ability to customize editors is really still limited, they "aspire" to making intellisense and all that available to any DSL.<br /><br />Wow, this Quadrant tool itself is built to interpret models, it is itself defined via M-stuff. Nice!<br /><br />Hm... but it again looks like a database tool ("Model-Driven Access"). I don't understand how the textual models interact/relate with the graphical Quadrant stuff? Can I get the textual representation out of the database again? Or can I just use it to put stuff "into" the repo? <br /><br />Somehow the Quadrant stuff also reminds me of Naked Objects...<br /><br />As I watch the video, I feel like, while it is not yet finished, it looks very promising. However, I have no idea why they don't also include a code generation. Yes, interpretation is useful, no question, but so is code generation. The only explanation I can come up with is to "deconflict" OSLO with the MS DSL Tools.<br /><br />When they are showing this MService example DSL where they embed (what looks like) C# code into new abstractions for Service description, I wonder what the means of modularization are. Is C# described in M? Can I easily embed "pieces of" C# code in an M DSL? Sure looks like it... very interesting! Actually, it seems like some workflow stuff that's invoked. But then, at least those need to be combinable. And at some point, I am sure C# will be available, too.<br /><br />Wow! They have a debugger for their DSLs. VERY NICE! I wonder how much of that is automatic (i.e. somehow derived from the grammar) as opposed to having it written manually.<br /><br />All in all, this stuff really looks nice and I am looking forward to more ... stay tuned for my comments on the other PDC videos :-)Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-1741312881382807002008-12-01T19:36:00.003+01:002008-12-01T20:27:10.100+01:00openArchitectureWare 4.3.1 RC1 availableThe Release Candidate 1 of Version 4.3.1 of openArchitectureWare is available at <a href="http://oawbranch.pluginbuilder.org/releases/4.3.1RC1.20081201-1800PRD/">oawbranch.pluginbuilder.org</a>. <br /><br />Happy Testing :-)Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-37426400200016624672008-12-01T10:31:00.003+01:002008-12-01T10:36:08.931+01:00New Podcast: Omega tau, science and technology in your headphonesRecently I have started a new podcast: <a href="http://omegataupodcast.net">Omega tau, science and technology in your headphones</a><br /> <br />It can be found at <a href="http://omegataupodcast.net">http://omegataupodcast.net</a> (and in iTunes, of course) and covers everything in science and technology that I find interesting. It is a mix of German and English language episodes and will probably average at about one episode per month.<br /><br />We already have five episodes online:<br /><a href="http://omegataupodcast.net/2008/08/15/1-mitlflug-im-motorsegler/">/1/</a> Mitflug im Motorsegler (German)<br /><a href="http://omegataupodcast.net/2008/09/04/2-wetterdatenerfassung/">/2/</a> Wetterdatenerfassung (German)<br /><a href="http://omegataupodcast.net/2008/10/26/3-das-multiple-myelom/">/3/</a> Das Multiple Myelom (German)<br /><a href="http://omegataupodcast.net/2008/10/28/4-commercial-space-and-space-ship-one/">/4/</a> Commercial Space and SpaceShipOne (English)<br /><a href="http://omegataupodcast.net/2008/11/29/5-earthrace-around-the-world-in-a-powerboat/">/5/</a> Earthrace - Around the World in a Powerboat (English)<br /><br />Upcoming episodes will include discussions on Computational Thinking, Airliner-Maintenance, Robotics, Biochemistry and more.<br /><br />Omega tau is a real hobby for me and my girlfiend (we do this together) and my personal bias towards aviation will probably shine through. We will also experiment with different styles, ranging from interviews over features to collages with different guests in one episode.<br /> <br />So if you're interested in this kind of stuff and like to listen to audio content, why don't you give it a try and let me know what you think?Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-56838462664050605372008-11-20T21:00:00.004+01:002008-11-20T21:01:04.893+01:00Eclipse Modeling Symposium 2008Over the last three days, I was participating in the <a href="http://www.eclipsecon.org/summiteurope2008/">Eclipse Summit Europe 2008</a>, the Eclipse community's european meeting in Ludwigsburg. Specifically, on Tuesday I moderated the <a href="http://www.eclipsecon.org/summiteurope2008/sessions?id=43">Modeling Symposium</a>. I really liked it this year - the submitted papers were on really interesting topics (model migration, semantics, notation, for example) and not the "usual" trivial stuff. Because every presenter had only 15 minutes (and we really enforced it :-)), people had to get to the point quickly, so the presentation part<br />was really quite fast-paced. <br /><br />In the afternoon we had Open Space discussions on some of the same topics, and we recorded a couple of video interviews (stay tuned :-)).<br /><br />As usual, <a href="http://ed-merks.blogspot.com/">Ed Merks</a> has created a <a href="http://ed-merks.blogspot.com/2008/11/eclipse-summit-europe-2008-symposiums.html">great blog entry</a> about this event, so I just refer to him for more detail :-)Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-51779140278669281472008-11-16T11:26:00.003+01:002008-11-16T11:31:04.323+01:00EMF and OSLO?<a href="http://startbigthinksmall.wordpress.com/">Lars Corneliussen</a> has written an <a href="http://startbigthinksmall.wordpress.com/2008/11/12/open-letter-to-douglas-purdy-eclipse-oslo-and-how-to-invent-the-future-together/">open letter</a> to <a href="http://douglaspurdy.com/">Doug Purdy</a> about interop between OSLO and EMF. <br /><br />Doug has said that he'd be interested in having the two worlds interoperate ("We want to engage, particularly with the Open Source Community, in order to make sure that we can invent the future together."). Personally, I also think that would be very useful.<br /><br />So please let us know what you think and help spread the word. True interop between Microsoft's OSLO and Eclipse's EMF would be very benefitial for both communities.Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-41144767740456249132008-11-11T20:01:00.003+01:002008-11-11T20:07:17.079+01:00Eclipse at .NET conferenceToday I was speaking at the <a href="http://www.prioconference.de/">prio.conference 2008</a>, a conference on .NET technologies. I gave three talks: my Architecture as Language stuff, my talk on Architecture Documentation and - surprise! - on how to build textual DSLs with Eclipse.<br /><br />Now, I did expect a number of people to show up in the two conceptual talks, but I didn't expect many people to come to the Xtext talk - after all, it is a Microsoft technologies conference. I was wrong! The room was full, some people were standing. I wasn't able to find out whether so many people came <i>because</i> the talk was on Eclipse technologies, or <i>in spite of that</i> :-). <br /><br />Nonetheless, I was very pleased to see so much interest in Eclipse, Xtext and MDSD in the .NET world<br /><br />Thanks to <a href="http://ralfw.de">Ralf Westphal</a> for inviting me to the conference!Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com3tag:blogger.com,1999:blog-19398645.post-53670681788523993332008-07-16T18:24:00.005+02:002008-07-16T18:38:44.151+02:00Replying to Martin Fowler's recent posts<a href="http://martinfowler.com">Martin Fowler</a>, in the context of writing his book on DSLs, recently had two interesting blog posts (<a href="http://martinfowler.com/bliki/MDSDandDSL.html">this one</a>, and <a href="http://martinfowler.com/bliki/ModelDrivenSoftwareDevelopment.html">that one</a>. <br /><br />I agree with some parts (e.g. the MDA stuff), and strongly disagree with other parts. <br /><br />Now, because I had to go <a href="http://www.voelter.de/flying/pictures.html">flying</a> for the last two days (yipieeh :-)) I did not immediately reply, and hence, <a href="http://effi-blog.blogspot.com/2008/07/mdsd-and-dsls.html">Sven was faster</a> :-). I agree with everything Sven says, and I don't repeat it here.<br /><br />However, there's one interesting issue that pops up from time to time: repositories. From time to time, people (including me and Sven) point out that it is some kind of problem to store models in repositories. The arguments basically center around the fact that "we want to manage everything as files, in CVS or SVN". <br /><br />Now, I agree to that, however:<br /><br />What if you don't have any text at all, if you store <b>everything</b> in models and repositories, don't all the integration problems go away then? Of course you still need a diff/merge facility (based on the models' concrete syntax, not XML!) and a way to version things, but assuming your infrastructure provides that, wouldn't that be ok?<br /><br />Also, what is a repository in the first place? A couple of text files in a file system clearly isn't a repository. A database storing an AST clearly is. <br /><br />But what about a CVS/SVN? What about a bunch of text files arranged in a specific directory structure, with an index file rebuilt from time to time by an indexer?<br /><br />My point is that a repository is not per se a bad thing, provided the following criteria: (1) you store all your relevant stuff in it (2) it provides versioning facilities (3) supports diff/merge on a meaningful abstraction level. <br /><br />As it happens, CVS/SVN provides all of this for text files. Hence, it is the lowest common denominator "repository". <br /><br />Any comments or thoughts? I would really like to get a somewhat better grasp on this repository thing, to find out what *really* is the problem.Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com15tag:blogger.com,1999:blog-19398645.post-50691655229269267482008-07-02T20:07:00.002+02:002008-07-02T20:12:00.939+02:00Video: Managing Variability in Product LinesThe JAOO folks have kindly recorded my 2007 <a href="http://www.infoq.com/presentations/managing-variability-in-product-lines">presentation</a> on managing variability in product lines (<a href="http://www.voelter.de/data/presentations/MarkusVoelter-ManagingVariabilityInProductLines.pdf">slides</a>). Among other things, it showcases some of the PLE features available in openArchitectureWare.Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-11052452168130706972008-06-10T21:02:00.002+02:002008-06-10T21:07:51.438+02:00Prefuse Visualization - CodeUntil we find a place for the visualization stuff, here's snapshot of the code for you to play with. It contains a bunch of Eclipse projects; it also includes Prefuse itself. Note that this is not a distribution of Prefuse, I just kept it in the ZIP to make it easy for you to play with it. <a href="http://www.voelter.de/temp/prefuse-demo.zip">Here is the code</a>.<br /><br />There's a demo project in the ZIP that creates a graph for Ecore itself. <br /><br />You can find the transformation in <i>/net.ample.adsl.prefuse.demo/src/ecore2prefuse.ext</i>. <br /><br />The oAW workflow to run it is <i>/net.ample.adsl.prefuse.demo/src/visualizeEcore.oaw</i>. <br /><br />After running that workflow, open a runtime workbench and open the <i>Model Visualization/Model Visualization View</i>. <br /><br />There open the <i>WORKSPACEROOT/net.ample.adsl.prefuse.demo/src-gen/data.xml.xml</i> file.<br /><br />Have fun!Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com3tag:blogger.com,1999:blog-19398645.post-25013397059419435102008-06-06T19:43:00.003+02:002008-06-06T19:48:49.722+02:00Visualizing EMF, now with PrefuseAfter playing around with Graphviz, I looked at <a href="http://prefuse.org/">Prefuse</a> next. In contrast to Graphviz, Prefuse is an interactive toolkit, i.e. you can manipulate the graphs. It is done completely in Java. <br /><br />I integrated it into Eclipse (using SWT_AWT) and also provided an EMF meta model so you can easily map your own models to the Prefuse meta model. If you're interested, take a look <a href="http://www.voelter.de/screencasts/prefuse/prefuse2.html">at this screencast</a>.Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com5tag:blogger.com,1999:blog-19398645.post-19881771196486824412008-06-04T20:13:00.006+02:002008-06-04T20:23:54.362+02:00Visualizing EMF models with Graphviz<a href="http://www.codeworkz.at/">Michael Clay</a> and I have built an integration (currently proof of concept) between EMF and <a href="http://www.graphviz.org/">Graphviz</a>. Actually, this is especially relevant for textual models (created via Xtext) since GraphViz has very good auto-layout facilities; so it becomes realistic and useful to automatically render a diagram from a specification (textual model) that has no layout information in it.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrIUGrIFUni7o11yoeU-jqRS0ks6UHjlNHbNLHbFQBNfC3Z0Nop9CAM_Hkb2pSES-CAkScEc0cHIUNUO0UvgIeTprogeUu7yusyQXc_lfFpFJSWa4Dkl1TCk5EoODVCOB3Rk4o/s1600-h/v10b.adsl.dot.gif"><img style="cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrIUGrIFUni7o11yoeU-jqRS0ks6UHjlNHbNLHbFQBNfC3Z0Nop9CAM_Hkb2pSES-CAkScEc0cHIUNUO0UvgIeTprogeUu7yusyQXc_lfFpFJSWa4Dkl1TCk5EoODVCOB3Rk4o/s400/v10b.adsl.dot.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5208092565120247602" /></a><br /><br />Here's the way it works: Michael has created an EMF representation of the dot language (GraphViz's language for describing the to-be-rendered graph). He has also built a generator (using oAW's Xpand) that actually generates the dot file. This can then be rendered by the GraphViz dot renderer. <br /><br />Here's how you render your own model: you write a model-to-model transformation that maps you meta model onto the dot meta model. To do that, I wrote a bunch of oAW extension functions that make this job easy.<br /><br />To render the example picture above from my textual spec, I had to write about 30 lines of Xtend code -- not much. <br /><br />If you're interested, we're currently in the process of figuring out where and how to make it available.Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com13tag:blogger.com,1999:blog-19398645.post-32232503063172910242008-03-04T23:37:00.003+01:002008-03-05T08:22:01.142+01:00oAW NewsHere are some news from today's oAW team telecon:<br /><br />Work on the new oAW/M2T infrastructure (the new back/front/middleends) is progressing nicely. Most of the work is done by Arno, the itemis lab in Kiel and Bernd. The languages will be source compatible with oAW 4.2 but will be based on a more stable and much more performant architecture. A couple of minor syntactic enhancements will be added - details later. This work is also the basis for Eclipse M2T.<br /><br />Don't forget that at this year's <a href="http://www.eclipsecon.org/2008/">EclipseCon</a> Bernd and Markus will do three Tutorials and one Long Talk on modeling and oAW. In addition to those two, Sven, Wolfgang and Achim will also be present.<br /><br />We're also working on a new release of oAW 4.2. There will be a a bug fix release without Xtext called 4.2.1, as well as a release of ONLY Xtext called 4.3 beta. We separate those two because Xtext has more new features, but is not as well tested as the other parts. Expect to see these releases next week.<br /><br />New Xtext features include: viewpoints (several different tree view structures), Ctrl-O support (show the outline as a popup), styles (render keywords with different color and font), imports (seamlessly separate you model into several files), grammars for existing meta models, referencing external (meta)models, an EMF resource implementation for Xtext files. You can see some of those features in <a href="http://www.voelter.de/screencasts/xtext1/xtext.html">this</a> and <a href="http://oaw.itemis.de/files/screencast_converging_editors/converging_editors.html">this</a> screencast. Note that these features are things that will be in TMF, but some API aspects will be incompatible with the current implementation in the upcoming Xtext 4.3 beta.<br /><br />We're also currently working on an oAW planet, i.e. an aggregate blog that collects all the blogs of all oAW team members into a single feed. More on this once everything is running.Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-6173728257685734652008-02-29T19:34:00.004+01:002008-02-29T22:51:39.471+01:00oAW Xtext and PLE: Interesting DevelopmentsI have recorded a <a href="http://www.voelter.de/screencasts/xtext1/xtext.html">screencasts</a> that shows some of the recent developments of Xtext that <a href="http://www.kolbware.de">Bernd</a> and I have done. The screencasts looks at working with multiple files, extended outline views and integration of non-Xtext metamodels into code completion and constraint checking.<br /><br />The article uses as an example an architecture DSL (like the one introduced in my <a href="http://www.infoq.com/articles/architecture-as-language-a-story">most recent article</a>). The example shown in the screencasts extends an architecture DSL with ways to express feature variability and provides a nice tool integration with <a href="http://www.pure-systems.com">pure::variants</a>.<br /><br />There's actually more to the PLE stuff that is shown in this screencast. Stay tuned for more :-)<br /><br />And while you're at it: why don't you look at <a href="http://oaw.itemis.de/files/screencast_converging_editors/converging_editors.html">this screencast</a> from the itemis oAW team in Kiel. Very nice stuff.Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-53677690919554226252008-02-29T19:11:00.003+01:002008-03-05T14:41:16.805+01:00Architecture As Language - A storyHere's the abstract of the most recent article I wrote:<br /><br />Architecture is typically either a very non-tangible, conceptual aspect of a software system that can primarily be found in Word documents, or it is entirely driven by technology ("we use an XML architecture"). Both are bad: the former makes it hard to work with, and the latter hides architectural concepts behind technology hype.<br /><br />What can be done? As you develop the architecture, evolve a language that allows you to describe systems based on this architecture. Based on my experience in a number of real-world projects, this makes the architecture tangible and provides an unambiguous description of the architectural building blocks as well as the concrete system while still staying away from technology decisions (which then can be made consciously in a separate step).<br /><br /><a href="http://www.infoq.com/articles/architecture-as-language-a-story">Read on at InfoQ...</a>Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-16097667465216938262008-02-04T09:34:00.001+01:002008-03-05T14:42:26.191+01:00TMF Creation Review SuccessfulSven Efftinge reminded me through his <a href="http://effi-blog.blogspot.com/2008/01/tmf-successful-creation-review.html">blog</a> that the <a href="http://www.eclipse.org/proposals/tmf/">Eclipse Textual Modeling Framework</a> project proposal has successfully gone through the creation review. <br /><br />The co-leads Sven Efftinge and Frédéric Jouault made this happen (thanks guys!). <br /><br />According to Sven's blog, one of the attendees already had experience with Xtext and was very excited to hear about Xtext becoming an Eclipse project.Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-67134062824902589162008-01-23T19:26:00.001+01:002008-01-23T19:37:32.346+01:00oAW at OOPIt's interesting to see that a whole bunch of companies are actively advertising for oAW at the OOP conference. A similar thing happened at W-JAX last year. This time we took some photos :-)<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjikPrwpIsXErawjOBABRYKxrPRYCcG4SH32k3qXE437cUijPL2w0UVJ5XFNsMv8zHb_XhCmjV1JW-HgT3aeaRGLl2lqWdn6YTJ7IsNem6kW2Bm97jUwdXqefNdFb5p1gfJPjCt/s1600-h/2.jpg"><img style="cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjikPrwpIsXErawjOBABRYKxrPRYCcG4SH32k3qXE437cUijPL2w0UVJ5XFNsMv8zHb_XhCmjV1JW-HgT3aeaRGLl2lqWdn6YTJ7IsNem6kW2Bm97jUwdXqefNdFb5p1gfJPjCt/s320/2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5158741758993457058" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWwsFrF_7_b5EAObl-IqjatYeuEoVvgolEzmIIowmX4J1ls9aTsd1GEj2Zm53HQamJZQEJHQ0NnAitoyIXt8dcFrsa1ERsVtxYIkFBnoJ-4_MKZ3nrCtjE0Rult8yeHymf3Zkh/s1600-h/3.jpg"><img style="cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWwsFrF_7_b5EAObl-IqjatYeuEoVvgolEzmIIowmX4J1ls9aTsd1GEj2Zm53HQamJZQEJHQ0NnAitoyIXt8dcFrsa1ERsVtxYIkFBnoJ-4_MKZ3nrCtjE0Rult8yeHymf3Zkh/s320/3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5158741690273980306" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifZ2SnsOuza4cPh606YluX6uGtDtBiIcQ6czzuR71tN_eip1csKnnIbTK2zCk9TCKZ_MenjlenhPE_lcpHWMb_FGeH_p0zHw1ECJPt2MH6lwrLp3hzRtl44o6kpcr68l9qV8Fa/s1600-h/4.jpg"><img style="cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifZ2SnsOuza4cPh606YluX6uGtDtBiIcQ6czzuR71tN_eip1csKnnIbTK2zCk9TCKZ_MenjlenhPE_lcpHWMb_FGeH_p0zHw1ECJPt2MH6lwrLp3hzRtl44o6kpcr68l9qV8Fa/s320/4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5158741612964568962" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ4xpn2joa6e3sQVx0NGZZggWbl7qT9c2YUM5fmn5is4IhdIyKxD7mszQruAhE0T-16JyCdJatVd4XmMUylW3nRkw86MqBNl1HGmug3PXonGV7Sj-OQBAvtKTSpkiXo8Ia2ow8/s1600-h/5.jpg"><img style="cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ4xpn2joa6e3sQVx0NGZZggWbl7qT9c2YUM5fmn5is4IhdIyKxD7mszQruAhE0T-16JyCdJatVd4XmMUylW3nRkw86MqBNl1HGmug3PXonGV7Sj-OQBAvtKTSpkiXo8Ia2ow8/s320/5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5158741432575942514" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFF6lCE54sQrdlldrbIjkvU-RXbVOGLVfEDVKRaD7MiIMgdKiNz4ebLuZyG0tppdv1LWEJIV1xdcXmZlHkFlRuqahjnZx3mJQeEzwhHC63HdBwWjEYWVxP_vy2MjtYAg-vVlO-/s1600-h/7.jpg"><img style="cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFF6lCE54sQrdlldrbIjkvU-RXbVOGLVfEDVKRaD7MiIMgdKiNz4ebLuZyG0tppdv1LWEJIV1xdcXmZlHkFlRuqahjnZx3mJQeEzwhHC63HdBwWjEYWVxP_vy2MjtYAg-vVlO-/s320/7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5158741333791694690" /></a>Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com2tag:blogger.com,1999:blog-19398645.post-85921221939832815102008-01-08T18:09:00.001+01:002008-03-05T14:42:45.275+01:00DSL Day @ JAX 2008This year's <a href="http://jax.de/">JAX 2008</a> conference will feature a full day on Domain Specific Languages. DSLs are a wide field. During this DSL Day we will try to cover many important aspects of DSLs, although there can be no hope of capturing everything. <br /><br />In the first session (run by Juha Pekka Tolvanen from <a href="http://www.metacase.com">Metacase</a>) we will learn how to define a domain meta model and a nice graphical syntax using the MetaEdit+ tool. In addition, we will learn how to to generate executable code from the models created with the domain-specific modeling language. <br /><br />The second talk (by somebody from <a href="http://www.nomagic.com/dispatcher.php">NoMagic</a>) we will look at how a modern UML tool can be customized with a domain-specific profile. Creation of the profile, customization of a UML diagram and code generation from that UML model will be covered in this session. <br /><br />Talk number three (by Sven Efftinge of <a href="http://www.itemis.de">itemis</a>) will turn slightly towards textual DSLs. They will discuss the tradeoffs between textual DSLs and graphical DSLs and show an example with the Xtext tool (a part of openArchitectureWare). To make sure it's not either-or, they will show how textual and graphical syntax can be combined sensibly. <br /><br />Continuing down the route to textual DSLs, we will look at internal textual DSLs in talk number four (by Guillaume Laforge, <a href="http://docs.codehaus.org/display/GROOVY/Home">Groovy</a> Proejct Lead). Internal DSLs are especially useful in dynamic languages such as Ruby or Groovy. In this session we will learn about the advantages of internal DSLs and how to build them using meta programming in Groovy. <br /><br />The final presentation (by <a href="http://www.voelter.de">Markus Voelter</a> and <a href="http://www.kolbware.de">Bernd Kolb</a>) looks at the alternative to code generation in the context of external DSLs: Interpretation. We will briefly construct a textual DSL and then write a nice interpreter for the DSL. The interpreter will be written in Scala. We will also use a model transformation to transform between different languages. <br /><br />The day will be concluded with a panel that includes all the speakers from the various sessions. Since we have advocates for each of the different flavours of DSLs, the panel should be educating as well as entertaining -- there's nothing more boring than a panel where everybody agreesMarkus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com3tag:blogger.com,1999:blog-19398645.post-21394768361075693582007-11-16T23:13:00.001+01:002008-03-05T14:43:16.402+01:00Textual Modeling Framework Proposal OnlineThere are several ways of displaying and editing models. The two primary alternatives are graphical (or visual) concrete syntaxes and textual notations. EMP already has a solution to efficiently develop editors for graphical notations, namely GMF. However, in many situations, textual representations are much better suited. Therefore, the <a href="http://www.eclipse.org/proposals/tmf/">proposed TMF project</a> will provide a means to efficiently create editors for custom textual notations.<br /><br />Please go there, read it and provide feedback!Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-71087682610641071032007-10-24T14:29:00.001+02:002008-03-05T14:44:03.762+01:00AMPLE VideosIn case you've always wanted to know (but never got the chance to ask :-)) what I am up to in the <a href="http://ample-project.net">AMPLE</a> research project, <a href="http://ample.holos.pt/pageview.aspx?pageid=50&langid=1">here's a bunch of videos</a> of the stuff I did together with Christa Schwanninger and Iris Groher.<br /><br />If you are interested in a more systematic tutorial of the <a href="http://eclipse.org/gmt/oaw">openArchitectureWare</a> features in that context, <a href="http://www.eclipse.org/gmt/oaw/doc/4.2/videos/index.php">please look at these screencasts</a>.Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-20156658631689290792007-09-27T21:41:00.000+02:002007-09-28T10:46:11.895+02:00SAFARI joins EclipseSome of you might have heard about the SAFARI project of IBM research. It is basically a framework for building support for arbitrary languages into Eclipse - a kind of meta tooling for Eclipse editors. Well, it is now in <a href="http://www.eclipse.org/proposals/imp/">Eclipse proposal</a> stage. Very, very nice!Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com1tag:blogger.com,1999:blog-19398645.post-2893253051833740832007-09-18T08:44:00.000+02:002007-09-28T10:46:29.630+02:00openArchitectureWare 4.2 releasedThe <a href="http://www.openArchitectureWare.org">openArchitectureWare</a> team is proud to present the long awaited 4.2 release of the well-known MDSD toolkit. The new version comes with several major improvements (see below) and is now also fully compatible with the <a href="http://www.eclipse.org/europa/">Eclipse 3.3 Europa</a> release and the corresponding EMF 2.3, UML 2.1 and GMF 2.0!<br /><br />Major new features include a Debugger for Xpand and Xtend fully integrated Eclipse's debugging facility. You will love this when writing complex templates or transformations. In addition, openArchitectureWare 4.2 support Product Line Engineering (PLE) on generator level by integrating with popular variant management tools and the new components XWeave and XVar. The 4.2 release features a revamped Xtext with many more options for customizing the generated textual editors. The team has also worked hard on fixing many annoying quirks, bugs and performance issues.<br />See the <a href="http://www.eclipse.org/gmt/oaw/doc/4.2/nAndN/contents/whatsnew.html">New And Noteworthy</a> for details.<br /><br /><br />The documentation has been improved significantly. There are about <a href="http://www.eclipse.org/gmt/oaw/doc/4.2/videos/index.php">3hrs of videos</a> available demonstrating the use of simple to complex features of the openArchitectureWare platform. The documentation source was changed so we can now provide it in several forms: Eclipse's online help, <a href="http://www.eclipse.org/gmt/oaw/doc/4.2/openArchitectureWare-42-reference.pdf">PDF</a> or plain <a href="http://www.eclipse.org/gmt/oaw/doc/4.2/html/contents/index.html">HTML</a>.<br /><br /><a href="http://www.eclipse.org/gmt/oaw/download/">Download</a> openArchitectureWare 4.2 now and enjoy it. There is no better way to do professional model-driven software development.Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0tag:blogger.com,1999:blog-19398645.post-74875470872305946632007-09-13T22:05:00.000+02:002007-09-28T10:46:43.899+02:00Model-Driven Product Line Engineering - Online ResourcesOver the last couple of months, I have been contributing to the <a href="http://ample-project.net/">AMPLE</a> project. AMPLE stands for <i>Aspect Oriented, Model-Driven Product Line Engineering</i>. We have produced a couple of interesting results as part of the case study team at SIEMENS. Here are some pointers to it:<br /><br />Together with Iris Groher, I wrote a couple of papers. Luckily, all of them have been accepted to the venues we submitted them to. A full paper titled <a href="http://www.voelter.de/data/pub/VoelterGroher_SPLEwithAOandMDD.pdf">Product Line Implementation using Aspect-Oriented and Model-Driven Software Development</a> was accepted at the <a href="http://sec.ipa.go.jp/SPLC2007/">SPLC 2007</a> conference (Iris is actually currently there to present the paper - thanks :-)). It covers the overall approach we implemented in the case study at SIEMENS. We also submitted a paper to the <a href="http://sec.ipa.go.jp/SPLC2007/mvspl.php">MVSPL workshop</a> at the same conference. It is called <a href="http://www.voelter.de/data/workshops/MVSPL_GroherVoelter.pdf">Expressing Feature-Based Variability in Structural Models</a> and covers the construction of variants of models using aspect weaving on model level as well as other techniques. We also present a paper on <a href="http://www.voelter.de/data/workshops/HandlingVariabilityInModelTransformations.pdf">Handling Variability in Model Transformations and Generators</a> at this years <a href="http://www.dsmforum.org/events/DSM07/">Domain Specific Modeling</a> workshop at <a href="http://www.oopsla.org">OOPSLA</a>. In this paper we discuss in more detail how to build variants of generators.<br /><br />All the stuff described in the papers has tools support. It has been implemented as part of the upcoming <a href="http://www.openarchitectureware.org">openArchitectureWare</A> 4.2 release (yes, it'll be released real soon now!). <br /><br />Finally, I am also going to give a couple of talks and tutorials on this subject at <a href="http://jaoo.dk/presentation/Managing+Variability+in+Product-Lines">JAOO</a>, <a href="http://www.oopsla.org/oopsla2007/index.php?page=sub/&id=94">OOPSLA</a>, <a href="http://www.hope.cs.rice.edu/twiki/bin/view/GPCE07/TutorialGPCE4">GPCE</a> and <a href="http://www.oopconference.com">OOP</a>. If you're interested in the general message of those talks (each of them targets different subsets), you can look at these <a href="http://ample.holos.pt/pageview.aspx?pageid=50&langid=1">videos</a>. The oAW 4.2 release will also feature a number of videos that explain how to use the new PLE-related features.<br /><br />So much for the update - please let me know what you think!Markus Voelterhttp://www.blogger.com/profile/17202827990748358797noreply@blogger.com0