UML需求分析02:需求分析内容及难点

本文详细介绍了需求分析在软件开发过程中的重要性,包括其与项目规划、设计的关系,以及需求分析的任务。重点讨论了需求分析的两大特点:供需交流困难和需求动态化,以及这些特点带来的挑战。内容涵盖了面向用户的用户需求和面向开发者的系统需求,如功能需求、数据需求和其他特殊要求,为理解软件开发中的需求分析提供了全面视角。

1、什么是需求分析

需求分析是软件生存周期中的一个重要过程,是总体设计和软件设计之间的桥梁。(软件生存周期:定义及规划、需求分析、软件设计、程序编码、软件测试、运行维护)

  • 一方面,需求分析以项目规划和系统总体设计方案为分析活动的出发点,并从软件角度对它们进行调整;
  • 另一方面,需求规格说明又是软件设计、编码、测试、以及运维等过程的重要基础。
    在这个过程中,系统设计师和软件工程师需要明确用户的需求,只有在确定了需求后我们才能够对系统进行进一步的分析和设计。

2、需求分析的任务

通过调研用户单位的需求,将用户意图转变为软件开发人员所需要的有关软件的技术规格,使用户和软件开发人员之间最终达成对系统的一致性需求认识。

3、 需求分析的特点

  • 供需交流困难

在软件生存周期中,只有需求分析阶段是面向用户的。需求分析需要对用户的业务活动进行分析,明确在用户的业务环境中软件系统应该“做什么”。但是在开始时,开发人员和用户双方都不能准确地提出系统要“做什么?”。因为软件开发人员不是用户业务领域的专家,不熟悉用户的业务活动和业务环境,又不可能在短期内搞清楚,而用户不熟悉计算机应用的有关问题,双方在交流时存在着隔阂。

  • 需求动态化

对于一个大型而复杂的软件系统,用户很难精确完整地提出它的功能和性能要求。一开始只能提出一个大概、模糊的功能,只有经过长时间的反复认识才逐步明确。有时进入到设计、编程阶段才能明确,更有甚者,到开发后期还在提新的要求。这无疑给软件开发带来困难。

  • 后续影响复杂

需求分析是软件开发的基础。假定在该阶段发现一个错误,解决它需要用一小时的时间,到设计、编程、测试和维护阶段解决,则要花更多倍的时间。因此,对于大型复杂系统而言,首先要进行可行性研究,根据可行性研究的结果,决定系统功能的调整和取舍。

4、需求分析的内容

  • 面向用户的用户需求

用户需求是用户关于软件的一系列意图、想法的集中体现,涉及软件的操作方式、界面风格、用户单位的业务范围、工作流程,以及用户对于软件应用的发展期望等。

用户需求直接来源于用户,可以由用户主动提出,也可以通过与用户的交流的方式获取。

  • 面向开发者的系统需求

系统需求是比用户需求更具有技术特性的需求陈述,作为软件开发人员设计系统的起点与基本依据。系统需求需要对系统在功能、性能、数据等方面进行规格定义,且往往要求用更加严格的形式化语言进行表述,以保证系统需求表述具有一致性。 系统需求涉及有关软件的一系列技术规格,包括:功能需求、数据需求、性能、安全等诸多方面的问题。

(1)功能需求
功能需求是有关软件系统的最基本的需求表述,用于说明系统应该做什么,涉及软件系统 的功能特征、功能边界、输入输出接口、异常处理方法等方面的问题。
(2) 数据需求
数据需求用于对系统中的数据,包括:输入数据、输出数据、加工中的数据、保存在存储 设备上的数据等,进行详细的用途说明与规格定义。当所要开发的软件系统涉及到对数据库的操作时,还可以使用数据关系模型图(ER图)对数据库中的数据实体、数据实体之间的关系等进行描述。
(3) 其他需求
其他需求是指系统在性能、安全、界面等方面需要达到的要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远山D

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值