domingo, 16 de febrero de 2014

Leyes de Evolución del Software

Las leyes de Evolución del Software o leyes de Lehman son una serie de leyes empíricas que formularon Meir M. Lehman y Lázló Bélády ea partir de sus trabajos comenzados en 1974. Todas estas leyes hacen referencia a los programas destinados a solucionar un problema del mundo real.
A continuación se describen cada una de las ocho leyes de Lehman:

  1. Cambio continuo: Un programa utilizado en un entorno del mundo real, debe actualizarse constantemente, o, al estar desafasado, comenzará a utilizarse menos.
  2. Complejidad creciente: Conforme un programa vaya cambiando, la estructura del mismo irá siendo cada vez más compleja. A menos que se haga un esfuerzo activo para evitar este fenómeno.
  3. Evolución prolongada: La evolución de un sistema está dada por la actividad del mismo. Los atributos de este revelan determinadas estadísticas y son aproximadamente invariables.
  4. Estabilidad organizacional: En todo el tiempo de vida de un sistema, la velocidad del desarrollo de un programa es aproximadamente constante e independiente de los recursos dedicados.
  5. Conservación de la familiaridad: Durante el tiempo de vida de un programa, el incremento en el número de cambios en cada versión es relativamente constante.
  6. Crecimiento continuado: La funcionalidad que ofrece un sistema tiene que estar en continuo crecimiento, para así obtener la satisfacción de quienes lo usan.
  7. Decremento de la calidad: A menos que el software se esté adaptando continuamente a los cambios en su entorno de funcionamiento, la calidad de este comenzará a disminuir.
  8. Realimentación del sistema: Los procesos de evolución deben ser tratados como sistemas de realimentación para lograr una mejora significativa en el producto.
Conclusión: 
Estas leyes que Lehman menciona, deben estar siempre en mente tanto cuando se empieza un sistema, hasta al darle mantenimiento. Aunque habría que considerar el sistema que creamos o que tenemos planeado crear, ya que no en todos los sistemas se aplica cada una de ellas.


Referencias: 
  • Somerville I. (2005). Ingeniería de Software. Madrid, España: Pearson Educación S.A.
  • Ruiz F., Macario P. (2001). Soporte de Software. Escuela Superior de Informática, Universidad de Castilla - La Mancha. Recuperado de: http://alarcos.esi.uclm.es/per/fruiz/curs/mso/trans/s2.pdf

lunes, 3 de febrero de 2014

¿Qué es el mantenimiento de Software?

El mantenimiento de software es el proceso general de cambiar un sistema después de que este ha sido entregado (Sommerville).
Los cambios realizados en el mantenimiento, pueden ir desde corregir pequeños errores en el código, hasta cambios drásticos en el diseño, o requerimientos. Dichos cambios se realizan modificando los componentes del sistema ya existentes y agregando nuevos donde sea necesario.
Existen principalmente cuatro tipos de mantenimiento:
  1. Mantenimiento preventivo:
  2. Su propósito es prever las fallas, manteniendo los sistemas en completa operación a niveles de eficiencia óptimos. La característica principal de este tipo de mantenimiento es el de detectar las posibles fallas y atacarlas en el momento oportuno.
  3. Mantenimiento correctivo:
  4. Puede ser definido como la reparación de fallos que se han presentado sin previo aviso. Dichos fallos pueden ser originados por explotación inadecuada del equipo, malfuncionamiento del equipo, negligencia por parte del personal que maneja el equipo o fallas en la calidad y el diseño del sistema o equipo.
  5. Mantenimiento adaptativo:
  6. Se requiere cuando cambia algún aspecto del entorno del sistema, como por ejemplo el hardware, la plataforma del sistema operativo u otro software de soporte. El sistema de aplicaciones debe modificarse para adaptarse a estos cambios en el entorno
  7. Mantenimiento perfectivo:
  8. Podemos definir el mantenimiento perfectivo como el conjunto de actividades para mejorar o añadir nuevas funcionalidades requeridas por el usuario.
Estudios realizados en los años 90, sugieren que alrededor del 65% del mantenimiento está relacionado con la implementación de nuevos requerimientos, el 18% con cambios en el sistema para adaptarlo a un nuevo entorno operativo y el 17% para corregir defectos en el sistema.
Referencias:
  • Mejía Campos F., Zamorano Porras I. (2006). Software de mantenimiento propuesto para implementarlo en el departamento de conservación del Hospital General de Zona No. 1 del IMSS. Tesis de ingeniería no publicada, UAEH, Hidalgo, México.
  • Somerville I. (2005). Ingeniería de Software. Madrid, España: Pearson Educación S.A.
  • Ruiz F., Polo M. (2001). Mantenimiento del Software. Recuperado de: http://alarcos.inf-cr.uclm.es/doc/mso/slides/S1.pdf
  • Tipos de mantenimiento. Recuperado de: http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r62095.PDF