1、1软件工程学习资料(1)一、填空1、软件工程学的内容可包括 理论 、 结构 、 方法 、 工具 、环境、管理、规范等。2、NS 图中的顺序结构:在 PAD 图中表示为: PAD 图设置五种基本控制结构,并允许递归 使用。3、模块的独立程度可以由两个定性标准度量,这两个标准分别称为 内聚 和 耦合 。耦合衡量 不同模 块 彼此之 间 相互依 赖 的 紧 密程度。内聚衡量 一个模 块 内部各个元素彼此 结 合的 紧 密程度。4、软件测试方法按测试过程是否在实际应用环境中分为 静 态 分析 和 动态测试 。二、单项选择题1、模块在同一段时间内完成各种初始化工作,这属于 。A.偶然内聚 B.逻辑内聚
2、C.时间 内聚 D.过程内聚2、在编程安全方法方面,一般来说无法做到 。A. 避开错误 B.完美无缺, 绝 无 错误 C. 冗余 D.设计防错程序3、在衡量软件质量时,最重要的标准是 。A. 成本低 B. 可维护性好 C. 符合要求 D. 界面友好4、下列工具中,不属于详细设计工具的是 。A. 测试 工具 B. 图形工具 C. 表格工具 D. 语言工具5、下列哪个做法会导致不利的语句结构?A. 避免使用 ELSE GOTO 结构 B.对递归 定 义 的数据 结 构尽量不再使用 递归过 程C.模块功能尽可能单一化,模块间的耦合能够清晰可见D.利用信息隐蔽,确保每一个模块的独立性三、判断题1、Ja
3、ckson 系统开发方法是一种典型的面向对象的分析设计方法。 ()ABAB22、HIPO 图是由一组 IPO 图加一张 HC 图组成,是美国 IBM 公司在软件设计中使用的主要表达工具。 ()3、在软件开发中采用原型系统策略的主要困难是成本问题。 ()4、软件开发所需的资源可以画成一个金字塔,塔的高层最基本的资源是人。 ()5、下图表示的是 WHILE 型循环。 ()6、数据流图与程序流程图的主要区别是程序流程图中各处理框之间有严格的时间上的顺序,而数据流图只反映数据的流向,不反映处理逻辑的先后。 ()四、问答题1、什么是软件?答:软件是一种产品,包含下面三方面的含义。(1)在运行中能提供所希
4、望的功能和性能的指令集(即程序) ;(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文档。2、简述面向数据流的需求分析方法。答:结构化分析方法是面向数据流进行需求分析的方法。结构化分析方法使用数据流图 DFD 和数据字典 DD 来描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。其核心思想是分解化解问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。3、模块独立性的重要性是什么?答:具有独立性的模块软件比较容易开发
5、出来,独立的模块比较容易测试和维护。4、简述在编码风格上需要注意的四个问题。答:(1)源程序文档化 (2)数据说明的方法 (3)语句结构 (4)输入/输出方法五、分析题1、根据伪码程序画出程序流程图、盒图(NS 图) 。START ENDIFA STOPIF x1 THENREPEAT UNTIL x2bEND REPEATELSEBLOCKcSP第 1 页3dENDBLOCKSTARTNYY NSTOP2、用 Jackson 图表示下图所示的二维表格:学生名册姓名 性别 年龄 学号 该学生名册由表头和表体两部分组成。其中表头又顺序包括表名和字段名。表体可由任意行组成,每行包括姓名、性别、年龄
6、和学号。aX1bX2cdAT X1 Fb cUNTIL x2 d表头表体学生名册表头表名 字段名表体行*姓名 性别 年龄 学号第 2 页4软件工程学习资料( 2)一、填空1、数据流图 4 种基本图形元素为 数据 输 入的源点和数据 输 出的 汇 点 、加工 、数据流 、数据存 储 文件 。2、软件测试的步骤可分为 单 元 测试 、集成 测试 、确 认测试 、系 统测试 。3、编码风格主要包括四个方面: 源程序文档化 、数据 说 明的方法 、语 句 结 构 、输入 输 出方法 。4、模块的独立程度可以由两个定性标准度量,这两个标准分别称为 内聚 和 耦合 。耦合衡量 不同模 块 彼此之 间 相互
7、依 赖 的 紧 密程度 。内聚衡量 一个模 块 内部各个元素彼此 结 合的 紧 密程度 。5、结构化程序设计采用 自 顶 向下逐步求精 的设计方法和 单 入口 单 出口 的控制结构。二、单项选择题1、软件开发时,一个错误发现得越晚,为改正它所付出的代价就 。A. 越大 B. 越小 C. 越不可捉摸 D. 越接近平均水平2、总体设计的目的是确定整个系统的 。A. 规模 B. 测试方案 C. 费用 D. 功能及模 块结 构3、 不是软件维护的内容。A 编写维护报告 B 记录维护数据 C 修改需求分析 D 重写相关模块的编码4、下列各方法中, 不是软件测试方法。A. 白盒法 B. 黑盒法 C. 动态
8、测试 D. 盒法5、下列哪个做法会导致不利的语句结构?A.避免过多的循环嵌套和条件嵌套 B.对递归 定 义 的数据 结 构尽量不再使用 递归过 程C.模块功能尽可能单一化,模块间的耦合能够清晰可见D.确保所有变量在使用前都进行初始化三、判断题1、软件产品与其他任何产品不同,它是无形的,完全没有物理属性。 ()2、使用好的开发工具可以降低开发成本。 ()第 3 页53、需求分析报告只有软件分析人员能看懂。 ()4、无条件转移是程序的基本结构之一。 ()5、为了提高程序的易读性,尽可能使用高级语言编写程序。 ()6、Jackson 图只能表示数据结构,不能表示程序结构。 ()四、问答题1、什么叫软
9、件的生存期?软件的生存期可以分为几个阶段?答:一个软件产品从定义、开发、维护到废弃的时间总和称为软件的生存周期。软件的生存期可以分为 7 个阶段:(1)问题定义 (2)可行性研究 (3)需求分析 (4)设计 (5)编码(6)测试 (7)运行与维护2、简述程序设计语言的特点。答:程序设计语言是人与计算机交流的媒介,其特点为:(1)名字说明 (2)类型说明 (3)初始化 (4)程序对象的局限性(5)程序模块 (6)循环控制结构 (7)分支控制结构 (8)异常处理(9)独立编译3、什么是数据流图?简述绘制数据流图的基本步骤。答:数据流图是描述数据处理过程的工具。数据流图从数据传递和加工的角度,以图形
10、的方式刻画数据从输入到输出的移动变换过程。数据流图的基本 4 种成分为加工、外部实体、数据流和数据存储文件。画数据流图的基本步骤,就是自外向内,自顶向下,逐层细化,完善求精。五、分析题1、根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。答:第一层数据流图如下:订书 订书发书 发书收 应款 付通 F1 教材库存 款知 通知2、画出下列伪码程序的程序流程图,盒图(NS 图) 。START START IF p THEN学生 书店P1教材科P2会计T p Fqf第 4 页6WHI
11、LE q DO NfEND DO YELSE NBLOCKg YnEND BLOCK STOPEND IFSTOP软件工程学习资料( 3)一、填空1、软件工程学的基本原则包括分解、独立性、一致性、确定性等。2、软件生存周期一般可分为问题定义、可行性研究、需求分析、设计、编码、测试、运行与维护阶段。3、成本估计方法主要有自顶向下估计、自底向上估计和算法模型估计三种类型。4、数据流图的基本符号包括数据输入的源点和数据输出的汇点、加工、数据流、数据存储文件。5、JSD 是一种典型的 面向数据 结构的分析设计方法。6、详细设计工具有图形工具、表格工具和语言工具。7、IPO 图由输入、处理和输出三个框组
12、成。这个图的特点是能够直观的显示三者之间的关系。8、分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程。9、程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动。二、单项选择题1、下列哪个阶段不属于软件生存期的三大阶段?(A)计划阶段(B)开发阶段(C)编码阶段(D)维护阶段2、下列哪个图不是 NS 图的构件?(A) (B)PqFgngnXYWHILE MB第 5 页7(C) (D)3、对于下列各图,有关描述中正确的是 。(A)数据 A 和 B 同时输入变成 C (B)数据 A 变换成 B 和 CA B* C AB C(C) 数据 A 或 B(不能同时)输入,
13、变换成 C (D)AB+ C A B C4、下列那种方法不是度量效益的方法?(A)货币的时间价值(B)算法模型估计(C)投资回收期(D )纯收入5、下列描述错误的是 。(A) 数据流图将各种信息流抽象成数据流的形式(B) 数据流图不反映控制关系、调用关系(C) 数据流图不反映处理逻辑的先后顺序 3(D( 数据流图不反映数据的流向三、多项选择题1、需求分析阶段应该完成的文档资料包括 ABCD。(A)系统规格说明(B)数据要求(C)用户系统描述(D )修正的开发计划2、下列关于模块的描述,正确的是 ABCD。(A) 具有独立的模块软件比较容易开发出来(B) 独立的模块比较容易测试和维护(C) 模块
14、的独立程度可以通过内聚和耦合标定(D) 独立的模块可以完成一个相对独立的特定子功能3、关于内容耦合的描述正确的是 A、D 。(A) 内容耦合是最高程度的耦合(B) 应该尽量使用内容耦合XYCUNTIL 第 6 页8(C) 高级语言一般设计成允许内容耦合的形式(D) 若一个模块有多个入口,可能发生内容耦合4、下列属于不标准的书写格式的是 B、C、D。(A)书写时适当使用空格分隔 (B)一行写入多条语句(C )嵌套结构不使用分层缩进的写法 (D)程序中不加注释5、软件测试主要包括 A、B、C 方面的差错和纠错。(A)软件计划(B)软件设计(C)软件编码(D )软件价格四、判断题1、螺旋模型是利用笛
15、卡儿坐标的四个象限分别代表四个方面的活动来表示。2、模块越多,开发成本越小。3、内聚是指一个软件结构内各个模块之间互连程度的度量。4、结构化设计属于面向数据流的设计方法。5、详细设计是在概要设计之后进行的,它利用概要设计的结果,对系统中每个模块给出足够的过程性描述。6、程序运行过程中出现错误叫做容错。7、软件测试的目的是证明程序没有错误。8、白盒测试法是将程序看成一个透明的盒子,不需要了解程序的内部结构和处理过程。9、PAD 图在设置了五种基本结构后,还允许递归调用。10、独立编译是指将一个大程序的不同程序单元分别编译,然后重新连接整个程序段。五、问答题1、什么是软件生存周期?答:一个软件从定
16、义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。软件生存周期就是从提出软件产品开始,直到该软件产品被淘汰的全过程。2、简述什么是系统流程图?答:系统流程图是描绘物理系统的传统工具。其基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等) ,系统流程图表达的是部件的信息流程,而非表示对信息进行加工处理的控制过程。3、为什么数据流图要分层?答:为了表达数据处理过程的数据加工情况,用一个数据流图是不够的。为表达稍为复杂的实际问题,需要按照问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。4、
17、软件的质量反应为哪些方面的问题?答:软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。若不遵守这些开发准则,软件质量就得不到保证。往往会有一些隐含的需求没有明确地提出来,如果软件只满足那些精确定义了的需求而第 7 页9没有满足这些隐含的需求,软件质量也不能保证。软件质量是各种特性的复杂组合,它随着应用的不同而不同,随着用户提出的质量要求不同而不同。六、分析题1、已知被测模块如下,按照判定覆盖法,在表格中填入满足测试要求的数据。BeginF TcbF Td e答案:数据 覆盖路径 覆盖分支 Y 值A3 B1 Y6
18、 c e TT 7A1 B2 Y0 b d FF 32、画出下列伪码程序的程序流程图,盒图(NS 图) 。START START IF p THENWHILE q DO NfEND DO YELSE NBLOCKg YnEND BLOCK STOPEND IFSTOPA2AND B=1Y=Y/3A=1 AND Y1Y=Y+5Y=Y3Return假设几种可能的条件是:T1:A2 F1:A2T2:B1 F2:B1T3:A1 F3:A1T4:Y1 F4:Y1数据 覆盖路径 覆盖分支 Y 值TTFF注意:本题答案不惟一,只要答对都给分。PqfgnT p Fqfgn第 8 页10软件工程学习资料( 4)
19、一、填空1、软件生存周期是指软件从开发、使用和维护,直到最终被弃用的全过程。2、瀑布模型的核心思想是按工序将问题简化。3、在可行性研究中,技术可行性是最关键的因素。4、假设使用代码行技术进行费用估计,某软件中共 5000 行程序,每行平均成本 20 元,则该软件的成本为 100000 元。5、结构化分析方法常用的两种工具是数据流图 DFD 和数据字典 DD。6、模块的分解和合并应力求降低耦合提高内聚。7、程序的效率包含两方面的内容:程序的执行速度和程序占用的存储空间。8、提高软件质量和可靠性的技术主要有两类:避开错误技术和容错技术。9、大型软件测试包括单元测试、集成测试、 确认测试和系统测试。
20、10、软件的维护一般经过分析和理解程序、修改程序和重新验证程序。11、软件开发需要的资源包括软件工具、硬件工具和人,其中人是最基本的资源。二、单项选择题1、若某种内聚要求一个模块中包含的任务必须在同一段时间内执行,这种内聚属于 。A.时间 内聚 B.逻辑内聚 C.通信内聚 D.信息内聚2、选择足够多的测试数据,使得判定表达式中的每个条件都取得各种可能的值,而且每个判定表达式也都取到各种可能的结果。满足这种测试条件的覆盖是 。(A)判定覆盖 (B)条件覆盖 ( C)判定条件覆盖 (D)条件组合覆盖3、下列 属于详细设计。(A) 分析项目的成本和效益 ( B)为每个模块确定采用的算法(C) 编写代
21、码 (D)确定模块结构,划分模块功能4、某次程序调试时没有出现预计的结果,下列 不可能是原因。(A)变量没有初始化(B)循环控制出错 ( C)变量没有明确的注释 (D)代码输入有误5、下列 属于不良的编程习惯。(A)尽量不使用 GOTO 语句 ( B)从来不使用注释 (C)每行只写一条语句(D)变量命名尽量直观第 9 页11三、多项选择题1、成本估计方法包括 。( A)自顶向下估计 ( B)自底向上估计 ( C)算法模型估计 (D)螺旋型估计2、两个模块之间出现 A、B、C、D 情况,则称为内容耦合。(A)一个模块访问另一个模块的内部(B)一个模块不通过正常入口而转到另一个模块的内部(C)两个
22、模块有一部分程序代码重叠(D)一个模块有多个入口3、耦合的强弱取决于 。(A)模块内部各个元素彼此之间的紧密结合程度( B)调用模块的方式( C)通过接口的信息( D)模块间接口的复杂程度4、公共环境耦合中的公共环境可以是 。(A)局部变量 ( B)全程变量( C)内存的公共覆盖区( D)共享的通信区5、下列 属于主动式防错程序设计。( A)内存检查 (B)检查栈的深度 ( C)连接检查 (D )检查数组的界限四、判断题1、软件的开发与运行经常受到硬件的限制和制约。2、数据耦合的耦合程度最低。3、数据流图的主图必须包含四种基本元素。4、 A* CB上述数据流图表示数据 A 和 B 同时输入变换
23、成 C。5、控制耦合往往是多余的,经过分解可以被数据耦合所替代。6、判定覆盖一定包含条件覆盖,但反之则不一定成立。7、扇出是指一个模块直接调用的模块的数目。8、冗余程序设计就是每个程序采用两种不同的算法编写。9、进行程序测试的目的是为了表明程序是正确的。第 10 页为什么软件测试不应该由程序的编写人员来做? 答:软件测试的目的是为了发现程序中的错误而执行程序的过程。正确认识测试的目标是十分重要的,测试目标决定了测试方案的设计。如果 为了表明程序是正确的而进行的测试,就会 设计一些不易暴露错误的测试方案;相反,如果 测试是为了发现程序中的错误,就会力求 设计出最能暴露错误的测试方案。由于测试的目标是暴露程序中的 错误,从心理学角度看,人们都有一种不愿否定自己劳动成果的心理,所以由程序的 编写者自己进行测试是不恰当的。