在实施GJB5000A的组织中,项目的技术文档都是按照GJB438B的要求来编写的。我们知道,需求开发分为两个阶段:用户需求开发和软件产品需求开发。其中用户需求一般使用软件研制任务书来描述,而软件产品需求则是使用需求规格说明来描述。
但大多数组织的项目技术文档中,软件研制任务书和软件需求规格说明对于功能、性能、接口的描述几乎是一模一样的(很多需求规格说明的编写者就是拷贝软件任务书)。于是乎,就有很大一部分人觉得没需求没必要写两份文档,只保留一份就好了。
目前修订中的GJB438C就准备去掉软件任务书的要求,似乎也是迎合了这部分人的意见。
站在GJB5000A的角度上来思考这个事儿,用户需求和软件产品需求都应文档化,都应有各自的载体。
把需求文档化的一个最重要的要求就是需求表述要准确。而要表述准确需求,就需要使用合适的领域语言—— 用户需求就要使用用户熟悉的领域语言来表述,软件需求就要使用软件开发人员熟悉的领域语言来表述。
在不同的领域间传递信息时,我们需要做一些信息转换工作。从软件任务书到需求规格说明,就需要将用户熟悉的领域语言转换成软件开发领域的语言。
如果不注意这种领域转换的要求,在需求分析时仍然混杂着领域知识、生活常识、软件术语等,就很容易给后面的软件开发人员带来困惑。
因为那些客户方面的领域知识可能是软件开发人员不能理解的领域术语;那些意思含糊的生活常识用语尽管可以理解,但是软件实现时有非常大的灵活性。
所以,用户需求和软件产品需求应当使用不同的领域语言来表达,软件任务书和需求规格说明对需求的描述也应当是不一样的。
下面我们用一个例子来说明这一点。
假设客户有这样的一个要求:
如果使用生活常识语言,可以这么说:
如果使用软件术语,可以这么说:
最后,想强调一下,同一个领域的人如果不把该领域的术语事先统一下认识,那也可能会造成不同的人理解上的偏差。像集成测试,就有组装测试、部件测试等不同的叫法。
需求描述有语境,领域不同话不同
既分用户和产品,二者描述怎雷同
参考文献:简单之美:软件开发实践者的思考,倪健 ,机械工业出版
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!