Gracias por la A2A
Como cualquier evaluación de calidad, comienzas con métricas.
Debe definir las métricas adecuadas para obtener la información correcta de su esfuerzo de calidad. Si utiliza métricas que no están alineadas con lo que desea, no se acercará a su objetivo.
- ¿Es el lenguaje Python una buena herramienta para aprender algoritmos, estructuras de datos e ingeniería de software?
- ¿Cuáles son las áreas en las que un ingeniero front-end debería tener una sólida comprensión?
- Cómo escribir un código hermoso
- ¿Qué idioma tiene el software engg? mayormente código en Amazon / Google / Facebook / Microsoft?
- ¿Cuáles son mis posibilidades de pasar del soporte técnico al desarrollo en NTT Data?
Es por eso que encontrará muchas formas diferentes de evaluar la calidad del diseño del software, dependiendo de la metodología que esté utilizando. Desafortunadamente, el más utilizado es el binario: ¿se hace el diseño, sí / no? E incluso entonces “hecho” está vagamente definido.
Como ejemplo: para una aplicación comercial, utilizando un escenario clásico en cascada, primero realizó un análisis adecuado, documentando todos los casos de uso y logrando que los accionistas firmen dichos requisitos; luego produce un diagrama de base de datos ER, un diagrama de módulo / clase y algunas especificaciones para la lógica de flujo de trabajo principal. Suponiendo esta metodología y escenario, puede medir la cobertura de sus casos de uso según estén relacionados con la implementación propuesta; medir la normalización de su modelo de base de datos; y métricas de complejidad como la complejidad ciclomática.
Complejidad de programación
Luego, puede comparar varios diseños propuestos, o comparar sus métricas con una línea base de los valores que desea orientar a lo largo del tiempo. Como cualquier medida que pueda implementar en un proceso, comenzará a medir su proceso tal como está hoy, luego usará la medida para mejorar.
Pero si estaba diseñando un juego en línea, tendrá una metodología y un conjunto de métricas completamente diferentes. La complejidad del código sería muy similar, pero en lugar de un proceso / diseño centrado en la base de datos, puede tener métricas sobre la velocidad gráfica o la experiencia del usuario.