CONCEPTOS DE FUNDAMENTOS DE INGENIERíA DE SOFTWARE
La Ingeniería del Software es una disciplina que ofrece métodos y técnicas para
desarrollar y mantener software de calidad que resuelvan problemas de todo tipo.
AUTORES
Definición 2. Dada por el autor Boehm.“Ingeniería del Software es la aplicación práctica del conocimiento
científico en el diseño y construcción de programas de computadora y la documentación asociada requerida
para desarrollar, operar (funcionar) y mantenerlos. Se conoce también como desarrollo de software o
producción de software”.
Definición 3. Dada por el autor Bauer. “Ingeniería del Software trata del establecimiento de los principios y
métodos de la ingeniería a fin de obtener software de modo rentable que sea fiable y trabaje en maquinas
reales”.
Definición 4. Dada por la IEEE. “La aplicación de un enfoque sistemático, disciplinado y cuantificable al
desarrollo, operación (funcionamiento) y mantenimiento del software; es decir, la aplicación de ingeniería del
software.”
Definición 1. Dada por el autor Zelkovitz. “Ingeniería del Software es el estudio de los principios y
metodologías para desarrollo y mantenimiento de sistemas de software”.
El Software debe adaptarse por diferentes razones si no lo hace se queda obsoleto
porque se debe adaptarse a los cambios del
entorno, sean funcionales (exigencias de
usuarios), operativos, de plataforma o
arquitectura hardware.
esta área fue realizada por Meir M. 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:
1. Cambio continuo: Un programa que
se usa en un entorno real
necesariamente debe cambiar o se
volverá progresivamente menos útil en
ese entorno.
3. Evolución prolongada del programa: La evolución de los
programas es un proceso autoregulativo. 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.
4. 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.
5. Conservación de la familiaridad:
Durante el tiempo de vida de un sistema, el
cambio incremental en cada entrega es
aproximadamente constante
8. 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.
6. Crecimiento continuado: La funcionalidad
ofrecida por los sistemas tiene que crecer
continuamente para mantener la satisfacción de
los usuarios.
2. Complejidad creciente: A medida que un
programa en evolución cambia, su estructura
tiende a ser cada vez más compleja. Se
deben dedicar recursos extras para preservar
y simplificar la estructura.
7. 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.
La ingeniería de software requiere llevar a cabo numerosas tareas,
dentro de etapas como las siguientes:
3.-Arqueitectura
2.-Especificación
1-.Análisis de Requerimientos
4.- Programación
6.- Documentación
7.-Mantenimiento
5.-Prueba
Tecnologías de Software
Orientado a objetos
Estructurado
CASE tools
Son diversas aplicaciones informáticas destinadas a aumentar la
productividad en el desarrollo de software reduciendo el coste de las mismas
en términos de tiempo y de dinero
objetivos
Facilitar la realización de prototipos y el
desarrollo conjunto de aplicaciones
Aumentar la portabilidad de las aplicaciones
Permitir un desarrollo y un refinamiento visual de las aplicaciones, mediante la utilización de gráficos
Facilitar la reutilización de componentes software
Mejorar y estandarizar la
documentación.
Permitir la aplicación práctica de metodologías
estructuradas, las cuales al ser realizadas con una
herramienta se consigue agilizar el trabajo.