`
ruilin215
  • 浏览: 1143765 次
  • 性别: Icon_minigender_2
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

【探索需求对话1】CMM只是一种标准,UML只是一种记录需求的工具

阅读更多

探索需求对话<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

潘加宇 熊妍妍 / 翻译整理

本文刊登在2004年6月《程序员》杂志上,版权所有,未经许可,禁止任何形式的转载,违者必究!

2004319日,温伯格先生应邀在UMLChina通过远程音频与开发人员做了一次有关“探索需求”的交流,很多开发人员都受益颇多。为此,我们翻译整理了这次交流实录,从中我们可以体会到大师的思想。

CMM只是一种标准,UML只是一种记录需求的工具

CMM能帮我们吗?

我想这样回答:CMM能帮你,也能害你,就看你对它的期望是什么。在美国,很多人从CMM中获益良多,同样,也从UML中获益良多。在很多时候,很多人未能得益于CMMUML,是因为他们不适当地使用CMMUML,或者期望从中得到太多。所以,要适当地应用这些工具。

我们先说CMMCMM是你在开发软件时应该考虑的东西的列表。如果你不考虑这些东西,你可能正在犯一个大错误。虽然说光做这些事情是不够的。在很多美国公司,你付给他们钱,他们会填好CMM的表格,然后你就达到某个级别了。他们这样做是因为只有当你的认证达到了某个级别后,某些美国公司和政府机构才会与你签约开发软件。他们这样做是错误的,CMM级别不能保证任何事情,如果你采用别的途径能达到目的,CMM对你就没用了。CMM只是一个标准,使一些人认为你们是更好的软件工程师,比实际上的水平更好。要让CMM帮到你,你必须了解每项实践的含义,开发你自己的方法来设身处地实现。CMM不会明确告诉你每项必须做的实践是怎样做的,相反,它更多地告诉你要完成什么,不管通过什么方法来完成,都是好的。

我们发现涉众(stakeholder)不理解我们的UML图。

这个问题在美国这里也很普遍。UML是为技术人员设计的工具,帮助技术人员来准确地捕获需求。它很大程度上是技术性的,对大多数客户或涉众来说,太技术性了。很多涉众不能理解它,实际上也不需要理解它。必须翻译给他们。如果你希望你的涉众懂得UML,你就误解了UML这个工具和如何使用UML

如何使用用例来捕获需求?

UML是一种方法。当然,它不是捕获需求的方法,而是记录需求的方法。你应该明白这两者的差别。捕获需求这个过程只能够发生在人和人之间,可能是很多人,一大群涉众。他们使用自然语言,例如,你们用汉语,我们用英语。如果你不能精通你自己的语言,UML不会在捕获需求方面给你提供任何帮助。我们看到过很多事例:工程师们认为涉众应该懂得UML,但实际不是,因此他们就责备涉众不懂UML。这当然是错误的。涉众是客户,你应该为客户提供服务,而不是让他们来服务你。你的工作就是为客户服务。

您对“软件工艺”如何看待?

好的。我的观点是,对于开发,特别是开发软件,绝对是一种工艺。那些开发者是工匠、艺术家。我总是在人群中寻找工匠,比如找他们来做项目。但我不能通过问一些问题或观察一些事情来判断他们是不是一名工匠。例如,告诉你一些我自己的事情吧。我曾经打过家具。我是从父亲那里学到这门和木头打交道的手艺的。如果打算去买一些材料来做家具,可以四处看,我可以看到一些标志性的东西,告诉我这是否是一家好的家具店。我建议软件人员尝试更多的工匠术语,如工具、家具之类的。在软件业中道理是同样的。你注意到他们的工具了吗?他们是否为每项工作选择了正确的工具?他们是否会适当地使用他们的工具?一名好的工匠不会责备他的工具,因为选择正确的工具,并保持它的锋利和干净,是工匠的职责。如果他做不到这一点,他就没有什么好抱怨的。

分享到:
评论

相关推荐

    CMM、UML学习心得和材料

    CMM是由美国卡内基梅隆大学软件工程研究所(SEI)开发的一种评估软件开发组织成熟度的标准。它分为五个等级:初始级、可重复级、已定义级、已管理级和优化级。每个级别都代表了一种更高级别的过程管理和改进能力。...

    UML之CMM与项目管理

    U M L 之 C M M 与 项 目 管 理

    软件工程复习题含有答案 uml cmm

    综上所述,软件工程复习涵盖了模型构建、UML语言、团队开发、需求分析、面向对象设计、CMM模型等多个方面,这些都是成为一名合格的IT专业人员必备的知识。通过深入学习和实践,我们可以提高软件开发的质量和效率。

    CMM3 标准学习资料

    1. **过程标准化**:CMM3强调的是将软件开发过程标准化,建立一套明确、可重复使用的流程,确保所有项目按照相同的方法进行,减少因人为因素导致的不一致性和错误。 2. **文档化**:在这一阶段,组织需要详细记录...

    CMM标准文档模板

    **CMM标准文档模板**:CMM(Capability Maturity Model)是CMMI的前身,这份模板可能包含了一系列用于指导组织按照CMM标准建立文档的示例和指导。这些模板可能包括项目计划、需求规格、设计文档、测试计划、质量报告...

    CMM3标准

    CMM,全称为Capability Maturity Model,中文译为能力成熟度模型,是由美国卡内基梅隆大学软件工程研究所(SEI)开发的一种用于评估和改进软件开发组织能力的方法论。CMM3是该模型的一个阶段,代表了“已定义级”...

    CMM3文档标准模板

    CMM,全称为Capability Maturity Model Integration,即能力成熟度模型集成,是软件开发领域的一个重要框架,用于评估和改进一个组织的软件开发过程和能力。CMM3是该模型的第三个级别,代表已管理级,它强调对软件...

    CMM 培训教程-IBM

    **CMM(Capability Maturity Model,能力成熟度模型)**是一种评估软件开发组织过程能力的标准,由美国卡内基梅隆大学的软件工程研究所(SEI)开发。它旨在帮助组织提升其软件开发过程的效率和质量,通过一系列级别...

    呼叫中心CC-CMM标准文档

    ### 呼叫中心CC-CMM标准文档知识点详解 #### 一、呼叫中心能力成熟度模型(CC-CMM)概述 **1.1 模型背景** - **起源与发展**:CC-CMM由客户世界机构(CCMWorld Group)发起,并联合了多个领域的合作伙伴共同创立。...

    CMM各种标准文档(具体例子)

    CMM,全称为Capability Maturity Model Integration,即能力成熟度模型集成,是评估软件开发组织过程能力的一种框架。CMM分为五个级别,从初始级到优化级,逐步提升组织的软件开发能力和过程效率。CMM标准文档是实现...

    CMM3标准管理模板和常用项目管理文档(合集162文档)

    CMM3,全称为Capability Maturity Model Integration,即能力成熟度模型集成,是软件开发过程中的一个里程碑式标准,旨在提升组织的软件工程能力和过程改进。CMM3着重于过程的标准化、量化管理和持续改进,以确保...

    CMM、CMMI标准名词术语

    ### CMM、CMMI标准名词术语解析 #### 1. AT Assessment Team 评审小组 - **定义**:评审小组是一组被指定负责评估组织内软件开发或项目管理过程是否符合既定标准的专业人员。 - **作用**:通过专业的视角审查项目的...

    SSE-CMM浅析

    SSE-CMM作为一种全面评估和改进组织安全工程能力的模型,不仅为组织提供了一个标准化的评估框架,还促进了系统安全工程领域的持续发展。随着技术的进步和社会对信息安全重视程度的提高,SSE-CMM的应用将会更加广泛,...

    CMM3标准开发流程模板

    《CMM3标准开发流程模板》是一套完整的软件开发过程模型,旨在提升组织的软件开发质量和效率。这一标准由21个章节组成,涵盖了...CMM3标准不仅适用于大型企业,也适用于中小型企业,是提升软件开发管理水平的重要工具。

    CMM 标准简介(英文)

    CMM 标准简介(英文)

    CMM3标准管理模板.zip

    CMM3,全称为Capability Maturity Model Integration三级,是能力成熟度模型集成的第三个级别,是一种用于评估软件开发组织过程能力的国际标准。CMMI由美国卡内基梅隆大学软件工程研究所(SEI)开发,旨在提高软件...

    cmm程序语言编译器

    CMM程序语言编译器是一种专门用于解析和转换CMM(一种抽象的中间语言)代码的工具。这个项目是基于JavaCC(Java Compiler Compiler)构建的,JavaCC是一款强大的Java语法分析器生成器,它能够根据用户定义的语法规则...

    CMM标准文档模板.rar

    CMM(Capability Maturity Model,能力成熟度模型)是一种评估和改进组织软件开发能力的方法论,它由美国卡内基梅隆大学软件工程研究所(SEI)开发。CMM后来演进为CMMI(Capability Maturity Model Integration,...

Global site tag (gtag.js) - Google Analytics