Understanding Team Development
ContentsThe chapter is organized as follows:
Planning for Team DevelopmentDeveloping complex systems requires that groups of analysts, architects, and developers be able to see and access the "big picture" while working on their own portion of that picture. Successfully managing an environment where multiple team members have different kinds of access to the same model requires:
- Formulating a working strategy for managing team activity.
- Having the tools to support that strategy.
Developing a Strategy
When working in teams, you need to develop strategies for:
- Supporting current development.
- Maintaining and retrieving the reusable modeling artifacts that result from development.
Current Projects
When developing current projects, the tools that a team uses must be able to:
- Provide all team members with simultaneous access to the entire model.
- Control which team members can update different model elements.
- Introduce change in a controlled manner.
- Maintain multiple versions of a model.
Implementing a configuration management or version control system is essential for complex projects. A configuration management system can effectively support team development as long as it:
- Protects developers from unapproved model changes.
- Supports comparing and merging all changes made by multiple contributors.
- Supports distributed (geographically dispersed) development.
Developing for Reuse
When you develop a system, you develop valuable project artifacts that can be reused. Artifacts are typically maintained in some type of repository. To support reuse:
- Model artifacts should be architecturally significant units, such as patterns, frameworks, and components (not usually individual classes).
- All members of a team, no matter where they are located, should have access to reusable artifacts.
- It should be easy to catalog, find, and then apply these artifacts in a model.
A reuse repository can differ from your project's configuration management system as long as it supports versioning. Versioning is a process of tracking a file's history from the initial version to the current version.
The repository should also support cataloging artifacts at an appropriate level of granularity, for example, at the component level.
How Rational Rose Supports Team DevelopmentTo support teams of analysts, architects, and software developers, Rational Rose:
- Allows team development of a shared model by supporting decomposition of the model into versionable units, called controlled units.
- Permits model files and controlled units to be moved or copied among work areas by using the virtual path map mechanism.
- Enables teams to manage their model in concert with other project artifacts by integrating with standard source control systems.
- Provides a separate tool, called Model Integrator, to compare and merge controlled units.
- Enables teams to build their models in concert with other project artifacts by integrating with standard build environments.
Since managing parallel development is so crucial, Rational Rose provides integrations with Rational ClearCase and with SCC-compliant version control systems, such as Microsoft Visual SourceSafe. By integrating configuration management systems, Rational Rose makes frequently used version control commands directly accessible from the Rational Rose menus, such as check in and check out functions.
Rational Software Corporation
http://www.rational.com support@rational.com techpubs@rational.com Copyright © 1993-2001, Rational Software Corporation. All rights reserved. |