软件工程——理论、方法与实践 之 需求工程
在软件开发过程中,许多问题都是由于收集、编写、协商、修改软件需求过程中的失误而产生的,诸如信息收集不全、功能不明确、交流不充分、文档不完善、需求不断变更等。所以,软件需求是决定软件开发是否成功的一个关键因素。
软件需求的定义如下:1.用户解决问题或达到目标所需的条件或能力。2.系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力。3.一种反应上面1或2所描述的条件或能力的文档说明。通常软件需求可以划分为业务需求、用户需求、系统需求、功能需求和非功能需求等类型。需求工程的所有过程包括需求获取、需求分析、需求规格说明、需求验证和需求管理等。为了更好地理解用户的需求,可以采用多种不同的技术进行需求获取,常见的需求获取技术包括面谈和问卷调查、需求专题讨论会、观察用户工作流程、基于用例的方法、原型化方法等,而选择这些技术需要根据应用类型、开发团队技能、用户性质等因素来决定。