在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围和定义时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。 在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤,但在过去十年中越来越多的人认识到它是整个过程中最关键的一个过程。假如在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。 挑战
顺利地完成需求分析是一个艰巨的挑战。首先要确认所有持有关键信息的人本身就不容易,然后还要从这些人获得可用的信息,把这些信息转化为清晰的和完整的形式。同时分析者还要考虑到可能的限制。除此之外他们还要考虑一个项目的是否可行是否在规定的时间里可以完成价格上是否负担得起是否合法是否符合道德一个新项目开始的时候人们往往还非常兴奋,往往试图轻视需求分析的必要性。但对过去项目的分析证明一个彻底的和无情的需求分析可以降低一个项目的耗费和降低其技术风险。 主要困难
随着工程师越来越对需求分析的重视今天我们对需求分析的主要困难也理解得比较清楚:需求分析需要由有充分的经验、技术知识和语言技巧的专家来完成;顾客一开始所提出的需要往往不完全、太乐观以及过分受老的系统或过程的影响;使用复杂的工具和不同的技术来进行需求分析往往会打消获得一个完整的和细致的结果的希望。 持有关键信息的人
顾客有可能防止需求分析顺利进行有以下几种可能性:顾客不明白他自己需要什么顾客不愿将他们的需要固定在一系列写在纸上的条例中在价格和时间确定后顾客坚持要求新的需要分析者与顾客的通讯太缓慢顾客不参加回顾或无法参加回顾顾客缺乏技术上的知识顾客缺乏对软件开发的知识软件开发者但是软件开发者也有他们的责任。由于软件开发者收钱来开发他们的软件,他们的责任就更加不可推脱了。由软件开发者导致的困难有:软件工程师与他们的顾客往往使用不同的词汇。有时他们以为互相之间完全达成协议,但是在展示最终结果时却发现并非如此。开发者有义务克服这个困难,他们拿了顾客的钱,因此有这个义务。 软件开发者往往喜欢将顾客的需要改变得能使它们符合一个已存在的系统或模式,而不愿按照顾客的需要来发展一个新的系统。 需求分析往往是由程序员完成的,而不是由作业分析员完成的。程序员往往缺乏理解实际事物的运行过程和商业过程的技巧。 解决方法解决这些困难的一个方法是使用专业的作业或系统分析员,这些专业人员通过专门训练来填补商业和电脑世界之间的鸿沟的。这个方法可以达到一定的效果,但从顾客方面来说要找到相应的有类似技巧的人就相当困难了。此外今天为需求分析所使用的方法依然还有很大的缺陷,它们还不够有效。 1990年代以来新的技术有制作原型、统一建模语言、用例和敏捷软件开发等方法。 主要技术需求分析有可能在一个项目中成为一个漫长、艰巨的工作。需求分析专家与他们的顾客交谈、记录他们的交谈结果、分析他们收集的信息,从中提取互相矛盾的地方,总结出一个总体观念,然后再与顾客交谈他们发现的问题。这个过程可以不断重复,在有些项目中这个过程可以伴随着整个在有些项目中这个过程可以伴随着整个生命周期。 新系统很可能改变人之间的关系和人的工作环境,因此认定谁是重要的信息持有者是非常重要得。只有这样在需求分析的过程中才能够将顾客所有的需要都纪录下来,只有这样才能保证他们认识到新的系统对他们来说带来怎样的变化。出于下述原因这个要求往往达不到:
[1] [2] [3] 下一页
 【责编:Lili】 |