软件需求分析步骤方法

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

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

获取用户需求

这是该阶段的一个最重要的任务。以下为获取用户需求需要执行的活动(如图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

目录
相关文章
|
前端开发 定位技术
|
6月前
|
机器学习/深度学习 编解码 人工智能
2025年数字人平台深度评测排名:主流产品在多语言支持与克隆速度上的表现
随着全球化内容创作兴起,数字人平台面临多语言支持与克隆速度双重挑战。本文深度评测十款主流平台,聚焦40种语言覆盖、语音自然度、口型同步及1分钟内快速克隆等核心指标,揭示技术差异与协同效应,为创作者提供选型参考,助力高效低成本出海。
342 2
|
数据采集 JSON API
深入解析:使用 Python 爬虫获取淘宝店铺所有商品接口
本文介绍如何使用Python结合淘宝开放平台API获取指定店铺所有商品数据。首先需注册淘宝开放平台账号、创建应用并获取API密钥,申请接口权限。接着,通过构建请求、生成签名、调用接口(如`taobao.items.search`和`taobao.item.get`)及处理响应,实现数据抓取。代码示例展示了分页处理和错误处理方法,并强调了调用频率限制、数据安全等注意事项。此技能对开发者和数据分析师极具价值。
|
人工智能 自然语言处理
详解:天宫ai官方网站_天宫官网ai入口是什么
天宫AI,正如其名,是昆仑万维精心打造的一款大型语言模型,目标直指 OpenAI 的 ChatGPT,立志成为中文 AI 领域的佼佼者! 其官网 tiangong.cn 已经敞开大门,迎接探索者们。
IDEA如何设置取消 请不要使用行尾注释 提示
文章介绍了如何在 IntelliJ IDEA 中设置以取消行尾注释的提示。这个问题通常由使用阿里规范插件导致,插件会在不满足规范时在代码中显示黄色波浪线提示。为了改善代码编辑体验,文章提供了详细的步骤说明,指导用户通过进入 "File" -> "Settings" -> "Editor" -> "Inspections" 来取消特定检查项,从而消除这些提示。修改设置后,代码界面将不再显示黄色波浪线,看起来更加清爽。
IDEA如何设置取消 请不要使用行尾注释 提示
|
存储 人工智能 算法
C语言实现矩阵转置
C语言实现矩阵转置
1552 0
|
druid Java
Error attempting to get column ‘createTime‘ from result set的异常
Error attempting to get column ‘createTime‘ from result set的异常
957 0
|
Web App开发 IDE 测试技术
使用Selenium进行自动化测试:从入门到实践
【6月更文挑战第1天】本文介绍了使用Selenium进行自动化测试的基础知识,包括Selenium工具集的三大组件:WebDriver、IDE和Grid。Selenium支持多种浏览器和编程语言接口。文中详细阐述了安装配置过程,如安装浏览器驱动和Selenium库,并提供了一个Python示例,演示如何初始化WebDriver、打开网页、操作元素及关闭浏览器。此外,文章指出Selenium可扩展实现更复杂测试,可与其他测试框架结合以提升测试效率。
|
小程序 JavaScript Java
马拉松|基于SSM的马拉松报名系统微信小程序的系统设计与实现(源码+数据库+文档)
马拉松|基于SSM的马拉松报名系统微信小程序的系统设计与实现(源码+数据库+文档)
375 0
|
存储 缓存 监控
Linux 文件系统全面解析:从基本原理到实际应用
Linux 文件系统全面解析:从基本原理到实际应用
1582 0