1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas...

37
1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad de los Andes Rubby Casallas, Andrés Yie Departamento de Sistemas y Computación Facultad de Ingeniería Universidad de los Andes

Transcript of 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas...

Page 1: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

1

INGENIERÍA DE SOFTWAREProblemas, causas y soluciones

Grupo de Construcción de Software

Facultad de Ingeniería

Universidad de los Andes

Rubby Casallas, Andrés Yie

Departamento de Sistemas y Computación

Facultad de Ingeniería

Universidad de los Andes

Page 2: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

2

Agenda

Motivación

Problemas

Causas

Soluciones

Page 3: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

“Casos”

Ingeominas – Sistema de información minera

Presupuesto: 857 millones / 6 meses

Análisis: 80 Casos de Uso

Diseño: 120 Clases

Implementación: 54 Clases

Tamaño promedio por Clase: 12.000 líneas de código.

Real: 1700 millones / 3 Años y 2 meses

La empresa desarrolladora no quiere cuantificar sus perdidas

En la revista semana de noviembre se dijo que el 1 de enero de

este año el sistema entraba a producción

3

Page 4: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

“Casos”

IDAC – Sistema de información de Catastro,

Notariado y Registro

Presupuesto: 5630 millones / 12 meses

No se hizo diseño

Real: Se cancelo a los 5 años / 1 año de pleito legal

“Un proyecto de ingeniería se convirtió en un

proyecto de Abogados”

4

Page 5: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

“Casos”

Supernotariado y Registro

Actualizar sistema en COBOL a J2EE

Presupuesto: 1000 millones / 14 meses

Real: 2500 millones / 36 meses

Se entrego la aplicación en una nueva versión de

COBOL.

5

Page 6: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

Problemas

Durante la construcción

Page 7: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

7

Un panorama pesimista

Insatisfacción del cliente porque el sistema no

satisface sus requerimientos

Abandono de los proyectos

Desfases de 2 o más veces el tiempo y el costo

estimado

Mala calidad percibida como:

errores frecuentes

sistemas no confiables

difícil de usar

Sistemas difíciles de adaptar, extender, mejorar

Page 8: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

8

Algunas causas

Durante la construcción

La ingeniería del software

La administración de la construcción

La tecnología

Durante el mantenimiento

La herencia del desarrollo

Factores Humanos

El proceso de cambio caótico

Page 9: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

9

Algunas causas

Durante la construcción

La ingeniería del software

Cliente o UsuarioDesarrollador

No saber cuál es el sistema que se

quiere construir:

LOS REQUERIMIENTOS

Desarrollador Cliente o Usuario

$$

Page 10: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

10

Algunas causas

Durante la construcción

La ingeniería del software

No hacer diseños

ni especificaciones

ni documentación

Desarrollador Cliente o Usuario

$$

Page 11: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

11

Algunas causas

Durante la construcción

La ingeniería del software

Programemos rápido para

tener tiempo de corregir y

entender lo que tocaba

hacer!!

Desarrollador Cliente o Usuario

$$

Page 12: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

12

Algunas causas

Durante la construcción

La ingeniería del software

Se acabo el tiempo,

entreguemos lo que tenemos

y probamos después

(además, debería funcionar)

Desarrollador Cliente o Usuario

$$

Page 13: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

13

Algunas causas

Durante la construcción

La ingeniería del software

La administración de la construcción

La tecnología

Durante el mantenimiento

La herencia del desarrollo

Factores Humanos

El proceso de cambio caótico

Page 14: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

14

Algunas causas

Durante la construcción

La administración de la construcción

DesarrolladorCliente o Usuario

Le puedo pagar

por 3 meses.

Cuánto tiempo estima

que se va a demorar ?

Page 15: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

15

Algunas causas

Desarrollador

mmm ...

más o menos

3 meses (?)

Cliente o Usuario

Le puedo pagar

por 3 meses.

Cuánto tiempo

estima que se va

a demorar ?

Durante la construcción

La administración de la construcción

Page 16: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

16

Algunas causas

C

Tenemos un contrato

pónganse a trabajar! Y el plan?

Departamento de Producción

de Software

Equipo de desarrollo

Page 17: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

Para qué?

Igual nunca funciona

y tenemos sólo 3 meses

17

Algunas causas

Departamento de Producción

de Software

Equipo de desarrollo

C

Page 18: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

18

Algunas causas

Page 19: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

19

Algunas causas

Ud. Dijo que

hacia esa parte

Page 20: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

20

Algunas causas

No, esa era su

responsabilidad!

Page 21: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

21

Algunas causas

Cuánto se demoraron en total?

Cuál fue el esfuerzo?

Que tan grande es el sistema?

Qué aprendimos?

Page 22: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

22

Algunas causas

Durante la construcción

La ingeniería del software

La administración de la construcción

La tecnología

Durante el mantenimiento

La herencia del desarrollo

Factores Humanos

El proceso de cambio caótico

Desarrollador Cliente o Usuario

$$

Page 23: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

23

Algunas causas

Objects? Aspects? JSP?

Servlets? XML? 3-Tiers?

JEE5? SOA? BPEL?

mmm... No debe ser tan difícil

Desarrollador Cliente o Usuario

$$

Page 24: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

24

Algunas causas

Durante la construcción

La ingeniería del software

La administración de la construcción

La tecnología

Durante el mantenimiento

La herencia del desarrollo

Factores Humanos

El proceso de cambio caótico

Desarrollador Cliente o Usuario

$$

Page 25: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

25

Algunas causas

Desarrollo

Años3

Mantenimiento

• No se puede evitar porque el software

DEBE evolucionar (corregir, mejorar,

adaptar, extender ...)

• El problema no es que haya que hacer

mantenimiento sino que es muy costoso

• Costo de desarrollar una línea: 30

dólares. Costo de mantenerla: 4000

dólares !! [Boehm]

Page 26: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

26

Algunas causas

Desarrollo

Años3

Mantenimiento

• La importancia del problema:

• Las consecuencias de los errores

detectados cuando el sistema ya está en

operación (pueden ser catastróficos)

• El deterioro del software hasta su muerte

• Clientes insatisfechos debido a la dificultad

para satisfacer los nuevos requerimientos

• Dificultades para tratar todas las solicitudes

de modificación

Page 27: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

27

Algunas causas

Durante el mantenimiento

La herencia del desarrollo:

Se entrega antes de ser terminado y debidamente

probado.

No se tiene la documentación del sistema. La única

manera para entender el software es a través de las

líneas de código!

Código escrito por varias personas, cada una con estilos y

convenciones distintas, difícil entender el software.

Malos diseños (o ausencia de ellos) que se traducen en

software poco flexible, difícil de extender o adaptar.

Page 28: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

28

Algunas causas

Durante el mantenimiento

Factores Humanos :

Menosprecio hacia estas actividades de mantenimiento.

Típicamente, los costos del mantenimiento son a menudo

subestimados.

Las personas menos expertas son designadas para

mantener software, los equipos de mantenimiento

trabajan en malas condiciones (las nuevas tecnologías y

herramientas son dejadas para los proyectos nuevos!) y

en general, las soluciones rápidas son a menudo

adoptadas.

Page 29: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

29

Algunas causas

Durante el mantenimiento

Deficiente proceso de cambio :

los cambios son hechos sin evaluar su impacto, causando

inconsistencias con otros productos, creando conflictos con

solicitudes previas, etc.

se agrava en la medida que los cambios se realizan

concurrentemente por desarrolladores distintos.

bajo la presión de tiempo, es difícil mantener

actualizados los demás productos asociados del software

como la documentación, los manuales, las pruebas, etc.

Page 30: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

30

Discusión

Cuáles de estos problemas les han ocurrido sus experiencias como desarrolladores?

Cuáles son novedosos o inesperados de acuerdo a su experiencia?

Qué soluciones podrían plantear?

Durante la construcción

La ingeniería del software

La administración de la construcción

La tecnología

Durante el mantenimiento

La herencia del desarrollo

Factores Humanos

El proceso de cambio caótico

Page 31: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

31

Las propuestas de solución

Mejorar las prácticas de ingeniería de software:

Ingeniería (análisis, diseño, programación, pruebas,..)

Procesos de administración (control de cambios,

contrata, admin. riesgos, manejo personal, …)

Tecnología

Formación y entrenamiento de las personas

Page 32: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

32

Las propuestas de solución

Guiar a las organizaciones en la selección de

estrategias para mejorar los procesos de

desarrollo de software.

Evaluación:

Capability Maturity Model CMM

SPICE

Normatización: ISO 9001, ISO 10007, ISO ....

Page 33: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

Las propuestas de solución

Los estándares podrían funcionarnos

Pero, en nuestra casa de SW nosotros ya hacemos las cosas de cierta manera (nuestro CAOS)

Implementar un estándar es muy costoso

Cómo podemos mejorar?

Page 34: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

3434

Proceso

Mediciones

Historia

Evaluación

Seguimiento/

Aseguramiento

Ciclo de mejoramiento continuo

Page 35: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

35

¿Qué es la IS?

Es la disciplina del desarrollo y mantenimiento

de sistemas computacionales que se

comportan de manera confiable y eficiente y

que su costo de desarrollo y mantenimiento

puede ser pagado [1]

[1] Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering. A Volume of the

Computing Curricula Series. ACM y IEEEComputer Society. 2004

Page 36: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

36

Ejes de IS

Casallas Rubby, Villalobos, Jorge. “El actual ingeniero de Software”. Revista ACIS. Edición Nº 93

Julio - Septiembre de 2005. Descargable de: http://www.acis.org.co/index.php?id=547

Page 37: 1 INGENIERÍA DE SOFTWAREisis2603/... · 2010-09-10 · 1 INGENIERÍA DE SOFTWARE Problemas, causas y soluciones Grupo de Construcción de Software Facultad de Ingeniería Universidad

37

Ejes de la IS

Dependencias profundas entre los ejes:

No se puede ser un buen diseñador sin saber de tecnologías

No se puede diseñar el proceso sin tener en cuenta la

Arquitectura

El proceso tiene que ir apoyado por metodologías

No se puede ser un buen director de proyecto sin saber del

resto

No se puede ser un buen arquitecto sin saber de tecnología

No basta con saber de tecnología para ser un buen

arquitecto

….