`
com1com4
  • 浏览: 162969 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[转]需求分析方法

阅读更多

        项目需求分析是一个项目的开端,也是项目建设的基石。在以往建设失败的项目中,80%是由于需求分析的不明确而造成的。因此一个项目成功的关键因素之一,就是对需求分析的把握程度。

  在原则上,需求阶段监理应尊重承建方的项目管理和项目分析能力;在具体的任务开展上,以不深入、不干扰承建方的自主权为主,除非在项目合作过程中发现承建方的项目管理以及项目分析能力存在很大的差距和不足。

  为了保证项目的成功,监理方必须加强项目管理和项目分析工作,在具体的操作上可以坚持吸收、同化、贯彻的方法和手段。

  其中,需求分析是一个项目的开端,也是项目建设的基石。在以往建设失败的项目中,80%是由于需求分析的不明确而造成的。因此一个项目成功的关键因素之一,就是对需求分析的把握程度。而项目的整体风险往往表现在需求分析不明确、业务流程不合理,用户不习惯或不愿意去用承建方的软件。作为第三方的监理公司,必须提醒承建方、客户方重视需求分析的重要性,采用必要的手段和方法来进行需求调研,同时监理方也应深入具体的需求调研中去。只有这样才能切切实实地把握用户的需求和方向,才能在将来的功能界定、开发范围上有发言权。
  
  如何进行需求分析
  
  需求分析不象侦探推理那样需从蛛丝马迹着手,而是应该先了解宏观的问题,再了解细节的问题。

  一个应用软件系统(记为S)的涉及面可能很广,可以按不同的问题域(记为D)分类,每个问题域对应于一个软件子系统。
  S= {D1,D2,D3,…Dn}
  问题域Di由若干个问题(记为P)组成,每个问题对应于子系统中的一个软构件。
  Di= {P1,P2,P3,…Pm}
  问题Pj有若干个行为(或功能,记为F),每个行为对应于软构件中的实现接口。
  Pj= {F1,F2,F3,…Fk}

  需求说明书应该对于那些只想了解宏观需求的领导,和需要了解细节的技术员都合适。在写需求说明书时应该注意两个问题:
  1.最好为每个需求注释“为什么”,这样可让程序员了解需求的本质,以便选用最合适的技术来实现此需求。
  2.需求说明不可有二义性,更不能前后相矛盾。如果有二义性或前后相矛盾,则要重新分析此需求。

  重点监控需求分析
  由于项目的特殊性和行业覆盖的广阔性,以及需求分析的高风险性,软件需求分析的重要性是不言而喻的,同时需求分析又的的确确难做。其原因基本是由于以下情况造成的。
  
  客户说不清楚需求
  有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。例如全国各地的很多部门、机构、单位在进行应用系统以及网络建设时,客户方的办公人员大多不清楚计算机网络有什么用,更缺乏IT系统建设方面的专家和知识。此时,用户就会要求软件系统分析人员替他们设想需求。工程的需求存在一定的主观性,为项目未来建设埋下了潜在的风险。
  
  需求自身经常变动
  根据以往的历史经验,随着客户方对信息化建设的认识和自己业务水平的提高,他们会在不同的阶段和时期对项目的需求提出新的要求和需求变更。事实上,历史上没有一个软件的需求改动少于三次的!所以必须接受“需求会变动”这个事实,在进行需求分析时要懂得防患于未然,尽可能地分析清楚哪些是稳定的需求,哪些是易变的需求,以便在进行系统设计时,将软件的核心建筑在稳定的需求上,同时留出变更空间。咨询监理方在需求分析的功能界定上担任一个中间、公平、公正的角色,所以也必须积极参与到需求分析的准备中来,以便协助客户方和承建方来界定“做什么”、“不做什么”的系统功能界限。
  
  分析人员或客户理解有误
  软件系统分析人员不可能都是全才,更不可能是行业方面的专家。客户表达的需求,不同的分析人员可能有不同的理解。如果分析人员理解错了,可能会导致以后的开发工作劳而无功。记得一则笑话,有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主宰地球的是汽车。它们喝汽油,靠四个轮子滚动前进,嗓门极大,双眼在夜里能射出强光……有趣的是,车里住着一种叫作'人’的寄生虫,这些寄生虫完全控制了车。”所以分析人员知识的专一性也会造成需求分析的误解和失败。这时,咨询监理公司就必须根据实际的项目需求调研计划,提醒承建方加强业务了解程度和注重沟通技巧。
  
  需求分析方法论

  
  根据以往的工程经验,需求分析工作方法,应该定位在“三个阶段”(也称“三步法”)。

  第一阶段:“访谈式”(Visitation)
  这一阶段是和具体用户方的领导层、业务层人员的访谈式沟通,主要目的是从宏观上把握用户的具体需求方向和趋势,了解现有的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等等具体情况、客观的信息。建立起良好的沟通渠道和方式。针对具体的职能部门以及各委办局,最好能指定本次项目的接口人。
  实现手段:访谈、调查表格
  输出成果:调查报告、业务流程报告
  
  第二阶段:“诱导式”(Inducement)
  这一阶段是在承建方已经了解了具体用户方的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等等具体实际、客观的信息基础上,结合现有的硬件、软件实现方案,做出简单的用户流程页面,同时结合以往的项目经验对用户采用诱导式、启发式的调研方法和手段,和用户一起探讨业务流程设计的合理性、准确性、便易性、习惯性。用户可以操作简单演示的DEMO,来感受一下整个业务流程的设计合理性、准确性等等问题,及时地提出改进意见和方法。
  实现手段:拜访(诱导)、原型演示
  输出成果:调研分析报告、原型反馈报告、业务流程报告
  
  第三阶段:“确认式”(Afirm)
  这一阶段是在上述两个阶段成果的基础上,进行具体的流程细化、数据项的确认阶段,这个阶段承建方必须提供原型系统和明确的业务流程报告、数据项表,并能清晰地向用户描述系统的业务流设计目标。用户方可以通过审查业务流程报告、数据项表以及操作承建方提供的DEMO系统,来提出反馈意见,并对已经可接受的报告、文档签字确认。
  实现手段:拜访(回顾、确认),提交业务流程报告、数据项表;原型演示系统
  输出成果:需求分析报告、数据项、业务流程报告、原型系统反馈意见(后三者可以统一归入需求分析报告中,提交用户方、监理方进行确认和存档)
  
  整体来讲,需求分析的三个阶段是需求调研中不可忽视一个重要的部分,三个阶段或者说三步法的实施和采用,对用户和承建方都同样提供了项目成功的保证。当然在系统建设的过程中,特别在采用迭代法的开发模式时,需求分析的工作需一直进行下去,而在后期的需求改进中,工作则基本集中在后两个阶段中。

分享到:
评论

相关推荐

    软件需求分析--数据流图、数据字典、结构化分析方法

    结构化分析方法和面向对象分析方法是两种常用的需求分析方法,它们都遵循以下基本原则: 1. 必须能够表达和理解问题的数据域和功能域。 2. 可以把一个复杂问题按功能进行分解并可逐层细化。 3. 建模。模型可以帮助...

    软件需求分析方法总结

    本文将深入探讨几种常见的软件需求分析方法,帮助读者理解和掌握如何有效地进行需求收集、整理和验证。 1. **访谈法**:这是一种直接与用户、利益相关者交流的方法,通过面对面的讨论获取需求。访谈可以是结构化的...

    软件需求分析与设计

    本文对软件需求分析与设计进行了详细的介绍,包括需求获取、软件需求分析、需求文档、软件设计、结构化方法、设计实验任务等内容。这些内容对于软件开发的成功起着至关重要的作用。 在软件开发过程中,需求分析是...

    软件项目需求分析实例

    在本节中,我们将详细地讲解软件项目需求分析的实例,并对需求分析的任务、原则、可行性研究、需求分析方法、软件需求分析建模与规格说明、软件需求正确性验证等方面进行深入的讨论。 2.1 需求分析的任务 需求分析...

    物流管理系统需求分析毕业设计开题报告

    4. **需求分析方法**:常见的需求分析工具有用例图、数据流图、实体关系图、状态机图等。同时,使用原型法、线性顺序模型(瀑布模型)、迭代模型或敏捷方法等可以帮助逐步细化和验证需求。 5. **毕业设计开题报告...

    软件需求分析面向问题域的需求分析方法.ppt

    面向问题域的需求分析方法是软件开发中的一种重要技术,它主要关注如何有效地理解和组织软件需求。这种方法强调将复杂的现实世界问题拆分成可管理的、独立的子问题,从而更好地理解和解决这些问题。 首先,问题域是...

    软件的需求分析

    3. **需求分析**:对需求进行深入研究,分析其可行性、优先级和依赖关系,可能需要进行业务流程建模、数据流图等分析方法。 4. **编写需求规格说明书**:将分析结果以文档形式记录下来,包括功能需求、非功能需求、...

    需求分析挑战之旅-疯狂的订餐系统

    根据给定的信息,本文将深入探讨“需求分析挑战之旅—疯狂的订餐系统”这一案例中的核心知识点,包括需求分析的基本原则、背景分析、需求规格制定以及如何应对不断变化的需求等。 ### 需求分析的基本原则 在进行...

    日志管理系统需求分析.pdf

    根据提供的文件信息,文档的标题是“日志管理系统需求分析.pdf”,这意味着文档的焦点是分析和阐述一个日志管理系统在实施前所需满足的功能性及非功能性需求。描述部分重复了标题内容,未提供额外信息。标签“技术及...

    软件需求分析文档编写规范

    软件需求分析文档编写方法多种多样,本文主要介绍三种常见的编写方法:文本型文档、图形化模型和形式化规格说明。 1. 文本型文档:使用结构化和自然语言编写文本型文档,能够清晰地表达软件需求。 2. 图形化模型:...

    图书馆管理需求分析实验报告

    《图书馆管理需求分析实验报告》是一份针对沙漠绿洲书店的业务升级计划,旨在通过引入新的销售系统以适应市场变化和提升服务效率。这个报告详细分析了书店当前面临的问题和未来的发展策略,主要包括技术结构、应用...

    企业进销存管理系统需求分析论文

    二、需求分析方法 在需求分析阶段,通常采用访谈、问卷调查、观察和工作流程建模等方法。通过这些手段收集业务人员的需求,然后用业务流程图、数据流图和用例图等工具进行可视化表达,明确系统的功能边界和操作流程...

    高级软件需求分析师培训讲义

    此外,高级软件需求分析师还需要掌握需求优先级排序和需求跟踪矩阵的建立方法,这两者对于管理和控制需求变更,以及确保需求一致性至关重要。在与项目团队和利益相关者沟通时,有效沟通策略的运用能够促进需求的准确...

    实验三:需求分析说明书.pdf

    - 教师可能会引导学生通过对文档的分析和理解,掌握需求分析的基本方法和技能,最终能够独立完成类似文档的编写和系统建模的实践活动。 以上知识涉及了需求分析的定义、重要性,文档制作过程中的技术限制,以及...

    如何进行软件需求分析

    ### 如何进行软件需求分析 #### 一、引言 软件需求分析是在软件工程开发初期的一个关键步骤,它直接影响到软件项目的成功与否。本文档基于一份详细的指南——《如何进行软件需求分析》,深入探讨需求分析的基本...

    软件工程需求分析.pptx

    软件工程需求分析 软件工程需求分析是软件开发过程中的一个关键阶段,它的主要任务是将用户的需求转换为软件系统的逻辑模型,为软件设计和实现提供基础。在这个阶段,需求分析人的任务是收集和分析用户的需求,定义...

    基于用例的业务建模和需求分析

    基于用例的业务建模和需求分析方法论提供了一种清晰、系统的方式,帮助开发团队精确地捕捉和表达业务需求,从而避免这些风险。 ### UML在业务建模和需求分析中的角色 统一建模语言(UML)作为一种标准化的图形表示...

    03 论软件需求分析方法和工具的选用——通信行业的应用.doc

    《03 论软件需求分析方法和工具的选用——通信行业的应用》 本文主要探讨了在通信行业背景下,如何选择和应用软件需求分析方法和工具,以确保开发出的业务报表系统能够满足用户需求。软件需求分析是软件工程的关键...

Global site tag (gtag.js) - Google Analytics