Presentación de PowerPoint

Métodos y Metodologías de
desarrollo de software
Johanna Correa Campos
Etapas de desarrollo
Requisitos (Levantamiento de
requerimientos)
 Análisis
 Arquitectura
 Diseño
 Implementación
 Prueba
 Entrega

El modelado

Simplificación del objeto en el mundo real,
pero que es suficientemente realista
como para dar una idea de lo que
ocurrirá en la realidad y usarse como
base del desarrollo
División del producto

Se fracciona el producto de modo que
cada fragmento lo puede realizar un
miembro del grupo de desarrollo.
División del producto

Implica dividir el desarrollo del artefacto
por fases. Normalmente se habla de
especificación, diseño y fabricación.
Qué es el desarrollo de software?
Ciclo de vida de Software

Consiste en determinar:
◦ las fases productivas de un proyecto,
◦ los objetivos de cada fase productiva, y
◦ los productos obtenidos en cada una de estas fases así
como sus características
◦ Se han propuesto muchos ciclos de vida para el desarrollo
del software, pero estos son los más representativos:








Poner la cola al burro.
Ciclo de vida clásico o en cascada.
Construcción rápida de Prototipos Desechables
Incremental
Evolución de prototipos
Reutilización de Software
Síntesis automática de software
En espiral.
Poner la cola al burro
• Se coge a uno o varios
desarrolladores y analistas,
• Se les muestra más o menos
el problema,
• Se les deja solos en un
cuarto a oscuras,
• Transcurrido un tiempo se
abre la puerta.
Ciclo de vida clásico o en cascada.
La Versión Ideal (Perfecta)
 El Modelo en V
 El Helado de Cucurucho
 El Modelo Real
 Propuesta de Yourdon

La Versión Ideal
Modelo en V
El cucurucho de helado
Propuesta de Yourdon
Modelo en espiral
En cada vuelta tomamos en cuenta:
 Los Objetivos: Que necesidad debe
envolver el programa.

Alternativas: Los varios métodos
de alcanzar los objetivos de
manera exitosa, a través de
diferentes puntos como son:





Características: experiencia del
personal, exigencias a efectuar.
Formas de gestión del programa.
Riesgo tomado con cada alternativa.
Desarrollar y Verificar: Programar y
probar el programa .
Se planificaran los siguientes pasos
y se volverá a empezar la espiral. La
espiral tiene una forma de caracola
y se dice que mantiene dos
dimensiones la radial y la angular:
◦
◦
Angular=Avance del proyecto
Software, dentro de un ciclo.
Radial=Aumento del coste del
proyecto, ya que con cada nueva
iteración se pasa más tiempo
desarrollando.
Metodologías de Desarrollo del
Software
Métodos informales
 Métodos Semiformales
 Métodos Formales

3. El proceso de desarrollo de software
15
Métodos informales

Joaquín Lucio-Villegas los clasifica como:
◦ Quick & Dirty (USA)
◦ Match stick box (Europa)
3. El proceso de desarrollo de software
16
Métodos Semiformales

Métodos Estructurados
◦ SA/SD (structured analysis & structured design)
◦ Métrica

Métodos Orientados a Objetos
◦ OMT
◦ UML
3. El proceso de desarrollo de software
17
Métodos Estructurados
Métodos Orientados a la Estructura de
los Datos
 Métodos de flujo de datos

PROCESOS
DATOS
3. El proceso de desarrollo de software
18
Métodos Orientados a Objetos

Los métodos orientados a objeto describen
e implementan los sistemas de información
desde un punto de vista ontológico.
3. El proceso de desarrollo de software
19
Métodos Formales
◦ Los métodos formales permiten al ingeniero de
software especificar, desarrollar y verificar un
sistema informático mediante la aplicación de una
notación matemática rigurosa.
◦ Utilizando un lenguaje de especificación formal, un
método formal proporciona los medios de
especificar un sistema de forma que se aseguren, de
forma sistemática, la consistencia, la completitud y la
corrección.
◦ Se suelen basar en notaciones matemáticas similares
a las del álgebra de conjuntos y la lógica
3. El proceso de desarrollo de software
20
Madurez del proceso en la
organización de desarrollo

La misma industria, diferentes niveles de
madurez.
3. El proceso de desarrollo de software
21
Madurez del proceso en la
organización de desarrollo
Hay factores que no quedan claramente
reflejados en el ciclo de vida ni en las
técnicas de desarrollo.
 Los factores no estudiados son:

◦ El cumplimiento de los plazos de entrega.
◦ La calidad (número de errores en el
Software).
◦ El coste del proyecto.
3. El proceso de desarrollo de software
22
CMM (Capability Maturity Model)

Proporciona una Guía sobre como
◦ controlar los procesos:
 de desarrollo del software.
 de mantenimiento.
◦ Hacer evolucionar hacia una cultura de:
 Ingeniería del software.
 Gestión eficiente.
3. El proceso de desarrollo de software
23
Evolución de las organizaciones
según el CMM
Control
del
Proceso
Medición
del
Proceso
Definición
del
Proceso
Control
Básico
Optimización
Gestionado
Definido
Repetible
Inicial
3. El proceso de desarrollo de software
24
Correlación entre estimaciones y niveles de
madurez
3. El proceso de desarrollo de software
25
Nivel Inicial.
Según las circunstancias utilizamos un
proceso distinto. (algunos caóticos)
 A medida,
 Poco formalizado,
 Uso de herramientas informales.
 Pocos procesos definidos.
 El éxito depende del esfuerzo individual.

3. El proceso de desarrollo de software
26
Nivel de Repetición.
Se tiene procesos estables de desarrollo,
con control estadístico.
 Uso de datos históricos
 Establecimiento de procesos de gestión
de proyecto, para hacer seguimiento de:

◦ Coste.
◦ Planificación.
◦ Funcionalidad.
3. El proceso de desarrollo de software
27
Nivel de Definición.
Proceso de desarrollo perfectamente
definido y estandarizado.
 Integrado en la organización.
 Bien documentado.
 Todos los proyectos utilizan una versión
documentada y aprobada de proceso.

3. El proceso de desarrollo de software
28
Nivel de Gestión.
Mejoras de calidad sustanciales.
 Control cuantitativo de productos y
proceso a través de

◦ Mediciones del proceso comprensibles.
◦ Mediciones de la calidad
3. El proceso de desarrollo de software
29
Nivel de Optimización.

A través de mediciones del proceso
utilizando ideas y tecnologías innovadoras
obtenemos:
◦ Mejoras en calidad y cantidad.
3. El proceso de desarrollo de software
30
Metodología Vs Modelo

Una metodología puede seguir uno o
varios modelos de ciclo de vida, es decir,
el ciclo de vida indica qué es lo que hay
que obtener a lo largo del desarrollo del
proyecto pero no cómo hacerlo.

La metodología indica cómo hay que
obtener los distintos productos parciales
y finales
Metodologías

Monumental: Existen hace
mucho tiempo, no han sido
exitosas porque son muy
burócratas, se han orientado al
documento más que a los
resultados.

Ágil: Son la justa medida entre
“ningún proceso” y “demasiado
proceso”, proporcionando
simplemente “suficiente proceso”
para que el esfuerzo valga la pena
!!!
Metodologías mas conocidas
XP (Programación Extrema)
 La familia Cristal de Cockburn
 Código Abierto
 ASD (Desarrollo de Software Adaptable)
 SCRUM
 FFD (Desarrollo Manejado por Rasgos)
 DSDM (Método de desarrollo de sistema
dinámico)
 RUP (Rational Unified Process)

Características de RUP ...
Guiado y Manejado por Casos de Uso
Centrado en la Arquitectura
Iterativo e Incremental
Desarrollo Basado en Componentes
Utilización de UML
Proceso Integrado
Principal Propuesta ...
Modelo
Tradicional
de Cascada
Requerimientos
Análisis &
Diseño
Construcción
Pruebas
t
Tiempo
Modelo
Iterativo
Incremental
Iteración 1
Iteración 2
R
R
A&D
R
A&D
C
A&D
C
P
Tiempo
Iteración 3
C
P
P
t
Define Fases de Desarrollo ...
Flujos de
Trabajo
Concepción
Análisis & Diseño
Construcción
Pruebas
Distribución
Esfuerzo Necesario por Actividad
Requerimientos
Elaboración
Construcción
Transición
R
R
R
R
A&D
A&D
A&D
A&D
C
C
C
C
P
P
P
P
D
D
D
D
Tiempo
Iteración
Preliminar
Iteración
1
Iteración
2
....
....
Iteración
n
Iteración
n+1
Importancia de los Hitos ...
Compromiso de
recursos para fase
elaboración
Concepción
Aceptación
del cliente
Elaboración
Construcción
Transición
Tiempo
Hito
Objetivos
Hito
Arquitectura
Hito
Capacidad
Operacional
Liberación
Producto
Mejores Prácticas de RUP ...
Desarrolle Iterativamente
Administre los
Requerimientos
Use
Arquitectura
de
Componentes
Modele
Visualmente
Controle los Cambios
Verifique
Calidad
Antecedentes ...

Un cliente interno insatisfecho

Se requería una nueva Plataforma
Comercial Banca para la Banca
Corporativa

Un Proyecto y tres desafíos ...
◦ Nueva Tecnología
◦ Usar metodología
◦ Externalizar el Desarrollo
La Adopción de RUP ...
La resistencia al cambio
El escepticismo inicial
La capacitación
El reencantamiento
El Mentor
El mentoring es vital al momento de comenzar a
utilizar una metodología !!
Principales Prácticas de RUP ...
Documento
Visión
Lista de
Riesgos
Los Casos
de Uso
Iteraciones Incrementales
Los Entregables
Control de Cambios
Las Pruebas
Scrum
Roles
•
•
•
•
Product owner
Scrum master
Team
Interesados
Se debe realizar una reunión diaria,
donde todos los participantes deben
estar de pie, la reunión no debe
durar mas de 10 min y se debe
contar
¿Qué hice?
¿Qué voy a hacer?
¿Qué problemas he tenido?