一、本文要点
1.了解软件需求分析的目标、原则和任务
2.了解软件需求的获得方法
3.掌握结构化分析方法,面向数据流的分析方法
4.了解需求规格说明和需求评审的主要内容
做软件项目有两个难题,一个是需求分析,另一个是项目管理,本文专门讨论需求分析,提出了需求分析中要建立“功能、性施、接口”这样三个需求精型。总结了需求分析的理论、方法技巧。
二、需求分析的重要性
为什么需求分析特别重要?
需求分析特别重要,是因为:(1)许多大型应用系统的失败,最后均归结到需求分析:要么获取需求的方法不当,使得需求分析不到位或不彻底。导致开发者反复多次地进行需求分析,致使设计、编码、测试无法顺利进行;要么客户配合不好,导致客户对需求不确认,或客户需求不断变化,同样致使设计、编码、测试无法顺利进行。
(2)需求分析的输出文档是(用户需求报告》,它既是软件生存周期中的第一个里程碑,又是客户、软件开发人员和项目管理人员三者必须遵守的一根基线,是三者共同工作的基础, 是项目Alpha 测试和Beta测试的准则, 是供方交付产品和需方验收产品的依据
(3)需求分析要占用整个软件开发时间或工作量的30%左名。
(4)需求获取中的错误,属于软件开发中的早期错误,它会在后续的设计和实现中进行发散式的传播。
根据以上4个原因, IT企业的高层经理,对需求分析特别重视,常常派经验最丰富的人员去做项目需求。正因为如此,“系统分析员”才是软件行业中的最高技术职称。
三、需求分析的目的和难点
需求分析的目的是什么?需求分析的难点在哪?
软件需求分析目的是用于说明软件产品或软件项目需要满足的条件和限制,在软件工程项目中首先聚获取用户的需求,通过对软件需要的提取、分析、文档化及验证,为进一步的设计和实现提供依据。需求分析的难点是,在系统的功能、性能和接口方面,开发者与客户达成完全一致的需求,让客户最终签字确认,并保证在项目验收前,需求相对稳定不变。万一需求有一点变化,双方必须履行“需求变更管理程序”,而变更管理程序在签订合同时已经做了规定。要知道,合同是具有法律效力的。
四、需求分析的理论基础
需求分析的理论基础有哪儿条?
需求分析的理论基础有:什么是软件需求;软件需求需要量化;需求是一个过程: 需求过程中的角色;需求过程是一个选代的过程; 需求来源等6条理论基础。
五.需求分析的基本思路
需求分析的思路,是从用户的功能需求(系统需要做什么)出发,由系统的业务流程和数据流程导出系统的业务模型和功能模型,识别出系统的元数据和中间数据,为今后设计数据模型做好充分准备。同时,对系统的软、硬件环境配置,开发工具,开发工期,费用,开发进度,培训,系统风险进行评估。
六.为什么说需求分析是面向流程的?
系统的功能、性能、接口、界面都是在流程中动态实时的反映出来。在所有的流程(物流、人流、资金流、信息流、单据流、报表流、数据流)中,数据流最重要,也最具有代表性,因为在计算机网络系统内,一切流程都表现为数据流, 或者说是数据流在不同方向的投影,而流程是动态的、实时的。所以说,需求分析是面向流程的。
待续