需求分析是软件开发过程的核心,其结果直接影响到整个的软件开发过程,对开发的成败起决定作用。因此,做好需求分析是软件开发的关键。传统的软件工程理论主张开发方派专门的需求分析人员或小组到委托方进行长期的业务实践和调研。我认为,这种方式效率并不是很高,浪费了大量的人力,财力和时间。延长了开发周期,增加了开发费用。然而,如若将需求分析的工作分作两大部分,由委托方和开发方共同来完成,或许能达到更好的效果。
在此,本人主张将软件需求分析团队分作两组:委托方业务团队和开发方需求分析团队。委托方业务团队由熟悉业务的业务主要负责人员组成,本组人员所应完成的主要工作有:描述业务的内容、性质及业务规则,并形成相关文档,为开发方提供业务流程图及所有与业务相关的日常业务数据表。另外,企业各项业务间存在着千丝万缕的联系,委托方需求分析团队应注重向开发方描述这种联系。因为,这些联系将作为数据库设计的依据。开发方需求分析团队作为需求分析的第二部分,将根据委托方需求分析团队所提供的所有数据形成面向计算机的需求分析,包括功能分析,性能分析和数据分析等。具体说来,分析人员要根据业务的内容和性质概括出功能需求,根据业务规则概括出初步的算法思路,根据业务流程和日常数据表形成数据流图和数据字典。
综上,本人主张软件需求分析的任务由委托方业务团队和开发方分析团队共同来完成。二者各伺其职。从分析时间上,委托方业务团队具备丰富的业务经验,应该在很短的时间内就能整理出开发所需的所有数据,以供开发方分析团队使用。而开发方分析团队,根据委托方提供的说明文档、业务流程图及数据表,经双方座谈、研讨,便能很快形成需求分析的全局印象,进而根据现有的资料及研讨结果便可进行具体的需求分析。相对于传统的瀑布模型中的需求分析,二者的差异在于,传统模型中的需求分析的全部过程均由的分析人员来完成。这样,在需求分析开始之初,开发方要派遣分析人员到委托方接受业务培训,培训结束还要进行长期的业务实践,方可掌握业务概况,再进一步做具体的需求分析,浪费了大量的时间。而我所提出的分析过程,前半部分过程由熟悉业务的人员来替代的软件需求分析人员来完成,这样,不但节省了人员培训的过程和费用,更是避免了需求分析所产生的误差,有利于缩短整个软件开发的周期,也使得软件将来的主要用户在开发初始就能大体了解到自己委托别人开发的软件能做什么。从而,在一定程度上也会降低将来用户培训的力度,为开发双方节省人力、物力、财力和时间。
|