需求分析的任务

1 确定对系统的综合要求

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

1.功能需求

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

2.性能需求

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

3.可靠性和可用性需求

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

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

4.出错处理需求

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

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

5.接口需求

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

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

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

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

6.约束

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

7.逆向需求

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

8.将来可能提出的要求

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

2 分析系统的数据要求

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

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

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

3 导出系统的逻辑模型

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

4 修正系统开发计划

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

相关推荐
iCxhust9 小时前
51单片机电力载波应用开发(九)51产品化
c语言·数据库·嵌入式硬件·mysql·51单片机·软件工程·c51
m0_5873830011 小时前
GogoAI自助健身门店解决方案核心技术实现与落地部署全流程实操指南
运维·spring boot·信息可视化·架构·需求分析
rolt12 小时前
[重写]《软件方法》全流程引领AI第1章-1.3为什么要使用标准建模语言(202610更新)
软件工程·产品经理·架构师·uml·本体·fde
带金箍的至尊宝15 小时前
系统架构设计师笔记 08:UML 用例图、类图、时序图
笔记·系统架构·uml
m0_587383001 天前
广州 24 小时自助健身房解决方案技术实现与实战指南
java·spring·小程序·架构·需求分析
2302_805771071 天前
Day24:DDT+EXCEL数据驱动
功能测试·单元测试·自动化·测试用例·需求分析·web自动化
m0_587383001 天前
无人自助拼豆系统落地开发实战指南 核心逻辑实现与部署经验分享
前端·javascript·vue.js·人工智能·经验分享·需求分析
m0_587383001 天前
无人自助拼豆系统从需求分析到落地部署全流程实战开发指南
java·经验分享·后端·struts·小程序·架构·需求分析
考研保研资料分享2 天前
北大软微软件工程保研经验:哈工大面试追问与补录风险取舍
面试·职场和发展·软件工程
熊出没2 天前
从Copilot到Agent:AI编程工作流的重构与落地实践
软件工程·copilot·ai编程·ai agent