SVN 项目目录组织结构总览

该文档概述了 SVN 项目的推荐目录结构。每个主要目录的详细说明和具体规范将通过内部链接指向独立的原子性笔记,以便于更深入地探索。



├─AUDIT REPORT      审计报告:包括基线审计、交付件审计和内部审计
├─CI
│  ├─BUSINESS       技术建议书,产品规划,规划级别的输入
│  │  ├─Estimation  估计表单
│  │  └─SOP         项目任务书,功能列表
│  ├─DESIGN
│  │  ├─HLD         概要设计文档
│  │  └─LLD         详细设计文档
│  ├─PLAN           PPH,PPL,配置计划,WBS,风险跟踪表、测试策略等
│  ├─REUSE LIBRARY  重用组件库(不需要进行代码修改的)
│  ├─SRC            代码
│  │  ├─build       编译,打包脚本
│  │  ├─Code        源代码
│  │  ├─lib         需要的库文件
│  │  └─Sql         项目相关的SQL文件,初始化,存储过程
│  ├─SRS            用户需求规格、软件需求规格、数据库、接口规格和界面原型
│  ├─TEST PLAN      测试方案,测试用例(包括开发部和测试部)
│  │  ├─IT          集成测试用例
│  │  ├─ST          系统测试用例
│  │  └─UT          单元测试用例
│  └─USER MANUAL    用户手册:操作手册,安装手册,维护手册,指南等
├─CM                配置状态发布表,变更申请
├─MERTRICS
│  ├─Metrics Sheet   度量表
│  └─TimeSheet       每日填写的时间表格
├─PM
│  ├─Appoved  Report     批准报告(保持的批准邮件或通过的评审意见书)
│  ├─Minutes of Meeting  会议纪要
│  └─Reports         所有项目报告:周报,日报,阶段报告,结束报告,月度报告等
├─REFERENCE          参考文档
│  ├─Management      管理相关参考文档
│  ├─Manual          参考手册,白皮书灯
│  ├─Process         过程相关参考
│  └─Product         标准,规范或产品资料等
├─RELEASE            发布(安装包+用户手册)
├─REVIEW RECORD      各阶段评审记录
├─TEST               项目组测试相关代码、数据、
│  ├─code            测试代码
│  ├─data            测试数据
│  ├─lib             测试需要的库
│  └─script          测试脚本
├─TEST RECORD        测试记录、测试报告
│  ├─IT              集成测试记录、
│  ├─ST              系统测试记录
│  └─UT              单元测试记录
├─TOOL               项目相关工具,比如代码比较工具,单元测试工具等
└─TRAINNING          培训资料

版本结构

代码和发布包的版本结构是项目管理的关键部分,以下是对其概括性说明和深入探讨的链接:

text
code
├─CA
│  └─com.ccit.networldca.ca
└─RA
   └─com.ccit.networldca.ra
RELEASE
├─V100R001B001
│  ├─ca.war
│  └─ra.war
└─V100R001B002
   ├─ca.war
   └─ra.war

如果发布内容包含除了核心程序包以外的其他内容(如客户端、网站目录等),可以根据需要建立子文件夹。详情见 SVN 发布内容组成

RELEASE
└V100R001B001
   ├─客户端
   └─网站
      ├─ca.war
      └─ra.war

内容存放指导原则

项目中的各类文档和文件应根据其性质和来源进行适当存放,以保持清晰的组织结构。详细的存放指导原则请参考 SVN 内容存放指导原则

  • 外部文档: 客户、市场或规划人员提供的文档,无论其名称或性质,均应存放于 CI/BUSINESS 目录下。
  • 需求相关文档: 系统接口、技术规范等文档属于需求类,应归类到相应需求文档目录。
  • 发布件: 准备在 RELEASE 目录下发布时,应包括所有需要提供给客户的最终件(如 war 包、SQL 脚本、工具、用户手册、接口设计、测试报告等)。
  • 项目内部参考: 既非客户需求也非最终交付物,但项目开发过程中需使用的文件,可存放于 REFERENCETOOL 目录。

提交要求与权限控制

SVN 项目的提交和权限管理是确保版本库完整性和可追溯性的重要环节。更详细的提交要求和权限策略,请参考 SVN 提交与权限管理

  • 即时入库: 项目启动后,所有正在编写的文档和代码应立即提交到配置库,无论其完成度如何。
  • 发布规范: 提供给测试组的所有发布件必须在 RELEASE 目录下建立专用的版本目录,并从此目录发布。一旦发布,该目录内容不允许更改。

基线管理 (Baseline)

基线(Baseline)是项目生命周期中的一个重要概念,它标志着特定阶段的稳定状态。关于基线提升、内容组成和管理策略的详细信息,请参考 SVN 基线管理

  • 基线提升: 测试完成后,CIRELEASE 目录的内容将被提升到 baseline。内部验收和最终发布只能从 baseline 中获取,并且 baseline 只能添加新内容,不允许修改现有内容:
└─baseline
    ├─CI
    └─RELEASE
  • 临时发布: 临时向客户发布单个文档时,同样需要在 release 目录下建立临时目录进行管理:
└─controled
    └─RELEASE
        ├─V100R001B001
        └─V100R001B002
            └─上线方案.doc
  • 最终基线内容: 最终的 baseline 应该包含项目的所有关键内容,并附带一个 readme 文件说明:
─baseline
  ├─CI
  └─RELEASE
      ├─V100R001B001
      ├─V100R001B002
      └─V100R001B003
          ├─ca.war
          ├─init.sql
          ├─ra.wat
          ├─readme.txt
          └─上线方案.doc