《软件工程基础》习题集
软件工程基础习题及答案

软件工程基础习题及答案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) 软件工程的出现是由于______。
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. 软件系统功能(9) 需求分析中,开发人员要从用户那里了解______。
A)软件做什么B)用户使用界面C)输入的信息D)软件的规模(10) 软件生命周期中所花费用最多的阶段是______。
A)详细设计B)软件编码C)软件测试D)软件维护(11) 软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及______。
A. 阶段性报告B. 需求评审C. 总结D. 都不正确(12) 下面不属于软件工程的3个要素的是______。
A. 工具B. 过程C. 方法D. 环境(13) 下面不属于软件设计原则的是______。
A. 抽象B. 模块化C. 自底向上D. 信息隐蔽(16) 为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为______。
软件工程基础考试

软件工程基础考试(答案见尾页)一、选择题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. 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。
《软件工程练习题及参考答案》

《软件工程练习题及参考答案》一、单向选择题(四选一、每小题3分,共18分)1、面向对象(Object Oriented)方法是将现实世界的事物以对象的方式(B )到计算机世界的方法。
对应映射反映反射2、盒图也称为(D)或Chapin图。
这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
流程图框图判定表N-S图3、面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的(A)结构。
程序数据逻辑物理4、人机界面的风格大致经过了(B)代的演变。
三四五六5、以下不属于白盒测试技术的是(D)逻辑覆盖基本路径测试循环覆盖测试等价类划分6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。
纠错性维护适应性维护改善性维护预防性维护二、填空题(每空2分,共18分)1.文档—一种数据媒体和其上所记录的(数据)。
2.机器语言、汇编语言:依赖于机器,面向(机器)3.软件有效性,指软件系统的时间和(空间)效率。
4.软件定义过程可通过软件系统的(可行性研究)和需求分析两个阶段来完成。
5.软件定义的基本任务是确定软件系统的工程(需求),也就是要搞清“做什么”。
6.为了使用户需求逐步精细化、完全化、一致化,通常采用(需求建模技术)。
04027.一个软件的深度是指其控制的(层数)。
8.以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算机可以理解并最终可运行的代码的过程叫(编码)过程。
9.软件维护是软件生命周期的(最后)一个阶段。
三、判断题(每小题2分,共24分,错误打X、正确打√)1.缺乏有力的方法学的指导和有效的开发工具的支持,这往往是产生软件危机的原因之一。
(√)2.一个好的开发人员应具备的素质和能力不包括具有良好的书面和口头表达能力。
(X)3.在用户需求分析时观察用户手工操作过程不是为了模拟手工操作过程,而是为了获取第一手资料,并从中提取出有价值的需求。
(√)4.快速原型技术的适用于软件产品要求大量的用户交互、或产生大量的可视输出、或设计一些复杂的算法等场合。
(完整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.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
软件工程基础习题

软件⼯程基础习题习题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.“软件危机〞产生的主要原因是()。
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.快速原型模型是为了克服瀑布模型的缺点而提出来的。
软件工程习题集

软件工程练习题一、填空题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.面向对象分析中,动态模型使用状态图_作为描述工具,该图反映了状态与事件的关系。
软件工程基础考试试题

软件工程基础考试试题一、单选题(每题2分,共20分)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. PERT/CPMC. UMLD. 敏捷开发8. 在软件测试中,下列哪种测试方法是通过测试人员的随机操作来检验软件系统的可靠性:A. 黑盒测试B. 白盒测试C. 灰盒测试D. 增量测试9. 软件工程的核心原则包括:A. 模块化B. 重用C. 抽象D. 以上答案都正确10. 软件工程的关键技术包括:A. 需求分析和规格说明B. 概要设计和详细设计C. 编码和调试D. 以上答案都正确二、填空题(每题2分,共20分)1. 软件开发生命周期包括需求分析、设计、编码、测试、____和维护。
2. 软件需求分析的目标是明确软件的功能、性能和____。
3. 软件测试的基本原则之一是:测试应该完全独立于____。
4. 软件工程中常用的项目管理方法之一是____,用于确定最短的完成项目所需时间。
软件工程基础考试题目和答案

软件工程基础考试题目和答案一、选择题(每题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、填空1)软件包含_________以及开发、使用和维护程序需要的所有文档。
(程序)2)为了解决软件危机问题,在1968年北大西洋公约组织会议上提出了_________这个名词。
(软件工程)3)软件工程的传统途径是________方法学。
(生命周期)4)软件生命周期方法把软件开发划分为3个大阶段,软件开发,____________,淘汰。
(软件维护)5)瀑布模型从_________角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周期划分为各个阶段。
(时间)6)软件开发中经常使用__________法,使用户通过实践获得关于未来的系统如何工作的更直接具体的概念,它类似于工程产品的开发中使用样机的思想。
(快速原型法)7)__________综合了生命周期模型和原型模型的特点,同时增加了风险分析环节来弥补两者的不足。
(螺旋开发模式)8)OOA是__________________的缩写。
(面向对象分析)9)_________(组件)是一种能够提供某种服务的自包含的软件模块,它封装了一定的数据(属性)和方法,并提供特定的接口,开发人员利用这一特定的接口来使用组件,并使其与其它组件交互通讯,以此来构造应用程序。
10)生命周期法中,问题定义阶段主要要搞清楚的是:_____________________。
(系统要解决的关键问题是什么)11)可行性研究的目的就是用最小的代价在尽可能短的时间内确定________________。
(问题是否可以解决)12)____________和数据字典是描述数据系统逻辑模型的有力工具。
(数据流图)13)ER模型包含“实体”、“联系”和_______等三个基本成分。
(属性)14)系统设计阶段的目标是把系统分析阶段确定的逻辑模型向________模型转化。
(物理)15)是将需求分析阶段获得的系统功能规格说明书转换成具体的计算机可实现的目标系统的一个过程,是软件开发设计的第一个阶段。
软件工程基础知识试题及

软件工程基础知识试题及答案解析软件工程基础知识试题及答案解析第一节:单项选择题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. 软件文档是()。
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. 需求分析B. 概要设计C. 综合测试D. 确认测试(二)填空题1. 在信息处理和计算机领域内,一般认为软件是、和。
2. 软件生产的发展经历了时代、时代和时代,各时代的生产方式分别是、和。
3. 软件危机是在软件发展第阶段末期,随着第代计算机的诞生而产生的。
4. 文档一般可分为面向的文档、面向的文档、面向的文档和面向的文档。
5. 国家标准“计算机软件开发规范”中,把软件生存周期划分为8个阶段,即、、、、、、和。
6. 螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内分为、、和四个步骤。
7. 软件工程过程包含的7个过程是、、、、、和。
8. 软件工程面临的问题有、、、。
9. 结构化方法包括结构化方法、结构化方法和结构化程序设计方法。
它是一种面向的开发方法,其实质就是分解。
10. 面向对象方法学把客观世界的事物或实体都看成对象,把对象作为分析设计的元素,把所有对象都划分成对象类,类可以派生和。
(三)简答题1. 软件产品的特点是什么?2. 软件生产的发展经历了哪几个时代?各有何特征?3. 软件危机是怎样产生的?其表现形式是什么?说明产生软件危机的原因。
软件工程基础(复习题及答案)

软件⼯程基础(复习题及答案)复习题⼀、判断题(每题2分,共30分)1.螺旋模型是在瀑布模型和增量模型的基础上增加了风险分析活动。
(对)2.数据字典是对数据流图中的数据流,加⼯、数据存储、数据的源和终点进⾏详细定义。
(错)语⾔编译器是⼀个CASE⼯具。
(对)。
4.软件是指⽤程序设计语⾔(如PASCAL ,C,VISUAL BASIC 等)编写的程序,软件开发实际上就是编写程序代码。
(错)5.软件模块之间的耦合性越弱越好。
(对)6.数据库设计说明书是⼀个软件配置项(对)7.在⾯向对象的软件开发⽅法中,每个类都存在其相应的对象,类是对象的实例,对象是⽣成类的模板。
(错)8.过程描述语⾔可以⽤于描述软件的系统结构。
(错)9.如果通过软件测试没有发现错误,则说明软件是正确的。
(错)10.快速原型模型可以有效地适应⽤户需求的动态变化。
(对)11.模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到⾼内聚,低耦合度的软件产品。
(对)12.集成测试主要由⽤户来完成。
(错)13.确认测试计划应该在可⾏性研究阶段制定(错)14.⽩盒测试⽆需考虑模块内部的执⾏过程和程序结构,只要了解模块的功能即可。
(错)15.软件概要设计包括软件系统结构设计以及数据结构和数据库设计。
(对)16.在可⾏性研究中最难决断和最关键的问题是经济可⾏性。
(╳)17.耦合是指⼀个模块内各个元素彼此结合的紧密程度。
(╳)18. ⼀笔交易、⼀个动作、甚⾄操作⼈员按⼀个按钮都可以看做是⼀次事物。
(√)19.概要设计阶段完成的主要⽂档是概要设计说明书。
(√)20.过⼤的模块可能是由于分解不充分造成的,即使降低模块独⽴性也必须继续分解。
(╳)21.程序设计语⾔中应绝对禁⽌使⽤GOTO语句。
(╳)22.类是关于对象性质的描述,由⽅法和数据组成。
(√)23.随着软件技术的发展,⼈们逐渐认识到编码不仅要强调效率还要强调清晰。
(√)25.为保证程序的安全,必须做到程序中没有任何错误存在,即容错。
- 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个等级。