如果将需求分析阶段的工作归结为编写需求规格说明书,这种简化的做法往往是导致项目后期层出不穷问题的罪魁祸首。建议采用以下步骤形成软件需求:获取用户 需求→分析用户需求→编写需求文档→评审需求文档→管理需求。下面我们先来讨论前两个步骤(获取用户需求、分析用户需求)的做法。

  获取用户需求

  这是该阶段的一个最重要的任务。以下为获取用户需求需要执行的活动(如图1所示)。

  ● 了解客户方的所有用户类型以及潜在的类型。然后,根据他们的要求来确定系统的整体目标和系统的工作范围。

   ● 对用户进行访谈和调研。交流的方式可以是会议、电话、电子邮件、小组讨论、模拟演示等不同形式。需要注意的是,每一次交流一定要有记录,对于交流的结果还 可以进行分类,便于后续的分析活动。例如,可以将需求细分为功能需求、非功能需求(如响应时间、平均无故障工作时间、自动恢复时间等)、环境限制、设计约 束等类型。

  ● 需求分析人员对收集到的用户需求做进一步的分析和整理。下面是几条常见的准则:

  ⑴对于用户提出的每个需求都要知道“为什么”,并判断用户提出的需求是否有充足的理由;

  

  图1 获取用户需求的活动

  ⑵将那种以“如何实现”的表述方式转换为“实现什么”的方式,因为需求分析阶段关注的目标是“做什么”,而不是“怎么做”;

  ⑶分析由用户需求衍生出的隐含需求,并识别用户没有明确提出来的隐含需求(有可能是实现用户需求的前提条件),这一点往往容易忽略掉,经常因为对隐含需求考虑得不够充分而引起需求变更。

  ● 需求分析人员将调研的用户需求以适当的方式呈交给用户方和开发方的相关人员。大家共同确认需求分析人员所提交的结果是否真实地反映了用户的意图。需求分析人员在这个任务中需要执行下述活动:

  ⑴明确标识出那些未确定的需求项(在需求分析初期往往有很多这样的待定项);

  ⑵使需求符合系统的整体目标;

  ⑶保证需求项之间的一致性,解决需求项之间可能存在的冲突。

  分析用户需求

   在很多情形下,分析用户需求是与获取用户需求并行的,主要通过建立模型的方式来描述用户的需求,为客户、用户、开发方等不同参与方提供一个交流的渠道。 这些模型是对需求的抽象,以可视化的方式提供一个易于沟通的桥梁。用户需求的分析与获取用户需求有着相似的步骤,区别在于分析用户需求时使用模型来描述, 以获取用户更明确的需求。分析用户需求需要执行下列活动:

  ● 以图形表示的方式描述系统的整体结构,包括系统的边界与接口;

  ● 通过原型、页面流或其它方式向用户提供可视化的界面,用户可以对需求做出自己的评价;

  ● 系统可行性分析,需求实现的技术可行性、环境分析、费用分析、时间分析等;

  ● 以模型描述系统的功能项、数据实体、外部实体、实体之间的关系、实体之间的状态转换等方面的内容。

  

  图2 DFD示意图

   用于需求建模的方法有很多种,最常用的包括数据流图(DFD)、实体关系图(ERD)和用例图(Use Case)三种方式。DFD作为结构化系统分析与设计的主要方法,已经得到了广泛的应用,DFD尤其适用于MIS系统的表述。DFD使用四种基本元素来描 述系统的行为,过程、实体、数据流和数据存储。DFD方法直观易懂,使用者可以方便地得到系统的逻辑模型和物理模型,但是从DFD图中无法判断活动的时序 关系。图2描述的是某个项目的DFD示意图。

  ERD方法用于描述系统实体间的对应关系,需求分析阶段使用ERD描述系统中实体的逻 辑关系,在设计阶段则使用ERD描述物理表之间的关系。需求分析阶段使用ERD来描述现实世界中的对象。ERD只关注系统中数据间的关系,而缺乏对系统功 能的描述。如果将ERD与DFD两种方法相结合,则可以更准确地描述系统的需求。

  在面向对象分析的方法中通常使用Use Case来获取软件的需求。Use Case通过描述“系统”和“活动者”之间的交互来描述系统的行为。通过分解系统目标,Use Case描述活动者为了实现这些目标而执行的所有步骤。Use Case方法最主要的优点,在于它是用户导向的,用户可以根据自己所对应的Use Case来不断细化自己的需求。此外,使用Use Case还可以方便地得到系统功能的测试用例。

项目管理:怎样做需求分析(一)相关推荐

  1. 项目管理:怎样做需求分析(二)

    转载自:http://www.mypm.net/articles/show_article_content.asp?articleID=5369 上一期,我们介绍了需求分析五个步骤中的前两个步骤(获取 ...

  2. 读《我们应当怎样做需求分析》后

    阅读博客--我们应当怎样做需求分析? 链接地址:http://blog.csdn.net/yqmfly/article/details/7679781 发表一篇阅读笔记,说明本学期<软件需求与分 ...

  3. 《我们应当怎样做需求分析》阅读笔记

    在阅读<我们应当怎么做需求分析>这篇文章后,我了解到了许多有关软件需求的相关知识与内容. 文中主要说了三项重要的内容,分别是需求调研.需求分析以及需求确认.而我恰好也觉得这些就是本学期&l ...

  4. 针对非业务的通用框架开发,如何做需求分析和设计?

    项目背景 我们希望设计开发一个小的框架,能够获取接口调用的各种统计信息,比如,响应时间的最大值(max).最小值(min).平均值(avg).百分位值(percentile).接口调用次数(count ...

  5. 针对业务系统的开发,如何做需求分析和设计1

    今天,我通过一个积分兑换系统的开发实战,一方面给你展示一个业务系统从需求分析到上线维护的整个开发套路,让你能举一反三地应用到所有其他系统的开发中,另一方面也给你展示在看似没有技术含量的业务开发中,实际 ...

  6. 我们应当怎样做需求分析:非功能需求

    我曾经看过许多关于需求分析的书籍,老外写的,国人写的,都有.但我总体就是一个感觉:累.各种各样的分析.各种各样的视图,让人眼花缭乱.为什么会这样呢?不得不说,需求分析是一个太宽泛的概念了,不同的行业( ...

  7. 我们应该怎样做需求分析?(一)需求调研

    摘自 百度文库 链接:https://wenku.baidu.com/view/1e2bab73f46527d3240ce0cb.html 一. 我们应当如何做需求分析?    需求分析不是一蹴而就的 ...

  8. 《我们应当怎样做需求分析》读书笔记

    <我们应当怎样做需求分析>读书笔记 <我们应当怎样做需求分析>这篇博客的作者以自己的经验和教训告诉我们怎样解决项目中的需求问题.要解决需求问题,就要从需求调研.需求分析.需求确 ...

  9. 我们应当怎样做需求分析:业务领域分析

    在需求分析工作中,最后一项分析工作就是业务领域分析啦.业务领域分析,就是对需求分析中涉及到的业务实体,以及它们相互之间关联关系的分析.前面我们谈到了功能角色分析,或者说用例分析,它是从整体的角度对整个 ...

  10. 怎样做需求分析:业务流程分析

    我们将从客户调研现场拿回来的需求,经过一番功能角色分析,整个系统的整体脉络与轮廓已经被勾画出来.在这个过程中,我们首先将系统划分成了几个功能模块(如果系统规模较大,还应先划分为几个子系统,然后再划分出 ...

最新文章

  1. php 严格过滤,php 常用过滤类
  2. Shell脚本详细介绍
  3. 2、Spring Cloud - 入门概述
  4. Stackoverflow的见解:投票最多的是Spring 4问题
  5. dqn系列梳理_DQN是学习归纳出了策略,还是仅仅是memorize了大量的episodes?
  6. android系统(9)---android工具网站
  7. 如何提高银行系统的安全性?
  8. zabbix 如何监控tcp的SYN,establised?
  9. php类型cms,自定义存储类型
  10. php 编译安装参数详解
  11. excel查询mysql数据库表,?如何通过Excel查询MySQL数据库
  12. (已更新)成语小秀才小程序V2.0.14完整安装包+小程序前端
  13. Safari浏览器中工具栏的高度问题
  14. PKM全民推广系列四:“个人知识管理”的知识分类体系
  15. 测试三极管的口诀[转]
  16. 网上药店领导品牌_药康网
  17. win10扬声器红叉_刚装了win10 小扬声器红叉没声音
  18. 如何准确利用六一,端午等节日节点做好营销
  19. 大学物理复习笔记——量子物理
  20. JESD79-4 第5章 片上终结电阻ODT(5.1-5.3)

热门文章

  1. flush privileges 什么意思?
  2. Python缓存提高递归代码性能lru_cache
  3. 花匠(codevs 3289)题解
  4. 数据挖掘基础之数据清洗:用python把“深圳二手房参考价”PDF保存为EXCEL
  5. UVM——TLM通信(1)
  6. GhostXP_SP3 电脑公司特别版 v2011.08
  7. android有用的命令
  8. 没学历的IT人生没那么悲催,献给程序员们
  9. 难以置信的成就“楼天成”
  10. 扭矩扭力测量——扭矩传感器