Project management

Together is designed to minimize or even eliminate the need for extensive project management. Once you have defined the project structure, created the necessary project file(s), customized your configuration options at all necessary levels, and set up your tools and version control integration, there's really very little else you need to do on an ongoing basis. There's no need to continually update a repository before code is generated, because Together generates code and synchronizes with the model as your team works.

As the project administrator, you will want to make sure that all your modeling files and all newly created files get placed under source control. (For information, see Common Customizations: Version Control Integration: Together files to include in version control).

You might also consider developing moduless to run Together's documentation generation (via the command-line interface) and integrate this as part of a periodic automated build process. for more information see Reference: Command Line parametersand Together API.

Setting up large projects

What constitutes a "large" project? A good thumbnail definition might be "any project that takes too long to reverse engineer". You just can't get around the basic laws of computer science: even Together's legendary parsing engine needs instruction cycles and system resources to parse your code. The more code you have, the more resources it takes, and eventually you hit a point of diminishing returns. The good news is that with Together you can employ some simple project management techniques that will help you avoid such problems.

When it comes to extremely large code bases, remember the old adage that says "How do you eat an elephant? One bite at a time." If you have a huge project, you don't deal with it all in one chunk. You divide it up into subsystems, and perhaps modules or components within those subsystems. In Together, that translates to projects and subprojects. Don't attempt to create a single project that encompasses your entire code base. Instead, identify the subsystems and the modularity within them and create a number of Together projects in key directories of particular interest or significance. For an example of how this might be done, look at the /component/CoadModelingComponent directories under your installation. Although this is not a particularly large code base, it is illustrative of the project-subprojects technique you can employ for massive projects.

You should also consider automating documentation generation for very large projects as described above. You can write a script or module to regenerates all documentation, a set of scripts to updated different parts which are run automatically on different nights.

Creating views with referenced content

With the project definition features of Together you can create projects whose content is purely logical and contains only things you need to see for a particular purpose. For example, you could create a directory that is strictly for views of your code base. Under it you can create a series of project folders that contain Together projects that bring in different parts of your code... only abstract classes in your problem domain for example.

When creating such projects, you can specify as resource roots only those specific subdirectories you are interested in. Other directories with classes etc. you might want to show (but not modify) can be specified in the Source/Classpath list. (For more information, see Creating and Opening a Project.)

Performance tuning

Here are several things you can check before tackling large code bases.

Integrating a project with Version Control

Even when version control is enabled in Together configuration options, you must still specify a version control system project for each Together project.

In both cases, check the Version Control option and specify the version control system repository.

For more information consult these topics: