Considerations for project growth and expansion

As the project expands and complexity grows, you have several options for growing the project. Sometimes, the best approach is to continue adding new elements into a single Rhapsody® project. In other cases, it is more efficient to create a new project.

No single solution fits all scenarios. Consider the following issues when planning for project growth and expansion:

  • For a single project, it is easy to apply a property or set of properties to all model elements. For multiple projects, the process must be done for each project.
  • The configuration management archive that is associated with a project is stored in a project‑level property. Therefore, if a project will be stored in more than one archive, you must create a separate project for each archive.
  • When you want to achieve a situation where all team members are aware of all the design parts, including those parts that they are not directly involved with, having a single project is a good approach.
  • If you want to isolate the work of different team members so each member sees only the elements relating to their work, create multiple projects (one for each team member).
  • Distributed teams working on different components of a system can benefit from splitting the overall project into several smaller projects.
  • If you want to reduce the complexity of a project, you can create multiple projects that define and encapsulate each functions for the overall project. In this way, all team members can have access to all the elements in the overall project.
  • When your project is practicing in a binary reuse pattern, split it into several projects. When using a model reuse pattern, do not split it.
  • When the project is mapped to several binary components that are interleaved in order to create a final product (for example, a set of libraries used by one or more executables), placing them in a single project helps the team member designing not only the internals for the component but also the relations between them using component diagrams (makefiles take into account cross‑component relations).

The following issues typically do not affect the decision to split a project into multiple projects:

  • Time to load the project into Rhapsody . The partial load feature enables you to load only the units that are needed for your current task without loading the entire project.
  • The operating system. If a single design needs to be regenerated to target several operating systems, there is no need to create multiple projects.

The decision of how to structure the overall project is not irreversible; you can easily divide a project into two projects, and you can merge two projects into a single project.