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

获取用户需求

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

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

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

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

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

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

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

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

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

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

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

分析用户需求

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

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

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

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

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

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

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

D两种方法相结合,则可以更准确地描述系统的需求。

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

原文链接:http://www.leadge.com/news_list/89030.html

软件需求分析步骤方法相关推荐

  1. 软件工程中软件需求分析

    1.软件工程         随着电子信息化的迅猛发展,软件工程涉及程序程序.语言.数据库.开发工具.设计模式等各方面的内容,主要是用来进行软件研究及软件分析的一门学科,软件工程师是专门进行软件开发的 ...

  2. 【转】软件需求分析方法

    软件需求分析(Software Reguirement Analysis)是研究用户需求得到的东西,完全理解用户对软件需求的完整功能,确认用户软件功能需求,建立可确认的.可验证的一个基本依据. 软件需 ...

  3. 《软件需求分析(第二版)》第 3 章——需求工程的推荐方法 重点部分总结

    文章目录 前言 一.单选题 二.填空题 总结 前言 软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素.需求分析是软件定义阶段中的最后一步,是确定 ...

  4. WinCC flexible Smart V3 SP2软件安装具体方法和步骤_常见问题处理

    WinCC flexible Smart V3 SP2软件安装具体方法和步骤_常见问题处理 官方网站提供 WinCC flexible Smart V3 SP2软件下载的地址: 点击下载软件 安装之前 ...

  5. 内网穿透方法有哪些?路由器端口映射外网和软件方案步骤

    公网IP和私有IP不能互相通讯.我们通常在局域网内部署服务器和应用,当需要将本地服务提供到互联网外网连接访问时,由于本地服务器本身并无公网IP,就无法实现.这时候就需要内网穿透技术,即内网映射,内网I ...

  6. 软件需求分析方法收集

    项目需求分析是一个项目的开端,也是项目建设的基石.在以往建设失败的项目中,80%是由于需求分析的不明确而造成的.因此一个项目成功的关键因素之一,就是对需求分析的把握程度.在原则上,需求阶段监理应尊重承 ...

  7. 软件工程之软件需求分析

    软件工程之软件需求分析 一.需求分析任务 1.用户需求 2.系统需求 (1)功能需求 (2) 数据需求 (3) 其他需求 二.需求分析过程 三.用户需求获取 1.研究用户 2. 从调查中获取用户需求 ...

  8. 读书笔记:软件工程(11) - 传统方法学 - 软件需求分析

    软件需求分析 可行性研究阶段:粗略了解用户的需求,提出一些可行方案.基本目的是以最小的代价在尽可能短的时间内确定问题是否存在可行的解法.而在软件需求分析阶段,需要对可行性研究的问题,进行准确的分析&q ...

  9. 软件需求分析复习要点

    本文根据华南理工大学软件学院<软件需求分析>课程及相关教材<UML和模式应用>总结,作复习回顾用. 这门课知识点很杂,重点掌握GRASP和GoF设计模式. Chapter. 1 ...

  10. 第三章 软件需求分析

    软件需求分析是软件开发期的第一个阶段,基本任务是准确地回答"系统必须做什么?"这个问题.软件需求分 析是整个系统开发的基础.在此阶段结束前,系统分析员应该写出软件需求规格说明书( ...

最新文章

  1. NTU课程笔记:MAS 714 algorithm and theory of computing(1):introduction
  2. R语言chorolayer_R语言空间可视化:绘制英国脱欧投票地图
  3. Linux下安装Oracle遇到的错误
  4. CVE-2019-8341 Jinja2 RCE漏洞学习
  5. 使用 ramda 解析 .yarnrc/.npmrc 配置文件的例子
  6. sqlite 交叉编译-转
  7. 基于OpenCV的计算机视觉入门(5)图像美化(下)
  8. 德标螺纹规格对照表_德标、国标对照表
  9. 在线JS编辑器,可运行保存简单JS代码(已开源)
  10. 如何打开计算机共享文件,如何打开共享文件 局域网文件共享的图文方法
  11. kanban 看板视图
  12. C语言火车票管理系统
  13. 十大畅销经济学类书籍
  14. MySQL-用户管理
  15. 获取月份的第一天和最后一天
  16. 终于有人把P2P、P2C、O2O、B2C、B2B、C2C的区别讲透了!
  17. 优矩互动通过聆讯,靠抖音、京东养活的流量生意“二道贩子”?
  18. 国际化之使用ResourceBundle.getBundle详解
  19. 平衡树(Treap)的基本操作
  20. 架构师之路,视频号开通,首次真人出镜

热门文章

  1. PDF文件添加水印怎么添加?分享两种加水印方法
  2. 京东怎么打单发货,智能店长一键打单
  3. 多元微积分_旋度1.正负0旋度
  4. 亚马逊Alexa技能的创建流程
  5. 利用python进行识别相似图片(一)
  6. linux 修改 bcast,Linux Ubuntu下IP的查看和修改
  7. 生产力高于一切?我们为什么会对技术上瘾?
  8. 解决酷比魔方iwork手写板系列TF卡以及USB3.0不识别的问题
  9. webstorm bable
  10. 【榜单公布】10·24征文活动结果出炉!