软件工程基础习题集
软件工程基础习题及答案
软件工程基础习题及答案1.下面描述不属于软件特点的是()。
DA)软件是一种逻辑实体,具有抽象性B)软件在使用中不存在磨损、老化问题C)软件复杂性高D)软件使用不涉及知识产权3.下面不属于软件需求分析阶段工作的是()。
BA)需求获取B)需求计划C)需求分析D)需求评审5.下面不属于黑盒测试方法的是()。
BA)边界值分析法B)基本路径测试C)等价类划分法D)错误推测法7.下面描述中不属于软件需求分析阶段任务的是()。
BA)撰写软件需求规格说明书B)软件的总体结构设计C)软件的需求分析D)软件的需求评审9.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是()。
DA)软件测试B)软件实现C)软件总体设计D)可行性研究11.某系统结构图如下所示该系统结构图的最大扇入数是()。
AA)nB)1C)2D)313.某系统结构图如下图所示该系统结构图的最大扇出数是()。
DA)1B)2C)3D)n15.下面对软件测试和软件调试叙述错误的是()。
C A)严格执行测试计划,排除测试的随意性B)软件调试的目的是改正软件错误C)软件测试不需考虑测试成本D)正确的执行测试用例17.使用白盒测试方法时,设计测试用例应根据()。
A A)程序的内部逻辑B)程序的复杂结构C)程序的功能D)使用说明书19.下面对软件特点描述错误的是()。
DA)软件没有明显的制作过程B)软件是一种逻辑实体,不是物理实体,具有抽象性 C)软件的开发、运行对计算机系统具有依赖性D)软件在使用中存在磨损、老化问题20.某系统结构图如下图所示该系统结构图中最大扇入是()。
CA)021.软件生命周期是指()。
AA)软件产品从提出、实现、使用维护到停止使用退役的过程 B)软件的需求分析、设计与实现C)软件的运行和维护D)软件的实现和维护22.某系统结构图如下图所示该系统结构图中最大扇出数是()。
CA)123.程序流程图中带有箭头的线段表示的是()。
软件工程《软件工程》习题集
软件工程习题集第一章概述一、选择题1.“软件危机”产生的主要原因是( B )。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2.软件工程中描述生存周期的瀑布模型一般包括计划、( 需求分析)、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成(概要设计)和(详细设计)两步。
①需求分析②需求调查③可行性分析④问题定义⑤方案设计⑥代码设计⑦概要设计⑧数据设计⑨运行设计⑩3.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(程序、数据、文档)。
A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档4.在软件工程时期,决定软件质量的主要因素是( )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展5.下列哪个模型没有采用迭代的思想(A )A.瀑布模型 B.渐增模型C.螺旋模型 D.RUP模型6.下列关于瀑布模型的描述正确的是( D )A.利用瀑布模型,如果发现问题修改的代价很低B.瀑布模型的核心是按照软件开发的时间顺序将问题简化C.瀑布模型具有良好的灵活性D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开7.瀑布模型的关键不足在于(B )(A)过于简单(B)不能适应需求的动态变更(C)过于灵活(D)各个阶段需要进行评审8.瀑布模型把软件生存周期划分为软件定义、软件开发与(D )三个阶段,而每一阶段又可分为若干更小的阶段。
A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错二、判断题1.软件工程是指导计算机软件开发和维护的工程学科。
( )2.在软件工程时期,决定软件质量的主要因素是管理水平. ( )3.软件生存期是从软件项目需求定义直至软件开始使用为止。
()4.常用的软件生存周期模型有瀑布模型和结构化模型。
()5.瀑布模型是一种线形的、顺序的软件开发模型( )6.瀑布模型的关键不足在于不能适应需求的动态变更.( )7.快速原型模型是为了克服瀑布模型的缺点而提出来的。
软件工程练习题1-3习题(附答案)
软件工程练习题1-3习题(附答案).软件工程练习题(1-3章)一、单项选择题1. 软件危机具有下列表现()。
I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住III. 软件常常不可维护IV. 软件成本逐年上升A. I、II和IIIB. I、III和IVC. II、III和IVD. 以上都正确2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是()。
A. 运行和维护阶段B. 设计阶段C. 代码实现阶段D. 测试阶段3. 下列属于软件的特点的是()。
A. 软件是一种逻辑实体,具有抽象性B. 软件在使用过程中没有磨损、老化的问题C. 软件不同于一般程序,它的一个显著特点是规模庞大,复杂程度高D. 以上都正确4. 软件工程的出现是由于()。
A. 软件危机的出现B. 计算机硬件技术的发展C. 软件社会化的需要D. 计算机软件技术的发展5. 软件开发技术不包含()。
A. 软件开发方法学B. 软件工程环境C. 软件工具D. 软件质量度度量6 下列属于应用软件的是()。
I. 计算机辅助教学软件II. 软件测试工具III. 办公自动化软件IV. 工程与科学计算软件A. I、II和IIIB. I、III和IVC. II、III和IVD. 以上都正确7. 需求分析阶段最重要的技术文档是()。
A. 设计说明书B. 需求规格说明书C. 可行性分析报告D. 用户手册8. 以下关于数据流图的说法错误的是()。
A. 数据流图舍去了具体的物质,只剩下数据的流动、加工处理和存储B. 数据流图是用作结构化分析的一种工具C. 传统的数据流图中主要由加工、数据源点/终点、数据流、控制流、数据存储组成D. 数据流图的绘制采用自上向下、逐层分解的方法19. 数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是()。
A. 数据库设计B. 数据通信C. 数据定义D. 数据维护求10. 结构化方法的基本原则是()。
软件工程基础考试
软件工程基础考试(答案见尾页)一、选择题1. 软件工程的基础是什么?A. 程序设计B. 数据结构C. 计算机科学D. 需求分析2. 软件开发过程中,需求分析和系统设计的关系是什么?A. 需求分析是系统设计的依据B. 需求分析和系统设计同时进行C. 需求分析在系统设计之后进行D. 需求分析和系统设计没有必然联系3. 软件工程的三个层次及其在软件开发过程中的作用是什么?A. 应用层、系统层、理论层B. 物理层、数据层、逻辑层C. 需求层、设计层、实施层D. 开发层、测试层、维护层4. 软件开发生命周期(SDLC)的概念是什么?它包括哪几个阶段?A. 软件开发生命周期是指软件的开发过程B. SDLC包括需求分析、设计、编码、测试和维护C. SDLC是一个线性的过程D. SDLC各阶段按顺序进行,不具备迭代性5. 什么是敏捷开发方法?它与其他开发方法的区别是什么?A. 敏捷开发是一种快速开发的软件开发方法B. 敏捷开发强调团队合作和客户参与C. 敏捷开发适合大规模软件项目D. 敏捷开发与其他开发方法的区别在于流程管理6. 什么是面向对象编程(OOP)?请列举OOP的三个基本特征。
A. 封装、继承、多态B. 封装、继承、抽象C. 封装、多态、接口D. 继承、多态、接口7. 数据库管理系统(DBMS)在软件开发中的作用是什么?A. 存储和管理数据B. 提供数据查询和修改功能C. 数据库管理员(DBA)负责DBMS的管理和维护D. 所有选项都正确8. 什么是版本控制?请简述版本控制的两种主要策略。
A. 版本控制是一种软件配置管理技术B. 版本控制可以跟踪软件项目的变更C. 版本控制的主要策略有Git和SVND. 版本控制确保软件代码的安全性9. 什么是软件测试?它的目的和基本原则是什么?A. 软件测试是在软件投入运行后进行的活动B. 软件测试是为了发现软件中的错误和缺陷C. 软件测试的原则包括早期测试、缺陷倾向分布等D. 软件测试的目的是提高软件的质量和可靠性10. 什么是配置管理?它在软件开发中的作用是什么?A. 配置管理是指对软件配置项进行管理和控制的过程B. 配置管理可以确保软件配置的一致性和可追溯性C. 配置管理的主要活动包括配置标识、配置控制、配置审核等D. 配置管理有助于解决软件生命周期中的版本冲突问题11. 软件开发过程中,需求分析的主要任务是?A. 确定软件开发的功能B. 编写需求规格说明书C. 进行系统设计D. 进行程序设计12. 在软件开发中,迭代过程是为了更好地适应变化,它主要包括哪几个阶段?A. 需求分析B. 设计C. 编码D. 测试13. 软件工程中的“软件”指的是什么?A. 程序和数据B. 程序、数据和文档C. 程序和数据,可运行D. 程序、数据和用户手册14. 软件工程的发展历程中,第一个正式发布的软件开发标准是?A. ISO 9000B. CMMIC. PMBOKD.软件开发生命周期(SDLC)15. 在软件工程中,测试的目的是什么?A. 证明软件的正确性B. 找出软件中的错误C. 提高软件的质量D. 规范软件的开发过程16. 软件工程中的“软件生命周期”通常包括哪几个阶段?A. 开发B. 运行C. 维护17. 软件工程中,版本控制的主要作用是什么?A. 监控软件的修改历史B. 管理软件的版本C. 确保软件的一致性D. 保证软件的可靠性18. 软件工程中,敏捷开发方法是一种以人为核心、迭代、循序渐进的开发方法,它的核心价值包括:A. 个体和互动跨功能团队B. 可用的软件客户合作C. 响应变化随时间进化D. 面向结果19. 在软件工程中,UML(统一建模语言)是一种用于描述、构造和编写软件系统的图形化语言,它通常用于以下哪个阶段?A. 需求分析B. 设计C. 编码D. 测试20. 软件工程的定义是什么?A. 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。
软件工程试题集及答案
软件工程试题及答案第一部分选择题一、单项选择题每小题1分,共20分。
(在每小题的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内)1.在下列工具与环境中()属于较早期的CASE。
A.基于信息工程CASE B.人工智能CASEC.结构的基于图形CASE D.集成的CASE环境2.Putnam成本估算模型是一个()模型。
A.静态单变量 B.动态单变量 C.静态多变量 D.动态多变量3.在McCall软件质量度量模型中,()属于面向软件产品修改。
A.可靠性 B.可重用性C.适应性 D.可移植性4.ISO的软件质量评价模型由3层组成,其中用于评价设计质量的准则是()A.SQIC B.SQMC C.SQRC D.SQDC5.软件复杂性度量的参数包括()A.效率 B.规模 C.完整性 D.容错性6.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A.结合 B.隐藏C.封装 D.抽象7.软件调试技术包括()A.边界值分析 B.演绎法 C.循环覆盖 D.集成测试8.瀑布模型的存在问题是()A.用户容易参与开发B.缺乏灵活性 C.用户与开发者易沟通 D.适用可变需求9.软件测试方法中的静态测试方法之一为()A.计算机辅助静态分析 B.黑盒法 C.路径覆盖 D.边界值分析10.软件生命周期中所花费用最多的阶段是()A.详细设计 B.软件编码 C.软件测试D.软件维护11.第一个体现结构化编程思想的程序设计语言是()A.FORTRAN语言B.Pascal语言 C.C语言D.PL/1语言12.程序的三种基本控制结构是()A.过程、子程序和分程序B.顺序、选择和重复 C.递归、堆栈和队列 D.调用、返回和转移13.在详细设计阶段,经常采用的工具有()A.PAD B.SA C.SC D.DFD14.详细设计的结果基本决定了最终程序的()A.代码的规模 B.运行速度 C.质量 D.可维护性15.需求分析中开发人员要从用户那里了解()A.软件做什么 B.用户使用界面 C.输入的信息 D.软件的规模16.结构化程序设计主要强调的是()A.程序的规模 B.程序的效率C.程序设计语言的先进性D.程序易读性17.IDEF。
《软件工程》习题集
《软件工程》习题集赵绪辉渤海大学信息科学与工程学院2005年9月目录一软件与软件工程 (2)二软件项目管理 (4)三需求分析 (6)四面向对象的需求分析 (8)五软件设计 (11)六程序设计语言和编码 (13)七软件测试 (15)八软件维护 (17)综合试卷一 (18)综合试卷二 (21)综合试卷三 (24)附参考答案: (27)一软件与软件工程参考答案 (27)二软件工程管理参考答案 (29)三需求分析参考答案 (30)四面向对象的需求分析参考答案 (32)五软件设计参考答案 (37)六程序设计语言和编码参考答案 (39)七软件测试参考答案 (41)八软件维护参考答案 (43)综合试卷一参考答案及评分标准 (45)综合试卷二参考答案及评分标准 (47)综合试卷三参考答案及评分标准 (49)一软件与软件工程一、选择题1.软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3.包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4.软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5.下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7.软件开发方法的主要工作模型有()A、螺旋模型B、循环模型C、瀑布模型D、专家模型8.软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发。
B、克服软件危机。
C、作好软件开发的培训工作。
D、以较低的成本开发出高质量的软件。
二、判断题1.软件就是程序,编写软件就是编写程序。
软件工程基础习题
软件⼯程基础习题习题11. 简述计算机系统的开发流程。
2. 系统分析和定义是计算机系统开发过程中的关键步骤,这⼀步应该做哪些⼯作?3. 系统规格说明书主要应包含哪些内容?为什么要进⾏系统复审?4. 如何理解软件概念?简述软件有哪些分类⽅法?5. 软件的发展经历了哪⼏个阶段?简述各阶段名称及特点。
6. 查阅⽂献写⼀篇1000字的短⽂,综述软件⼯程的发展。
7. 什么是软件危机?主要有哪些表现?8. 查阅最新⽂献写⼀篇2000字的短⽂,综述软件危机在当今的表现以及造成的危害。
9. 什么是软件的⽣命周期?10. 软件⽣存期模型主要有哪些?给出名称及特点。
习题21. 软件计划的任务主要有哪些?2. 在软件计划阶段应该考虑哪三类资源?对软件开发中的每⼀类资源可以⽤哪些特征来描述?什么是时间窗⼝?可再⽤软件资源主要有⼏种?给出名称及简单解释。
3. 软件⽣命周期中各阶段⼈⼒资源如何安排才合理?4. 简述代码⾏技术的基本思想。
5. 指出下列公式中每个量的含义。
∑=-±=ni d a b L 12)6(6. 什么是40-20-40规则?7. 当采⽤敏捷开发过程时,如何进⾏项⽬估算? 8. 如何对Web ⼯程项⽬进⾏估算? 9. 简述任务分解技术的基本思想。
10. Halstead 理论模型的主要依据有哪些?给出⽤Halstead 理论模型估算成本的公式以及公式的推导过程,说出各个量的取值依据。
11. 估计某PASCAL 程序中n1=70,n2=60,N1=14300,N2=400,取S=12,W=20000,估算开发该软件的总成本。
12. 估计⼀个C 语⾔程序系统⼤约⼀万⾏,W 取30000元,估算开发该系统的成本。
13. 开发⼀个Organic 类型的软件,经分析有45000⾏源代码,试⽤基本COCOMO 模型估算所需⼯作量、⽣产率、开发时间及投⼊该项⽬的最佳⼈员数。
14. 利⽤题13得出的⼯作量E ,根据Esterling 模型估算当团队⼈数n 为8时的软件成本,若n 为12时,成本⼜当如何?15. ⽤2年的时间开发⼀个应⽤软件系统,估计代码⾏数为5万⾏,Ck 取10000,试计算所需⼯作量。
《软件工程基础》习题集
《软件工程基础》习题集第一章概述1.什么是软件危机,它有哪些典型表现?2.简述产生软件危机的原因和解决的思路。
3.什么是软件工程?它有哪些本质特性?4.软件工程是如何用来消除软件危机的?5.假设你是某软件开发企业的CEO,当你把教材P.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服?6.简述软件的定义。
7.软件工程的目的是什么?8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?9.简述软件工程的基本原理。
10.软件工程的基本开发原则有哪些?11.构成软件工程的基本元素有哪些?12.什么是软件过程?它与软件工程方法学有何关系?13.什么是软件生命周期?什么是软件生命周期模型?14.简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。
15.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用范围。
第二章可行性研究1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?2.应该从哪些方面研究目标系统的可行性?3.可行性研究有哪些工作步骤?4.简述系统流程图在可行性研究中的作用。
5.简述数据流图在可行性研究中的作用和用途。
6.简单描述数据字典但内容和定义数据的方法。
7.说明软件计划的内容和目标。
8.什么是软件范围?定义软件范围需要哪些信息?9.简述软件开发环境资源的三个层次。
10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义?11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?12.主要的成本估计技术有哪些?其依据的主要是什么?13.为什么说成本估计是不可能精准的?14.进行成本/效益分析的方法主要有哪些?15.软件计划的主要内容有哪些?16.如何对制定完成的软件计划进行复审?为什么要复审?17.为方便储户,某银行拟开发计算机储蓄系统。
软件工程习题集
软件工程练习题一、填空题1.软件生存周期一般可以划分为, 问题定义、可行性研究、需求分.、设计、编码、测试和运营与维护。
2.可行性研究, 应从经济可行性、技术可行性、运营可行性、法律可行性等方面研究。
3.数据流图的四种基本成分:数据输入的源点和数据输出汇点、加工、数据流和数据存储文献。
4.结构化分析方法是面向_数据.进行需求分析的方法。
5.结构化分析方法使.数据流图DF..数据字典DD来描述。
6.软件具体设计的重要任务是算法描述和数据结构的设计。
7.为了在软件开发过程中保证软件的质量, 重要采用下述措施:审查_、复查和管理复审、测试。
8.大型软件测试涉.单元测. 、集成测. 、确认测试.系统测.四个环节。
9. 在软件开发过程中要产生大量的信息,要进行大量的修改,软件配置管.能协调软件开发,并使混乱减到最低限度.10. McCall提出的软件质量模型涉及__13_个软件质量特性。
11. 软件可维护性度量的七个质量特性是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
12.为了便于对照检查, 测试用例应由输入数据和预期的输出结果两部分组成。
13.软件结构是以模块为基础而组成的一种控制层次结构。
14.在结构化分析中,用于描述加工逻辑的重要工具有三种,即: 结构化语言、鉴定表、鉴定树。
15.结构化语言是介于自然语言和形式语.之间的一种半形式语言。
16.系统流程图是描述物理模型的传统工具, 用图形符号表达系统中各个元素表达了系统中各种元素之间的信息流动情况。
17.CASE技术是软件工具和软件开发方法的结合。
18. 数据字典有四类条目, 分别是数据流、数据项、数据存储和基本加工。
19. 各种软件系统的数据流图一般可分为变换型和事务型两类。
20.软件可维护性可用七种质量特性来衡量,分别是可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。
21.面向对象分析中,动态模型使用状态图_作为描述工具,该图反映了状态与事件的关系。
软件工程基础考试
软件工程基础考试(答案见尾页)一、选择题1. 软件工程的基础是什么?A. 程序设计B. 数据结构C. 硬件D. 需求分析2. 软件开发过程中,需求分析的目的是什么?A. 确定软件开发的功能需求B. 规划软件的架构设计C. 编写代码D. 进行系统测试3. 在敏捷开发中,迭代周期通常是什么?A. 一周B. 一个月C. 一个季度D. 六个月4. 软件工程的五大基本质量特性包括:功能性、可靠性、易用性、效率、可维护性。
其中,易用性是指软件易于理解和使用的能力。
这一特性是由哪个因素决定的?A. 用户的经验B. 开发者的技术水平C. 用户的技能水平D. 软件的设计和实现5. 在软件开发中,版本控制是一种有效的管理手段,它可以跟踪文件的变更历史并协助开发者协作。
以下关于版本控制的描述,不正确的是:A. Git是一种广泛使用的版本控制系统B. 版本控制可以防止软件被非法复制C. 版本控制可以帮助开发者回滚到以前的版本D. 版本控制可以确保不同开发者的工作同步6. 在软件工程中,测试是为了发现错误而执行程序的过程。
以下关于软件测试的描述,不正确的是:A. 测试应该尽早开始,贯穿整个软件开发过程B. 回归测试是在软件修改后进行的,目的是验证之前的错误已经修复C. 集成测试是在软件的各个模块组装在一起后进行的测试D. 功能测试和性能测试是软件测试的两种类型7. 软件工程师在编写代码时需要遵循一些命名约定,以便其他开发者能够更容易地理解和维护代码。
以下关于软件工程师命名约定的描述,不正确的是:A. 变量名应该使用小写字母和下划线(例如:user_name)B. 常量名应该使用全大写字母和下划线(例如:MAX_VALUE)C. 函数名应该使用动词开头的小写字母(例如:get_data)D. 类名应该使用大驼峰命名法(例如:UserInformation)8. 在软件开发中,配置管理是一种用于控制软件开发和维护过程中的变更的过程。
软件工程基础考试题目和答案
软件工程基础考试题目和答案一、选择题(每题5分,共25分)1. 软件工程的主要目标是什么?A. 提高软件开发效率B. 确保软件质量C. 降低软件开发成本D. 提高软件的可维护性答案:B2. 下列哪个阶段不属于软件开发生命周期?A. 需求分析B. 设计C. 测试D. 需求变更答案:D3. 下列哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 面向过程编程答案:A4. 下列哪个工具主要用于软件项目进度监控?A. Gantt图B. 思维导图C. 帕累托图D. 直方图答案:A5. 下列哪种方法主要用于风险管理?A. 风险识别B. 风险评估C. 风险应对D. 风险监控答案:A二、填空题(每题5分,共25分)1. 软件工程的核心思想是______,通过规范的开发过程和严格的质量控制,提高软件的质量和可靠性。
答案:工程化2. 软件需求分析的主要目的是______,明确软件的功能和性能要求。
答案:理解用户需求3. 结构化分析方法主要包括______、数据流图、实体关系图等。
答案:数据字典4. 软件测试的主要目的是______,发现并修复软件中的缺陷。
答案:保证软件质量5. 敏捷开发方法的核心价值观是______,强调快速响应变化和客户合作。
答案:个体和互动三、简答题(每题10分,共30分)1. 请简要描述软件开发生命周期的主要阶段及其作用。
答案:软件开发生命周期主要包括需求分析、设计、编码、测试和维护等阶段。
需求分析阶段用于理解用户需求,设计阶段用于制定软件架构和详细设计,编码阶段用于实现软件功能,测试阶段用于发现并修复软件缺陷,维护阶段用于提供软件支持和更新。
2. 请简要介绍敏捷开发方法的主要特点和实践原则。
答案:敏捷开发方法主要包括个体和互动、工作软件、客户合作、响应变化等价值观。
实践原则包括短迭代周期、持续反馈、自我组织和协作等。
敏捷开发方法强调快速响应变化,提高软件质量和开发效率。
软件工程《软件工程》习题集
软件工程习题集第一章概述一、选择题1.“软件危机”产生的主要原因是( )。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件2.软件工程中描述生存周期的瀑布模型一般包括计划、( )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( )和( )两步。
①需求分析②需求调查③可行性分析④问题定义⑤方案设计⑥代码设计⑦概要设计⑧数据设计⑨运行设计⑩详细设计3.软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是()。
A.程序、数据 B.程序、文档 C.程序 D. 程序、数据、文档4.在软件工程时期,决定软件质量的主要因素是( )A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展5.下列哪个模型没有采用迭代的思想()A.瀑布模型 B.渐增模型C.螺旋模型 D.RUP模型6.下列关于瀑布模型的描述正确的是( )A.利用瀑布模型,如果发现问题修改的代价很低B.瀑布模型的核心是按照软件开发的时间顺序将问题简化C.瀑布模型具有良好的灵活性D.瀑布模型采用结构化的分析与设计方法,将逻辑实现与物理实现分开7.瀑布模型的关键不足在于()(A)过于简单(B)不能适应需求的动态变更(C)过于灵活(D)各个阶段需要进行评审8.瀑布模型把软件生存周期划分为软件定义、软件开发与()三个阶段,而每一阶段又可分为若干更小的阶段。
A. 详细设计B. 可行性分析C. 运行及维护D. 测试与排错二、判断题1.软件工程是指导计算机软件开发和维护的工程学科。
( )2.在软件工程时期,决定软件质量的主要因素是管理水平. ( )3.软件生存期是从软件项目需求定义直至软件开始使用为止。
()4.常用的软件生存周期模型有瀑布模型和结构化模型。
()5.瀑布模型是一种线形的、顺序的软件开发模型( )6.瀑布模型的关键不足在于不能适应需求的动态变更.( )7.快速原型模型是为了克服瀑布模型的缺点而提出来的。
(完整word版)软件工程习题集+答案
《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (28)综合试卷三 (31)附参考答案: (34)一软件与软件工程参考答案 (34)二软件工程管理参考答案 (37)三需求分析参考答案 (39)四面向对象的需求分析参考答案 (43)五软件设计参考答案 (52)六程序设计语言和编码参考答案 (55)七软件测试参考答案 (59)八软件维护参考答案 (62)综合试卷一参考答案及评分标准 (65)综合试卷二参考答案及评分标准 (68)综合试卷三参考答案及评分标准 (71)一软件与软件工程一、选择题1.软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3.包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4.软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5.下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7.软件开发方法的主要工作模型有()A、螺旋模型B、循环模型C、瀑布模型D、专家模型8.软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发。
B、克服软件危机。
C、作好软件开发的培训工作。
D、以较低的成本开发出高质量的软件。
二、判断题1.软件就是程序,编写软件就是编写程序。
2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
软件基础题库(全)
第一章软件工程1、填空1)软件包含_________以及开发、使用和维护程序需要的所有文档。
(程序)2)为了解决软件危机问题,在1968年北大西洋公约组织会议上提出了_________这个名词。
(软件工程)3)软件工程的传统途径是________方法学。
(生命周期)4)软件生命周期方法把软件开发划分为3个大阶段,软件开发,____________,淘汰。
(软件维护)5)瀑布模型从_________角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周期划分为各个阶段。
(时间)6)软件开发中经常使用__________法,使用户通过实践获得关于未来的系统如何工作的更直接具体的概念,它类似于工程产品的开发中使用样机的思想。
(快速原型法)7)__________综合了生命周期模型和原型模型的特点,同时增加了风险分析环节来弥补两者的不足。
(螺旋开发模式)8)OOA是__________________的缩写。
(面向对象分析)9)_________(组件)是一种能够提供某种服务的自包含的软件模块,它封装了一定的数据(属性)和方法,并提供特定的接口,开发人员利用这一特定的接口来使用组件,并使其与其它组件交互通讯,以此来构造应用程序。
10)生命周期法中,问题定义阶段主要要搞清楚的是:_____________________。
(系统要解决的关键问题是什么)11)可行性研究的目的就是用最小的代价在尽可能短的时间内确定________________。
(问题是否可以解决)12)____________和数据字典是描述数据系统逻辑模型的有力工具。
(数据流图)13)ER模型包含“实体”、“联系”和_______等三个基本成分。
(属性)14)系统设计阶段的目标是把系统分析阶段确定的逻辑模型向________模型转化。
(物理)15)是将需求分析阶段获得的系统功能规格说明书转换成具体的计算机可实现的目标系统的一个过程,是软件开发设计的第一个阶段。
软件工程基础习题(含答案)
软件工程基础习题(含答案)第三章软件工程重点:需求分析、概要设计、详细设计、软件测试和软件调试的作用、方法等一、软件工程基本概念软件定义与软件特点1. 软件是计算机系统中与硬件相互依存的重要部分,包括程序、数据及相关的文档。
其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。
2. 下列叙述中,正确的是( d )。
A)软件就是程序清单 B)软件就是存放在计算机中的文件C)软件应包括程序清单及运行结果 D)软件包括程序和文档3. 软件按功能可以分为:应用软件(office)、系统软件(操作系统)、支撑软件(或工具软件)--需求分析工具软件危机与软件工程 61页4. 软件工程的出现是由于( c )A)程序设计方法学的影响 B)软件产业化的需要C)软件危机的出现 D)计算机的发展5. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( b )A)软件投机 B)软件危机 C)软件工程 D)软件产生说明:软件工程概念的出现源自软件危机。
所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
总之,可以将软件危机归结为成本、质量、生产率等问题。
6. 开发大型软件时,产生困难的根本原因是( a )。
A)大型系统的复杂性B)人员知识不足C)客观世界千变万化D)时间紧、任务重7. 软件危机出现于20世纪60年代末,为了解决软件危机,人们提出了软件工程学的原理来设计软件这就是软件工程诞生的基础。
8. 下列不属于软件工程的3个要素的是( d )A)工具 B)过程 C)方法 D)环境软件工程过程与软件生命周期 63页9. 软件工程过程(定义)是把输入转化为输出的一组彼此相关的资源和活动。
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期10. 软件生命周期中所花费用最多的阶段是(d)A)详细设计 B)软件编码 C)软件测试 D)软件维护11. 软件开发的结构化生命周期方法将软件生命周期划分成( a )。
软件工程基础知识试题及
软件工程基础知识试题及答案解析软件工程基础知识试题及答案解析第一节:单项选择题1. 以下哪个不是软件工程的关键活动?A. 需求分析与规格说明B. 设计与实现C. 维护与更新D. 市场分析与调研答案:D解析:软件工程的关键活动包括需求分析与规格说明、设计与实现、维护与更新等,市场分析与调研是软件工程的前期准备活动,不属于关键活动。
2. 下列哪个不是软件测试的基本原则?A. 测试应该尽可能早地开始B. 测试应该尽可能晚地结束C. 测试应该覆盖尽可能多的场景D. 测试应该定期进行答案:B解析:软件测试的基本原则包括测试应该尽可能早地开始、测试应该覆盖尽可能多的场景、测试应该定期进行等,测试应该尽可能晚地结束不符合软件测试的基本原则。
3. 下面哪个不是软件需求的特点?A. 可变性B. 不精确性C. 差异性D. 一致性答案:D解析:软件需求的特点包括可变性、不精确性、差异性等,一致性不属于软件需求的特点。
4. 下列哪个不是软件开发生命周期模型?A. 瀑布模型B. 增量模型C. 敏捷模型D. 螺旋模型答案:C解析:软件开发生命周期模型包括瀑布模型、增量模型、螺旋模型等,敏捷模型不属于软件开发生命周期模型。
5. 下列哪个不是软件缺陷的分类?A. 语法错误B. 逻辑错误C. 界面错误D. 运行时错误答案:C解析:软件缺陷的分类包括语法错误、逻辑错误、运行时错误等,界面错误不属于软件缺陷的分类。
第二节:简答题1. 简要说明软件工程的定义和特点。
答:软件工程是研究和应用一种用工程化的方法开发和维护软件的学科。
软件工程的特点包括:复杂性、可变性、不可见性、不可测性等。
复杂性指的是软件系统往往由多个模块组成、包含大量的代码和数据,并且相互之间存在复杂的关系;可变性指的是软件系统的需求和规格常常会发生变化;不可见性指的是软件系统是不存在于物理空间中的,只能通过人机交互的方式来感知;不可测性指的是软件系统的行为和性能往往难以预测和估计。
软件工程基础知识考试
软件工程基础知识考试(答案见尾页)一、选择题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. 评估项目风险6. 在软件工程中,什么是版本控制?A. 一种文件管理技术,用于跟踪软件的变更历史B. 一种软件开发方法论C. 一种编程语言D. 一种数据库管理技术7. 软件测试的目的是什么?A. 发现软件中的错误和缺陷B. 评估软件的性能C. 确保软件符合用户需求D. 提高软件的质量8. 在敏捷开发中,迭代周期通常有多长?A. 1周B. 2周C. 3周D. 4周9. 在软件工程中,什么是配置管理?A. 管理软件配置项的过程B. 软件开发过程中的一个活动C. 与软件开发和维护相关的所有活动的集合D. 软件开发完成后进行的活动10. 软件工程的定义是什么?A. 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。
B. 软件工程关注软件的开发、测试、维护和项目管理。
C. 软件工程的目标是实现软件的自动化开发。
D. 软件工程是一种实践性知识,不依赖于特定的工具或技术。
11. 软件开发过程中通常使用的模型有哪些?A. 瀑布模型B. 迭代模型C. 螺旋模型D. 面向服务的模型12. 什么是需求分析?它在软件开发过程中的作用是什么?A. 需求分析是识别和分析软件系统需要满足的条件或功能的过程。
B. 需求分析在软件开发过程中确保最终产品满足用户需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程基础》习题集第一章概述1.什么是软件危机,它有哪些典型表现?2.简述产生软件危机的原因和解决的思路。
3.什么是软件工程?它有哪些本质特性?4.软件工程是如何用来消除软件危机的?5.假设你是某软件开发企业的CEO,当你把教材P.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服?6.简述软件的定义。
7.软件工程的目的是什么?8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?9.简述软件工程的基本原理。
10.软件工程的基本开发原则有哪些?11.构成软件工程的基本元素有哪些?12.什么是软件过程?它与软件工程方法学有何关系?13.什么是软件生命周期?什么是软件生命周期模型?14.简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。
15.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用范围。
第二章可行性研究1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?2.应该从哪些方面研究目标系统的可行性?3.可行性研究有哪些工作步骤?4.简述系统流程图在可行性研究中的作用。
5.简述数据流图在可行性研究中的作用和用途。
6.简单描述数据字典但内容和定义数据的方法。
7.说明软件计划的内容和目标。
8.什么是软件范围?定义软件范围需要哪些信息?9.简述软件开发环境资源的三个层次。
10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义?11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?12.主要的成本估计技术有哪些?其依据的主要是什么?13.为什么说成本估计是不可能精准的?14.进行成本/效益分析的方法主要有哪些?15.软件计划的主要内容有哪些?16.如何对制定完成的软件计划进行复审?为什么要复审?17.为方便储户,某银行拟开发计算机储蓄系统。
储户填写的存款单或取款单由业务员键入系统。
如果是存款,系统记录存款人的姓名、地址、存款类型、存款日期、存款数量和利率等信息,并印出存款单给储户;如果是取款,系统计算利息并印出利息清单给储户。
请写出问题定义并分析此系统的可行性。
第三章需求分析1.为什么要进行需求分析?通常对软件系统有哪些需求?2.怎样与用户有效地沟通,以获得用户的真实需求?3.需求分析的任务是什么?4.通常系统的需求可以分为哪几个层次?5.进行需求分析的步骤有哪些?6.简述建立原型模型对软件需求分析的作用。
7.解释实体-联系图及其用途。
8.说明为什么需要进行需求验证及验证的步骤有哪些?9.银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务人员键入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
请用数据流图描绘本系统的功能,并用实体-联系图描绘系统中的数据对象。
1.为每种类型的模块耦合举一个具体的例子。
2.为每种类型的模块内聚举一个具体的例子。
3.简单说明系统总体设计的步骤步骤。
4.举例说明模块化原理的经验1和经验2。
5.为什么要尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,完全不用内容耦合?6.为什么模块的规模要适中?7.请说明为什么模块控制的宽度和深度要适度。
8.简述面向数据流设计方法的基本思想。
9.常用数据流类型有哪些?10.面向数据流的设计方法主要有哪几个步骤?11.用面向数据流的方法设计第二章习题17系统的软件结构。
1.详细设计的任务是什么?2.在对系统做详细设计时,应遵循哪些原则?3.简述结构化设计的特点。
4.结构化程序设计中有哪几种基本控制结构?分别描绘在程序流程图、盒图和PDA图中这些基本控制的图例。
5.假设只有SEQUENCE和DO_WHILE两种控制结构,请问应该如何完成IF_THEN_ELSE 操作?6.假设只有SEQUENCE和IF_THEN_ELSE两种控制结构,请问应该如何完成DO_WHILE 操作?7.试说明ISO为什么要建议停止使用程序流程图,而推荐使用PDA图?8.请画出下列伪码程序的程序流程图、盒图和PDA图。
STARTIF p THENWHILE q DOfEND DOELSEBLOCKgnEND BLOCKEND IFSTOP9.试说明Jackson方法是一种怎么样的程序设计方法。
它有哪些工作步骤?10.请将教材P.124图6.13统计空格程序的Jackson图改画成为等价的盒图和PDA图。
11.人机对话由操作员信息和系统信息交替组成。
假设一段对话总是由操作员信息开始,以系统信息结束,请用Jackson图描绘这样的一段人机对话过程。
1.说明什么是程序编码?为什么程序设计语言的特点和编码风格会影响到程序的可靠性、可读性、可测试性和可维护性?2.用户界面设计的最一般原则,即所谓“黄金规则”是什么?3.软件界面设计包含了哪几个方面的基本内容?4.用户界面提供系统服务的方式通常有哪两种?5.WIMP界面是屏幕菜单驱动用户界面的一种形式,其设计准则有哪些?6.为什么说软件界面设计的质量会直接影响到用户对软件产品的评价?7.什么是系统响应时间?系统响应时间有哪些重要属性?8.在设计软件系统的用户帮助设施时,需要注意解决哪些问题?9.软件出错处理设计,即软件安全性设计。
一个交互式出错处理程序应该具备哪些功能和属性?10.测试的最基本目标是什么?11.软件测试的原则有哪些?12.软件测试的方法有哪几种?13.简单说明什么是白盒测试,什么是黑盒测试。
14.简述软件测试的步骤。
15.举例说明通常情况下穷尽测试是不可能的。
16.为什么单元测试必须由编程者自己完成?17.单元测试的主要手段有哪些?18.单元测试主要从哪5个方面进行?19.为什么人工代码审查十分重要?20.集成测试主要有渐增式测试、非渐增式测试两种,试述两种方式的异同点。
21.描述集成测试的两种策略,并比较它们的优缺点。
22.什么是回归测试?回归测试的测试用例集如何确定?23.什么是确认测试?确认测试的任务是什么?如何确认其范围?24.设计测试方案的任务有哪些?25.什么是逻辑覆盖测试法?它主要用于什么测试?26.什么是等价划分法?它主要用于什么测试?27.什么是边值分析法?它主要用于什么测试?28.什么是错误推测法?它主要用于什么测试?29.一个软件的测试策略应该是怎样的?30.什么是调试?调试和测试有什么不同?31.简单说明调试的方法和策略。
32.什么是软件的可靠性、可用性和正确性?1.什么是软件维护?2.软件维护有哪几种类型?3.为什么说软件文档维护和代码维护同样重要?4.为什么说维护的代价很高?应该怎样做才能降低维护的代价?5.导致维护成本高企的原因主要有哪些?6.什么是软件的可维护性?7.如何提高软件的可维护性?8.维护报告的主要内容有哪些?9.为什么说文档是影响软件可维护性的决定因素?10.什么是软件的系统文档?11.什么是软件的用户文档?12.什么是可重用性?如何通过提高软件的可重用性来提高软件的可维护性?13.为什么要进行软件可维护性复审?14.什么是软件的逆向工程和再工程?15.逆向工程与再工程与软件的预防性维护有什么样的关系?16.假设你的任务是对一个已有软件进行重大修改,而且只允许你从以下文档中选取两份:(a)程序的规格说明;(b)程序的详细设计结果(自然语言描述加上某种设计工具表示);(b)源程序清单(其中有适当数量的注解)。
你将选取哪两份文档?为什么这样选取?你打算如何完成这个任务?17.分析预测在第二章习题17的储蓄系统交付使用后,用户可能提出哪些改进或扩充功能的要求。
如果由你来开发该系统,你在设计时会采取哪些措施,以方便交付后的修改?第八章面向对象方法学引论1.为什么要引入面向对象方法学?2.面向对象方法学有哪4个基本要素?3.面向对象方法学的优点主要有哪些?4.什么是“对象”?它与传统数据有何不同?5.什么是“类”?6.什么是“继承”?7.什么是模型?软件开发为什么要建立模型?8.什么是对象模型?建立对象模型时主要使用哪些图形符号?这些符号的含义是什么?9.什么是动态模型?建立动态模型时主要使用哪些图形符号?这些符号的含义是什么?10.什么是功能模型?建立功能模型时主要使用哪些图形符号?11.试用面向对象的观点分析、研究第二章习题17的储蓄系统的例子。
在这个例子中,有哪些类?试建立它的对象模型。
1.进行面向对象分析的基本过程是怎么样的?2.建立对象模型有哪几个步骤?3.复杂问题的对象模型有哪5个层次?4.建立动态模型的步骤有哪些?5.如何建立功能模型?6.用面向对象方法分析第二章习题17中描述的储蓄系统,试建立它的对象模型、动态模型和功能模型。
1.面向对象设计应该遵循哪些准则?简述每条准则的内容,并说明遵循该条准则的必要性。
2.简述有助于提高面向对象设计质量的每条主要启发式规则的内容和必要性。
3.为什么说类构件是目前较为理想的可重用软构件?它有哪些重用方式?4.什么是继承耦合?5.如何计算软件重用带来的净成本节省?6.试用面向对象的方法设计第二章习题17中描述的储蓄系统。
第十一章面向对象实现1.面向对象实现应该选用哪种程序设计语言?为什么?2.面向对象程序设计语言主要有哪些技术特点?3.选择面向对象程序设计语言时主要应该考虑哪些因素?4.良好的面向对象程序设计风格主要有哪些准则?5.测试面向对象软件时,单元测试、集成测试和确认测试各有哪些新特点?6.测试面向对象软件时,主要有哪些设计单元测试用例的方法?7.测试面向对象软件时,主要有哪些设计集成测试用例的方法?8.测试面向对象软件时,主要有哪些设计确认测试用例的方法?第十二章项目管理1.请简单描述有哪些进行软件规模估算的方法。
2.在工作量估算技术中,动态多变量模型比静态单变量模型有哪些优点?3.简述Gantt图的用途和优缺点。
4.简述关键路径法CPM工作步骤5.目前项目开发时常用的小组组织方法有哪些?6.简述主程序员组的优缺点。
7.什么是软件质量?8.软件质量保证的措施主要有哪些?9.参加软件质量保证活动的人员有哪两类?10.简述技术复审的必要性。
11.什么是软件能力成熟度模型?其基本思想是什么?12.简述软件能力成熟度模型的5个等级。