PDF de programación - Métodos de Desarrollo de Software

Imágen de pdf Métodos de Desarrollo de Software

Métodos de Desarrollo de Softwaregráfica de visualizaciones

Publicado el 20 de Julio del 2020
2.930 visualizaciones desde el 20 de Julio del 2020
1,5 MB
107 paginas
Creado hace 12a (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
  • Links de descarga
http://lwp-l.com/pdf17924

Comentarios de: Métodos de Desarrollo de Software (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad