需求分析的任务

1 确定对系统的综合要求
虽然功能需求是对软件系统的一项基本需求,但却并不是唯一的需求。通常对软件系统有下述几方面的综合要求。


1.功能需求
这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。

2.性能需求
性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。例如,“应力分析程序必须在一分钟之内生成任何一个梁的应力报告。”就是一项性能需求。

3.可靠性和可用性需求
可靠性需求定量地指定系统的可靠性,例如,“机场雷达系统在一个月内不能出现2次以上故障。”
可用性与可靠性密切相关,它量化了用户可以使用系统的程度。例如,“在任何时候主机或备份机上的机场雷达系统应该至少有一个是可用的,而且在一个月内在任何一台计算机上该系统不可用的时间不能超过总时间的2%。”

4.出错处理需求

       这类需求说明系统对环境错误应该怎样响应。例如,如果它接收到从另一个系统发来的违反协议格式的消息,应该做什么?注意,上述这类错误并不是由该应用系统本身造成的。
       在某些情况下,“出错处理”指的是当应用系统发现它自己犯下一个错误时所采取的行动。但是,应该有选择地提出这类出错处理需求。人们的目的是开发出正确的系统,而不是用无休止的出错处理代码掩盖自己的错误。总之,对应用系统本身错误的检测应该仅限于系统的关键部分,而且应该尽可能少。

5.接口需求
       接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。例如:
       “把商品从货源地运送到目的地所需要的成本,应该一直显示在“成本'正文框中。”
       “向运输公司传送*需运送的商品'信息的格式是exp<string>,其中<string>是从商品目录中选取的字符串。”
       上述第一个例子是应用系统与用户接口的一个需求,第二个例子指定了与其他应用系统通信的信息格式。两者都是接口需求。

6.约束
       设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。在需求分析阶段提出这类需求,并不是要取代设计(或实现)过程,只是说明用户或环境强加给项目的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。

7.逆向需求
      逆向需求说明软件截图( A l t + A )该做什么。理论上有无限多个逆向需求,人们应该仅选取能澄清真实需求且可消除可能发生的误解的那些逆向需求。例如,“应力分析程序无须分析桥梁倒塌数据。”

8.将来可能提出的要求

应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。这样做的目的是,在设计过程中对系统将来可能的扩充和修改预做准备,以便一旦确实需要时能比较容易地进行这种扩充和修改。

2 分析系统的数据要求
       任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。分析系统的数据要求通常采用建立数据模型的方法。
       复杂的数据由许多基本的数据元素组成,数据结构表示数据元素之间的逻辑关系。利用数据字典可以全面准确地定义数据,但是数据字典的缺点是不够形象直观。为了提高可理解性,常常利用图形工具辅助描绘数据结构。常用的图形工具有层次方框图和Warnier图。
       软件系统经常使用各种长期保存的信息,这些信息通常以一定方式组织并存储在数据库或文件中,为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化。

3 导出系统的逻辑模型
       综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。

4 修正系统开发计划
       根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。

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

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

相关文章

MacBook 怎么玩Windows游戏 苹果笔记本怎么玩游戏?mac上如何玩windows游戏

传统上,Mac 不被认为是好的游戏机。然而,苹果已经开始在 Mac 上的游戏上投入更多精力,特别是自从转向苹果芯片以来。这使得 Mac 游戏的本机移植数量和模拟 Windows 游戏的能力都得到了显著提高。 方法一:Boot Camp 1、Boot Camp是…

SpirngMVC框架学习笔记(一):SpringMVC基本介绍

1 SpringMVC 特点&概述 SpringMVC 从易用性,效率上 比曾经流行的 Struts2 更好 SpringMVC 是 WEB 层框架,接管了 Web 层组件, 比如控制器, 视图, 视图解析, 返回给用户的数据格式, 同时支持 MVC 的开发模式/开发架构SpringMVC 通过注解,…

Java数据结构和算法(B树)

前言 B树又叫平衡的多路搜索树;平衡的意思是又满足平衡二叉树的一些性质,左树大于右树; 多路意思是,可以多个结点,不再是像二叉树只有两个结点; 实现原理 B树是一种自平衡的搜索树,通常用于实…

MySQL和MongoDB数据库的区别

MySQL和MongoDB数据库的区别 随着大数据和云计算技术的兴起,数据库的选择成为开发者和架构师必须面对的重要决策。MySQL和MongoDB作为关系型数据库和非关系型数据库的代表,在各自领域都有着广泛的应用。本文将从多方面详细比较MySQL和MongoDB&#xff0…

MATLAB:插值函数之interp与griddata

MATLAB 提供了多种插值函数来处理不同维度的数据。其中,interp1、interp2 和 griddata 是常用的插值函数,分别用于一维、二维和多维(不规则)数据的插值。 之前有对interp1进行过详细介绍,如需详细了解,请查…

会声会影调速怎么用 会声会影如何调整音频速度

会声会影是一款功能强大的视频编辑软件,可以帮助我们轻松的实现剪辑。 会声会影的操作简单易懂,界面简洁明快。适合家庭使用, 我们使用会声会影可以在家就能将视频剪辑成好莱坞大片。但是在使用的过程中,仍然会遇到一些操作上的问…

洛谷 P3803 【模板】多项式乘法(FFT)

【模板】多项式乘法(FFT) 题目背景 这是一道多项式乘法模板题。 注意:本题并不属于中国计算机学会划定的提高组知识点考察范围。 题目描述 给定一个 n n n 次多项式 F ( x ) F(x) F(x),和一个 m m m 次多项式 G ( x ) G(…

C语言--指针数组和数组指针的区别

指针数组 就是一个数组,由指针构成的数组,每一个元素都是指针,每个指针可以指向不同的内存地址,这些地址可以是数组、变量。 int var1 10; int var2 20; int var3 30;int *ptrArray[3]; // 定义一个指针数组,包含…

2024年上半年软件系统架构师论文【回忆版】

文章目录 考试时间考试地点案例分析1、微服务架构的优点和缺点2、质量属性的6个元素3、分布式锁 Redis的缺点4、MongoDB 存储矢量图的优势 论文回忆版论文一、论单元测试的设计与应用论文二、论大数据模型的设计与应用论文三、论模型驱动的架构设计及应用论文四、论云原生运维的…

Mybatis-Plus-Join

1. 简介 官网 https://mybatisplusjoin.com/ 2. 基本用法 步骤&#xff1a; 添加依赖 <!--mybatis-plus-join--> <dependency><groupId>com.github.yulichang</groupId><artifactId>mybatis-plus-join-boot-starter</artifactId><ve…

探索LangGraph:如何创建一个既智能又可控的航空客服AI

这种设计既保持了用户控制权&#xff0c;又确保了对话流程的顺畅。但随着工具数量的增加&#xff0c;单一的图结构可能会变得过于复杂。我们将在下一节中解决这个问题。 第三部分的图将类似于下面的示意图&#xff1a; 状态定义 首先&#xff0c;定义图的状态。我们的状态和L…

homography原理和图像相似度计算

1. homography 讲homography原理 讲homography应用 2. 图像相似度计算 20230621-计算两幅图像的相似度 20221205-有史以来最全的图像相似度算法 20231112-图像相似度对比方法

C++:List的使用和模拟实现

✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来! 文章目录 目录 文章目录 前言 一 list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 list element access 1.2.5 list modifiers …

golang+redis的延时队列

网址 https://github.com/cfanbo/delay-queue-redis 代码结构很简单&#xff0c;简单代表着自由度很高&#xff0c;使用过程中出现问题也很好修改。 我很喜欢这样的代码&#xff0c;至少我看的懂&#xff0c;该有的都有。 //package main // //import ( // "context&q…

leetcode209_长度最小的子数组

要求某个连续的区间内的元素值总和>S . 思路&#xff1a;滑动窗口&#xff1a;本质上是一种双指针法。 &#xff08;1&#xff09;初始化left right 0&#xff1b; &#xff08;2&#xff09;left不动&#xff0c;right移动&#xff0c;扩大窗口&#xff0c;直至符合要…

selinux的安全策略可以影响ntp的方式

SELinux 是一个灵活而强大的模块化安全策略框架&#xff0c;它允许管理员定义和执行非常具体的访问控制策略。这些策略可以限制程序和进程对系统资源的访问&#xff0c;包括文件、网络端口、进程间通信等。 对于NTP&#xff0c;SELinux 策略可以影响以下几个方面&#xff1a; …

网络空间安全数学基础·整除与同余

主要内容&#xff1a; 整除的基本概念&#xff08;掌握&#xff09; 素数&#xff08;掌握&#xff09; 同余的概念&#xff08;掌握&#xff09; 1.1整除 定义&#xff1a;设a&#xff0c;b是任意两个整数&#xff0c;其中b≠0&#xff0c;如果存在一个整数q&#xff0c;使 …

12306技术内幕

公司内部做的一次技术分享 文章目录 12306的成就12306系统特点12306系统难点解决思路产品角度技术角度余票库存的表如何设计&#xff1f; 抢票软件推荐巨人的肩膀 对于未公开的技术部分&#xff0c;只能结合已公开的信息&#xff0c;去做大胆的猜想。 本文提到的一些解决方案&…

SpringBoot + Mybatis-Plus中乐观锁实现

悲观锁 悲观锁是一种悲观思想&#xff0c;它认为数据很可能会被别人所修改 所以总会对数据进行上锁&#xff0c;读操作和写操作都会上锁&#xff0c;性能较低&#xff0c;使用较少&#xff01; 乐观锁 乐观锁是一种乐观思想&#xff0c;它认为数据并不一定会被别人所修改 所以…