Preface
Enterprise Architect is a powerful tool for modeling and designing complex systems and architectures. However, managing and finalizing a project can be challenging, especially when working with multiple architects and engineers. In this blog post, I will share some best practices and tips on how to version and prepare your model and its diagrams for collaboration, and how to handle future releases of your work to the model.
Versioning
Versioning is a key aspect of managing changes and revisions to your project. It allows you to save a history of changes to packages, retrieve previous revisions of packages, and compare and merge different versions of packages. Enterprise Architect supports various version control systems, such as Subversion, Git, CVS, and others1.
To use version control in Enterprise Architect, you need to place individual model packages, view nodes, or root nodes under version control. This will create a version control configuration file (VCConfig.xml) in your project folder, which contains the information about the version control system and the location of the version control repository. You can also specify the version control settings in the project options dialog1.
There are two main scenarios for using version control in Enterprise Architect: centralized and distributed. In a centralized scenario, all team members work on the same model repository, which is stored on a shared network drive or a cloud server. In a distributed scenario, each team member works on a local copy of the model repository, which is synchronized with a remote version control repository2.
The recommended process for versioning your packages depends on the scenario you are using. Here are some general steps to follow:
- Check out the package you want to work on. This will lock the package for editing and prevent other team members from modifying it.
- Make the changes to the package as needed. You can also create baselines for the package, which are snapshots of the package at a particular point in time. Baselines can be used for comparing and merging changes later3.
- Check in the package when you are done. This will submit your changes to the version control repository and release the lock on the package. You can also add a comment to describe your changes.
- If you are using a distributed scenario, you need to synchronize your local model repository with the remote version control repository. This can be done by using the update and commit commands. Update will download the latest changes from the remote repository to your local repository. Commit will upload your local changes to the remote repository2.
If you need to roll back or undo your changes, you can use the get latest or get revision commands. Get latest will retrieve the most recent version of the package from the version control repository. Get revision will retrieve a specific version of the package from the version control repository. You can also use the compare and merge tool to review the differences between versions and select the changes you want to keep or discard1.
Preparing the Model and its Diagrams for Collaboration
Collaboration is an essential part of working on a complex Enterprise Architect project. It allows you to share ideas, feedback, and insights with other team members and stakeholders. Enterprise Architect offers several features and tools to support collaboration and communication, such as:
- Peer-to-peer chat and element discussions. You can use the collaboration window to send and receive messages with other team members, and attach relevant model objects, images, and files. You can also hold discussions on individual elements and objects in the model, and monitor them for incoming messages4.
- Review elements. You can create review elements to conduct formalized reviews of your project. You can appoint approvers, set a timeline, and send reminders for the review. You can also gather feedback and comments from stakeholders using WebEA, which is a web-based portal for accessing and interacting with your model4.
- Auto-refresh diagrams. You can use the auto-refresh diagram option to collaborate on diagrams in real-time. This will refresh the diagram at a preferred time-interval and show the latest updates from other team members. You can also use the chat, discussion, and review features to communicate and coordinate with your team4.
- Prolaborate. Prolaborate is a web-based solution that allows you to deliver tailored views of your model information to non-modelers. You can create dashboards, charts, reports, and integrations to present and share your model data in a simple and engaging way. You can also elicit feedback and reviews from stakeholders and track their responses4.
To prepare your model and its diagrams for collaboration, you need to ensure that they are clear, consistent, and accurate. Here are some tips to follow:
- Use appropriate modeling standards and notations, such as UML, BPMN, ArchiMate, and others. This will help you communicate your ideas and designs in a common and understandable language.
- Use consistent naming conventions, styles, and colors for your elements and diagrams. This will help you maintain a coherent and professional look and feel for your project.
- Use appropriate levels of abstraction and detail for your elements and diagrams. This will help you avoid clutter and confusion, and focus on the most relevant and important aspects of your project.
- Use connectors, notes, legends, and stereotypes to add more information and context to your elements and diagrams. This will help you explain the relationships, meanings, and purposes of your elements and diagrams.
- Use validation, auditing, and testing tools to check and verify the quality and correctness of your model and its diagrams. This will help you identify and resolve any errors, inconsistencies, or issues in your project3.
Handling Future Releases of your Work to the Model
Once you have finalized your project, you may need to handle future releases of your work to the model. This may involve adding new features, fixing bugs, or making improvements to your project. To handle future releases, you need to follow a structured and organized process, such as:
- Plan and prioritize your work. You need to define the scope, objectives, and requirements of your future release. You also need to estimate the time, cost, and resources needed for your work. You can use tools such as Gantt charts, Kanban boards, and roadmaps to plan and track your work3.
- Create and manage branches. You need to create a separate branch for your future release, which is a copy of your project that you can modify independently. You can use the branch and merge tool in Enterprise Architect to create and manage branches. This will allow you to work on your future release without affecting the main version of your project1.
- Test and review your work. You need to test and review your work before releasing it to the model. You can use tools such as simulation, debugging, and profiling to test the functionality and performance of your work. You can also use tools such as review elements, WebEA, and Prolaborate to gather feedback and approval from your team and stakeholders43.
- Merge and publish your work. You need to merge your work with the main version of your project, which is the final step of releasing your work to the model. You can use the compare and merge tool in Enterprise Architect to merge your branches. This will allow you to resolve any conflicts and apply your changes to the project. You can also use tools such as documentation, reporting, and publishing to generate and share the output of your project13.
Conclusion
Finalizing a complex Enterprise Architect project can be a challenging task, but it can be made easier by following some best practices and tips. In this blog post, I have shared some of them on how to version and prepare your model and its diagrams for collaboration, and how to handle future releases of your work to the model. I hope you have found this blog post helpful and informative. If you have any questions or comments, please feel free to contact me. Thank you for reading. 😊