《软件工程复习题及参考答案.pdf》由会员分享,可在线阅读,更多相关《软件工程复习题及参考答案.pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程课程复习资料软件工程课程复习资料一、单项选择题:一、单项选择题:1.下面哪些UML图描述系统行为 A.用例图 B.类图 C.对象图2.属于概要设计活动的是 A.软件结构设计 B.数据结构设计 C.算法设计3.属行为型设计模式的是 A.组合模式 B.工厂方法模式 C.观察者模式4.下列说法正确的是 是软件开发方法是系统描述语言是软件开发过程5.根据程序流程图划分的模块通常是 A.信息内聚的模块 B.过程内聚的模块C.逻辑内聚的模块6.如 果 某 程 序 中 的 比 较 个 数 是m,则 其McCabe环 形 复 杂 度 为 +17.按ISO9000-3的说明,下列属软件配置项的是 A.软
2、件开发方法 B.软件开发组织管理制度 C.软件开发合同8.软件测试的目的是 A.证明软件无错 B.发现软件中的所有错误 C.尽可能发现软件系统中的错误9.软件重构关注的是 A.软件体系结构 B.模块细节 C.软件性能10.软件项目开发计划的内容有 A.数据分析 B.风险分析 C.功能分析11.在UML的类 图中,描述 整体 与部分 关系 的是 A.泛化关系 B.聚合关系 C.依赖关系12.软件过程能力成熟度模型CMM用以评价 A.软件过程能力 B.组织能力 C.学习能力13.因 计 算 机 硬 件 和 软 件 环 境 的 变 化 而 作 出 的 修 改 软 件 的 过 程 称 为 A.完善性维
3、护 B.改正性维护 C.适应性维护14.对 项 目 软 件 而 言,软 件 功 能 需 求 信 息 主 要 由 谁 提 供 A.软件用户 B.软件开发人员 C.软件项目管理人员图反映不出 A.系统做什么 B.系统功能由谁做 C.系统如何做16.原型模型是一种什么开发过程模型 A.自顶向上 B.由外至内 C.增量式17.系统流程图描述 A.物理系统 B.逻辑系统 C.软件体系结构18.需求规格说明书的内容不应该包括 A.软件确认准则 B.软件的性能描述 C.算法过程的详细描述19.适 合 需 求 模 糊 或 需 求 不 确 定 系 统 开 发 的 软 件 开 发 模 型 是 A.瀑布模型模型 C
4、.原型模型图中描述系统结构的是 A.组件图 B.顺序图 C.状态图21.面向对象方法是一种什么软件开发方法 A.层次化 B.迭代增量式 C.逐步求精22.不可以用来衡量软件可维护性的是 A.可靠性 B.可用性 C.可行性23.系统分析员在需求分析最后负责编写 A.用户手册 B.概要设计说明书 C.可行性研究报告24.为 了 提 高 软 件 的 可 靠 性、可 维 护 性 等 而 对 软 件 的 修 改 称 为 A.改正性维护 B.适应性维护 C.预防性维护25.在结构化方法中,为使需求改变对软件影响较小,应该使软件结构 A.与问题结构对应 B.与问题结构独立 C.与用户界面对应26.单元测试的
5、计划应该在什么阶段完成 A.需求分析 B.概要设计 C.详细设计27.下列属面向对象软件开发方法的是 方法方法方法28.强调信息隐藏的软件工程设计方法是 方法方法 SD 方法29.描述系统动态行为的模型是 A.包图 B.软件结构图 C.状态图30.考虑输入条件组合的测试用例设计方法是 A.等价分类法 B.语句覆盖法 C.因果图法31.下列能减少支援性维护活动的是 A.利用软件包 B.进行配置管理 C.对用户进行适当培训32.只支持单重继承的程序设计语言是 +图的顶层图是 图图图34.在UML的用例图中,扩展关系是一种 A.泛化关系 B.依赖关系 C.关联关系35.独立测试小组开始介入测试是在
6、A.模块测试阶段 B.集成测试阶段 C.确认测试阶段36.在成本估计中容易低估局部问题的方法是 A.基于经验模型的估计 B.自底向上估计 C.自顶向下估计37.在 IDEF1X 图中,如果子实体与父实体存在联系,则子实体将继承父实体的 A.全部属性 B.主关键字属性 C.非主关键字属性38.结构化分析方法使用的工具是 A.数据流图 B.类图 C.软件结构图39.白盒测试设计用例的方法是 A.等价分类法 B.基本路径覆盖法 C.因果图法40.在衡量软件质量时,最重要的标准是 A.可维护性好 B.可用性好 C.满足用户功能需求41.瀑布模型是一种 A.演化模型 B.顺序模型 C.增量模型42.模块
7、的独立程度可以由什么定性标准度量 A.耦合度 B.复杂度 C.可靠性43.以下选项中,不属于对象的特点有 A.继承 B.多态 C.封闭44.面向数据结构的设计方法有 方法方法方法45.与UML配合最好的软件开发方法是 方法 Yourdon 方法方法二、填空题:二、填空题:1.统一建模语言 UML 提供了两种描述整体/部分关系的方法,分别是和。2.软件是计算机程序、及的完整集合,将其统称为软件配置,这些项称为软件配置项。通过正式复审的软件配置项称为,只有通过正式的变化控制过程才能改变它。3.纯收入是指在整个生存周期之内的与投资之差。4.瀑布模型是以驱动的软件生存周期模型,适合需求明确的软件系统开
8、发。5.在单元测试期间,应该为被测模块编写相应的测试软件,一般地模块接收测试数据,并把数据传给被测模块,而模块则模拟实际模块完成少量数据处理。方法用严格的自顶向下、逐层分解的方式进行系统的功能描述,其顶层图将图在建模范围内分解成个主要部分得到。7.如果一个模块完成多个逻辑上相近或相关的功能,并且每次调用只选择该模块中的一个功能执行,则称此模块为内聚的模块。8.程序静态分析的对象是。常生成各种引用表,如列出各模块中出现的全部标号。9.在数据流图中,每个加工至少有一个和一个。10.两个小组独立地测试同一个程序,第一组发现 25 个错误,第二组发现30 个错误,在两个小组发现的错误中有 15 个是共
9、同的,那么可以估计程序中的错误总数是。11.设 E 为程序图 G 中边的总数;N 为程序图中结点的总数,则该程序图的环形复杂度为。12.汽车有一个发动机。若用 UML 描述汽车和发动机之间的关系,则它们之间是_关系。13.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略,即策略和策略。14.在基本路径测试中,以详细设计为基础,导出控制流程图的拓扑结构:程序图,在计算了程序图的之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组的一条路径。从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径。15.在多层次的结构图中,其模块结构的层次数称为结构图的。结构图中同
10、一层模块的最大模块数称为结构图的。16.耦合性是指两个模块之间的关系,模块之间的联系越复杂,每个模块的独立性就。17.可行性研究实质上是进行了一次过程。18.需求分析的任务是。图的主要优点是它强制设计人员使用技术,从而可保证软件设计的质量。20.结构型模式涉及如何组合类和对象,从而构成更大的对象,一是采用来组合接口或实现形成更大的结构;另一种方式通过方式来形成。21.为了便于对照检查,测试用例应由和预期的两部分组成。22.软件开发时,一个错误发现得越晚,为改正它所付出的代价就。23.在 UML 的用例图中,根据参与者与用例关系的不同,参与者可分为和次要参与者,参与者之间的关系只有关系。24.评
11、价软件质量可以从三个方面进行,即产品或中间产品、和项目。25.软件配置管理是一组用于在计算机软件的整个生存周期内管理的活动。26.通过抽象,可以确定组成软件的。通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的。表示法的基础是,它描述建模元素的语义。28.条件覆盖是指设计足够的测试用例,使得至少出现一次。29.面向数据流图的结构化分析方法是根据的原则,按照系统中数据处理的流程,用数据图来建立系统的模型。30.评估软件企业的质量管理有两种方法,一种是按照认证,另外一种是按照 CMM 认证。31.风险估计从两个方面来度量,一是估计,二是估计与风险相关的问题出现后将会带来的损失。三、名词解
12、释:三、名词解释:1.集成测试2.设计模式3.信息隐藏4.用例5.结构化方法四、判断题:四、判断题:1.测 试 计 划、测 试 用 例 和 出 错 统 计 等 一 般 不 用 长 期 保 存。2.在 面 向 对 象 方 法 中,需 求 分 析 和 设 计 没 有 差 别。3.应 用 设 计 模 式 使 得 软 件 灵 活,可 重 用 性 提 高,应 该 尽 量 多 使 用。是 一 种 建 模 语 言,可 以 被 任 何 面 向 对 象 方 法 使 用。5.任何系统都需要对数据进行处理,因而数据流图可描述任何系统。6.软件开发就是编写程序代码。7.面 向 对 象 软 件 开 发 最 适 合 采
13、用 迭 代、增 量 式 的 开 发 模 型。8.设 计 模 式 是 一 种 可 以 重 用 的 面 向 对 象 软 件 设 计 方 案。9.软件测试就是检查程序是否正确。10.软 件 项 目 计 划 在 可 行 性 研 究 阶 段 就 已 定 稿。11.软 件 工 程 认 为 软 件 设 计 的 最 终 目 标 是 要 取 得 最 佳 方 案。12.只 要 对 软 件 进 行 严 格 的 测 试,就 能 发 现 软 件 中 的 所 有 错 误。13.初级技术人员在编码阶段参与软件项目的程度在各类人员中最高。14.单元测试常常在编码阶段进行。描 述 和 分 析 了 软 件 过 程 能 力 的 发
14、 展 与 改 进 的 程 度。16.为 了 加 快 开 发 速 度,可 以 一 边 写 程 序,一 边 设 计 文 档。17.没有发现任何错误的测试是无效的测试。18.软件结构图中不能有控制信息流动。19.单元测试常常由独立的测试小组进行。20.用 例 建 模 只 能 用 于 面 向 对 象 软 件 系 统 的 开 发。21.数 据 流 建 模 方 法 是 一 种 自 顶 向 下 的 需 求 分 析 方 法。22.为 了 减 少 程 序 的 长 度,最 好 不 要 在 程 序 中 增 加 注 释。五、简答题:五、简答题:1.在需求分析和设计阶段建立原型的好处有哪些2.什么是模块的扇入和扇出的特
15、点是什么4.层次图和层次方框图有何区别5.软件测试对象应包括哪些内容6.试简要叙述文档在软件工程中的作用。7.为何螺旋模型主要适合开发人员和用户为同一个组织机构成员的软件项目的开发8.软件测试为何需要尽早和不断地进行9.简要说明如何实现 MVC。10.试给出一种开源软件框架,并简要说明开源软件存在的问题。方法有什么特点12.快速原型模型有几种各有何特点六、综合题:六、综合题:1.某网络学院决定开发一个管理所有学生和教师信息的交互式网络系统,该系统提供如下服务:(1)浏览学生信息:网络学院的任何人员,包括学生和老师,均可以浏览学院任何学生的信息,包括姓名、学号和专业名称。(2)浏览教师信息:网络
16、学院的任何人,包括学生和老师,均可以浏览学院任何教师的信息,包括姓名、工号和职称。(3)登录:网络学院给学院每个人一个账号。拥有授权帐号的学生和老师,可以使用系统提供的页面设置个人密码,并使用该账号和密码向系统注册。(4)修改个人信息:学生或老师向系统注册后,可以发送电子邮件或使用系统提供的页面,对个人信息进行修改。(5)删除个人信息:只有网络学院的管理人员才能删除不再是学院学生或老师的人员的有关信息。试问哪些是参与者哪些是用例并用 UML 的用例图描述系统行为。2.试据下述伪代码描述的模块,改用 NS 图描述。Begin a b Do Until x6 If xl then f If x4
17、then Do Until x5 i End Until Else g h End if Else Select Case x2 Case 1:Do While x3 c End While Case 2:d Case 3:e End Select End ifEnd UntilEnd3.某五星级宾馆共有H间客房。每间客房的房间号、房间等级、床位数以及占用状态分别存放在数组ROOM、RANK、NBED和STATUS中。房间等级用整数表示。房间状态有:空闲(0表示)和占用(1表示)。客房以房间为单位出租。试设计一个算法,依据散客的要求预定房间,要求输入为:人数M,房间等级要求R(R为0表示任意等
18、级均可);输出为:可供选择的房间号。要求用程序流程图描述算法。4.某医院打算开发一个以计算机为中心的患者监护系统,以解决医院人手不够和对危重病人的及时监护。该系统应能做到以下几点:随时接受每个病人的生理信号;定时记录病人情况形成患者日志;当病人生理信号超出医生规定的安全范围时向值班护士发告警信息;此外,护士在需要时,还可要求系统印出指定病人的病情报告。试椐此叙述绘出对应的 DFD 图。5.试采用设计模式描述算术表达式(不含圆括号)的设计方案。算术表达式是由加、减、乘、除和操作数构成的表达式,操作数假定为实数。6.请根据如下程序流程图设计该程序段的判定覆盖测试用例,其中输入为 A,B,X,输出为
19、 X。abF(A1)TcX=X/2dTeX=X+2F(A=2)参考答案参考答案一、单项选择题:一、单项选择题:二、填空题:二、填空题:1.聚集组合 2.描述计算机程序的文档数据基线3.累计经济效益(折合成现在值)4.文档5.驱动模块桩模块 3-67.逻辑 8.源程序 标号交叉引用表9.输入流 输出流 N+2 12.聚合13.深度优先广度优先 14.环形复杂性 以前没有处理的语句或条件15.深度 宽度 16.依赖越低17.大大压缩简化了的系统分析和设计过程 18.确定系统必须完成哪些工作19.结构化 20.继承对象组合21.输入数据 预期输出结果 22.越大23.主要参与者泛化 24.过程25.
20、变化 26.过程实体 存取限制元模型 28.判定表达式中每个条件的各种可能的值29.分解与抽象功能31.风险发生的可能性三、名词解释:三、名词解释:1.集成测试集成测试也称组装测试或联调。是指在单元测试的基础上,将所有模块按照概要设计要求组装成一个完整的系统而进行的测试。模块组装的方式有两种:渐增式和非渐增式。2.设计模式设计模式是普通面向对象设计问题的解决方案,这类问题以一组交互类的形式出现,用户根据需要定制这些交互类以形成专门的设计。所有设计模式均可以从四个方面加以描述:模式名称、问题描述、解决方案和效果。3.信息隐藏信息隐藏是指在模块设计时,使得一个模块内包含的信息(过程或数据),对于不
21、需要这些信息的其他模块来说是不能访问的。这样,改变模块的内部过程和数据的设计不会影响到其它模块。4.用例用例是参与者为达到某个目的而与系统进行的一系列交互,执行结果将为参与者提供可度量的价值。从参与者的角度来看,用例应该是一个完整的任务,在一个相对较短的时间内完成。5.结构化方法结构化方法是一种传统的软件开发方法,其总的指导思想是自顶向下、初步求精、单入口、单出口,其基本原则是抽象和功能分解。即模型、视图、控制器。其中,模型是应用对象,其包含一些数据值,维护数据并提供数据的访问方法。视图显示模型的部分或说有数据,多个视图可以以不同的方式来显示模型中数据。控制器处理用户输入事件。四、判断题:四、
22、判断题:1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.五、简答题:五、简答题:1.在需求分析和设计阶段建立原型的好处有:(1)增进开发人员和用户对系统需求的一致理解,明确软件需求,尤其是功能含糊的需求。(2)原型提供了一种有力的学习手段,能够使用户尽早接触系统。(3)原型可以用来识别或化解风险。(4)原型有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统。2.扇入则定义为一个模块被调用(或控制)的模块个数;扇出表示一个模块直接调用(或控制)的其他模块数目。的特点是:(1)统一了面向
23、对象方法的有关概念和描述方法;(2)表达能力强,能对各种并发分布式系统进行建模,且 UML 还提供了扩展机制;(3)UML 专注于一种标准的建模语言,而不是一个开发过程。4.层次图主要用来描绘软件的层次结构,矩形框代表一个模块,矩形框之间的连线表示模块之间的调用关系,常与 IPO 图一起形成 HIPO 图。层次方框图主要描述系统的组成关系,一般自用域需求分析。5.软件测试并不等于程序代码测试,其应该贯穿于软件定义与开发的整个期间。因此,需求分析、概要设计以及程序编码等各阶段所得的文档,包括需求规格说明、概要设计说明、详细设计规格说明以及源程序代码都应成为软件测试的对象。6.在软件工程中,文档的
24、作用是:(1)提高软件开发过程的能见度;(2)记录开发过程的有关信息便于使用与维护;(3)作为开发人员阶段工作成果和结束标志;(4)提高开发效率;(5)提供软件运行、维护和培训有关资料;(6)便于用户了解软件功能、性能。7.因为如果开发人员和用户属于不同的组织机构,则一般在正式的软件开发之前均需要签订合同,所有的风险分析均必须在签订合同之前完成。但螺旋模型需要在软件开发的每一个阶段都进行风险分析,当重要风险不能解决时,项目应该终止。由此螺旋模型可能因为风险使得合同在完成之前就终止,从而导致法律诉讼。故螺旋模型不适合开发人员和用户属于不同组织机构的情况。8.软件测试不应仅仅作为一个独立的软件开发
25、阶段,而应贯穿到软件开发的各个阶段中。通过各阶段的评审,在早期把错误解决,以减少错误放大效应,这样不仅可以提高软件质量,而且也是降低软件成本的一个重要措施。由此,软件测试应该尽早和不断地进行。是 ModelViewController 的简写。Model 代表的是应用的业务逻辑(通过JavaBean,EJB 组件实现),View 是应用的表示层(由JSP 页面产生),Controller 是提供应用的处理过程控制(一般是一个 Servlet),通过 MVC 把应用逻辑,处理过程和显示逻辑分成不同的组件实现。是采用 Java Servlet/JavaServer Pages 技术,开发 Web
26、应用程序的开源应用框架。Struts 框架主要有如下功能:1)包含一个 controller servlet,能将用户的请求发送到相应的 Action 对象;2)JSP 自由 tag 库,并且在 controller servlet 中提供关联支持,帮助开发人员创建交互式表单应用;3)提供了一系列实用对象,如 XML 处理、通过 Java reflection APIs 自动处理 JavaBeans 属性、国际化的提示和消息等。开源软件存在的主要问题有:(1)技术服务支持较少;(2)版本控制困难;(3)性能不够稳定;(4)文档不全,等等。方法的特点是:(1)采用方框和箭头等简单的图形符号描述系
27、统的活动和数据流,描述活动所受到的约束条件及实现机制,清楚地反映了系统的功能。(2)采用严格的自顶向下、逐层分解的方式建立系统功能模型。顶层确定系统范围,采用抽象原则,然后有控制的逐步展开有关活动的细节,符合SA方法的分析策略。同时,IDEF0规定每张图至少有3个、最多有6个方框,上界6保证采用层次性描述复杂问题的可理解性,下界3保证分解有意义。12.根据原型的不同作用,有三类原型模型:探索型原型。这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性。它主要针对开发目标模糊,用户与开发着对项目都缺乏经验的情况,通过对原型的开发来明确
28、用户的需求。实验型原型。这种原型主要用于设计阶段,考核实现方案是否合适,能否实现,对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性。演化型原型。这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框或者包含系统的主要功能。在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统,它将原型的思路扩展到软件开发的全过程。六、综合题:六、综合题:1.2.3.4.5.输入M和开始6.(1)选择测试路径:a b d(判定(A1)(B=0)为假;判定I=1,J=0(A=2)(X1)为假):a c e(判定(A1)(B=0)为真;判定(A=2)(X1)为真)(2)选择测试用例Tru:输入A=1 B=1 X=1预期输出 X=1IH:输入A=2 B=0 X=4预期输出 X=4I=IFalFalSTATUS(ITruTruNBED(I)FalR=0FalFalRANK(I)=TruJ=J+1,结束输出 RM 数Tru