Preguntas para entrevistas de Ingeniería de Software


Anuncios


Queridos lectores, estas Preguntas para entrevistas de Ingeniería de Software han sido especialment diseñadas para darles a conocer la naturaleza de las preguntas que pueden encontrarse durante su entrevista en la materia de Ingeniería de Software. Por mi experiencia, les diré que los buenos entrevistadores difícilmente suelen planificar preguntas durante sus enrevistas, normalmente las preguntas suelen empezar con conceptos básicos sobre la materia y más tarde continúan basándose en la conversación y las respuestas que van apareciendo:

Q. ¿Qué es el software de un ordenador?

A. El software de un ordenador es un completo paquete, que incluye programas de software, y documentación y guía del usuario para saber cómo usarlo.

Q. ¿Qué diferencias hay entre el software de un ordenador y un programa de ordenador?

A. Un programa de ordenador es una parte del código de programación, el cual crea tareas bien definidas. En cambio el sofware incluye código de programación, y su documentación y guía del usuario.

Q. ¿Qué es la Ingeniería de software?

A. La Ingeniería de Software es una rama de la Ingeniería asociada al desarrollo de sistemas de software.

Q. Si ya se sabe programación,¿Por qué es necesario aprender conceptos de Ingeniería de Software?

A. Un persona que sabe construir una pared, quizá no pueda construir una casa entera. Del mismo modo, una persona que quiere escribir programas quizá no conozca otros conceptos de Ingeniería informática. Los conceptos de Ingeniería informática guían a programadores a evaluar los requisitos del consumidor final, a diseñar algoritmos antes de empezar con la codificación, a codificar programas, a evaluar lenguages de software y su documentación.

Q. ¿Qué significan 'proceso de Software' y 'Ciclo de vida del desarollo Software (SDLC)'?

A.El ciclo de vida del desarrollo del Software, o proceso software es el desarrollo sistemático siguiendo cada etapa del proceso de desarrollo: Recogida de requisitos, Análisis del sistema, Diseño, Codificación, evaluación, mantenimiento y documentación (en este orden).

Q. ¿Qué modelos disponibles existen de SDLC?

A. Hay muchos modelos disponibles de SDLC, algunos ejemplos son: el modelo de cascada, el modelo de repetición, el modelo en espriral, el modelo V, el modelo 'Big Bang', etc.

Q.¿Cuáles son las fases del SDLC?

A. Las fases genéricas del SDLC son: Recolección de requisitos, análisis de sistema y diseño, Codificación, evaluación e implementación. Las fases dependerán del modelo que escojamos para desarrollar el softwae.

Q. ¿Qué modelo de SDLC es el mejor?

A. Los modelos SDLC se escogen según los requisitos del proceso de desarrollo. El modelo más recomendable Puede variar de software a software.

Podemos seleccionar los mejores modelos de SDLC si las siguiente preguntas se contestan de manera satisfactoria -

  • ¿El SDLC es recomendable para implementar el software en las seleccionadas tecnologías?
  • ¿El SDLC es apropiado para los requisitos y prioridades del cliente?
  • ¿El modelo de SDLC es recomendable para el tamaño y la complejidad del software?
  • ¿El modelo de SDLC es recomendable para el tipo de proyecto e Ingeniería que realizaremos ?
  • ¿El modelo de SDLC es apropiado a nivel geográfico para los desarrolladores?

Q. ¿Qué es 'Gestión de un proyecto software'?

A. La Gestión de un proyecto software es un proceso donde se gestionan todas las actividades como el tiempo, costes y gestión de calidad que se dan en el desarrollo de un software.

Q. ¿Quién es el Director de un proyecto software?

A. El Director de un proyecto software es la persona que se responsabiliza de llevar a cabo el pryecto software.

Q. ¿Cuáles son las tareas que debe hacer el Director de un proyecto software?

A. El Director de un proyecto Software se ocupa de las actividades de gestión del software. Es responsable de la planicación, de monitorear el proceso, de la comunicación entre stakeholders (quienes pueden afectar o son afectados por las actividades de una empresa), de la gestión de riesgos y recursos, y de la satisfatoria ejecución de todo el desarrollo y entrega del proyecto teniendo en cuenta las limitaciones de tiempo, coste y calidad.

Q. ¿Qué es el 'scope' de software?

A. Es un límite bien definido, que incluye todas las actividades que se hacen con la finalidad de desarrollar y entregar el producto software.

El scope del software define de manera clara todas las funionalidades y artefactos que serán entregadas como parte del software. El scope identifica lo que hará o no hará el producto final, y lo que contendrá o no.

Q. ¿Qué es la estimación del proyecto?

A. Es un proceso donde se estiman varios aspectos del producto software, con tal de calcular el coste de desarrollo en cuanto a esfuerzos, tiempo y recursos. Esta estimación puede obtenerse a raíz de experiencias anteriores, consultando o usando fórmulas definidas previamente.

Q. ¿Cómo podemos obtener el tamaño del producto software?

A. El tamaño del producto se puede calcular usando uno de estos dos métodos -

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

Q.¿Qué son los puntos de función?

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

Q.¿Cuáles son las técnicas de estimación de software disponibles?

A. Hay muchas técnicas disponibles. Las más usadas son -

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

Q.¿Qué es Línea de base?

A. La línea de base es una medida que define la integridad de una fase. Cuando se completan todas las actividades asociadas a una fase concreta, la fase se considera terminada y actúa como línea de base para la siguiente fase.

Q.¿Qué es Gestión de la configuración de un Software?

A. La Gestión de la configuración de un Software es un proceso de control y segumiento de los cambios en el software en cuanto a requisitos, diseño, funciones, y desarrollo del producto.

Q.¿Qué es el control de cambio?

A. El control de cambio es una función de la Gestión de la configuración, la cual asegura que todos los cambios que se hagan sobre el sistema de software sean consistentes y hechos siguiendo ciertas normas y regulaciones de organización.

Q.¿Cómo se puede medir la ejecución del proyecto?

A. Puede medirse a través del monitoreo de actividad, el informe de actualización, Lista de control Milestone (Milestone checklist).

Q.Mencione algunas herramientas de gestión de proyectos.

A. Hay varias herramientas para gestión de proyectos usadas según los requisitos del proyecto y las normas de organización. Entre ellas se incluyen: El esquema Gantt, el esquema PERT, el histograma de recursos, el método de la ruta crítica o del camino crítico, El estado de las pruebas,etc.

Q.¿Qué son los requisitos Sofware?

A. Los requisitos Software son descripciones funcionales de un sistemas de software concreto. Los requisitos abarcan la descripción del sistema de objetivos, así como de sus funcionalidades y características. Los requisitos expresan las expectativas del sistema por parte de los usuarios.

Q.¿Qué signific estudio de viabilidad?

A. Es una medida para evaluar los beneficios y practicidad del desarrollo del proyecto software. El analizador software conduce un estudio para entender la viabilidad técnica, económica y operativa del proyecto.

  • Económica - Recursos para el transporte, costes de formación, coste de servicios y herramientas adicionales, y estimación general de costes y beneficios del proyecto.

  • Técnica - ¿Es posible desarrollar este sistema? Evaluar la idoniedad de máquina(s) y de sistema(s) operativos en los que se ejecutará el software, conocimientos existentes para el desarrollo, formación, y servicios y herramientas para el proyecto.

  • Operativa - ¿Es posible que la organización se adapte a los cambios realizados siguiendo las demandas del proyecto? ¿Vale la pena resolver el problema?

Q.¿Cómo se pueden recolectar los requisitos?

A. Los requisitos se pueden recoger a través de entrevistas, encuestas, Análisis de tareas, lluvia de ideas, Análisis de dominio, prototipos, estudiando versiones de software ya existentes, y a través de la observación.

Q.¿Qué es SRS?

A. SRS o Software Requirement Specification ( Requisitos del software) es un documento que se hace en el proceso de recogida de requisitos. También se considera un proceso de perfección y documntación de requisitos.

Q.¿Qué son los requisitos funcionales?

A. Los requisitos funcionales son características esperadas por los usuarios del producto software que se propone.

Q.¿Qué son los requisitos no funcionales?

A. Los requisitos no funcionales son implícitos y tienen relación con la seguridad, actuación, interoperabilidad, costes etc.

Q.¿Qué es medida de software?

A. La medida del Software se entiende como un proceso para cuantificar y simbolizar varios atributos y aspectos del software.

Q.¿Qué es métrica de software?

A. La métrica de software aporta medidas para varios aspectos del proceso y del producto de software. Se pueden agrupar en –

  • Métrica de requisitos : Requisitos de duración, integridad...
  • Métrica de producto :Líneas de código, métrica orientada al objeto, métrica de evaluación y diseño
  • Métrica de proceso: Evaluación y seguimiento del presupuesto, temporalización, recursos humanos.

Q.¿Qué es modularización?

A. La modularización es una técnica para dividir el sistema de software en distintos módulos, los cuales se encargan de llevar a cabo un o más tareas de manera independiente.

Q.¿Qué significa concurrencia y cómo se logra en el software?

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

Ejemplo

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

La concurrencia, se implementa dividiendo el software en múltiples unidades de ejecución independientes llamadas procesos y hilos de ejecución, y ejecutándolas en paralelo.

Q.¿Qué significa cohesión?

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

Q.¿Qué es acoplamiento?

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

Q.¿Puede mencionar un ejemplo de análisis de software y de herramientas de deseño?

A. Hay varios ejemplos: DFDs (Data Flow Diagrams en sus siglas en inglés, diagramas de flujo de datos en español), esquemas esructurados, Structured English, Diccionario de datos, Diagrama HIPO (Hierarchical Input Process Output, en sus siglas inglesas), ER (Entity Relationship en inglés, en español relación entre entidades) Diagramas y tablas de decisión.

Q.¿Qué es el nivel 0 de DFD?

A. Se da cuando hay un alto nive de abstracción, también se denomina nivel de contexto DFD, el cual representa la totalidad del sistema de información en un diagrama incluyendo todos los detalles.

Q.¿Cuál es la diferencia entre structured English y peudocódigo?

A. Structured English es el lenguage inglés nativo usado para escribir la estructura del módulo de un programa usando palabras clave de lenguaje de programaión, mientras que el pseudocódigo es más similar al lenguaje de programación y usa palabras o frases en lengua inglesa nativa para escribir partes del código.

Q.¿Qué es un diccionario de datos?

A. El diccionario de datos, también llamado Metadato, es un repositorio de datos sobre los datos. Se usa para organizar los nombrs y sus referencias usadas en el sistema como objetos y archivos con su nomenclatura.

Q.¿Qué es el diseño estructurado?

A. Es la conceptualización de un problema en varios elementos de solución bien organizados. Se ocupa del diseño de la solución y se basa en la estrategia ‘dividir y conquistar’.

Q.¿Cuál es la diferencia entre el diseño orientado a la función y el que se orienta hacia el objeto?

A. El diseño orientado a la función se comprime en varios y pequeños sub-sistemas llamados funciones. Cada función es capaz de llevar a cabo tareas significantes en el sistema. El diseño orientado al objeto se centra en los objetos del mundo real que nos rodean (entidades), así como en sus clases (categorías) y en sus métodos aplicados a objetos (funciones).

Q.Defina de manera breve los modelos de diseño 'top-down' y 'bottom-up'.

A. El modelo Top-down (‘de arriba abajo’) empieza con una vista general del sistema y lo descompone en unidades espcíficas, en cambio el modelo bottom-up (‘de abajo arriba’) empieza con los componentes más básicos y continúa creando componentes para lograr alto nivel de abstracción.

Q.¿Cuál es la base de la medida de complejidad de Halstead?

A. La medida de complejidad de Halstead’s depende de la implementación del programa y considera autentificadores o identificadores usados en el programa para basarse en su medición.

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

A. Cyclomatic complexity uses graph theory’s formula: V(G) = e – n + 2

Q.What is functional programming?

A. Functional programming is style of programming language, which uses the concepts of mathematical function. It provides means of computation as mathematical functions, which produces results irrespective of program state.

Q.Differentiate validation and verification?

A. Validation checks if the product is made as per user requirements whereas verification checks if proper steps are followed to develop the product.

Validation confirms the right product and verification confirms if the product is built in a right way.

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

A. Black-box testing checks if the desired outputs are produced when valid input values are given. It does not verify the actual implementation of the program.

White-box testing not only checks for desired and valid output when valid input is provided but also it checks if the code is implemented correctly.

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

Q.Quality assurance vs. Quality Control?

A. Quality Assurance monitors to check if proper process is followed while software developing the software.

Quality Control deals with maintaining the quality of software product.

Q.What are various types of software maintenance?

A. Maintenance types are: corrective, adaptive, perfective and preventive.

  • Corrective

    Removing errors spotted by users

  • Adaptive

    tackling the changes in the hardware and software environment where the software works

  • Perfective maintenance

    implementing changes in existing or new requirements of user

  • Preventive maintenance

    taking appropriate measures to avoid future problems

Q.What is software re-engineering?

A. Software re-engineering is process to upgrade the technology on which the software is built without changing the functionality of the software. This is done in order to keep the software tuned with the latest technology.

Q.What are CASE tools?

A. CASE stands for Computer Aided Software Engineering. CASE tools are set of automated software application programs, which are used to support, accelerate and smoothen the SDLC activities.

What is Next?

Further, you can go through your past assignments you have done with the subject and make sure you are able to speak confidently on them. If you are fresher then interviewer does not expect you will answer very complex questions, rather you have to make your basics concepts very strong.

Second it really doesn't matter much if you could not answer few questions but it matters that whatever you answered, you must have answered with confidence. So just feel confident during your interview. We at tutorialspoint wish you best luck to have a good interviewer and all the very best for your future endeavor. Cheers :-)



Advertisements