¿Qué son las Metodologías de
desarrollo de proyectos de Software? ● Es un marco que se
utiliza para estructurar, planificar y controlar el proceso de desarrollo de un sistema de información.
● Este concepto no surgió hasta la década de los 60’s.
fuente: (Whitten, Bentley, & Dittman, 2004)
Antecedentes
● Propuesto por Mills en 1980.
● Surge como una opción mejorada de la Metodología de Cascada.
● Trataba de reducir la repetición de trabajo en el proceso de desarrollo.
● La necesidad de entregar resultados al cliente es importante en los proyectos de desarrollo.
fuente: (The University of Tennessee Knoxville, s. f.)
Metodología cascada
● “El ciclo de vida clásico”, sugiere un enfoque sistemático secuencial hacia el desarrollo del software.
● Inicia con la especificación de requerimientos, culmina en el soporte del software terminado.
● Es el paradigma más antiguo para la ingeniería del software.(Sommerville & Alfonso Galipienso, 2005)
Metodologías ágiles
● Están basadas en la metodología Incremental
● Consisten en satisfacer las necesidades y que soluciones evolucionan a través de la colaboración entre la auto-organización, equipos multi-funcionales .
● 2001 surge “El manifiesto agil”.(Abrahamsson, Salo, Ronkainen, & Valtion teknillinen tutkimuskeskus, 2002)
Metodología incremental
● Combina elementos del modelo cascada, pero de forma iterativa.
● Aplica secuencias lineales de manera escalonada conforme avanza el tiempo.
● Cada secuencia lineal produce incrementos de “software”. (PRESSMAN & Murrieta, 2005)
● Diseña una implementación inicial, expone ésta al comentario del usuario y luego desarrolla diversas versiones hasta producir el sistema adecuado. (Sommerville & Alfonso Galipienso, 2005)
● �Se evitan proyectos largos y se entrega “algo de valor” a los usuarios con cierta frecuencia.
● �El usuario se involucra más.● �Difícil de evaluar el costo total.● �Difícil de aplicar a los sistemas
transaccionales que tienden a ser integrados y a operar como un todo.
● �Requiere gestores experimentados.● ��El resultado puede ser muy positivo.
(PRESSMAN & Murrieta, 2005)
Caracteristicas
Ventajas
● La entrega inicial del proyecto es rápida.● El costo de entrega inicial es reducido.● La esencia del proyecto es desarrollada
primero.● Facilidad en las pruebas de regresión.● Carga de trabajo es menor.● El riesgo de cambiar requerimientos es
reducido.
(Technotrice, n.d.)
Desventajas● Requiere un buen análisis.● El costo resultante puede ser superior al presupuesto de
la organización.● Cada fase de iteración es fija.● Cuando una característica es añadida al proyecto,
pueden surgir problemas con la arquitectura del sistema.
● El proceso no es visible.● No es recomendable para casos de sistemas de tiempo
real, de alto nivel de seguridad y de procesamiento distribuido.(Technotrice, n.d.)
● Modelo de Desarrollo rápido de aplicaciones.● Es una adaptación de “alta velocidad” del
modelo cascada.● Si se entienden bien los requisitos y se limita
el ámbito del proyecto, el sistema esta funcional en un periodo muy corto tiempo.
● El modelo incluye - el modelo de negocio, el modelo de datos, modelo de proceso.(Sommerville & Alfonso Galipienso, 2005)
Modelo DRA
Incremental vs Cascada Modelo Incremental Modelo Cascada Se basa en un sistema a través de ciclos repetidos.
Se basa en progreso que fluye de manera constante hacia abajo.
En cada incremento se puede agregar requerimientos sin hacer que pierda forma el sistema.
Implica un previo y absoluto conocimiento de los requisitos, volviendolo rígido.
Los cambios en los incrementos ,no merman el desarrollo del software en su conjunto.
Algún cambio durante la ejecución, implicaría reiniciar.
Son varios ciclos cascada realimentados aplicados repetidamente.
El paso de una etapa a otra de las mencionadas sería sin retorno.
Resulta muy útil cuando se dispone de baja dotación de personal para el desarrollo o fecha límite de entrega.
Usado por su simplicidad y eficiencia en software de pequeño y algunos de mediano porte.
(Larman & Basili, 2003)
Incremental vs Met. AgilesMetodología Incremental Metodologías ÁgilesBasadas en normas provenientes de estándares.
Basadas en heurísticas provenientes de prácticas de producción de código.
Seguidos por el entorno de desarrollo. Producción de código.
Variables Impuestas externamente. Variables Impuestas internamente (por el equipo).
Proceso mucho más controlado, con numerosas políticas/normas.
Proceso menos controlado, con pocos principios.
El cliente interactúa con el equipo de desarrollo mediante reuniones.
El cliente es parte del equipo de desarrollo.
(Larman & Basili, 2003)
Ejemplo: Procesador de Texto
● Funciones básicas de edición de archivos y producción de documentos.
Sommerville & Alfonso Galipienso, 2005)
1er. Incremento
Ejemplo: Procesador de Texto
● Se agrega edición más sofisticada y de generación y mezcla de documentos.(Sommerville &
Alfonso Galipienso, 2005)
2do. Incremento
Ejemplo: Procesador de Texto
● Se considera el agregado de funciones de corrección ortográfica,
esquemas de paginado y plantillas.
(Sommerville & Alfonso Galipienso, 2005)
3er. Incremento
Ejemplo: Procesador de Texto
● Se crean capacidades de dibujo propias y ecuaciones matemáticas.
(Sommerville & Alfonso Galipienso, 2005)
4to. Incremento
BibliografíaAbrahamsson, P., Salo, O., Ronkainen, J., & Valtion teknillinen tutkimuskeskus. (2002). Agile software development
methods: review and analysis. Espoo [Finland]: VTT.
Common Places. (n.d.). Metodo de cascada. Retrieved August 29, 2013, from http://www.commonplaces.com/sites/commonplaces.com/files/waterfall_method.png
Gow, J. A., Parton, R., & Wardlaw, A. C. (1976). Radiolabelling of Bordetella pertussis envelope proteins by the 125 I-lactoperoxidase method. Microbios, 15(61-62), 209–219.
Larman, C., & Basili, V. R. (2003). Iterative and Incremental Development: A Brief History. Computer, 36(6), 47–56.
More Reaño, R. (2012, July 26). Ciclo de vida del software. Retrieved from http://ciclodelsoftware.blogspot.mx/
PRESSMAN, R. S. A., & Murrieta, J. E. M. (2005). Ingeniería del software: un enfoque práctico. Mcgraw Hill/Interamericana Editores. Retrieved from http://books.google.es/books?id=rEoxQQAACAAJ
Programación Estructutada. (n.d.). Modelo Incremental. Retrieved August 29, 2013, from https://sites.google.com/site/programacion1electronica/metodologias-de-desarrollo-de-software/modelo-incremental-o-evolutivo
Sommerville, I., & Alfonso Galipienso, M. I. (2005). Ingenieria del software. Madrid: Pearson Addison-Wesley.
Technotrice. (n.d.). Incremental Model In Software Engineering : What Is It? Advantages &. Retrieved August 29, 2013, from http://www.technotrice.com/incremental-model-in-software-engineering/
Tercermodelo. (2013). Modelo de Desarrollo Rápido de Aplicaciones (DRA). Retrieved August 29, 2013, from http://tercermodelo.blogspot.mx/
The University of Tennessee Knoxville. (n.d.). Mills. Retrieved August 29, 2013, from http://trace.tennessee.edu/assets/md5images/606b83a9ccd6c910f32abd8661263c58.gif
Whitten, J. L., Bentley, L. D., & Dittman, K. C. (2004). Systems analysis and design methods. Boston: McGraw-Hill Irwin.
Wikipedia. (n.d.). Generic diagram of an agile methodology for software development. Retrieved August 29, 2013, from http://en.wikipedia.org/wiki/File:Generic_diagram_of_an_agile_methodology_for_software_development.png