依然是《程序员》2008第10期,在之前了解了需求过程中应该注意的事项之后,这篇文章让我了解了需求分析的格式和所设计得内容。另外,作者的blog:http://blog.csdn.net/adwu73/ 也是在需求方面介绍了很多内容,值得多多学习一下!
当然,文中提到的IEEE STD 830-1998软件需求规约以及CMMI的知识,也是应该学习一下的,前者我这搞到了一份英文版,以及对比美国、大陆和台湾的软件需求规约德异同的ppt,需要的可以找我要哦。
文章作者介绍:吴穹博士:雅各布森北京公司总经理,是一个拥有10年软件工程经验和深厚理论基础的软件工程专家。他在国内参与了许多大规模的软件工程改进工作,积累了丰富的软件工程实施和组织变革经验。同时,他在IBM Rational研发总部工作期间,对软件工程技术在全球的应用实践也有了非常深入的了解。他98年毕业于北京大学,师从中国软件工程的奠基人-杨芙清院士,参与了青鸟III等国家重点项目,打下了坚实的理论基础。
正文
两个月来,主要都是在进行和需求相关的培训和咨询,我发现在行业里一个根深蒂固的认识是需要/可以存在多份不同格式的分立的需求文档:业务人员可以写一份意识流的业务(客户)需求文档,开发人员可以在再写一份充斥着分析结果及IT术语的软件(软件)需求,测试人员则可以写一份闭门造车的测试需求。好像每个人都很好的完成了任务,但是谁来保证这些需求的一致性呢?我们有很好的答案—请业务人员确认他们看不懂的软件需求,请开发人员确认他们没时间或心思看的测试需求,绝妙的主意!
目前大多数客户编写
另一个造成多份不同格式的分立的需求存在的原因可能与僵化地执行CMMI有关,CMMI在三级的需求开发(Requirements Developement)这个过程域(Process Area)中将开发客户需求(Customer Requirements)和开发产品需求(Product Requirements)明确地分成了两个不同的特定目标(Specific Goals),这导致有些企业让业务人员负责客户需求,而让开发
我们推荐的需求体系是基于用例的, 它是一种可以被各方真正理解和
前景文档:对目标系统的商业前景进行分析;
涉众分析:对目标系统的涉众以及他们对目标系统的主要要求(Needs)进行分析;
特性列表:概述目标系统的主要特性
词汇表:对领域内的名词、术语和商业规则进行解释;
领域模型:用模型的方式对领域内的实体关系进行描述;
用例模型:对整个用例模型进行概述;
用例规约:对每个用例的基本流和备选流进行详细的描述;
补充规约: 对目标系统级的非功能性需求进行描述;
我们推荐的工作方式是:
不同的角色(业务,开发,测试等)组成一个虚拟
团队,基于同一个基于用例的需求体系进行协同的需求开发;在需求开发的前期,以业务人员为主导,通过对业务的分析来丰富需求的内容; 而在需求开发的中后期,以开发人员为主导,通过对需求的分析来细化需求;如果组织需要通过CMMI评估,那么可以将前期的一个需求基线作为客户需求,而将后期的一个需求基线作为产品需求;
需求是在开发过程中不断演进的,虚拟需求
开发人员将需求分析的结果以需求分析规约或分析模型的方式记录下来,但如果认为需求有问题,就应该以协作的方式对需求进行改进而不是另写一份文档;
测试人员同样也是对需求进行分析准备测试方案和测试用例,并同时对需求提出改进建议;
可能需要考虑引入一些工具来支持这样的协同需求开发过程;
总之,我们推荐的需求开发方法是以一个紧密协同的虚拟
团队 定期对需求的变更进行复审,因此对需求的确认是不断以增量方式进行的;