Knowledge Industry Survival Strategy Initiative
In order to increase awareness about the role that domain specific modeling languages can play in capturing, preserving, and exploiting knowledge in virtually all industries, it is necessary to establish a strong consensus on the fundamental values and principles
that underpin the use of domain specific modeling languages.
In 2009 a series of conference workshops and other events will be used to create a consensus that can be expressed and promoted in a form similar to the agile manifesto and the fundamental agile principles.
Three workshops are currently planned: at ASWEC 2009
(Gold Coast, Australia), at CAiSE 2009
(Amsterdam, Netherlands) and at CG 2009
OSLO Video Comments: Building Textual DSLs
Finally I got around to watch the final PDC video, the one on textual DSLs. I got feedback from Doug that they actually read my comments and take them into account (as far as they make sense :-)) so I guess I have to deliver the last set.
Ok, Intellipad is a prototype, it will move into VS.
They still use token definition, not scannerless parsing. Wonder how they'll be able to combine languages (I know they're working on it, Doug told me about it in an upcoming interview for SE Radio on OSLO :-))
Hm, this interleave stuff is nice!
So, the grammar thing can also include "syntax graph transformations" to "shape" the data in any way you like. Nice!
I wonder if it is possible to also automatically derive an MSchema from the grammar (à la Xtext)?
They define a list recursively ... I wonder whether a more succinct way of doing this? Although this valuesof(...) thing normalizes the recursive list to a flat one. Nice.
Ok, ok I am happy :-) They are able to define functions, i.e. parametrized Productions. So it is possible to factor out e.g. a "comma-separated list", and the use that for comma separated lists of all kinds of other syntaxes. Very nice!
By the way: the same question applied to the optional stuff. Writing an optional element as "Production => mand | mand "," opt" is quite cumbersume. Easier would be to write "Production => mand ("," opt)?"
They have attributes. Nice! E.g. they use it for example to color tokens, for example to make them "keyword-colored".
I have to say, I really like the interactive, interpreted way of defining grammars the way Intellipad supports it. Much better than the generative approach supported by ANTLR & Co.
The dynamic API in C# does not yet convince me. Much too verbose. Of course having a dynamic API (à la dynamic EMF) is very nice.
So.... there's only interpretation in OSLO, they say.... hm. In the final example, they show a language to define MSI files. And from the models, the *generate* WIX files (XML). So, this language is purpose-built for code generation. I guess they have an "interpreter" that WriteLn's XML to a file.... I guess, it won't be long until we see a code generation engine for OSLO. You can't really make do without it in practice. Hopefully it'll be a decent language, and not some adaptation of ASP.NET or something. OSLO guys, let me know if you need some inspiration :-)
openArchitectureWare 4.3.1 Available
The final release of openArchitectureWare 4.3.1 is now available
Workshop: Produkt-Variabilität im gesamten Lebenszyklus
At the SE 2009
conference in Kaiserslauter there will be a (german) workshop on product variability over the complete lifecylce. There's now a (german) webpage
for the workshop.
If you work on the topic or are interested in this stuff, why don't your write a paper till January 16 (there's a lot of quiet time between the years :-)) and come?
German Article on MPS...
... I wrote for the JAXenter website.
Over the last couple of days, two recent rumors regarding new saiplanes became a fact. Schempp-Hirth is going to do a flapped Duo with Lange's electric engine, the Arcus
. And Schleicher is working on a 21-meter successor to the 26, the ASH-31Mi
, Mi suggesting that it will have the injector engine with a bit more power.
Especially the second one is of course very interesting :-)
Study: The effects of classical and agile project management techniques on project success
In cooperation with the two large German project management organizations GPM and PMI (Chapter Frankfurt and Munich) oose Innovative Informatik is conducting a study on the above topic. We aim to gain empirical evidence that link project success, applied project management techniques (both agile and classical) and the given conditions of a project.
This data will support project managers make sound decisions on which agile or classical techniques will help their projects the most in a given situation.
We invite all project managers and other persons in leading positions in a project (like architects, scrum masters) to participate. Answering the questionnaire will take around 60 minutes. Most questions will ask you to evaluate two past projects, one successful project the other less successful.
Participation is completely anonymous. First results of the study will be freely available around March 2009.
The questionnaire is available online at www.oose.de/pm_studie
until January, 18. 2009.
Please note that the questionnaire is available only in German!
MPS goes Beta
After years of development and various stages of public awareness, Jetbrains' Meta Programming System
has entered the beta testing phase - which means the tool is available publicly, and you can play with it and provide feedback to the Jetbrains folks.
In addition to making the tool itself available, they also worked providing help to get started: they have a really nice tutorial
as well as an extensive user's guide
and a (currently still quite empty :-)) discussion forum
So if you're into DSLs, you should really give this thing a try. It is quite different from traditional DSL tools. Although Jetbrains' approach has its own challenges, I think the tool is very promising and definitely worth a closer look.
OSLO Video Comments: The Language (Building Domain Models in M)
Here are some thoughts on the The Language (Building Domain Models in M)
talk. Not much surprise here...
M uses structural typing. Cool.
We've had a lot of discussions about the right metaphor for modeling and using DSLs. Is it more like Rational Rose, or more like JDT? I think it is more like JDT. The OSLO guys seem to see it the same way. ".m files are like .cs files, .mx files are like DLLs, so you can run them or /r them".
you can have data without a schema for it. Not sure why this is very useful, but it is certainly cool.
The definition of types and instances is all completely interactive and interpreted, at least as long as you don't "install" things into the database.
Any data item can be labeled and then referenced. Sounds good.
As part of the schema definition you can also define views, which are basically subsets of models where the elements satisfy a set of constraints. YOu can use full LINQ queries. Nice!
The MScript stuff they showed is the first step towards model transformations. they can create new instances, and query data...
Don is actually a really good presenter! Never saw him live...
Ever wondered what exactly openArchitectureWare is? How it is assembled from its various constituent components? How it relates to Eclipse? How to become a team member? The oAW team has finally come up with a charter
that answers these questions.
OSLO Video Comments: Customizing and Extending the Visual Design Experience
So here's my comments on the second video, Customizing and Extending the Visual Design Experience
. Notice that the comments really are based on just watching the videos, not on working or playing with anything.
I guess the stuff isn't really finished yet, but if Microsoft continues down this road, this stuff will be *very* interesting.
Also, if you're an Eclipse E4 person: take a look at this stuff - this is very related!
Based on Videos - didn't work with tool!
E4 - look at that!
So here we go.
Don Box calls stuff "Data Driven". That sounds more like I would call what they do...
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?
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?
Hehe, the property form he shows on the canvas really does remind me of Naked Objects now :-)
The Quadrant stuff really does look very nice....
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.
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.
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!
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")
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 :-)
Ok, Don says it again .... Quadrant itself is Model-Driven. Nice!
Ok ... now they will show how "the data drives the tool" and how to customize it. Now it becomes interesting :-)
Flovo shows a diagram that is basically a "meta model" ... and ... he says they will integrate Intellipad into the Quadrant workspace. Cool!
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.
Sorry to repeat myself, but it's really a bit like "Naked Models" :-)
They repeatedly say "Smalltalk-like" ... interesting.
They use LINQ inside the tool to define queries from which to build diagrams and stuff.
Still seems quite simplistic how the define the diagrams via queries. But I guess this can be improved over time.
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!
cool -- they now show how the tool is built via the tool itself by changing some of the buttons by chaning model data.
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 :-)
Labels: eclipse, openarchitectureware
OSLO Video Comments: A Lap Around Oslo
I just (finally!) started watching the OSLO videos from PDC. I started with the over view session A Lap around OSLO
. Here are some thoughts:
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?
Quadrant is actually all the tooling; part of it is the visual DSL designers as well as the textual ones
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??
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.
I really like that everything is interpeted. Even the grammar/parsing facilties are interpreted. Very nice.
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.
Wow, this Quadrant tool itself is built to interpret models, it is itself defined via M-stuff. Nice!
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?
Somehow the Quadrant stuff also reminds me of Naked Objects...
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.
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.
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.
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 :-)
Labels: eclipse, openarchitectureware, OSLO
openArchitectureWare 4.3.1 RC1 available
The Release Candidate 1 of Version 4.3.1 of openArchitectureWare is available at oawbranch.pluginbuilder.org
Happy Testing :-)
Labels: eclipse, openarchitectureware
New Podcast: Omega tau, science and technology in your headphones
Recently I have started a new podcast: Omega tau, science and technology in your headphones
It can be found at http://omegataupodcast.net
(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.
We already have five episodes online:/1/
Mitflug im Motorsegler (German)/2/
Das Multiple Myelom (German)/4/
Commercial Space and SpaceShipOne (English)/5/
Earthrace - Around the World in a Powerboat (English)
Upcoming episodes will include discussions on Computational Thinking, Airliner-Maintenance, Robotics, Biochemistry and more.
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.
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?
Labels: eclipse, openarchitectureware