# 6.9配置和版本管理工具

配置管理工具主要在以下任务中为软件架构师提供支持：\
• 配置元素的分配和选择\
• 盘点(清查)\
• 配置重建

#### &#xD;6.9.1需求和决策标准

• 对大型开发团队的可扩展性\
• 对任何变体(分支、版本)的处理\
• 可靠性和健壮性\
• 与其他工具的集成(例如，版本管理，问题和需求管理，构建工具，代码管理)

#### &#xD;6.9.2配置和版本管理工具面临的挑战

• 配置和版本管理的基本术语和概念通常取决于所使用的工具\
• 在大型系统中，诸如分支或合并等操作往往很复杂，尽管有工具支持，但仍然容易出错。实际上，几乎不可能合并来自不同分支的非文本工件（图表、模型、二进制文件）。\
• 分段的策略、开发、测试和运营环境之间的过渡、这些环境之间的权限分配以及类似的组织责任是复杂的任务，目前没有标准的解决方案。\
• 可理解性(更大的复杂性导致在处理配置或版本时出现更多的错误)

#### &#xD;6.9.3Examples

• 用于源代码和文件版本控制的工具，如CVS、Subversion、Git或Mercurial\
• 用于管理开发过程中所有工件的不同版本及其依赖关系的工具 - 例如，Apache Ivy、Maven/Nexus\
• Rational ClearCase (IBM Rational)\
• OMNITRACKER (OMNINET GmbH)\
• Perforce (Perforce Software)\
• Surround SCM (Seapine)\
• Team Foundation Server(Microsoft)
