UML需求分析02:需求分析内容及难点
1、什么是需求分析
需求分析是软件生存周期中的一个重要过程,是总体设计和软件设计之间的桥梁。(软件生存周期:定义及规划、需求分析、软件设计、程序编码、软件测试、运行维护)
-
一方面,需求分析以项目规划和系统总体设计方案为分析活动的出发点,并从软件角度对它们进行调整; 另一方面,需求规格说明又是软件设计、编码、测试、以及运维等过程的重要基础。 在这个过程中,系统设计师和软件工程师需要明确用户的需求,只有在确定了需求后我们才能够对系统进行进一步的分析和设计。
2、需求分析的任务
通过调研用户单位的需求,将用户意图转变为软件开发人员所需要的有关软件的技术规格,使用户和软件开发人员之间最终达成对系统的一致性需求认识。
3、 需求分析的特点
-
供需交流困难
在软件生存周期中,只有需求分析阶段是面向用户的。需求分析需要对用户的业务活动进行分析,明确在用户的业务环境中软件系统应该“做什么”。但是在开始时,开发人员和用户双方都不能准确地提出系统要“做什么?”。因为软件开发人员不是用户业务领域的专家,不熟悉用户的业务活动和业务环境,又不可能在短期内搞清楚,而用户不熟悉计算机应用的有关问题,双方在交流时存在着隔阂。
-
需求动态化
对于一个大型而复杂的软件系统,用户很难精确完整地提出它的功能和性能要求。一开始只能提出一个大概、模糊的功能,只有经过长时间的反复认识才逐步明确。有时进入到设计、编程阶段才能明确,更有甚者,到开发后期还在提新的要求。这无疑给软件开发带来困难。
-
后续影响复杂
需求分析是软件开发的基础。假定在该阶段发现一个错误,解决它需要用一小时的时间,到设计、编程、测试和维护阶段解决,则要花更多倍的时间。因此,对于大型复杂系统而言,首先要进行可行性研究,根据可行性研究的结果,决定系统功能的调整和取舍。
4、需求分析的内容
-
面向用户的用户需求
用户需求是用户关于软件的一系列意图、想法的集中体现,涉及软件的操作方式、界面风格、用户单位的业务范围、工作流程,以及用户对于软件应用的发展期望等。
-
面向开发者的系统需求
系统需求是比用户需求更具有技术特性的需求陈述,作为软件开发人员设计系统的起点与基本依据。系统需求需要对系统在功能、性能、数据等方面进行规格定义,且往往要求用更加严格的形式化语言进行表述,以保证系统需求表述具有一致性。 系统需求涉及有关软件的一系列技术规格,包括:功能需求、数据需求、性能、安全等诸多方面的问题。
(1)功能需求 功能需求是有关软件系统的最基本的需求表述,用于说明系统应该做什么,涉及软件系统 的功能特征、功能边界、输入输出接口、异常处理方法等方面的问题。 (2) 数据需求 数据需求用于对系统中的数据,包括:输入数据、输出数据、加工中的数据、保存在存储 设备上的数据等,进行详细的用途说明与规格定义。当所要开发的软件系统涉及到对数据库的操作时,还可以使用数据关系模型图(ER图)对数据库中的数据实体、数据实体之间的关系等进行描述。 (3) 其他需求 其他需求是指系统在性能、安全、界面等方面需要达到的要求。