3.1、软件需求分析

软件需求分析

  • 1、 需求分析定义及获取
  • 2、 需求分析过程
    • 2.1 需求提炼
    • 2.2 需求描述
    • 2.3 需求验证
  • 3、 需求分析任务
    • 3.1 软件需求规格文档编制
      • 沟通活动通用任务集
      • 软件需求规格说明的原则
      • 软件需求规格说明的结构

1、 需求分析定义及获取

需求分析:确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景。需求就是以一种清晰、简洁、一致且无二义性的方式,对一个待开发系统中各个有意义方面的陈述的一个集合。

需求不准确将导致修正的代价呈指数级增长。
在这里插入图片描述
软件需求获取指的是软件需求的来源,软件工程师收集这些软件需求的方法。它也称为需求抓取、需求发现和需求获得。

  • 软件需求分为功能需求、非功能需求和设计约束3个方面内容。
    1. 功能需求:描述系统应该做什么,即为用户和其他系统完成的功能、提供的服务。
    2. 非功能需求:必须遵守的标准,外部界面的细节,实现的约束条件,质量属性等。产品必须具备的属性和品质,如可靠性、性能、响应时间、容错性和扩展性等。
    3. 设计约束:限制条件、补充规约,这通常是对解决方案的一些约束说明。
  • 需求来源:用户目标、领域知识、投资者、运行环境、组织环境5个方面。
  • 需求获取技术:采访、设定情景、原型、会议、观察商业过程和工作流。
  • 需求获取面临的挑战:
    1. 客户说不清需求;
    2. 需求易变性;
    3. 问题的复杂性和对问题空间理解的不完备性和不一致性。
  • 经验
    1. 尽可能地分析清楚那些是稳定的需求,那些是易变的需求。以便再进行系统设计时,将软件的核心建筑在稳定的需求上,否则将会吃尽苦头;
    2. 在合同中一定要说清楚“做什么”和“不做什么”。
  • 需求诱导原则
    在这里插入图片描述

2、 需求分析过程

需求确认:需求获取 → \rightarrow 需求提炼 → \rightarrow 需求描述 → \rightarrow 需求验证

2.1 需求提炼

需求提炼:对应用问题及环境的理解和分析,为问题涉及的信息、功能及系统行为建立模型。将用户需求精确化、完全化,最终形成下一步的需求规格说明书
核心:建立分析模型
需求提炼采用多种形式描述需求,通过建立需求的多种视图,揭示出一些更深的问题。
需求提炼还包括与客户的交流以澄清某些易混淆的问题,并明确那些需求更为重要,其目的是确保所有风险承担者尽早地对项目达成共识并对将来的产品有个相同而清晰的认识。

2.2 需求描述

软件系统的需求规格说明,是对待开发系统的行为的完整描述。它包含了功能性需求和非功能性需求。
需求分析工作完成的一个基本标志是形成了一份完整的、规范的需求规格说明书
需求规格说明书的标志是为了使用户和软件开发者上方对该软件的初始规定有一个共同的理解,使之称为整个开发工作的基础。
在这里插入图片描述

2.3 需求验证

需求验证的重要性:如果在后续的开发或当系统投入使用时才发现需求文档中的错误,就会导致更大代价的返工。由需求问题而对系统做变更的成本比修改设计或代码错误的成本要大的多。假设需求阶段引入1个错误的需求,设计时对这个需求需要5-10条设计实现,1条设计需要5-10条程序,1条程序需要3~5种测试组合测试。
在这里插入图片描述
对需求文档需执行以下类型的检查:
1. 有效性检查:检查不同用户使用不同功能的有效性。
2. 一致性检查:在文档中,需求之间不应该冲突。
3. 完备性检查:需求文档应该包括所有用户想要的功能和约束。
4. 现实性检查:检查保证能利用现有技术实现需求。

  • 需求验证技术

    1. 需求评审;
    2. 利用原型检验系统是否符合用户的真正需要;
    3. 对每个需求编写概念性的测试用例;
    4. 编写用户手册。用浅显易懂的语言描述用户可见的功能。
    5. 自动的一致性分析。可用CASE工具检验需求模型的一致性。
  • 需求变更流程
    在这里插入图片描述

3、 需求分析任务

  1. 建立分析模型:准确地定义未来系统的目标,确定为了满足用户的需求系统必须做什么;
  2. 编写需求说明:用《需求规格说明书》规范的形式准确地表达用户的需求。

3.1 软件需求规格文档编制

沟通活动通用任务集

  1. 识别主要客户和共利益者
  2. 与主要客户会谈“上下文无关的问题”,以确定:业务需要和商业价值;最终用户的特性和需要;需要的用户可见输出;业务约束。
  3. 写一页项目范围的说明
  4. 评审范围说明,并应客户要求做出相应修改
  5. 与客户/最终用户进行写作,确定:采用标准格式记录客户可见的使用场景;输入和输出;重要的软件特性、功能和行为;客户定义的商业风险
  6. 描述场景、输入/输出、特性/功能以及风险
  7. 与客户细化场景、输入/输出、特性/功能以及风险
  8. 为每个用户场景、特性、功能和行为分配客户定义的优先级
  9. 回顾搜集的所有信息并修订
  10. 为计划活动做准备

软件需求规格说明的原则

  1. 从现实中分离功能,即描述要“做什么”而不是“怎样实现”
  2. 要求使用面向处理的规格说明语言(或称系统定义语言)
  3. 如果被开发软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明的描述之中
  4. 规格说明必须包括系统运行环境
  5. 规格说明必须是一个认识模型
  6. 规格说明必须是可操作的
  7. 规格说明必须容许不完备性并允许扩充
  8. 规格说明必须局部化和松散耦合

软件需求规格说明的结构

IEEE标准为需求文档提出了以下结构,组织机构内部可以基于此标准扩展.
(1) 引言
在这里插入图片描述
(2) 综合描述
在这里插入图片描述
(3) 需求描述
在这里插入图片描述
(4) 附录(词汇表、分析模型、待定问题列表)
(5) 索引

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/465913.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt QStandardItemModel详解

1、概述 QStandardItemModel是Qt框架中提供的一个基于项的模型类,用于存储和管理数据,这些数据可以以表格的形式展示在视图控件(如QTableView、QTreeView等)中。QStandardItemModel支持丰富的数据操作,包括添加、删除…

Ubuntu18.04更换PREEMPT RT内核

文章目录 1 安装环境2 下载实时内核3 安装必要库和软件4 配置4.1 解压kernel压缩包4.2 进入kernel文件夹4.2.1 操作步骤4.2.2 修改配置文件 5 构建和安装6 启动显示内核选择界面7 启动界面选择实时内核版本进入8 uname -a查看操作系统内核信息 1 安装环境 Ubuntu 18.04原生内核…

立冬到了,选择Codigger暖心陪伴

立冬了,寒风渐起,但Codigger开发者们依然热情如火,编程的热情不会因为冬天而减退,相反,更加激情澎湃。就像立冬的清晨,虽然寒冷,却有着一种清新的气息,让我们一起迎接新的挑战&#…

全文检索ElasticSearch到底是什么?

学习ElasticSearch之前,我们先来了解一下搜索 1 搜索是什么 ① 概念:用户输入想要的关键词,返回含有该关键词的所有信息。 ② 场景: ​ 1互联网搜索:谷歌、百度、各种新闻首页; ​ 2 站内搜索&#xff…

Ansys Zemax | 手机镜头设计 - 第 4 部分:用LS-DYNA进行冲击性能分析

该系列文章将讨论智能手机镜头模组设计的挑战,从概念和设计到制造和结构变形分析。本文是四部分系列中的第四部分,它涵盖了相机镜头的显式动态模拟,以及对光学性能的影响。使用Ansys Mechanical和LS-DYNA对相机在地板上的一系列冲击和弹跳过程…

Follow软件的使用入门教程

开篇 看到很多兄弟还不知道怎么用这个当下爆火的浏览器!在这里简单给需要入门的小伙伴一些建议: 介绍 简单解释一下,RSS 意思是简易信息聚合,用户可以通过 RSS 阅读器或聚合工具自主订阅并浏览各个平台的内容源,不用…

Redis数据库测试和缓存穿透、雪崩、击穿

Redis数据库测试实验 实验要求 1.新建一张user表,在表内插入10000条数据。 2.①通过jdbc查询这10000条数据,记录查询时间。 ②通过redis查询这10000条数据,记录查询时间。 3.①再次查询这一万条数据,要求根据年龄进行排序&#…

无root权限在Linux虚拟环境安装指定版本python

创建虚拟环境见 Linux创建虚拟环境,并在虚拟环境中运行项目_如何进入虚拟zhi环境再打开项目-CSDN博客 若使用python -m venv创建虚拟环境则无法指定python版本,需要单独安装 1.在官网Download Python | Python.org 下载对应版本的python包 例如我这里…

OCR、语音识别与信息抽取:免费开源的AI平台在医疗领域的创新应用

一、系统概述 在医疗行业中,大量数据来自手写病历、医学影像报告、患者对话记录等非结构化数据源。这些数据常常存在信息碎片化和管理困难的问题,给医务人员的工作带来了不便。思通数科AI多模态能力平台正是为了解决这一行业痛点而生,产品集…

Rust移动开发:Rust在iOS端集成使用介绍

iOS调用Rust 上篇介绍了 Rust移动开发:Rust在Android端集成使用介绍, 这篇主要看下iOS上如何使用Rust,Rust可以给移动端开发提供跨平台,通用组件支持。 该篇适合对iOS、Rust了解,想知道如何整合调用和编译的,如果想要…

「Mac畅玩鸿蒙与硬件24」UI互动应用篇1 - 灯光控制小项目

本篇将带领你实现一个互动性十足的灯光控制小项目,用户可以通过点击按钮来控制灯光的开关。该项目将涉及状态管理、动态图片加载以及按钮交互,是学习鸿蒙应用开发的重要基础。 关键词 UI互动应用状态管理动态图片加载用户交互 一、功能说明 在这个灯光…

什么是大模型?一文读懂大模型的基本概念

大模型是指具有大规模参数和复杂计算结构的机器学习模型。本文从大模型的基本概念出发,对大模型领域容易混淆的相关概念进行区分,并就大模型的发展历程、特点和分类、泛化与微调进行了详细解读,供大家在了解大模型基本知识的过程中起到一定参…

特力康|AI智能激光语音驱鸟器:精准识别,智能驱鸟,安全无忧

AI智能激光语音驱鸟器 随着电力设施的发展,鸟类侵扰问题逐渐引起了广泛关注。特别是在变电站等关键电力设施中,鸟类可能会导致设备短路、物理损害或系统故障,影响电网的稳定性。因此,亟需一种高效、无害的解决方案来解决这一问题…

变异凯撒(Crypto)

目录 解题思路 题目设计原理 总结 解题思路 从题目可以看出,这是凯撒密码,原理应该还是整体偏移,但是变异了。 凯撒密码只有字母的横移,而通过观察我们可知,加密密文包含大小写字母、特殊字符,于是猜想大…

SpringBoot在城镇住房保障系统中的应用案例

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了城镇保障性住房管理系统的开发全过程。通过分析城镇保障性住房管理系统管理的不足,创建了一个计算机管理城镇保障性住房管理系统的方案。文章介绍了城…

轻松实现无网络依赖:手把手教你如何在本地快速部署Llama3模型

我们利用 LM Studio 这款软件来可视化部署 Llama3。 [官网地址] 选择好对应的操作系统下载安装包,在下载好之后进行安装。在安装好之后我们就可以打开软件并使用了: 我们在中间的输入框部分输入 llama 来搜索并安装 llama 系列的模型,不过在…

物联网技术的智能监控

近年来,餐饮行业迅速发展,油烟肆意排放造成的环境污染愈加严重,有效监测、防控油烟问题迫在眉睫。对此,文章设计了一种基于物联网传感技术的油烟监控系统,考虑到餐饮行业使用需求,主控制器选择STM32单片机&…

【深度学习遥感分割|论文解读4】UNetFormer:一种类UNet的Transformer,用于高效的遥感城市场景图像语义分割

【深度学习遥感分割|论文解读4】UNetFormer:一种类UNet的Transformer,用于高效的遥感城市场景图像语义分割 【深度学习遥感分割|论文解读4】UNetFormer:一种类UNet的Transformer,用于高效的遥感城市场景图像语义分割 文章目录 【…

利用 Avalonia UI 构建 Blazor 混合应用程序

Blazor 是一个 .NET 前端框架,用于仅使用 .NET 技术构建 Web 应用程序。2021 年,Blazor 扩展到桌面端,推出了 Blazor Hybrid(混合),使开发者可以在桌面平台上使用已有的技能。 Blazor 混合应用程序是传统的…

深度学习笔记9-实现逻辑回归

Python实现逻辑回归 1.假设函数 import math #sigmoid函数得计算 def sigmoid(z):return 1.0/(1math.exp(-z)) #逻辑回归假设函数的计算 #函数传入参数theta、样本特征向量x和特征值得个数n def hypothesis(theta,x,n):h0.0#保存预测结果for i in range(0,n1):#将theta-i和x…