【问题标题】:Best approach to perform a CMMI Physical Configuration Audit?执行 CMMI 物理配置审计的最佳方法?
【发布时间】:2010-09-19 16:31:27
【问题描述】:

我目前工作的组织正在进入整个 CMMI 世界,记录一切。我(和另外一个人)被分配了配置经理的头衔。恭喜我没错。

部分职责是定期(他们仍在定义定期,将按季度或按月)进行物理配置审计。这基本上是检查生产中部署的源代码版本与我们认为生产中的源代码版本。

我们的项目是一个相对较小的 Web 应用程序,用 Java 编写。我们使用的文件类型是 java、jsp、xml、属性文件和 sql 包。

我遇到的问题(并且已经表达但似乎被忽略了)是我应该如何物理登录到生产服务器并验证文件版本,即使我可以这样做也会花费大量时间?

文件版本当前甚至不在文件中(即在评论或其他内容中)。建议我们在每个用户可见的屏幕上放置可见的版本号。我也觉得这很荒谬,因为屏幕本身只代表我们维护的代码的一小部分。

我们目前使用的工具是用于 IDE 的 Netbeans 和作为版本控制工具的 Serena Dimensions。

我正在特别寻找有关如何以希望更自动化的方式执行此审核的想法,这种方式既准确又不耗时。

我目前的想法是在每个文件的顶部添加一个包含该文件版本号的注释,一个在创建生产构建时运行的脚本以创建 XML 文件或包含文件名和版本的类似文件构建中每个文件的文件。然后,当我需要进行审核时,我会去生产服务器获取包含信息的 xml 文件,并以编程方式将其与我们认为在生产中的内容进行比较,然后输出报告。

任何更好的想法。我知道这必须已经完成,而且我还没有找到任何其他资源,这对我来说似乎很疯狂。

【问题讨论】:

    标签: configuration-management cmmi


    【解决方案1】:

    您可以计算生产服务器上源文件的 SHA1 哈希值,并将该哈希值与存储在源代码控制中的版本进行比较。如果您可以在源代码管理中找到相同的哈希,那么您就知道生产中的版本。如果您无法在源代码管理中找到相同的哈希值,则说明生产中存在未跟踪的修改,并且您的新职位是合理的。 :)

    【讨论】:

    • 我没有考虑过,这似乎比评论的想法更可靠。评论的想法让我很困扰,因为在处理文件时很容易忘记更新它,或者只是输入了错误的版本号。
    • 一个对现有代码库影响最小的好主意 - 无需在所有源文件中嵌入 cmets,并且在很大程度上独立于使用的 CM 系统。适用于部署源本身的 html/xml/etc 文件之类的东西。对于可执行文件,您还需要 CM 控制下的 exe。
    • 你真的应该CM一切:包括真正符合CM过程域目标的开发环境。问问自己:您能否准确地复制上一个发布版本。相同的编译器...jars 等只是能够重新部署并不能让您稍后调试它。
    【解决方案2】:

    您不能为此使用源代码管理吗?如果您部署一个版本并使用该部署标记您的源代码控制,那么您可以根据源代码控制系统进行验证

    【讨论】:

    • 想到了这一点,但我们正在使用源代码控制系统来确定应该在生产中使用什么。问题在于弄清楚生产中的实际情况。
    【解决方案3】:

    典型的陷入 CMMI 陷阱的组织是试图做任何事情都做得过火。如果我可以提出任何建议,那就是从小处着手,只做你需要的。因此,请考虑您之前在 CM 领域可能遇到的任何问题。

    CMMI 描述了组织应该做什么,但如何由您决定。 CMMI specification,第 2 章非常值得一读 - 它描述了规范的必需、预期和信息性组件 - 基本上目标是必需的,实践是预期的,其他一切都是信息性的。这意味着只有一小部分规范是 CMMI 评估员可以直接要求的——目标。在实践层面,允许采用所描述的实践,或可接受的替代方法

    在配置审计的情况下,目标 SG3 是“建立和维护基线的完整性”。 SP3.2 说“执行配置审计以保持配置基线的完整性。”这里没有说明这些操作的频率或可能需要多长时间。

    在我以前的组织中,FCA/PCA 通常只作为产品发布过程的一部分进行,我们使用 ClearCase 作为版本控制工具,并在代码库中应用标签来定义基线。我们在所有源文件中都没有版本号,在所有产品屏幕上也没有版本号 - CM 活动正在做正确的事情并得到审计的支持,这在任何 CMMI 评估中都不是问题. 我们可以使用标签之间的差异来查看哪些文件发生了更改,执行差异来查看实际的代码更改。该过程的一个重要部分是能够将这些更改链接回需求/错误报告/引发更改的任何原因。

    我们的审计确实使用脚本来自动化流程,但这些是内部开发的特定于 ClearCase 的脚本 - 基本上它们会列出所有文件、它们在 CM 系统中的版本以及它们所针对的基线/配置项属于。

    【讨论】:

    • 这几乎就是我对 CMMI 的理解,它更像是一个概括性的指导方针,我们留给实现者来决定如何去做。
    • 不幸的是,有人告诉我,他们基本上希望将当前生产中的内容与我们根据基线认为的生产中的内容进行比较。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2015-07-27
    • 1970-01-01
    • 2010-10-17
    • 2010-10-16
    • 1970-01-01
    • 2010-09-13
    相关资源
    最近更新 更多