版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章需求分析
内容提要3.1
需求分析的目标和任务3.2
软件需求的获取方法3.3
需求分析的基本过程3.4
结构化需求分析的方法3.5
支持需求分析的原型化方法需求分析需求分析是软件生命周期中最重要的一步,也是最关键的一步。它将可行性研究阶段产生的软件功能和性能的总体概念描述为具体的软件需求规格说明。而软件需求规格说明是软件开发的基础,它关系到工程的成败和软件产品的质量。软件需求分析也是一个不断认识“问题”,逐步细化系统“做什么”的过程。在该过程中,要将软件定义和规划阶段所确定的软件范围逐步细化到可详细定义的程度,分析和提出各种不同的软件元素,然后为这些元素找到可行的解决方法。用户和系统分析员在软件需求分析阶段均充当着重要角色。需求分析的目标和任务需求分析的基本任务就是细化“系统必须做什么”,准确地回答“系统必须做什么”。需求分析实际上分两个阶段:需求理解获取阶段和需求表达阶段需求分析的目标和任务需求分析的任务确定系统必须完成哪些工作,也就是对新系统提出完整、准确、清晰、具体的要求。系统分析员以可行性研究阶段产生的数据流图(逻辑模型)为出发点,在实现系统基本功能的基础上,对这些功能仔细研究,从而进一步将功能具体化。需求分析阶段结束时提交的文档,应包括详细的数据流图、数据词典。需求分析的任务就是借助于当前系统的逻辑模型导出新系统的逻辑模型,确定新系统“做什么”的问题。需求分析的目标和任务软件需求分析阶段的具体任务
1.确定软件系统的综合需求软件系统综合需求有:系统功能需求、系统性能需求、系统环境需求、可靠性需求、安全保密性需求、用户界面需求以及将来可能提出的需求等。
2.分析系统的数据需求任何一个软件系统本质上都是信息处理系统,都经过数据的输入、处理与输出的过程。系统要求处理的信息和输出的信息在很大程度上决定了系统的概貌。因此,分析系统的数据需求是一个重要任务。复杂的数据是由许多基本数据元素组成的,数据元素之间的逻辑关系可由数据结构表示,可以利用数据词典全面地定义数据。需求分析的目标和任务构造原型系统的目的是:用较少的投入和较短的时间,让用户看到新系统的主要功能,从而使用户可以更准确地提出和确定对新系统的要求。6.编写软件需求规格说明书软件需求分析阶段结束后要编写软件需求规格说明书,它明确地表达了用户与系统分析员对软件系统的共同理解。
3.2软件需求的获取方法软件需求的获取方法软件需求分析首先要进行需求理解的获取。通常,获取软件需求的一般途径和方法有以下几个方面:1.用户访谈和会议。在系统分析员和用户之间存在这样一个问题:用户熟悉业务,但不熟悉计算机技术,而系统分析员熟悉计算机技术,却不了解用户业务。因此就会出现用户提出的所有要求并不一定都合理,而系统分析员对一些用户要求又模糊不清的问题。这就需要系统分析员和用户反复交谈,共同讨论,必要时系统分析员可以通过深入现场,开座谈会的方式,了解用户对软件系统的各种要求。澄清模糊的需求认识,去掉那些无法实现的和不合理的要求,然后再决定采纳哪些要求。对于去掉的要求,应向用户做充分的解释,以求得谅解。3.3软件需求的基本过程3.3软件需求的基本过程软件需求分析的基本过程可以分成以下四步:问题识别、分析与综合、编制文档和综合评审。3.3.1问题识别首先,系统分析员要研究可行性分析报告(如果有的话)和软件项目实施计划。主要是从系统的角度来理解软件,确定对目标系统的综合要求,即软件的需求。还要提出这些需求实现的条件,以及需求应达到的标准。也就是解决待开发系统需要“做什么”,“做到什么程度”的问题。这些需求包括:
(1)功能需求:提出目标系统在职能上应该做什么,这是最主要的需求。(2)性能需求:给出目标系统的技术性能指标,包括存储容量限制、运行时间限制等。3.3软件需求的基本过程(3)环境需求:给出目标系统运行时所需的环境要求。例如,在硬件方面,采用的机型、外部设备、数据通信接口等。在软件方面,支持系统运行的系统软件(操作系统、网络软件、数据库管理系统等)。在使用方面,使用部门的制度和操作人员的技术水平应具备的条件等。(4)可靠性需求:不同的软件在运行时,失效的影响各不相同。在需求分析时应对目标系统投入运行后不发生故障的概率按实际的运行环境提出要求。对于重要系统,或是运行失效会造成严重后果的系统,应提出较高的可靠性需求。
3.3软件需求的基本过程(7)资源使用需求:这是指对目标系统运行时所需的数据、软件、内存空间等各项资源的要求。另外,软件系统开发时所需要的人力、支撑软件、开发设备等都属于软件开发的资源,需要在需求分析时加以确定。(8)软件成本消耗与开发进度需求:在软件项目立项后,要根据合同规定,对软件开发的进度和各步骤的费用提出要求,作为开发管理的依据。(9)预先估计以后系统可能达到的目标。这样,在开发过程中,可以对系统将来可能的扩充与修改做准备。一旦需要时,就比较容易进行补充和修改。3.3软件需求的基本过程3.3.2分析与综合问题分析和方案的综合是需求分析第二个方面的工作。系统分析员必须从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求、是否合理。依据功能需求、性能需求、运行环境需求等,除去不合理的部分,增加需要部分。最终综合成系统的解决方案,给出目标系统的详细逻辑模型。
3.3软件需求的基本过程
在这个步骤中,分析和综合工作应反复地进行。在对现行问题和期望的信息(输入和输出)进行分析的基础上,系统分析员开始综合出一个或几个解决方案,然后检查它的工作是否符合软件计划中规定的范围,若有不符再进行修改。总之,对问题进行分析和综合的过程将一直持续到系统分析员与用户双方都认为可以正确地制定该软件的规格说明为止。3.3软件需求的基本过程(2)数据要求:主要包括通过需求分析建立起来的数据词典以及描绘数据结构的层次方框图和对存储信息(数据库和普通文件)分析的结果。(3)用户系统描述:这份文档从用户使用系统的角度来描述系统,相当于一份初步的用户手册。其内容包括对系统功能和性能的简要描述,使用系统的主要步骤和方法以及系统用户的责任等。这份初步的用户手册使未来的用户能从使用的角度检查该项目系统,从而使他们比较易于判断这个系统是否符合他们的需要。(4)修正的开发计划:经过需求分析阶段的工作,系统分析员对目标系统有了更深入更具体的认识,因此,可以对系统的成本和进度做出更准确的估计。在此基础上应该对开发计划进行修正。包括修正后的成本计划、资源和进度计划等。3.3软件需求的基本过程3.3.4综合评审需求分析阶段工作的复查是综合评审。综合评审就是对功能的正确性、完整性、清晰性以及其他需求给予评价。评审的主要内容如下:(1)系统定义的目标是否与用户的需求一致;
(2)系统需求分析阶段提供的文档资料是否齐全;
(3)文档中的所有描述是否完整、清晰、准确地反映了用户需求;(4)与所有其他系统成分的重要接口是否都已经描述;3.3软件需求的基本过程
(5)待开发项目的数据流与数据结构是否完全确定;(6)所有图表是否清楚,在不补充说明时能否理解;
(7)主要功能是否已包括在规定的软件范围之内,是否都已充分说明;(8)设计的约束条件或限制条件是否符合实际。除系统分析员之外,用户.需求者、开发部门的管理者以及软件设计、实现、测试人员都应当参加评审工作。评审结束时应有评审负责人的结论意见及签字。结构化需求分析的方法需求分析常用的方法有:面向数据流的结构化分析方法、面向数据结构的Jackson方法、结构化数据系统开发方法、面向对象的分析方法等,对于要求时序的调度类软件,还可使用状态迁移图、Petri网等。
3.4.1面向数据流的结构化分析方法结构化分析方法(StructuredAnalysis,简称SA方法)是20世纪70年代由E.Yourdon等人提出的一种系统化的软件开发方法。三十多年来,结构化分析方法一直在软件设计中起着重要的作用,它的一些重要概念,也应用于其他开发方法中。结构化需求分析的方法
结构化分析方法的核心思想:采用“自顶向下,逐步求精”的技术,对系统进行划分。最初,把整个系统表示成一张环境总图,指出系统所有的输入、输出和边界。然后,逐步对系统进行细化,每细化一次,就把一些复杂的功能分解成较简单的功能,并增加细节描述。继续细化,直到所有的功能都足够简单,不需要再细化为止。面向数据流的结构化分析方法中的常用工具:
数据词典和结构化语言结构化需求分析的方法3.4.2数据词典及其功能顾名思义,数据词典是数据的集合,它对数据流图中的各个元素作出完整的定义和说明,是数据流图的补充工具。数据流图和数据词典共同构成系统的逻辑模型,两者缺一不可。
1.数据词典的内容一般说来,数据词典应包括以下6类元素的定义。
(1)数据流在一个数据流图中,数据以数据流为单位进行传输。定义的主要内容有:数据流名称及其编号、别名、数据流的来源、数据流的去向、数据流的组成结构化需求分析的方法(4)数据存储数据存储是保留或保存数据的地方。定义的主要内容有:数据存储名称及其编号、数据存储的组成(它所包含的数据项或数据结构)、组织方式。(5)加工逻辑定义加工逻辑的主要内容有:名称及其编号、加工逻辑的输入和输出、加工逻辑的说明(对加工逻辑的功能做明确的描述,常采用的工具有:结构化语言、判定树、判定表等)。(6)外部实体外部实体是系统的“人—机”界面。数据流由外部实体输入,又从系统向外部实体输出。定义的主要内容有:外部实体的名称及其编号、外部实体的简述、与外部实体有关的数据流。结构化需求分析的方法
2.数据词典中使用的符号为了定义简明,在词典中允许使用5种关系符号和1种注释符号。符号含义
=
等于,定义为
+加
[]选择符号,表示对[]中列举的值可以任选其一{}重复符号,表示对{}中的内容可视需要重复使用()可选符号,表示对()中的内容可由设计者决定取舍*…*
注释符号,表示两个*之间的内容是对条目的注释结构化需求分析的方法
3.加工逻辑的说明通常采用结构化语言、判定表或判定树等工具来描述加工逻辑。(1)结构化语言自然语言加上结构化的形式就构成了结构化语言,这是一种介于自然语言与程序设计语言之间的语言。结构化程序有顺序、选择、循环等控制结构。结构化需求分析的方法(2)判定表在一些数据处理中,数据流图的加工需要经过多个逻辑条件组合的取值才能确定,此时运用判定表描述就比较清晰明了。判定表由四部分组成,各部分功能如下:左上部:列出所有条件。左下部:列出所有可能做的工作。右上部:每一列表表示各种条件的一种可能组合。右下部:每一列表表示与每一种条件组合所对应的工作。(3)判定树判定树也是用来表达加工逻辑的工具,有时比判定表更直观,更易于接受。下面以一个具体实例来说明以上三种加工逻辑的应用。结构化需求分析的方法4.数据词典的功能数据词典最重要的功能就是作为分析阶段的工具。用户通过它可以清楚地了解系统分析员对系统数据和加工逻辑的详细说明。不同的开发人员或不同的开发小组之间可以通过对数据做出一致的定义来避免定义的混乱。数据词典中对加工逻辑的描述很有价值,若改变了某个数据的定义,则很容易看出对加工逻辑所产生的影响,并且可方便地对受影响的加工逻辑做出相应的改变。数据词典也是下一步设计的依据,若要求所有的开发人员都按照数据词典的定义去设计模块,则会避免麻烦的接口问题。结构化需求分析的方法5.数据词典的实现通常,实现数据词典有三种途径。(1)人工方法:采用人工方法实现时,把每一词典条目(即每一个数据定义或每一个加工逻辑说明)写在一张卡片上,由专人管理和维护。为了便于搜索,所有卡片按数据名称排序。人工方法的优点是容易实现。(2)自动方法:把词典存在计算机中,用计算机对它搜索和维护。现有多种“词典管理程序”如PLS.PSA。用计算机管理词典质量高,搜索、维护方便。(3)人工和自动混合的方法:在人工过程中可使用正文编写程序、报告生成程序等帮助完成。结构化需求分析的方法3.4.3数据流图的细化经过需求获取阶段的工作,分析员更加清楚地确定了系统边界,即系统与外界或环境的输入和输出。因此可以酌情对它进行完善,从而得到顶层数据流图。由于它表示了系统的环境,因此也称为系统环境图。
1.数据流图的细化有了顶层数据流图后,接下来的工作就是自顶向下画出各层的数据流图。具体地说,就是对加工逻辑进行“逐步分解”或“逐层细化”,直到底层的加工足够简单,功能清晰易懂,不必再继续分解为止。结构化需求分析的方法
2.数据流图和加工的编号问题为了便于管理,对于所有的数据流图和加工均需要编号。编号原则为:在整个系统中每一编号是惟一的。我们采用以下的编号规则:
(1)数据流图的编号规则:顶层不参加编号,从0层开始所有的子图均有一个编号,其编号采用所分解的父图和相应加工的编号。结构化需求分析的方法(2)加工编号规则:顶层加工不编号,0层的加工编号为1,2,3…,从1层开始所有加工的编号由相应的子图号、小数点和加工在子图中的顺序组成。
3.数据流图的补充和完善经过细化的数据流图,并没有对数据和加工进行详细的说明。因此,我们还必须在数据词典中完成以下工作:(1)定义各层数据流图中所包含的数据流和数据存储。(2)定义最底层数据流图中的所有加工。3.5支持需求分析的原型化方法3.5支持需求分析的原型化方法在需求分析阶段很难得到一个完整的规格说明,对于一些大型软件项目更是如此。究其原因,一方面,在软件开发初期用户想法模糊,很难完全准确地表达系统的全面需求;另一方面,软件开发者不熟悉应用环境,对问题的认识更是模糊不清。虽然经过详细的讨论和分析也许能够得到一份较好的规格说明,但它很难能将系统的各个方面都描述得完整、准确且与环境相符合。环境发生了变化,开发者遇到了事先未预料到的困难,就需要改变需求来解决,因此规格说明难以完善。需求的变更以及通信中的模糊和误解,都会成为软件开发的障碍。为了解决上述问题,逐渐形成了软件系统快速原型化的概念。在工业产品中,原型就是“样机”,在软件开发中,原型则是软件的一个早期可运行的版本。它必须反映出最终系统的重要特性。3.5支持需求分析的原型化方法软件原型化方法:在获得一组基本需求说明后,经过快速分析构造出一个满足用户基本要求的小型的软件系统(原型系统)。用户运行该系统,从中得到感受和启发,进而对该系统做出反应和评价,然后开发者根据用户的意见对原型加以改进。随着不断地实验、纠错、使用、评价和修改,不断获得新的原型版本。如此反复,逐步减少分析和通话中的误解,弥补不足之处,进一步确定各种需求细节,适应需求的变更,从而提高最终产品的质量。3.5支持需求分析的原型化方法
3.5.1软件原型的分类软件原型化方法虽然是在系统分析阶段产生的,但它也面向软件开发的其他阶段。根据软件项目的特点和运行原型的目的不同,原型有两种类型:1.废弃(throwaway)型:先构造一个功能简单而且质量要求不高的模型系统。针对这个模型系统反复进行分析和修改,从而形成比较好的设计思想。据此设计出更加完整、准确、一致、可靠的最终系统。系统构造完成后,原来的模型就被废弃。
2.追加(addon)型:先构造一个功能简单而且质量要求不高的模型系统,作为最终系统的核心,然后,不断地扩充、修改,逐步追加新需求,最后发展成为最终系统。3.5支持需求分析的原型化方法
3.5.2快速原型开发模型原型的开发和使用过程叫做原型生存期。下页图(a)所示的是原型生存期模型,下页图(b)所示的是模型的细化过程。
1.快速分析在系统分析员和用户的紧密配合下,快速确定软件系统的基本需求。根据原型所要体现的特性(或界面形式、或处理功能、或总体结构、或模拟性能等),描述基本规格说明,以满足开发原型的需要。快速分析的关键在于要注意选取分析和描述的内容。3.5支持需求分析的原型化方法3.5支持需求分析的原型化方法2.构造原型在快速分析的基础上,根据基本规格说明,尽快实现一个可运行的系统。为此需要强有力的软件工具的支持,例如,采用高级语言实现原型,或者引入以数据库为核心的开发工具等。此时主要考虑原型系统应充分反映系统的待评价特性,而对于最终系统在某些细节上的要求,如安全性、健壮性、异常处理等可忽略。提交一个初始原型所需要的时间应尽量短,最长不宜超过两个月。3.5支持需求分析的原型化方法3.运行和评价原型这是频繁通信、发现问题、消除误解的重要阶段。其目的是验证原型的正确程度,进而修改原有的需求并增补新需求。用户应在开发者的指导下试用原型。原型必须通过所有相关人员的检查、评价和测试。在试用的过程中应考核、评价的内容有:运行结果是否满足规格说明的要求;规格说明的描述是否满足用户的愿望;过去交互中是否有误解和错误;是否还需要增补新的需求,以满足因环境变化而产生的新需求或用户的新设想。3.5支持需求分析的原型化方法4.修正和改进对原型系统根据修改意见进行修正。若原型运行的结果未能满足规格说明中的需求,则说明对规格说明存在着不一致的理解或实现方案不够合理。若因为严重的理解错误而使正常操作的原型与用户需求相违背,则有可能会产生废品。如果发现是废品,应当立即放弃。大多数原型不合适的部分可以修正,使之成为新模型的基础。如果是由于规格说明不准确(有多义性或者未反映用户需求)、不完整(有遗漏)、不一致,或者需求有所变动或增加,则首先要修改并确定规格说明,然后再重新构造或修改原型。如果用修改原型的过程代替快速分析,就形成了原型开发的迭代过程。开发者和用户在一次次的迭代过程中不断完善原型,以接近系统的最终需求。3.5支持需求分析的原型化方法
5.判定原型完成经过修正或改进的原型,如果获得参与者的一致认可,则原型开发的迭代过程可以结束。为此,应判断有关应用的实质是否已经掌握,迭代周期是否可以结束等。判定的结果有两个不同的转向:一是继续迭代验证;一是进行详细说明。
6.判断原型细部是否需要说明判断组成原型的细部是否需要严格地加以说明。原型化方法允许对系统的必要成分进行严格详细地说明,如将需求转化为报表,给出统计数字等。对于这些不能通过模型进行说明的成分,如果必要,需提供说明,并利用屏幕等工具进行讨论和确定。3.5支持需求分析的原型化方法7.原型细部的说明对于所有那些不能通过原型说明的部分,例如,系统的输入、输出、加工、系统的逻辑功能、数据库组织、系统的可靠性、用户地位等,仍需通过文件加以说明。原型化对于完成严格的规格说明是有帮助的,如输入、输出记录都可以通过屏幕进行统计和讨论。严格说明的成分要作为原型化方法的模型编入词典,以得到一个统一、连贯的规格说明。
8.判定原型效果考察新加入的用户需求信息和细部说明信息,判断这些信息是否会影响模块的有效性。如果使模型效果受到影响,甚至导致模型失效,则要进行修正和改进。3.5支持需求分析的原型化方法
9.整理原型和提供文档整理原型的目的是为进一步开发提供依据。原型的初期需求模型是一个自动的文档。总之,利用原型化技术,可为软件的开发提供一种完整、灵活、近似动态的规格说明方法。3.6需求分析的结果及其描述
3.6需求分析的结果及其描述
3.6.1需求分析结果的描述在描述复杂的关系时,图形比文字叙述优越得多,它形象、直观、一目了然,下面简要介绍在需求分析阶段可能用到的图形工具。
1.层次方框图层次方框图是采用树型结构的多层次的矩形框来描述数据结构的层次结构。树型结构的顶层是一个单独的矩形框,它代表完整的数据结构,下面的每层矩形框代表这个数据结构的子集,最底层的各个框代表组成这个数据结构的实际数据元素,这些元素不可再分割。随着结构的精细化,层次方框图对数据结构也描绘得越来越细,这种模式非常适合需求阶段的描述。3.6需求分析的结果及其描述2.warnier图
warnier图是由法国计算机科学家J.D.Warnier提出的表示数据结构的另一种层次结构的图形工具。它和层次方框图很类似,但它比层次方框图更灵活。3.IPO图
IPO图是输入.处理.输出图的简称,IPO图是美国IBM公司发展完善起来的一种图形工具,它能够方便地表述输入数据、数据的处理和输出数据之间的关系。
IPO图包括三个矩形框,左边框列出所有的输入数据,中间框列出主要的处理,右边框列出输出数据。三个框中间用粗箭头指出数据通信情况。3.6需求分析的结果及其描述3.6.2需求分析规格说明书的内容及编写指导需求分析应交付的主要文档是需求规格说明书。软件需求规格说明书的内容及一般格式如下。
1.引言(1)编写目的:阐明编写需求说明书的目的,指明读者对象。(2)背景说明:给出待开发的软件产品的名称;说明本项目的提出者、开发者及用户;说明该软件产品将做什么。(3)术语定义:列出文档中所用到的专门术语的定义和缩写词的原文。(4)参考资料:列出本文档中所用到的全部资料,如:项目的计划任务书、合同或上级机关的批文;项目开发计划;文档所引用的资料、标准和规范。3.6需求分析的结果及其描述2.项目概述(1)项目的目的。(2)运行环境:描述软件的运行环境,包括硬件平台、硬件要求、操作系统和版本,以及其他的软件或与其共存的应用程序等。(3)条件与限制:给出开发人员在设计软件时的约束条件。如:必须使用或避免使用的特定技术、工具、编程语言和数据库;硬件限制;所要求的开发规范或标准。
3.6需求分析的结果及其描述
3.功能需求(1)功能划分:列出所开发的软件能实现的全部功能。可采用文字、层次方框图、数据流图等多种方法进行描述。(2)功能描述:对各个功能进行详细地描述。3.6需求分析的结果及其描述4.数据描述(1)静态数据。(2)动态数据:包括输入数据和输出数据。(3)数据库描述:给出所用数据库的名称和类型。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级英语Travel课件
- 《实验室空调系统》课件
- 《档案价值鉴定》课件
- 单位管理制度集合大全人事管理篇十篇
- 单位管理制度集粹选集人力资源管理篇十篇
- 单位管理制度汇编大全人事管理篇
- 单位管理制度合并汇编【人员管理篇】
- 单位管理制度分享合集员工管理篇
- 单位管理制度范文大合集职工管理十篇
- 单位管理制度呈现汇编职员管理十篇
- 应急救援员(五级)理论知识考试题及答案
- 初中动点问题题目
- 前程无忧行测题库及答案大全
- 合伙人权益纠纷解决合同
- 粮食工程技术专业人才培养方案(三年制高职)
- 理发店承包方案
- 机电材料见证取样复试
- 二线干部工作总结
- 土石方挖运工程承包合同范本
- 山东省济南市七年级上学期期末英语试卷(附答案)
- 心身疾病的心理与康复治疗
评论
0/150
提交评论