2.1确定需求开发计划
基本任务:确定需求开发的实施步骤,并给出收集需求活动的具体安排和进度 。
需求开发计划需要注意以下几点:
(1)只考虑与需求开发相关的工作;
(2)应考虑困难性和灵活性;
(3)应考虑书写和整理需求规格说明及其文档所花费的时间。
2.2确定项目的目标和范围
基本任务:根据项目目标把项目相关人员定位到一个共同的和明确的方向上,并决定软件系统的范围。
项目目标:项目开发的目的意义,软件系统应实现的目标。
项目的范围与项目的目标特别是软件系统的目标需求是密切相关的。
目标需求会来源于各个不同的人,这些人对要开发的软件系统及该系统最终能为用户或客户提供哪些价值有比较清楚的了解。
确定项目范围的好处
(1)可以判断用户所提出的需求信息是否对项目适合
(2)有些用户需求可能是目前项目之外的,但又价值,
(3)可以适当改变项目范围适应类似的需求;但是要注意考虑进度、时间和资源等
2.3确定调查对象
基本任务:是明确地确定来自不同层次的需求来源和用户,并将其分类。
应根据需求的层次来区分不同的用户:
提出目标需求的用户
提出业务需求和功能需求的用户
软件开发人员,主要是指系统分析员
客户的需求观在一个比较高的层次上,为产品提供宏观的描述和指导性的框架,是项目的基础;
用户的需求观往往代表了产品应该完成的任务及其具有的特性,细节,真实性;
开发者的需求观则应是使产品最大限度的满足需求,并最大程度的理解用户的需求。
根据用户的某些方面将用户分类:
用户所在的部门和职责
用户使用系统的频繁度和优先级
用户掌握的计算机知识和使用计算的熟练程度
直接使用或非直接使用软件系统的情况
在分类的基础上进一步寻找每类用户的代表或联络人,并可充当该用户类与开发人员之间的“窗口”。 必须是真正的用户,而不是单纯的代理人。
软件需求可来自与各个方面,用户类也不一定都是指人。
可以把其它应用系统或计算机硬件设备和接口等视为附加的用户类成员,这样就可确定软件系统与哪些外部应用系统或计算机硬件相关的需求。
需求信息来源除了来自用户类外,还可来自于其它方面。
几个典型的软件需求来源:
直接和间接使用软件系统的用户;
系统需求规格说明;
市场调查和用户问卷调查;
已开发出的和待开发的同类软件系统的描述和文档;
对人工系统的存在问题的报告和增强要求;
观察正在工作的用户;
用户工作内容的分析。
需求的决策者:对不一致和含糊的、存在问题的需求做出决定
决策者根据实际中可能发生的具体问题来确定:
1)个别用户的某些需求与其他大多数同类用户不能达成一致,决策者为用户代表
2)用户类之间存在不一致的需求,决策者为领导层和高管人员
3)不同类型的用户对产品要求不同,决策者为开发人员
4)用户部门经理与其所在部门的真正用户提出的需求不一致,决策者为部门的用户代表
5)开发人员想象中的系统与用户需求不一致,决策者为用户
6)市场部门提出的需求与开发部门的开发人员所要开发的系统发生冲突,决策者以市场部门为主。
2.4实地收集需求信息
任务:到现场实地调查和与用户交流,收集和理解用户需求信息。
实地收集需求信息可能面临的困难:
能提出软件需求的用户可能觉得他们没有充分的时间与开发人员进行交流和讨论 ;
有时用户希望通过简单的方法和说明,或者通过简单回答开发人员的询问后,软件开发人员就能清楚地理解他们的需求,而不需要花费太多的时间进行讨论;
用户和开发人员都只考虑自己的利益;如:有些用户由于缺乏使用计算机的经验,导致产生畏难情绪;有些用户认为开发软件系统自己的关系不大,对待需求信息的收集工作采取消极的态度。
用户本身不能提出明确的需求 ;
开发人员缺乏用户的业务知识,而用户也缺乏计算机方面的知识,导致双方在交流中产生许多的困难,以至收集工作难以进行。
实地调查的步骤:
(1)向掌握“全局”的负责人调查;
(2)向部门负责人调查;
(3)向业务人员调查。
实地收集需求信息的方式
座谈会:会议主题、参与人数、会议主持人、会议记录、会议议题和内容等提前发出
书面咨询:软件开发人员所关心的问题书面形式提交给用户
用例表示方法:用户描述软件系统与一个外部“执行者”的交互顺序