---
# System prepended metadata

title: Entrega 2 Programación Avanzada

---

Componente grupal:

a) Identificación del equipo

Nombre equipo: Mensajería LD
Módulo: B
Integrantes: David Ibáñez, Luis Pérez

Realización de entrega de rama Github FTR actualizada:

![](https://hackmd.io/_uploads/r1fgq06za.png)

![](https://hackmd.io/_uploads/Hy7gq0TG6.png)

![](https://hackmd.io/_uploads/H1mx50Tfp.png)

b) Muestra de alguna funcionalidad:

En el siguiente link se puede observar la funcionalidad de conexión de un cliente en el servidor.

https://youtu.be/OL6sbSIBdh4

c) Complejidad ciclomática total y evaluación de riesgo:

Complejidad ciclomática clase Cliente:
![](https://hackmd.io/_uploads/Sk6XECaMT.png)
Complejidad ciclomática clase ClienteHilo:
![](https://hackmd.io/_uploads/BkcVN0TzT.png)
Complejidad ciclomática clase Servidor:
![](https://hackmd.io/_uploads/SksBVCTzT.png)

La suma total de la complejidad de todas las clases suma un total de 55. Esto dividido por el total de funciones, nos entrega una complejidad ciclomática total de 4,2307. Por lo tanto podemos concluir nuestra evaluación de riesgo como un programa simple sin mucho riesgo.

d) Complejidad ciclomática por clases:

Complejidad ciclomática clase Cliente: La suma de la complejidad de esta clase corresponde a 15. Esto dividido por el total de funciones nos entrega un valor de 5. Por lo cual podemos concluir nuestra evaluación de riesgo como un programa simple sin mucho riesgo.

Complejidad ciclomática clase ClienteHilo: La suma de la complejidad de esta clase corresponde a 34. Esto dividido por el total de funciones nos entrega un valor de 4,8571. Por lo cual podemos concluir nuestra evaluación de riesgo como un programa simple sin mucho riesgo.

Complejidad ciclomática clase Servidor: La suma de la complejidad de esta clase corresponde a 8. Esto dividido por el total de funciones nos entrega un valor de 1,6. Por lo cual podemos concluir nuestra evaluación de riesgo como un programa simple sin mucho riesgo.

e) Evaluación acoplamiento y plan de mejora:

![](https://hackmd.io/_uploads/HyZxdRafp.png)

Creemos que la clase ClienteHilo, podría reemplazarse por una subdivición de dos clases, para así modularizar cada proceso de Thread en clases distintas, cada proceso con su respectiva clase asociada.

Componente individual:

f) Evaluación de cohesión

David Ibáñez:

![](https://hackmd.io/_uploads/BJE1KATMT.png)

Observamos como la función run, debido a sus características asociadas a override, no posee conexión con ninguna variable, esto debido a que dentro dicha función, es llamada la función lanzadorServidor.

Luis Pérez:

![](https://hackmd.io/_uploads/HkdxtRafT.png)

La función Cliente al ser una función constructor, no posee interacción con ninguna variable en este caso. Sin embargo, dentro de la función lanzadorCliente es llamada la función Cliente, estableciendo de esta forma relación entre ambas clases.
