Publicado el 20 de Julio del 2020
3.051 visualizaciones desde el 20 de Julio del 2020
1,5 MB
107 paginas
Creado hace 13a (18/07/2011)
Métodos de Desarrollo de
Software
(o bien, como desarrollar software sin morir en el intento...)
Universidad de los Andes
Demián Gutierrez
Julio 2011
¿método?
Métodos / Metodologías
Método: Es un conjunto de herramientas,
técnicas y procesos que brindan soporte y
facilitan el logro u obtención de una meta
¿Cómo
Construir
un Reactor
Nuclear?
Métodos / Metodologías
Método: que hacer, a lo largo de todo el ciclo de
vida del software, para construir un producto
bueno, de calidad, dentro del presupuesto y a
tiempo
¿Cómo
Construir
un Reactor
Nuclear
software?
software
¿ciclo de vida?
¿ciclo de desarrollo?
Ciclo de Vida / Ciclo de Desarrollo
Describe la vida de un producto de software desde
su definición, pasando por su diseño,
implementación, verificación, validación, entrega, y
hasta su operación y mantenimiento
necesario un método
para desarrollar
¿por qué es
software?
Ciclo de Vida / Ciclo de Desarrollo
por lo complejo que resulta desarrollar software
Ciclo de Vida / Ciclo de Desarrollo
i
o
b
m
a
C
l
e
d
o
t
s
o
C
Requerimientos / Análisis / Diseño / Implementación / Pruebas / Producción
(aunque los métodos ágiles pueden cambiar esta visión)
Fuente: Adaptado de Kent Beck / Extreme Programming Explained, Embrace the Change
por el costo del cambio, la naturaleza del software
y otras razones
¿qué aporta
un método?
Métodos / Metodologías
Productos,
Subproductos,
Insumos,
Entregable
(definición)
Actividades
Procesos
Roles,
Actores
(definición)
Tareas
(Genérico)
(definición)
Guías,
Herramientas
Buenas
Prácticas
y otros elementos adicionales...
Fuente: Eclipse Process Framework Composer / April 2007 / Peter Haumer / IBM Rational Software
Métodos / Metodologías
(Herramientas)
Casos de Uso, Plantillas de Documentos, UML:
Diagramas de Clases, de Casos de Uso, de
Actividades, de Secuencia, etcétera.
Grafos de navegación, lenguajes de programación,
bibliotecas, armazones de aplicación (frameworks),
entornos integrados de desarrollo (IDEs), armazones
de pruebas, etcétera.
Software de gestión, herramientas de gestión,
etcétera
y muchas otras...
Métodos / Metodologías
(Buenas Prácticas)
¿Su empresa usa control de código fuente? ¿Control de versiones?
¿Se hacen “compilaciones” (builds) e integraciones diarias?
¿Se tiene algún tipo de base de datos de defectos (bugs)?
¿Arreglan los defectos existentes antes de escribir código nuevo?
¿Se mantiene un calendario de proyecto actualizado?
¿Trabajan en base a especificaciones de algún tipo?
¿Los programadores tienen condiciones adecuadas y tranquilas de
trabajo?
¿Se utilizan las mejores herramientas que el dinero puede comprar?
¿Se tienen probadores? ¿Se tienen probadores dedicados sólo a las
pruebas?
¿Los nuevos candidatos a programadores escriben código durante
su entrevista de trabajo?
¿Se realizan pruebas de usabilidad?
entre otras, y no necesariamente en este orden...
Fuente: Joel on Software / http://www.joelonsoftware.com/articles/fog0000000043.html
¿proceso?
¿modelo de proceso?
Métodos / Metodologías
¿Qué es el Proceso?
Un proceso define quien está haciendo qué, cuándo
y cómo lograr cierta meta.
The three “Amigos”
Un proceso es "una serie de pasos que involucra
actividades, restricciones y recursos que producen
una salida de algún tipo"
Pfleeger
...
Métodos / Metodologías
¿Qué es el Proceso?
Los "procesos de desarrollo de software"
poseen reglas preestablecidas, y deben
ser aplicados en la creación del software de
mediano y gran porte, ya que en caso
contrario lo más seguro es que el proyecto o
no logre concluir o termine sin cumplir los
objetivos previstos, y con variedad de fallos
inaceptables (fracasan, en pocas palabras).
Tomado de:http://es.wikipedia.org/wiki/Software
...en realidad, esta definición se refiere
a un “modelo de proceso”...
Métodos / Metodologías
(Diferencia entre Proceso y Modelo de Proceso)
Un modelo de proceso de software es una
representación abstracta de un proceso de
software.
Modelo de Proceso (lo que debería ocurrir)
Sommerville
P2
P1
Pn
...
...
Proceso Real (lo que ocurre)
Algunas Características de los Procesos
(Modelos de...)
Claridad: ¿Es fácil de
comprender?
Fiabilidad: Probabilidad
de Buen Funcionamiento
Facilidad de Soporte
Visibilidad: ¿Puedo Ver lo
que Ocurre en el Proceso?
Robustez: ¿Es Difícil de
Perturbar?
Facilidad de
Mantenimiento
Aceptación: ¿Se vende?
¿Los “Usuarios” lo
Consideran Viable?
Conveniencia: ¿Es el
método conveniente para
lo que vamos a hacer?
Rapidez: ¿Permite
Entregar Rápido el
Producto?
Adaptabilidad: ¿Lo puedo
cambiar según las
necesidades?
Procesos Livianos vs Pesados
Procesos Livianos
(O de “peso liviano”)
Procesos Pesados
(O de “peso pesado”)
entregables,
subproductos,
hitos, etc
Métodos / Metodologías
(Hitos)
Estudio de
Viabilidad
Perfilar
Requisitos
Desarrollo de
Prototipos
Especificación
de Requisitos
Informe
de
Viabilidad
Definición
de
Requisitos
Especificación
de
Requisitos
La definición y
verificación de
Hitos es una
forma de darle
“visibilidad” al
proceso
Prototipos
Informe
de
Evaluación
de Prototipos
Fuente: Adaptado de EPS Informática UAM (T3: 18/19)
Métodos / Metodologías
(Hitos)
Producto intermedio “enseñable”
Se consigue un hito cuando se ha revisado la calidad
de uno o más productos y se han aceptado
Tras cada hito se debería generar un informe de
progreso del proyecto
Definir Qué, Quién, Cuándo y Cómo se va a evaluar
Coincidiendo con el final de una fase (al menos)
Definir los productos correspondientes a cada hito
Fuente EPS Informática UAM (T3: 18/19)
roles
actores
Métodos / Metodologías
(Roles)
Los roles sirven para definir
quién hace que (y
probablemente cuando), son una
forma de asignar y definir
responsabilidades a personas,
sin tener que nombrar a las
personas en particular
Métodos / Metodologías
(Roles)
Un cerdo y un pollo van caminando por la carretera. El pollo le dice al
cerdo:*
-Oye, ¿por qué no abrimos un restaurante?
El cerdo se vuelve y le responde:
-Buena idea, ¿cómo quieres que lo llamemos?
El pollo se lo piensa y propone:
-¿Por qué no lo llamamos “Huevos con jamón”.
Rol: Las acciones o actividades asignadas o requeridas de una persona o
grupo (“La función del maestro”, “El gobierno debe de...”)
Rol: Un personaje o parte escenificada por un actor; El comportamiento
esperado de un individuo en la sociedad. La función o posición de algo.
-No cuentes conmigo -responde el cerdo-. En ese caso, tú sólo estarías
IMPLICADO, mientras que yo estaría realmente COMPROMETIDO.
* Fuente: Tomado de SCRUM
Métodos / Metodologías
(Roles)
importante
No confundir los roles en los procesos de
desarrollo con los actores o roles del
sistema o con los interesados o
“stakeholders”
¡Son dos cosas totalmente distintas!
Ej: Describir al “desarrollador” como actor
del sistema en el documento de casos de
uso probablemente será un error en la
mayoría de los casos
¿modelos básicos
de procesos?
...modelos de procesos muy generales (algunas veces llamados paradigmas de
proceso) ... Esto es, vemos el marco de trabajo del proceso, pero no los detalles de
actividades especìficas. Estos modelos generales no son descripciones definitivas
de los procesos del software. Más bien, son abstracciones de los procesos que se
pueden usar para explicar diferentes enfoques del desarrollo de software...
Ian Sommerville
lo que
pasa
algunas veces
(y no debería)
Ciclo de Vida / Ciclo de Desarrollo
(Lo que usualmente pasa, y no debe pasar)
Análisis
Diseño
Pruebas
Codificación
proceso en
cascada
¿Proceso en Cascada?
Definición de
Requerimientos
Diseño de Sistema
y de Software
¿se parece al
proceso de
solución de
problemas en
ingeniería?
Cliente...
Implementación
y Pruebas de
Unidades
¿Que voy a hacer?
¿Cómo lo voy
a hacer?
Se hacen compromisos
en las etapas iniciales
El resultado de cada etapa son
documentos firmados y aprobados
por las partes involucradas
Integración y
Prueba del
Sistema
¿Cómo se ve
completo?
¿Lo hice bien?
Altos costos, especialmente si se
requieren cambios
Operación y
Mantenimiento
Modelo en V
Valida Requerimientos
Operación y
Mantenimiento
Definición de
Requerimientos
Verifica Diseño
Pruebas de
Aceptación
Diseño de
Sistema y de
Software
Verifica Diseño
Pruebas de
Sistema
Diseño de
Programa
Pruebas de
unidades e
integración
Codificación
Es una variación del
modelo de cascada que
hace explícito el proceso de
Verificación (V) en las fases
de análisis y diseño
¿Proceso en Cascada?
Definición de
Requerimientos
Diseño de Sistema
y de Software
Operación y
Mantenimiento
Implementación
y Pruebas de
Unidades
¿Por qué falla
el proceso en
cascada?
Integración y
Prueba del
Sistema
Lo que sucede
en realidad...
¿Proceso en Cascada?
Es el modelo más simple, conocido
El producto / resultado sólo se ve al final (para el cliente). Si
existe algún error (diferencia) ésto tiene un resultado
catastrófico
Suele ser difícil para el cliente establecer TODOS los
requisitos de manera explicita (y al principio del proceso).
Naturaleza del software: Cambio
Suele ser difícil para el cliente establecer TODA las
arquitectura del software de manera explicita al principio del
proceso.
Se producen estados de bloqueo, en los que algunos
miembros del equipo deben esperar a otros para terminar
tareas dependientes
proceso / modelo
en espiral
Modelo de Riesgos o de Espiral
En general se puede asociar cada giro a una fase del proceso de
desarrollo. Ej. 1er giro: objetivos, alternativas restricciones; 2do
giro: especificación de requisitos; 3er giro: diseño; 4to giro:
implementación, etcétera.
Fuente; http://es.wikipedia.org/wiki/Espiral_de_Boehm
Modelo de Riesgos o de Espiral
Fuente; http://en.wikipedia.org/wiki/Spiral_model
Modelo de Riesg
Comentarios de: Métodos de Desarrollo de Software (0)
No hay comentarios