当前位置: 首页 > article >正文

软件工程-软件需求分析基础

基本任务

准确地回答“系统必须做什么?”,也就是对目标系统提出完整、准确、清晰、具体的要求

目标是,在分析阶段结束之前,系统分析员应该写出软件需求规格说明书,以书面形式准确地描述软件需求。

准则

  • 1)必须理解并描述问题的信息域,根据这条准则应该建立数据模型(工具:实体关系图ERD)
  • 2)必须定义软件应完成的功能,这条准则应该建立功能模型(工具:数据流图DFD)
  • 3)必须描述作为外部事件结果的软件行为,这条准则应该建立行为模型(工具:状态转换图STD)
  • 4)必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节

步骤

  • 问题分析:一般指文字描述
  • 需求分析:建立分析模型
  • 需求验证 :评审

 

需求获取的常用方法

联合分析小组 

用户代表、领域专家和系统分析员

客户访谈

充分准备(可以准备调查表),寻找共同语言

循序渐进、逐步逼近

实际观察用户工作流程

问题分析与确认

多个来回

需求分析方法

结构化分析方法

自定向下、功能分解(分层DFD)

由后向前,定义数据和加工(DD,PSPEC)

根据需要,分析复杂数据和动态模型(E-R图,CFD,CSPEC,STD)

编写SRS

面向对象分析方法

定义系统的用例

领域分析,建立类对象模型

建立对象-关系模型

建立对象-行为模型

编写SRS

验证软件需求

1)一致性。所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾

2)完整性。需求必须是完整的,规格说明书(SRS)应该包括用户需要的每一个功能、性能

3)现实性。指定的需求应该是用现有的软硬件技术基本上可以实现

4)有效性。必须证明需求是正确有效的,确实能解决用户面对的问题


http://www.kler.cn/a/539769.html

相关文章:

  • 使用Docker + Ollama在Ubuntu中部署deepseek
  • 从零到一:我的元宵灯谜小程序诞生记
  • 聚类算法概念、分类、特点及应用场景【机器学习】【无监督学习】
  • 具身智能学习规划
  • DNS攻击方式有哪些,应该采取哪些应对措施?
  • 【开发日记】Uniapp对指定DOM元素截长图
  • 12.15 实战 ReAct:SerpAPI + LLM-MATH 构建自主解题智能体
  • 快速搭建 Elasticsearch 8 集群:零基础实战与升级注意事项
  • Java面试题-Redis缓存
  • GrassWebProxy
  • MySQL索引深度解析:从原理到优化
  • 大语言模型RAG,transformer和mamba
  • go语言中的反射
  • JavaScript系列(64)--响应式状态管理实现详解
  • webpack系统学习
  • RK3568使用C++和FFmpeg进行视频流,并使用自带GPU加速
  • 寒假2.7
  • Springboot原理(面试高频)
  • Linux | 自动化构建 —— make / Makefile
  • 导航守卫router.beforeEach
  • 设计模式.
  • F#语言的物联网
  • Linux0号进程的静态创建
  • 如何在 Vue 中使用 mixins?
  • HTML之CSS定位、浮动、盒子模型
  • Spring AI 介绍