Investigación documental y de campo
Informe final
Fallas de software, como prevenirlas y evitar las consecuencias.
José Ranulfo López Mondragón
Septiembre, 2017
2
Índice
Introducción ... 3
Metodología ... 4
Resultados ... 5
Como evaluamos el software. ... 5
Revisión de software ... 5
Que son los bugs en software ... 6
Como prevenimos los bugs ... 6
El costo de resolver problemas de software ... 6
Como responden los usuarios ... 7
Conclusión ... 8
Bibliografía ... 9
Anexo I ... 10
Glosario ... 10
Anexo 2 ... 11
Resultados de la encuesta. ... 11
3
Introducción
Con el amplio uso de aplicaciones y otro tipo de software por usuarios a nivel mundial han surgido nuevos retos en cuanto al diseño e implementación de sistemas de información de manera que las consecuencias en caso de errores o fallas de estos pueden tener costos inmensos.
A través de esta investigación espero explicar cuáles son los métodos por los que se evalúan los sistemas de software, cuáles son los errores más comunes y las
consecuencias que estos pueden tener con el fin de encontrar maneras de evitarlos o reducirlos.
4
Metodología
Se consultaron fuentes bibliográficas confiables relacionadas al tema de ingeniería de software enfocándose al área de medición y revisión de software, cuáles son las causas de las fallas y como prevenirlos.
También realizamos una encuesta a algunos usuarios de sistemas de información o aplicaciones para tener una clara idea de cómo reaccionan a problemas desde ese Angulo, viendo como tratan de resolverlo y cuáles son las acciones que tienen como consecuencia.
5
Resultados
Como evaluamos el software.
Existe una variedad de metodologías para evaluar de manera subjetiva el software, evaluando su eficacia, facilidad de uso, resultados obtenidos y otra cantidad de
parámetros que pueden ser relevantes al tipo de software con el que estamos trabajando.
Para llevar a cabo una evaluación más objetiva uno de los métodos más comunes es hacer una medición asignando valores numéricos a varios atributos del sistema, el proceso y sus resultados para poder así encontrar más fácilmente las áreas que
presenten problemas y asignar las áreas que requieren de nuestra atención más urgente.
Mediante las mediciones podemos identificar los componentes que se salgan de lo normal. Por ejemplo, podemos medir los componentes para identificar los de complejidades más altas, los cuales suponemos que serán los que tengan más errores, para centramos en ellos en el proceso de revisión. (Sommerville, 2005).
Revisión de software
Como lo expresa Pressman en su libro:
Las revisiones del software son un "filtro" para el proceso del software. Es decir, se aplican en varios puntos durante la ingeniería de software y sirven para descubrir errores y defectos a fin de poder eliminarlos. (Pressman, 2010)
Estas revisiones usando un método de medición de software nos dicen cuales son los problemas que hay que resolver con prioridad, para poder hacer un uso inteligente de los recursos necesarios para realizar las reparaciones y otras medidas necesarias para resolver el problema.
6
Que son los bugs en software
Un bug o “bicho” es la causa de un problema en el software (Padmini), El nombre es una herencia de las primeras computadoras y las fallas causadas por insectos interrumpiendo el mecanismo por el que funcionaban. En la actualidad es la causas a la que se atribuye todo tipo de problemas con el código o defecto del sistema antes de encontrar la causa especifica del problema.
Como prevenimos los bugs
De acuerdo con Patton en su libro “Software testing” una de las principales causas de bugs o problemas con el software son los problemas causados no por el código, si no por fallas en la especificación del sistema al momento de diseñar el software (Patton, 2001), esto se debe a una falta en el estudio de las necesidades de los usuarios o del cliente o de la dependencia que tienen los datos en relación con los resultados.
Hacer un estudio de todos los aspectos que afectan al sistema se vuelve entonces una parte indispensable de la ingeniería del software a la que no se debe restarle importancia.
El trabajo que se realiza incluso antes de escribir la primera línea de código se vuelve entonces la parte más importante del proyecto.
El costo de resolver problemas de software
Cuando hablamos con los problemas que tiene el software, se vuelve necesario ver más allá de los problemas o defectos que causan que el código se comporte de forma
inesperada, si no de las consecuencias y costos que este tipo de problemas pueden traer a sus usuarios.
Una gran cantidad de recursos son empleados en la detección y solución de bugs y otros defectos y problemas en el software, según
Entre más tiempo existe un defecto en nuestro software, más caro se vuelve removerlo, si un defecto existe que cause heridas o daño a alguna vida o propiedad, el costo y
7 consecuencias sociales debido al problema puede ser
desastroso. (Burnstein, 2003)
Hay que estar consiente que los sistemas de información tienen un alcance mas grande que entretenimiento o procesamiento de información, pero en la actualidad son
herramientas importantes en los sistemas de los que mucha gente depende en su vida laboral y personal, así como para sistemas en los que vidas dependen, literalmente. Por lo que hay que estar conscientes de la responsabilidad que tenemos y las consecuencias que tenemos que evitar.
Como responden los usuarios
Según los resultados de una encuesta realizada a varios usuarios de aplicaciones aproximadamente la mitad de ellos ha sufrido perdida de información u otros recursos, todos han dejado de usar software debido a funcionamiento inesperado y recomienda a sus amigos y conocidos que no use el software que le trajo problemas.
Mucho de ellos tienen una baja tolerancia con los problemas de software y no dan muchas segundas oportunidades por lo que perdemos parte de nuestra audiencia y fallamos en nuestro objetivo de crear sistemas y herramientas que hagan la vida fácil al usuario final.
8
Conclusión
La medición y evaluación del software por medio de revisiones constantes durante el proceso de desarrollo son herramientas indispensables para la detección de bugs y otros defectos y problemas con el software.
Encontrar estos problemas de manera pronta y eficiente incluso antes de que se presenten mediante una buena especificación del software puede evitar costosas
consecuencias de manera interna durante la solución de problemas como externa cuando la consecuencia de fallas en software para los usuarios puede ser catastrófica.
Son estos usuarios los que forman la parte más difícil de mantener un sistema, ya que después de realizar todo el trabajo para acabar con un sistema confiable y con el mínimo de errores, ellos encontraran aún más problemas que ni siquiera hemos detectado, y en algunos casos pueden pasar a ser de usuarios felices a nuestros principales detractores.
9
Bibliografía
Burnstein, I. (2003). Practical Software Testing. Chicago: Springer.
Padmini, C. (s.f.). Beginners Guide to Software Testing.
Patton, R. (2001). Software Testing. Indianapolis: Sams Publishing.
Pressman, R. S. (2010). Ingenieria del Software. Un enfoque practico (Septima ed.).
Mexico D.F.: McGraw-Hill.
Sommerville, I. (2005). Ingenieria del Software (Septima ed.). Madrid: Pearson Educacion.
10
Anexo I
Glosario
Bug: Error que causa un defecto, error o falla en el software Error: Una incongruencia entre el programa y su especificación Defecto: Variación en los atributos del producto deseado Falla: Un defecto que causa un error al usuario
Verificación: Proceso que asegura que el producto esta diseñado para otorgar la funcionalidad al cliente
Validación: Proceso que asegura que la funcionalidad es la misma que se espera de acuerdo con la especificación
11
Anexo 2
Resultados de la encuesta.
1. ¿Cuál es su nivel de conocimientos sobre el funcionamiento de las
aplicaciones móviles?
2. ¿Con que frecuencia encuentra problemas mientras uso aplicaciones?
3. ¿Cuál es su primera reacción cuando ocurren estos problemas con las aplicaciones?
4. ¿Cuál es el método que más usa para resolver estos problemas?
5. ¿Ha perdido información, dinero u otros recursos a causa de la falla de alguna aplicación?
12 7. ¿Ha dejado de usar aplicaciones
porque no funcionan como esperaba?
9. ¿Cuántas veces intenta usar una aplicación con fallas antes de dejar de usarla?
6. ¿Aconseja o advierte a familiares o amigos sobre cuales aplicaciones le han causado problemas?
8. ¿Ha evitado usar alguna aplicación por recomendación de alguien más?
10. ¿Ha dejado alguna calificación o comentario sobre la aplicación que le ha dado problemas?