Ingeniería de Software
Juan Manuel González Calleros
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.
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.
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
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.
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).
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.
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?
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.
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.
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.
Solución
• INGENIERÍA DEL SOFTWARE
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.
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]
• 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
La ingeniería
de software
integra:
métodos,
herramientas y
procesos
para el desarrollo
del software
bajo un enfoque
de calidad.
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
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
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.
Ciclo de
Vida
• Los desafíos de la Ingeniería
de Software son:
Ciclo de
Vida
• La ingeniería de software es
una tecnología multicapa.

02 Mitos de la ingeniería de software

  • 1.
    Ingeniería de Software JuanManuel González Calleros
  • 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 Problemasde 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 Losmitos 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 Losadministradores 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 laadministració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 Uncliente 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óngeneral 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 losdesarrolladores • 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 Muchosprofesionales 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.
  • 12.
  • 13.
    El proceso dediseñ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íadel 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 deSoftware 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
  • 16.
    La ingeniería de software integra: métodos, herramientasy procesos para el desarrollo del software bajo un enfoque de calidad.
  • 17.
    Ingeniero de softwarevs 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.
  • 20.
    Ciclo de Vida • Losdesafíos de la Ingeniería de Software son:
  • 21.
    Ciclo de Vida • Laingeniería de software es una tecnología multicapa.