需求分析的任务

1 确定对系统的综合要求

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

1.功能需求

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

2.性能需求

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

3.可靠性和可用性需求

可靠性需求定量地指定系统的可靠性,例如,"机场雷达系统在一个月内不能出现2次以上故障。"

可用性与可靠性密切相关,它量化了用户可以使用系统的程度。例如,"在任何时候主机或备份机上的机场雷达系统应该至少有一个是可用的,而且在一个月内在任何一台计算机上该系统不可用的时间不能超过总时间的2%。"

4.出错处理需求

这类需求说明系统对环境错误应该怎样响应。例如,如果它接收到从另一个系统发来的违反协议格式的消息,应该做什么?注意,上述这类错误并不是由该应用系统本身造成的。

在某些情况下,"出错处理"指的是当应用系统发现它自己犯下一个错误时所采取的行动。但是,应该有选择地提出这类出错处理需求。人们的目的是开发出正确的系统,而不是用无休止的出错处理代码掩盖自己的错误。总之,对应用系统本身错误的检测应该仅限于系统的关键部分,而且应该尽可能少。

5.接口需求

接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。例如:

"把商品从货源地运送到目的地所需要的成本,应该一直显示在"成本'正文框中。"

"向运输公司传送*需运送的商品'信息的格式是exp<string>,其中<string>是从商品目录中选取的字符串。"

上述第一个例子是应用系统与用户接口的一个需求,第二个例子指定了与其他应用系统通信的信息格式。两者都是接口需求。

6.约束

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

7.逆向需求

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

8.将来可能提出的要求

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

2 分析系统的数据要求

任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响,因此,必须分析系统的数据要求,这是软件需求分析的一个重要任务。分析系统的数据要求通常采用建立数据模型的方法。

复杂的数据由许多基本的数据元素组成,数据结构表示数据元素之间的逻辑关系。利用数据字典可以全面准确地定义数据,但是数据字典的缺点是不够形象直观。为了提高可理解性,常常利用图形工具辅助描绘数据结构。常用的图形工具有层次方框图和Warnier图。

软件系统经常使用各种长期保存的信息,这些信息通常以一定方式组织并存储在数据库或文件中,为减少数据冗余,避免出现插入异常或删除异常,简化修改数据的过程,通常需要把数据结构规范化。

3 导出系统的逻辑模型

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

4 修正系统开发计划

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

相关推荐
不止会JS17 小时前
软考:系统架构设计师教材笔记(持续更新中)
系统架构·软件工程·软考
文火冰糖的硅基工坊1 天前
[创业之路-204]:《华为战略管理法-DSTE实战体系》- 5-平衡记分卡绩效管理
产品经理·需求分析·产品·创业·战略
Theodore_10221 天前
4 软件工程——总体设计
java·开发语言·数据库·算法·java-ee·软件工程·设计
Theodore_10221 天前
1 软件工程——概述
java·开发语言·算法·设计模式·java-ee·软件工程·个人开发
shinelord明2 天前
【再谈设计模式】享元模式~对象共享的优化妙手
开发语言·数据结构·算法·设计模式·软件工程
伯牙碎琴3 天前
智能体实战(需求分析助手)二、需求分析助手第一版实现(支持需求提取、整理、痛点分析、需求分类、优先级分析、需求文档生成等功能)
ai·大模型·agent·需求分析·智能体
Byron Loong3 天前
Python+OpenCV系列:【打卡系统-需求分析】需求大剖析,考勤革命开启!
python·opencv·需求分析
人才程序员3 天前
QML z轴(z-order)前后层级
c语言·前端·c++·qt·软件工程·用户界面·界面
Theodore_10223 天前
3 需求分析
java·开发语言·算法·java-ee·软件工程·需求分析·需求
向上的车轮3 天前
软件需求分析常见误区(三),瀑布模型中需求分析遇到的问题
需求分析