Ciclo de
Vida de un Software y sus Estructuras
Se conoce como software1 al equipamiento
lógico o soporte lógico de un sistema informático, comprende el conjunto de los
componentes lógicos necesarios que hacen posible la realización de tareas
específicas, en contraposición a los componentes físicos, que son llamados
hardware.
Los componentes lógicos incluyen, entre muchos
otros, las aplicaciones informáticas; tales como el procesador de texto, que
permite al usuario realizar todas las tareas concernientes a la edición de
textos; el software de sistema, tal como el sistema operativo, que,
básicamente, permite al resto de los programas funcionar adecuadamente,
facilitando también la interacción entre los componentes físicos y el resto de
las aplicaciones, y proporcionando una interfaz con el usuario.
es una
palabra proveniente del inglés (literalmente: partes blandas o suaves), que en
español no posee una traducción adecuada al contexto, por lo cual se la utiliza
asiduamente sin traducir y así fue admitida por la Real Academia Española
(RAE).
Aunque
no es estrictamente lo mismo, suele sustituirse por expresiones tales como
programas (informáticos) o aplicaciones (informáticas).
Software
es lo que se denomina producto en Ingeniería de Software.
Modelos de proceso o ciclo de vida
Para cada una
de las fases o etapas listadas en el ítem anterior, existen sub-etapas (o
tareas). El modelo de proceso
utilizado para el desarrollo, define el orden de las tareas o actividades
involucradas, también define la
coordinación entre ellas, y su enlace y realimentación.
· Modelo cascada
· Modelos evolutivos
· Modelo iterativo incremental
· Modelo espiral
Carácter evolutivo del software
El software es el producto derivado del proceso
de desarrollo, según la ingeniería de software. Este producto es
intrínsecamente evolutivo durante su ciclo de vida. El software evoluciona, en
general, generando versiones cada vez más completas, complejas, mejoradas,
optimizadas en algún aspecto, adecuadas a nuevas plataformas (sean de hardware
o sistemas operativos), etc.
Cuando un sistema deja de evolucionar, eventualmente
cumplirá con su ciclo de vida, entrará en obsolescencia e inevitablemente,
tarde o temprano, será reemplazado por un producto nuevo.
El software evoluciona sencillamente por que se debe
adaptar a los cambios del entorno, sean funcionales (exigencias de usuarios),
operativos, de plataforma o arquitectura hardware.
A partir de esos estudios propusieron un conjunto
de leyes respecto de los
cambios producidos en los sistemas. Estas leyes (en realidad son hipótesis) son
invariantes y ampliamente aplicables.
Lehman y Belady analizaron el crecimiento y la
evolución de varios sistemas software de gran porte; derivando finalmente,
según sus medidas, las siguientes ocho leyes:
- Cambio continuo: Un programa que se usa en un entorno real necesariamente debe cambiar o se volverá progresivamente menos útil en ese entorno.
- Complejidad creciente: A medida que un programa en evolución cambia, su estructura tiende a ser cada vez más compleja. Se deben dedicar recuersos extras para preservar y simplificar la estrucutura.
- Evolución prolongada del programa: La evolución de los programas es un proceso autorregulativo. Los atributos de los sistemas, tales como tamaño, tiempo entre entregas y la cantidad de errores documentados son aproximadamente invariantes para cada entrega del sistema.
- Estabilidad organizacional: Durante el tiempo de vida de un programa, su velocidad de desarrollo es aproximadamente constante e independiente de los recursos dedicados al desarrollo del sistema.
- Conservación de la familiaridad: Durante el tiempo de vida de un sistema, el cambio incremental en cada entrega es aproximadamente constante.
- Crecimiento continuado: La funcionalidad ofrecida por los sistemas tiene que crecer continuamente para mantener la satisfacción de los usuarios.
- Decremento de la calidad: La calidad de los sistemas software comenzará a disminuir a menos que dichos sistemas se adapten a los cambios de su entorno de funcionamiento.
- Realimentación del sistema: Los procesos de evolución incorporan sistemas de realimentación multiagente y multibucle y estos deben ser tratados como sistemas de realimentación para lograr una mejora significativa del producto.
No hay comentarios:
Publicar un comentario