Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[mdt-papyrus.dev] [Sphinx] The 20 Modeling Things

Hi all,

as you might already know, Kenn and I have submitted a talk about "The 20 Modeling Things" to upcoming EclipseCon (http://www.eclipsecon.org/2010/sessions/?page=sessions&id=1315) and got accepted. In this talk we want to give a high level overview of the most essential services required for building integrated modeling tool applications. These services could later be implemented in the recently announced Sphinx project - with a part of them coming from the Backbone/Core from Papyrus and the ECL layer from Artop.

Kenn and I had the idea to base this talk not only on our own thoughts but on feedback from all members of Papyrus and Artop development team. We already have identified an initial version of the 20 Modeling Things including some comments detailing them a little bit (see below). We would like to ask you to have a look at this list and comment on it. Just let us know what you intuitively think. Tell us which of the proposed services you find important, what their mandatory features/properties should be, additional services that should be added, services which you don't find important and should be removed from the list (if any), or anything else.

In order to have enough time for consolidating your feedback an create the presentation slides, it would be great if you could provide us your feedback until Feb 28, 2010. While this message has also been sent out to Papyrus and Artop mailing lists for reaching all of you, I think that it would make sense to route all feedback over a single communication channel. So please use only the MDT forum/newsgroup for posting your response.

Thank you very much in advance,

Stephan & Kenn



And this is our initial list of 20 Modeling Things:

1. lifecycle management


- open, edit, save, delete

- synchronization with filesystem (or other persistence back end)


2. navigation


- views (navigate, explore, browse), including omnibar, also traversal of links

- containment structure vs. lateral references


3. editor management


- editing domain management

- support for different kinds of editors


4. commands / "transactions"


- execution of commands (possibly complex) in a thread safe way

- allowing undo (rollback)

- integration with the undo/redo mechanisms in eclipse


5. validation


- all things validation (rules, execution, scope, problems view, markers)

- support for this in a scalable way!


6. compare & merge


- differences between different version of artifacts

- graphical merge (diagram support)


7. scoping (viewpoints)


- models typically spread over multiple files of multiple types

- relation of projects to models, also "working sets"?

- references between projects

- supports models from different versions of a metamodel at same time

- "model" vs. resources, subsetting of these


8. metamodel management


- multiple metamodels

- multiple versions of a metamodel

- between different versions of metamodels

- metamodel extension


9. memory management


- management of memory footprint


10. query & indexing


- getting answers to questions, finding things

- useful for validation (markers), 

- index underlying service for query, but also for other things

- useful for navigation and search as well


11. documentation and report generation


- modeling documentation ("modeldoc"?), wikitext, BIRT?


12. persistence


- files vs. databases vs. web servers vs. repositories


13. code generation


- obvious


14. transformation


- (obvious)


15. search & replace


- (obvious)


16. variant handling (maybe rather advanced than essential?)


- variants of model elements

- feature modeling, aspect-oriented modeling, facets


17. task focused modeling


- Mylyn integration


18. workflow & scripting


- MWE, epsilon? other languages (Ruby, Groovy?)


19. build system


- complex build environments to generate code, documentation, etc.
- mixed processing of models (e.g. validation, code generation) and files (e.g. compilation and linking)


20. version management / team integration


- configuration management, etc. (CDO, MTF)



Back to the top