SlideShare una empresa de Scribd logo
1 de 13
UNIVERSIDAD REGIONAL
AUTÓNOMA DE LOS ANDES




 TRABAJO DE INGENIERIA DE SOFTWARE


 INTEGRNTES: Ipiales Fernanda
              Oña Vanessa
DESARROLLO RAPIDO DE
                        SOFTWARE



Los procesos de desarrollo rápido de software están diseñados para producir software
útil de forma rápida. Generalmente, son procesos iterativos en los que se entrelazan la
especificación, el diseño, el desarrollo y las pruebas. El software no se desarrolla y
utiliza en su totalidad, sino en una serie de incrementos, donde en cada incremento se
incluyen nuevas funcionalidades al sistema.
VENTAJAS DE ADOPTAR UN ENFOQUE
     INCREMENTAL

1.- Entrega acelerada de los servicios de! cliente. En los incrementos iníciales del sistema
se pueden entregar las funcionalidades de alta prioridad para que los clientes puedan
aprovechar el sistema desde el principio de su desarrollo. Los clientes pueden ver
sus requerimientos en la práctica y especificar cambios a incorporar en entregas posteriores
del sistema.
2. Compromiso del cliente con el sistema. Los usuarios del sistema tienen que estar
implicados
en el proceso de desarrollo incremental debido a que tienen que proporcionar
retroalImentación sobre los incrementos entregados al equipo de desarrollo. Su
participación no sólo significa que es más probable que el sistema cumpla sus requerimientos,
sino que también los usuarios finales del sistema tienen que hacer un compromiso
con él y conseguir que éste llegue a funcionar.
MÉTODOS ÁGILES

En los años 80 y principios de los 90, existía una opinión general de que la mejor
forma de
obtener un mejor software era a través de una planificación cuidadosa del proyecto,
una garantía
de calidad formalizada, la utilización de métodos de análisis y diseño soportados por
herramientas CASE, y procesos de desarrollo de software controlados y rigurosos.
Esta opinión
provenía, fundamentalmente, de la comunidad de ingenieros de software implicada en
el desarrollo de grandes sistemas software de larga vida que normalmente se
componían de un gran número de programas individuales.
PROGRAMACIÓN EXTREMA




La Programación Extrema (XP) es posiblemente el método ágil más conocido y ampliamente
utilizado. El nombre fue acuñado por Beck (Beck, 2000) debido a que el enfoque fue desarrollado
utilizando buenas prácticas reconocidas, como el desarrollo iterativo, y con la participación
del cliente en niveles «extremos».
PRINCIPIOS DE LOS MÉTODOS ÁGILES:
1. El desarrollo incremental se lleva a cabo través de entregas del sistema pequeñas y
frecuentes
y por medio de un enfoque para la descripción de requerimientos basado en
las historias de cliente o escenarios que pueden ser la base para el proceso de planificación.
2. La participación del cliente se lleva a cabo a través del compromiso a tiempo completo
del cliente en el equipo de desarrollo. Los representantes de los clientes participan en
el desarrollo y son los responsables de definir las pruebas de aceptación del sistema.
3. El interés en las personas, en vez de en los procesos, se lleva a cabo a través de la
programación
en parejas, la propiedad colectiva del código del sistema, y un proceso de
desarrollo sostenible que no implique excesivas jornadas de trabajo.
4. El cambio se lleva a cabo a través de las entregas regulares del sistema, un desarrollo
previamente probado y la integración continua.
5. El mantenimiento de la simplicidad se lleva a cabo a través de la refactorización constante
para mejorar la calidad del código y la utilización de diseños sencillos que no prevén
cambios futuros en el sistema.
PRUEBAS EN XP


Para evitar algunos de los problemas de las pruebas y de la validación del sistema,
XP pone
más énfasis en el proceso de pruebas que otros métodos ágiles. Las pruebas del
sistema son
fundamentales en XP, en la que se ha desarrollado un enfoque que reduce la
probabilidad de
producir nuevos incrementos del sistema que introduzcan errores en el software
existente.
Las características clave de las pruebas en XP son:
1. Desarrollo previamente probado.
2. Desarrollo de pruebas incremental a partir de los escenarios.
3. Participación del usuario en el desarrollo de las pruebas y en la validación,
4. El uso de bancos de pruebas automatizados.
Programación en parejas




  Otra práctica innovadora que se ha introducido es que los programadores trabajan en parejas
  para desarrollar el software. De hecho, se sientan juntos en la misma estación de trabajo para
desarrollar el software. El desarrollo no siempre implica la misma pareja de personas trabajando
     juntas. Más bien, la idea es que las parejas se creen de forma dinámica para que todos
los miembros del equipo puedan trabajar con los otros miembros en una pareja de programación
                                 durante el proceso de desarrollo.
VENTAJAS DE LA PROGRAMACION EN PAREJAS
1. Apoya la idea de la propiedad y responsabilidad comunes del sistema. Esto refleja la
idea de Weinberg de la programación sin ego (Weinberg, 1971), en la que el equipo
como un todo es dueño del software y las personas individuales no tienen la culpa de
los problemas con el código. En cambio, el equipo tiene una responsabilidad colectiva
para resolver estos problemas.


2. Actúa como un proceso de revisión informal ya que cada línea de código es vista por
al menos dos personas. Las inspecciones y revisiones del código (tratadas en el Capítulo
22) consiguen descubrir un alto porcentaje de errores del software. Sin embargo,
requiere mucho tiempo organizarías y, por lo general, generan retrasos en el proceso
de desarrollo. A pesar de que la programación en parejas es un proceso menos formal
que probablemente no encuentre tantos errores, es un proceso de inspección mucho
más económico que las inspecciones formales de programas.
3. Ayuda en la refactorización, la cual es un proceso de mejora del software. Un
principio
de la XP es que se debe refactorizar constantemente el software. Es decir, se
deben
escribir nuevamente partes del código para mejorar su claridad y estructura. El
problema para implementar esto en un entorno de desarrollo normal es que es un
esfuerzo
que se gasta para obtener un beneficio a largo plazo, y se puede juzgar a una
persona que practique la refactorización como menos eficiente que otra que
simplemente
realice el desarrollo del código.
DESARROLLO RÁPIDO DE APLICACIONES


Las técnicas de desarrollo rápido de aplicaciones (RAD) evolucionaron de los llamados lenguajes
de cuarta generación en los años 80 y se utilizan para desarrollar aplicaciones con un uso
intensivo de datos. Por consiguiente, normalmente están organizadas como un conjunto de
herramientas que permiten crear datos, buscarlos, visualizarlos y presentarlos en informes
Las herramientas que se incluyen en un entorno R AD son:
1. Un lenguaje de programación de bases de dalos, que contiene conocimiento de la
estructura
de la base de datos y que incluye las operaciones básicas de manipulación de
bases de datos. El lenguaje estándar de programación de base de datos es SQL (Groff
et ai, 2002). Los comandos SQL se pueden introducir directamente o generar de forma
automática a partir de formularios rellenados por los usuarios finales.
2. Un generador de interfaces, que se utiliza para crear formularios de introducción y visual
i zación de datos.
3. Enlaces a aplicaciones de oficina, como una hoja de cálculo para el análisis y
manipulación
de información numérica o un procesador de textos para la creación de plantillas
de informes.
4. Un generador de informes, que se utiliza para definir y crear informes a partir de la
información de la base de datos.
PROTOTIPADO DEL SOFTWARE

Un prototipo es una versión inicial de un sistema software que se utiliza para demostrar
conceptos, probar opciones de diseño y, en general, informarse más del problema y sus posibles
soluciones. El desarrollo rápido e iterativo del prototipo es esencial, de modo que los costes
sean controlados y los stakeholders del sistema puedan experimentar con el prototipo en
las primeras etapas del proceso del software.
Un prototipo del software se puede utilizar de varias maneras en un proceso de desarrollo
de software:
1. En el proceso de ingeniería de requerimientos, un prototipo puede ayudar en la obtención
y validación de los requerimientos del sistema.
2. En el proceso de diseño del sistema, se puede utilizar un prototipo para explorar soluciones
software particulares y para apoyar al diseño de las interfaces de usuario.
3. En el proceso de pruebas, se puede utilizar un prototipo para ejecutar pruebas backto-
back con el sistema que se entregarán al cliente.
BENEFICIOS DE UTILIZAR UN
                            PROTOTIPADO
1. Mejora en la usabilidad del sistema
2. Una mejor concordancia entre el sistema y las necesidades del usuario
3. Mejora en la calidad del diseño
4. Mejora en el mantenimiento
5. Reducción en el esfuerzo de desarrollo

Más contenido relacionado

La actualidad más candente

Definición de ingeniería del software
Definición de ingeniería del softwareDefinición de ingeniería del software
Definición de ingeniería del software
hdfkjshdkf
 
Ciclos de vida del software
Ciclos de vida del softwareCiclos de vida del software
Ciclos de vida del software
GUEOVANNY20
 
Metodología xp
Metodología xpMetodología xp
Metodología xp
Piskamen
 
02 unidad i proceso
02 unidad i   proceso02 unidad i   proceso
02 unidad i proceso
victdiazm
 

La actualidad más candente (17)

Modelos de procesos de software(completo)
Modelos de procesos de software(completo)Modelos de procesos de software(completo)
Modelos de procesos de software(completo)
 
Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema
 
Modelos del software
Modelos del softwareModelos del software
Modelos del software
 
Definición de ingeniería del software
Definición de ingeniería del softwareDefinición de ingeniería del software
Definición de ingeniería del software
 
Ciclos de vida del software
Ciclos de vida del softwareCiclos de vida del software
Ciclos de vida del software
 
7. Mantenimiento de Software
7. Mantenimiento de Software7. Mantenimiento de Software
7. Mantenimiento de Software
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de software
 
Metodología xp
Metodología xpMetodología xp
Metodología xp
 
MEDIACION PROYECTO 1 (IISem2022) (1).pdf
MEDIACION PROYECTO 1 (IISem2022) (1).pdfMEDIACION PROYECTO 1 (IISem2022) (1).pdf
MEDIACION PROYECTO 1 (IISem2022) (1).pdf
 
Capas de la ingenieria de software
Capas de la ingenieria de softwareCapas de la ingenieria de software
Capas de la ingenieria de software
 
6. Administración de la Calidad de Software
6. Administración de la Calidad de Software6. Administración de la Calidad de Software
6. Administración de la Calidad de Software
 
02 unidad i proceso
02 unidad i   proceso02 unidad i   proceso
02 unidad i proceso
 
ingenieria del software
ingenieria del softwareingenieria del software
ingenieria del software
 
Metodologías Aágiles: TDD (Test Driven development)
Metodologías Aágiles: TDD (Test Driven development)Metodologías Aágiles: TDD (Test Driven development)
Metodologías Aágiles: TDD (Test Driven development)
 
Trabajo de desarrollo desoftware
Trabajo de desarrollo desoftwareTrabajo de desarrollo desoftware
Trabajo de desarrollo desoftware
 
Software
SoftwareSoftware
Software
 
Sqm
SqmSqm
Sqm
 

Destacado (9)

Proyecto fernanda rojas
Proyecto fernanda rojas Proyecto fernanda rojas
Proyecto fernanda rojas
 
Diplomado actualización en la gestión periodística
Diplomado actualización en la gestión periodísticaDiplomado actualización en la gestión periodística
Diplomado actualización en la gestión periodística
 
Sistemas de videovigilancia
Sistemas de videovigilanciaSistemas de videovigilancia
Sistemas de videovigilancia
 
Tarea tnte. byron flores
Tarea  tnte. byron floresTarea  tnte. byron flores
Tarea tnte. byron flores
 
Analisis saber2013 ciencias naturales
Analisis saber2013 ciencias naturalesAnalisis saber2013 ciencias naturales
Analisis saber2013 ciencias naturales
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Proyecto inventario 1
Proyecto inventario 1Proyecto inventario 1
Proyecto inventario 1
 
I taller de periodismo digital
I taller de periodismo digitalI taller de periodismo digital
I taller de periodismo digital
 
Calentamiento global
Calentamiento globalCalentamiento global
Calentamiento global
 

Similar a Exposicion 3

Desarrollo ágil de software
Desarrollo ágil de softwareDesarrollo ágil de software
Desarrollo ágil de software
Al Ex
 
Ciclo de vida de sistemas
Ciclo de vida de sistemasCiclo de vida de sistemas
Ciclo de vida de sistemas
Mirna Lozano
 
Fases en el desarrollo de un programa
Fases en el desarrollo de un programaFases en el desarrollo de un programa
Fases en el desarrollo de un programa
Beydasanchezhernandez
 

Similar a Exposicion 3 (20)

Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Proceso y diseño de un software
Proceso y diseño  de un   softwareProceso y diseño  de un   software
Proceso y diseño de un software
 
Unidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de softwareUnidad I - Desarrollo rápido de software
Unidad I - Desarrollo rápido de software
 
Desarrollo ágil de software
Desarrollo ágil de softwareDesarrollo ágil de software
Desarrollo ágil de software
 
Etapas del diseño .pdf
Etapas del diseño .pdfEtapas del diseño .pdf
Etapas del diseño .pdf
 
Proceso del Software
Proceso del Software Proceso del Software
Proceso del Software
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Desarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorDesarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidor
 
Modelos de desarrollo rápido de software
Modelos de desarrollo rápido de softwareModelos de desarrollo rápido de software
Modelos de desarrollo rápido de software
 
Ingeniería del software
Ingeniería del softwareIngeniería del software
Ingeniería del software
 
Ciclo de vida de sistemas
Ciclo de vida de sistemasCiclo de vida de sistemas
Ciclo de vida de sistemas
 
Fases en el desarrollo de un programa
Fases en el desarrollo de un programaFases en el desarrollo de un programa
Fases en el desarrollo de un programa
 
Trabajo de sistemas de software
Trabajo de sistemas de softwareTrabajo de sistemas de software
Trabajo de sistemas de software
 
Fases del ciclo de la vida de desarrollo
Fases del ciclo de la vida de desarrolloFases del ciclo de la vida de desarrollo
Fases del ciclo de la vida de desarrollo
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Desarrollo Agil de Software
Desarrollo Agil de SoftwareDesarrollo Agil de Software
Desarrollo Agil de Software
 
Act20
Act20Act20
Act20
 
ciclo-de-vida-de-un-software (1).pptx
ciclo-de-vida-de-un-software (1).pptxciclo-de-vida-de-un-software (1).pptx
ciclo-de-vida-de-un-software (1).pptx
 
Ensayo de ciclo de vida
Ensayo de ciclo de vidaEnsayo de ciclo de vida
Ensayo de ciclo de vida
 

Exposicion 3

  • 1. UNIVERSIDAD REGIONAL AUTÓNOMA DE LOS ANDES TRABAJO DE INGENIERIA DE SOFTWARE INTEGRNTES: Ipiales Fernanda Oña Vanessa
  • 2. DESARROLLO RAPIDO DE SOFTWARE Los procesos de desarrollo rápido de software están diseñados para producir software útil de forma rápida. Generalmente, son procesos iterativos en los que se entrelazan la especificación, el diseño, el desarrollo y las pruebas. El software no se desarrolla y utiliza en su totalidad, sino en una serie de incrementos, donde en cada incremento se incluyen nuevas funcionalidades al sistema.
  • 3. VENTAJAS DE ADOPTAR UN ENFOQUE INCREMENTAL 1.- Entrega acelerada de los servicios de! cliente. En los incrementos iníciales del sistema se pueden entregar las funcionalidades de alta prioridad para que los clientes puedan aprovechar el sistema desde el principio de su desarrollo. Los clientes pueden ver sus requerimientos en la práctica y especificar cambios a incorporar en entregas posteriores del sistema. 2. Compromiso del cliente con el sistema. Los usuarios del sistema tienen que estar implicados en el proceso de desarrollo incremental debido a que tienen que proporcionar retroalImentación sobre los incrementos entregados al equipo de desarrollo. Su participación no sólo significa que es más probable que el sistema cumpla sus requerimientos, sino que también los usuarios finales del sistema tienen que hacer un compromiso con él y conseguir que éste llegue a funcionar.
  • 4. MÉTODOS ÁGILES En los años 80 y principios de los 90, existía una opinión general de que la mejor forma de obtener un mejor software era a través de una planificación cuidadosa del proyecto, una garantía de calidad formalizada, la utilización de métodos de análisis y diseño soportados por herramientas CASE, y procesos de desarrollo de software controlados y rigurosos. Esta opinión provenía, fundamentalmente, de la comunidad de ingenieros de software implicada en el desarrollo de grandes sistemas software de larga vida que normalmente se componían de un gran número de programas individuales.
  • 5. PROGRAMACIÓN EXTREMA La Programación Extrema (XP) es posiblemente el método ágil más conocido y ampliamente utilizado. El nombre fue acuñado por Beck (Beck, 2000) debido a que el enfoque fue desarrollado utilizando buenas prácticas reconocidas, como el desarrollo iterativo, y con la participación del cliente en niveles «extremos».
  • 6. PRINCIPIOS DE LOS MÉTODOS ÁGILES: 1. El desarrollo incremental se lleva a cabo través de entregas del sistema pequeñas y frecuentes y por medio de un enfoque para la descripción de requerimientos basado en las historias de cliente o escenarios que pueden ser la base para el proceso de planificación. 2. La participación del cliente se lleva a cabo a través del compromiso a tiempo completo del cliente en el equipo de desarrollo. Los representantes de los clientes participan en el desarrollo y son los responsables de definir las pruebas de aceptación del sistema. 3. El interés en las personas, en vez de en los procesos, se lleva a cabo a través de la programación en parejas, la propiedad colectiva del código del sistema, y un proceso de desarrollo sostenible que no implique excesivas jornadas de trabajo. 4. El cambio se lleva a cabo a través de las entregas regulares del sistema, un desarrollo previamente probado y la integración continua. 5. El mantenimiento de la simplicidad se lleva a cabo a través de la refactorización constante para mejorar la calidad del código y la utilización de diseños sencillos que no prevén cambios futuros en el sistema.
  • 7. PRUEBAS EN XP Para evitar algunos de los problemas de las pruebas y de la validación del sistema, XP pone más énfasis en el proceso de pruebas que otros métodos ágiles. Las pruebas del sistema son fundamentales en XP, en la que se ha desarrollado un enfoque que reduce la probabilidad de producir nuevos incrementos del sistema que introduzcan errores en el software existente. Las características clave de las pruebas en XP son: 1. Desarrollo previamente probado. 2. Desarrollo de pruebas incremental a partir de los escenarios. 3. Participación del usuario en el desarrollo de las pruebas y en la validación, 4. El uso de bancos de pruebas automatizados.
  • 8. Programación en parejas Otra práctica innovadora que se ha introducido es que los programadores trabajan en parejas para desarrollar el software. De hecho, se sientan juntos en la misma estación de trabajo para desarrollar el software. El desarrollo no siempre implica la misma pareja de personas trabajando juntas. Más bien, la idea es que las parejas se creen de forma dinámica para que todos los miembros del equipo puedan trabajar con los otros miembros en una pareja de programación durante el proceso de desarrollo.
  • 9. VENTAJAS DE LA PROGRAMACION EN PAREJAS 1. Apoya la idea de la propiedad y responsabilidad comunes del sistema. Esto refleja la idea de Weinberg de la programación sin ego (Weinberg, 1971), en la que el equipo como un todo es dueño del software y las personas individuales no tienen la culpa de los problemas con el código. En cambio, el equipo tiene una responsabilidad colectiva para resolver estos problemas. 2. Actúa como un proceso de revisión informal ya que cada línea de código es vista por al menos dos personas. Las inspecciones y revisiones del código (tratadas en el Capítulo 22) consiguen descubrir un alto porcentaje de errores del software. Sin embargo, requiere mucho tiempo organizarías y, por lo general, generan retrasos en el proceso de desarrollo. A pesar de que la programación en parejas es un proceso menos formal que probablemente no encuentre tantos errores, es un proceso de inspección mucho más económico que las inspecciones formales de programas.
  • 10. 3. Ayuda en la refactorización, la cual es un proceso de mejora del software. Un principio de la XP es que se debe refactorizar constantemente el software. Es decir, se deben escribir nuevamente partes del código para mejorar su claridad y estructura. El problema para implementar esto en un entorno de desarrollo normal es que es un esfuerzo que se gasta para obtener un beneficio a largo plazo, y se puede juzgar a una persona que practique la refactorización como menos eficiente que otra que simplemente realice el desarrollo del código.
  • 11. DESARROLLO RÁPIDO DE APLICACIONES Las técnicas de desarrollo rápido de aplicaciones (RAD) evolucionaron de los llamados lenguajes de cuarta generación en los años 80 y se utilizan para desarrollar aplicaciones con un uso intensivo de datos. Por consiguiente, normalmente están organizadas como un conjunto de herramientas que permiten crear datos, buscarlos, visualizarlos y presentarlos en informes Las herramientas que se incluyen en un entorno R AD son: 1. Un lenguaje de programación de bases de dalos, que contiene conocimiento de la estructura de la base de datos y que incluye las operaciones básicas de manipulación de bases de datos. El lenguaje estándar de programación de base de datos es SQL (Groff et ai, 2002). Los comandos SQL se pueden introducir directamente o generar de forma automática a partir de formularios rellenados por los usuarios finales. 2. Un generador de interfaces, que se utiliza para crear formularios de introducción y visual i zación de datos. 3. Enlaces a aplicaciones de oficina, como una hoja de cálculo para el análisis y manipulación de información numérica o un procesador de textos para la creación de plantillas de informes. 4. Un generador de informes, que se utiliza para definir y crear informes a partir de la información de la base de datos.
  • 12. PROTOTIPADO DEL SOFTWARE Un prototipo es una versión inicial de un sistema software que se utiliza para demostrar conceptos, probar opciones de diseño y, en general, informarse más del problema y sus posibles soluciones. El desarrollo rápido e iterativo del prototipo es esencial, de modo que los costes sean controlados y los stakeholders del sistema puedan experimentar con el prototipo en las primeras etapas del proceso del software. Un prototipo del software se puede utilizar de varias maneras en un proceso de desarrollo de software: 1. En el proceso de ingeniería de requerimientos, un prototipo puede ayudar en la obtención y validación de los requerimientos del sistema. 2. En el proceso de diseño del sistema, se puede utilizar un prototipo para explorar soluciones software particulares y para apoyar al diseño de las interfaces de usuario. 3. En el proceso de pruebas, se puede utilizar un prototipo para ejecutar pruebas backto- back con el sistema que se entregarán al cliente.
  • 13. BENEFICIOS DE UTILIZAR UN PROTOTIPADO 1. Mejora en la usabilidad del sistema 2. Una mejor concordancia entre el sistema y las necesidades del usuario 3. Mejora en la calidad del diseño 4. Mejora en el mantenimiento 5. Reducción en el esfuerzo de desarrollo