Riesgos de soluciones

Son riesgos asociados con el diseño de soluciones

Riesgo Probabilidad Impacto
Diseño de solución errónea o demasiada restrictiva Moderada Grave
[l]
Cambios versiones y características
de las soluciones software utilizadas
Baja Tolerable
No se encuentra un léxico adecuado Baja Tolerabla
La gramática es confusa Moderada Tolerable
[l]
No se ha seguido el principio de
reutilización de código
Baja Tolerable
Código inteligible Baja Tolerable
Errores de seguridad Moderada Grave

El tomar como base una solución errónea puede ocasionar que el software no produzca los resultados esperados. Si los errores son detectado a tiempo el impacto puede ser bajo, pero si el error persiste en varias iteraciones del proceso de desarrollo puede ocasionar pérdidas cuantiosas. Para prevenir esta situación se deben pasar auditorías de calidad en todas las iteraciones, no solo en el sentido de que la solución se ha aplicado correctamente, sino tambien de que estas cumple unos criterios mínimos de optimización, seguridad, flexibilidad, etc. Cuando se detecta que una solución tomada no es correcta se deberá analizar el coste de las distintas alternativas para corregirlo y si fuera necesario aplicar la más óptima para el caso.

Muchas soluciones software utilizadas pueden cambiar de versión y con ella las características que ofrecen, pudiendo quedar algunas de ellas eliminadas. Esto puede ocasionar que el sistema desarrollado no cumpla con lo que antes sí hacía. Para evitar esta situación siempre se guardará una versión estable de las soluciones software tomadas. Antes de actualizar el software que da solución a algún aspecto del sistema se deberá tener en cuenta el impacto que esta operación tendrá. En el caso de ser necesario actualizar se deberá apatar el sistema para el uso de la nueva versión.

Para un lenguaje de programación el disponer de un léxico sencillo, fácil de recordad y común en otros lenguajes es un requisito necesario, si esto no se logra el resultado es un lenguaje que el mercado no estará dispuesto a usar. Para prevenir esto se ha de analizar y medir cada palabra que componga el léxico, sometiéndolo a evaluación por todo el equipo y por personas ajenos al mismo. s posible tomar como referencias otros lenguajes disponibles en el mercado. Si se detecta o se determina que una determinada del léxico no es adecuada se deberá de cambiar.

De igual forma que en el punto anterior, una gramatica confusa puede originar un lenguaje poco usado, cuyo coste de aprendizaje sea elevado. Nuevamente para evitar este escenario se deberá analizar y evaluar la estructura de la gramática elegida. Si se detecta una gramática confusa se deberá analizar y proponer otras alternativas.

Una solución desarrollada que no sea reutilizable implica la múltipe realización del trabajo. Para mitigar y prevenir este efecto se deberá modularizar y acotar toda función que se pueda reutilizar. Las funciones, clases y demás recursos de programación deben tener un propósito concreto y bien definido. Si se detecta que una determinada parte del sistema se está rescribiendo por no seguir un principio de reutilización se deberá invertir tiempo en invertir esta situación.

Hacer que el sistema se conforme de partes de código que no sean fáciles de entender o seguir puede ir en contra del mantenieminto del proyecto y de la corrección del sistema. Para prevennir este escenario se deberá seguir unas reglas de estilo uniforme que construyan un código limpio y fácil de entender. Al detectar este tipo de código se ha de invertir tiempo en clarificar la sección afectada.

Al escribir programas complejos y extensos es muy común que se den fallos de seguridad que permitan explotar vulnerabilidades como podría ser el desbordamiento de buffer o algún tipo de inyección. Para evitar esto se podrá realizar auditorias de seguridad al código desarrollado. Si se detecta algñún fallo de seguridad en la fase de desarrollo este debe ser notificado y corregido.

franj 2015-10-25