Examen 1 Flashcards

1
Q

Que es El refactoring?

A

Es mejorar El Codigo para adaptarse Al diseño sin cambiar su comportamiento

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Es posible extender las funcionalidades Al hacer refactoring

A

No, El refactoring debe garantizar que El comportamiento del software sea el mismo antes y despues del refactoring

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Objetivo del refactoring

A

Mejorar El diseño en terminos de simplicidad, claridad y duplication de codigo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Como se hace El refactoring?

A

Analizamos El diseño
Inspeccionamos
Seleccionamos El olor
Seleccionamos la refactorizacion para El olor
Aplicamos los micropasos
Verificamos que pasa las pruebas de calidad

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Que es la complejidad ciclomatica?

A

Se basa en determinar El Numero de caminos logicos individuals contenios en un programa

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Como se determina la complejidad ciclomatica?

A

Se inicia en 1 y se aumenta 1 por cada sentencia encontrada

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cual es la sentencia mas cara en terminos de complejidad ciclomatica

A

El switch case

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Que es El indice de mantenibilidad?

A

Mide la facilidad de mantenimiento de una solucion de software
Se clasifica en:
Verde:entre 20 y 100
Amarillo: entre 10 y 19
Rojo: entre 0 y 9

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

A que nos referimos con mantenimiento?

A

Reparacion de defectos
Adicion de nuevas funcionalidades o characteristics a las aplicaciones del software

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Es posible desarrollar Codigo y hacer refactoring Al mismo tiempo?

A

No

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Como se le llaman a los sintomas de un mal diseño?

A

Olores

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Principios de diseño

A

Separacion de responsabilidades
Alta cohesion es mejor
Bajo acoplamiento es mejor
Divide y venceras
Ocultamiento de informacion
encapsulamiento

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Interfaz de un objeto

A

Conjunto de metodos que pueden ser accedidos a través de mensajes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Firma de un metodo

A

Corresponde al modificador de acceso, tipo de retorno, nombre del metodo,lista de parametros, excepciones y otros

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Mensaje

A

Objeto destinatario, nombre del metodo, lista de parametros

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Bajo que circunstancias incorporo una clase abstracta en un diseño

A

Una clase tiene relacion de realizacion con una interface y no provee total implementacion de los metodos de la interface
Tiene Al menos un metodo abstracto
Para evitar por las razones que fueran que una clase sea instanciada

17
Q

Bajo que circunstancias es requerido incorporar un metodo abstracto en una clase

A

Cuando El metodo es de character general pero la implementacion cambia dependiendo de la subclase

18
Q

Bajo que circuntacias es requerido incorporar una java interface en un diseño

A

Cuando se establece un protocolo de comportamiento que puede ser implementado por otras clases no relacionadas

19
Q

Cuales son las implicaciones que tiene vincular una clase con una interfaz a través de una relacion de realizacion

A

La clase adquiere una deuda de implementacion del protocolo de comportamiento

20
Q

Bajo que circunstancias es requerido relacionar dos clases usando dependencia

A

Cuando exista Al menos un metodo en la clase A que reciba por parametro uno o mas objetos de tipo B

21
Q

Que es ligado estatico

A

Es El producto de UN mensaje, existe total certeza sobre cual metodo se debe ejecutar y ese vinculo se establece en tiempo de compilacion

22
Q

Que es ligado dinamico

A

Es El producto de UN mensaje, no existe total certeza sobre cual metodo se debe ejecutar. Esa certeza se tiene hasta El tiempo de ejecucion

23
Q

Que es polimorfismo

A

Cuando un mismo elemento se comporta diferente dependiendo del contextodonde se ejecuta

24
Q

Cual es El objetivo de que un metodo main tenga un parametro

A

Para poder establecer

25
Q

Una alta cohesion implica un bajo acoplamiento?

A

Si

26
Q

Que es El pensamiento divergente?

A

Es ver El problema desde multiples perspectivas y genera multiples soluciones

27
Q

Que es El pensamiento convergente

A

Es El que evalua y selecciona la solucion basada en criterios

28
Q

El metodo constructor y los estaticos se cuentan en la interfaz de esa clase vista desde Otra clase?

A

No, sin embargo El constructor si contaria si es visto desde la misma clase, es decir, no visto desde una clase externa

29
Q

Que condiciones se deben cumplir para enviar mensajes entre clases?

A

Existe relacion de composicion, agregacion o dependencia y una interfaz no nula

30
Q

Que es la sobreescritura?

A

Es cuando se vuelve a escribir un la subclase un metodo de la super clase

31
Q

Cuando se habla del principio liskov substitution?

A

Cuando hablamos de jerarquia

32
Q

El incumplimiento del LSP tambien incumple El OCP?

A

Si

33
Q

Es posible enviar mensajes a clases abstractas o interfaces?

A

No, pero una clase abstracta si puede enviar mensajes

34
Q

La fragilidad de un Codigo es producto de la rigidez?

A

Si