问题定义是软件定义时期的第一个阶段。作为软件的开发者,在这个阶段必须弄清用户“需要
计算机解决什么问题”。如果在问题尚未明确的情况下就试图解决这个问题,那么就会白白浪费时间和精力,结果也毫无意义。因此,问题定义在
软件生命周期中占有重要的位置。
问题定义阶段要回答的关键问题是:“要解决的问题是什么?”因此,其基本任务就是分析要解决的问题,提交问题定义报告。经用户同意后,就可作为下一步工作——可行性研究的依据。系统分析员在问题定义阶段应通过对系统的实际用户和使用部门负责人的访问调查,写出对问题的理解,搞清楚用户为什么会提出这样的问题,问题的背景和用户的目标是什么。然后据此提出关于问题的性质、工程的目标和规模的书面报告,并在用户和使用部门负责人参加的会议上认真讨论这份书面报告,澄清含糊不清的地方,改正理解不正确的地方。最后形成一份双方都满意的文档,以确保开发人员、用户和使用部门的负责人对问题的性质、工程的目标和规模取得一致的看法,从而进入下一阶段的工作。问题定义阶段是
软件生命周期中最简短的阶段,一般只需要一天甚至更短的时间。
在问题定义阶段,系统分析员要深入现场,阅读用户写的书面报告,听取用户对开发系统的要求,调查开发系统的背景理由。还要与用户负责人反复讨论,以澄清模糊的地方,改正不正确的地方。最后写出双方都满意的问题定义报告,并确定双方是否可进行可行性研究。