Modelos de desarrollo de software

Radel Fuentes
Radel FuentesCrew Person en Burger House
Modelos de Desarrollo de
Software
Modelos de Desarrollo de Software
Contenido
• Información general: Modelos de Desarrollo de
Software
- Modelo en cascada
- Modelo de construcción de prototipos
- Modelo incremental
- Modelo en espiral
- Modelos ágiles
• Cuadro Comparativo
• Análisis
Modelos de Desarrollo de Software
¿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
Modelos de Desarrollo de Software
Modelo en Cascada
Este es el más básico de todos los modelos, y sirve como bloque de construcción para los
demás modelos de ciclo de vida. La visión del modelo cascada del desarrollo de software es
muy simple; dice que el desarrollo de software puede ser a través de una secuencia simple de
fases. Cada fase tiene un conjunto de metas bien definidas, y las actividades dentro de una fase
contribuyen a la satisfacción de metas de esa fase o quizás a una sub-secuencia de metas de la
fase. Las flechas muestran el flujo de información entre las fases. La flecha de avance muestra
el flujo normal. Las flechas hacia atrás representan la retroalimentación.
Modelos de Desarrollo de Software
Modelo en Cascada
En esta fase se analizan las
necesidades de los usuarios
finales del software para
determinar qué objetivos debe
cubrir.
Descompone y organiza el sistema en
elementos que puedan elaborarse por
separado, aprovechando las ventajas
del desarrollo en equipo.Es la fase en donde se implementa
el código fuente, haciendo uso de
prototipos así como de pruebas y
ensayos para corregir errores.
Es la fase en donde el usuario final ejecuta
el sistema, para ello el o los
programadores ya realizaron exhaustivas
pruebas para comprobar que el sistema no
falle.
MantenimientoMantenimiento
Una de las etapas más críticas, ya que se destina un
75 % de los recursos, es el mantenimiento del
software ya que al utilizarlo como usuario final puede
ser que no cumpla con todas nuestras expectativas.
Modelos de Desarrollo de Software
Modelo de Construcción de Prototipos
El prototipado de requerimientos es la creación de una implementación parcial de un sistema,
para el propósito explícito de aprender sobre los requerimientos del sistema. Un prototipo es
construido de una manera rápida tal como sea posible. Esto es dado a los usuarios, clientes o
representantes de ellos, posibilitando que ellos experimenten con el prototipo. Estos individuos
luego proveen la retroalimentación sobre lo que a ellos les gustó y no les gustó acerca del
prototipo proporcionado, quienes capturan en la documentación actual de la especificación de
requerimientos la información entregada por los usuarios para el desarrollo del sistema real. El
prototipado puede ser usado como parte de la fase de requerimientos (determinar
requerimientos) o justo antes de la fase de requerimientos (como predecesor de requerimientos).
En otro caso, el prototipado puede servir su papel inmediatamente antes de algún o todo el
desarrollo incremental en modelos incremental o evolutivo.
Modelos de Desarrollo de Software
Modelo de Construcción de Prototipos
El Modelo de prototipos, en Ingeniería de
software, pertenece a los modelos de
desarrollo evolutivo. El prototipo debe ser
construido en poco tiempo, usando los
programas adecuados y no se debe utilizar
muchos recursos.
El diseño rápido se centra en una
representación de aquellos aspectos del
software que serán visibles para el cliente o el
usuario final. Este diseño conduce a la
construcción de un prototipo, el cual es
evaluado por el cliente para una
retroalimentación; gracias a ésta se refinan los
requisitos del software que se desarrollará. La
interacción ocurre cuando el prototipo se ajusta
para satisfacer las necesidades del cliente.
Esto permite que al mismo tiempo el
desarrollador entienda mejor lo que se debe
hacer y el cliente vea resultados a corto plazo.
Etapas
Plan rápido.
Modelado, diseño rápido
Construcción del Prototipo
Desarrollo, entrega y retroalimentación
Comunicación
Entrega del desarrollo final
Modelos de Desarrollo de Software
Modelo Incremental
Los riesgos asociados con el desarrollo de sistemas largos y complejos son enormes. Una forma
de reducir los riesgos es construir sólo una parte del sistema, reservando otros aspectos para
niveles posteriores. El desarrollo incremental es el proceso de construcción siempre
incrementando subconjuntos de requerimientos del sistema. Típicamente, un documento de
requerimientos es escrito al capturar todos los requerimientos para el sistema completo.
Note que el desarrollo incremental es 100% compatible con el modelo cascada. El desarrollo
incremental no demanda una forma específica de observar el desarrollo de algún otro incremento.
Así, el modelo cascada puede ser usado para administrar cada esfuerzo de desarrollo, como se
muestra en la figura.
Modelos de Desarrollo de Software
Modelo Incremental
El modelo de desarrollo incremental provee algunos beneficios significativos para los proyectos:
•Construir un sistema pequeño es siempre menos riesgoso que construir un sistema grande.
•Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los requerimientos planeados
para los niveles subsiguientes son correctos.
•Si un error importante es realizado, sólo la última iteración necesita ser descartada.
•Reduciendo el tiempo de desarrollo de un sistema (en este caso en incremento del sistema) decrecen las
probabilidades que esos requerimientos de usuarios puedan cambiar durante el desarrollo.
•Si un error importante es realizado, el incremento previo puede ser usado.
•Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del
próximo incremento.
Modelos de Desarrollo de Software
Modelo en Espiral
Este es un modelo de proceso de software
evolutivo, el cual enlaza la naturaleza iterativa de
la construcción de prototipos, pero conservado
aquellas propiedades del modelo en cascada.
El modelo en espiral fue desarrollado por
Boehm, quien lo describe así:
El modelo de desarrollo en espiral es un
generador de modelo de proceso guiado por el
riesgo que se emplea para conducir sistemas
intensivos de ingeniería de software concurrente
y a la vez con muchos usuarios.
Modelos de Desarrollo de Software
Modelo en Espiral
Si el resultado no es el adecuado o se necesita implementar mejoras o funcionalidades:
Se planificaran los siguientes pasos y se comienza un nuevo ciclo de la espiral. La espiral tiene
una forma de caracola y se dice que mantiene dos dimensiones, la radial y la angular:
Angular: Indica el avance del proyecto del software dentro de un ciclo.
Radial: Indica el aumento del coste del proyecto, ya que con cada nueva iteración se pasa más
tiempo desarrollando.
En cada vuelta o iteración hay que tener en cuenta:
-Los Objetivos: qué necesidad debe cubrir el
producto.
-Alternativas: las diferentes formas de conseguir los
objetivos de forma exitosa, desde diferentes puntos
de vista como pueden ser:
-Características: experiencia del personal, requisitos
a cumplir, etc.
Formas de gestión del sistema.
Riesgo asumido con cada alternativa.
-Desarrollar y Verificar: Programar y probar el
software.
Tareas
Para cada ciclo habrá cuatro actividades:
-Determinar Objetivos.
-Análisis del riesgo.
-Desarrollar y probar.
-Planificación.
Modelos de Desarrollo de Software
Modelos Ágiles
El desarrollo ágil de software envuelve
un enfoque para la toma de decisiones
en los proyectos de software, que se
refiere a métodos de ingeniería del
software basados en el desarrollo
iterativo e incremental, donde los
requisitos y soluciones evolucionan
con el tiempo según la necesidad del
proyecto. Así el trabajo es realizado
mediante la colaboración de equipos
auto-organizados y multidisciplinarios,
inmersos en un proceso compartido de
toma de decisiones a corto plazo.
Cada iteración del ciclo de vida incluye: planificación, análisis de requisitos, diseño,
codificación, pruebas y documentación. Teniendo gran importancia el concepto de
"Finalizado" (Done), ya que el objetivo de cada iteración no es agregar toda la
funcionalidad para justificar el lanzamiento del producto al mercado, sino incrementar
el valor por medio de "software que funciona" (sin errores).
Modelos de Desarrollo de Software
Características de Modelos Ágiles
1) El desarrollo del plan: Determinar rápidamente el alcance de la siguiente iteración / entrega en base a las prioridades
del negocio (cliente) y los estimados técnicos. Estar dispuestos a cambiar el plan a medida que es necesario.
2) Liberar mucho, en incrementos pequeños: Poner el sistema en producción los más rápido posible (el mínimo
necesario) y desarrollar las siguientes versiones con el ciclo lo mas corto posible.
3)Diseño simple: Mantener el diseño lo más simple posible (KISS: Keep it Simple Stup$%#id), concentrarse en el
presente y no en el futuro (YAGNI: You ain't going to need it)
4) Pruebas unitarias continuas: Sirven para evitar que los programadores se equivoquen, para evitar las “parcelas” de
código y para validar constantemente la aplicación. Los clientes también pueden escribir pruebas para validar / demostrar
ciertas características del sistema.
5) Programación en parejas: Todo el código a ponerse en producción es escrito en parejas. ¿Sabe usted por que?
6) Propiedad colectiva: Nadie es dueño de ninguna clase, de ningún artefacto, de ninguna parte del código.
7) Integración continua: Las características del sistema se desarrollan y se integran a diario. Luego se corren las pruebas
y se verifica que la aplicación corra correctamente.
8) 40 horas a la semana: Nadie. ¡NADIE! Trabaja horas extra. ¿Sabe usted porque?
9) El cliente involucrado en el ambiente de desarrollo: El cliente (o un representante) es un miembro más del equipo de
desarrollo.
10)Estándares de codificación: Se definen estándares adecuados de codificación y se respetan. Sobre todo aquellos que
enfatizan la “auto-documentación” y adecuada documentación del código.
Modelos de Desarrollo de Software
Cuadro
Comparativo Modelo en Cascada Modelo Incremental Modelo en Espiral
Ventajas
Permite a los administradores,
avanzar en el desarrollo, aunque
en una escala muy bruta.
El modelo proporciona todas las
ventajas del modelo en cascada
realimentado, reduciendo sus
desventajas sólo al ámbito de cada
incremento.
Al ser un modelo de Ciclo de
Vida orientado al riesgo se
dice que uno de los aspectos
fundamentales de su éxito
radica en que el equipo que lo
aplique sea capaz de detectar
y catalogar correctamente
dicho riesgo.
Desventajas
Los cambios introducidos durante el
desarrollo pueden confundir al
equipo profesional en las etapas
tempranas del proyecto. Si los
cambios se producen en etapa
madura (codificación o prueba)
pueden ser catastróficos para un
proyecto grande.
El modelo Incremental no es
recomendable para casos de
sistemas de tiempo real, de alto nivel
de seguridad, de procesamiento
distribuido, y/o de alto índice de
riesgos.
Requiere mucha experiencia y
habilidad para la evaluación
de los riesgos, lo cual es
requisito para el éxito del
proyecto. Es difícil convencer
a los grandes clientes que se
podrá controlar este enfoque
evolutivo.
Crítica
Este es un modelo en el cual se
debe usar cuando todos los
requerimientos han sido
establecidos claramente de
entrada.
En este modelo se debe especificar
con precisión todo lo que el sistema
va a hacer antes de desarrollarlo. Lo
cual lo hace manejable y disminuiría
los costos.
Este modelo es útil para
grandes proyectos pero no ha
sido utilizado tanto como el
lineal secuencial o el de
prototipos.
Características
Planear un proyecto antes de
embarcarse en él. Definir el
comportamiento externo
deseado del sistema antes de
diseñar su arquitectura interna.
Documentar los resultados de
cada actividad. Diseñar un
sistema antes de codificarlo.
Testear un sistema después de
construirlo.
Construir un sistema pequeño es
siempre menos riesgoso. Al ir
desarrollando parte de las
funcionalidades, es más fácil
determinar si los requerimientos para
los niveles subsiguientes son
correctos. Si un error importante es
realizado, sólo la última iteración
necesita ser descartada.
Un enfoque cíclico para el
crecimiento incremental del
grado de definición e
implementación de un
sistema, mientras que
disminuye su grado de riesgo.
Un conjunto de puntos de
fijación para asegurar el
compromiso del usuario con
soluciones.
Modelos de Desarrollo de Software
Análisis
Para el desarrollo de software utilizaría preferiblemente el
Modelo de Construcción de Prototipos, ya que con este
modelo podremos saber de manera mas precisa el producto
que necesita el cliente y al obtener la retroalimentación dada
por este, se mejorara el software de tal manera que el cliente
quede totalmente satisfecho con el producto final.
De igual manera también trabajaría con el Modelo
Incremental, por la posibilidad de crear software mas
complejos y por el hecho de trabajar en sub-categorías que
mejoraran el funcionamiento de las mismas.
Radel Fuentes
C.I.: 20503510
1 de 15

Recomendados

Modelo incrementalModelo incremental
Modelo incrementalRoxny Moreno
2.7K vistas21 diapositivas
RupRup
Rupjarmendipg
989 vistas13 diapositivas
Modelo incrementalModelo incremental
Modelo incrementalAvelino Felipe Policarpio
63.3K vistas14 diapositivas
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
23.8K vistas12 diapositivas

Más contenido relacionado

La actualidad más candente

MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
1.4K vistas12 diapositivas
modelo vista controladormodelo vista controlador
modelo vista controladorcom2merwil
3.3K vistas11 diapositivas
Metodologia incrementalMetodologia incremental
Metodologia incrementalAnel Sosa
5K vistas7 diapositivas

La actualidad más candente(20)

Ingeniería de software  modelo incrementalIngeniería de software  modelo incremental
Ingeniería de software modelo incremental
María Inés Cahuana Lázaro28.5K vistas
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
Micky Jerzy1.4K vistas
 modelos del proceso del software  modelos del proceso del software
modelos del proceso del software
Brihany Rossell60.6K vistas
modelo vista controladormodelo vista controlador
modelo vista controlador
com2merwil3.3K vistas
Metodologia incrementalMetodologia incremental
Metodologia incremental
Anel Sosa5K vistas
Metricas Ingenieria De SoftwareMetricas Ingenieria De Software
Metricas Ingenieria De Software
Ricardo68.5K vistas
Metodologia rupMetodologia rup
Metodologia rup
bernardolimachi43.8K vistas
Metodologia rupMetodologia rup
Metodologia rup
mireya20222.6K vistas
Metodologia de desarrollo de softwareMetodologia de desarrollo de software
Metodologia de desarrollo de software
Victor Varela18.4K vistas
Metodologia IncrementalMetodologia Incremental
Metodologia Incremental
Johnny Felix Suri Mamani7.2K vistas
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
Wilfredo Mogollón4K vistas
Ensayo Cliente ServidorEnsayo Cliente Servidor
Ensayo Cliente Servidor
Jonathan Llerena Stifler5.3K vistas
Modelo de prototiposModelo de prototipos
Modelo de prototipos
juriberuiz7.7K vistas
Metodología RupMetodología Rup
Metodología Rup
Claudio Lopez Antypas1.7K vistas
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistema
Universidad Tecnológica185.9K vistas
13.diseño de web apps13.diseño de web apps
13.diseño de web apps
Ramiro Estigarribia Canese4.7K vistas

Destacado(20)

Modelos para el desarrollo de software V3Modelos para el desarrollo de software V3
Modelos para el desarrollo de software V3
Marco Guerrero1.9K vistas
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
Monica Rodriguez2.2K vistas
Proyecto Innovate mc donaldProyecto Innovate mc donald
Proyecto Innovate mc donald
María Inés Cahuana Lázaro290 vistas
Proceso de desarrollo del softwareProceso de desarrollo del software
Proceso de desarrollo del software
oscar uriarte266 vistas
diapositivasdiapositivas
diapositivas
Sergio Gary Morga Liuca1.5K vistas
Sesion5 requerimientos de softwareSesion5 requerimientos de software
Sesion5 requerimientos de software
Oscar López4K vistas
Modelos para hacer proyectosModelos para hacer proyectos
Modelos para hacer proyectos
Solangela Mira18.1K vistas
PLAN DE DESARROLLO PROFESIONALPLAN DE DESARROLLO PROFESIONAL
PLAN DE DESARROLLO PROFESIONAL
Lima - Perú6.1K vistas
Tendencias actuales del desarrollo de softwareTendencias actuales del desarrollo de software
Tendencias actuales del desarrollo de software
Coordinador Ordoñez3.4K vistas
Conclusiones de Unidad 1 - Sistemas Operativos.Conclusiones de Unidad 1 - Sistemas Operativos.
Conclusiones de Unidad 1 - Sistemas Operativos.
Martin Pacheco Chávez13.7K vistas
Sesión 3: Modelos prescriptivos de procesoSesión 3: Modelos prescriptivos de proceso
Sesión 3: Modelos prescriptivos de proceso
Coesi Consultoria26K vistas
4. Desarrollo ágil de software4. Desarrollo ágil de software
4. Desarrollo ágil de software
Coesi Consultoria20.7K vistas
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
Yaskelly Yedra6.9K vistas
Metodologias agilesMetodologias agiles
Metodologias agiles
Sergio Olivares32.9K vistas
SeñalesSeñales
Señales
Jarvey Gonzalez27.1K vistas
Plan de desarrollo softwarePlan de desarrollo software
Plan de desarrollo software
Jose Torres Gonzales15.5K vistas
Modelos de software ventajas y desventajasModelos de software ventajas y desventajas
Modelos de software ventajas y desventajas
Edith Carreño29.1K vistas
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
kellypt187.9K vistas
curriculo nacional actualizado 2017 curriculo nacional actualizado 2017
curriculo nacional actualizado 2017
Lima - Perú6.1K vistas

Similar a Modelos de desarrollo de software

Modelos del softwareModelos del software
Modelos del softwareangelicasolishernnde
99 vistas11 diapositivas
Modelos de Ing de softModelos de Ing de soft
Modelos de Ing de softJazmin Cr
1.7K vistas25 diapositivas
Act18Act18
Act18karinaaura
166 vistas2 diapositivas

Similar a Modelos de desarrollo de software(20)

Modelos del softwareModelos del software
Modelos del software
angelicasolishernnde99 vistas
Jhostin vasquez   modelos de softwareJhostin vasquez   modelos de software
Jhostin vasquez modelos de software
jhostinvasquez16 vistas
Modelos de proceso del softwareModelos de proceso del software
Modelos de proceso del software
Diego Llusco776 vistas
Modelos de Ing de softModelos de Ing de soft
Modelos de Ing de soft
Jazmin Cr1.7K vistas
Act18Act18
Act18
karinaaura166 vistas
Modelos de Desarrollo del SoftwareModelos de Desarrollo del Software
Modelos de Desarrollo del Software
GianlucaCastellano184 vistas
Trabajo de sistemas de softwareTrabajo de sistemas de software
Trabajo de sistemas de software
JhonJairoPerez441 vistas
ModelosModelos
Modelos
Jose Lema690 vistas
Investigación de modelos Investigación de modelos
Investigación de modelos
bren1995296 vistas
(Inmer)La Ingenieria de Software(Inmer)La Ingenieria de Software
(Inmer)La Ingenieria de Software
Inmer Alexai Flores Rodriguez2.3K vistas
MODELO DE DESARRROLLO DE SOFTWAREMODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWARE
Jesus Yepez119 vistas
ciclo_de_vida_softwareciclo_de_vida_software
ciclo_de_vida_software
ArielAlexanderRavest53 vistas
pruevaprueva
prueva
1081913395196 vistas
SDLC.pptxSDLC.pptx
SDLC.pptx
Andrés Campos64 vistas
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
Alejandro Silva132 vistas

Último(20)

Decálogo WLT 2023.pdfDecálogo WLT 2023.pdf
Decálogo WLT 2023.pdf
Dones en Xarxa51 vistas
Tecnología e informática .pdfTecnología e informática .pdf
Tecnología e informática .pdf
AnaSofaRosmaya8 vistas
HENRY GRANDEZ.pdfHENRY GRANDEZ.pdf
HENRY GRANDEZ.pdf
RubenVidurrizagaII5 vistas
REPORTE 3T 2023 - IRAPUATO.pdfREPORTE 3T 2023 - IRAPUATO.pdf
REPORTE 3T 2023 - IRAPUATO.pdf
IrapuatoCmovamos82 vistas
Matematica unidad 1Matematica unidad 1
Matematica unidad 1
Genesis Graterol6 vistas
Excel avanzado .pdfExcel avanzado .pdf
Excel avanzado .pdf
Camila7234328 vistas
Manual Slideshare.pdfManual Slideshare.pdf
Manual Slideshare.pdf
AlejandroRodrguezRui46 vistas
Trabajo anggi villalobos Trabajo anggi villalobos
Trabajo anggi villalobos
AnggiVillalobod5 vistas
RECOMMENDACIONES 2023.pptxRECOMMENDACIONES 2023.pptx
RECOMMENDACIONES 2023.pptx
mujerxd8705 vistas
Informe (1).pdfInforme (1).pdf
Informe (1).pdf
saraialvarez206 vistas
Tecnología e informática .pdfTecnología e informática .pdf
Tecnología e informática .pdf
AnaSofaRosmaya9 vistas
Manual Slideshare.pdfManual Slideshare.pdf
Manual Slideshare.pdf
martinezmartinjuanlu7 vistas
Trabajo-1.docxTrabajo-1.docx
Trabajo-1.docx
AnaSofaRosmaya9 vistas

Modelos de desarrollo de software

  • 1. Modelos de Desarrollo de Software
  • 2. Modelos de Desarrollo de Software Contenido • Información general: Modelos de Desarrollo de Software - Modelo en cascada - Modelo de construcción de prototipos - Modelo incremental - Modelo en espiral - Modelos ágiles • Cuadro Comparativo • Análisis
  • 3. Modelos de Desarrollo de Software ¿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
  • 4. Modelos de Desarrollo de Software Modelo en Cascada Este es el más básico de todos los modelos, y sirve como bloque de construcción para los demás modelos de ciclo de vida. La visión del modelo cascada del desarrollo de software es muy simple; dice que el desarrollo de software puede ser a través de una secuencia simple de fases. Cada fase tiene un conjunto de metas bien definidas, y las actividades dentro de una fase contribuyen a la satisfacción de metas de esa fase o quizás a una sub-secuencia de metas de la fase. Las flechas muestran el flujo de información entre las fases. La flecha de avance muestra el flujo normal. Las flechas hacia atrás representan la retroalimentación.
  • 5. Modelos de Desarrollo de Software Modelo en Cascada En esta fase se analizan las necesidades de los usuarios finales del software para determinar qué objetivos debe cubrir. Descompone y organiza el sistema en elementos que puedan elaborarse por separado, aprovechando las ventajas del desarrollo en equipo.Es la fase en donde se implementa el código fuente, haciendo uso de prototipos así como de pruebas y ensayos para corregir errores. Es la fase en donde el usuario final ejecuta el sistema, para ello el o los programadores ya realizaron exhaustivas pruebas para comprobar que el sistema no falle. MantenimientoMantenimiento Una de las etapas más críticas, ya que se destina un 75 % de los recursos, es el mantenimiento del software ya que al utilizarlo como usuario final puede ser que no cumpla con todas nuestras expectativas.
  • 6. Modelos de Desarrollo de Software Modelo de Construcción de Prototipos El prototipado de requerimientos es la creación de una implementación parcial de un sistema, para el propósito explícito de aprender sobre los requerimientos del sistema. Un prototipo es construido de una manera rápida tal como sea posible. Esto es dado a los usuarios, clientes o representantes de ellos, posibilitando que ellos experimenten con el prototipo. Estos individuos luego proveen la retroalimentación sobre lo que a ellos les gustó y no les gustó acerca del prototipo proporcionado, quienes capturan en la documentación actual de la especificación de requerimientos la información entregada por los usuarios para el desarrollo del sistema real. El prototipado puede ser usado como parte de la fase de requerimientos (determinar requerimientos) o justo antes de la fase de requerimientos (como predecesor de requerimientos). En otro caso, el prototipado puede servir su papel inmediatamente antes de algún o todo el desarrollo incremental en modelos incremental o evolutivo.
  • 7. Modelos de Desarrollo de Software Modelo de Construcción de Prototipos El Modelo de prototipos, en Ingeniería de software, pertenece a los modelos de desarrollo evolutivo. El prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar muchos recursos. El diseño rápido se centra en una representación de aquellos aspectos del software que serán visibles para el cliente o el usuario final. Este diseño conduce a la construcción de un prototipo, el cual es evaluado por el cliente para una retroalimentación; gracias a ésta se refinan los requisitos del software que se desarrollará. La interacción ocurre cuando el prototipo se ajusta para satisfacer las necesidades del cliente. Esto permite que al mismo tiempo el desarrollador entienda mejor lo que se debe hacer y el cliente vea resultados a corto plazo. Etapas Plan rápido. Modelado, diseño rápido Construcción del Prototipo Desarrollo, entrega y retroalimentación Comunicación Entrega del desarrollo final
  • 8. Modelos de Desarrollo de Software Modelo Incremental Los riesgos asociados con el desarrollo de sistemas largos y complejos son enormes. Una forma de reducir los riesgos es construir sólo una parte del sistema, reservando otros aspectos para niveles posteriores. El desarrollo incremental es el proceso de construcción siempre incrementando subconjuntos de requerimientos del sistema. Típicamente, un documento de requerimientos es escrito al capturar todos los requerimientos para el sistema completo. Note que el desarrollo incremental es 100% compatible con el modelo cascada. El desarrollo incremental no demanda una forma específica de observar el desarrollo de algún otro incremento. Así, el modelo cascada puede ser usado para administrar cada esfuerzo de desarrollo, como se muestra en la figura.
  • 9. Modelos de Desarrollo de Software Modelo Incremental El modelo de desarrollo incremental provee algunos beneficios significativos para los proyectos: •Construir un sistema pequeño es siempre menos riesgoso que construir un sistema grande. •Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los requerimientos planeados para los niveles subsiguientes son correctos. •Si un error importante es realizado, sólo la última iteración necesita ser descartada. •Reduciendo el tiempo de desarrollo de un sistema (en este caso en incremento del sistema) decrecen las probabilidades que esos requerimientos de usuarios puedan cambiar durante el desarrollo. •Si un error importante es realizado, el incremento previo puede ser usado. •Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del próximo incremento.
  • 10. Modelos de Desarrollo de Software Modelo en Espiral Este es un modelo de proceso de software evolutivo, el cual enlaza la naturaleza iterativa de la construcción de prototipos, pero conservado aquellas propiedades del modelo en cascada. El modelo en espiral fue desarrollado por Boehm, quien lo describe así: El modelo de desarrollo en espiral es un generador de modelo de proceso guiado por el riesgo que se emplea para conducir sistemas intensivos de ingeniería de software concurrente y a la vez con muchos usuarios.
  • 11. Modelos de Desarrollo de Software Modelo en Espiral Si el resultado no es el adecuado o se necesita implementar mejoras o funcionalidades: Se planificaran los siguientes pasos y se comienza un nuevo ciclo de la espiral. La espiral tiene una forma de caracola y se dice que mantiene dos dimensiones, la radial y la angular: Angular: Indica el avance del proyecto del software dentro de un ciclo. Radial: Indica el aumento del coste del proyecto, ya que con cada nueva iteración se pasa más tiempo desarrollando. En cada vuelta o iteración hay que tener en cuenta: -Los Objetivos: qué necesidad debe cubrir el producto. -Alternativas: las diferentes formas de conseguir los objetivos de forma exitosa, desde diferentes puntos de vista como pueden ser: -Características: experiencia del personal, requisitos a cumplir, etc. Formas de gestión del sistema. Riesgo asumido con cada alternativa. -Desarrollar y Verificar: Programar y probar el software. Tareas Para cada ciclo habrá cuatro actividades: -Determinar Objetivos. -Análisis del riesgo. -Desarrollar y probar. -Planificación.
  • 12. Modelos de Desarrollo de Software Modelos Ágiles El desarrollo ágil de software envuelve un enfoque para la toma de decisiones en los proyectos de software, que se refiere a métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan con el tiempo según la necesidad del proyecto. Así el trabajo es realizado mediante la colaboración de equipos auto-organizados y multidisciplinarios, inmersos en un proceso compartido de toma de decisiones a corto plazo. Cada iteración del ciclo de vida incluye: planificación, análisis de requisitos, diseño, codificación, pruebas y documentación. Teniendo gran importancia el concepto de "Finalizado" (Done), ya que el objetivo de cada iteración no es agregar toda la funcionalidad para justificar el lanzamiento del producto al mercado, sino incrementar el valor por medio de "software que funciona" (sin errores).
  • 13. Modelos de Desarrollo de Software Características de Modelos Ágiles 1) El desarrollo del plan: Determinar rápidamente el alcance de la siguiente iteración / entrega en base a las prioridades del negocio (cliente) y los estimados técnicos. Estar dispuestos a cambiar el plan a medida que es necesario. 2) Liberar mucho, en incrementos pequeños: Poner el sistema en producción los más rápido posible (el mínimo necesario) y desarrollar las siguientes versiones con el ciclo lo mas corto posible. 3)Diseño simple: Mantener el diseño lo más simple posible (KISS: Keep it Simple Stup$%#id), concentrarse en el presente y no en el futuro (YAGNI: You ain't going to need it) 4) Pruebas unitarias continuas: Sirven para evitar que los programadores se equivoquen, para evitar las “parcelas” de código y para validar constantemente la aplicación. Los clientes también pueden escribir pruebas para validar / demostrar ciertas características del sistema. 5) Programación en parejas: Todo el código a ponerse en producción es escrito en parejas. ¿Sabe usted por que? 6) Propiedad colectiva: Nadie es dueño de ninguna clase, de ningún artefacto, de ninguna parte del código. 7) Integración continua: Las características del sistema se desarrollan y se integran a diario. Luego se corren las pruebas y se verifica que la aplicación corra correctamente. 8) 40 horas a la semana: Nadie. ¡NADIE! Trabaja horas extra. ¿Sabe usted porque? 9) El cliente involucrado en el ambiente de desarrollo: El cliente (o un representante) es un miembro más del equipo de desarrollo. 10)Estándares de codificación: Se definen estándares adecuados de codificación y se respetan. Sobre todo aquellos que enfatizan la “auto-documentación” y adecuada documentación del código.
  • 14. Modelos de Desarrollo de Software Cuadro Comparativo Modelo en Cascada Modelo Incremental Modelo en Espiral Ventajas Permite a los administradores, avanzar en el desarrollo, aunque en una escala muy bruta. El modelo proporciona todas las ventajas del modelo en cascada realimentado, reduciendo sus desventajas sólo al ámbito de cada incremento. Al ser un modelo de Ciclo de Vida orientado al riesgo se dice que uno de los aspectos fundamentales de su éxito radica en que el equipo que lo aplique sea capaz de detectar y catalogar correctamente dicho riesgo. Desventajas Los cambios introducidos durante el desarrollo pueden confundir al equipo profesional en las etapas tempranas del proyecto. Si los cambios se producen en etapa madura (codificación o prueba) pueden ser catastróficos para un proyecto grande. El modelo Incremental no es recomendable para casos de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido, y/o de alto índice de riesgos. Requiere mucha experiencia y habilidad para la evaluación de los riesgos, lo cual es requisito para el éxito del proyecto. Es difícil convencer a los grandes clientes que se podrá controlar este enfoque evolutivo. Crítica Este es un modelo en el cual se debe usar cuando todos los requerimientos han sido establecidos claramente de entrada. En este modelo se debe especificar con precisión todo lo que el sistema va a hacer antes de desarrollarlo. Lo cual lo hace manejable y disminuiría los costos. Este modelo es útil para grandes proyectos pero no ha sido utilizado tanto como el lineal secuencial o el de prototipos. Características Planear un proyecto antes de embarcarse en él. Definir el comportamiento externo deseado del sistema antes de diseñar su arquitectura interna. Documentar los resultados de cada actividad. Diseñar un sistema antes de codificarlo. Testear un sistema después de construirlo. Construir un sistema pequeño es siempre menos riesgoso. Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los requerimientos para los niveles subsiguientes son correctos. Si un error importante es realizado, sólo la última iteración necesita ser descartada. Un enfoque cíclico para el crecimiento incremental del grado de definición e implementación de un sistema, mientras que disminuye su grado de riesgo. Un conjunto de puntos de fijación para asegurar el compromiso del usuario con soluciones.
  • 15. Modelos de Desarrollo de Software Análisis Para el desarrollo de software utilizaría preferiblemente el Modelo de Construcción de Prototipos, ya que con este modelo podremos saber de manera mas precisa el producto que necesita el cliente y al obtener la retroalimentación dada por este, se mejorara el software de tal manera que el cliente quede totalmente satisfecho con el producto final. De igual manera también trabajaría con el Modelo Incremental, por la posibilidad de crear software mas complejos y por el hecho de trabajar en sub-categorías que mejoraran el funcionamiento de las mismas. Radel Fuentes C.I.: 20503510

Notas del editor

  1. Los alumnos se deben familiarizar con los siguientes principios básicos de Visio antes de realizar el curso: cómo acercar y alejar, agregar formas a la página, mover formas arrastrando el mouse y conectar formas. [Notas para el instructor: Para obtener más detalles sobre la personalización de esta plantilla, vea la última diapositiva. Además, puede buscar texto adicional sobre las lecciones en el panel de notas de algunas diapositivas. Dado que esta presentación contiene animaciones en Macromedia Flash, al guardar la plantilla puede que aparezca un mensaje de advertencia relativo a la información personal. A menos que agregue información a las propiedades del propio archivo Flash, esta advertencia no se aplica a esta presentación. Haga clic en Aceptar en el mensaje.]
  2. Entre los ejemplos de tipos de diagramas, se incluyen los diagramas de flujo, los organigramas, los mapas de carreteras, los calendarios de proyecto y los diseños de oficinas.
  3. Ejemplos de formas con detalles Las formas pueden representar las calles y los edificios de un mapa. Pueden representar simbólicamente el equipo informático de un diagrama de red. Incluso hay formas de mobiliario para planos de plantas de oficina. ¿Parece exagerado? Pues hay muchísimas más.
  4. La imagen muestra algunos ejemplos de formas 1D. Ejemplo de conexión de dos formas: en un diagrama de procesos de negocio, puede conectar dos departamentos con una línea o una flecha.
  5. Lo siguiente: formas 2D.
  6. Las formas que se muestran en esta imagen son todas ellas formas 2D. Muchas formas 2D también tienen un controlador de rotación verde.
  7. Para muchas personas, “1D” describe una forma con una dimensión y “2D”, una forma con dos dimensiones. Estas son definiciones familiares de 1D y 2D. Sin embargo, como puede ver en estos ejemplos, las definiciones de Visio dependen del comportamiento de las formas, no de su aspecto.
  8. Sugerencia: los controladores no son el único indicio de que una forma tenga un comportamiento interactivo especial. Pueden encontrarse algunos comportamientos especiales haciendo clic con el botón secundario en ella.