50 preguntas y respuestas de la entrevista de ingeniería de software

Aquí hay preguntas y respuestas de la entrevista de ingeniería de software para que los candidatos más nuevos y experimentados consigan el trabajo de sus sueños.

 

Preguntas y respuestas de la entrevista para desarrolladores de software para principiantes

1) ¿Cuáles son las categorías importantes de software?

  • Software del sistema
  • Software de la aplicacion
  • Software embebido
  • Aplicaciones web
  • Software de inteligencia artificial
  • Software científico.

👉 Descarga gratuita de PDF: Preguntas y respuestas de la entrevista de ingeniería de software


2) ¿Cuál es la principal diferencia entre un programa de computadora y un software de computadora?

Un programa de computadora es un fragmento de código de programación. Realiza una tarea bien definida. Por otro lado, el software incluye código de programación, documentación y guía de usuario.


3) ¿Qué es la reingeniería de software?

Es un proceso de desarrollo de software que se realiza para mejorar la mantenibilidad de un sistema de software.

Preguntas de ingeniería de software


4) Describa brevemente el proceso de desarrollo de software:

El desarrollo de software es un ciclo de vida compuesto de las siguientes etapas:

  • Análisis de requerimientos
  • Especificaciones
  • Arquitectura de software
  • Implementación
  • Pruebas
  • Documentación
  • Formación y Soporte
  • Mantenimiento

5) ¿Cuáles son los modelos SDLC disponibles?

El modelo en cascada, el modelo en espiral, el modelo de bolsa grande, el modelo iterativo y el modelo en V son algunos de los famosos. Modelos SDLC.


6) ¿Qué es la verificación y validación?

Verificación:

Verificación es un término que se refiere al conjunto de actividades que aseguran que el software implemente una función específica.

Validación:

Se refiere al conjunto de actividades que garantizan que el software haya sido construido de acuerdo con las necesidades de los clientes.


7) En el proceso de desarrollo de software, ¿cuál es el significado de depuración?

La depuración es el proceso que resulta en la eliminación de errores. Es una parte muy importante del éxito de las pruebas.


8) ¿Cómo puedes asegurarte de que tu código sea seguro y rápido?

En el desarrollo de software, la seguridad es siempre lo primero. Por lo tanto, si la ejecución del programa es lenta, intentaré identificar la razón de su complejidad temporal.


9) Nombre dos herramientas que se utilizan para realizar un seguimiento de los requisitos de software.

Hay muchas formas de realizar un seguimiento de los requisitos.

Dos de uso común son:

  • Haga un documento de especificaciones de requisitos para enumerar todos los requisitos.
  • Cree una hoja de Excel con la lista de requisitos, tipo, dependencia, prioridad, etc.

10) ¿Cuál es la principal diferencia entre un talón y un simulacro?

Un stub es una implementación mínima de una interfaz que generalmente devuelve datos codificados, mientras que un simulacro generalmente verifica los resultados según las expectativas. Esas expectativas se establecen en la prueba.


11) ¿En qué lenguaje te gusta escribir algoritmos de programación?

Cada desarrollador tiene sus puntos de vista cuando se trata de opciones de lenguaje de programación. Sin embargo, uno debería preferir los lenguajes de alto nivel porque son dinámicos. como C y C++ idiomas.


12) ¿Qué es el software de computadora?

El software informático es un paquete que incluye un programa de software, su documentación y una guía del usuario sobre cómo utilizar el software.


13) Según usted, ¿qué modelo de SDLC es el mejor?

No existe tal clasificación, ya que los modelos SDLC se adoptan según la necesidad del proceso de desarrollo. Puede diferir de un software a otro.


14) ¿Quién es el director de proyectos de software? ¿Cuál es su papel?

Un gerente de proyectos de software es una persona responsable de gestionar el proyecto de desarrollo de software.

El director del proyecto está planificando el proyecto, monitoreando el progreso y la comunicación. Él o ella también gestiona los riesgos y recursos para entregar el proyecto dentro de las limitaciones de tiempo, costo y calidad.


15) ¿Qué se entiende por alcance del software?

El alcance del software es un límite bien definido. Incluye todo tipo de actividades que se realizan para desarrollar y entregar el producto de software.

El alcance del software define todas las funcionalidades y artefactos que se entregarán como parte del software. ¿El alcance también identifica qué hará el producto? ¿Qué no es parte del proyecto? ¿Qué es la estimación del proyecto?

Este proceso es útil para estimar varios aspectos del producto de software. Esta estimación se puede decidir consultando a expertos o utilizando fórmulas predefinidas.


16) ¿Cómo encontrar el tamaño de un producto de software?

El tamaño del producto de software se puede calcular utilizando los dos métodos siguientes

  • Contando las líneas de código entregado
  • Contando puntos de función entregados

17) ¿Qué son los puntos de función?

Los puntos de función son las características que proporciona el producto de software. Se considera una medida más importante para el tamaño del software.


18) ¿Cuáles son las técnicas de estimación de proyectos de software disponibles?

Las técnicas de estimación más utilizadas son:

  • Técnica de descomposición
  • Técnica empírica

19) ¿Qué es la gestión de la configuración del software?

La gestión de la configuración del software es un proceso de seguimiento y control de los cambios que ocurren en el software.

El control de cambios es una función que garantiza que todos los cambios realizados en el sistema de software sean consistentes y se creen utilizando reglas y regulaciones organizacionales.


20) ¿Cómo se puede medir la ejecución del proyecto?

Podemos medir la ejecución del proyecto mediante el seguimiento de actividades, informes de estado y listas de verificación de hitos.


21) Cuéntame sobre algunas herramientas de gestión de proyectos.

Hay muchos tipos de herramientas de gestión que se utilizan según la necesidad de un proyecto de software. Algunos de ellos son diagrama Pert, diagrama de Gantt, histograma de recursos, informes de estado, etc.


22) ¿Cuáles son los requisitos de software?

Los requisitos de software son una descripción funcional de un sistema de software propuesto. Se supone que es la descripción del sistema objetivo, sus funcionalidades y características.


23) ¿Qué es el estudio de viabilidad?

Es una medida para descubrir qué tan práctico y beneficioso resultará para la organización el desarrollo del proyecto de software. El analizador de software realiza un estudio para conocer la viabilidad económica, técnica y operativa del proyecto.

  1. Económico: Incluye el costo de la capacitación, el costo de herramientas adicionales y la estimación general de los costos y beneficios del proyecto.
  2. técnica: Evalúa el aspecto técnico. ¿Es posible desarrollar este sistema? Evaluar la idoneidad de la(s) máquina(s) y el sistema operativo en el que se ejecutará el software, el conocimiento del desarrollo de software y las herramientas disponibles para este proyecto.
  3. Operacional: Aquí el analista debe evaluar que la organización podrá adaptarse sin problemas a los cambios realizados según la demanda del proyecto. ¿Vale la pena resolver el problema al costo estimado?

Después de estudiar todo esto se elabora el informe final de viabilidad.


24) ¿Cuáles son los requisitos funcionales y no funcionales?

Los requisitos funcionales son características funcionales que los usuarios esperan del producto de software propuesto.

Los requisitos no funcionales están relacionados con la seguridad, el rendimiento, la apariencia de la interfaz de usuario.


25) ¿Qué es la métrica de software?

Software Metrics ofrece medidas para varios aspectos del proceso de software que se dividen en:

  1. Métricas de requisitos: requisitos de longitud, integridad
  2. Métricas de producto: Número de líneas de codificación, métricas orientadas a objetos, métricas de diseño y prueba.

26) ¿Qué es la modularización?

La modularización es una técnica que se utiliza para dividir un sistema de software en varios módulos discretos. Se espera que realice las tareas de forma independiente.


27) ¿Qué es la cohesión?

La cohesión es una medida que define la intradependencia entre los elementos del módulo.


28) ¿Menciona algunas herramientas de diseño y análisis de software?

Algunas de las herramientas de diseño y análisis de software más importantes son:

  • Diagramas de flujo de datos
  • Gráficos estructurados
  • Inglés estructurado
  • Diccionario de Datos
  • Diagramas de entrada y salida del proceso jerárquico
  • Diagramas de entidad-relación y tablas de decisión

29) ¿Qué se entiende por diagrama de flujo de datos de nivel 0?

El nivel de abstracción más alto se llama Nivel 0 de DFD. También se le llama DFD a nivel de contexto. Representa todo el sistema de información como un diagrama.


30) ¿Cuál es la principal diferencia entre inglés estructurado y pseudocódigo?

El inglés estructurado es el idioma nativo del inglés. Se utiliza para escribir la estructura de un módulo de programa. Utiliza palabras clave del lenguaje de programación. Por otro lado, el Pseudo Código se parece más al lenguaje de programación sin sintaxis de ningún lenguaje específico.


Ingeniería de software viva Preguntas y respuestas para experimentados

31) ¿Qué es el diseño estructurado?

El diseño estructurado es una conceptualización del problema. También se le llama diseño de solución y que se basa en la estrategia de 'divide y vencerás'.


32) ¿Qué es la programación funcional?

Es un método de programación que utiliza los conceptos de una función matemática. Proporciona medios de cálculo como funciones matemáticas, que también producen resultados independientemente del estado del programa.


33) ¿Qué es Garantía de Calidad versus Control de Calidad?

Garantía de calidad verifica si se sigue el proceso adecuado durante el desarrollo del software, mientras que Control de calidad se ocupa de mantener la calidad del producto de software.


34) ¿Qué son las herramientas CASE?

CASE significa Asistido por Computadora Ingeniería de Software. Son un conjunto de programas de aplicación de software automatizados que se utilizan para respaldar, mejorar y fortalecer las actividades del SDLC.


35) ¿Qué modelo de proceso elimina los defectos antes de que el software tenga problemas?

El método de ingeniería de software de sala limpia elimina los defectos antes de que el software tenga problemas.


36) Resuelve este problema

Hay veinte calcetines diferentes de dos tipos en un cajón de una habitación oscura. ¿Cuál es la cantidad mínima de calcetines que debes llevar para asegurarte de tener un par que combine?

Si recoges tres calcetines, pueden ser del mismo tipo incluso si las probabilidades son del 50%. Las probabilidades nunca son una realidad igual. Por lo tanto, la única manera de "asegurarse de tener un par coincidente" es recoger al menos 11 descargas.


37) ¿Cómo puede asegurarse de que su código escrito pueda manejar varios tipos de situaciones de error?

Puedo escribir pruebas que definan las situaciones de error esperadas.


38) ¿Explica las diferencias entre un Hilo y un Proceso?

Un proceso es una instancia del programa informático. En un solo programa es posible tener uno o más subprocesos.


39) ¿Dime la diferencia entre un EXE y una DLL?

Un exe es un programa ejecutable, mientras que una DLL es un archivo que los programas pueden cargar y ejecutar dinámicamente. Es un repositorio de código externo para programas. Como ambos son programas diferentes, reutilice la misma DLL en lugar de tener ese código en su archivo. También reduce el espacio de almacenamiento requerido.


40) ¿Qué es el tipo fuerte y el tipo débil? ¿Cuál se prefiere? ¿Por qué?

La tipificación fuerte comprueba los tipos de variables en tiempo de compilación. Por otro lado, la tipificación débil comprueba los tipos del sistema en tiempo de ejecución. Entre ellos, la tipificación fuerte siempre es la preferida porque minimiza los errores.


41) Describe la diferencia entre programación orientada a interfaces, orientada a objetos y orientada a aspectos.

  • La programación de la interfaz se basa en contratos.
  • Orientado a objetos es una forma de escribir objetos granulares que tienen un único propósito.
  • La Programación Orientada a Aspectos consiste en segregar el código de tal manera que varios objetos realicen las tareas principales y las tareas secundarias las realicen objetos independientes.

42) ¿Por qué usar catch (excepción) es siempre una mala idea?

Es una mala idea porque:

  • Como no hay ninguna variable definida, no es posible leer la excepción.
  • Es bueno utilizar una excepción cuando conoce los tipos de excepción.

43) ¿Qué tipo de datos se pasan a través de encabezados HTTP?

Script y metadatos pasados ​​a través de encabezados HTTP.


44) ¿Cómo prioriza los requisitos?

Primero, es necesario diseñar un sistema evaluando la estructura de datos. Luego deberías pasar a la estructura de código necesaria para admitirlo.


45) ¿Dame diferencias entre diseño orientado a objetos y basado en componentes?

El diseño orientado a objetos se puede encapsular fácilmente hasta cierto punto en el diseño basado en componentes.


46) ¿Cuándo usas polimorfismo?

El polimorfismo se utiliza cuando es necesario anular la funcionalidad al heredar la clase. Se trata de clases compartidas y contratos compartidos.


47) ¿Cuál es la diferencia entre pila y cola?

  • La cola siempre es el primero en entrar, el primero en salir
  • La pila siempre es la última en entrar, la primera en salir

48) ¿Qué es esencial para probar la calidad del código?

En mi opinión, el marco de pruebas unitarias es esencial para probar la calidad del código.


49) ¿Crees que el mantenimiento del software es caro?

En mi opinión, el mantenimiento del software nunca será costoso si utilizamos el proceso de desarrollo adecuado.


50) ¿Dame diferencias entre etiquetas y ramas?

Las etiquetas son para versiones de versiones que son lugares de almacenamiento temporales para hacer tal cosa. Sin embargo, las ramas se eliminan cuando esos cambios se fusionan en el tronco.


51) ¿Dónde está disponible una variable protegida a nivel de clase?

Las variables protegidas a nivel de clase están disponibles para cualquier subclase derivada de la clase base.


52) ¿Es posible ejecutar múltiples bloques catch para una sola declaración try?

Sí. Se pueden ejecutar múltiples bloques catch para una sola declaración try.


53) ¿Cuándo necesitas declarar una clase como abstracta?

Debemos declarar una clase como abstracta en las siguientes situaciones:

  1. Cuando la clase se hereda de una clase abstracta, pero no se han anulado todos los métodos abstractos.
  2. En el caso de que al menos uno de los métodos de la clase se declare como abstracto.

54) Desarrolle un algoritmo que genere su ubicación actual y una lista de ubicaciones de cajeros automáticos en esa área. Consigue los cajeros automáticos K más cercanos a tu ubicación.

Cree un método getDistance(a, b) que calcule la distancia entre a y b.

Código:

import java.util.HashMap;

import java.util.Map;

import java.util.PriorityQueue;

public class PrioRQueueExample {

public static void main(String[] args){

PriorityQueue<Double> pq = new PriorityQueue<Double>((x,y)-> {Double z = y-x;return z.intValue(); });

PrioRQueueExample pqe = new PrioRQueueExample();

//Number of ATMs to return i.e. K

int num_ATMs = 3;

double curr_loc = 0.00;

Map<String,Double> nallATMLocs = new HashMap<String,Double>();

//Map of ATM names and their distance co-ordinates

nallATMLocs.put("atm1",45.0);

nallATMLocs.put("atm2",78.0);

nallATMLocs.put("atm3",54.0);

nallATMLocs.put("atm4",64.0);

nallATMLocs.put("atm5",35.0);

nallATMLocs.put("atm6",42.0);

nallATMLocs.put("atm7",57.0);

nallATMLocs.put("atm7",1.00);

nallATMLocs.forEach((atm,dist) ->{if(pq.size() < num_ATMs){

pq.add(pqe.getLocation(curr_loc,dist));}

else{

if(        pq.peek() > pqe.getLocation(curr_loc,dist)){

pq.poll();

pq.add(pqe.getLocation(curr_loc,dist));

}

}

});

pq.forEach(atmLoc -> System.out.println(atmLoc));

}

private double getLocation(double curr,double atm){

return atm - curr;

}

}

Estas preguntas de la entrevista también te ayudarán en tu viva(orals)