La calidad en el software

18-04-2019

nandawteK

Calidad del software

Nada como enfrentarte a tu yo del pasado.

Legible vs Ofuscado Un software que no es legible cuesta mucho meterle mano.

Flexible vs Rígido Un software flexible acepta mejor nuevas funcionalidades.

Robusto vs Frágil Cuidado no se rompa.

Reusable vs Inmóvil Nada como poder reutilizarlo entre proyectos.

El software es como tener un hijo, no ocurre el parto y se acaba, lo deseable es que sea para toda la vida, indicaría que tenemos un cliente toda la vida. Para ello todos los cuidados son pocos, si queremos en un futuro poder meterle mano con fácilidad, extenderlo, mantenerlo o adaptarlo.

Por todo esto la calidad del software es vital.

Factores de la Calidad

  • Corrección: Hace lo que se pide
  • Fiabilidad: No falla
  • Eficiencia: No consume más alla de lo necesario
  • Integridad: Si hay problemas se resuelven fácilmente
  • Usabilidad: Es fácil de usar
  • Mantenimiento: Es fácil de mantener y extender
  • Flexibilidad: Puedo añadir nuevas funcionalidades
  • Testeable: Es fácil de testear
  • Portabilidad: Es posible usarlo en otra máquina o soporte.
  • Reusabilidad: Parte del software es posible reusarlo en otras aplicaciones
  • Inter-operatividad: Puede comunicarse con otras aplicaciones y sistemas.

La calidad se ve afectada

  1. Cambios de requisitos, que además son inherentes al software.
  2. Mala gestión de dependencias.
  3. No hacer buen código.
  4. Falta de apoyo de la dirección.

La complejidad del software

Los clientes nos piden automatizar sistemas ya de por si complejos, y hacerlo es aún más complejo, por lo que el cliente debe estar implicado en el proceso.

  1. Ley del cambio continuo
  2. Ley de la complejidad creciente.
  3. La flexibilidad del software hace que sea complejo.
  4. Es imposible testear todos los estados del sistema.
  5. Gestionar el resultado de los requisitos no es fácil, por lo que requiere un análisis y diseño del software exquisito
  6. El código tiene que aguantar los vaivenes y cambios en el mismo. Hacer un software de calidad nos ayudará en el futuro.

El triángulo de hierro.

Calidad en el centro. Dependiendo de el coste, el tiempo y la funcionalidad o requerimientos de la aplicación.

La calidad estará condicionada a los vertices del triángulo.
El cliente nunca podrá definir más de dos aspectos del triángulo de hierro.

La calidad es un valor imprescindible y no puede ser baja o puede ser un problema futuro que derive en el fracaso del proyecto.

El coste no lo soluciona todo, "nueve mujeres no pueden tener un bebé en un mes."

Niveles del software

  • Primer nivel: Código sucio y codigo limpio
  • Segundo nivel: Principios Grasp y SOLID, Patrones y antipatrones de desarrollo.
  • Tercer nivel: Patrones y antipatrones de arquitectura del software.

Patrones de diseño

Soluciones instauradas y muy probadas a problemas muy concretos y localizados que ocurren frecuentemente.

El mejor ejemplo para esto son la arquitectura de las ciudades, a determinados problemas de recurrentes, se le aplican unos patrones que se sabe funcionan, como rotondas o la estructura de las calles en cuadrícula, parkings subterraneos