需求|如何做好软件需求分析?

编辑导语:软件需求分析,就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。这是是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
需求|如何做好软件需求分析?
文章插图
一、需求分析定义软件需求分析也称为系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要求,将用户非形式的需求表述转化为完整的需求定义,从而确定系统必须做什么的过程。
软件开发一般包括:可行性分析、需求分析、软件设计、软件开发、软件测试、软件实施、软件服务等步骤,需求分时软件开发的第一步骤。
用户需求分析是指在系统设计之前和设计、开发过程中对用户需求所作的调查与分析,是系统设计、系统完善和系统维护的依据。
需求是需要与欲求的意思,需求是机体的一种客观需要,而欲求则是一种主观需要,包括人在胜利、环境、社会等方面的需要。
需求是一款产品的市场基础,成功的产品不但能满足用户的物质需求,也要满足用户的精神和心理需求。
二、软件需求分析目标需求分析是软件计划阶段的重要活动,也是软件生存周期中的第一步,该阶段是分析系统在功能上需要“实现什么”,而不是考虑如何去“实现”。
对客户的信息化需求进行分析,将客户不规范的、随意的需求,转换成规范的、严谨的、结构化的需求,将客户不正确的需求转换成正确的需求、将客户不切实际的需求转换成可以实现的需求,将客户不必要的需求砍掉,将客户漏掉的需求补上。
此外,软件的一些非功能性需求(如软件性能、可靠性、响应时间、可扩展性等),软件设计的约束条件,运行时与其他软件的关系等也是软件需求分析的目标。
三、软件需求分析原则需求分析通常来讲它们应符合以下一般原则:
1. 能够表达和理解问题的信息域信息域反映的是用户业务系统中数据的流向和对数据进行加工的处理过程,因此信息域是解决“做什么?”的关键因素。根据信息域描述的信息流、信息内容和信息结构,可以较全面地(完整地)了解系统的功能。
2. 建立描述系统信息、功能和行为的模型建立模型的过程是“由粗到精”的综合分析的过程。通过对模型的不断深化认识,来达到对实际问题的深刻认识。
3. 能够对所建模型按一定形式进行分解分解是为了降低问题的复杂性,增加问题的可解性和可描述性。分解可以在同一个层次上进行(横向分解),也可以在多层次上进行(纵向分解)。
4. 分清系统的逻辑视图和物理视图软件需求的逻辑视图描述的是系统要达到的功能和要处理的信息之间的关系,这与实现细节无关,而物理视图描述的是处理功能和信息结构的实际表现形式,这与实现细节是有关的。
需求分析只研究软件系统“做什么?”,而不考虑“怎样做?”。
四、软件需求分析内容需求分析的内容是针对待开发软件提供完整、清晰、具体的要求,确定软件必须实现哪些任务。
具体分为功能性需求、非功能性需求与设计约束三个方面:
需求|如何做好软件需求分析?
文章插图
1. 功能性需求功能性需求即软件必须完成哪些事,必须实现哪些功能,以及为了向其用户提供有用的功能所需执行的动作。
功能性需求是软件需求的主体,开发人员需要亲自与用户进行交流,核实用户需求,从软件帮助用户完成事务的角度上充分描述外部行为,形成软件需求规格说明书。
2. 非功能性需求作为对功能性需求的补充,软件需求分析的内容中还应该包括一些非功能需求。
主要包括软件使用时对性能方面的要求、运行环境要求,软件设计必须遵循的相关标准、规范、用户界面设计的具体细节、未来可能的扩充方案等。
3. 设计约束一般也称做设计限制条件,通常是对一些设计或实现方案的约束说明。
例如:要求待开发软件必须使用Oracle数据库系统完成数据管理功能,运行时必须基于Linux环境等。
五、软件需求分析过程需求分析阶段的工作,可以分为四个方面:问题识别、分析与综合、制订规格说明、评审。
需求|如何做好软件需求分析?
文章插图
1. 问题识别就是从系统角度来理解软件,确定对所开发系统的综合要求,并提出这些需求的实现条件,以及需求应该达到的标准。