软件工程习题及参考答案一、填空题1.需求分析的基本任务是准确的回答(系统必须做什么)。2.需求分析阶段研究的对象是软件项目的(用户要求)。3.结构化分析方法就是(面向数据流)自顶向下逐步求精进行需求分析的方法。需求分析的目的之一就是把数据流和数据存储定义到(元素级)。4.数据流图的基本符号包括(数据输入的源点和数据输出的汇点)、(加工)、(数据流)、(数据存储文件)。5.数据流图和(数据字典)共同构成系统的逻辑模型。6.数据字典的内容包括六项:(数据流)、(数据项)、(数据结构)、数据存储、处理逻辑、外部实体。7.在需求分析阶段常用的图形工具有(层次方框图)、(Warnier图)、(IPO图)。8.需求分析应交付的主要文档是(需求规格说明书)。9.概要设计过程中要先进行系统设计、(复审系统计划)与(需求分析),确定系统具体的实施方案;然后进行(结构设计),确定软件结构。10.层次结构的上一层是下一层的(抽象),下一层是上一层的(求精)。11.模块独立的概念是(模块化)、(抽象)、(信息隐蔽)和局部化概念的直接结果。12.模块耦合的强弱取决于(模块间接口的复杂程度)、(调用模块的方式)和通过接口的信息。13.设计出软件的初步结构以后,应该进一步分解或合并模块,力求降低(耦合)提高(内聚)。14.在一段程序中,将多次出现的一组语句设计为一个子程序,供多个部分调用,这种情况出现的内聚称为(偶然内聚)。15.一个模块直接调用的模块数目称为模块的(扇出),一个模块被多少上级模块直接调用称为模块的(扇入)。16.JSD是一种典型的(面向数据结构)的分析设计方法。17.Jackson图除了可以表达(程序结构外)外,还可以表达数据结构。18.对于下列伪码,画出改进的Jackson图()AseqBCDAend二、判断题1.在软件开发中,采用原型系统策略的主要困难是时间问题。(╳)2.数据流图从数据传递和加工的角度,以图形的方式描述数据流从输入到输出的传输变换过程。(√)3.模块越多,开发成本越小。(╳)4.耦合是指一个模块内各个元素彼此结合的紧密程度。(╳)5.内聚是指一个软件结构内各个模块之间互连程度的度量。(╳)6.在软件设计中应该尽量设计紧密耦合的系统。(╳)7.控制耦合往往可以通过分解由数据耦合来代替。(√)8.内容耦合又称为病态耦合,在很多高级程序设计语言中不允许出现任何形式的内容耦ABCD合。(√)9.对于DFD图的划分,主要依赖设计人员的经验,一切都应根据设计人员的经验确定。(╳)10.一笔交易、一个动作、甚至操作人员按一个按钮都可以看做是一次事物。(√)11.如果一个模块内的处理元素是彼此相关的,并且以一个特定的次序执行,则这种内聚称为时间内聚。(╳)12.概要设计阶段完成的主要文档是概要设计说明书。(√)三、多项选择题1.需求分析阶段结束后,应交出的文档中应该包括(ABC)。A.数据流图B.数据字典C.简明的算法描述D.项目的经费预算2.关于数据流图正确的描述是(ACD)。A.数据流图是结构化系统分析的主要工具。B.在数据流图中,*号标识相邻的数据流只取其一。C.加工是以数据结构或数据内容作为加工对象的。D.数据流图的主图中必须包括全部四种基本元素。3.关于数据字典正确的描述是(ABCD)。A.数据字典最重要的用途是作为分析阶段的工具。B.实现数据字典三种常见的方法有全人工过程、全自动过程、混合过程。C.数据字典应该容易更新和修改。D.可以采用卡片形式书写数据字典。4.(ABCD)可以作为模块。A.过程B.子程序C.函数D.宏5.下列关于模块的描述,正确的是(ABCD)。A.具有独立的模块软件比较容易开发出来。B.独立的模块比较容易测试和维护。C.模块的独立程度可以通过内聚和耦合标定。D.独立的模块可以完成一个相对独立的特定子功能。6.耦合的强弱取决于(ABC)。A.模块间接口的复杂程度。B.调用模块的方式。C.通过接口的信息。D.模块内部各个元素彼此之间的紧密结合程度。7.在公共环境耦合中,公共环境可以是(ABCD)。A.全程变量。B.共享的通信区。C.内存的公共覆盖区。D.存储介质上的文件。8.下列(AD)属于内容耦合。A.一个模块有多个入口。B.两个模块彼此之间只通过传递参数交换信息。C.两个模块之间存在全程变量,并通过全程变量传递信息。D.两个模块有部分代码重叠。9.在软件设计中,(CD)耦合应尽量避免。A.控制B.数据C.内容D.标记四、简答题1.需求分析的任务是什么?参考答案:见书31页2.怎样建立目标系统的逻辑模型?参考答案:在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质。在物理模型中有许多物理因素,但随着分析工作的深入,有些非本质因素就显得不必要了,因而需要对物理模型进行分析,区分本质和非本质因素,去掉那些非本质因素就可获得反应系统本质的逻辑模型。做法是:⑴确定目标系统与当前系统的逻辑差别;⑵将变化部分看作是新的处理步骤,对功能图及对象图进行调整;⑶由外及里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。3.什么是结构化分析?“结构化”体现在哪里?参考答案:结构化分析方法是面向数据流进行需求分析的方法。结构化分析方法使用数据流图DFD与数据字典DD来描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。结构化分析方法体现在用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。4.需求说明书由哪些部分组成?各部分之间的关系是什么?参考答案:软件需求说明书一般包括如下内容:1.引言部分编写目的;项目背景(应包括:a.项目的委托单位、开发单位和主管部门;b.该软件系统与其他系统的关系。);定义;(列出文档中所用到的专门术语的定义和缩写词的原文。)参考资料。2.任务概述目标;运行环境;条件与限制。3.数据描述静态数据;动态数据(包括输入数据和输出数据);数据库描述(给出使用数据库的名称和类型);数据词典;数据采集。4.功能要求功能划分;功能描述。5.性能需求数据精确度;时间特性(如响应时间、更新处理时间、数据转换与传输时间、运行时间等);适应性(在操作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,应具有的适应能力。)6.运行需求用户界面(如屏幕格式、报表格式、菜单格式、输入输出时间等);硬件接口;软件接口;故障处理。7.其他要求如可使用性、安全保密、可维护性、可移植性等。8.附录5.为什么数据流图要分层?参考答案:为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。为表达稍为复杂的实际问题,需要按照问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。6.什么是加工逻辑?参考答案:加工逻辑就是处理逻辑,加工逻辑是对加工过程的抽象描述。加工逻辑的具体实现就是加工过程。加工逻辑是指用户对这个加工的逻辑要求,即加工的输入数据流与输出数据流之间的逻辑关系。加工逻辑主要是说明加工做什么,而不是描述具体的加工过程,如采用哪些加工单元、如何控制执行等实现细节。7.根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。参考答案:8.结构化设计方法的基本思想是什么?它如何与SA方法相衔接?参考答案:结构化设计方法的基本思想是SA是结构化分析方法的简称。结构化分析方法是面向数据流进行需求分析的方法。其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。结构化分析方法体现在用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。结构化设计是在结构化分析的基础上完成的。结构化设计属于面向数据流的设计方法。在需求分析阶段,通过SA方法,解决了一个关键问题:信息流。数据流是软件开发人员考虑问题的出发点和基础。数据流从系统的输入端向输出端流动,要经历一系列的变换或处理。用来表现这个过程的数据流图(DFD):实际上就是软件系统的逻辑模型。结构化设计要解决的任务,就是在上述需求分析的基础上,将DFD图映射为软件系统的结构。换句话说,这类设计方法允许把用DFD图表示的系统逻辑模型方便地转换成对于软件结构的初始设计描述。结构化设计方法的基本思想是将系统划分成一些独立的功能模块,这些模块按照一定的组织层次构造起来形成软件结构,通过自顶向下逐步细化的方法将用数据流图表示的信息转换成程序结构的设计描述。从结构化分析到结构化设计工具的转变:结构化分析结果结构化设计结果数据流图初始结构图生存周期字典的数据部分设计数据字典伪码+实现方面伪码实体关系图+数据库性数据库设计事务框图分层/细化事务模型9.什么是模块、模块化?参考答案:模块是数据说明、可执行语句等程序对象的集合,模块可以单独被命名的而且可通过名字来访问,例如,过程、函数、子程序、宏等等都可作为模块。模块化就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,实现问题的要求。模块化设计这一概念取消。10.说明并比较概要设计说明书与需求分析说明书的内容。参考答案:P54P98(1)两个说明书都包括引言,内容基本相同;(2)任务概述部分概要设计说明比需求说明增加了需求概述;(3)需求说明主要通过静态、动态数据,数据库描述,数据字典和数据采集等内容进行数据描述;(4)需求说明中的主要部分是功能要求、性能要求、运行需求以及其他要求,它的目的是全面地、精确地描述了系统要“做什么”。需求说明书中还可能包括数据流图、数据字典、IPO图等描述的系统逻辑模型。(5)概要设计说明则对系统的总体结构、各个接口、数据结构、运行、出错、安全、维护进行具体设计,它的目的是描述系统“怎样做”,往往包含了各模块的处理说明和接口说明以及系统结构图。(6)概要设计说明是建立在需求说明的基础上的。11.用Jackson图表示下图所示的二维表格:学生名册姓名性别年龄学号……………………该学生名册由表头和表体两部分组成。其中表头又顺序包括表名和字段名。表体可由任意行组成,每行包括学生的姓名、性别、年龄和学号。表头表体参考答案:12.指出下列数据流图中存在的问题。父图子图参考答案:1、父图没有输入数据流;2、子图的输入数据流应该是C,而不是B;3、子图的输出数据流应该只有D和E,而不应有F。1233.13.23.33.4CBEDFEDFBPOQ学生名册表头表体表名字段名行*姓名性别年龄学号