Вы находитесь на странице: 1из 43

Introduccin

Ingeniera de Software
Ingeniera de Sistemas

Por: Jimmy Snchez


jjsanchezg@correo.unicordoba.edu.co

Agenda

Algunos casos de fracaso de proyectos de


software

El problema

Una realidad

Causas

Una posible solucin

Ingeniera de software

Algunos casos

Caso 1

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

Ingeniera de software

Algunos casos

Caso 2

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

Ingeniera de software

Algunos casos

Caso 3

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.

Ingeniera de software

Algunos casos

Caso 4

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

Ingeniera de software

Una realidad

Algunas reflexiones

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. ?

Ingeniera de software

Algunos casos

Un dato preocupante

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 ?
Ingeniera de software

El problema

El problemas

Ingeniera de software

(Durante la construccin)

Causas

Causas
Que hace que pase todo esto y en que etapa del
desarrollo ocurre ?
1.

2.

3.

Ingeniera de software

Construccin
1.

Ingeniera del Software (Anlisis y Diseo)

2.

Administracin y gerencia del proyecto de desarrollo

3.

La tecnologa a usar

Mantenimiento
1.

Herencia del desarrollo

2.

Factor Humano

3.

Procesos de Cambios.

Salida y/o Entrada del software


1.

Migracin

2.

Produccin en paralelo

3.

Sistema en lnea legado

Causas

Algunas causas
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa

No se sabe cual es el sistema a construir.

=
/
Requerimientos

Programador

Ingeniera de software

Cliente

Causas

Algunas causas
Construccin

Ingeniera del Software


Administracin y gerencia
Tecnologa

No se hace: diseo, especificacin de

requerimientos, arquitectura ni documentacin.

Anlisis y Diseo

SIN ESTO NO HAY DESARROLLO


Ingeniera de software

Causas

Algunas causas
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa

Programar rpido para tener tiempo de corregir y


terminar de entender lo que toca hacer

Cronograma
No importa si falla
Lo importante es terminar

ESO NO ES LO IMPORTANTE
Ingeniera de software

Causas

Algunas causas
Construccin

Se nos acaba el tiempo, bueno entreguemos lo que

Ingeniera del Software


Administracin y gerencia
Tecnologa

tenemos y probamos despus, que pruebe el cliente,


en trminos generales debera funcionar.

Pruebas

Aplicacin

Jefe

Programador

TIEMPO = $
Ingeniera de software

Causas

Algunas causas
Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa

mmm mas o menos unos


3 meses

La carnada que nos pone el cliente


Ingeniero, necesito un
software para mi empresa
pero solo le puedo pagar
por 3 meses. Cunto
crees que te demoras?

Listo, hgale y nos vemos


en 3 meses.

Ok, hoy mismo arrancamos

Desarrollador
Ingeniera de software

Cliente

NO CREAS QUE ESTAS ENGAANDO

Causas

Algunas causas
Construccin

Ingeniera del Software


Administracin y gerencia
Tecnologa

La carnada que nos pone el cliente

Bueno creo que es un


sistemas para llevas la
contabilidad, el negocio
del cliente es una
ferretera.

Tenemos un contrato,
pnganse a programar

Cual es el problema a
resolver.
Y la planeacin del
proyecto?

Para que la
planeacin?, Igual
nunca funciona.
Y solo tenemos 3
meses.

Planeacin,
cronograma

Jefe

Programadores

EL ENGAADO ERES TU
Ingeniera de software

Causas

Algunas causas

Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa

Simplicidad en los procesos de


transicin y despliegue de la aplicacin

$
Programador
Ingeniera de software

Cliente

Causas

Algunas causas
Construccin

Ingeniera del Software


Administracin y gerencia
La Tecnologa

Exigencia de trabajo extra al equipo de


desarrollo

No, eso era su


responsabilidad

Usted dijo que hacia esa


parte

CONSECUENCIAS
Ingeniera de software

Causas

Algunas causas
Que usamos y que criterios tenemos

Construccin
Ingeniera del Software
La Administracin y gerencia
Tecnologa

para escoger ?

Los Cliente ya nos hablan de:


Web servicew, WEB de escritorio ?
SQLServer, Oracle, MySQL ?
Con Objetos y Aspectos ?
.Net o Java-JEE ?
Work flow ?

Experto

Seguridad con LDAP o propia ?


Componentes ?
De tres capas o mas ?
mmm No se que es pero no debe
ser tan difcil

SERA MALO SABER DE TODO UN


Ingeniera de software

POCO ?

Causas

Algunas causas
Construccin
Ingeniera del Software
La Administracin y gerencia
Tecnologa

Seguro, Robusto, Arquitectura,


Documentacin
Por qu ?

Que hay aqu

Que hay aqu

Ingeniera de software

Causas

Algunas causas

Construccin
Ingeniera del Software
Administracin y gerencia
Tecnologa

Ingeniera de software

Mantenimiento

IS

Herencia del desarrollo


Factor Humano
Procesos de Cambios

Causas

Algunas causas
Mantenimiento

Herencia del desarrollo


Factor Humano
Procesos de Cambios.

Si es necesario esta etapa ?

2-3
Desarrollo

Aos
Mantenimiento

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]

SOFTWARE SIN MANTENIMIENTO = VEHCULO SIN TALLER


Ingeniera de software

Causas

Algunas causas

Mantenimiento

Problema: Etapa de mantenimiento muy

Herencia del desarrollo


Factor Humano
Procesos de Cambios

costosa
2-3

Desarrollo

Aos
Mantenimiento

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

Ingeniera de software

Causas

Algunas causas

Mantenimiento

Hay que entregar todos los artefactos


producidos durante la ejecucin del

Herencia del desarrollo


Factor Humano
Procesos de Cambios

proyecto
2-3

Desarrollo

Aos
Mantenimiento

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.

Ingeniera de software

Causas

Algunas causas

Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios

Hay que entregar todos los artefactos


producidos durante la ejecucin del
proyecto

Nombre
/** del usuario:
* Mtodoboolean
para autenticar
private
metodo1() una cuenta de usuario
Primer
Apellido
boolean:
del usuario:
true: si es valido, false: si es invalido
{* return
*/
String
cu = leer(Digite valor 1);
Segundo
private
Apellido
delautenticar()
usuario:
String
clboolean
= leer(Digite
valor{ 2);
if( cl==db.cl && cu==db.cu )
Neto
delString
valor
cuentaUsuario
a pagar a unvalidas+
empleado:
= leer(Digite
Login);
{mensaje
(Credenciales
n + pa);
return true;
String clave = leer(Digite Clave);
}
Nombre
elsede clase y mtodo para calcular la nomina de una empresa:
if( clave==admin123
&& cuentaUsuario==administrador)
{
{mensaje
( Ups, credenciales
invalidas ); i++;
mensaje ( Bienvenido al sistema+ nombre + primerApellido);
return false;
return true;
}
} else {
}
mensaje ( Lo siento, credenciales invalidad );
intentos++;
return false;
}
}
Expongamos algunos ejemplos del
cdigo que ustedes escriben

Ingeniera de software

Causas

Algunas causas
Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios

La Ingeniera del Software debe conocerla


el cliente

Menosprecio hacia estas actividades de mantenimiento.

Normalmente, los costos del mantenimiento son subestimados.

Las personas menos expertas son designadas para mantener


software.

Ingeniera de software

Causas

Algunas causas
Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios

La Ingeniera del Software debe conocerla


el cliente

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.

Ingeniera de software

Causas

Algunas causas

Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios

As como hay cambio en el Software


tambin hay cambio en los dems
artefactos

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.

Ingeniera de software

Mantenimiento

Reflexin

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

Algunas causas

Construccin

Mantenimiento

IS

Ingeniera del Software


Administracin y gerencia
Tecnologa
Etc.

Salida, Baja
Migracin
Produccin en
paralelo
Sistema en
lnea
legado

Ingeniera de software

Herencia del desarrollo


Factor Humano
Procesos de Cambios
Etc.

Causas

Algunas causas

Baja

Los datos de la aplicacin actual debe

Migracin
Produccin en paralelo
Sistema en lnea legado

La migracin es un proyecto, necesita un cronograma.

pasas a la nueva

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

Ingeniera de software

Causas

Algunas causas

Baja
Migracin
Produccin en paralelo
Sistema en lnea legado

La migracin de datos es una actividad


excepcional que es causada por
circunstancias puntuales.

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

Caractersticascomunes

Iteracin

Oportunidades iterativas identificando datos corruptos antes de migrar y as escoger la


informacin candidata.

Inspeccin

Se puede ver la informacin migrada.

Ingeniera de software

Causas

Algunas causas

Baja

Terminamos el proyectos, mandemos a

Migracin
Produccin en paralelo
Sistema en lnea legado

produccin a ver que pasa

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.

Viejo
Ingeniera de software

Nuevo

Causas

Algunas 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 ?

Lo que queremos en una nueva aplicacin pero tener disponible la


informacin histrica.

Vieja

Ingeniera de software

Nueva

El viejo sigue activo !

Causas

Algunas causas

Construccin

IS

Ingeniera del Software


Administracin y gerencia
Tecnologa

Salida, Baja
Migracin
Produccin en
paralelo
Sistema en
lnea
legado

Ingeniera de software

Mantenimiento
Herencia del desarrollo
Factor Humano
Procesos de Cambios

Causas

En resumen:
10 causas de fracasos
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

Ingeniera de software

Solucin

Una propuesta

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.

Ingeniera de software

Solucin

Una propuesta

Mejoramiento continuo

Ingeniera de software

Solucin

Que 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]

Procesos
Tecnologas
Metodologas
Arquitectura

Ingeniera de software

Solucin

Ejes de la IS

No se puede ser un buen arquitecto sin saber

El proceso tiene que ir apoyado por metodologas

de tecnologa

No se puede disear el proceso sin tener en


cuenta la Arquitectura

Procesos

Arquitectura

Etc.

Metodologa

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

Tecnologa

No basta con saber de tecnologa para ser un


buen arquitecto

Ingeniera de software

No se puede ser un buen diseador sin saber de


tecnologas

Les toca a ustedes

Exposiciones
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 Herramienta


evolutivos: De desarrollo concurrente
Modelo de procesos evolutivos:
s De ensamblaje de
componentes
Modelo en V

8.

DRATecnologa

9.

Modelo XP

Ingeniera de software

Metodologa

7.

Arquitectura

6.

Procesos

Metodologa

Exposiciones
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

Referencias

http://sistemas.uniandes.edu.co

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

Ingeniera de software

Вам также может понравиться