软件工程师面试题及答案在当今科技飞速发展的时代,软件工程师成为了备受追捧的职业之一。
而在求职过程中,面试是至关重要的环节。
以下为您呈现一些常见的软件工程师面试题及答案,希望能对您有所帮助。
一、技术类问题1、请简要介绍一下面向对象编程(OOP)的三大特性,以及它们在实际开发中的应用。
答案:面向对象编程的三大特性是封装、继承和多态。
封装是将数据和操作数据的方法封装在一个类中,以实现数据的隐藏和保护,提高代码的安全性和可维护性。
继承允许创建一个新类,从现有类继承属性和方法,实现代码的复用和扩展。
比如,从“Employee”类继承创建“Manager”类。
多态使得同一个方法在不同的对象中有不同的实现方式,增强了程序的灵活性。
比如,在一个图形绘制程序中,不同的图形类(如圆形、方形)都实现了“draw”方法,但具体的绘制方式不同。
2、谈谈你对数据库索引的理解,以及在什么情况下应该使用索引,什么情况下不应该使用?答案:数据库索引是一种用于提高数据检索速度的数据结构。
它类似于书籍的目录,通过索引可以快速定位到所需的数据。
在经常用于查询、连接和排序的列上应该使用索引,比如主键、外键、经常用于搜索的字段等。
然而,在数据量小的表、频繁更新的列、数据分布不均匀的列上不应该使用索引,因为创建和维护索引会带来额外的开销,可能会降低数据插入、更新和删除的性能。
3、解释一下什么是线程安全,以及如何实现线程安全?答案:线程安全是指多个线程同时访问和操作同一共享资源时,程序的执行结果是正确的,不会出现数据不一致或其他异常情况。
实现线程安全的方法有多种,比如使用同步关键字(如synchronized)来锁定关键代码段,确保同一时刻只有一个线程能够访问共享资源;使用线程安全的集合类(如ConcurrentHashMap)替代非线程安全的集合类;避免共享可变状态,尽量使用不可变对象等。
软件程考试试题(含答案)、填空题(每空1分,共25分)1.软件存周期般可以划分为,问题定义、____________、____________、设计、编码、测试和____________。
2.基于软件的功能划分,软件可以划分成__________、__________、__________三种。
3.可性研究,应从、技术可性、运可性、和开放案可性等研究。
4.系统流程图是描绘的传统具。
它的基本思想是图形符号以描绘系统的每个部件。
5.数据流图的基本四种成分:数据输的源点和数据输出汇点、、和。
6.结构化分析法是向________________进需求分析的法。
结构化分析法使________________与________________来描述。
7.是动地共享类、类和对象中的法和数据的机制。
8.软件详细设计具可分为3类,即________________、________________和________________。
9.为了在软件开发过程中保证软件的质量,主要采取下述措施:________________、复查和管理复审、________________。
10.型软件测试包括、、确认测试和四个步骤。
1、可性研究需求分析运与维护2、系统软件撑软件应软件3、经济可性法律可性4、物理系统盒形式5、加数据流数据存储件6、数据流数据流图DFD数据字典DD7、继承性8、图具、设计语表格具9、审查测试10、单元测试集成测试系统测试、单项选择题(每题2分,共20分)12345CCCAC678910DDACB1.软件设计中划分模块的个准则是()。
A、低内聚低耦合B、低内聚耦合C、内聚低耦合D、内聚耦合2.Jackson设计法是由英国的M.Jackson提出的,它是种向()的软件设计法。
软件工程师岗位面试题及答案1.请介绍一次您在团队中解决复杂技术问题的经历。
答案:在上一家公司,我们遇到了一个性能瓶颈问题,导致应用程序响应变慢。
通过分析代码,我发现了数据库查询优化的机会。
2.请谈谈您在版本控制系统中的经验,以及您如何处理合并冲突。
答案:我熟悉Git,并且经常使用分支进行开发。
当出现合并冲突时,我会首先理解冲突的本质,然后与团队成员讨论解决方案。
我们会在测试环境中验证修改,确保没有引入新问题。
3.在敏捷开发中,您如何确保团队按时交付功能?答案:我在敏捷开发团队中担任过ScrumMaster角色。
我会协助制定冲刺目标,跟踪任务的进度,及时解决障碍,并确保团队保持高效沟通,以确保按时交付。
4.您如何保证代码质量和可维护性?答案:我重视代码审查和单元测试。
代码审查可以发现潜在问题并提供改进建议,而单元测试可以确保代码的正确性。
我还注重编写清晰的文档,以便将来维护和扩展代码。
5.请描述一个您在项目中使用设计模式解决问题的实例。
答案:在一个电子商务项目中,我们需要实现不同支付方式的接口,以支持多种支付方式。
我采用了策略模式,将每种支付方式封装为一个独立的类,并在运行时动态选择合适的支付策略。
6.如何处理一个需求变更,该变更可能对项目进度产生影响?答案:首先,我会与产品经理和团队讨论变更的紧急性和影响。
如果变更必要且合理,我们将评估其对进度的影响,并相应地进行调整,可能会重新分配资源或者调整冲刺计划。
7.您在持续集成和持续交付方面有何经验?答案:我在多个项目中使用Jenkins进行持续集成和交付。
我设置了自动化构建和测试流程,并确保每次提交都会触发构建和测试,从而及早发现问题并快速修复。
8.请说明您在保障应用程序安全性方面的做法。
答案:我会定期进行安全漏洞扫描和代码审查,确保代码没有潜在的安全隐患。
答案:正确2.“高内聚低耦合”是软件工程中的重要原则,指的是模块之间的独立性和模块之间的依赖程度。
答案:正确3.软件需求分析是软件开发过程中的最后一步,最终确定软件系统的功能和性能。
答案:错误三、简答题1.什么是软件工程?答:软件工程是一门工程学科,通过系统化的、规范化的方法对软件进行开发、运行和维护。
它涉及软件开发的各个阶段,包括需求分析、设计、编码、测试和维护等,并注重管理和团队合作,以提高软件质量、降低开发成本和加快开发进度。
2.软件测试的目的是什么?答:软件测试的目的是发现软件中的错误和缺陷,验证软件是否满足用户需求,并评估软件的质量。
通过测试,可以提高软件的可靠性和稳定性,减少软件在使用过程中的风险。
3.请简述软件开发生命周期中的各个阶段。
答:软件开发生命周期包括需求分析、设计、编码、测试和维护等阶段。
-需求分析阶段:确定软件系统的功能、性能和约束条件,明确用户需求。
-设计阶段:根据需求分析结果设计软件系统的结构和模块,确定软件的整体框架。
-编码阶段:根据设计阶段的文档编写程序代码,实现软件系统的各个功能。
-测试阶段:对软件进行各种测试,包括单元测试、集成测试和系统测试,以发现错误和缺陷。
-维护阶段:根据用户反馈和需求变化,对软件进行修复和更新,确保其持续稳定运行。
一、选择题软件(2)1.在软件开发的各种资源中,(D)是最重要的资源。
A固有的B人为的C可消除的D不可降低的3.3:软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(D)。
A.程序、数据B.程序、文档C.程序D.程序、数据、文档4.软件是一种(B)产品。
A、有形B、逻辑C、物质D、消耗软件危机(1)5.1:开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)A.软件工程B.软件周期C.软件危机D.软件产生6.2:在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了(A)A.软件危机B.软件工程C.程序设计革命D.结构化程序设计7.3:以下哪一项不是软件危机的表现形式(C)(A)成本高(B)生产率低(C)技术发展快(D)质量得不到保证8.4:“软件危机”产生的主要原因是(A)。
A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件9.5:软件危机是指在软件开发和(C)过程中遇到的一系列严重问题。
A开发B使用C维护D更新软件工程(2)10.1:为了解决软件危机人们提出了用(B)的原理来设计软件,这就是软件工程诞生的基础。
(A)运筹学(B)工程学(C)软件学(D)数学11.2.在软件工程时期,决定软件质量的主要因素是(A)A.管理水平B.个人程序技术C.小组技术水平D.硬件的发展12.3.软件管理工作涉及到的直接对象不包括(B)。
A.软件开发人员B.硬件设备C.项目经费D.软件项目13.4.软件工程方法学有三个要素,它们是(A)A.方法、工具和过程B.质量、进度和成本C.顺序、分支和循环D.入口、过程、出口生命周期及模型(5)14.1:软件工程中描述生命周期的瀑布模型一般包括计划、(A)、设计、编码、测试、维护等几个阶段。
一、单项选择题(5*9)●UML中关联的多重度是指__(1)__。
能够正确表示类A、B和C之间关系的UML类图是_(2)A_。
●采用UML进行软件建模过程中,类图是系统的一种静态视图,用(3)可明确表示两类事物之间存在的整体/部分形式的关联关系。
A.依赖关系B.聚合关系C.泛化关系D.实现关系●内聚性和耦合性是度量软件模块独立性的重要准则,软件设计时应力求(4)。
A.高内聚,高耦合B.高内聚,低耦合C.低内聚,高耦合D.低内聚,低耦合●在UML语言中,下图中的a、b、c三种图形符号按照顺序分别表示(5)。
abcA.边界对象、实体对象、控制对象B.实体对象、边界对象、控制对象C.控制对象、实体对象、边界对象D.边界对象、控制对象、实体对象●在下面的用例图中,X1、X2和X3表示(6),已知UC3是抽象用例,那么X1可通过(7)用例与系统进行交互。
并且,用例(8)是UC4的可选部分,用例(9)是UC4的必须部分。
(6)A.人B.系统C.参与者D.外部软件(7)A.UC4、UC1B.UC5、UC1C.UC5、UC2D.UC1、UC2(8)A.UC1B.UC2C.UC3D.UC5(9)A.UC1B.UC2C.UC3D.UC544A45C46D47B32C35B对于右侧的程序流程,当采用语句覆盖法设计测试案例时,至少需要设计个测试案例。
A.1B.2C.3D.4输入X和Y否是X>0Y=Y+XY=Y-X否是37B下面有关测试的说法正确的是___。
A.测试人员应该在软件开发结束后开始介入B.测试主要是软件开发人员的工作C.要根据软件详细设计中设计的各种合理数据设计测试用例D.严格按照测试计划进行,避免测试的随意性为验证程序模块A是否正确实现了规定的功能,需要进行(1);为验证模块A能否与其他模块按照规定方式正确工作,需要进行(2)。
软件工程一、选择题1、软件需求规格说明的内容不包括(B)A、主要功能B、算法的详细描述C、用户界面及运行环境D、软件的性能2、面向对象的分析方法主要是建立三类模型,即(D)A、系统模型、ER模型、应用模型B、对象模型、动态模型、应用模型C、ER模型、对象模型、功能模型D、对象模型、动态模型、功能模型3、在ER模型中,包括以下基本成分(C)A、数据、对象、实体B、控制、联系、对象C、实体、联系、属性D、实体、属性、操作4、各种软件维护的类型中最重要的是(A)A、完善性维护B、纠错性维护C、适应性维护D、预防性维护5、若有一个计算类型的程序,它的输入量只有一个X,其范围是[—2.0,2.0],现从输入的角度考虑一组测试用列—2.001,-2,20,2.001,设计这组测试用列的方法是(C)A、条件覆盖法B、等价分类法C、边界值分析法D、错误推测法6、下列白盒测试法,哪种是最强的覆盖准则(D)A、语句覆盖B、条件覆盖C、判定覆盖D、条件组合覆盖7、确定测试计划是在(A)阶段制定的。
A、总体设计B、详细设计C、编码D、测试8、数据字典是软件需求分析阶段最重要的工具之一,其最基本的功能是(C)A、数据库设计B、数据通信C、数据定义D、数据维护9、软件开发当中,抽取和整理用户需求并建立问题域精确模型的过程(D)A、生成期B、软件意向C、结构化程序设计D、面向对象分析10、以下不属于IT企业当中过程管理和过程改进模型的是(D)A、ISO9001B、CMMIC、软件企业文化D、UML11、适合互联网上编程并可供不同平台运行的面向对象程序设计的语言是(java)12、软件结构图中,模块之间用直线连接,则表示他们之间存在(A)。
A、调用关系B、组成关系C、链接关系D、顺序执行关系13、生命周期方法设计软件的过程中,画用例图属于(A)阶段的工作.A、需求分析B、概要设计C、详细设计D、软件维护14、PDL属于(B)语言。
《软件工程》练习测试题库一、单项选择题1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()A.软件工程B.软件周期C.软件危机D.软件产生2.研究开发所需要的成本和资源是属于可行性研究中的()研究的一方面。
因此它只适用于详细设计阶段8.不适合作为科学工程计算的语言是()A.PascalB.CC.FortranD.Prolog9.黑盒测试在设计测试用例时,主要需要研究()A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明10.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是()A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法11.下列属于维护阶段的文档是()A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告12.快速原型模型的主要特点之一是()A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件13.因计算机硬件和软件环境的变化而做出的修改软件的过程称为()A.较正性维护B.适应性维护C.完善性维护D.预防性维护14.类库这种机制是()级别的信息共享。
一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
(正确/错误)答案:正确2.软件需求分析是软件开发的最后一步。
(正确/错误)答案:错误3.软件测试的目的是为了证明软件是没有错误的。
(正确/错误)答案:错误四、简答题1.简述软件生命周期模型中的瀑布模型。
答案:瀑布模型是软件生命周期模型中最早的模型之一。
它将软件开发过程分为需求分析、系统设计、详细设计、编码、测试和维护等阶段,并按照顺序执行。
软件工程测试题+参考答案一、单选题(共40题,每题1分,共40分)1、窃听是一种()攻击,攻击者()将自己的系统插入到发送站和接收站之间。
截获是一种()攻击,攻击者()将自己的系统插入到发送站和接受站之间。
A、被动,无须,主动,必须B、被动,必须,主动,无须C、主动,无须,被动,必须D、主动,必须,被动,无须正确答案:A2、如果一名攻击者截获了一个公钥,然后他将这个公钥替换为自己的公钥并发送给接收者,这种情况属于哪一种攻击?A、重放攻击B、Smurf攻击C、中间人攻击D、字典攻击正确答案:C3、黑客攻击服务器以后,习惯建立隐藏用户,下列哪一个用户在DOS命令netuser下是不会显示的。
A、fg#B、fg%C、fg_D、fg$正确答案:D4、下列哪一种方法在支持向量机中有应用A、拉格朗日乘子法B、二分法C、最小二乘法D、极大似然估计正确答案:A5、设顺序线性表的长度为30,分成5块,每块6个元素,如果采用分块查找,则其平均查找长度为A、6B、6.5C、11D、5正确答案:B6、对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为A、NB、N/2C、(N+1)/2D、[(1+N)*N]/2正确答案:C7、信息安全中PDR模型的关键因素是()。
A、多级反馈队列调度算法B、先来先服务调度算法C、高优先级优先调度算法D、短作业优先调度算法正确答案:D10、下面()不是数据字典的内容。
A、容错性B、检测性C、可操作性D、安全性正确答案:C4、下列属于维护阶段的文档是()A、软件问题报告B、用户操作手册C、软件测试分析报告D、软件规格说明正确答案:B5、快速原型模型的主要特点之一是()A、及早提供工作软件B、开发完毕才见到产品C、及早提供全部完整的软件产品D、开发完毕后才见到工作软件正确答案:C6、可维护性通常包括()。
A、可用性和可理解性B、可修改性、数据独立性和数据一致性C、可理解性、可修改性和可测试性D、可测试性和稳定性正确答案:C7、软件的可修改性支持软件的()。
A、可互操作性B、可维护性C、可追踪性D、有效性正确答案:B8、数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是()A、数据通信B、数据定义C、数据维护D、数据库设计正确答案:B9、软件特性中,多个软件元素相互通讯并协同完成任务的能力指的是()。
对于两个问题P1和P2,如果C(P1)>C(P2)显然E(P1)>E(P2),则得出结论E(P1+P2)>E(P1)+E(P2)就是:()A、信息隐藏和局部化的根据B、逐步求精的根据C、抽象的根据D、模块化的根据正确答案:D13、下列说法中,不正确的是()。
专业:移动通信科目:软件工程一、单项选择题1.好的软件结构应该是〔〕A.低耦合、低内聚B.高耦合、高内聚C.高耦合、低内聚D.低耦合、高内聚答案:D2.需求分析中开发人员要从用户那里了解〔〕A.软件的规模B.软件做什么C.用户使用界面D.输入的信息答案:B3.软件调试技术包括〔〕A.演绎法B.循环覆盖C.边界值分析D.集成测试答案:A4.软件需求规格说明书的内容不应包括对〔〕的描述。
A.用户界面及运行环境B.主要功能C.算法的详细过程D.软件的性能答案:C5.常用动词或动词词组来表示〔〕A.属性B.关联C.类D.对象答案:B6.软件可行性研究实质上是要进行一次〔〕需求分析、设计过程。
A.详细的B.深入的C.彻底的D.简化、压缩的答案:D7.软件部分的内部实现与外部可访问性别离,这是指软件的〔〕A.继承性B.共享性C.抽象性D.封装性答案:D8.软件部分的内部实现与外部可访问性别离,这是指软件的〔〕A.共享性B.继承性C.抽象性D.封装性答案:D9.在详细设计阶段,经常采用的工具有〔〕A.PDLB.DFDC.SCD.SA答案:A10.数据字典是对数据定义信息的集合,它所定义的对象都包含于〔〕A.软件结构B.程序框图C.方框图D.数据流图答案:D11.软件工程结构化生命周期方法,提出将软件生命周期划分为计划、开发和运行三个时期,下述〔〕工作应属于软件开发期的内容。
A.问题定义B.可行性研究C.都不是D.总体设计答案:D12.应用执行对象的操作可以改变该对象的〔〕A.功能B.数据C.属性D.行为答案:C13.软件质量因素不包括〔〕A.可理解性B.可测试性C.正确性D.高性能答案:D14.软件可行性研究实质上是要进行一次〔〕需求分析、设计过程。
A.详细的B.彻底的C.深入的D.简化、压缩的答案:D15.结构化设计是一种面向〔〕的设计方法。
A.数据结构B.数据流C..程序D.数据库答案:B16.结构分析法就是面向〔〕自顶向下逐步求精进行需求分析的方法。
软件工程面试题目及答案一、概述软件工程是一个专门研究软件开发过程、方法和工具的学科。
本文将提供一些常见的软件工程面试题目及答案,供应聘者参考。
二、面试题目及答案1.请简要介绍一下软件工程的基本概念。
答:软件工程是一门研究如何以系统化的、规模化的、标准化的方式开发、运行和维护软件的学科。
软件工程的目标是提高软件的质量、可靠性和可维护性。
2.请解释一下软件开发生命周期的概念。
答:软件开发生命周期指的是软件从概念到废弃的整个过程。
它通常包括需求分析、设计、编码、测试、部署和维护等阶段。
不同的开发模型对应着不同的软件开发生命周期。
常见的开发模型有瀑布模型、敏捷开发、迭代开发等。
3.请说明敏捷开发的特点和优势。
答:敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。
它的特点包括灵活性、适应性、迭代开发、自组织团队等。
与传统的瀑布模型相比,敏捷开发可以更好地应对需求变更和用户反馈,提高开发效率和软件质量。
4.请解释一下软件需求分析的重要性。
答:软件需求分析是软件开发过程中最关键的阶段之一。
它的主要目标是准确理解用户的需求,并将之转化为可实现的软件需求规格。
正确的需求分析可以避免开发过程中的错误和返工,保证软件最终能够满足用户的期望。
5.请介绍一下软件测试的基本方法和策略。
答:软件测试的基本方法包括黑盒测试和白盒测试。
白盒测试是基于软件内部结构和代码进行测试的方法,需要了解内部逻辑和数据流。
软件测试的策略包括单元测试、集成测试、系统测试和验收测试等。
单元测试主要测试软件的最小功能单元(如函数、方法),验证其是否按照预期工作。
集成测试针对不同模块或子系统间的接口进行测试。
软件工程师面试题及参考答案面试题的完成情况会间接影响软件工程师的面试成功几率。
店铺整理了一些软件工程师面试题及参考答案,有兴趣的亲可以来阅读一下!软件工程师面试题及参考答案(一)1,Androiddvm的进程和Linux的进程,应用程序的进程是否为同一个概念。
解答:DVM指dalivk的虚拟机。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念。
又可分为软实时和硬实时两种,而android是基于linux内核的,因此属于软实时。
5,一条最长的短信息约占多少byte(字节)解答:中文70(包括标点),英文160,160个字节。
6,android中的动画有哪几类,它们的特点和区别是什么解答:两种,Tween动画、这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;Frame动画。
传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。
7、handler机制的原理andriod提供了Handler和Looper来满足线程间的通信。
软件工程试题库及答案选择题软件(2)1.在软件开发的各种资源中,(D)是最重要的资源。
A固有的B人为的C可消除的D不可降低的3.3:软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(D)。
A.程序、数据B.程序、文档C.程序D.程序、数据、文档4.软件是一种(B)产品。
A、有形B、逻辑C、物质D、消耗软件危机(1)5.1:开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)A.软件工程B.软件周期C.软件危机D.软件产生6.2:在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了(A)A.软件危机B.软件工程C程序设计革命D.结构化程序设计7.3:以下哪一项不是软件危机的表现形式(C)(A)成本高(B)生产率低(C)技术发展快(D)质量得不到保证8.4:“软件危机”产生的主要原因是(A)软件工程(2)10.1:为了解决软件危机人们提出了用基础。
11.2.在软件工程时期,决定软件质量的主要因素是(A)A.软件日益庞大B.开发方法不当C.开发人员编写程序能力差D.没有维护好软件9.5:软件危机是指在软件开发和(C)过程中遇到的一系列严重问题。
A开发B使用C维护D更新B)的原理来设计软件,这就是软件工程诞生的(C)软件学(D)数学(A)运筹学(B)工程学A.管理水平B.个人程序技术C小组技术水平D.硬件的发展12.3.软件管理工作涉及到的直接对象不包括(B)A软件开发人员B硬件设备C项目经费13.4.软件工程方法学有三个要素,它们是(A)16.3:下列哪个模型没有采用迭代的思想(A)17.4:下列关于瀑布模型的描述正确的是(D)。
软件工程考试题及答案一、选择题(每题2分,共20分)1.软件工程中的需求分析阶段的主要任务是什么?A.确定软件的功能需求B.设计软件的架构C.编写软件的详细设计文档D.进行软件的编码实现答案:A2.在软件开发过程中,哪个阶段是进行风险评估的?A.需求分析B.设计C.编码D.测试答案:B3.软件测试中的黑盒测试通常是基于什么进行的?A.程序源代码B.程序的内部逻辑C.程序的功能需求D.程序的运行环境答案:C4.敏捷开发方法论中,哪个活动是迭代的核心?A.需求收集B.编码实现C.测试D.回顾会议答案:B5.在软件维护中,哪种类型的维护是最常见的?A.纠错性维护B.适应性维护C.完善性维护D.预防性维护答案:A二、填空题(每空1分,共10分)6.软件工程的生命周期包括需求分析、________、编码、测试和维护等阶段。
答案:设计7.软件工程中的_______原则指的是高内聚低耦合。
答案:模块化8.在软件开发中,_______是指软件在特定条件下使用时,能够达到预期功能、性能要求的能力。
答案:可靠性9.软件项目管理中的_______是指在项目开发过程中,对项目进行监控和控制,确保项目按计划进行。
答案:监控10.在软件测试中,_______是指测试用例设计得尽可能覆盖所有可能的执行路径。
答案:穷尽测试三、简答题(每题10分,共30分)11.简述软件工程中的模块化设计原则及其优点。
答案:模块化设计原则是指将软件系统划分为多个模块,每个模块具有特定的功能,并且模块之间通过定义良好的接口进行交互。
其优点包括:-易于管理:模块化使得软件更容易理解和维护。
-可重用性:模块可以在不同的项目中重复使用。
-并行开发:模块化允许多个团队并行开发不同的模块。
-灵活性:模块化提高了软件的灵活性,便于扩展和修改。
12.解释什么是软件的可维护性,并说明其重要性。
一、填空1.结构化分析方法的分析策略是自顶向下逐步求精。
2.衡量模块独立性的两个定性标准是_耦合性与内聚性。
3.软件集成测试的方法主要有两种,它们是渐增式与非渐增式测试。
5.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求_。
7.计算机辅助软件工程这一术语的英文缩写为_CASE。
8.McCall提出的软件质量模型包括11个软件质量特性。
9.软件结构是以模块10.软件概要设计的主要任务就是为基础而组成的一种控制层次结构。
软件结构的设计。
11.结构化程序设计方法是使用三种基本控制结构(条件\控制\循环)构造程序。
12.在建立对象的功能模型时,使用的数据流图中包含有处理、数据流、动作对象和数据存储对象_二、选择1.UML是软件开发中的一个重要工具,它主要应用于哪种软件开发方法(C)A、基于瀑布模型的结构化方法B、基于需求动态定义的原型化方法C、基于对象的面向对象的方法D、基于数据的数据流开发方法2、面向对象的开发方法中,(B)将是面向对象技术领域内占主导地位的标准建模语言。
A、Booch方法B、UML语言C、OMT方法D、Coad方法3、功能模型中所有的(A)往往形成一个层次结构。
在这个层次结构中一个数据流图的过程可以由下一层的数据流图作进一步的说明。
A、数据流图B、概念模型图C、状态迁移图D、事件追踪图4、(A)应当在应用分析之前进行,因为我们在了解问题之前应当对问题敞开思想考虑,不应加以限制。
A、问题域分析B、高层分析C、实例的建立D、类的开发5、通过执行对象的操作改变对象的属性,但它必须通过(B)的传递。
A、接口B、消息C、信息D、操作6、所有的对象可以成为各种对象类,每个对象类都定义了一组(B)A、说明B、方法C、过程D、类型9、面向对象的主要特征除对象唯一性、封装、继承外,还有(A)A、多态性B、完整性C、可移植性D、兼容10、在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有(B)A、隐藏复杂性B、信息隐藏C、即存类的重用D、类的开发13、在考察系统的一些涉及时序和改变的状况时,要用动态模型来表示。
A、有形B、逻辑C、物质D、消耗软件危机(1)5.1:开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)A.软件工程B.软件期C.软件危机D.软件产生6.2:在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了(A)A.软件危机B.软件工程C.程序设计革命D.结构化程序设计7.3:以下哪一项不是软件危机的表现形式(C)(A)成本高(B)生产率低(C)技术发展快(D)质量得不到保证8.4:“软件危机”产生的主要原因是(A)。
A.软件日益庞大B.开发法不当C.开发人员编写程序能力差D.没有维护好软件9.5:软件危机是指在软件开发和(C)过程中遇到的一系列重问题。
A.软件开发人员B.硬件设备C.项目经费D.软件项目13.4.软件工程法学有三个要素,它们是(A)A.法、工具和过程B.质量、进度和成本C.顺序、分支和循环D.入口、过程、出口生命期及模型(5)14.1:软件工程中描述生命期的瀑布模型一般包括计划、(A)、设计、编码、测试、维护等几个阶段。
A.需求分析B.需求调查C.可行性分析D.问题定义15.2.瀑布模型把软件生存期划分为软件计划、软件开发与(C)三个阶段,而每一阶段又可分为若干更小的阶段。
A.详细设计B.可行性分析C.运行与维护D.测试与排错16.3:下列哪个模型没有采用迭代的思想(A)A.瀑布模型B.渐增模型C.螺旋模型D.RUP模型17.4:下列关于瀑布模型的描述正确的是(D)。
A.线性顺序B.顺序迭代C.线性迭代D.早期产品19.6.快速原型模型的主要特点之一是(D)A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件20.7:瀑布模型的关键不足在于(B)(A)过于简单(B)不能适应需求的动态变更(C)过于灵活(D)各个阶段需要进行评审21.8:瀑布模型存在的问题是(D)。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求问题定义(1)22.1、软件定义的目的主要是(A)A.明确系统的目标B.明确系统具体该做什么C.明确系统该如做D、系统值不值得做。
可行性研究(2)23.1:研究开发所需要的成本和资源是属于可行性研究中的(B)研究的一面。
A.技术可行性B.经济可行性C.社会可行性D.法律可行性24.2:一个项目是否开发,从经济上来说是否可行,归根结底是取决于对(A)A.成本的估算B.项目计划C.工程管理D.工程网络图25.3:可行性研究的目标是(B)。
A问题分析B信息域分析C结构化程序设计D确定逻辑模型29.2:在需求分析中,分析员要从用户那里解决的最重要的问题是(A)。
A要让软件做什么B要给该软件提供哪些信息C要求软件工作效率如D要让软件具有什么样的结构30.3.软件需求分析应确定的是用户对软件的(A)。
A.功能需求和非功能需求B.性能需求C.非功能需求D.功能需求31.4.结构化分析法(SA)是一种面向(C)的需求分析法。
A.对象B.数据结构C.数据流D.控制流32.3:进行需求分析可使用多种工具,但(B)是不适用的。
A数据流图BPAD图CE-R图D数据字典33.4:在结构化分析法中,用以表达系统数据的运动情况的工具有(A)。
A数据流图B数据词典C结构化英语D判定表与判定树34.5:需求规格说明书在软件开发中具有重要的作用,但其作用不应当包括(D)。
A软件设计的依据B用户和开发人员对软件要“做什么”的共同理解C软件验收的依据D软件可行性分析的依据35.6:软件需求规格说明书的容不应当包括(B)。
A对重要功能的描述B对算法的详细过程性描述C软件确认准则D软件的性能36.7:需求分析是由分析员经过了解用户的要求,认真细致地调研、分析,最终应建立目标系统的逻辑模型,并写出(B)。
(A)模块说明书(B)软件规格说明书(C)项目开发计划(D)合同文档37.下列工具哪一个是需求分析阶段常用工具?(D)A、PADB、PDLC、盒图D、数据流图38.进行需求分析可以使用多种工具,但(B)是不适用的。
A、数据流程图B、判定表C、状态转换图D、数据字典概要设计(3)39.在SD法中全面指导模块划分的最重要的原则是(D)A.程序模块化B.模块高聚C.模块低耦合D.模块独立性40.模块(C),则说明模块的独立性越强。
A.耦合越强B.扇入数越高C.耦合越弱D.扇人数越低41.以下各种耦合按从强到弱排列正确的是(C):(A).容耦合,控制耦合,数据耦合,公共环境耦合。
(B).容耦合,数据耦合,控制耦合,公共环境耦合。
(C).容耦合,公共环境耦合,控制耦合,数据耦合。
(D).控制耦合,容耦合,数据耦合,公共环境耦合。
A.聚越强B.扇入数越高C.聚越弱D.扇人数越低45.在SD中,概要设计的结果是提供一份(A)。
A.模块说明书B.框图C.程序D.数据流图46.结构化设计在软件开发中用于(B)。
A、测试设计B、概要设计C、程序设计D、详细设计详细设计(3)47.PDL是一种过程设计语言,又叫(C)(A)系统流程图(B)盒图(C)伪码(D)功能图48.在详细设计算法工具中,(C)能够清楚地表现程序的层次结构(A)系统流程图(B)层次图(C)PAD图(D)功能图49.详细设计算法工具中,(A)图是一种历史悠久的图,直观地描述了程序的控制流程。
(A)程序流程图(B)系统流程图(C)PAD图(D)盒图50.下列哪一个不是详细设计时使用的工具。
(A)(A)系统流程图(B)盒图(C)PAD图(D)判定树51.详细设计的法不包括(D)A.Jackson数据结构法B.结构化设计法C.面向对象设计法D.程序流程图52.一般来说,详细设计的法包括结构化设计法、(C)和Jackson法。
A.PAD图B.判定树C.面向对象设计法D.程序流程图53.结构化程序设计主要强调的是(C)。
A、程序的效率B、程序的执行速度C、程序的易读性D、程序的规模54.详细设计的任务是确定每个模块的(A)。
A、算法B、功能C、调用关系D、输入输出数据55.在软件详细设计过程中不采用的描述工具是(D)。
A、判定表B、流程图C、PAD图D、DFD图56.在详细设计阶段,一种二维树型结构并可自动生成程序代码的描述工具是(A)。
A、PADB、PDLC、IPOD、判定树57.结构化程序设计的一种基本法是(D)。
A、筛选法B、递归法C、迭代法D、逐步求精法58.PDL是软件开发过程中用于(C)阶段的描述工具。
A、需求分析B、概要设计C、详细设计D、编程59.程序的三种基本控制结构是(B)。
A、过程、子程序和分程序B、顺序、选择和重复C、递归、堆栈和队列D、调用、返回和转移60.程序的三种基本控制结构的共同特点是(D)。