软件需求分析的作用及如何进行需求分类(软件需求分析的内容是什么)

软件需求分析的作用及如何进行需求分?

通过对应问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化,最终形成需求规格说明,这一系列的活动即构成软件开发生命周期的需求分析阶段。

需求分析是介于系统分析和软件设计阶段之间的桥梁。一方面,需求分析以系统规格说明和项目规划作为分析活动的基本出发点,并从软件角度对它们进行检查与调整;另一方面,需求规格说明又是软件设计、实现、测试直至维护的主要基础。良好的分析活动有助于避免或尽早剔除早期错误,从而提高软件生产率,降低开发成本,改进软件质量。

需求工程是随着计算机的发展而发展的,在计算机发展的初期,软件规模不大,软件开发所关注的是代码编写,需求分析很少受到重视。后来软件开发引入了生命周期的概念,需求分析成为其第一阶段。随着软件系统规模的扩大,需求分析与定义在整个软件开发与维护过程中越来越重要,直接关系到软件的成功与否。人们逐渐认识到需求分析活动不再仅限于软件开发的最初阶段,它贯穿于系统开发的整个生命周期。80年代中期,形成了软件工程的子领域——需求工程(requirementengineering,RE)。进入90年代以来,需求工程成为研究的热点之一。从1993年起每两年举办一次需求工程国际研讨会(ISRE),自1994年起每两年举办一次需求工程国际会议(ICRE),在1996年Springer-Verlag发行了一新的刊物——《RequirementsEngineering》。一些关于需求工程的工作小组也相继成立,如欧洲的RENOIR(RequirementsEngineeringNetworkofInternationalCooperatingResearchGroups),并开始开展工作。

需求工程是指应用已证实有效的技术、方法进行需求分析,确定客户需求,帮助分析人员理解问题并定义目标系统的所有外部特征的一门学科。它通过合适的工具和记号系统地描述待开发系统及其行为特征和相关约束,形成需求文档,并对用户不断变化的需求演进给予支持。RE可分为系统需求工程(如果是针对由软硬件共同组成的整个系统)和软件需求工程(如果仅是专门针对纯软件部分)。软件需求工程是一门分析并记录软件需求的学科,它把系统需求分解成一些主要的子系统和任务,把这些子系统或任务分配给软件,并通过一系列重复的分析、设计、比较研究、原型开发过程把这些系统需求转换成软件的需求描述和一些性能参数。

需求工程是一个不断反复的需求定义、文档记录、需求演进的过程,并最终在验证的基础上冻结需求。80年代,HerbKrasner定义了需求工程的五阶段生命周期:需求定义和分析、需求决策、形成需求规格、需求实现与验证、需求演进管理。近来,MatthiasJarke和KlausPohl提出了三阶段周期的说法:获取、表示和验证。

综合了几种观点,可以把需求工程的活动划分为以下5个独立的阶段:

(1)需求获取:通过与用户的交流,对现有系统的观察及对任务进行分析,从而开发、捕获和修订用户的需求;

(2)需求建模:为最终用户所看到的系统建立一个概念模型,作为对需求的抽象描述,并尽可能多的捕获现实世界的语义;

(3)形成需求规格:生成需求模型构件的精确的形式化的描述,作为用户和开发者之间的一个协约;

(4)需求验证:以需求规格说明为输入,通过符号执行、模拟或快速原型等途径,分析需求规格的正确性和可行性;

(5)需求管理:支持系统的需求演进,如需求变化和可跟踪性问题。

软件需求分析说明书怎么写?

软件需求说明书

1. 引言:

1.1 项目名称 :

1.2 项目背景和内容概要 。(项目的委托单位、开发单位、主管部门、与其它项目的关系,与其他机构的关系等)。

1.3 相关资料、缩略语、定义

  (相关项目计划、合同及上级机关批文,引用的文件、采用的标准等)、(缩写词和名词定义)。

2. 任务概述

2.1 目标 (项目的开发目标和应用目标。如果是其他系统的一部分,则说明其关系) 。

2.2 范围 (包含的业务,不包含的业务)

2.3 假定条件与约束限制 ,(尽量列出开展本项目的假定和约束,例如:经费限制,开发期限,设备条件,用户现场环境准备等)。

3.业务流程

4.数据描述

4.1 原始数据描述

a. 静态数据

  b. 动态数据

  4.2 数据流向图

  4.3 数据概念模型和描述

  5.功能需求

  5.1 功能描述

  6.界面要求

  6.1报表格式

  6.2图形要求

  6.3输入输出要求

  7.接口要求

(描述与本系统相连的系统的接口的数据格式,数据交换协议,接口功能等)。

8.性能需求

  8.1数据精确度

  (例如,数据内部精度,外部显示精度)

  8.2数据量 。

  8.3时间特性要求 。

  (根据所开发系统的特点,规定系统对时间的特性的要求。例如: 系统响应时间、界面更新处理时间、数据转换与传输时间)

  9.运行环境需求

  9.1网络和硬件设备平台

  (网络拓扑图及设备类型描述)

  10.操作系统平台

  数据库系统平台

  10.1编程工具

  10.2其它支撑软件

  11. 其它专门需求

  11.1安装和操作

  11.2安全保密

  11.3维护服务

软件测试需求分析的主要步骤是什么?

软件测试就是在软件交付用户使用或投入运行前,对软件需求规格说明、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。软件测试在软件生命周期中横跨两个阶段:通常在编写出每一个模块之后就需要对它做必要的测试(称为单元测试)。编码和单元测试属于软件生命周期中的同一个阶段。在结束这个阶段后对软件系统还要进行各种综合测试,如集成测试、系统测试、性能测试和配置测试等,这是软件生命周期的另一个独立阶段,即测试阶段。 软件测试的目的:

1、测试的最终目的是为了避免错误的发生,确保应用程序能够正常高效的运行;

2、好的测试用例在于发现至今未发现的错误;

3、成功的测试是发现了至今未发现的错误的测试;

4、好的测试工程师应该做到不仅发现问题,还能够帮助开发人员分析问题; 软件测试的原则: 1、应把“尽早和不断地进行软件测试”作为软件开发者的座右铭,实践证明单元测试能够尽早发现问题,减少后期测试的错误量。可以采用Junit和Jtest来辅助进行单元测试。 2、测试用例应由测试输入数据、测试执行步骤和与之对应的预期输出结果三部分组成。 3、应当避免由程序员检查自己的程序。(指后期系统测试阶段,不包括单元测试) 4、测试用例的设计要确保能覆盖所有可能路径。在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。不合理的输入条件是指异常的,临界的,可能引起问题的输入条件。

5、充分注意测试中的群集现象。经验表明,测试后程序残存的错误数目与该程序中已发现的错误数目或检错率成正比。应该对错误群集的程序段进行重点测试。

6、严格执行测试计划,排除测试的随意性。 测试计划应包括:所测软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方法和过程,系统的配置方式,跟踪规则,调试规则,以及回归测试的规定等等以及评价标准。

7、应当对每一个测试结果做全面的检查。

8、妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。 软件测试的对象: 软件测试并不单纯等同于程序测试。软件测试应该贯穿整个软件定义与开发整个期间。因此需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应该是软件测试(评审)的对象。 在对需求理解与表达的正确性、设计与表达的正确性、实现的正确性以及运行的正确性的验证中,任何一个环节发生了问题都可能在软件测试中表现出来 希望对你有用

如何做好app产品需求分析?

可以从两方面考虑。

1、做需求分析应该站在客户的角度去想,我用这个app能干什么,值不值得用你这个app,你的核心价值,用你的app能帮助我什么,为什么用你的不用别人的。

2、app,作为移动互联网时代,app代替了pc端,你所要的就是随时随地,简单方便。

我下个从这几方面考虑app的需求分析会是个不错的结果。

需求分析都包括哪些方面?

1.功能性需求

功能性需求即软件必须完成哪些事,必须实现哪些功能,以及为了向其用户提供有用的功能所需执行的动作。功能性需求是软件需求的主体。开发人员需要亲自与用户进行交流,核实用户需求,从软件帮助用户完成事务的角度上充分描述外部行为,形成软件需求规格说明书。

2.非功能性需求

作为对功能性需求的补充,软件需求分析的内容中还应该包括一些非功能需求。主要包括软件使用时对性能方面的要求、运行环境要求。软件设计必须遵循的相关标准、规范、用户界面设计的具体细节、未来可能的扩充方案等。

3.设计约束

一般也称做设计限制条件,通常是对一些设计或实现方案的约束说明。例如,要求待开发软件必须使用Oracle数据库系统完成数据管理功能,运行时必须基于Linux环境等。

应用需求分析包括哪些方面?

需求分析是指理解用户需求,就软件功能与客户达成一致,估计软件风险和评估项目代价,最终形成开发计划的一个复杂过程在这个过程中,用户的确是处在主导地位,需求分析工程师和项目经理要负责整理用户需求,为之后的软件设计打下基础。需求分析阶段包括:

1.业务需求——反映了组织机构或客户对系统、产品高层次的目标要求,通常在项目定义与范围文档中予以说明。

2·用户需求——描述了用户使用产品必须要完成的任务,这在使用实例或方案脚本中予以说明。

3·功能需求——定义了开发人员必须实现的软件功能,使用户利用系统能够完成他们的任务,从而满足了业务需求。

4·非功能性的需求——描述了系统展现给用户的行为和执行的操作等,它包括产品必须遵从的标准、规范和约束,操作界面的具体细节和构造上的限制。

5·需求分析报告——报告所说明的功能需求充分描述了软件系统所应具有的外部行为。“需求分析报告”在开发、测试、质量保证、项目管理以及相关项目功能中起着重要作用。

做软件的需求分析和设计,要写哪些东西?

软件工程中包含需求、设计、编码和测试四个阶段,其中需求工程是软件工程第一个也是很重要的一个阶段,需求分析是要决定“做什么,不做什么”。

在一个软件项目中,软件需求包括三个不同的层次-业务需求、用户需求和功能需求-也包括非功能需求:业务需说明了提供给客户和产品开发商的新系统的最初利益,反映了组织机构或客户对系统、产品高层次的目标要求。

软件开发,能否获得成功,最重要的是需求分析的工作。因此,软件需求分析能力和水平,对软件项目至关重要。

一般的分析方法和步骤如下:

⑴首先调查组织机构情况  包括了解该组织的部门组成情况,各部门的职能等,为分析信息流程作准备。

⑵然后调查各部门的业务活动情况  包括了解各个部门输入和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么。  

⑶协助用户明确对新系统的各种要求  包括信息要求、处理要求、完全性与完整性要求。  

⑷确定新系统的边界  确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。由计算机完成的功能就是新系统应该实现的功能。  

常用的调查方法有:  

⑴跟班作业  通过亲身参加业务工作来了解业务活动的情况。这种方法可以比较准确地理解用户的需求,但比较耗费时间。  

⑵开调查会  通过与用户座谈来了解业务活动情况及用户需求。座谈时,参加者之间可以相互启发。

⑶请专人介绍。  

⑷询问  对某些调查中的问题,可以找专人询问。  

⑸设计调查表请用户填写  如果调查表设计得合理,这种方法是很有效,也很易于为用户接受的。  

⑹查阅记录  即查阅与原系统有关的数据记录,包括原始单据、账簿、报表等。  通过调查了解了用户需求后,还需要进一步分析和表达用户的需求。分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。

版权声明