Universidad Nacional Autónoma de México
Dirección General de Servicios de Cómputo Académico
Año 7 Núm. 74, Publicación Mensual, 27 de Noviembre de 2008

ARTÍCULOS

 

Año 1, Número 12, Septiembre de 2002
FALLAS CON EL SOFTWARE
María Teresa Ventura Miranda
tere@exodus.dcaa.unam.mx

 

¿Por qué se “cae” el sistema exactamente cuando estamos en la fila del banco? ¿Por qué desaparece nuestro documento justamente al estar trabajando? ¿Por qué al dar clic en un sitio de Internet nos marca un error de ejecución? Incidentes como éstos nos han sucedido en variadas ocasiones y en términos generales, no se consideran graves; no obstante, ejemplifican de manera muy clara, la existencia de problemas de inestabilidad en los procesos realizados por los sistemas de cómputo a través del software que utilizan, los cuales, pueden afectar directamente la tranquilidad de una persona, la estabilidad de una empresa y, en casos extremos, pueden llegar a poner en riesgo la vida de las personas y la seguridad de los países.

Es una realidad, cada vez más las actividades cotidianas se encuentran vinculadas con procesos que dependen del software.

¿Qué pasaría si en nuestro estado de cuenta bancario apareciera un cargo excesivo de una compra no realizada o, si los resultados de nuestros análisis médicos correspondieran a los de otra persona o, fallaran los controles del avión en el que viajamos? Existen diversas causas para que esto suceda, pero una muy probable es que el software falle.

CUANDO EL SOFTWARE FALLA

El software es aquella parte intangible de los sistemas de cómputo, telecomunicaciones o Internet; corresponde a programas diseñados para fines específicos, los cuales reciben, almacenan, procesan y distribuyen información electrónica, además, en conjunto con otros elementos, como el hardware y los recursos humanos, realiza tareas y procesos útiles y necesarios con propósitos particulares.

Desde el punto de vista de una organización dedicada al desarrollo de software, está considerado como un producto —con calidad o carente de ésta— que se produce y vende en el mercado; en ese sentido, durante el proceso de oferta y demanda tiene asociado un control de calidad que debe responder a las necesidades para las cuales fue fabricado.

Si bien en otros productos tangibles, se mide su calidad con determinadas características como la materia prima, la durabilidad, la resistencia, el tamaño, el color o la exactitud, entre otros; en el caso del software existen ciertas particularidades como funcionalidad, facilidad de uso, fiabilidad, desempeño y facilidad de mantenimiento que permiten conocer su calidad.

SOFTWARE SIN RIESGO

El Software Engineering Institute (SEI) de la Universidad de Carnegie Mellon, de Pittsburgh, Estados Unidos; desarrolló el Modelo de Madurez de Capacidades (CMM), disponible en http://www.sei.cmu.edu/cmmi/adoption/sw-only-announce.html donde se establecen los lineamientos para mejorar los procesos en el desarrollo de software, así como determinar la madurez de éstos y la identificación de puntos críticos que impiden obtener un determinado nivel de madurez; todo ello con la finalidad de controlar la calidad del software y colocarlo en el mercado con la completa seguridad de que son programas que se pueden usar sin riesgo alguno.

EL MODELO DE MADUREZ DE CAPACIDADES (CMM)

Establece cinco niveles ascendentes de madurez: 1) Inicial, 2) Repetible, 3) Definido, 4) Administrado, 5) Optimizado.

Una empresa u organización ubicada en el nivel inicial se caracteriza por ser totalmente reactiva y “sacar” los proyectos con un proceso “ad hoc”, no definido; con frecuencia los proyectos no se terminan dentro del tiempo y costo previstos; no existen mediciones que permitan tomar decisiones y el éxito o fracaso de los proyectos depende de la capacidad de las personas y no de la organización. Por el contrario, una organización nivel 5 es proactiva; el proceso se encuentra bien definido por lo que se enfoca a su mejoramiento; en tanto, previene la ocurrencia de los defectos y es capaz de incorporar nueva tecnología y controlar riesgos.

Cada uno de los niveles del CMM se orienta a un aspecto específico y explica detalladamente las áreas clave del proceso que se deben considerar. El nivel 2, se enfoca hacia la administración de proyectos; el nivel 3, hacia la definición e integración de un proceso consistente; el nivel 4, en la calidad del producto y el proceso, así como en la realización de mediciones exhaustivas; el nivel 5, se enfoca al mejoramiento continuo del proceso y a la prevención de defectos que pudieran causar riesgos en la operación.

En países como la India, la industria del software es una de las más desarrolladas del mundo y la mayoría de sus organizaciones desarrolladoras de software está en los niveles 4 y 5. Sus exportaciones superan los cinco mil millones de dólares anuales y el 65% de producción lo compra Estados Unidos. La clave está en la calidad y en la madurez de sus organizaciones y procesos.

México, por su parte, cuenta con los recursos humanos y tecnológicos para producir software de calidad, no obstante, son contadas las organizaciones que se encuentran en los niveles 2 y 3 y no existe alguna que se encuentre en el nivel 5. Si bien existen esfuerzos en nuestro país —sobre todo de empresas privadas— para difundir los Programas de Mejora de Procesos, las técnicas de PSP (Personal Software Process), TSP (Team Software Process) y el modelo CMM, éstos no se han adoptado todavía porque no se les ha dado la debida importancia, y peor aún, no se conocen.

Es necesario enfocar un mayor número de esfuerzos a esta materia, involucrar a todas las áreas y organizaciones que desarrollan software —ya sean pequeñas o grandes, públicas o privadas— a tomar la iniciativa de un programa de mejora, e involucrarse con el CMM y adoptar un enfoque de calidad. Para ello, hay que comprometer los recursos que esto implica y estar conscientes de que es un proceso continuo y un tanto lento. A cambio recibiremos beneficios: mayor calidad del software, menores costos y riesgos, y un crecimiento de la industria del software en el país.

El control de calidad en la producción de software, garantiza evitar riesgos en su uso.

Inicio | Contacto |