第3章 需求分析
- 格式:doc
- 大小:61.50 KB
- 文档页数:15
第3章需求分析及功能建模方法3.1 需求分析概述3.1.1 需求分析概念1、所谓需求分折:就是对待开发的系统要做什么,完成什么功能的全面描述。
2、需求分析的工作:通过对需求的调查、了解、观察和分析,通过对原始数据的收集、分类和抽象,并采用有效的技术、工具,对原始资料进行加工整理,描述开发目标、实现的功能及其相互关系等活动的集合;3、需求的定义:客户对一个待开发的系统在实现目标、完成功能、应达到的性能、安全性、可靠性等方面的期望和要求的集合;4、需求获取的困难:(1) 软件功能复杂;(2) 需求的可变性;5、需求分析阶段的主要任务:分析当前的业务流程,包括体系结构,各职能部门完成的主要任务、关系及其交流的信息。
6、需求分析的结果通常以模型等建模工具和方法描述系统的信息流、功能结构及完成各功能需要的数据。
7、功能模型和软件需求规格说明书是软件开发的依据,将指导后续的开发工作。
8、需求分析工作是系统分析员与用户不断交互的过程中完成的。
3.1.2 系统分析员的职能1、系统分析员的主要要任务:是确定应用信息系统及软件产品应该达到的各项功能性要求和非功能性要求,即用户要做什么。
2、系统分析员应该具备的素质:(1) 获取需求的能力;(2) 管理及沟通能力;(3) 技术素养;3.1.3 需求获取的方法常用的几种获取需求的方法:(1)面谈;(2)实地观察;(3)问卷调查;(4)查阅资源;3.1.4 需求分析过程1、标识问题:(1) 需求分析的第一步,通过对问题的识别和标识获得所求解问题及其运行环境的理解;(2) 标识问题从现行系统的业务流程做起,理解现行系统的业务流程;(3) 在标识理解需求的同时,还要注意确定系统的人机界面;2、建立需求模型:(1) 模型是对现实原形所作的一种抽象,其本质是只关心与研究内容有关的因素,而忽略无关的因素,其目的是把复杂的事物变得简单,便于认识和分析;(2) 目前常用的模型方法主要有DFD数据流图和IDEFO,都属于结构化分析方法,其特征是抽象和分解;(3) 首先对应用领域进行全面的分析,发现并找出同类事物的本质,用抽象方法把这类事物的非主要方面剔除,把握住事物的内部规律或本质,就可以找到解决办法;然后采用自上而下逐步求精的方法对复杂的问题进行分解;(4) 结构化分析及建模方法的主要优点:(A) 不过早陷入具体的细节;(B) 从整体或宏观入手分析问题;(C) 通过图形化的模型对象直观地表示系统要做什么,完成什么功能;(D) 图形化建模方法方便系统分析员理解和描述系统;(E) 模型对象不涉及太多的技术术语,便于用户理解;3、描述需求:(1) 需求描述的目标:对软件项目功能性和非功能性的需求全面描述;(2) 功能性需求:指需要计算机实际解决的问题或实现的具体功能,明确描述系统必须做什么,实现什么功能以及输入输出等;(3) 非功能性需求:软件项目对实际运行环境的要求;(4) 需求描述主要由需求模型和需求说明书组成,说明书侧重文字说明,内容如下:需求概述;功能需求;信息需求;性能需求;环境需求;其他需求;(5) 在对需求进行分析过程中,系统分析员要经常考虑的问题:(A) 描述的需求是完全的吗?(B) 需求描述是正确的和一致的吗?(C) 描述的这些需求是可行的、实际可操作的吗?(D) 描述中的每一条需求都是客户需要的吗?4、确认需求:1、评审委员会审核下列内容:功能需求;数据需求;性能;数据管理;其他需求。
第三章需求分析
3.1 需求分析的任务和步骤
——需求分析的任务
……确定对系统的综合要求
……分析系统的数据要求
……建立软件的逻辑模型
——确定对系统的综合要求
……功能性需求
……非功能性需求:可用性,可靠性……
——分析系统的数据要求
……数据字典——定义数据
……层次方框图——定义数据结构
——建立软件的逻辑模型:数据流图、数据字典、实体-联系图、主要算法
——编写软件需求规格说明书
——需求分析评审
3.2 需求获取的常用方法(5个)
——访谈
——问卷调查
——观察用户工作流程
——建立联合分析小组
——快速原型法
3.3 需求分析的方法(4个)
——功能分解法:软件需求当做一棵倒置的功能树
——结构化开发方法:结构化分析、结构化设计和结构化程序设计
——信息建模方法:实体-联系图
——面向对象的分析
3.4 结构化分析技术
——思路:基于数据流图自顶向下逐层分解
3.5 需求分析图形工具
——实体-联系图(Entity-Relationship Diagram)
……实体定义:对软件必须理解的复合信息的抽象
……属性定义:数据对象的性质
……联系定义:数据对象彼此之间相互连接的方式
——数据字典
……定义:数据字典是关于数据的信息的集合,也就是对数据流图中包含的
所有元素的定义的集合。
……四类元素:数据流,数据流分量(即数据元素),数据存储,处理——层次方框图
……定义:用树型结构的一系列多层次的矩形框描绘数据的层次结构。
——IPO图(Input Process Output)。
第3章需求分析一、填空题(30小题)1、需求分析的困难主要体现在4个方面:问题的复杂性、( )、( )、需求易变性。
答案:交流障碍、不完备性和不一致性2、由于数据流是流动中的数据,所以必须有( )。
除了与( )之间的数据流不用命名外,数据流应该用名词或名词短语命名。
答案:流向、数据存储3、需求分析是指,开发人员要准确理解( ),进行细致的( ),将用户非形式的需求陈述转化为( ),再由( )转换到相应的形式功能规约(需求规格说明)的过程。
答案:用户的要求、调查分析、完整的需求定义、需求定义4、建立数据字典一般的两种形式是( )和( )。
答案:手工建立、利用计算机辅助建立并维护5、在进行可行性研究和软件计划以后,如果确认开发一个新的软件系统是必要的而且是可能的,那么就进入( )阶段。
答案:需求分析6、结构化语言是介于自然语言(英语和汉语)和形式化语言之间的一种半形式语言。
它的结构可分成外层和内层两层,外层用来描述( ),采用( )、( )、( )三种基本结构。
答案:控制结构、顺序、选择、重复7、在SA的需求描述工具中,( )描述系统的分解,即描述系统由哪几部分组成,各部分之间有什么联系等。
( )定义了数据流图中每一个图形元素。
结构化语言、判定表和判定树则详细描述数据流图中不能被再分解的( )。
答案:数据流图、数据字典、每一个加工8、IDEF方法分为以下三部分。
IDEF0:用来描述系统的( ),建立系统的( )。
IDEF1:用来描述系统的( ),建立系统的( )。
IDEF2:用来进行系统的( ),建立系统的( )。
答案:功能活动及联系、功能模型、信息及其联系、信息模型、模拟、动态模型9、三种描述加工逻辑的工具各有优缺点,对于顺序执行和循环执行的动作,用( )描述。
对于存在多个条件复杂组合的判断问题,用( )和( )。
答案:结构化语言、判定表、判定树10、经过需求分析,开发人员已经基本上理解了用户的要求,确定了目标系统的功能,定义了系统的数据,描述了处理这些数据的基本策略。
将这些共同的理解进行整理,最后形成文档( )。
答案:需求说明书( )的问题。
答案:新系统的目标、“做什么”12、数据字典中的加工逻辑主要描述该加工( ),即实现加工的策略,而不是实现加工的细节,它描述如何把输入数据流变量变换为输出数据流的( )。
答案:“做什么”、加工规则13、数据字典就是用来定义数据流图中的( )的。
它和数据流图共同构成了系统的( ),是( )的主要组成部分。
答案:各个成分的具体含义、逻辑模型、需求说明书14、在分析需求阶段要进行以下几方面的工作:问题识别、( )、( )、( )。
答案:分析与综合、导出软件的逻辑模型、编写文档15、传统的SA方法主要用于( )的问题,主要工具DFD体现了系统的( )功能,但它仅是一个( ),没有处理的顺序,即( )。
答案:数据处理方面、“做什么”、静态模型、控制模型16、流向数据存储的数据流可理解为( )文件或( )文件,从数据存储流出的数据可理解为从文件( )数据或得到( )结果。
答案:写入、查询、读、查询17、在数据流图中,( )是数据在系统内传播的路径,因此由一组( )组成。
加工(又称为数据处理),是对数据流进行某些( )。
答案:数据流、成分固定的数据项、操作或变换18、在有些情况下数据流图中的某个加工的一组动作依赖于多个逻辑条件的取值。
这时,用自然语言或结构化语言都不易清楚地描述出来。
而用( )就能够清楚地表示复杂的条件组合与应做的动作之间的对应关系。
答案:判定表19、数据存储条目的主要内容有( )、( )、( )、( )、( )等。
答案:数据存储名称、别名、简述、组成、组织方式、查询要求20、数据项条目的主要内容有( )、( )、( )、( )、( )、( )及含义。
答案:数据项名称、别名、简述、类型、长度、取值范围21、数据流图有4个基本成分:( )、( )、( )和( )。
答案:数据流、加工(又称为“数据处理”)、数据存储、数据的源点或终点22、数据字典有以下4类条目:( )、( )、( )和( )。
( )是组成数据流和数据存储的最小元素。
答案:数据流、数据项、数据存储、基本加工、数据项23、形式化是软件自动化发展的基础。
形式化方法是将需求规格说明用( )来描述。
典型的有( )及( )。
答案:形式规约语言、基于模型的Z语言、VDM开发方法(维也纳开发方法)24、结构化分析方法是面向( )进行需求分析的方法。
25、加工逻辑也称为“小说明”,常用的加工逻辑的描述工具有:( )、( )、( )。
答案:结构化语言、判定表、判定树26、近几年来已提出许多软件分析与说明的方法,每一种分析方法必须能够表达和理解问题的数据域和功能域。
数据域包括( )、( )和( ),而功能域反映上述三方面的( )。
答案:数据流、数据内容、数据结构、控制信息27、需求分析阶段所要编写的文档有:( )、( )、( )。
答案:需求规格说明书、初步用户使用手册、确认测试计划28、在需求分析阶段,首先进行问题识别,即双方确定对问题的综合需求,这些需求包括:( )、( )、( )、( )。
另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求。
答案:功能需求、性能需求、环境需求、用户界面需求29、SA方法利用图形等半形式化的描述方式表达需求,简明易懂,用它们形成需求说明书中的主要部分。
这些描述工具是( )、( )、( )、( )、( )。
答案:数据流图、数据字典、描述加工逻辑的结构化语言、判定表、判定树30、IDEF0方法中,将系统功能称为( ),将表示系统功能的图形称为( )。
在活动图形中,用( )和( )表示系统的各种活动及相互间的关系。
在系统分解的某一层次,可能有多个活动,每个活动编号注在( )。
答案:活动、活动图形、方框、箭头、方框的右下角二、单项选择题(50小题)1、数据字典是对数据定义信息的集合,它所定义的对象都包含于( )。
A、数据流图B、程序框图C、软件结构D、方框图答案:A2、在软件需求分析中,开发人员要从用户那里解决的最重要的问题是( )。
A、要让软件做什么B、要给该软件提供哪些信息C、要求软件工作效率怎样D、要让软件具有何种结构答案:A3、软件设计中,Jackson方法是一种面向数据结构的设计方法,它将数据结构表示为三种基本结构,分别为( )。
A、分支结构、选择结构和控制结构B、顺序结构、选择结构和循环结构C、顺序结构、分支结构和嵌套结构D、顺序结构、选择结构和重复结构答案:D4、软件开发的原型化方法是一种动态定义软件需求的方法,下述( )条件是实施原型化方法所必备的。
①成熟的原型化人员②快速的成型工具③需求了解的准确性A、①和②B、②和③C、全部D、③答案:A5、需求分析阶段研究的对象是软件项目的( )。
A、用户要求B、合理要求C、模糊要求D、功能要求答案:A6、IDEFO的图形表示中,连在方框上的箭头有4种类型:输入、输出、控制和机制。
下列说法正确的是( )。
A、输入指完成某项活动所需的数据,用连在方框右边的箭头表示B、输出指执行活动时产生的数据,用连在方框左边的箭头表示C、机制指所受到的约束条件,用连在方框下边的箭头表示D、控制活动指活动是由谁来完成的,用连在方框上边的箭头表示答案:D7、需求分析是( )。
A、软件开发工作的基础B、软件生存周期的开始C、由系统分析员单独完成的D、由用户自己单独完成的答案:A8、数据字典的任务是对于数据流图中出现的所有被命名的数据元素,在数据字典中作为一个词条加以定义,使得每一个图形元素的名字都有一个确切的( )。
A、对象B、解释C、符号D、描述答案:D9、分层DFD是一种比较严格又易于理解的描述方式,它的顶层图描述了系统的( )。
A、细节B、输入与输出C、软件的作者D、绘制的时间答案:B10、软件设计将涉及软件的结构、过程和模块的设计,其中软件过程是指( )。
A、模块间的关系B、模块的操作细节C、软件层次结构D、软件开发过程答案:B11、需求分析阶段不适于描述加工逻辑的工具是( )。
A、结构化语言B、判定表C、判定树D、流程图答案:D12、软件开发的结构化方法中,常应用数据字典技术,其中数据加工是其组成内容之一,下述( )方法是常采用编写加工说明的方法。
①结构化语言②判定树③判定表A、只有①B、只有②C、②和③答案:D13、软件设计中划分模块的一个准则是( 1 )。
两个模块之间的藕合方式中,( 2 )的耦合度最高,( 3 )的藕合度最低。
一个模块内部的聚敛种类中( 4 )内聚的内聚度最高,( 5 )的内聚度最低。
1.A、低内聚低藕合 B、低内聚高耦合C、高内聚低耦合D、高内聚高耦合2.A、数据 B、非直接C、控制D、内容3.A、数据 B、非直接C、控制D、内容4.A、偶然 B、逻辑C、功能D、过程5.A、偶然 B、逻辑C、功能D、过程答案:C|D|B|D|A14、理想的模块应该有内聚强而耦合弱的特点。
下列选项中,最强的内聚是( 1 ),最弱的藕合是( 2 )。
1.A、过程性内聚 B、通信性内聚C、顺序性内聚D、功能性内聚2.A、非直接藕合 B、数据藕合C、特征藕合D、控制藕合答案:D|A15、在软件需求规范中,( )可以归类为过程要求。
A、执行要求B、效率要求C、可靠性要求D、可移植性要求答案:A16、通过( )可以完成数据流图的细化。
A、结构分解B、功能分解C、数据分解D、系统分解答案:B17、需求规格说明书的作用不应包括( )。
A、软件设计的依据B、用户与开发人员对软件要做什么的共同理解C、软件验收的依据D、软件可行性研究的依据18、软件需求分析一般应确定的是用户对软件的( )。
A、功能需求B、非功能需求C、性能需求D、功能需求和非功能需求答案:D19、各种分析方法都有它们共同适用的( )。
A、说明方法B、描述方法C、准则D、基本原则答案:D20、数据存储和数据流都是( )仅仅所处的状态不同。
A、分析结果B、事件C、动作D、数据答案:D21、对软件进行分解,是为了( )。
A、降低模块的复杂程度B、降低模块间接口的复杂程度C、降低模块的复杂程度,并降低模块间接口的复杂程度D、降低模块的复杂程度,并提高模块间接口的复杂程度答案:A22、结构化分析方法使用的描述工具( )定义了数据流图中每一个图形元素。
A、数据流图B、数据字典C、判定表D、判定树答案:B23、模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的( )。
A、抽象和信息隐蔽B、局部化和封装化C、内聚性和耦合性D、激活机制和控制方法答案:C24、在软件工程中,常使用的两种软件开发方法是结构化生命周期方法和原型化方法,这两种方法的差别和联系可分别表述为( )。