最新软件工程面试题及其答案整理合集

下面列出了常见的软件工程面试问题和解答。
1)什么是软件工程?
软件工程被定义为软件开发, 操作和维护的系统, 规范, 量化方法的功能。
点击这里查看更多信息
2)在系统模型构建中要考虑哪些要素?
系统模型构建中要考虑的元素是:

  • 假设条件
  • 简化版
  • 局限性
  • 约束条件
  • 优先
3)系统工程模型完成什么工作?
系统工程模型完成以下任务:
  • 定义满足视图需求的流程
  • 代表过程和假设的行为
  • 明确定义外生和内生输入
  • 它代表了使工程师能够更好地理解方面的所有链接。
4)定义框架。
框架是代码框架, 可以用特定的类或功能充实并设计为解决当前的特定问题。
5)软件有什么特点?
该软件的特点是:
  • 软件是工程而非制造的。
  • 软件不会磨损。
  • 大多数软件是定制构建的, 而不是由组件组装而成的。
6)软件有哪些类别?
各种软件类别包括:
  • 系统软件应用程序。
  • 软件工程/科学。
  • 软件嵌入式软件。
  • Web应用程序。
  • 人工智能软件。
7)软件面临哪些挑战?
该软件中的挑战是:
  • 使用旧版系统进行复制。
  • 异质性挑战。
  • 交货时间的挑战。
8)定义软件过程。
软件过程定义为开发软件系统所需的结构化活动集。
点击这里查看更多信息
9)内部里程碑是什么?
它们是进步的重要且可量化的属性。它们是项目中的标准方法, 可确保我们走上正确的道路。他们在项目经理的授权下。
10)RAD模型的局限性是什么?
RAD模型的局限性是:
  • 它需要足够的人力资源来创建足够数量的团队。
  • 开发人员和用户未提交, 系统将失败。
  • 它不是适当地模块化的建筑部件可能是有问题的。
  • 当存在更多技术风险的可能性时, 则不适用。
点击这里查看更多信息
11)经典生命周期模型有哪些缺点?
经典生命周期模型的缺点是:
  • 实际项目很少遵循顺序流程。迭代总是会发生并造成问题。
  • 要求客户陈述所有要求。
  • 该程序的工作版本不可用。因此客户必须有耐心。
12)增量模型的优点是什么?
增量模型的优点是:
  • 当项目中包含的人数较少时, 可以接受增量模型。
  • 每次增加都会处理技术风险。
  • 在最短的时间内, 至少可以将核心产品交付给用户。
13)螺旋模型的缺点是什么?
螺旋模型的缺点是:
  1. 它基于用户通信。如果界面不正确, 则创建的软件产品将不符合要求。
  2. 它要求进行大量的风险评估。如果风险评估正确完成, 则只能获得成功的产品。
14)命名进化过程模型。
进化能力模型是:
  • 增量模型
  • 螺旋模型
  • 双赢螺旋模型
  • 并行开发
15)定义软件原型。
软件原型被表示为用于验证需求的快速软件开发。
16)原型制作有什么好处?
原型制作的好处是:
  • 原型服务是开发系统规范的基础。
  • 设计质量可以修改。
  • 该系统可以轻松管理。
  • 开发工作可能会减少。
  • 系统可用性可以升级。
17)软件过程中的原型制作方法是什么?
软件过程中的原型制作方法为:
  • 进化原型:在这种系统开发方法中, 安排了初始原型, 然后通过阶段数到最终阶段进行精确化。
  • 一次性原型:使用这种方法, 可以生成该系统的粗略实际实现。可以从此实现中识别需求问题。然后将其拒绝。然后, 使用各种工程范例开发系统。
18)进化原型的优势是什么?
进化原型的优势在于:
  • 快速交付工作系统。
  • 开发系统时包含用户。
  • 可以交付更有用的系统。
  • 规范, 设计和实施工作以等效的方式进行。
19)有哪些快速原型制作技术?
各种快速原型技术是:
  • 动态高级语言开发。
  • 数据库编程。
  • 组件和应用程序组装。
20)用户界面原型的用途是什么?
该原型用于预先指定客户界面的外观和有效感觉。
21)原型模型的原理是什么?
建立了一个原型, 可以快速向用户确定产品的外观。在原型制作阶段, 仅支持实际产品的最小功能。
22)定义系统上下文图(SCD)?
【最新软件工程面试题及其答案整理合集】上下文系统图(SCD):
  • 在正在实施的系统和系统运行的环境之间建立数据边界。
  • 描述通过客户界面进行通信的所有外部生产者, 外部消费者和实体。
23)定义质量功能部署(QFD)?
质量功能部署(QFD)是一种将用户需求转化为技术需求的方法。它专注于从软件工程过程中最大化用户满意度。
24)什么是需求工程?
需求工程是建立用户从系统中需要的服务以及在其运行和开发的约束条件下的过程。
点击这里查看更多信息
25)什么是ERD?
实体关系图是对象关系对的图形描述。它主要用于数据库应用程序。
26)什么是DFD?
数据流程图描述了数据流以及从输入到输出的数据所应用的变换。
27)什么是状态转换图?
状态转换图是状态和事件的集合。这些事件导致操作更改其状态。它还描述了在发生特定事件时应采取的措施。
28)什么是软件质量保证?
软件质量保证是一组审核和文档编制功能, 用于评估质量控制活动的有效性和完整性。
点击这里查看更多信息
29)CMM的用途是什么?
软件质量是指符合国家明确规定的功能和性能要求, 明确记录的开发标准, 专业开发的软件应具有的固有特性。
30)什么是耦合?
耦合是衡量类之间相互链接程度的重要指标。耦合应保持尽可能低。
31)凝聚力是什么?
内聚力是模块相对功能强度的指标。它是信息隐藏的自然扩展, 可以执行单个任务, 几乎不需要与其他组件集成。
点击这里查看更多信息
32)定义重构。
重构意味着以不改变代码外部行为的方式更改软件系统。
33)什么是软件架构?
软件体系结构是指软件的整体结构以及该软件如何为系统提供概念上的完整性。
34)定义图章耦合。
当数据结构的一部分通过模块接口传递时, 则称为标记耦合。
35)定义公共耦合。
当几个模块引用一个全局数据区时, 这种耦合称为通用耦合。
36)定义时间凝聚力。
当一个模块包含所有必须在同一时间段内执行的任务相关的任务时, 则称为时间衔接。
37)定义指标。
指标定义为系统组件或进程拥有给定属性的程度。
38)什么是COCOMO模型?
建设性成本模型是一种成本模型, 它提供了开发软件产品所需的几个工作月的估算。
点击这里查看更多信息
39)时间线图的目的是什么?
时间线图的目的是强调单个任务的范围。因此, 将功能集作为时间线图的输入。
40)定义烟雾测试?
烟雾测试是集成测试, 在开发软件产品时经常使用。
41)烟雾测试有什么好处?
进行烟雾测试的好处是:
  • 集成风险降至最低。
  • 最终产品的质量得到改善。
  • 错误诊断和纠正得以简化。
  • 进展很容易评估。
42)什么是等效分区?
等效分区将程序的输入域派生到数据类中, 从这些数据类中得出测试用例。它是一组对象, 通过对称, 传递和自反的关系链接在一起, 存在等价类。
43)测试中遵循的步骤是什么?
测试中遵循的步骤是:
  • 单元测试:在这种类型的测试中测试各个元素。
  • 模块测试:测试相关独立项目组。
  • 子系统测试:这是一种集成测试。将不同的模块集成到子系统中, 并对整个子系统进行测试。
  • 系统测试:整个系统都在此系统中测试。
  • 验收测试:如果系统按照客户需求运行, 则接受用户数据的测试。
44)区分Alpha和Beta测试。
Alpha和Beta测试是两种验收测试。
  • Alpha测试:Alpha测试是指客户在开发人员的监督下测试完整软件的版本。此测试是在开发人员的站点上实施的。
  • Beta测试:Beta测试是客户在没有开发人员在场的情况下测试软件版本的测试。此测试在客户的站点上执行。
45)静态测试工具有哪些类型?
有三种类型的静态测试工具。
  • 基于代码的测试工具:这些工具将源代码作为输入并生成测试用例。
  • 专用测试工具:使用这种语言, 可以为每个测试用例编写详细的测试规范。
  • 基于需求的测试工具:这些工具有助于根据用户需求进行设计。
46)定义维护。
维护被描述为通过修改现有系统的体系结构或向系统添加新组件来实施更改的过程。
点击这里查看更多信息
47)什么是软件维护类型?
软件维护的类型为:
纠正性维护:指纠正软件故障的维护。
适应性维护:这意味着适应环境变化的维护。
完善的维护:这意味着修改或增强系统以满足新的要求。
预防性维护:这意味着为了提高将来的可维护性而进行的更改。
点击这里查看更多信息
48)什么是CASE工具?
CASE Tools代表计算机辅助软件工程。它是为软件过程活动提供自动化支持的系统软件。它包含用于支持软件流程操作(例如需求分析, 系统建模)的程序。调试和测试。
点击这里查看更多信息
49)什么是风险管理?
风险管理是在执行原始计划时遇到障碍的阶段, 并提供替代方法, 以使对预期初始结果的影响降至最低。
点击这里查看更多信息
工作/人力资源面试问题
JavaScript面试问题
Java OOP面试问题
JSP面试问题
休眠面试问题
SQL面试题
Android面试题
MySQL面试问题
面试技巧
公司面试问题与程序
Java基础面试问题
Servlet面试问题
春季面试问题
PL / SQL面试问题
Oracle面试问题
jQuery面试问题

    推荐阅读