El documento describe los conceptos fundamentales de la ingeniería de software, incluyendo la crisis del software, los mitos sobre el software, y el proceso de ingeniería de software. La ingeniería de software integra métodos, herramientas y procesos para desarrollar software de calidad siguiendo un enfoque sistemático. El ciclo de vida típico del desarrollo de software incluye actividades como el análisis de requerimientos, diseño, implementación, pruebas y mantenimiento.
2. Crisis del software
• La crisis del software es una serie de problemas que hacen
que el software no alcance las expectativas u objetivos
esperados por desarrolladores, gestores, clientes, etc.
• Problemas fundamentales.
• La sofisticación del hardware no esta acompañada de
la del software.
• Demanda creciente.
• Mantenimiento difícil.
3. Crisis del software
Problemas de los expertos.
Planificación y precios imprecisos.
La productividad de la gente del software no se
corresponde con la demanda.
La calidad muchas veces no es la adecuada.
Motivos de estos problemas
No hay tiempo para recoger los datos para el
proceso de desarrollo.
Falta comunicación con el cliente.
Calidad cuestionable.
Dificultad en el mantenimiento.
4. Mitos del software
Los mitos del software son frases hechas
que propagan información errónea y
confusa, en lugar de sabiduría y buen
hacer
5. Mitos de la
administración
Los administradores con responsabilidad en el
software, como los administradores en la mayoría
de las disciplinas, están normalmente bajo la
presión de cumplir los presupuestos, hacer que
no se retrase el proyecto y mejorar la calidad.
Un administrador de software se agarra
frecuentemente a un mito del software, aunque
tal creencia sólo disminuya la presión temporal.
6. Mitos de la administración
• ¿Por qué debemos cambiar nuestra forma de desarrollar software, si
estamos haciendo el mismo tipo de programación que hace 10 años?
• ¡Tenemos un libro que esta lleno de estándares y procedimientos para
construir software!
• ¡Nuestra gente tiene las mejores máquinas para el desarrollo!
• Si fallamos en la planificación, añadimos más programadores y
adelantamos el tiempo perdido. (Horda Mongoliana).
7. Mitos del
cliente Un cliente que solicita un
aplicación de software puede
ser una persona del despacho
de al lado, un grupo técnico de
la sala de abajo, el
departamento de ventas o una
compañía exterior que solicita
un software bajo contrato.
En muchos casos, el cliente
cree en los mitos que existen
sobre el software, debido a que
los administradores y
desarrolladores del software
hacen muy poco para corregir
la mala información.
Los mitos conducen a que el
cliente se cree una falsa
expectativa y, finalmente,
quede insatisfecho con el
desarrollo del software.
8. Mitos:
• Una declaración general de los objetivos es suficiente
para comenzar a escribir los programas. Podemos dar
los detalles más adelante.
• Los requerimientos cambian continuamente, pero los
cambios pueden acomodarse fácilmente ya que el
software es flexible.
• ¿Cómo afecta un cambio en las diferentes fases del
desarrollo del software?
9. Mitos de los
desarrolladores
• Los mitos en los que aún creen muchos
desarrolladores se han ido fomentando
durante 50 años de cultura informática.
• Durante los primeros días del desarrollo del
software, la programación se veía como un
arte.
• Las viejas formas y actitudes tardan en morir.
10. Mitos de los desarrolladores
• No hay métodos para el análisis, diseño y prueba que
funcionen bien, simplemente me voy a la computadora y
comienzo a codificar.
• Una vez que hacemos que el programa funcione, nuestro
trabajo ha terminado.
• Hasta que no esté el programa terminado no puedo
establecer su calidad.
• Lo único que se entrega al terminar el proyecto es el
programa funcionando.
• Una vez que el software se está usando, el mantenimiento
es mínimo y puede manejarse sobre la base de hacerlo
como se pueda.
11. Reflexión sobre
los mitos
Muchos profesionales del
software reconocen la falacia
de los mitos descritos
anteriormente.
Lamentablemente, las
actitudes y métodos habituales
fomentan una pobre gestión y
una mala aplicación de las
técnicas, incluso cuando la
realidad dicta un método
mejor.
El reconocimiento de las
realidades del software es el
primer paso hacia la
formulación de soluciones
prácticas para su desarrollo.
13. El proceso de diseño de
ingeniería
• Los ingenieros utilizan el proceso de diseño de
ingeniería para crear soluciones a los
problemas. Un ingeniero identifica una
necesidad específica: ¿Qué se necesita y para
qué ? Y entonces, él o ella crea una solución
que satisfaga la necesidad.
14. Definiciones:
Ingeniería
del Software
• Ingeniería del Software es el estudio de los principios y
metodologías para desarrollo y mantenimiento de
sistemas de software. [Zelkovitz, 1978]
• Ingeniería del Software es la aplicación practica del
conocimiento científico en el diseño y construcción de
programas de computadora y la documentación asociada
requerida para desarrollar y operar (funcionar) y
mantenerlos. Así como también desarrollo de software o
producción de software. [Bohem, 1976]
• La Ingeniería del Software es el establecimiento y uso de
principios sólidos de la ingeniería para obtener
económicamente un software confiable y que funcione
de modo eficiente en maquinas reales. [Bauer, 1972]
15. • Ingeniería de Software es 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 al software.
[IEEE, 1993]
• La Ingeniería de Software es una disciplina de la
ingeniería que comprende todos los aspectos de la
producción de software desde las etapas iníciales de la
especificación del sistema hasta el mantenimiento de
este después que se utiliza. [Sommerville, 2004]
• La Ingeniería de Software es una disciplina que integra el
proceso, los métodos, y las herramientas para el
desarrollo de software de computadora. [Pressman,
2005]
Definiciones:
Ingeniería
del Software
17. Ingeniero de software vs programador
Un programador no es equivalente a un
ingeniero de software
“Todo mundo” puede sentarse a programar
Esto no garantiza que se pueda crear una solución
compleja en tiempo, costo y calidad
El desarrollar software sin conocer técnicas de ingeniería representa un enfoque “artesanal”
de desarrollo que hoy en día sigue siendo común. Los esfuerzos de profesionalización
mencionados atrás (certificaciones de individuos y de empresas) buscan reducir
18. Ciclo de Vida
• El ciclo de vida de desarrollo de sistemas
informáticos puede dividirse en actividades o fases
que, en general, se ajustan al esquema mostrado en
el gráfico. Este esquema gráfico es el ciclo de vida
típico, dado que existen gran cantidad de variantes
que dependen de la organización, del tipo de sistema
que se realizará, de los gustos de los administradores,
de los tiempos, etc.
Las actividades típicas del ciclo de vida son:
1- Estudio de factibilidad.
2- Análisis (de requerimientos).
3- Diseño
3.1- Creación de prototipos
3.2- Implementación
4- Validación y prueba
5 - Operación y mantenimiento
19. Ciclo de Vida
• La Ingeniería de Software es el resultado de llevar la
tradicional disciplina de las ingenierías al mundo de la
construcción de sistemas de software.
• Es el estudio de los principios y metodologías para el
desarrollo y mantenimiento de sistemas software.