Pautas a considerar en el desarrollo del software

Pautas a considerar en el desarrollo del software

Mantenga su código limpio con estas pautas de desarrollo de software.


Flexibilidad y Extensibilidad

La flexibilidad es la capacidad del software para agregar / modificar / quitar funcionalidad sin dañar el sistema actual. La extensibilidad es la capacidad del software para agregar funcionalidad sin dañar el sistema, por lo que puede ser pensado como un subconjunto de flexibilidad. Esos cambios de funcionalidad pueden ocurrir según los requisitos cambiantes, o una obligación si el proceso de desarrollo es uno de los métodos iterativos. El cambio es inevitable en el desarrollo de software y por lo tanto, esta es una de las propiedades más importantes de software de calidad.

Mantenibilidad y legibilidad

La capacidad de mantenimiento es similar a la flexibilidad, pero se centra en las modificaciones sobre las correcciones de errores y modificaciones de funciones menores,  y no de extensiones funcionales importantes. Puede ser soportado con una definición de interfaz útil, documentación y también documentación de código y / o código autodocumentado. Cuanto más adecuada y útil sea la documentación, más fácil se podrá realizar el mantenimiento.

Rendimiento y Eficiencia

El rendimiento es principalmente el tiempo de respuesta del software. Este tiempo de respuesta debe estar en intervalos aceptables (por ejemplo, unos pocos segundos), y no debería aumentar si aumenta el recuento de transacciones. Y también se debe considerar que los recursos son costes. Por lo que, la eficiencia debe ser apoyada con la utilización apropiada de los recursos. Como ejemplo exagerado, la capacidad de realizar una función simple sólo utilizando una máquina de procesador de 32 o 1 TB de espacio en disco no es aceptable. La relación fuente / rendimiento óptima debe ser controlada.

Escalabilidad

Un sistema escalable responde a las acciones del usuario en un tiempo aceptable, incluso si la carga aumenta. Por supuesto, se puede agregar más hardware para manejar la transacción del usuario cada vez mayor, pero la arquitectura no debe cambiar mientras se hace esto. Esto se llama escalabilidad vertical. Capacidad de correr en cuenta múltiple, cada vez mayor número de máquinas es el procesamiento múltiple. Si el software puede realizar ese tipo de procesamiento, esto se llama escalabilidad horizontal. Un sistema escalable ideal debe satisfacer ambos de estos métodos.

Disponibilidad, robustez, tolerancia a fallos y fiabilidad:

Un software robusto no debe perder su disponibilidad incluso en la mayoría de los estados de falla. Incluso si algunos componentes están rotos, puede continuar funcionando. Además, incluso si la aplicación entera se bloquea, puede recuperarse utilizando hardware de respaldo y datos con enfoques de tolerancia a fallos. Siempre debe haber un plan B e incluso C, D… . La fiabilidad también significa la integridad y consistencia del software incluso en condiciones de alta carga. Por lo tanto, es relevante contar con disponibilidad y escalabilidad. Un sistema poco fiable es también inescalable.

Usabilidad y accesibilidad

Las interfaces de usuario son las únicas partes visibles del software según el punto de vista del usuario. Por lo tanto, la simplicidad, tomar menos tiempo para completar un trabajo, aprendizaje rápido para el usuario, etc son aspectos muy importantes a considerar. El principio más conocido de esta propiedad es KISS (Keep It Simple Stupid). Simple es siempre lo mejor. Un software utilizable también debe soportar diferentes tipos de control de accesibilidad para personas con discapacidades.

Compatibilidad y portabilidad de la plataforma

Un software de calidad debe funcionar en tantas plataformas como sea posible. Por lo tanto, más personas pueden hacer uso de ella. En diferentes contextos podemos mencionar diferentes plataformas, esto puede ser plataformas de SO, tipos de navegador, etc. Y la portabilidad trata sobre la adaptación de software que puede ejecutarse en diferentes plataformas, por ser más compatible con la plataforma. En este sentido, la portabilidad también está relacionada con la flexibilidad

Testabilidad y Gestión

El software de calidad requiere pruebas de calidad. El código fuente debe ser probado con la mayor cobertura y con los métodos de prueba más eficientes. Esto se puede realizar usando correctamente: encapsulación, interfaces, patrones, técnicas de bajo acoplamiento, etc. Además de la testabilidad, un software calificado debe ser manejable después del despliegue. Puede monitorizarse, p. Rendimiento o uso de datos, o puede permitir que el desarrollador configure el sistema fácilmente. La creación de un sistema de registro exitoso es otra cuestión muy importante sobre manejabilidad.

Seguridad

La seguridad es un tema muy importante en el desarrollo de software, especialmente para web o móviles que pueden tener millones de usuarios con la capacidad de acceso remoto al sistema. Debe crearse una política de seguridad y aplicarla correctamente. Minimizando los puntos de entrada o vulnerabilidades. Esto puede incluir técnicas de autorización y autenticación, protección de ataques de red, cifrado de datos, etc. Todos los posibles tipos de fugas de seguridad deben ser considerados, de lo contrario un día un sólo ataque puede bloquear toda su aplicación y toda la empresa.

Funcionalidad y corrección

La funcionalidad (o corrección) es la conformidad del software con los requisitos y especificaciones reales. De hecho, esto es la precondición de una aplicación, y tal vez no un factor de calidad, pero queríamos señalar que como el último factor de calidad, para considerar: Los factores de calidad no son significativos cuando estamos hablando de software no funcional. En primer lugar, realizar la funcionalidad deseada y producir software correcto, a continuación, aplicar factores de calidad en él. Si usted puede realizar ambos paralelamente, es lo ideal.

 

About the author

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR