LemonTree Model version management tool
LemonTree is a tool for versioning model files.
Here is its interface:
On the Lemon Tree interface, you can see the comparison of two or three models:
Element of difference
Differential graph
Element contrast view
Graph contrast view
Attribute contrast view
The following describes the functions of Lemon Tree.
LemonTree functions
Lemon mainly provides two kinds of difference comparison of EA model:
2-way difference comparison: Difference comparison between two model files.
3 way difference comparison: The two model files have the same BASE version model file, and the two model files are compared respectively with the base version while the difference comparison is performed.
Comparison of two models
In the Lemon Tree, you can perform 2-way comparison, that is, compare two model files, and the interface is as follows:
In the 2-way model file comparison mode, the two models are compared. Changes from one model to another are highlighted, and the two models can be merged. However, a 2-way comparison is limited in the type of changes it can detect because it only examines the current state of the model.
The 2-way model comparison is applicable to the comparison of versions of the same model at different times. You can compare the differences between the two model files, and then display the differences between the model diagrams and elements, so that the user can browse the details of the differences and decide how to merge them.
However, if the same model file is created for two users, and the two users modify their own versions at the same time, and then compare, problems will occur.
For example, you have A Model file, Model, that users A and B copy to their respective Model files, Model-a and Model-b, and then modify on their respective model files. Modified (from two branch versions of the same model file).
User A deletes the class2 in package "Package2".
User B deletes class1 from package Package1.
If a 2-way comparison is used, the basic version Model is not considered, but only Mode-A and model-b are compared, and it is found that the two are different as follows:
Model-A has more Package1 Class1 than Model-B
Model-B has more Package2 Class2 than Model-A
If a merge is performed, the contents of the Model are merged into:
Package1,Class1
Package2,Class2
In fact, the user's intention is to delete the class for which he is responsible:
User A Class2 deleted Package2
User B deleted Package1, Class1
The result of performing the merge is that the contents of pakcage1 and package2 of the Model are empty after all are deleted.
Comparison of three models
The comparison of 3-way models in Lemon Tree is aimed at the situation that the comparison of 2-way models cannot meet: there is a common basic version of the two models being compared. The screen shots of the three-way model comparison are as follows:
A 3-way comparison can compare two models, as well as the common base versions of the two. You can detect what changes have been made to the common model.
Still the above example, because in the 3-way comparison, not only the two user versions Model-A and Model-B are compared, but also the two user versions are compared with the basic version Model, so that the basic version can be modified based on the comparison between the user version and the basic version, so as to realize the real intention of the user.
?
This section describes the Lemon Tree page
?
The following describes the Lemon Tree interface.
Model Browsers (Tree Browsers)
The Model browser is used to display models and their changes, as well as to merge previews of the models. For various reasons, only excerpts of the model are shown: the affected elements, as well as all elements, need to be displayed correctly in the original tree structure of the model.
Elements are color-coded, and you can check their state when you hover over them.
If you Change an element or chart, it is marked as Change Type. A description of all Change Types is described here: Change Types
Diagram Viewer
The diagram viewer is used to display two model diagrams. Elements are also highlighted, and the diagram is interactive - selecting an element in the diagram causes the model browser to select that element so that changes in the model can be quickly identified.
Property Viewer
The Property Viewer displays the properties of the selected element. You can view changes at the attribute level of an element. You can take individual properties from "A" or "B" and edit some properties.
Be likely to show
All attributes
Change only the properties
?
Find more details on the Property Viewer page.
Manually override automatic merge suggestions
In merge mode, a merge preview is displayed. As mentioned earlier, this Outlines the resulting model. LemonTree will pre-select elements according to the merge rules described in the Diff&Merge Strategy. It will try to preserve its original intent - that is, to identify changes in the two models and retain those changes in the resulting model. However, in some cases, you may want to override these decisions and choose a version of an element over others.
You can use the small button with Angle brackets to do this in the tree browser. Using a button like this instructs LemonTree to prioritize this version. It will also respect dependencies and other linked elements so that the selected elements will be completed in the merge model. When you do this, the elements that differ from the user's preselected decision are marked with a small hand icon.
Starting with LemonTree 2.2.0, you can also make decisions in the graph viewer. When selecting an element, LemonTree now provides buttons to bring that version into the merge preview./p>
merge
Finally, you can click the Start Merge button in the toolbar to instruct LemonTree to export the model to the EAP file. If VCS Integration has started LemonTree, clicking this button will immediately begin exporting the model to a predefined location. In manual mode, you can now select the output folder and file name of the merged model.
LemonTree uses A (their) model as a template for writing merge models. As a result, unsupported tables (mainly maintenance tables and configurations) are retained from a release. Changes to tables that are not supported in other versions are discarded.
Which use cases are supported by Lemon Tree
Lemon Tree can effectively support MBSE team modeling related to version management work, the specific support scenario is as follows:
Scenario 1: Versioning the model
Scenario 2: Build Management - Continuous integration of models
Scenario 3: Change management and model review
Scenario 4: Release management of models in product line development
Scenario 1: Versioning the model
The team's modeling efforts need to be able to work with parallel versions of the model.
LemonTree supports the comparison and merging of different versions of the EA model.
LemonTree integrates seamlessly into existing version control systems. SVN, Git, CVS, TFS, and PTC are supported.
Scenario 2: Build Management - Continuous integration of models
?
Continuous integration is an effective configuration management method in software development. Every published change to the source code is continuously merged into the repository and then automatically checked, created, tested, and packaged on the build server. This ensures that the software being developed is always in a tested and executable state. LemonTree for the first time allows the continuous accumulation method to be used in the field of modeling. Similar to traditional software development, team members can work on different areas of the model in a distributed and time-shifted manner and introduce their changes. Automation then runs the individual versions on a build server (Jenkins, for example, forms an integrated LemonTree model version without any user interaction). Only in the case of complex conflicts, when contradictory changes are made to the same model element, are the relevant users notified, and these conflicts must be resolved manually using LemonTree.
Scenario 3: Change management and model review
Functional safety standards such as ISO26262 require configuration and change management of all development-related artifacts. With LemonTree, you can keep track of which user made what changes and can query those changes at any time. This is helpful for teamwork and is essential in the field of functional safety. LemonTree can also evaluate or "review" these changes. In addition, LemonTree is able to save the review configuration, including the model version to be evaluated and the current state of the review. Comments can also be transparently inserted into the branch to support an optimized review process.
Scenario 4: Release management of models in product line development
In the process of product line development, platform and component are generally used for rapid development. In this case, you need to support the main line and branches of the platform model. LemonTree can branch platform models, and can also merge branches into the main line model.
Pitaya software provides consulting services team collaborative modeling environment, can help users to set up a complete team modeling and MBSE solution
It is hoped that this paper can provide inspiration and reference for MBSE team model versioning management.
?
More information about EA modeling is as follows:
Article: http://www.mbse-x.com/modeler/index_en.asp
If you would like more information:
About the author:
Zu Tao, founder of Dragon Fruit Software Engineering, founded Dragon Fruit Software Engineering in 2001 and founded the IBM Rational User Group in 2004. In 1998, I participated in the national key research project "Domain-specific Component-based Software Reuse" as a backbone, and had the honor to deeply learn and use UML to conduct domain modeling and refine reusable components and architectures. In the later research and development projects, I have been using the model for analysis and design, and accumulated some experience and experience. I have been focusing on MBSE for 20 years, and am familiar with modeling languages and specifications such as UML, Sys ML, ArchiMate, BPMN, UPDM, DataModel, etc. In my previous experience, the biggest impression is that the field of software engineering and system engineering, which brings together many elite talents, has been in a messy and confusing state for decades. From my own experience, I feel that a clear model is the key to clear the fog of engineering, so I continue to study and apply various modeling techniques, and extract experience from my own engineering practice to form a sustainable methodology for my own. For example, MBSE from Method to Practice Guide, Model-based 3D R&D Management, Model-based Requirements Management, Model-driven Architecture Design, Model-based Quality Management, Model-based People Capability Management, and iProcess Process Improvement Methodology are currently working as product managers and architects. Conduct research and development of MBSE (Model-based Systems Engineering) platform, hoping to establish a model-based engineering solution, and will continue to write some articles in the future, hoping to give peers some reference. |
|
|
|