Sei sulla pagina 1di 43

Ingeniera de Sistemas

Por: Jimmy Snchez


jjsanchezg@correo.unicordoba.edu.co
Ingeniera de software
Algunos casos de fracaso de proyectos de software
El problema
Una realidad
Causas
Una posible solucin

Ingeniera de software
Ingeominas Sistema de informacin minera
Presupuesto: 857 millones / 6 meses
Anlisis: 80 Casos de Uso
Diseo: 120 Clases
Implementacin: 54 Clases
Tamao promedio por Clase: 12.000 lneas de cdigo.

Real: 1700 millones / 3 Aos y 2 meses
La empresa desarrolladora no quiere cuantificar sus perdidas
Algunos casos
Ingeniera de software
IDAC Sistema de informacin de Catastro, Notariado y
Registro
Presupuesto: 5630 millones / 12 meses
No se hizo diseo
Real: Se cancelo a los 5 aos / 1 ao de pleito legal

Un proyecto de ingeniera se convirti en un proyecto de
Abogados

Algunos casos
Ingeniera de software

Supernotariado y Registro
Actualizar sistema en COBOL a J2EE
Presupuesto: 1000 millones / 14 meses

Real: 2500 millones / 36 meses
Se entrego la aplicacin en una nueva versin de COBOL.
Algunos casos
Ingeniera de software
Sper Intendencia Financiera de Colombia
Integracin de sistemas
Java, Oracle From, WebService, Jsp MyFaces
Tiempo : 7 mes
Presupuesto: 700 millones

Real:
700 millones: SFC,
695 millones: Proveedor.
3 aos
Se entrega el 100% del desarrollo pactado inicialmente pero no cumple con la
necesidad a las actual (cambio en la leyes Colombianas, cambio de gobierno, etc.)
Pelea de abogados

Algunos casos

Ingeniera de software
Insatisfaccin del cliente porque el sistema no cumple con sus requerimientos.
Mala calidad del software percibida como:
Errores frecuentes
Sistemas no confiables
Difcil de usar
Difciles de adaptar, extender, mejorar
Abandono de los proyectos
Desfases de 2 o ms veces el tiempo y el costo estimado.
Se acabo el presupuesto
Se fue el mejor recurso (programador)
Desconocimiento de herramientas y/o estndares como:
Patrones, Arquitectura, Cdigo, Que es eso ?
Un solo lenguaje y a medias pascal, C++, Java, PHP, etc. ?
Una realidad

Ingeniera de software
Segn encuesta del 2004, el 71% de los proyectos de software
terminan fracasando y en 2010 aumento a 80%.

Entre 7 y 8 de cada 10 fracasan.

21 % Cambios en los objetivos definidos a nivel estratgico
31 % No utilizacin, o mala utilizacin de metodologas de trabajo
48 % Problemas humanos, de conduccin, comunicacin y conflictos entre la gente

Cul es la realidad del problema ?
Cmo resolverlo ?
Algunos casos
Ingeniera de software
El problema
Ingeniera de software
Que hace que pase todo esto y en que etapa del
desarrollo ocurre ?
Causas
1. Construccin
1. Ingeniera del Software (Anlisis y Diseo)
2. Administracin y gerencia del proyecto de desarrollo
3. La tecnologa a usar
2. Mantenimiento
1. Herencia del desarrollo
2. Factor Humano
3. Procesos de Cambios.
3. Salida y/o Entrada del software
1. Migracin
2. Produccin en paralelo
3. Sistema en lnea legado

Ingeniera de software
No se sabe cual es el sistema a construir.
Causas
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa
Programador Cliente
= /
Requerimientos
Ingeniera de software
No se hace: diseo, especificacin de
requerimientos, arquitectura ni documentacin.
Causas
SIN ESTO NO HAY DESARROLLO
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa
Anlisis y Diseo
Ingeniera de software
Programar rpido para tener tiempo de corregir y
terminar de entender lo que toca hacer
Causas
ESO NO ES LO IMPORTANTE
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa








No importa si falla
Lo importante es terminar
Cronograma
Ingeniera de software
Causas
TIEMPO = $
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa
Jefe
Aplicacin
Programador
Se nos acaba el tiempo, bueno entreguemos lo que
tenemos y probamos despus, que pruebe el cliente,
en trminos generales debera funcionar.

Pruebas
Ingeniera de software
La carnada que nos pone el cliente
Causas
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa
NO CREAS QUE ESTAS ENGAANDO
Ingeniero, necesito un
software para mi empresa
pero solo le puedo pagar
por 3 meses. Cunto crees
que te demoras?
mmm mas o menos unos 3
meses
Listo, hgale y nos vemos en
3 meses.
Desarrollador Cliente
Ok, hoy mismo arrancamos
Ingeniera de software
Causas
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa
EL ENGAADO ERES TU
Tenemos un contrato,
pnganse a programar
Cual es el problema a
resolver.
Y la planeacin del
proyecto?

Jefe
Programadores
Bueno creo que es un
sistemas para llevas la
contabilidad, el negocio
del cliente es una
ferretera.

Para que la planeacin?,
Igual nunca funciona.
Y solo tenemos 3 meses.
C
La carnada que nos pone el cliente
Planeacin,
cronograma
Ingeniera de software
Causas
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa
Simplicidad en los procesos de transicin
y despliegue de la aplicacin
Programador Cliente


Ingeniera de software
Exigencia de trabajo extra al equipo de
desarrollo
Causas
Construccin
Ingeniera del Software
Administracin y gerencia
La Tecnologa
CONSECUENCIAS
No, eso era su
responsabilidad
Usted dijo que hacia esa
parte
Ingeniera de software
Que usamos y que criterios tenemos
para escoger ?
Causas
Construccin
Ingeniera del Software
La Administracin y gerencia
Tecnologa
SERA MALO SABER DE TODO UN POCO ?
Los Cliente ya nos hablan de:

Web servicew, WEB de escritorio ?
SQLServer, Oracle, MySQL ?
Con Objetos y Aspectos ?

.Net o Java-JEE ?

Work flow ?

Seguridad con LDAP o propia ?
Componentes ?
De tres capas o mas ?

mmm No se que es pero no debe ser
tan difcil
Experto
Ingeniera de software
Causas
Que hay aqu



















Q
u
e

h
a
y

a
q
u


Seguro, Robusto, Arquitectura,
Documentacin
Por qu ?
Construccin
Ingeniera del Software
La Administracin y gerencia
Tecnologa
Ingeniera de software
Causas
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa
Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios
IS
Ingeniera de software
Inevitable El software DEBE evolucionar (corregir, mejorar, adaptar,
extender, etc.)
El problema no es que haya que hacer mantenimiento sino que es muy
costoso
Costo de desarrollar una lnea: 30 dlares.
Costo de mantenerla: 4000 dlares !! [Boehm]
Causas
Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios.

Si es necesario esta etapa ?
SOFTWARE SIN MANTENIMIENTO = VEHCULO SIN TALLER
2 - 3
Aos
Ingeniera de software
Las consecuencias de los errores detectados cuando el sistema ya est en
operacin pueden ser catastrfico
Clientes insatisfechos debido a la dificultad para satisfacer los nuevos
requerimientos
Dificultades para tratar todas las solicitudes de modificacin
Causas
Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios

Problema: Etapa de mantenimiento muy
costosa
2 - 3
Aos
Ingeniera de software
Malos o ausencia de diseos que se traducen en software poco flexible, difcil de
extender o adaptar.
Se entrega sin ser terminado y probado (Unit Test).
No hay documentacin del sistema. La nica manera para entender el software es ir a las
lneas de cdigo.
El cdigo fue escrito por varias personas no es uniforme y no cumple un estndar:
estilos y convenciones distintas.
Causas
Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios

Hay que entregar todos los artefactos
producidos durante la ejecucin del proyecto
2 - 3
Aos
Ingeniera de software
private boolean metodo1()
{
String cu = leer(Digite valor 1);
String cl = leer(Digite valor 2);
if( cl==db.cl && cu==db.cu )
{mensaje (Credenciales validas+ n + pa); return true;
}
else
{mensaje ( Ups, credenciales invalidas ); i++;
return false;
}
}

/**
* Mtodo para autenticar una cuenta de usuario
* return boolean: true: si es valido, false: si es invalido
*/
private boolean autenticar() {

String cuentaUsuario = leer(Digite Login);
String clave = leer(Digite Clave);

if( clave==admin123 && cuentaUsuario==administrador) {
mensaje ( Bienvenido al sistema+ nombre + primerApellido);
return true;
} else {
mensaje ( Lo siento, credenciales invalidad );
intentos++;
return false;
}
}
Causas
Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios

Hay que entregar todos los artefactos
producidos durante la ejecucin del proyecto
Expongamos algunos ejemplos del
cdigo que ustedes escriben
Nombre del usuario:

Primer Apellido del usuario:

Segundo Apellido del usuario:

Neto del valor a pagar a un empleado:

Nombre de clase y mtodo para calcular la nomina de una empresa:

Ingeniera de software
Menosprecio hacia estas actividades de mantenimiento.
Normalmente, los costos del mantenimiento son subestimados.
Las personas menos expertas son designadas para mantener software.
Causas
Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios

La Ingeniera del Software debe conocerla el
cliente
Ingeniera de software
Soluciones rpidas a problemas (sin anlisis y en el peor de los casos sin
diseo , hay que tener mucho cuidado con las nuevas tecnologas) .



Los equipos de mantenimiento trabajan en malas condiciones.
Causas
Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios

La Ingeniera del Software debe conocerla el
cliente
Ingeniera de software
Los cambios son hechos sin evaluar su impacto, causando inconsistencias,
conflictos con solicitudes previas, etc.

Esto se agrava en la medida que los cambios se realizan concurrentemente
por desarrolladores distintos.

Bajo presin (tiempo, cliente, etc.) es difcil mantener actualizados artefactos
asociados al software como: Documentacin, Manuales, las pruebas, etc.
Causas
Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios

As como hay cambio en el Software tambin
hay cambio en los dems artefactos
Ingeniera de software
Mantenimiento
El grfico es muy claro al respecto. El mantenimiento es una actividad
sper importante debido a que requiere entre un 70% a un 90% del
coste del ciclo de vida del producto:
Preventivo, Correctivo, Evolutivo, Adaptativo.
Ingeniera de software
Causas
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa
Etc.
Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios
Etc.
Salida, Baja
Migracin
Produccin en
paralelo
Sistema en lnea
legado
IS
Ingeniera de software
La migracin es un proyecto, necesita un cronograma.
Son necesarias reglas de transformacin de datos, filtros, etc.

No creo que el cliente le preste mucha atencin a este proceso
Esta etapa es tan critica que puede hacer caer el sistema, aunque este terminado correctamente.

La participacin de los interesados es clave
Si el cliente participa en el proceso de migracin todo ira bien, de lo contrario

Causas
Baja
Migracin
Produccin en paralelo
Sistema en lnea legado
Los datos de la aplicacin actual debe pasas
a la nueva
Ingeniera de software
Reducir riesgos
El hecho de que los datos sean el bien ms importante de una empresa significa que es esencial
que cualquier manipulacin sea realizada sin ninguna interrupcin.
Mejorar la calidad de los datos
Desde la perspectiva del usuario y del desarrollo, los resultados de los datos migrados debe ser
optimizados.
Migrar de manera homognea
Caractersticas comunes
Iteracin
Oportunidades iterativas identificando datos corruptos antes de migrar y as escoger la
informacin candidata.
Inspeccin
Se puede ver la informacin migrada.
Causas
Baja
Migracin
Produccin en paralelo
Sistema en lnea legado

La migracin de datos es una actividad
excepcional que es causada por
circunstancias puntuales.

Ingeniera de software
Que pasa si el sistema nuevo falla ?
Hay que comparar resultados de: reportes, acciones operativas, procesos
masivos, etc.
Hay qua hacer pruebas de carga, funcional, proponer planes de contingencia.

Causas
Baja
Migracin
Produccin en paralelo
Sistema en lnea legado
Terminamos el proyectos, mandemos a
produccin a ver que pasa
Viejo Nuevo
Ingeniera de software
Lo que queremos en una nueva aplicacin pero tener disponible la
informacin histrica.
Causas
Baja
Migracin
Produccin en paralelo
Sistema en lnea legado
Sera que el cliente quiere saber lo que paso
hace 5 aos en la empresa ?
Vieja Nueva
El viejo sigue activo !
Ingeniera de software
Causas
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa
Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios
Salida, Baja
Migracin
Produccin en
paralelo
Sistema en lnea
legado
IS
Ingeniera de software
1. Escasa participacin de los usuarios
2. Requerimientos y especificaciones incompletas
3. Cambios frecuentes en los requerimientos y especificaciones
4. Falta de soporte ejecutivo
5. Incompetencia tecnolgica
6. Falta de recursos
7. Expectativas no realistas
8. Objetivos poco claros
9. Cronogramas irreales
10. Nuevas tecnologas
Causas
Ingeniera de software
Mejorar las prcticas de ingeniera de software:
Anlisis, diseo, programacin, pruebas, mantenimiento.
Procesos de administracin
Control de cambios, contrataciones, administrar riesgos, manejo de personal, etc.
Tecnologa
Formacin y entrenamiento de las personas.
Tomarlas como un medio no como un objetivo.

Nuestra tarea: Guiar a las organizaciones en la seleccin de estrategias
para mejorar los procesos de desarrollo de software.
CMM, TSP, SPICE, Normalizaciones ISO.
Solucin
Ingeniera de software
Solucin
Mejoramiento continuo
Ingeniera de software
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]
Solucin
Procesos

Tecnologas

Metodologas

Arquitectura

Ingeniera de software
Solucin

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


No se puede ser un buen diseador sin saber de
tecnologas


No basta con saber de tecnologa para ser un buen
arquitecto


El proceso tiene que ir apoyado por metodologas
No se puede disear el proceso sin tener en cuenta
la Arquitectura


No se puede ser un buen arquitecto sin saber
de tecnologa

Ingeniera de software
Arquitectura Procesos
Tecnologa Metodologa
Herramientas
Les toca a ustedes
1. Modelo lnea secuencial, o en cascada
2. Modelo de construccin de prototipos
3. Modelo de procesos evolutivos: Incremental
4. Modelo de procesos evolutivos: Es espiral
5. Modelo de procesos evolutivos: De desarrollo concurrente
6. Modelo de procesos evolutivos: De ensamblaje de componentes
7. Modelo en V
8. DRA
9. Modelo XP
Metodologa
Ingeniera de software
Reglas de Juego:
Inventarse: Nombre, logo, misin y visin.
Disear un formato de presentacin para sus exposiciones ( nico ).
Mximo 15 diapositivas
Poco texto
Contenido propuesto:
Estado del arte, La Metodologa (como funciona, grafica), Caractersticas y mas informacin
relevante, ventajas, desventajas, conclusiones.
Entregar trabajo resumen impreso en plantilla tipo articulo
Mximo 8 paginas.
Se evaluara:
Organizacin de la exposicin
Manejo del tema
Presentacin personal
Respuestas a preguntas relacionadas con el tema
La nota es individual
Ingeniera de software

http://sistemas.uniandes.edu.co

http://www.acis.org.co/

Potrebbero piacerti anche