需求获取中会遇到很多的困难,例如:用户与开发人员的背景、立场不同,交流存在困难;用户缺乏概括性、综合性的表述能力;用户存在认知困难;开发者为用户创造需求,用户为开发者提出解决方案;用户不好选择,用户不愿参与等等,这都要采取措施去面对、解决,有一个好的需求获取流图。
项目开始的时候要确立项目的目标,我们要有一个共同的认识,明确的分析出问题,发现业务需求,制定一个解决方案找到系统特征,这一点在写系统时有了很多的感触,面对一个系统,不知道应该有什么样的内容,不了解用户,不知道用户会用它干什么,用户需要什么,单从自己的理解去建立系统的功能,很多时候都有一种写文章的感觉,不知道下面该有什么,下文是什么?一个功能,加也不是,不加也不是。这时候真的很需要用户的需求。
面谈是需求获取的方法之一,他可以获得很多的内容:事实和问题、被会见者的观点、被会见着的感受、组织和个人目标。但是访谈者要注意很多问题:礼貌的倾听,选择好的时间和地点,笔录,在用户同意的条件下录音或录像。
原型的介质有很多:纸面、幻灯动画、快速语言和工具和程序代码。纸质原型的真实感最低但其能够缓解原型方法的高成本缺点。当用户需求出现了模糊、不清晰、不完整等具有一定不确定性的特征时,就可以考虑使用原型方法。[Houde1997]认真原型的需求内容有:外观、角色、实现。
观察可以帮助理解复杂的协同事件,获取工作中的异常处理,获取与用户认知不一致的实际知识,了解用户的认知,获取默认的知识。