/* Motion Modeling Core eclipse plugin Copyright (C) 2004-2005 St�phane Ducas (www.flashscience.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.*/ //Please read ECLIPSE_HOME/plugins/com.flashscience.motionmodeling.core/LICENSE.TXT for more informations. //File created on December 18 2004 I- What is Motion Modeling The Motion Modeling project aims to provide quickly a full MDA (Model Driven Architecture) developping environement in the Eclipse Platform. Motion Modeling is developer-oriented and evolutive: It provides a base Modeling tool that can be extended quickly to handle repetitive processes in the modeling process and to follow futur meta models. Thus, only developers will use Motion Modeling at 100% by customizing it for their own modeling habits or making a single project dedicated case tool (for their own metamodel). The first "proof-of-concept" goal of Motion Modeling (v0.1) is too provide enought class diagrams controls for generating models in java with androMDA Hibernate and EJB cartdriges. With Motion Modeling vO.1d3 you can already create and edit an UML1.4 model with packages, classes, interfaces, attributes, operations, stereotypes, tagged values, associations, generalizations, dependencies... via tree-views, actions and specification forms... XMI models files are AndroMDA compatible (and MOF,XMI,UML1.4,DiagramInterchange compliant) With Motion Modeling vO.1d3 you can also create a class diagram, put or create classes and interfaces in it, put or create associations in it (packages are not implemented in diagrams yet...) Those features is to show the Motion Modeling Architecture and to show how it is easy to extend it by creating new tree-views, new actions or complete the specification forms: - The "Namespaces Tree View" is already implemented with than 15 LINES OF JAVASCRIPT CODE!!! - All the actions already implemented are less than 20 LINES OF JS. - The specification form architecture is well designed, so putting a field (or a checkbox...) in a form page, fill it with some model value and put the form value back in your model is: 1 LINE OF JS!!!! - The full class diagram logic is about 600 LoC (javascript) Motion Modeling aims to be extensible by any side: - (Verticaly) For Developing quickly a new features for an existent MetaModel: To avoid repetitive processes you can create a sort of "Macro" for your models...Or you can from now complete the UML1.4 features...(see III-3). - (Horizontaly) For making motion modeling handle a new MetaModel: such as BPML, UML1.3...Or your own MetaModel... So Motion Modeling IS NOT DEPENDANT ON ANY METAMODEL but it's NORE DEPENDANT ON ANY METAMODEL REPOSITORY: You can use it with full POJO metaModels (However, they will have to provide any Event and association mechanism), you can use it with MDR (for UML1.1 to UML1.5), you can use it with ecore (for UML 2.0). If your Model Repository is NetBeans MDR things are easier because the Motion Modeling JSframework (see III-2) is already configured for it but nothing prevent you to configure JSframework for your repository or not to use the JSframework. Motion Modeling can be extended either in javascript or java (javascript is really faster to write...) Motion Modeling is OPEN SOURCE and Published under GPL Licence. Motion Modeling currently use: - The eclipse IDE and eclipse GEF. - Mozilla Rhino javascript engine. - Netbeans Meta Data Repository (MDR) II- HOW TO USE Motion Modeling. 1- INSTALLING MOTION MODELING You will need a working installation of eclipse 3.1 and GEF plugin to run motion modeling, OR You can also download a full eclipse distributions that includes Motion Modeling and it's dependences on sourceforge project page... For the first solution unzip the motionmodelingv0.1d3.zip file in your eclipse directory and that's all.... For the second just unzip the distribution 2- RUNNING MOTION MODELING - Launch eclipse. - ->Windows->Open Perspective->Modeling Perspective 3- CREATING A NEW MODELING PACKAGE Modeling Package is the main unit in Motion Modeling. One Modeling Package can contain many models of the same metaModel. Modeling Packages are suposed to come from a XMI file or to be created from scratch then to be exported in XMI files. Evrything start by the Modeling Packages view (down-right). -> Right click -> Create a new Modeling Package. Choose the only metamodel currently available : UML1.4. You can work on many Modeling Packages at the same time: switch them with the Modeling Packages view. 4- CREATING A NEW DIAGRAM Once you have created your modeling package, you can switch to the tree views (on the left). There is currently 3 tree views: namespace, class design and diagrams ->Switch to the diagram tree view When you have created your modeling package the UML1.4 support has created a new model called "NewModel"(See 6 for changing it's name) ->Right click on "NewModel"->New Diagram->Class Diagram ->Fill in the name of the diagram then press OK Now your new diagram is opened in the central editor. You can either: - Drag and drop elements from tree views (see 5 for creating them first) - Use the palette bar for creating new Classes, Interfaces, Associations, Dependencies and Generalizations. For exemple: Click on "Class" in the editor palette->Click somewhere in the diagram editor->fill it with values... Repeat that then Click on "Association" in the editor palette->Click one time on the first class->then one time on the second class->fill it with values Each time you create a new element it's opened in the specification dialog 5- CREATING NEW ELEMENTS USING THE TREEVIEWS AND ACTIONS Switch to namespace or class design tree view then: right click on "NewModel"->create a new Package->fill in and validate. You will only see your new package in namespace tree view or class design tree view because diagrams only display elements that contain diagrams (it's not a bug). Repeat it the number you want for creating your application packages tree. Switch to the other tree view and you can see a different point of view for for your package tree: The namespace tree view is hierachicals whereas the class design tree view is like the eclipse JDT packages view. Then right click on one package-> creating a new class->fill the General page->go to attributes and operations pages-> add attributes and operations... At any moment you can Undo/Redo on the edit menu. You can create all elements that way You can also drag and drop elements on others on treeviews, by exemple you can change the namespace hierarchy just by drag and droping an element to its new parent. You can also drag and drop an element from a tree view to a class diagram editor, if it's displayable the element will be represented in the diagram. 6- SPECIFY YOUR ELEMENTS Right click on the element you want to edit->Specification. Their is links from one edition form to other, e.g. when editing a class you can edit one of it's attribute or operations...if you undo a such "compound edition" the whole changes will be undone. Elements can also be created from specification forms: for exemple from a class you can create new operation in it or new attributes... You can also specify elements from a diagram the same way. 7- SAVING AND OPENING MODELING PACKAGES You can now save your modeling package by right-clicking on it in the Modeling Packages Tree View->export Modeling Package For opening it, right click on the XMI file in the resource view (this should work in any eclipse where the xmi file appear) In the context menu choose import as a Modeling Package. 8- OPENING A FILE FROM AN OTHER TOOL You can open a diagram from a XMI file created with any UML1.4 compliant case tool but some tools (like gentleware poseidon) doesn't indicate the metamodel in the headers so: As motion modeling aims to be multi-metamodel, the name and version of the metamodel must be indicated in XMI file so: - Open the XMI file you have created with Gentleware poseidon with a simple text editor. - Add this line: after the end of documentation tag in the header if it's not already present. The first line of your files should be now: Netbeans XMI Writer 1.0 This modification is allowed by XMI specs. III- HOW TO GET FURTHER INFORMATIONS To ask questions, report bugs, get wiki and svn access or whatever mailto: motionmodeling-devel@lists.sourceforge.net IIII- Please help me: We are currently 2 team workers and this project really need more developers, so if you are interested in: - Help us to build the core and JSFramework. - Develop forms, actions or treeviews for UML1.4 for use cases and other UML features - Implement UML2.0 and the ecore JSFramework configuration, Implement BPML (other 1.X UML versions will be easyly implemented when UML1.4 will be released and perfect) - Integrate androMDA - Translate - Develop any new features Let me know in the mailing list.