PROCESOS DE SOFTWARE HE AHÍ EL DILEMA

Transcripción

PROCESOS DE SOFTWARE HE AHÍ EL DILEMA
PROCESOS DE SOFTWARE
HE AHÍ EL DILEMA
JAIME GARCIA CEPEDA
[email protected]
SKIT Consulting
2718884
BOGOTÁ
1
PREAMBULO
XXVII Salón de
Informática Septiembre'2007
2
Algunos de nuestros
Ingenieros
XXVII Salón de
Informática Septiembre'2007
3
Ing. PASARELA
XXVII Salón de
Informática Septiembre'2007
4
Ing. FÓRMULA 1
XXVII Salón de
Informática Septiembre'2007
5
Ing. SOCIAL
XXVII Salón de
Informática Septiembre'2007
6
Ing. SOÑADOR
XXVII Salón de
Informática Septiembre'2007
7
Ing. ASTRÓNOMO
XXVII Salón de
Informática Septiembre'2007
8
Ing. HOGAREÑO
XXVII Salón de
Informática Septiembre'2007
9
Ing. PAPELERO
XXVII Salón de
Informática Septiembre'2007
10
Ing. TURISTA
XXVII Salón de
Informática Septiembre'2007
11
Ing. GASTRONÓMICO
XXVII Salón de
Informática Septiembre'2007
12
Ing. HORMIGA
Ing. HORMIGA
XXVII Salón de
Informática Septiembre'2007
13
Ing. Fantasma
XXVII Salón de
Informática Septiembre'2007
Ing. FANTASMA
14
Ing. POLITICO
Ing. Politiquero
XXVII Salón de
Informática Septiembre'2007
15
Ing. Emperador
XXVII Salón de
Informática Septiembre'2007
16
Ing. Avión
XXVII Salón de
Informática Septiembre'2007
17
Ing. Ultima Cocacola del Desierto
XXVII Salón de
Informática Septiembre'2007
18
Ing. Vaca Sagrada
XXVII Salón de
Informática Septiembre'2007
19
Ing. Planetario
XXVII Salón de
Informática Septiembre'2007
20
Ing. Biblia
XXVII Salón de
Informática Septiembre'2007
21
Ing. Jamón
XXVII Salón de
Informática Septiembre'2007
22
Y tú que Ing. Eres o quieres ser ?
XXVII Salón de
Informática Septiembre'2007
23
Cual es la expectativa
de esta conferencia?
XXVII Salón de
Informática Septiembre'2007
24
Proceso de Desarrollo de Software
Requisitos del usuario
XXVII Salón de
Informática Septiembre'2007
Proceso de Desarrollo
de Software
Sistema Software
25
Las cuatro “P” en el desarrollo de Software
Proceso
Plantilla
Personas
Participantes
Proyecto
Automatización
Herramientas
Resultado
Producto
XXVII Salón de
Informática Septiembre'2007
26
ETAPAS DEL PROCESO
XXVII Salón de
Informática Septiembre'2007
27
La vida de un proceso consta de ciclos desde su nacimiento
hasta su muerte
Nacimiento
Muerte
Los ciclos concluyen con una versión
XXVII Salón de
Informática Septiembre'2007
28
Trabajadores participando en el proceso de Software
Usuarios
Arquitecto
Sistema
Diseñadores
El Jefe de
Proyecto
XXVII Salón de
Informática Septiembre'2007
Ingenieros de
Prueba
Analistas
29
Roles de la
Fábrica
XXVII Salón de
Informática Septiembre'2007
30
Nuestra
Realidad
XXVII Salón de
Informática Septiembre'2007
31
SINTOMAS Y CAUSAS ORIGEN DE PROBLEMAS
DE DESARROLLO DE SOFTWARE
Diferentes proyectos de desarrollo de software caen en diferentes estados,
desafortunadamente, muchos de ellos fallan. Pero es posible identificar un numero de
síntomas comunes que caracterizan estos tipos de proyectos:
•
•
•
•
•
•
•
•
Entendimiento inexacto de las necesidades de los usuarios finales
Inhabilidad de manejo de cambios de requerimientos
Módulos que no encajan juntos
Software que es difícil de mantener o extender
Descubrimiento tardío de fallas serias del proyecto
Calidad pobre del proyecto
Rendimiento inaceptable del software
Desacuerdo entre los miembros del equipo haciendo imposible la
reconstrucción de quien cambio qué, cuando, donde y porqué
• Un proceso de construcción y producción de poca confianza
Tomado de Rational unified Process an introduction Philippe Kruchten
XXVII Salón de
Informática Septiembre'2007
32
SINTOMAS Y CAUSAS ORIGEN DE PROBLEMAS
DE DESARROLLO DE SOFTWARE
Desafortunadamente, tratar estos
síntomas no trata la enfermedad.
El descubrimiento de fallas serias en el proyecto es
solo un síntoma de problemas mayores,
XXVII Salón de
Informática Septiembre'2007
33
SINTOMAS Y CAUSAS ORIGEN DE PROBLEMAS
DE DESARROLLO DE SOFTWARE
A pesar de que diferentes proyectos fallan en diferentes maneras, parece que la mayoría
de ellos fallan por la combinación de las siguientes causas raíces:
•
•
•
•
•
•
•
•
•
Adición del mantenimiento
Comunicación ambigua e imprecisa
Complejidad insoportable
Inconsistencias no detectadas en los requerimientos, diseños e implementaciones
Pruebas insuficientes
Valoración subjetiva de el estatus del proyecto
Falla al atacar el riesgo
Propagación de cambio incontrolable
Automatización insuficiente
XXVII Salón de
Informática Septiembre'2007
34
SITUACION COLOMBIANA
XXVII Salón de
Informática Septiembre'2007
35
En casa de Herrero…
Azadón de Palo
XXVII Salón de
Informática Septiembre'2007
36
ALGUNOS MODELOS DE
PROCESOS DE SOFTWARE
XXVII Salón de
Informática Septiembre'2007
37
EL CICLO DE VIDA
DE LA CASCADA
XXVII Salón de
Informática Septiembre'2007
38
EL MODELO ESPIRAL
XXVII Salón de
Informática Septiembre'2007
39
MICROSOFT SOLUTIONS
FRAMEWORK
XXVII Salón de
Informática Septiembre'2007
40
XXVII Salón de
Informática Septiembre'2007
41
MODELO DE PROCESO UNIFICADO
XXVII Salón de
Informática Septiembre'2007
42
SCRUM
XXVII Salón de
Informática Septiembre'2007
43
RUP
XXVII Salón de
Informática Septiembre'2007
44
EL PROCESO
RACIONAL UNIFICADO
Un proceso de desarrollo de software contempla:
1.Verificación continua de la calidad del software
2.Especificar cuales artefactos pueden ser desarrollados y cuando pueden
ser desarrollados.
3.Dirigir las tareas de desarrolladores individuales y al equipo como un
todo.
4.Ofrecer criterios para la monitoria y medida de los productos y
actividades del proyecto.
XXVII Salón de
Informática Septiembre'2007
45
EL PROCESO
RACIONAL UNIFICADO
5. Proveer una guía a la orden de las a actividades de el equipo.
6. Control de Cambios al software
XXVII Salón de
Informática Septiembre'2007
46
Los cinco Flujos de Trabajo
XXVII Salón de
Informática Septiembre'2007
47
El conjunto fundamental de modelos del Proceso Unificado
Modelo de casos
de Uso
XXVII Salón de
Informática Septiembre'2007
Modelo de
Análisis
Modelo de
Diseños
Modelo de
Despliegue
Modelo de
Implementación
Modelo de
Prueba
48
Modelo del Proceso Unificado
XXVII Salón de
Informática Septiembre'2007
49
XXVII Salón de
Informática Septiembre'2007
50
Mediante un proceso iterativo de especificación, diseño y
Construcción
XXVII Salón de
Informática Septiembre'2007
51
UN PROCESO ITERATIVO
E INCREMENTAL
XXVII Salón de
Informática Septiembre'2007
52
Análisis y Diseño
Funcional
Estas etapas se desarrollan para la determinación y diseño de los
requerimientos funcionales y no funcionales
XXVII Salón de
Informática Septiembre'2007
53
Casos de Uso
Un caso de uso es una descripción de las acciones de un sistema desde el
punto de vista del usuario. Es una estructura que ayuda a los analistas a
trabajar con los usuarios para determinar la forma en que se usará un
sistema.
La Metodología a seguir contempla las visiones de todos los actores que
intervienen el proceso de conocimiento del sistema.
XXVII Salón de
Informática Septiembre'2007
54
Representación
SISTEMA
ASOCIACION
ACTOR
CASO DE
USO
XXVII Salón de
Informática Septiembre'2007
55
Casos de Uso
Identificador \ Nombre:
7. Capturar datos formulario de inscripción.
Tipo:
Necesario
Requerimiento que lo Utiliza ó
Especializa:
Prioridad de Desarrollo:
Ninguno (no llenar)
Actores
Iteración 1
Funcionario
¿Crítico?
Indique SI / NO, es decir si es
vital para el negocio
Si
Documentos Asociados:
- Diagrama de Casos de Uso
- Formulario de Inscripción de
empresas
Descripción:
El funcionario debe transcribir los datos consignado en el formulario de inscripción de empresas
al servicio y el formulario físico se enviara vía correo para su captura
Entrada:
Formulario de Inscripción. Se debe ingresar la información de la empresa.
Salida:
Creación Cliente, archivo en la base de datos y formulario del cliente
Manejo de Situaciones Anormales
Criterios de Aceptación
No se debe llenar.
Responsable
XXVII Salón de
Informática Septiembre'2007
56
Diagrama de
Estados
Una manera para caracterizar un cambio en un sistema es decir
que los objetos que lo componen modificaron su ESTADO como
respuesta a los sucesos y al tiempo.
El diagrama de estados presenta los estados en los que puede
encontrarse un objeto junto con las transiciones entre los estados,
y muestra los puntos inicial y final de una secuencia de cambios
de estado.
XXVII Salón de
Informática Septiembre'2007
57
Representación
INICIO
ESTADO
ASOCIACION
FIN
XXVII Salón de
Informática Septiembre'2007
58
Diagrama de
Secuencia - Tiempo
OBJETO
ACTOR
ASOCIACION
NUMERO DE
ACTIVIDAD
LINEA DE
TIEMPO
XXVII Salón de
Informática Septiembre'2007
59
Diagrama de
Actividades - Tiempo
ACTIVIDAD
INICIO
DECISIÓN
FLUJO
FIN
XXVII Salón de
Informática Septiembre'2007
60
Diagrama de
Colaboración Espacio
ASOCIACION
ACTOR
OBJETO
NUMERO DE
ACTIVIDAD
XXVII Salón de
Informática Septiembre'2007
61
Diagrama de
Componentes
Los diagramas de componentes describen los elementos físicos
del sistema y sus relaciones. Muestran las opciones de realización
incluyendo código fuente, binario y ejecutable.
Un diagrama de componentes muestra clasificadores de
componentes, las clases definidas en ellos, y las relaciones entre
ellas.
XXVII Salón de
Informática Septiembre'2007
62
Representación
INTERFACE
ASOCIACION
COMPONENTE
XXVII Salón de
Informática Septiembre'2007
63
Diagrama de
distribución
ASOCIACION
ASOCIACION
NODO
XXVII Salón de
Informática Septiembre'2007
64
Modelo Datos
XXVII Salón de
Informática Septiembre'2007
65
Formas e
Interfaces
XXVII Salón de
Informática Septiembre'2007
66
Consultas y
Reportes
XXVII Salón de
Informática Septiembre'2007
67
Arquitectura
XXVII Salón de
Informática Septiembre'2007
68
Modelo de
Soporte
XXVII Salón de
Informática Septiembre'2007
69
SCRUM
XXVII Salón de
Informática Septiembre'2007
70
ALGUNAS METODOLOGIAS AGILES
REPRESENTATIVAS
Programación Extrema XP (Extreme
Programming),
Open Source
Crystal de Cockburn
Desarrollo de Software Adaptable de Highsmith
Scrum
Desarrollo Guiado por Aspectos
DSDM (Método de Desarrollo de Sistema
Dinámico)
XXVII Salón de
Informática Septiembre'2007
71
SCRUM
Desarrollo de software en etapas incrementales
Entregas de software terminado
Optimiza el instinto y la experiencia de los
participantes
Enfoca y potencia el trabajo en equipo
Incorpora aprendizaje y adaptación
Fácil de aprender
Facilita la adopción incremental de funcionalidad
Es una metodología de bajo costo y riesgo
XXVII Salón de
Informática Septiembre'2007
72
SCRUM
XXVII Salón de
Informática Septiembre'2007
73
XXVII Salón de
Informática Septiembre'2007
74
XXVII Salón de
Informática Septiembre'2007
75
XXVII Salón de
Informática Septiembre'2007
76
XXVII Salón de
Informática Septiembre'2007
77
XXVII Salón de
Informática Septiembre'2007
78
PUNTOS CLAVES
XXVII Salón de
Informática Septiembre'2007
79
NO EXISTEN CONTRATOS ABIERTOS
XXVII Salón de
Informática Septiembre'2007
80
TODO PROYECTO DEBEN
CUMPLIR UNA SERIE DE
ACTIVIDADES
FASE/ACTIVIDAD
Preliminares
Establecer el plan de trabajo preliminar
Elaborar el Cronograma
Dar a conocer el cronograma
Establecer la organización documental
Inicio
Realizar la Presentación del proyecto
Presentación de Metodología
Realizar Capacitación Metodológica
Elaborar Plan del Proyecto
Establecer Plan de Calidad
Implantar la organización y la infraestructura del proyecto
Aprobar plan de proyecto y requerimientos
Realizar Kick Off del proyecto
XXVII Salón de
Informática Septiembre'2007
81
WBS (WORK BREAKDOWN
STRUCTURE)
FASE/ACTIVIDAD
XXVII Salón de
Informática Septiembre'2007
Análisis
Definir los requerimientos del negocio
Levantamiento preliminar de la información
Identificar actores del sistema
Entrevistas con actores del sistema
Identificar y diagramar casos de uso
Documentar detalladamente los casos de uso
Elaborar el modelo operativo actual
Analizar el modelo operativo actual
Confrontar mapeo de procesos vs casos de uso
Determinar requerimientos funcionales
Misionales
Apoyo
Gerenciales
reportes y consultas
Interfases
Determinar requerimientos no funcionales
Seguridad
Auditoria
Parametrización
Control
Validación y aprobación del proceso futuro
Establecer los volúmenes de información
Realizar Estimaciones para Desarrollo
Actualizar Plan de Trabajo
Establecer Línea Base
82
WBS (WORK BREAKDOWN
STRUCTURE)
FASE/ACTIVIDAD
XXVII Salón de
Informática Septiembre'2007
Diseño
Diseñar Arquitectura de Software
Conceptual
Lógica
Física
Elaborar Diseño Funcional
Elaborar diagrama de secuencia
Elaborar diagrama de actividades
Elaborar diagrama de estados
Elaborar diagrama de componentes
Elaborar diagrama de distribución
Elaborar diagrama de colaboración
Diseñar el modelo de persistencia
Definir Base de Datos
Elaborar diagrama de clases
Elaborar Modelo Entidad – Relación
Elaborar modelo físico de Base de Datos
Diseño de interfases de entrada y de salida
Diseño de Interfaz gráfica - Formas y consultas
Diseño de reportes
Diseño de interfases
Validación y aprobación de documentos de diseño
83
WBS (WORK BREAKDOWN
STRUCTURE)
FASE/ACTIVIDAD
XXVII Salón de
Informática Septiembre'2007
Construcción y pruebas de Desarrollo
Instalar ambiente de desarrollo
Elaborar Casos de Pruebas
Construcción
Codificar formas
Codificar procedimientos almacenados y triggers
Codificar formatos de documentos y transacciones
Codificar reportes y consultas
Codificar Web Services
Codificar procesos especiales
Codificar interfaces
Codificar procesos de migración
Realizar Parametrización Técnica del Producto
Realizar Pruebas de Desarrollo
Realizar Revisión del Código
Realizar pruebas Unitarias de Desarrollo
Realizar pruebas Integrales de Desarrollo
Certificación Pruebas de Desarrollo
Efectuar pruebas de carga y desempeño
Efectuar pruebas de concurrencia
Generar versión de Software
Documentación
Elaborar Manual de Usuario
Elaborar Manual de Sistema
84
WBS (WORK BREAKDOWN
STRUCTURE)
FASE/ACTIVIDAD
Pruebas de Aceptación y Certificación
Elaborar Plan de Pruebas de Aceptación
Establecer Ambiente de Pruebas
Realizar Capacitación Funcional
Realizar Capacitación Técnica
Realizar Parametrización de Pruebas
Cargue de datos de pruebas
Efectuar Pruebas de Aceptación (Unitarias, Integrales, de
migración etc.)
Efectuar pruebas de carga y desempeño
Efectuar pruebas de concurrencia
Realizar Ajustes Resultantes de Pruebas
Realizar Certificación
XXVII Salón de
Informática Septiembre'2007
85
WBS (WORK BREAKDOWN
STRUCTURE)
FASE/ACTIVIDAD
Puesta en Producción
Establecer Ambiente de Producción
Definir Plan y estrategia de Puesta en Producción
Definir esquema de Salida en Producción (Roll-Out o Big-Ban)
Instalar Módulos/Componentes de Software en Ambiente de
Producción
Definir acuerdos de operación
Configurar Esquema de Seguridad
Realizar Parametrización del Producto
Efectuar la migración de datos
Verificar la migración
Capacitación de usuarios finales
Seguimiento Producción
Definir Esquema de Soporte y/o acuerdo de servicio
Medir el desempeño
Acompañamiento
Cierre del Proyecto
Ejecutar el aseguramiento de calidad
XXVII Salón de Realizar Reunión de Cierre de Proyecto
Informática Septiembre'2007
86
SITUACIONES TÍPICAS
Excelente
Documentación
Software
No Funciona
Excelente
Metodología
XXVII Salón de
Informática Septiembre'2007
87
SITUACIONES TÍPICAS
Pésima
Documentación
Software
Funciona
Excelente
Metodología
XXVII Salón de
Informática Septiembre'2007
88
SITUACIONES TÍPICAS
Pésima
Documentación
Software
Funciona
Pésima
Metodología
XXVII Salón de
Informática Septiembre'2007
89
SITUACIONES TÍPICAS
Excelente
Documentación
Software
Funciona
Excelente
Metodología
XXVII Salón de
Informática Septiembre'2007
90
EXPECTATIVAS DE LOS
ACTORES
Proveedor
Cliente
Rápido
Documentado
Totalmente Certificado
Funcionando en Producción
Personal Capacitado
Precio Mínimo
Especificaciones no son Completas
Tiempos Mínimos
Cliente
Proveedor – Área Sistemas
Usuario
Usuario Directo
Rápido
Mínima Documentación
Funcionando en Producción
XXVII Salón de
Informática Septiembre'2007
No escribe Completamente Especificación
No tiene total claridad del Alcance
No sabe cuantificar sus solicitudes
No le satisface hacer pruebas
91
Cual es el Punto de
Equilibrio
Ágil
XXVII Salón de
Informática Septiembre'2007
Formalidad
Total
92
“Dame un Punto de Apoyo
Y moveré el Mundo”
Ágil
XXVII Salón de
Informática Septiembre'2007
Formalidad
Total
93
XXVII Salón de
Informática Septiembre'2007
94
Formula Mágica
XXVII Salón de
Informática Septiembre'2007
95
INCERTIDUMBRE DEL
PROYECTO
XXVII Salón de
Informática Septiembre'2007
Usuario
Sistema
Actual
Proveedor
Incertidumbre
Metodologí
Metodología
No
No
No
Alta
RobustaFormal
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
Si
Si
Si
Baja
Ágil
96
SIN EMBARGO
“Si usted trabaja para o con una entidad publica”
ROBUSTA - FORMAL
XXVII Salón de
Informática Septiembre'2007
97
SI SU PROVEEDOR
• No coge una
• Interpreta las cosas equivocadamente
• Es Conflictivo
• La Calidad no es la mejor
• Es costoso
ROBUSTA - FORMAL
XXVII Salón de
Informática Septiembre'2007
98
SI USTED TRABAJA EN
EL SECTOR PRIVADO:
• Su cliente cambia de parecer
• Su cliente utiliza frases como:
- Y eso cuando lo dije?
- Eso no es lo que contratamos
- Es obvio que eso debería estar
- Esto no es todo lo que estaba solicitado
- Nos falto …
ROBUSTA - FORMAL
XXVII Salón de
Informática Septiembre'2007
99
PROPUESTA
XXVII Salón de
Informática Septiembre'2007
100
LA PROPUESTA
“FORMALES PERO AGILES EN EL PROCESO”
XXVII Salón de
Informática Septiembre'2007
101
XXVII Salón de
Informática Septiembre'2007
102
XXVII Salón de
Informática Septiembre'2007
103
FÁBRICA DE
SOLUCIONES
XXVII Salón de
Informática Septiembre'2007
104
FASES DEL
PROYECTO
XXVII Salón de
Informática Septiembre'2007
105
TRANSICION EN
ELPROYECTO
FORMAL
Agil
Etapas
ágIl
áGil
Ágil
formaL
formAl
forMal
foRmal
fOrmal
Formal
FORMAL
XXVII Salón de
Informática Septiembre'2007
+Tiempo
106
FOR
MA
AL
RM
O
F
is
s
i
l
á
An
L
Dise
ño
Implementación
Co
ns
tru
cci
ón
ÁG
IL
ra
Cierre
MAL
ec t u
ÁGIL
FOR
it
Arqu
FORMAL
Pruebas
XXVII Salón de
Informática Septiembre'2007
FORMAL
ÁGIL
107
MUCHAS GRACIAS
[email protected]
XXVII Salón de
Informática Septiembre'2007
108

Documentos relacionados