Los proyectos de software son cada vez más complejos, más grandes, más integrados y se llevan a cabo mediante el uso de varias variedades de tecnologías. Estas diversas tecnologías necesitan ser administradas y organizadas para entregar un producto de calidad. Los atributos de calidad suelen evaluarse y analizarse a nivel de la arquitectura y no a nivel del código. Y, por último, la arquitectura de los programas informáticos ha adquirido una visibilidad cada vez mayor en los últimos años, ya que la industria del software ha reconocido el papel que desempeñan las arquitecturas de los programas informáticos en el mantenimiento de la alta calidad y en la garantía de la alta calidad y la sostenibilidad de los productos de software. Sin embargo, todavía no hay consenso sobre cómo medir varios aspectos de la arquitectura de software, por lo tanto hoy quería hablar de la métrica de la arquitectura de software, pero descubrí que en la arquitectura de software todavía no hay métrica estándar, este campo es todavía muy inmaduro. Sin embargo, hay algunos expertos que empiezan a hablar de ello, por ejemplo, les recomiendo encarecidamente que asistan al Global Software Architecture Summit en Barcelona ( Octubre, 1-2), dónde Alexander von Zitzewitz hablará sobre “Software Metrics for Architects”.

En cuanto al post, decidí cambiarlo ligeramente y hablar de los atributos de calidad de la arquitectura de software, ya que las métricas se basarán en ellos.

Y el siguiente paso es hacer una encuesta y averiguar qué métricas de la arquitectura de software se utilizan en las diferentes empresas, por lo que puedes contribuir a ello aquí. Una vez que tengamos los resultados, escribiré un post con ellos y destacaré las métricas que utilizamos en los proyectos de software de Apiumhub.

 

 

Atributos de calidad de Arquitectura de Software

La creación de buenas arquitecturas suele ser el precio de una inversión inicial significativa. Por eso es de suma importancia asegurar una buena calidad en todo el proyecto de software.

La medición es crucial y las organizaciones se esfuerzan por llegar a medidas significativas que indiquen el progreso y el rendimiento. La medición en la arquitectura de software es un factor crucial para evaluar las características de calidad del software como la escalabilidad, la eficiencia, la capacidad de mantenimiento, el rendimiento, etc.

A continuación se presentan los atributos clave de la calidad de la arquitectura de software que se deben supervisar continuamente, para realizar mejoras incrementales:

 

  • Mantenibilidad

La capacidad de mantenimiento es el grado en que el software es comprendido, reparado o mejorado. Debería ser fácil hacer cambios en el software, ya sea para la adición de una nueva característica o para la corrección de un error. La mantenibilidad es la facilidad con la que se puede modificar el software, adaptarlo para otros fines o transferirlo de un equipo de desarrollo a otro. El cumplimiento de las reglas de arquitectura del software y la coherencia en toda la aplicación se combinan para hacer que el software sea mantenible. 

 

  • Extensibilidad

La extensibilidad es la capacidad de la arquitectura de software para manejar la adición de nuevas funcionalidades y componentes. Es muy valiosa en el desarrollo ágil ya que las características se añaden a lo largo de la vida del proyecto.

 

  • Simplicidad

Hacer una arquitectura de software tan simple como sea posible es la clave para que sea más comprensible para todos.

 

  • Rendimiento

Muestra la respuesta del sistema a la realización de determinadas acciones durante un determinado período de tiempo. Incluye métricas de la arquitectura como, latencia: tiempo dedicado a responder a un evento, capacidad del canal: el número de eventos que ocurren en un determinado momento.

 

  • Escalabilidad

La escalabilidad es la capacidad del sistema para manejar aumentos de carga sin disminuir el rendimiento, o la posibilidad de aumentar rápidamente la carga. Los indicadores clave para medir este atributo son, si el sistema permite la escalada horizontal, el tiempo necesario para aumentar la escalada, en segundos, las limitaciones de escalada: el número de servidores o la capacidad de la red y la posibilidad de escalar: el aumento del número de transacciones o la cantidad de contenido.

 

  • Interoperabilidad

Responsable del funcionamiento y la transmisión de datos y su intercambio con otros sistemas externos. Un sistema bien diseñado facilita la integración con sistemas de terceros. Para mejorar la interoperabilidad, puede utilizar interfaces externas bien diseñadas, sistemas de estandarización, etc.

 

  • Evolución

La arquitectura de software expone las dimensiones a lo largo de las cuales se espera que un sistema evolucione. 

 

  • Fiabilidad

Riesgo de fallo de software y la estabilidad de un programa cuando se expone a condiciones inesperadas. Un software fiable tiene un tiempo de inactividad mínimo, buena integridad de los datos y no hay errores que afecten directamente a los usuarios.

 

  • Seguridad

Evalúa lo bien que una aplicación protege la información contra el riesgo de infracciones de software. Por ejemplo, la cantidad y la gravedad de las vulnerabilidades encontradas en un sistema de software son indicadores de su nivel de seguridad. También se puede medir la seguridad evaluando el tiempo que se tarda en parchear o arreglar las vulnerabilidades del software. 

 

  • Tasa de entrega

La tasa de entrega significa la frecuencia con la que se envían nuevas versiones de software a los clientes. Dado que una nueva versión de software suele venir con mejoras que afectan directamente a los usuarios, se puede deducir que las tasas de entrega más altas corresponden a un software de mejor calidad para los clientes.  

 

  • Testeabilidad

El software de calidad requiere un alto grado de testeabilidad. Encontrar fallos en el software con un alto grado de comprobabilidad es más fácil, lo que hace que esos sistemas tengan menos probabilidades de contener errores cuando se envían a los usuarios finales. Los principales indicadores de este atributo son el porcentaje de cobertura con integración, las pruebas unitarias, etc.  

 

Esperamos que te haya sido útil, si tienes alguna pregunta, háznoslo saber. ¡Nos especializamos en la arquitectura de software!