Preguntas de la entrevista de ingeniería de software

Estimados lectores, estos Software Engineering Interview Questions han sido diseñados especialmente para familiarizarlo con la naturaleza de las preguntas que puede encontrar durante su entrevista para el tema de Software Engineering. Según mi experiencia, los buenos entrevistadores difícilmente planearon hacer una pregunta en particular durante su entrevista, normalmente las preguntas comienzan con algún concepto básico del tema y luego continúan en base a una discusión adicional y lo que responde:

Q.What is computer software?

A. El software de computadora es un paquete completo, que incluye el programa de software, su documentación y la guía del usuario sobre cómo usar el software.

Q.Can you differentiate computer software and computer program?

A. Un programa de computadora es una pieza de código de programación que realiza una tarea bien definida donde el software incluye código de programación, su documentación y guía de usuario.

Q.What is software engineering?

A. La ingeniería de software es una rama de la ingeniería asociada con el desarrollo de sistemas de software.

Q.When you know programming, what is the need to learn software engineering concepts?

A.Una persona que sabe cómo construir un muro puede no ser buena construyendo una casa entera. Asimismo, una persona que pueda escribir programas puede no tener conocimiento de otros conceptos de Ingeniería de Software. Los conceptos de ingeniería de software guían a los programadores sobre cómo evaluar los requisitos del usuario final, diseñar los algoritmos antes de que comience la codificación real, crear programas mediante la codificación, probar el código y su documentación.

Q.What is software process or Software Development Life Cycle (SDLC)?

A.El ciclo de vida del desarrollo de software, o proceso de software, es el desarrollo sistemático de software siguiendo cada etapa del proceso de desarrollo, a saber, recopilación de requisitos, análisis del sistema, diseño, codificación, pruebas, mantenimiento y documentación en ese orden.

Q.What are SDLC models available?

A. Hay varios modelos SDLC disponibles, como el modelo de cascada, el modelo iterativo, el modelo en espiral, el modelo en V y el modelo Big-bang, etc.

Q.What are various phases of SDLC?

A.Las fases genéricas de SDLC son: recopilación de requisitos, análisis y diseño del sistema, codificación, pruebas e implementación. Las fases dependen del modelo que elijamos para desarrollar software.

Q.Which SDLC model is the best?

A.Los modelos SDLC se adoptan según los requisitos del proceso de desarrollo. Puede ser muy de software a software para garantizar qué modelo es adecuado.

Podemos seleccionar el mejor modelo SDLC si se satisfacen las siguientes respuestas:

  • ¿SDLC es adecuado para la tecnología seleccionada para implementar el software?
  • ¿SDLC es apropiado para los requisitos y prioridades del cliente?
  • ¿El modelo SDLC es adecuado para el tamaño y la complejidad del software?
  • ¿El modelo SDLC es adecuado para el tipo de proyectos e ingeniería que hacemos?
  • ¿Es el SDLC apropiado para los desarrolladores dispersos o ubicados geográficamente?

Q.What is software project management?

A. La gestión de proyectos de software es el proceso de gestionar todas las actividades, como la gestión del tiempo, los costes y la calidad, implicadas en el desarrollo de software.

Q.Who is software project manager?

A. Un gerente de proyecto de software es una persona que asume la responsabilidad de llevar a cabo el proyecto de software.

Q.What does software project manager do?

A. El gerente de proyectos de software se dedica a las actividades de gestión de software. Es responsable de la planificación del proyecto, el seguimiento del progreso, la comunicación entre las partes interesadas, la gestión de riesgos y recursos, la ejecución fluida del desarrollo y la entrega del proyecto dentro de los límites de tiempo, costo y calidad.

Q.What is software scope?

A. El alcance del software es un límite bien definido, que abarca todas las actividades que se realizan para desarrollar y entregar el producto de software.

El alcance del software define claramente todas las funcionalidades y artefactos que se entregarán como parte del software. El alcance identifica qué hará y qué no hará el producto, qué contendrá el producto final y qué no contendrá.

Q.What is project estimation?

A.Es un proceso para estimar varios aspectos del producto de software con el fin de calcular el costo de desarrollo en términos de esfuerzos, tiempo y recursos. Esta estimación puede derivarse de la experiencia pasada, consultando a expertos o utilizando fórmulas predefinidas.

Q.How can we derive the size of software product?

A. El tamaño del producto de software se puede calcular utilizando cualquiera de dos métodos:

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

Q.What are function points?

A.Los puntos de función son las diversas características proporcionadas por el producto de software. Se considera una unidad de medida para el tamaño del software.

Q.What are software project estimation techniques available?

A. Hay muchas técnicas de estimación disponibles, las más utilizadas son:

  • Técnica de descomposición (recuento de líneas de código y puntos de función)
  • Técnica empírica (Putnam y COCOMO).

Q.What is baseline?

A.La línea de base es una medida que define la completitud de una fase. Una vez finalizadas todas las actividades asociadas con una fase en particular, la fase se completa y actúa como base para la siguiente.

Q.What is Software configuration management?

A. La gestión de la configuración del software es un proceso de seguimiento y control de los cambios en el software en términos de requisitos, diseño, funciones y desarrollo del producto.

Q.What is change control?

A. El control de cambios es una función de la gestión de la configuración, lo que garantiza que todos los cambios realizados en el sistema de software sean coherentes y se realicen según las normas y reglamentos de la organización.

Q.How can you measure project execution?

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

Q.Mention some project management tools.

A.Hay varias herramientas de gestión de proyectos que se utilizan según los requisitos del proyecto de software y las políticas de la organización. Incluyen diagrama de Gantt, diagrama PERT, histograma de recursos, análisis de ruta crítica, informes de estado, listas de verificación de hitos, etc.

Q.What are software requirements?

A.Los requisitos de software son una descripción funcional del sistema de software propuesto. Se supone que los requisitos son la descripción del sistema de destino, sus funcionalidades y características. Los requisitos transmiten las expectativas de los usuarios del sistema.

Q.What is feasibility study?

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

  • Economic - Transporte de recursos, costo de capacitación, costo de servicios y herramientas adicionales y estimación general de costos y beneficios del proyecto.

  • Technical - ¿Es posible desarrollar este sistema? Evaluar la idoneidad de las máquinas y los sistemas operativos en los que se ejecutará el software, el conocimiento y las habilidades de los desarrolladores existentes, la capacitación, los servicios públicos o las herramientas para el proyecto.

  • Operational - ¿Puede la organización adaptarse sin problemas a los cambios realizados según la demanda del proyecto? ¿Vale la pena resolver el problema?

Q.How can you gather requirements?

A. Los requisitos se pueden recopilar de los usuarios a través de entrevistas, encuestas, análisis de tareas, lluvia de ideas, análisis de dominio, creación de prototipos, estudio de la versión utilizable existente del software y mediante observación.

Q.What is SRS?

A.SRS o Especificación de requisitos de software es un documento elaborado en el momento del proceso de recopilación de requisitos. También se puede ver como un proceso para refinar los requisitos y documentarlos.

Q.What are functional requirements?

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

Q.What are non-functional requirements?

A. Los requisitos no funcionales están implícitos y están relacionados con la seguridad, el rendimiento, la apariencia de la interfaz de usuario, la interoperabilidad, el costo, etc.

Q.What is software measure?

A. Las medidas de software pueden entenderse como un proceso de cuantificación y simbolización de varios atributos y aspectos del software.

Q.What is software metric?

A.Las métricas de software proporcionan medidas para varios aspectos del proceso de software y del producto de software. Se dividen en:

  • Métricas de requisitos: requisitos de longitud, integridad
  • Métricas de producto: líneas de código, métricas orientadas a objetos, métricas de diseño y prueba
  • Métricas de proceso: evalúe y rastree el presupuesto, el cronograma, los recursos humanos

Q.What is modularization?

A. La modularización es una técnica para dividir un sistema de software en varios módulos discretos, que se espera que realicen tareas de forma independiente.

Q.What is concurrency and how it is achieved in software?

A.La concurrencia es la tendencia de eventos o acciones a ocurrir simultáneamente. En software, cuando dos o más procesos se ejecutan simultáneamente, se denominan procesos concurrentes.

Ejemplo

Mientras inicia el comando de impresión y comienza la impresión, puede abrir una nueva aplicación.

La simultaneidad se implementa dividiendo el software en múltiples unidades de ejecución independientes, a saber, procesos y subprocesos, y ejecutándolos en paralelo.

Q.What is cohesion?

A. La cohesión es una medida que define el grado de intradependencia entre los elementos del módulo.

Q.What is coupling?

A. El acoplamiento es una medida que define el nivel de interdependencia entre los módulos de un programa.

Q.Mentions some software analysis & design tools?

A. Estos pueden ser: DFD (diagramas de flujo de datos), gráficos estructurados, inglés estructurado, diccionario de datos, diagramas HIPO (proceso de entrada jerárquico y salida), diagramas ER (relación de entidades) y tablas de decisión.

Q.What is level-0 DFD?

A. El DFD de nivel de abstracción más alto se conoce como DFD de nivel 0, también llamado DFD de nivel de contexto, que describe todo el sistema de información como un diagrama que oculta todos los detalles subyacentes.

Q.What is the difference between structured English and Pseudo Code?

A. El inglés estructurado es el idioma inglés nativo que se utiliza para escribir la estructura de un módulo de programa mediante el uso de palabras clave del lenguaje de programación, mientras que Pseudo Code es más parecido al lenguaje de programación y utiliza palabras u oraciones del idioma inglés nativo para escribir partes del código.

Q.What is data dictionary?

A.El diccionario de datos se conoce como metadatos. Es decir, es un repositorio de datos sobre datos. El diccionario de datos se utiliza para organizar los nombres y sus referencias utilizadas en el sistema, como objetos y archivos, junto con sus convenciones de nomenclatura.

Q.What is structured design?

A.El diseño estructurado es una conceptualización del problema en varios elementos de solución bien organizados. Se preocupa por el diseño de la solución y se basa en la estrategia de "divide y vencerás".

Q.What is the difference between function oriented and object oriented design?

A.El diseño orientado a funciones se compone de muchos subsistemas más pequeños conocidos como funciones. Cada función es capaz de realizar una tarea importante en el sistema. El diseño orientado a objetos trabaja en torno a los objetos del mundo real (entidades), sus clases (categorías) y métodos que operan sobre objetos (funciones).

Q.Briefly define top-down and bottom-up design model.

A. El modelo de arriba hacia abajo comienza con una vista generalizada del sistema y lo descompone en otros más específicos, mientras que el modelo de abajo hacia arriba comienza con los componentes más específicos y básicos primero y sigue componiendo los componentes para obtener un mayor nivel de abstracción.

Q.What is the basis of Halstead’s complexity measure?

A. La medida de complejidad de Halstead depende de la implementación real del programa y considera los tokens utilizados en el programa como base de medida.

Q.Mention the formula to calculate Cyclomatic complexity of a program?

A. La complejidad ciclomática utiliza la fórmula de la teoría de grafos: V (G) = e - n + 2

Q.What is functional programming?

A.La programación funcional es un estilo de lenguaje de programación, que utiliza los conceptos de función matemática. Proporciona medios de cálculo como funciones matemáticas, que producen resultados independientemente del estado del programa.

Q.Differentiate validation and verification?

A. La validación comprueba si el producto se fabrica según los requisitos del usuario, mientras que la verificación comprueba si se siguen los pasos adecuados para desarrollar el producto.

La validación confirma el producto correcto y la verificación confirma si el producto está construido de la manera correcta.

Q.What is black-box and white-box testing?

A.Las pruebas de caja negra verifican si se producen las salidas deseadas cuando se dan valores de entrada válidos. No verifica la implementación real del programa.

La prueba de caja blanca no solo verifica la salida deseada y válida cuando se proporciona una entrada válida, sino que también verifica si el código se implementa correctamente.

Criterios Prueba de caja negra Prueba de caja blanca
Conocimiento del programa de software, diseño y estructura esencial No si
Conocimiento de implementación de software esencial No si
Quién realiza esta prueba en software Empleado de pruebas de software Desarrollador de software
referencia de referencia para el probador Especificaciones de requisitos Detalles de diseño y estructura

Q.Quality assurance vs. Quality Control?

A. Monitores de control de calidad para verificar si se sigue el proceso adecuado mientras el software desarrolla el software.

El control de calidad se ocupa de mantener la calidad del producto de software.

Q.What are various types of software maintenance?

A. Los tipos de mantenimiento son: correctivo, adaptativo, perfectivo y preventivo.

  • Corrective

    Eliminar errores detectados por los usuarios

  • Adaptive

    abordar los cambios en el entorno de hardware y software donde funciona el software

  • Perfective maintenance

    Implementar cambios en los requisitos nuevos o existentes del usuario.

  • Preventive maintenance

    tomar las medidas adecuadas para evitar problemas futuros

Q.What is software re-engineering?

A.La reingeniería del software es un proceso para actualizar la tecnología sobre la que se construye el software sin cambiar la funcionalidad del software. Esto se hace para mantener el software sintonizado con la última tecnología.

Q.What are CASE tools?

A.CASE significa Ingeniería de software asistida por computadora. Las herramientas CASE son un conjunto de programas de aplicación de software automatizados que se utilizan para respaldar, acelerar y suavizar las actividades de SDLC.

¿Lo que sigue?

Además, puede repasar las asignaciones anteriores que haya realizado con el tema y asegurarse de poder hablar con confianza sobre ellas. Si está más fresco, el entrevistador no espera que responda preguntas muy complejas, sino que debe hacer que sus conceptos básicos sean muy sólidos.

En segundo lugar, realmente no importa mucho si no pudo responder algunas preguntas, pero es importante que lo que sea que haya respondido, debe haberlo respondido con confianza. Así que siéntete seguro durante tu entrevista. En tutorialspoint le deseamos la mejor suerte para tener un buen entrevistador y todo lo mejor para su futuro. Salud :-)