Alvaro Garcia Varela
Test por , creado hace más de 1 año

Test sobre Repaso entornos de desarrollo: Refactorizacion. (Teoría), creado por Alvaro Garcia Varela el 18/05/2016.

68
1
0
Alvaro Garcia Varela
Creado por Alvaro Garcia Varela hace alrededor de 8 años
Cerrar

Repaso entornos de desarrollo: Refactorizacion. (Teoría)

Pregunta 1 de 31

1

¿Que intentamos hacer cuando refactorizamos un código?

Selecciona una o más de las siguientes respuestas posibles:

  • Hacerlo más fácil de comprender.

  • Hacerlo más complejo, pero con un funcionamiento más optimo.

  • Hacerlo más fácil de modificar.

  • Hacer un código más limpio.

  • Tener una revisión del código para ver su funcionalidad detectar fallos.

  • Cambiar la funcionalidad del programa de manera rápida.

  • Hacer unos cambios en el codigo sin cambiar su comportamiento observable

Explicación

Pregunta 2 de 31

1

¿Cual es el objetivo final de la refactorizacion?

Selecciona una de las siguientes respuestas posibles:

  • Mantener el código sencillo y bien estructurado.

  • Entender la funcionalidad del programa y mejorarlo.

  • Crear extensiones de ese código para añadir nuevas funcionalidades.

Explicación

Pregunta 3 de 31

1

Cual es la etapa de desarrollo especifica para realizar una refactorizacion.

Selecciona una de las siguientes respuestas posibles:

  • Etapa de análisis.

  • Etapa de diseño.

  • Etapa de programación.

  • Etapa de pruebas.

  • Etapa de documentación.

  • Etapa de mantenimiento.

  • Etapa de codificación.

  • No existe ninguna etapa de desarrollo especifica.

Explicación

Pregunta 4 de 31

1

¿Cuales son las razones de la refactorizacion?

Selecciona una o más de las siguientes respuestas posibles:

  • Calidad. Hacer que el código sea sencillo bien estructurado, permitiendo que una persona externa al equipo de desarrollo pueda entender el proyecto sin haber estado integrado durante varios meses.

  • Eficiencia. Mantener un buen diseño y un código estructurado nos permite ser más eficientes a la hora de desarrollar. Mejora las modificaciones a la hora de eliminar código repetido o una simplificación del diseño.

  • Evitar la reescritura de código. Reescribir el código es peor que refactorizarlo. Leer y modificar un código que no se conoce es bastante complicado si este código no sigue estándares.

  • Modificación. Para modificar es bueno refactorizar. La refactorizacion nos permite modificar un código de manera segura y eso nos permite continuar de manera positiva el proyecto.

  • Escalabilidad. Refactorizar nos permite escalar un proyecto para añadirle funciones y hacerlo mucho más completo.

Explicación

Pregunta 5 de 31

1

¿Que se debe hacer los cambios de un proyecto empiezan a ser muy costosos?

Selecciona una de las siguientes respuestas posibles:

  • Continuar. Una vez empezado se debe terminar.

  • Frenar la inercia de seguir desarrollando.

  • Reiniciar de cero. Si algo que has hecho empieza a hacer costoso igual lo puedes hacer de cero de una manera más optima.

Explicación

Pregunta 6 de 31

1

¿Como se conoce a los síntomas que indican que algún código de software tiene problemas?

Selecciona una de las siguientes respuestas posibles:

  • Bad Smells

  • Código errado

  • Código problematico

Explicación

Pregunta 7 de 31

1

¿Por que es imprescindible que un proyecto tenga pruebas automáticas?

Selecciona una o más de las siguientes respuestas posibles:

  • Para saber si el programa tiene el mismo funcionamiento que antes de los cambios.

  • Para saber si el desarrollo sigue cumpliendo los requisitos que implementaba.

  • Por que refactorizar sin ellas lleva un alto riesgo.

Explicación

Pregunta 8 de 31

1

Refactorizar es considerado un avance significativo del proyecto para los clientes.

Selecciona uno de los siguientes:

  • VERDADERO
  • FALSO

Explicación

Pregunta 9 de 31

1

¿Por que es importante tener la refactorizacion bajo control?

Selecciona una de las siguientes respuestas posibles:

  • Por que si refactorizar se te va de las manos se puede convertir en una molestia ya que llegas a sentir que es una perdida de tiempo y sobre todo te da una sensación de no estar avanzando en el proyecto.

  • No hace falta añadir moficiaciones que el cliente no ha pedido, por lo que hay que fijar los objetivos antes de empezar a refactorizar.

  • Refactorizar es un tipo de practica de alto riesgo, si no se saben los objetivos puede resultar que se cambie demasiado el código y cree un cambio en el funcionamiento del programa.

Explicación

Pregunta 10 de 31

1

Cuando hay problemas de comunicación en el equipo de desarrollo hay que detener el desarrollo y reunir a todo el equipo.

Selecciona uno de los siguientes:

  • VERDADERO
  • FALSO

Explicación

Pregunta 11 de 31

1

¿Que se debe hacer si se excede el tiempo planificado para refactorizar?

Selecciona una de las siguientes respuestas posibles:

  • Es necesario un replanteamiento de la refactorizacion para no perder el tiempo o tener gastos innecesarios.

  • Planificar nunca esta de mas. Mientras mas planificado este más perfecto sera.

  • No planifiques. Déjalo para otro momento o comienza la refactorizacion sin ello.

Explicación

Pregunta 12 de 31

1

¿Como se debe mantener la refactorizacion bajo control?

Selecciona una de las siguientes respuestas posibles:

  • Definiendo claramente los objetivos antes de comenzar y estimando la duracion.

  • Teniendo un equipo vigilando de las personas que se encargan de refactorizar.

  • Haciendo documentación exhaustiva sobre la refactorizacion.

Explicación

Pregunta 13 de 31

1

¿Es importante las reuniones diarias para facilitar la comunicación y conocer el estado actual, los problemas y el objetivo de nuestro proyecto?

Selecciona uno de los siguientes:

  • VERDADERO
  • FALSO

Explicación

Pregunta 14 de 31

1

¿Que es la espiral refactorizadora?

Selecciona una de las siguientes respuestas posibles:

  • Una refactorizacion conduce a otra refactorizacion hasta que resulta ser mas complicada y no se puede determinar el tiempo que se tardara en refactorizar.

  • Una refactorizacion conduce a otra por lo que resulta más sencillo refactorizar el código y se tarda menos.

  • Se encuentran todos los Bad Smells y se usa una sola técnica de refactorizacion para terminar de refactorizar de forma más eficiente y rapida.

Explicación

Pregunta 15 de 31

1

¿Que medidas aplicamos para evitar una "Espiral refactorizadora"?

Selecciona una o más de las siguientes respuestas posibles:

  • Determinar el objetivo de la refactorizacion antes de empezar.

  • Si aparece nuevo código susceptible de refactorizacion se anota y no se refactoriza, aun.

  • Introducir código en el sistema de control de versiones.

  • Refactorizar todo el código que te encuentres.

  • Eliminar el código que sea susceptible a la refactorizacion.

Explicación

Pregunta 16 de 31

1

Las herramientas para detectar Bad Smells ayudan a sustituir al sentido comun.

Selecciona uno de los siguientes:

  • VERDADERO
  • FALSO

Explicación

Pregunta 17 de 31

1

Selecciona las herramientas que sirvan para identificar Bad Smells.

Selecciona una o más de las siguientes respuestas posibles:

  • JavaStyle.

  • JCSC

  • PMD

  • FindBug

  • EasyUML

  • BugFiction

  • PDM

Explicación

Pregunta 18 de 31

1

¿Cuanto tiempo ocupa refactorizar?

Selecciona una de las siguientes respuestas posibles:

  • Más tiempo que desarrollar.

  • Una pequeña parte relacionado al tiempo dedicado a añadir nuevas funcionalidades.

  • El mismo tiempo que desarrollar.

Explicación

Pregunta 19 de 31

1

Tomar actitudes exigentes o criterios excesivamente personales respecto a la calidad del código puede acabar siendo un riesgo para el proyecto.

Selecciona uno de los siguientes:

  • VERDADERO
  • FALSO

Explicación

Pregunta 20 de 31

1

Di las practicas saludables a la hora de implantar la refactorizacion de un código dentro de un proyecto.

Selecciona una o más de las siguientes respuestas posibles:

  • Escribir pruebas unitarias y funcionales.

  • Usar herramientas especializadas.

  • Dar formación sobre patrones de refactorizacion y de diseño.

  • Refactoriar los principales fallos de diseño.

  • Comenzar a refactorizar el codigo tras añadir cada nueva funcionalidad en grupo.

  • Implantar refactorizacion continua al desarrollo completo.

  • Elegir a un equipo competente para refactorizar.

  • Refactorizar todo el proyecto.

  • Evitar refactorizar continuamente el código durante el desarrollo para evitar perder el tiempo durante el desarrollo.

Explicación

Pregunta 21 de 31

1

¿Como ayuda la existencia de pruebas automatizadas la refactorizacion?

Selecciona una o más de las siguientes respuestas posibles:

  • El riesgo de la refactorizacion disminuye. Al terminar se puede saber que todo sigue funcionando de manera correcta.

  • Evita efectos colaterales ya que cuando un desarrollar realiza una refactorizacion puede comprobar que no ha estropeado nada.

  • Permiten que la refactorizacion vaya más rápida por que se reduce el tiempo de comprobación sobre el funcionamiento del proyecto.

  • Aumenta la velocidad de implementacion de funcionalidades y su funcionamiento respecto al código.

  • Permite encontrar fallos en caso de implementar más funcionalidades.

  • Refactorizar sin test es una actividad de alto riesgo. Solo se debe hacer en casos sencillos y con herramientas especializadas.

Explicación

Pregunta 22 de 31

1

¿Que significa TDD?

Selecciona una de las siguientes respuestas posibles:

  • Television Digital Distante.

  • Desarrollo guiado por Pruebas.

  • Test de Direccionamiento y Digitabilidad.

Explicación

Pregunta 23 de 31

1

¿Que es la TDD y cual es su objetivo?

Selecciona una o más de las siguientes respuestas posibles:

  • Es una metodología ágil que propone integrar las pruebas y la refactorizacion.

  • Se busca implementar las pruebas antes de crear el código a probar. Agiliza la creacion de codigo y la realizacion de pruebas unitarias.

  • Es una metodología parecida a la scrum.

  • Busca solucionar los problemas de la "Espiral de Refactorizacion".

Explicación

Pregunta 24 de 31

1

Di dos aspectos de gran importancia en el Desarrollo de aplicaciones.

Selecciona una de las siguientes respuestas posibles:

  • La refactorizacion y las pruebas unitarias.

  • El desarrollo y ampliación del programa.

  • Tipo de mantenimiento y refactorizacion.

Explicación

Pregunta 25 de 31

1

Selecciona ejemplos de refactorizaciones complejas o que sean triviales para el proyecto.

Selecciona una o más de las siguientes respuestas posibles:

  • Sustituir una variable llamada "v" y renombrarla a "velocidad" para que sea más significativa

  • Crear un método común para evitar el código duplicado.

  • Trasformar el código dentro de un bloque en una subrutina.

  • Transformar una sentencia "if" en polimorfismo.

  • Reducir el tamaño de un método para reutilizarlo con mayor facilidad.

  • Cambiar un método de clase por que utiliza más elementos de la clase nueva que de la antigua.

Explicación

Pregunta 26 de 31

1

Di que significan los siguientes patrones de refactorizacion:







Arrastra y suelta para completar el texto.

    Mismo código en más de un lugar.
    Más corto más fácil reutilizarlo.
    Se pasan demasiados parámetros.
    Los cambios no están relacionados.
    Varias modificaciones en diversos lugare
    Utiliza más elementos de otra clase.
    Solo tienen "get" y "set".
    Uso de pocas caracteristicas de supclass

Explicación

Pregunta 27 de 31

1

En el patrón de refactorizacion: Lista de parámetros extensa ¿Cual es el problema principal?

Selecciona una de las siguientes respuestas posibles:

  • Se pasan muchos parámetros al objeto, resultan ser demasiado difíciles de entender y suelen variar con frecuencia. Los métodos solo deberían tener aquellos minimamente necesarios para que el objeto consiga su objetivo.

  • Se debe crear una lista de parámetros extensa para evitar que el objeto consuma muchos recursos del sistema. Mejora el rendimiento.

  • El objeto recibe muchos parámetros y la mayoría no son usados. Se vuelve un método inútil y se debe eliminar.

Explicación

Pregunta 28 de 31

1

En el patrón de refactorizacion: Cambio divergente ¿Cual es el problema principal?

Selecciona una de las siguientes respuestas posibles:

  • La clase suele ser modificada por diversos motivos los cuales no tienen relación entre si.

  • La clase sufre muchos cambios. Se debe buscar una solución para que no se modifique tanto.

  • La clase tiene variables difíciles de llamar y suelen estar en privado. Las modificaciones se vuelven muy tediosas.

Explicación

Pregunta 29 de 31

1

En el patrón de refactorizacion: Cirugía de escopeta ¿Cual es el problema principal?

Selecciona una de las siguientes respuestas posibles:

  • Después de un cambio en determinado lugar, se deben cambiar otro código en diferentes partes del proyecto.

  • Es una solución referente a que se deben hacer ciertos cambios en diferentes lugares para hacer un método más sencillo.

  • Eliminar ciertos métodos relacionados inútilmente con el código a refactorizar para evitar el acceso a datos de forma incorrecta.

Explicación

Pregunta 30 de 31

1

En el patrón de refactorizacion: Envidia de funcionalidad ¿Cual es el problema principal y como se resuelve?

Selecciona una o más de las siguientes respuestas posibles:

  • El método utiliza más cantidad de elementos de otra clase que de la propia

  • Se suele resolver el problema pasando el método a la clase que tiene los elementos usados.

  • El método utiliza elementos de otras clases.

  • Se suele resolver pasando los datos necesarios a atributos antes de iniciar el método problemático.

Explicación

Pregunta 31 de 31

1

En el patrón de refactorizacion: Legado Rechazado ¿Cual es el problema principal?

Selecciona una o más de las siguientes respuestas posibles:

  • Las subclases usan pocas características de su superclase.

  • La jerarquia no fue pensada de forma correcta, ya que la subclase apenas necesita a su superclase.

  • Las superclase pasa demasiadas características a sus subclases.

  • La jerarquia es inútil por que no se necesitan distinguir las clases jerarquicamente.

Explicación