3.2 确定项目的目标和范围
此阶段的基本任务是根据项目目标把项目相关人员定位到一个共同的和明确的方向上,并决定软件系统的范围。项目的目标主要包括项目开发的目的和意义,以及软件系统应实现的目标(即目标需求)。项目的范围是指软件系统具体应包括和不应包括的部分,以及软件系统所涉及的各个方面,如计算机硬件和其他软件系统等,亦即软件系统在一个完善的环境中最终具有的功能。项目的范围与项目的目标,特别是软件系统的目标需求是密切相关的。如前所述,目标需求代表了需求层次中最高层的需求,为软件系统定义了作用的范围。软件的功能需求必须根据目标需求来考虑,要与目标需求相一致。
在收集目标需求时,目标需求会来源于各个不同的人。这些人对要开发的软件系统及该系统最终能为用户或客户提供哪些价值有比较清楚的了解。这些人中包括用户方的领导者、高层管理人员、开发方的负责人以及市场部门的人员等。由于这些人所拥有的背景、所处的立场不同,可能会从不同角度提出目标需求。如用户方的领导者关心项目能带来什么样的社会效益和经济效益。而市场部门的人员则关心软件系统的功能与界面是否易使用和操作简单。开发方的负责人则关心系统需要做什么,能否在合理的成本下按时开发出软件系统。因为各人的看法和需求不同,很容易导致来自各个不同角度的目标需求产生冲突。例如,自动售货机开发商希望某软件公司能为其开发一个自动售货管理系统。该软件系统将作为嵌入式实时系统有效地控制自动售货机工作。此后,开发商将自动售货机卖给零售商店和零售客户使用。对于这个系统,不同的人会从不同的角度提出不同的目标需求。例如:
从开发商角度:
为客户提供便利的自动售货功能;
通过管理系统能向顾客提供品种较齐全的消费品;
吸引顾客对商品的兴趣;
高可靠性。
从零售商角度:
能吸引和方便更多的顾客;
代替人工操作,节省开支。
从开发人员角度:
使用较为先进的开发技术和工具;
建立高科技系统。
开发商、零售商和软件开发人员这三者在目标需求上既有一致的也有矛盾的方面。例如,开发人员希望使用较先进的开发技术和工具为用户建立高科技系统,这可能导致成本增加。零售商需要一个操作简单和价格便宜的系统,而开发商则需要具有便利和良好性能以及利润较高、成本较低的系统。这三者在目标特别是费用方面的要求不同将导致目标需求的冲突,因而需要在制定需求规格说明之前予以解决。
确定项目范围的好处是:
1)可以判断用户所提出的需求信息是否对项目合适。如果不合适,则予以拒绝。因此,当用户提出新的需求和改变需求时,作为开发人员首先必须认真地考虑这是否包含在项目范围之内。
2)有些用户需求信息可能是建议,这些建议是项目之外的,但可能有价值。因此可适当改变项目范围来适应这样的需求。但在改变范围之前,需要考虑进度、时间和资源等,否则容易影响需求工程中的其他工作。
在统一了认识并知道项目的范围和系统与外部环境的界限之后,下一步就是开展实地调查,以获取有用的需求信息。向用户中的哪些人调查,这是相当重要的工作。