📜  软件工程面试问题

📅  最后修改于: 2021-01-07 06:32:26             🧑  作者: Mango


亲爱的读者,这些软件工程面试问题的设计旨在让您熟悉在软件工程主题的面试过程中可能遇到的问题的性质。根据我的经验,优秀的面试官几乎不会计划在您的面试过程中提出任何特定的问题,通常问题会从该主题的一些基本概念开始,然后根据进一步的讨论和您的回答继续进行:

问:什么是计算机软件?

答:计算机软件是一个完整的软件包,其中包括软件程序,其文档以及有关如何使用该软件的用户指南。

问:能否区分计算机软件和计算机程序?

A.计算机程序是一块的编程代码,其执行一个明确的任务,其中作为软件包括编程代码,其文件和用户指南。

问:什么是软件工程?

答:软件工程是与软件系统开发相关的工程分支。

问:了解编程之后,需要什么来学习软件工程概念?

谁知道如何建立一个墙不是善于建设一个完整的家A.一个人。同样,可以编写程序的人可能不了解软件工程的其他概念。软件工程概念指导程序员如何评估最终用户的需求,在实际编码开始之前设计算法,通过编码创建程序,测试代码及其文档。

问:什么是软件流程或软件开发生命周期(SDLC)?

A.软件开发生命周期或软件过程是按照开发过程中的每个阶段(即按此顺序进行需求收集,系统分析,设计,编码,测试,维护和文档编制)进行的软件系统开发。

问:有哪些SDLC型号?

有几种SDLC模型可用,例如瀑布模型,迭代模型,螺旋模型,V模型和大爆炸模型等。

问:SDLC的各个阶段是什么?

A. SDLC的一般阶段是:理解客户需求,系统分析与设计,编码,测试和实施。阶段取决于我们选择开发软件的模型。

问:哪种SDLC模型是最好的?

A. SDLC模型采用按开发过程中的要求。要确保哪种模型合适,可能在软件之间非常不同。

如果满足以下答案,我们可以选择最佳的SDLC模型-

  • SDLC是否适合于选择的技术来实施该软件?
  • SDLC是否适合客户的要求和优先级?
  • SDLC模型是否适合软件的大小和复杂性?
  • SDLC模型是否适合我们所从事的项目和工程类型?
  • SDLC是否适合于地理位置分散或分散的开发商?

问:什么是软件项目管理?

答:软件项目管理是管理软件开发中涉及的所有活动(例如时间,成本和质量管理)的过程。

问:谁是软件项目经理?

答:软件项目经理是谁承担执行软件项目的负责人。

问:软件项目经理做什么?

答:软件项目经理从事软件管理活动。他负责项目计划,监视进度,与利益相关者之间的沟通,管理风险和资源,平稳地执行开发并在时间,成本和质量方面及时交付项目。

问:什么是软件范围?

答:软件范围是一个定义明确的边界,它涵盖了开发和交付软件产品所完成的所有活动。

该软件范围明确定义了作为软件一部分交付的所有功能和工件。范围标识了产品将执行的操作和产品将不会执行的操作,最终产品将包含的内容以及产品将不包含的内容。

问:什么是项目估算?

答:这是一个评估软件产品各个方面的过程,以便根据工作量,时间和资源来计算开发成本。可以从过去的经验,咨询专家或使用预定义的公式得出此估计值。

问:我们如何得出软件产品的大小?

答:可以使用以下两种方法之一来计算软件产品的大小-

  • 计算已交付代码的行数
  • 计算交付的函数点

问:什么是函数点?

答:功能点是软件产品提供的各种功能。它被视为软件大小的度量单位。

问:有哪些可用的软件项目估算技术?

答:有许多可用的估算技术,最广泛使用的是-

  • 分解技术(代码和功能点的计数行)
  • 经验技术(Putnam和COCOMO)。

问:什么是基线?

答:基线是一种定义阶段完整性的度量。与特定阶段相关的所有活动完成后,该阶段将完成,并作为下一阶段的基准。

问:什么是软件配置管理?

A.软件配置管理是根据产品的需求,设计,功能和开发来跟踪和控制软件更改的过程。

问:什么是变更控制?

A.变更控制是配置管理的函数,它可以确保对软件系统所做的所有变更都是一致的,并且是根据组织规则和规定进行的。

问:如何衡量项目执行情况?

答:我们可以通过活动监控,状态报告和里程碑清单来衡量项目的执行情况。

Q.提到某些项目管理工具。

答:根据软件项目和组织策略的要求,使用了各种项目管理工具。它们包括甘特图,PERT图,资源直方图,关键路径分析,状态报告,里程碑清单等。

问:软件要求是什么?

A.软件需求是所提议软件系统的功能描述。假设要求是对目标系统,其功能和特性的描述。需求传达了用户对系统的期望。

问:什么是可行性研究?

答:这是一种评估软件项目开发对组织的实用性和收益性的措施。软件分析器进行了彻底的研究,以了解该项目的经济,技术和运营可行性。

  • 经济-资源运输,培训成本,附加公用事业和工具的成本以及项目成本和收益的总体估算。

  • 技术-是否有可能开发此系统?评估将在其上执行软件的机器和操作系统的适用性,现有开发人员的知识和技能,培训,实用程序或项目工具。

  • 运营-组织是否可以根据项目需求平稳地调整所做的更改?这个问题值得解决吗?

问:如何收集需求?

A.需求可以从用户通过采访,调查,任务分析,集思广益,域分析,原型收集,研究的软件现有的可用版本,并通过观测。

问:什么是SRS?

答: SRS或软件需求规范是在需求收集过程中产生的文档。也可以将其视为完善需求并记录需求的过程。

问:功能要求是什么?

答:功能要求是用户从建议的软件产品中期望的功能特性和规格。

问:什么是非功能性要求?

答:非功能性需求是隐含的,并且与安全性,性能,用户界面的外观和感觉,互操作性,成本等相关。

问:什么是软件措施?

A.软件度量可以理解为量化和符号化软件的各种属性和方面的过程。

问:什么是软件指标?

A.软件度量标准提供了针对软件过程和软件产品各个方面的度量。它们分为–

  • 要求指标:长度要求,完整性
  • 产品指标:代码行,面向对象的指标,设计和测试指标
  • 流程指标:评估和跟踪预算,进度,人力资源。

问:什么是模块化?

模块化是一种将软件系统划分为多个离散模块的技术,这些模块有望独立执行任务。

问:什么是并发?如何在软件中实现并发?

答:并发是事件或动作同时发生的趋势。在软件中,当两个或多个进程同时执行时,它们称为并发进程。

在启动打印命令并开始打印时,可以打开一个新的应用程序。

并发是通过将软件分为多个独立的执行单元(即进程和线程)并并行执行来实现的。

问:什么是凝聚力?

内聚性是一种定义模块元素之间内部依赖程度的度量。

问:什么是耦合?

答:耦合是一种定义程序模块之间相互依赖程度的度量。

Q.提到某些软件分析和设计工具?

这些可以是:DFD(数据流程图),结构化图表,结构化英语,数据字典,HIPO(分层输入过程输出)图,ER(实体关系)图和决策表。

问:什么是0级DFD?

最高抽象级别DFD被称为级别0 DFD,也称为上下文级别DFD,它将整个信息系统描述为一个隐藏所有底层细节的图表。

问:结构化英语和伪代码有什么区别?

答:结构化英语是用于通过使用编程语言关键字来编写程序模块结构的本地英语语言,而伪代码则更接近于编程语言,并使用本地英语单词或句子来编写部分代码。

问:什么是数据字典?

答:数据字典称为元数据。意思是,它是关于数据的数据存储库。数据字典用于组织名称和在系统中使用的名称(例如对象和文件)及其引用约定。

问:什么是结构化设计?

答:结构化设计是将问题概念化为组织良好的解决方案要素。它与解决方案设计有关,并基于“分而治之”策略。

问:面向函数的设计与面向对象的设计有什么区别?

:面向功能的设计由许多称为功能的较小子系统组成。每个函数都可以在系统中执行重要任务。面向对象的设计围绕现实世界中的对象(实体),其类(类别)和对对象(功能)进行操作的方法进行工作。

问:简要定义自上而下和自下而上的设计模型。

:自上而下的模型从系统的广义视图开始,并将其分解为更具体的视图,而自下而上的模型首先从最特定的基本组件开始,并不断构成这些组件以获得更高的抽象水平。

问:Halstead复杂性度量的基础是什么?

Halstead的复杂性度量取决于程序的实际实现,并且将程序中使用的标记视为度量的基础。

Q.提到用于计算程序环复杂度的公式吗?

A.圈复杂度使用图论的公式:V(G)= e – n + 2

问:什么是函数式编程?

答:函数式编程是一种编程语言,它使用数学函数的概念。它提供了作为数学函数的计算手段,无论程序状态如何,都可以产生结果。

问:不同的验证和验证?

A.验证检查是否按照用户要求生产产品,而验证检查是否按照正确的步骤开发产品。

验证确认正确的产品,验证确认产品是否以正确的方式制造。

问:什么是黑盒和白盒测试?

A.黑盒测试检查在给出有效输入值时是否产生了所需的输出。它不验证该程序的实际实现。

白盒测试不仅会在提供有效输入时检查所需的有效输出,还会检查代码是否正确实现。

Criteria Black Box Testing White Box Testing
Knowledge of software program, design and structure essential No Yes
Knowledge of Software Implementation essential No Yes
Who conducts this test on software Software Testing Employee Software Developer
baseline reference for tester Requirements specifications Design and structure details

问:质量保证与质量控制?

答:质量保证监视器监视在开发软件时是否遵循了正确的过程。

质量控制负责维护软件产品的质量。

问:什么类型的软件维护?

答:维护类型为:纠正,适应性,完善性和预防性。

  • 矫正

    消除用户发现的错误

  • 适应性强

    解决软件运行所在的硬件和软件环境中的变化

  • 完善的维护

    实施用户现有或新需求中的更改

  • 预防性的维护

    采取适当措施避免将来出现问题

问:什么是软件再造?

答:软件再工程是在不更改软件功能的情况下升级构建软件的技术的过程。这样做是为了使软件与最新技术保持一致。

问:什么是CASE工具?

A. CASE代表计算机辅助软件工程。 CASE工具是一组自动化软件应用程序,用于支持,加速和简化SDLC活动。

接下来是什么?

此外,您可以浏览过去完成的与该主题相关的作业,并确保您能够自信地对它们发表讲话。如果您是新手,那么面试官不会期望您会回答非常复杂的问题,而是必须使您的基本概念非常扎实。

其次,如果您不能回答几个问题,那实际上并不重要,但是重要的是无论您回答了什么,都必须自信地回答。因此,在面试时要感到自信。我们在tutorialspoint上祝您好运,有一位优秀的面试官,也祝您未来事业一切顺利。欢呼声:-)