SlideShare una empresa de Scribd logo
Ciclo de vida del
software
joan sebastián ramírez pérez
2016
Agenda
• ¿Qué es una metodología?
• Etapas ciclo de vida del software
• Clasificación de las metodologías
• Ciclos de vida existentes
¿Qué es una metodología de
desarrollo de software?
• La metodología para el desarrollo de software es un
modo sistemático de realizar, gestionar y administrar
un proyecto para llevarlo a cabo con altas
posibilidades de éxito.
• Sistematizar hace referencia a dividir el proyecto en
etapas. La normalización de estas etapas ayuda a la
administración y control del proyecto.
• Son los procesos a seguir sistemáticamente para
idear, implementar y mantener un producto software
desde que surge la necesidad del producto hasta que
cumplimos el objetivo por el cual fue creado.
ETAPAS DEL CICLO
DE VIDA
etapas del ciclo de vida
• Expresión de necesidades
• Especificaciones
• Análisis
• Diseño
• Implementación
• Debugging
• Validación
• Evolución
Expresión de necesidades
• Esta etapa tiene como objetivo elaborar un
documento en el cual se reflejan los
requerimientos y funcionalidades que ofrecerá
al usuario el sistema a implementar (qué, y no
cómo, se va a implementar).
Especificaciones
• Se formalizan los requerimientos; el
documento obtenido en la etapa anterior se
tomará como punto de partida para esta
etapa.
Análisis
• Se identifican los elementos que intervienen
en el sistema a desarrollar, su estructura,
relaciones, evolución temporal,
funcionalidades.
• Resultado de lo anterior se tendrá una
descripción clara de qué producto vamos a
construir, qué funcionalidades aportará y qué
comportamiento tendrá.
Diseño
• Ya se identificó qué hacer, ahora se debe
determinar cómo hacerlo (¿cómo debe ser
construido el sistema en cuestión?
• Se debe definir en detalle: entidades y
relaciones de las bases de datos,
seleccionamos el lenguaje que vamos a
utilizar, el Sistema Gestor de Bases de Datos,
etc.).
Implementación
• Se empiezan a codificar algoritmos y
estructuras de datos, definidos en las etapas
anteriores, en el correspondiente lenguaje de
programación o para un determinado sistema
gestor de bases de datos.
Debugging
• El objetivo de esta etapa es garantizar que nuestro
programa no contiene errores de diseño o
codificación.
• En esta etapa no se busca saber si nuestro programa
realiza lo que solicitó el usuario, esa tarea le
corresponde a la etapa de implementación. En ésta
se desea encontrar la mayor cantidad de errores.
• Todos los programas contienen errores: encontrarlos
es cuestión de tiempo. Lo ideal es encontrar la
mayoría, si no todos, en esta etapa. También se
pueden agregar pruebas de rendimiento.
Validación
• Esta etapa tiene como objetivo la verificación
de que el sistema desarrollado cumple con los
requerimientos expresados inicialmente por el
cliente.
• En muchos proyectos las etapas de validación
y debugging se realizan en paralelo por la
estrecha relación que llevan. Sin embargo,
tenemos que evitar la confusión: podemos
realizarlas en paralelo, pero no como una
única etapa.
Evolución
• En la mayoría de los proyectos se considera esta
etapa como mantenimiento y evolución, y se le
asigna, no sólo el agregado de nuevas
funcionalidades (evolución); sino la corrección de
errores que surgen (mantenimiento).
• En la práctica esta denominación no es del todo
errónea, ya que es posible que aún, luego de una
etapa de debugging y validación exhaustiva, se
filtren errores.
CLASIFICACIÓN DE
LAS METODOLOGÍAS
Metodologías estructuradas
• La orientación de estas metodologías se
dirige hacia los procesos que intervienen en el
sistema a desarrollar, es decir, cada función a
realizar por el sistema se descompone en
pequeños módulos individuales.
• Es más fácil resolver problemas pequeños, y
luego unir cada una de las soluciones, que
abordar un problema grande.
Metodologías orientadas a
objetos
• Ésta no comprende los procesos como
funciones sino que arma módulos basados en
componentes, es decir, cada componente es
independiente del otro.
• Esto nos permite que el código sea
reutilizable. Es más fácil de mantener porque
los cambios están localizados en cada uno de
estos componentes.
Ciclos de vida
Ciclos de vida
• Ciclo de vida Lineal
• Ciclo de vida en V
• Ciclo de vida Cascada
Puro
• Ciclo de vida Cascada
con Subproyectos
• Ciclo de Vida Iterativo
• Ciclo de Vida por
Prototipos
• Ciclo de vida
Evolutivo
• Ciclo de vida
Incremental
• Ciclo de vida en
Espiral
• Ciclo de vida
Orientado a Objetos
• Metodologías Ágiles
Ciclo de vida Lineal
• Se descompone el proyecto en
etapas que se ejecutan una
tras otra.
• Cada etapa es independiente y
no hay retroalimentación entre
ellas.
• Se facilita la gestión y
administración.
• No apta para proyectos en los
cuales se requiere
retroalimentación entre sus
etapas.
Ciclo de vida cascada puro
• Creada en 1970 por Winston Royce.
• Permite iteraciones y retroalimentación
entre sus etapas.
• Es rígido, poco flexible y restrictivo.
• Apoya a la planificación “simple” y calidad
del producto.
• Los resultados solo se ven en etapas
finales, se requieren todos los requisitos
desde el principio y un error en una etapa
suele ser costosa para el proyecto.
• Debido a las criticas que recibió en los 90,
se considera un modelo teórico con poca
aplicación en la industria.
Ciclo de vida en v
• Diseñado por Alan Davis,
contiene las mismas
etapas del cascada puro
solo que añade etapas de
validación y verificación.
• Goza de las mismas
fortalezas y falencias que
el cascada puro.
Ciclo de vida Cascada con
Subproyectos• Se sigue el cascada puro
pero se divide el proyecto
en sub-etapas
independientes que se
pueden elaborar en
paralelo.
• La posibilidad de tener
más personas surge
como fortaleza. Como
desventaja aparece las
dependencias que se
pueden dar entre sub-
etapas.
Ciclo de Vida Iterativo
• Variación del cascada cuyo fin es
minimizar el riesgo entre las necesidades
del usuario y el producto final derivados
de malos entendidos en la etapa de
licitación de requisitos.
• Cada iteración se realiza un cascada cuya
entrega es una versión mejorada del
producto.
• El resultado de la interacción es evaluado
por el cliente y sometido a mejoras hasta
conseguir un producto que satisface las
necesidades.
• Se usa en proyectos en los cuales los
requerimientos no están claros o en los
que el cliente puede poner partes del
software en producción.
Ciclo de Vida por Prototipos
• Basado en prototipos como el ciclo
de vida iterativo.
• Se usa cuando no se conoce el
producto o no se tiene certeza sobre
las necesidades por parte del cliente.
Es común en ideas de innovación o
para usar tecnologías nuevas o poco
probadas.
• Es el modelo preciso cuando se
tiene incertidumbre sobre el producto
o las tecnologías a usar.
• Por su naturaleza se hace difícil la
administración de costos y tiempos.
Ciclo de vida Evolutivo
• Acepta que los requisitos
del usuario pueden
cambiar en el tiempo.
• Afronta la variación de los
requisitos en un esquema
requerimientos-desarrollo-
evaluación.
• Es útil cuando
desconocemos los
requerimientos iniciales o
los tenemos incompletos.
Ciclo de vida Incremental
• Busca construir incrementando las
capacidades del software.
• Se construye el software por
módulos.
• Se aplican modelos cascadas por
modulo del sistema, lo que permite
hacerle entregas al cliente antes de
finalizar el proyecto.
• En caso de equivocación en la
definición se desecha la iteración, sin
afectar etapas posteriores.
• Es útil cuando el usuario necesita
entregas parciales del software.
Ciclo de vida en Espiral
• Diseñado por Boehm en 1988 como evolución
del modelo por prototipos.
• Se basa en ciclos repetitivos que se alimentan
de la experiencia obtenida hasta llegar al
producto final.
• Toma los beneficios del incremental y
prototipos, pero tiene en cuenta los riesgos
asociados a la incertidumbre de los
requerimientos.
• Cada ciclo que se cumple (avance de espiral)
genera prototipos que satisfacen al usuario o
al cliente.
• Como ventajas presenta que convive con
proyectos con alto grado de incertidumbre,
bajo riesgo de retraso por detección de
errores.
• Como desventaja tiene costo en tiempo, costo
para evaluar riesgos y alta dependencia con el
cliente.
Ciclo de vida Orientado a
Objetos
• Data de la década del 90.
• Cada funcionalidad se considera un
objeto, las propiedades del
requerimiento o funcionalidad se
consideran atributos y el
comportamiento de los atributos se
denomina método.
• Los requerimientos son abstractos lo
cual le da flexibilidad.
• Se favorece la reducción de la
complejidad del problema ayudando al
perfeccionamiento del producto.
• El modelo aplica independiente si el
lenguaje que se usará es o no es
orientado a objetos.
Metodologías Ágiles
• Alistar Cockburn resume
la agilidad en: entrega
continua, colaboración,
adaptación y mejora
continua.

Más contenido relacionado

La actualidad más candente

2. El proceso del software
2. El proceso del software2. El proceso del software
2. El proceso del software
Luis Fernandez Vizcarra
 
Modelo en cascada
Modelo en cascadaModelo en cascada
Modelo en cascadahome
 
Metodología Incremental
Metodología IncrementalMetodología Incremental
Metodología Incrementalandreilouis
 
Guia 1 de hilos y procesos posix
Guia 1 de hilos y procesos posixGuia 1 de hilos y procesos posix
Guia 1 de hilos y procesos posix
Mariano Gutierrez
 
Ventajas y desventajas de cmmi
Ventajas y desventajas de cmmiVentajas y desventajas de cmmi
Ventajas y desventajas de cmmiSandrea Rodriguez
 
CMMI v2.0: Más dinámico, ligero y adaptable
CMMI v2.0: Más dinámico, ligero y adaptableCMMI v2.0: Más dinámico, ligero y adaptable
CMMI v2.0: Más dinámico, ligero y adaptable
Software Guru
 
Metodologías, metricas y modelo cocomo para el costo de un proyecto software
Metodologías, metricas y modelo cocomo para el costo de un proyecto softwareMetodologías, metricas y modelo cocomo para el costo de un proyecto software
Metodologías, metricas y modelo cocomo para el costo de un proyecto software
Andres Hoyos Mosquera
 
Control de cambios
Control de cambiosControl de cambios
Control de cambios
Mónica María Espejo Pérez
 
4. Desarrollo ágil de software
4. Desarrollo ágil de software4. Desarrollo ágil de software
4. Desarrollo ágil de software
Coesi Consultoria
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del software
Giovani Ramirez
 
EL MODELO EN CASCADA DE INGENIERIA DE SOFTWARE UEB
EL MODELO EN CASCADA DE INGENIERIA DE SOFTWARE UEBEL MODELO EN CASCADA DE INGENIERIA DE SOFTWARE UEB
EL MODELO EN CASCADA DE INGENIERIA DE SOFTWARE UEB
Joffre Guzman
 
Metodologia Incremental
Metodologia IncrementalMetodologia Incremental
Metodologia Incremental
JOHNNY SURI MAMANI
 
Ingeniería de software modelo incremental
Ingeniería de software  modelo incrementalIngeniería de software  modelo incremental
Ingeniería de software modelo incremental
María Inés Cahuana Lázaro
 
Modelo de desarrollo de software espiral
Modelo de desarrollo de software espiralModelo de desarrollo de software espiral
Modelo de desarrollo de software espiral
Marco Tinajero
 
Modelo espiral de boehm CALIDAD DE SOFTWARE
Modelo espiral de  boehm CALIDAD DE SOFTWAREModelo espiral de  boehm CALIDAD DE SOFTWARE
Modelo espiral de boehm CALIDAD DE SOFTWARE
JhOnss KrIollo
 
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARECUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
Freddy Aguilar
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del softwareJohan Prevot R
 
Procesadores de lenguaje
Procesadores de lenguajeProcesadores de lenguaje
Procesadores de lenguaje
eroque11
 

La actualidad más candente (20)

2. El proceso del software
2. El proceso del software2. El proceso del software
2. El proceso del software
 
Modelo en cascada
Modelo en cascadaModelo en cascada
Modelo en cascada
 
Metodología Incremental
Metodología IncrementalMetodología Incremental
Metodología Incremental
 
Guia 1 de hilos y procesos posix
Guia 1 de hilos y procesos posixGuia 1 de hilos y procesos posix
Guia 1 de hilos y procesos posix
 
Ventajas y desventajas de cmmi
Ventajas y desventajas de cmmiVentajas y desventajas de cmmi
Ventajas y desventajas de cmmi
 
1.4 ensambladores y compiladores
1.4 ensambladores y compiladores1.4 ensambladores y compiladores
1.4 ensambladores y compiladores
 
CMMI v2.0: Más dinámico, ligero y adaptable
CMMI v2.0: Más dinámico, ligero y adaptableCMMI v2.0: Más dinámico, ligero y adaptable
CMMI v2.0: Más dinámico, ligero y adaptable
 
Metodologías, metricas y modelo cocomo para el costo de un proyecto software
Metodologías, metricas y modelo cocomo para el costo de un proyecto softwareMetodologías, metricas y modelo cocomo para el costo de un proyecto software
Metodologías, metricas y modelo cocomo para el costo de un proyecto software
 
Control de cambios
Control de cambiosControl de cambios
Control de cambios
 
4. Desarrollo ágil de software
4. Desarrollo ágil de software4. Desarrollo ágil de software
4. Desarrollo ágil de software
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del software
 
EL MODELO EN CASCADA DE INGENIERIA DE SOFTWARE UEB
EL MODELO EN CASCADA DE INGENIERIA DE SOFTWARE UEBEL MODELO EN CASCADA DE INGENIERIA DE SOFTWARE UEB
EL MODELO EN CASCADA DE INGENIERIA DE SOFTWARE UEB
 
Metodologia Incremental
Metodologia IncrementalMetodologia Incremental
Metodologia Incremental
 
Ingeniería de software modelo incremental
Ingeniería de software  modelo incrementalIngeniería de software  modelo incremental
Ingeniería de software modelo incremental
 
CMMI Y SCAMPI
CMMI Y SCAMPICMMI Y SCAMPI
CMMI Y SCAMPI
 
Modelo de desarrollo de software espiral
Modelo de desarrollo de software espiralModelo de desarrollo de software espiral
Modelo de desarrollo de software espiral
 
Modelo espiral de boehm CALIDAD DE SOFTWARE
Modelo espiral de  boehm CALIDAD DE SOFTWAREModelo espiral de  boehm CALIDAD DE SOFTWARE
Modelo espiral de boehm CALIDAD DE SOFTWARE
 
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARECUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
CUADRO COMPARATIVO DE LOS MODELOS DE CICLO DE VIDA DE SOFTWARE
 
Gestion de la configuracion del software
Gestion de la configuracion del softwareGestion de la configuracion del software
Gestion de la configuracion del software
 
Procesadores de lenguaje
Procesadores de lenguajeProcesadores de lenguaje
Procesadores de lenguaje
 

Similar a Ciclo devida

METODOLOGÍA DE PROYECTOS A TRAVÉS CICLO DE VIDA DE DESARROLLO DE SOFTWARE.pdf
METODOLOGÍA DE PROYECTOS A TRAVÉS CICLO DE VIDA DE DESARROLLO DE SOFTWARE.pdfMETODOLOGÍA DE PROYECTOS A TRAVÉS CICLO DE VIDA DE DESARROLLO DE SOFTWARE.pdf
METODOLOGÍA DE PROYECTOS A TRAVÉS CICLO DE VIDA DE DESARROLLO DE SOFTWARE.pdf
LuisAngelSurichaquiG
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
jorge paez
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
GabrielRosendo2
 
Modelo de desarrollo de software - presentación en powerpoint
Modelo de desarrollo de software - presentación en powerpointModelo de desarrollo de software - presentación en powerpoint
Modelo de desarrollo de software - presentación en powerpoint
ssuser73f459
 
SOTFWARE
SOTFWARESOTFWARE
SOTFWARE
SASUKEFRAN
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
Roxmaury Reyes
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
RoxanaSantander4
 
Metodologias Tradicional.pptx
Metodologias Tradicional.pptxMetodologias Tradicional.pptx
Metodologias Tradicional.pptx
Nicolas Ormeño
 
Métodos de la ingeniería
Métodos de la ingenieríaMétodos de la ingeniería
Métodos de la ingeniería
Sam Stgo
 
Los modelos de desarrollo de software (hendrick rodriguez )
Los modelos de desarrollo de software (hendrick rodriguez )Los modelos de desarrollo de software (hendrick rodriguez )
Los modelos de desarrollo de software (hendrick rodriguez )
Hendrick Rodriguez
 
Rup
RupRup
02 proceso ciclodevida
02 proceso ciclodevida02 proceso ciclodevida
02 proceso ciclodevidaclaudiappaez
 
Modelos para el desarrollo de software V3
Modelos para el desarrollo de software V3Modelos para el desarrollo de software V3
Modelos para el desarrollo de software V3
Marco Guerrero
 
Ciclo de vida en el desarrollo de sistemas
Ciclo de vida en el desarrollo de sistemasCiclo de vida en el desarrollo de sistemas
Ciclo de vida en el desarrollo de sistemasMaría Elena Amancha
 
Metodología de desarrollo de software
Metodología de desarrollo de softwareMetodología de desarrollo de software
Metodología de desarrollo de software
Abner Garcia
 
Modelos de ciclo de vida en el desarrollo de software
Modelos de ciclo de vida en el desarrollo de softwareModelos de ciclo de vida en el desarrollo de software
Modelos de ciclo de vida en el desarrollo de software
Ronald A Cortez B
 

Similar a Ciclo devida (20)

METODOLOGÍA DE PROYECTOS A TRAVÉS CICLO DE VIDA DE DESARROLLO DE SOFTWARE.pdf
METODOLOGÍA DE PROYECTOS A TRAVÉS CICLO DE VIDA DE DESARROLLO DE SOFTWARE.pdfMETODOLOGÍA DE PROYECTOS A TRAVÉS CICLO DE VIDA DE DESARROLLO DE SOFTWARE.pdf
METODOLOGÍA DE PROYECTOS A TRAVÉS CICLO DE VIDA DE DESARROLLO DE SOFTWARE.pdf
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
 
ciclo_de_vida_software
ciclo_de_vida_softwareciclo_de_vida_software
ciclo_de_vida_software
 
Metodología Rup
Metodología RupMetodología Rup
Metodología Rup
 
Modelo de desarrollo de software - presentación en powerpoint
Modelo de desarrollo de software - presentación en powerpointModelo de desarrollo de software - presentación en powerpoint
Modelo de desarrollo de software - presentación en powerpoint
 
SOTFWARE
SOTFWARESOTFWARE
SOTFWARE
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
 
Rup[1]
Rup[1]Rup[1]
Rup[1]
 
Software Development Life Cycle
Software Development Life CycleSoftware Development Life Cycle
Software Development Life Cycle
 
Metodologias Tradicional.pptx
Metodologias Tradicional.pptxMetodologias Tradicional.pptx
Metodologias Tradicional.pptx
 
Métodos de la ingeniería
Métodos de la ingenieríaMétodos de la ingeniería
Métodos de la ingeniería
 
Los modelos de desarrollo de software (hendrick rodriguez )
Los modelos de desarrollo de software (hendrick rodriguez )Los modelos de desarrollo de software (hendrick rodriguez )
Los modelos de desarrollo de software (hendrick rodriguez )
 
Rup
RupRup
Rup
 
02 proceso ciclodevida
02 proceso ciclodevida02 proceso ciclodevida
02 proceso ciclodevida
 
Rup
RupRup
Rup
 
Modelos para el desarrollo de software V3
Modelos para el desarrollo de software V3Modelos para el desarrollo de software V3
Modelos para el desarrollo de software V3
 
Ciclo de vida en el desarrollo de sistemas
Ciclo de vida en el desarrollo de sistemasCiclo de vida en el desarrollo de sistemas
Ciclo de vida en el desarrollo de sistemas
 
Metodología de desarrollo de software
Metodología de desarrollo de softwareMetodología de desarrollo de software
Metodología de desarrollo de software
 
Modelos de ciclo de vida en el desarrollo de software
Modelos de ciclo de vida en el desarrollo de softwareModelos de ciclo de vida en el desarrollo de software
Modelos de ciclo de vida en el desarrollo de software
 

Más de Joan Sebastián Ramírez Pérez

Clean architecture
Clean architectureClean architecture
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Bddtddatdd
BddtddatddBddtddatdd
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
Joan Sebastián Ramírez Pérez
 
Orm
OrmOrm
Servicios web
Servicios webServicios web
La nube. Cloud computting
La nube. Cloud computtingLa nube. Cloud computting
La nube. Cloud computting
Joan Sebastián Ramírez Pérez
 
Microservicios
MicroserviciosMicroservicios
Control de versiones
Control de versionesControl de versiones
Control de versiones
Joan Sebastián Ramírez Pérez
 
Código Limpio
Código LimpioCódigo Limpio
Practicas técnicas
Practicas técnicasPracticas técnicas
Practicas técnicas
Joan Sebastián Ramírez Pérez
 
Roles scrum
Roles scrumRoles scrum
Principios SOLID
Principios SOLIDPrincipios SOLID
Código Limpio
Código LimpioCódigo Limpio
Modelo diseño
Modelo diseñoModelo diseño
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
Joan Sebastián Ramírez Pérez
 
Diagramas comportamiento
Diagramas comportamientoDiagramas comportamiento
Diagramas comportamiento
Joan Sebastián Ramírez Pérez
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
Joan Sebastián Ramírez Pérez
 

Más de Joan Sebastián Ramírez Pérez (20)

Clean architecture
Clean architectureClean architecture
Clean architecture
 
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Practicas tecnicas
 
Bddtddatdd
BddtddatddBddtddatdd
Bddtddatdd
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
 
Orm
OrmOrm
Orm
 
Servicios web
Servicios webServicios web
Servicios web
 
La nube. Cloud computting
La nube. Cloud computtingLa nube. Cloud computting
La nube. Cloud computting
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
 
Código Limpio
Código LimpioCódigo Limpio
Código Limpio
 
Practicas técnicas
Practicas técnicasPracticas técnicas
Practicas técnicas
 
Roles scrum
Roles scrumRoles scrum
Roles scrum
 
Lean startup
Lean startupLean startup
Lean startup
 
Principios SOLID
Principios SOLIDPrincipios SOLID
Principios SOLID
 
Código Limpio
Código LimpioCódigo Limpio
Código Limpio
 
Modelo diseño
Modelo diseñoModelo diseño
Modelo diseño
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
 
Diagramas comportamiento
Diagramas comportamientoDiagramas comportamiento
Diagramas comportamiento
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
 

Último

Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 

Último (6)

Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 

Ciclo devida

  • 1. Ciclo de vida del software joan sebastián ramírez pérez 2016
  • 2. Agenda • ¿Qué es una metodología? • Etapas ciclo de vida del software • Clasificación de las metodologías • Ciclos de vida existentes
  • 3. ¿Qué es una metodología de desarrollo de software? • La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto para llevarlo a cabo con altas posibilidades de éxito. • Sistematizar hace referencia a dividir el proyecto en etapas. La normalización de estas etapas ayuda a la administración y control del proyecto. • Son los procesos a seguir sistemáticamente para idear, implementar y mantener un producto software desde que surge la necesidad del producto hasta que cumplimos el objetivo por el cual fue creado.
  • 5. etapas del ciclo de vida • Expresión de necesidades • Especificaciones • Análisis • Diseño • Implementación • Debugging • Validación • Evolución
  • 6. Expresión de necesidades • Esta etapa tiene como objetivo elaborar un documento en el cual se reflejan los requerimientos y funcionalidades que ofrecerá al usuario el sistema a implementar (qué, y no cómo, se va a implementar).
  • 7. Especificaciones • Se formalizan los requerimientos; el documento obtenido en la etapa anterior se tomará como punto de partida para esta etapa.
  • 8. Análisis • Se identifican los elementos que intervienen en el sistema a desarrollar, su estructura, relaciones, evolución temporal, funcionalidades. • Resultado de lo anterior se tendrá una descripción clara de qué producto vamos a construir, qué funcionalidades aportará y qué comportamiento tendrá.
  • 9. Diseño • Ya se identificó qué hacer, ahora se debe determinar cómo hacerlo (¿cómo debe ser construido el sistema en cuestión? • Se debe definir en detalle: entidades y relaciones de las bases de datos, seleccionamos el lenguaje que vamos a utilizar, el Sistema Gestor de Bases de Datos, etc.).
  • 10. Implementación • Se empiezan a codificar algoritmos y estructuras de datos, definidos en las etapas anteriores, en el correspondiente lenguaje de programación o para un determinado sistema gestor de bases de datos.
  • 11. Debugging • El objetivo de esta etapa es garantizar que nuestro programa no contiene errores de diseño o codificación. • En esta etapa no se busca saber si nuestro programa realiza lo que solicitó el usuario, esa tarea le corresponde a la etapa de implementación. En ésta se desea encontrar la mayor cantidad de errores. • Todos los programas contienen errores: encontrarlos es cuestión de tiempo. Lo ideal es encontrar la mayoría, si no todos, en esta etapa. También se pueden agregar pruebas de rendimiento.
  • 12. Validación • Esta etapa tiene como objetivo la verificación de que el sistema desarrollado cumple con los requerimientos expresados inicialmente por el cliente. • En muchos proyectos las etapas de validación y debugging se realizan en paralelo por la estrecha relación que llevan. Sin embargo, tenemos que evitar la confusión: podemos realizarlas en paralelo, pero no como una única etapa.
  • 13. Evolución • En la mayoría de los proyectos se considera esta etapa como mantenimiento y evolución, y se le asigna, no sólo el agregado de nuevas funcionalidades (evolución); sino la corrección de errores que surgen (mantenimiento). • En la práctica esta denominación no es del todo errónea, ya que es posible que aún, luego de una etapa de debugging y validación exhaustiva, se filtren errores.
  • 15. Metodologías estructuradas • La orientación de estas metodologías se dirige hacia los procesos que intervienen en el sistema a desarrollar, es decir, cada función a realizar por el sistema se descompone en pequeños módulos individuales. • Es más fácil resolver problemas pequeños, y luego unir cada una de las soluciones, que abordar un problema grande.
  • 16. Metodologías orientadas a objetos • Ésta no comprende los procesos como funciones sino que arma módulos basados en componentes, es decir, cada componente es independiente del otro. • Esto nos permite que el código sea reutilizable. Es más fácil de mantener porque los cambios están localizados en cada uno de estos componentes.
  • 18. Ciclos de vida • Ciclo de vida Lineal • Ciclo de vida en V • Ciclo de vida Cascada Puro • Ciclo de vida Cascada con Subproyectos • Ciclo de Vida Iterativo • Ciclo de Vida por Prototipos • Ciclo de vida Evolutivo • Ciclo de vida Incremental • Ciclo de vida en Espiral • Ciclo de vida Orientado a Objetos • Metodologías Ágiles
  • 19. Ciclo de vida Lineal • Se descompone el proyecto en etapas que se ejecutan una tras otra. • Cada etapa es independiente y no hay retroalimentación entre ellas. • Se facilita la gestión y administración. • No apta para proyectos en los cuales se requiere retroalimentación entre sus etapas.
  • 20. Ciclo de vida cascada puro • Creada en 1970 por Winston Royce. • Permite iteraciones y retroalimentación entre sus etapas. • Es rígido, poco flexible y restrictivo. • Apoya a la planificación “simple” y calidad del producto. • Los resultados solo se ven en etapas finales, se requieren todos los requisitos desde el principio y un error en una etapa suele ser costosa para el proyecto. • Debido a las criticas que recibió en los 90, se considera un modelo teórico con poca aplicación en la industria.
  • 21. Ciclo de vida en v • Diseñado por Alan Davis, contiene las mismas etapas del cascada puro solo que añade etapas de validación y verificación. • Goza de las mismas fortalezas y falencias que el cascada puro.
  • 22. Ciclo de vida Cascada con Subproyectos• Se sigue el cascada puro pero se divide el proyecto en sub-etapas independientes que se pueden elaborar en paralelo. • La posibilidad de tener más personas surge como fortaleza. Como desventaja aparece las dependencias que se pueden dar entre sub- etapas.
  • 23. Ciclo de Vida Iterativo • Variación del cascada cuyo fin es minimizar el riesgo entre las necesidades del usuario y el producto final derivados de malos entendidos en la etapa de licitación de requisitos. • Cada iteración se realiza un cascada cuya entrega es una versión mejorada del producto. • El resultado de la interacción es evaluado por el cliente y sometido a mejoras hasta conseguir un producto que satisface las necesidades. • Se usa en proyectos en los cuales los requerimientos no están claros o en los que el cliente puede poner partes del software en producción.
  • 24. Ciclo de Vida por Prototipos • Basado en prototipos como el ciclo de vida iterativo. • Se usa cuando no se conoce el producto o no se tiene certeza sobre las necesidades por parte del cliente. Es común en ideas de innovación o para usar tecnologías nuevas o poco probadas. • Es el modelo preciso cuando se tiene incertidumbre sobre el producto o las tecnologías a usar. • Por su naturaleza se hace difícil la administración de costos y tiempos.
  • 25. Ciclo de vida Evolutivo • Acepta que los requisitos del usuario pueden cambiar en el tiempo. • Afronta la variación de los requisitos en un esquema requerimientos-desarrollo- evaluación. • Es útil cuando desconocemos los requerimientos iniciales o los tenemos incompletos.
  • 26. Ciclo de vida Incremental • Busca construir incrementando las capacidades del software. • Se construye el software por módulos. • Se aplican modelos cascadas por modulo del sistema, lo que permite hacerle entregas al cliente antes de finalizar el proyecto. • En caso de equivocación en la definición se desecha la iteración, sin afectar etapas posteriores. • Es útil cuando el usuario necesita entregas parciales del software.
  • 27. Ciclo de vida en Espiral • Diseñado por Boehm en 1988 como evolución del modelo por prototipos. • Se basa en ciclos repetitivos que se alimentan de la experiencia obtenida hasta llegar al producto final. • Toma los beneficios del incremental y prototipos, pero tiene en cuenta los riesgos asociados a la incertidumbre de los requerimientos. • Cada ciclo que se cumple (avance de espiral) genera prototipos que satisfacen al usuario o al cliente. • Como ventajas presenta que convive con proyectos con alto grado de incertidumbre, bajo riesgo de retraso por detección de errores. • Como desventaja tiene costo en tiempo, costo para evaluar riesgos y alta dependencia con el cliente.
  • 28. Ciclo de vida Orientado a Objetos • Data de la década del 90. • Cada funcionalidad se considera un objeto, las propiedades del requerimiento o funcionalidad se consideran atributos y el comportamiento de los atributos se denomina método. • Los requerimientos son abstractos lo cual le da flexibilidad. • Se favorece la reducción de la complejidad del problema ayudando al perfeccionamiento del producto. • El modelo aplica independiente si el lenguaje que se usará es o no es orientado a objetos.
  • 29. Metodologías Ágiles • Alistar Cockburn resume la agilidad en: entrega continua, colaboración, adaptación y mejora continua.