提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
软件过程期末复习提纲
提示:以下是本篇文章正文内容,下面案例可供参考
一、选择题
- 对象实现了数据和操作的结合,使数据和操作( C )于对象的统一体中。 A.结合 B.隐藏 C.封装 D.抽象
- 软件调试技术包括( B ) A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试
- 瀑布模型的存在问题是( B ) A.用户容易参与开发 B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求 4.软件生命周期中所花费用最多的阶段是( D ) A.详细设计 B.软件编码 C.软件测试 D.软件维护 5.程序的三种基本控制结构是( B ) A.过程、子程序和分程序 B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移 6.在详细设计阶段,经常采用的工具有( A ) A.PAD B.SA C.SC D.DFD 7.详细设计的结果基本决定了最终程序的( C ) A.代码的规模 B.运行速度 C.质量 D.可维护性 8.需求分析中开发人员要从用户那里了解( A ) A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模 9.结构化程序设计主要强调的是( D ) A.程序的规模 B.程序的效率 C.程序设计语言的先进性 D.程序易读性 10.经济可行性研究的范围包括( C ) A.资源有效性 B.管理制度 C.效益分析 D.开发风险 11.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开发的决策依据, 因必须给出( B )的回答。 A.确定 B.行或不行 C.正确 D.无二义 12.需求分析阶段的任务是确定( D ) A.软件开发方法 B.软件开发工具 C.软件开发费 D.软件系统的功能 13.软件测试的目的是( B )。 A. 试验性运行软件 B. 发现软件错误 C. 证明软件正确 D. 找出软件中全部错误 14.软件测试中白盒法是通过分析程序的( B )来设计测试用例的。 A. 应用范围 B. 内部逻辑 C. 功能 D. 输入数据 15.黑盒法是根据程序的( C )来设计测试用例的。 2 A. 应用范围 B. 内部逻辑 C. 功能 D. 输入数据
- 软件是( C ) A. 处理对象和处理规则的描述 B. 程序 C. 程序及其文档 D. 计算机系统
- 软件需求规格说明的内容不应包括( B ) A. 主要功能 B. 算法的详细描述 C.用户界面及运行环境 D. 软件的性能 18.面向对象的分析方法主要是建立三类模型,即( D ) A.系统模型、ER 模型、应用模型 B. 对象模型、动态模型、应用模型 C.E—R模型、对象模型、功能模型 D. 对象模型、动态模型、功能模型 19.在 E—R 模型中,包含以下基本成分( C ) A. 数据、对象、实体 B. 控制、联系、对象 C. 实体、联系、属性 D. 实体、属性、操作
- 各种软件维护的类型中最重要的是( A ) A. 完善性维护 B. 纠错性维护 C. 适应性维护 D. 预防性维护 21.软件测试的目标是( B ) A. 证明软件是正确的 B. 发现错误、降低错误带来的风险 C. 排除软件中所有的错误 D. 与软件调试相同 22.若有一个计算类型的程序,它的输入量只有一个 X,其范围是[-1 .0 ,1.0],现从输入的角度考虑一组测 试用例:-1.001,-1.0,1.0 , 1.001,设计这组测试用例的方法是( C ) A.条件覆盖法 B.等价分类法 C.边界值分析法 D.错误推测法 23.设函数 C(X)定义问题 X 的复杂程序,函数 E(X)确定解决问题 X 需要的工作量(时间)。对于两个问题 P1 和 P2,如果 C(P1)> C(P2)显然 E(P1)>E(P2),则得出结论 E(P1+P2)> E(P1)+ E(P2)就是( A ) A.模块化的根据 B.逐步求精的根据 C.抽象的根据 D.信息隐藏和局部化的根据 24.下面几种白箱测试技术,哪种是最强的覆盖准则 ( D ) A.语句覆盖 B.条件覆盖 C.判定覆盖 D.条件组合覆盖 25.面向数据流的设计方法把( A )映射成软件体系结构。 A.数据流 B.系统结构 C.控制结构 D.信息流 26.内聚程度最低的是( A )内聚。 A.偶然 B.过程 C. 顺序 D.时间 27.需求分析的产品是( D ) A.数据流程图案 B.数据字典 C.判定表 D.需求规格说明书 28.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是( C ) A.数据库设计 B.数据通信 C.数据定义 D.数据维护
- 引入了“风险驱动”的思想,适用于大规模的内部开发项目的软件开发模型是( D ) A.增量模型 B.喷泉模型 C.原型模型 D.螺旋模型 30.模块的内聚性最高的是( D ) A.逻辑内聚 B.时间内聚 C.偶然内聚 D.功能内聚 3
- 提高测试的有效性非常重要,成功的测试是指( D ) A. 证明了被测试程序正确无误 B. 说明了被测试程序符合相应的要求 C. 未发现被测程序的错误 D. 发现了至今为止尚未发现的错误 32.可行性分析研究的目的是( A ) A. 项目值得开发否 B. 争取项目 C.开发项目 D.功能内聚
- 在白盒法技术测试用例的设计中,最弱的覆盖标准是( A ) A. 语句 B. 路径 C.条件组合 D.判定
- 软件工程的出现主要是由于( C ) , A. 程序设计方法学的影响 B. 其它工程科学的影响 C.软件危机的出现 D.计算机的发展
- 软件工程方法学的目的是使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( C ) A. 硬件环境 B. 软件开发的环境 C.软件开发工具和软件开发的环境 D.开发人员的素质
- UML 是软件开发中的一个重要工具,它主要应用于哪种软件开发方法( C ) A.基于瀑布模型的结构化方法 B. 基于需求动态定义的原型化方法 C.基于对象的面向对象的方法 D.基于数据的数据流开发方法
- 结构化分析方法是一个预先严格定义需求的方法,它在实施时强调的是分析对象的( B ) A.控制流 B. 数据流 C. 程序流 D. 指令流
- 需求分析中开发人员要从用户那里了解( A ) A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模
- 数据字典是对数据定义信息的集合,它所定义的对象都包含于( A ) A.数据流图 B.程序框图 C.软件结构 D.方框图
- 面向对象的主要特征除唯一性、继承性、多态性外,还具有( A ) A.封装性 B.移植性 C.完整性 D.兼容性
- 关于软件维护的说法错误的是( C ) A.软件维护是软件生命周期中占用时间最长的一个阶段 B.软件维护不只是修改软件中的错误 C.软件维护对于开发商来说是无利可图的 D.在编码过程中添加适当的注释,可以降低软件维护的难度
- 应用执行对象的操作可以改变该对象的( A ) A.属性 B.功能 C.行为 D.数据
二、填空题
- 软件生存周期大致可以分为 6 个阶段:计算机系统工程、需求分析、设计、编码、测试、运行和维护。
- CMM 模型定义了 5 个软件过程成熟度等级,分别为初始级、可重复级、已定义级、已管理级、优化级。
- CMMI(能力成熟度模型集成)提供了两种表示方法:阶段式模型和连续式模型。
- 为了减少因为对需求了解不确切而给软件开发带来的风险,可以在获取了一组基本的需求后,通过快速 4 分析,构造出该软件的一个初始可运行版本,通常称之为原型。
- 典型的深化模型有增量模型、原型模型、螺旋模型。 6.原型模型类型可以分为以下 3 种类型:探索型、实验型、深化型。 7.喷泉模型是一种支持面向对象开发的过程模型。
- CASE 研究和实践的重点集中在 CASE 工具和软件开发环境两个方面。
- 组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程。
- 可行性分析主要从经济、技术、法律等方面分析所给出的解决方案是否可行,通常只有当解决方案可 行并有一定的经济效益或社会效益时,才真正开始基于计算机的系统的开发。
- 软件需求工程可细分为:需求获取、需求分析与协商、系统建模、需求规约、需求验证和需求管理。
- 需求获取方法与策略主要有:建立顺畅的通信途径、访谈与调查、观察用户操作规程、组成联合小组、 用况。
- 常用的软件需求分析方法有:面向数据流的结构化分析方法、面向数据结构的分析方法、面向对象的 分析方法。
- 软件需求规约是分析任务的最终产物,通过建立完整的信息描述、详细的功能和行为描述、性能需求 和设计约束的说明、合适的验收标准,给出对目标软件的各种需求。
- 软件设计是把软件需求变换成软件表示的过程,早期的软件设计分为概要设计和详细设计,现在的软 件设计分为数据/类设计、软件体系结构设计、接口设计和部件级设计。
- 软件设计的原则是抽象与逐步求精、模块化和信息隐藏。
- 模块的功能独立性可以由内聚度和耦合度两项指标来衡量,设计模块时尽量做到高内聚低耦合。
- 软件设计阶段的主要输出是设计规约,为了确保文档的质量,还必须对设计文档进行评审。
- 结构化方法采用自顶向下逐层分解的思想进行分析建模,体现了分解和抽象的原则。
- 结构化分析方法的分析结果包括:数据流图、数据字典、加工规约以及其他补充材料等。
- 加工逻辑的描述方法主要有:结构化语言、判定表、判定树等。
- 结构化设计是将结构化分析所得到的数据流图映射成软件体系结构的一种设计方法。
- 结构图也称程序结构图,其基本成分有:模块、调用和数据。
- 根据信息流的特点,数据流图到软件体系结构的映射可分为:变换分析和事务分析。
- JSP 方法是一种面向数据结构的分析与设计方法。
- 类是一组具有相同属性和相同操作的对象的集合。多态性是指同一个操作作用于不同的对象上可以有 不同的解释,并产生不同的执行结果。
- UML2.0 把视图划分成 4 个主题域:结构化域、动态域、物理域、模型管理域。结构化域描述了系统中 的结构成员及其相互关系,包括静态视图、设计视图和用况视图。动态域描述了系统的行为或其他随时间 变化的行为,包括状态机视图、活动视图和交互视图。
- 一个用况模型由若干幅用况图组成,一幅用况图包含的模型元素有系统、执行者、用况和关系。
- CRC 技术实际上是一组表示类的索引卡片,每张卡片分成 3 个部分,分别描述类名、类的责任和类的 协作者。 5
- 聚集是表示整体-部分关系的一种关联,而组合代表整体的组合对象有管理它的部分对象的特有责任。 泛化是指类之间的一般-特殊关系。
- 一个对象的状态可以因某种原因而改变,一个对象从一个状态改变成另一个状态称为状态迁移。
- 顺序图用来描述对象间的交互行为,其有两个坐标,垂直坐标表示时间,水平坐标表示一组对象。
- 测试用例的设计是软件测试的关键所在,大体可分为两类:白盒测试和黑盒测试。
- 白盒测试方法主要有逻辑覆盖测试、基本路径测试、数据流测试和循环测试等。
- 黑盒测试方法主要有:等价类划分、边界值分析、比较测试、错误猜测、因果图方法。
- 软件测试策略把软件测试用例的设计方法集成到一系列经周密计划的步骤中去,从而使软件的测试得 以成功地完成,其中一种策略将测试分为单元测试、集成测试、系统测试和确认测试。
- 调试的目的是确定错误的原因和准确位置,并加以纠正,主要的调试方法有蛮力法、回溯法和原因排 除法。
- 软件维护是指软件系统交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
- McCall 模型是一个包含软件质量要素、评价准则和度量 3 个层次的软件质量度量模型。
判断题
- 开发软件就是编写程序。( × )
- 系统测试的主要方法是白盒法,主要进行功能测试、性能测试、安全性测试及可靠性等测试。( × )
- 编程序时应尽可能利用硬件特点以提高程序效率。( × )
- 软件需求分析的任务是建立软件模块结构图。( × )
- 尽可能使用高级语言编写程序。( √ )
- 以结构化分析方法建立的系统模型就是数据流图. ( × )
- 进行总体设计时加强模块间的联系。( × )
- 编码时尽量多用全局变量。( × )
- 用 CASE 环境或程序自动生成工具来自动生成一部分程序. ( √ )
- 软件测试是要发现软件中的所有错误。( × )
- 软件的开发与运行经常受到硬件的限制和制约。 ( √ )
- 模块内的髙内聚往往意味着模块间的松耦合。 ( √ )
- Jackson 图只能表达程序结构,不能表达数据结构。 ( × )
- 软件生命周期中需我进行需求分析,再进行可行性研究。 ( × )
- 软件的质量好坏主要由验收人员负责,其他开发人员不必关心。 ( × )
- 判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。 ( √ )
- 应该尽量使用机器语言编写代码, 提髙程序运行效率, 而减少高级语言的使用。( × )
- 8.UML 只能应用于软件系统模型的建立。 ( × )
- 容错就是每个程序采用两种不同的算法编写。 ( × )
- 软件测试的目的是为了无一遗漏的找出所有的错误。 ( × )
- 在进行总体设计时应加强模块间的联系。 ( × ) 6
- 系统结构图是精确表达程序结构的图形表示法。因此,有时也可以将系统结构图当作系统流程图使用。 ( × )
- 用黑盒法测试时,测试用例是根据程序内部逻辑设计的。 ( × )
- 在程序调试时,找出错误的位置和性质比改正该错误更难。 ( √ )
- 以对象、类、继承和通信为基础的面向对象设计方法(OOD)也是常见的软件概要设计方法之一。( √ )
- 如果通过软件测试没有发现错误,则说明软件是正确的。( × )
- 快速原型模型可以有效地适应用户需求的动态变化。 ( √ )
- 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到髙内聚,低耦合度的软件产品 ( √ )
- 集成测试主要由用户来完成。 ( × )
- 软件危机完全是由硬件问题引起的。 ( × )
简答题
1.什么是软件危机?(P5)
答:随着计算机在各个领域的广泛应用,软件的需求量越来越大,软件的复杂度也越来越高,导致软件的
开发远远满足不了社会发展的需要,超出预算的经费、超过预期的交付时间的事情经常发生。由于缺乏文
档及没有好的开发方法的指导,使得大量已有的软件难以维护。到 20 世纪 60 年代中期出现了人们难以控
制的局面,即“软件危机”。
2. 简述软件生存周期。(P7)
答:软件生存周期是指软件产品或软件系统从产生、投入使用到淘汰的全过程,其大致可以分为以下 6 个
阶段:
(1)计算机系统工程,其任务是确定待开发软件的总体要求和范围,以及该软件与其他计算机系统元素之
间的关系,进行成本估算,作出进度安排,并进行可行性分析。
(2)需求分析,主要解决待开发软件要“做什么”的问题,确定软件的功能、性能、数据、界面等要求,
生成软件需求规约。
(3)设计,主要解决待开发软件“怎么做”的问题,通常可分为系统设计和详细设计。
(4)编码,此阶段的任务是用某种程序设计语言,将设计的结果转换为可执行的程序代码。
(5)测试,此阶段的任务是发现并纠正软件中的错误和缺陷。
(6)运行和维护,在软件运行期间,需对投入运行的软件进行维护。
3. 什么是瀑布模型?(P16)
答:瀑布模型给出了软件生存周期活动的固定顺序,上一阶段的活动完成后向下一阶段的活动过渡,最终
得到所开发的软件产品,其特征是:接收上一阶段活动的结果作为本阶段活动的输入;依据上一阶段活动
的结果实施本阶段应完成的活动;对本阶段活动进行评审;将本阶段活动的结果作为输出,传递给下一阶
段。
4. 什么是增量模型?(P18)
答:增量模型将软件的开发过程分成若干个日程时间交错的线性序列,每个线性序列产生软件的一个可发
7
布的“增量”版本,后一个版本是对前一个版本的修改和补充,重复增量发布的过程,直到产生最终的完
善产品。增量模型整合了瀑布模型的基本成分和深化模型的迭代特征,强调每一次增量发布一个可运行的
产品。
5. 什么是喷泉模型?(P21)
答:喷泉模型是一种支持面向对象开发的过程模型。在分析阶段,标识类及对象,定义类之间的关系,建
立对象-关系模型和对象-行为模型。在设计阶段,从实现的角度对分析模型进行调整和扩充。在编码阶
段,用面向对象语言实现类及对象,通过消息机制实现对象之间的通信,完成软件的功能。在面向对象方
法中,分析模型和设计模型采用相同的符号表示体系,开发的各个活动没有明显的边界,各个活动经常重
复,迭代地交替进行。
6. 简述软件设计原则。(P49)
答:在将软件的需求规约转换为软件设计的过程中,软件的设计人员通常采用抽象与逐步求精、模块化和
信息隐藏等原则,具体简述如下:
(1)抽象与逐步求精。抽象的过程是从特殊到一般的过程,上层概念是下层概念的抽象。逐步求精是把问
题的求解过程分解成若干步骤或阶段,每一步都比上一步更精华,更接近问题的解法。
(2)模块化。把软件按照规定原则,划分为一个个较小的、相互独立的但又相互关联的部件,模块化实际
上是系统分解和抽象的过程。
(3)信息隐藏。每个模块的实现细节对于其他模块来说应该是隐蔽的,即模块中所包含的信息不允许其他
不需要这些信息的模块使用。
7. 面向对象分析过程是什么?
答:(1)获取客户对系统的需求,需求获取必须让客户与开发者充分交流,一般采用用况来收集客户需求
的技术。
(2)标识类和对象。在确定了系统的所有用况后,即可开始标识类以及类的属性和操作。
(3)定义类的结构和层次。类的结构主要有两种:一般-特殊结构和整体-部分结构。
(4)建造对象-关系模型。对象-关系模型描述了系统的静态结构,它指出了类间的关系。
(5)建立对象-行为模型。对象-行为模型描述了系统的动态行为,指明系统如何响应外部的事件或激
励。
8. 简述用况模型及用况建模步骤。(P137)
答:用况建模是用于描述一个系统应该做什么的建模技术,通过开发者和客户之间为导出需求规约而进行
的交互过程来建立用况模型,其主要成分有有况、执行者和系统。
创建用况模型的步骤如下:
(1)定义系统。
(2)确定执行者。
(3)确定用况。
(4)描述用况。
(5)定义用况间的关系。
8
(6)确认模型。
9. 简述状态迁移。(P165)
答:一个对象的状态可以因为某种原因而改变,一个对象从一个状态改变成另一个状态称为状态迁移,在
状态机图中用连接这两个状态的箭头来表示。引起状态迁移的原因通常有两种:一是当出现某一事件时会
引起状态的迁移;另一种情况是状态机图中相应的迁移上未指明事件,这表示当位于迁移箭头源头的状态
中的内部动作全部执行完后,该状态迁移自动触发。
10. 简述白盒测试和黑盒测试。(P249)
答:白盒测试又称结构测试,这种方法把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结
构及有关信息设计测试用例,检查程序中所有逻辑路径是否按预定的要求正确地工作。
黑盒测试又称行为测试,这种方法把测试对象看作一个黑盒子,测试人员完全不考虑程序内部的逻辑结构
和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。
11. 简述α测试和β测试。(P273)
答:α测试是由一个用户在开发者的场所进行的,软件在开发者对用户的“指导下”进行的测试。
β测试是由软件的最终用户在一个或多个用户场所进行的,开发者通常不在测试现场,因此,β测试是软件
在一个开发者不能控制的环境中“活的”应用,用户记录所有在β测试中遇到的问题,并定期把这些问题报
告给开发者,在接到β测试的问题报告后,开发者对软件进行最后的修改,然后着手准备向所有用户发布最
终的软件产品。
画图题
版权归原作者 不言与 所有, 如有侵权,请联系我们删除。