Zusammenfassung der Ressource
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.
- Componentes
- Repositorio (diccionario)
- Meta modelo (no siempre visible),
- Carga o descarga de datos
- base de datos
- Comprobación de errores
- Interfaz de usuario