需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。
它通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。
需求工程基本活动
需求工程过程包括如下主要活动:
1.获取需求
深入实际,在充分理解用户需求的基础上,获取足够多的问题领域的知识,积极与用户交流,捕捉、分析和修订用户对目标系统的需求,并提炼出符合解决领域问题的用户需求。
需求获取的方法一般有问卷法、面谈法、数据采集法、用例法、情景实例法以及基于目标的方法等。
2.需求分析与建模。
对已获取的需求进行分析和提炼,进行抽象描述,建立目标系统的概念模型,需求概念模型的要求包括:
l实现的独立性:
l不模拟数据的表示和内部组织等;
需求模拟技术又分为企业模拟、功能需求模拟和非功能需求模拟。进一步对所建立的模型(原型)进行分析。需求模型的表现形式有自然语言、半形式化(如图、表、结构化英语等)和形式化表示等三种。
3.需求规格说明
对需求模型进行精确的、形式化的描述,为计算机系统的实现提供基础。
4.确认需求
以需求规格说明为基础输入,通过符号执行、模拟或快速原型等方法,分析和验证需求规格说明的正确性和可行性,确保需求说明准确、完整地表达系统的主要特性,就是对需求规格说明与用户达成一致。
其主要任务是冲突求解,包括定义冲突和冲突求解两方面。
常用的冲突求解方法有:协商、竞争、仲裁、强制、教育等,其中有些只能用人的因素去控制。