您好,欢迎访问三七文档
第3章软件需求分析3.1软件需求分析的任务3.2软件需求分析的步骤3.3需求分析的原则3.4需求分析的方法3.5加工逻辑说明3.6软件需求分析文件与复审3.1软件需求分析的任务3.1.1软件需求分析的目标利用软件范围作为指南,软件需求分析试图实现如下几个目标:1)揭示系统信息的流程与结构,为软件的开发打下基础。2)确定接口细节、深入描述软件功能、确定设计的约束、规定软件的检验需求,以此来说明该软件。3)建立并保持与用户以及软件需求者的联系,以便实现上述两项目标。3.1软件需求分析的任务3.1.2需求分析阶段的任务1.确定对系统的综合需求对系统的综合需求主要包括系统功能需求、系统性能需求、运行需求及将来可能提出的需求。(1)系统功能需求就是划分出系统必须完成的所有功能。(2)系统性能需求包括响应时间、精确度指标需求、安全性等。(3)运行需求集中表现为对系统运行时所处环境需求,如软硬件运行环境限定需求等。(4)将来可能会提出的需求应该明确列出哪些需求虽然不属于当前系统开发范畴,但是根据分析将来很可能会提出来。这样的目的是在设计过程中对系统将来可能的扩充和修改做准备,以便需要时能比较容易进行这种扩充和修改,更有利于系统维护。3.1软件需求分析的任务3.1.2需求分析阶段的任务2.分析系统的数据需求任何一个软件系统本质上都是信息处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远影响。分析系统的数据需求,是通过系统的信息流归纳抽象出数据元素组成、数据逻辑关系、数据字典格式和数据类型,并以输入-处理-输出的结构方式表示。因此,必须分析系统的数据需求,这是软件需求分析的一个重要任务。3.1软件需求分析的任务3.1.2需求分析阶段的任务3.获得系统的逻辑模型综合上述两项分析的结果,明确目标系统要“做什么”,可以导出系统的详细的逻辑模型。在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质。在物理模型中有许多物理因素,但随着分析工作的深入有些非本质因素就显得不必要了,因而需要对物理模型进行分析,区分本质因素和非本质因素,去掉那些非本质因素,获得反映系统本质的逻辑模型。具体做法是:(1)确定目标系统与当前系统的逻辑差别;(2)将变化部分看作新的处理步骤,对功能图(一般是数据流图)及对象图进行调整;(3)由外及里,对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。通常用数据流图、数据字典和主要的处理算法描述这个逻辑模型。3.1软件需求分析的任务3.1.2需求分析阶段的任务4.修正系统开发计划经过需求分析阶段的工作,分析员对目标系统有了更深入、更具体的认识,因此可以对系统的成本和进度做出更准确的估计,在此基础上对开发计划进行修正。3.1软件需求分析的任务3.1.2需求分析阶段的任务5.开发原型系统使用原型系统的主要目的,是使用户通过实践获得关于未来的系统将怎样为他们工作的概念,检验关键设计方案的正确性和检验系统是否真正满足用户的需要,从而可以更准确地提出和确定他们的要求。用户试用了原型系统以后,能够指出系统的哪些特性是他们喜欢的,哪些是他们感到不能接受的,以及他们还需要哪些新的功能。根据经过实践检验的用户需求而开发出来的系统,更可能真正满足用户的需要。特别是当所开发的系统是全新的,用户没有使用类似系统的经验时,更应该认真考虑开发原型系统的必要性和可能性。3.2软件需求分析的步骤3.2.1问题的分析首先,系统分析员应该仔细研究可行性分析报告和软件项目实施计划,确定软件的需求,并提出这些需求的实现条件及应该达到的标准。其次,问题分析是建立分析所需要的通信途径,以保证顺利地分析问题。再次,在问题分析过程中还必须充分重视和使用数据流图、数据字典和算法描述工具。3.2软件需求分析的步骤3.2.2问题评估和方案综合分析员必须定义所有外部可观察到的数据对象(数据流和数据结构),评估信息流和内容,定义并详细阐述所有软件功能,建立系统界面特征,揭示其他设计约束。这些任务中的每一项均用于描述问题,以便综合获得全面的解决方案。贯穿整个评估和综合过程,分析员的主要焦点是“干什么”,而不是“怎么做”。1)系统会产生和使用什么数据?2)系统必须完成什么功能?3)将定义什么界面?4)会应用什么约束等。在问题评估和综合解决方案的活动中,分析员创建系统模型,以便可以更好地理解数据流和控制流、处理功能、操作行为及信息内容。系统模型是设计软件的基础。3.2软件需求分析的步骤3.2.3拟订软件需求分析文件软件需求分析完成后,这一阶段应交付的文件有:1.软件需求说明书2.初步的用户手册3.确认测试计划4.数据要求说明书3.2软件需求分析的步骤3.2.4软件需求分析的复审1.几个必须回答的问题(1)所规定的软件目标和任务与系统的目标和任务相符合吗?(2)与所有系统成分的重要接口都已经被描述了吗?(3)研制项目的信息流和信息结构充分确定吗?(4)图表都清楚吗?每一个图表在不加补充说明的情况下能理解吗?(5)主要功能在规定范围内吗?每一功能都已充分地加以说明了吗?(6)设计的限制条件是现实的吗?(7)开发的技术风险是什么?(8)考虑过软件需求的其他方案吗?(9)检验标准详细制定了吗?他们能否确认系统是成功的?(10)有没有遗漏、重复或者不一致的地方?(11)与用户或需求者的联系充分吗?(12)用户复审了初步的用户手册吗?(13)软件计划中的估算如何受到影响?3.2软件需求分析的步骤3.2.4软件需求分析的复审2.复审的层次规则(1)着重于说服性的连接词(如当然、因此、明确的、显然的等),并问“为什么”。(2)观察含糊的术语(如一些、有时、经常、通常、一般、大多数等),并进行澄清。(3)当给出了不完整的列表时,确定已理解了所有项,关键是查找“等、如此这样”。(4)查找蕴含了确定性的语句(如“总是”、“每次”、“所有”、“无”、“永不”等),然后要求证明它们。(5)当某术语被明确地定义在某处时,力图用该定义去替换其他地方出现的该术语。(6)当用语句描述某结构时,画图以帮助理解。(7)当描述计算时,至少试验一个例子。3.3需求分析的原则3.3.1指导性原则1.理解问题2.开发原型3.记录每个需求的起源4.使用多个需求视图5.给需求赋予优先级6.努力删除含糊性3.3需求分析的原则3.3.2操作性原则1.必须能够表达和理解问题的信息域2.要自顶向下逐层分解问题3.要给出系统的逻辑模型和物理模型3.4需求分析的方法3.4.1需求分析方法概述1.基本概念:(1)实体实体就是我们通常所说的数据对象,是能够被系统所理解的具有若干属性的信息的表示,是对客观世界存在且可以互相区分的事物的描述。它可以是外部实体,如学生、职工、课程等:也可以是抽象的概念,如单击鼠标左键、呼叫一个电话号码等。实体一般用矩形框表示。(2)关系实体之间往往是有关系的,实体的关系有三种:①一对一(1:1)。例如,一个部门有一个经理,它们之间的关系是一对一的。②一对多(1:m)。例如,学校中一位教师带多个学生,它们之间的关系就是一对多的关系。③多对多(n:m)。例如,在选课中,一个学生可以选多门课,一门课可以被多个学生选,所以学生与课程之间是多对多的关系。3.4需求分析的方法3.4.1需求分析方法概述1.基本概念:(3)属性属性是实体或联系所具有的性质,定义了数据对象的特征。实体、联系及属性能够帮助人们客观地理解客观世界的现实问题,分析员可以用简单的符号来表示对问题的理解,符合人们的思维习惯,因此是用户与系统分析员进行交流的有效工具。3.4需求分析的方法3.4.1需求分析方法概述2.基于数据域的需求分析方法需求分析方法是由软件的数据域和功能域的系统分析过程及其表示方法组成。它定义了表示系统的逻辑视图和物理视图的方式。大多数的需求分析方式是由数据驱动的,也就是说,这些方法提供了一种表示数据域的机制,分析员根据这种表示,确定软件功能及其他特性,最终建立一个待开发软件的抽象模型,即目标系统的逻辑模型。数据域具有3种属性:数据流、数据内容和数据结构。3.4需求分析的方法3.4.1需求分析方法概述2.基于数据域的需求分析方法通常,一种需求分析方法总要利用数据域的一种或几种属性。(1)支持数据域分析的机制(2)功能的表示方法(3)接口的定义(4)问题分解的机制及对抽象的支持(5)逻辑视图和物理视图(6)系统抽象模型3.4需求分析的方法3.4.2结构化分析方法1.基本概念结构化分析方法(StructuredAnalysis,SA方法)适合于开发数据处理类型软件的需求分析,特别是企业事业单位中有关数据管理类型的应用软件的开发。近年来,软件开发的结构化分析方法得到了广泛的应用。这一方法除了比较简明、易于掌握的优点之外,在进入设计阶段以后还能和结构化设计方法(SD)相衔接,从而取得良好的设计效果。3.4需求分析的方法3.4.2结构化分析方法1.基本概念结构化分析方法的基本手段是“分解”和“抽象”,这是系统开发技术中控制复杂性的两种通用手段。对于一个复杂的系统,结构化分析方法使用了“自顶向下,逐层分解”的方法。结构化分析方法采用了介于形式语言和自然语言之间的描述方式来写软件文件,并在描述方式上尽量采用图形表示,比较形象、直观、易于理解,避免了冗长、重复、难于阅读和修改等缺点,从而得到具有明显优越性的结构化软件需求说明书。3.4需求分析的方法3.4.2结构化分析方法1.基本概念用结构化分析方法获得的软件文件资料主要包括:(1)数据流程图(DataFlowDiagram,DFD)用以描述系统的分解,即描述系统的组成及各部分之间的联系。(2)数据字典对数据流程图中所有的数据元素、数据结构、数据文件、数据流等的名字进行定义。(3)一组基本加工(处理逻辑)说明加工的表达方法,包括结构化语言,判定表和判定树等,用以描述系统中每一个基本处理,即处理的基本条件、数据来源及处理逻辑、优先级、执行频率、出错处理等所有细节。3.4需求分析的方法3.4.2结构化分析方法2.结构化分析方法的具体步骤:(1)获得现行系统的具体模型(2)抽象现行系统的逻辑模型(3)建立目标系统的逻辑模型这是分析工作中实质性的一步。它通过分析目标系统与现行系统逻辑的差别,明确目标系统“做什么”,在现行系统的逻辑模型上建立目标系统的逻辑模型。3.4需求分析的方法3.4.2结构化分析方法2.结构化分析方法的具体步骤:具体可按如下方式进行:1)决定变化的范围,即决定目标系统与现行系统逻辑上的差别。2)将变化的部分看成是一个新的处理步骤,对数据流程图进行调整。3)由外向里对变化的部分进行分析,凭经验推断其结构,获得目标系统的逻辑模型。4)补充目标系统的逻辑模型3.4需求分析的方法3.4.3数据流图数据流图是一种最常用的结构化分析工具,它从数据传递和加工的角度,以图形的方式刻画系统内数据的运动情况。数据流图描述数据在系统中如何被传送或变换,并描述对数据流进行变换的功能。因此,数据流图既表示了系统内部信息的流向,又表示了系统逻辑处理的功能。3.4.3数据流图1.数据流图的基本元素数据流图有四种基本的图形符号,分别代表不同的数据元素,如图3-3所示。3.4需求分析的方法加工,输入数据在此进行变换产生输出数据流数据输入的源点和输出的汇点数据存储文件,需加以命名数据流,被加工的数据与流向图3-3数据流图基本符号定义3.4需求分析的方法3.4.3数据流图1.数据流图的基本元素1)数据流数据流是一组数据,是描绘数据流图中各成分的接口,反映了处理的对象。数据流的方向可以从加工到加工,从加工到数据的存储,从存储文件到加工。我们在定义数据流时,应有良好的命名习惯,这有利于更深化地理解整个系统。2)加工加工表示对数据执行某种操作或变换,是对数据进行的处理,是把输入数据流转换成输出数据流的一种变换。每个加工都应有一个能标识其操作的合适的名字。它的名字应能简明扼要地表明所完成的是什么加工。数据流图是描述数据处理过程的工具。当信息在软件
本文标题:第3章软件需求分析
链接地址:https://www.777doc.com/doc-2193768 .html