- Metodologías de Software a la medida - - Metodologías de Software a la medida - Dime qué desarrollas y te diré que metodología usar Autores: Kiberley.

Slides:



Advertisements
Presentaciones similares
Ciclo de vida de desarrollo de software
Advertisements

Metodologías Ágiles Patricio Letelier
Ingeniería de Software
Metodologías Ágiles.
Metodologías Ágiles en VFP de las Historias de Usuario al código
Ingeniería de Software
Metodologías de Desarrollo en Empresas que no Comercializan Software A.S. ADRIAN ESTEBAN MELESI UNIVERSIDAD DE PALERMO - TRABAJO FINAL DE GRADO TUTOR:
EXtreme Programming 1 Integrantes Freddy Santiago Yucra Gomez Moisés Julián Ccopa Chipayo Reyna Karina Valdivia Chavez.
Clase 09.  Garantizar la calidad de software  La prueba nunca termina, del IS translada se translada al usuario  Las casas de software invierte del.
Metodologías de Desarrollo Ágil
Sistemas de Información Enfoques para la Construcción de los Sistemas de Información MBA Luis Elissondo.
GESTIÓN ÁGIL DE PROYECTOS PROJECT MANAGEMENT OMAIRA IXTECOC RODRÍGUEZ.
Sistema de notificación de incidencias de analizadores para dispositivos móviles Master Universitario de Desarrollo de aplicaciones para dispositivos móviles.
Programación Extrema Ing. Sebastian Priolo. Metodologías Ágiles Menos orientadas a los documentos. Orientadas al código. El cambio es bienvenido. Procesos.
RUP Vs. XP Sandra Lorena Anaya. Introducción ● Calidad del SW ● Transparencia y control sobre el proceso ● Producir lo esperado en el tiempo esperado.
NORMA ISO DIS 9001:2015 Draft International Standard.
Marlon Martínez Sernaque CIP Importancia del Uso de Metodologías en el Desarrollo de Software.
TEMA: PSP (Personal Software Process) ANALISIS DE SISTEMAS I ING. EDGAR RAUL MOLINA INTEGRAMTES: HANNSEL E. CORDON AC JESSICA IDALMY KRESS FREDERIC HESTIB.
NIA Planeación de una auditoria de Estados Financieros. NOMBRE: Beatriz Acero Zapana CURSO: Auditoria Financiera ESCUELA: Ciencias Contables y Financiera.
Informática Empresarial Docente – Carlos Andrés Bonil Mariño INFORMATICA EMPRESARIAL  CARLOS ANDRES BONIL MARIÑO  INGENIERO DE SISTEMAS.
Programación Extrema (XP) Alan Quirino Eder Ramírez Edgar García Alberto Borrell Raúl Bribiesca
La vida es demasiado corta para ser pequeña
Ingeniería de Software: Metodologías
SCRUM Metodología de trabajo ágil
“Radar de Innovaciones Educativas del Tecnológico de Monterrey”
Gestión de Proyectos Ágiles
Ingeniería de Software
ANÁLISIS, DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE PREVENCIÓN Y SEGUIMIENTO DE CÓLICOS EN EQUINOS UTILIZANDO ASP.NET y MVC MAYO 2014 VIVIANA ESTÉVEZ VERÓNICA.
Metodología de Sistemas Unidad IV: MÉTODOS ÁGILES
U.T. 11: Introducción A Las Bases De Datos
CICLO DE VIDA DEL SOFTWARE
MOPROSOFT.
SISTEMAS DE INFORMACIÓN
Proceso de Desarrollo de SW
CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA
UNIVERSIDAD DE LAS FUERZAS ARMADAS-ESPE
Tema 3. Lenguaje unificado de modelado UML
CICLO DE VIDA DEL SOFTWARE
Blue Watch: Un método balanceado para el desarrollo de software
PROVEEDOR DATA WAREHOUSE TERADATA
SISTEMA DE GESTION DE CALIDAD ISO 9001:2015
Método Blue Watch Universidad Alejandro de Humboldt
ANDERSON MARTINEZ SALAZAR
Ingeniería del Software
Proceso Unificado de Desarrollo de Software
Ciclo de vida del Software
Comprensión y obtención de los requerimientos
Metodologías de Desarrollo de Software RUP – Proceso Racional Unificado Gilber BASILIO ROBLES I.E.S.T.P. “DANIEL ALCIDES CARRIÓN” Taller de Modelamiento.
Planeamiento: un plan incremental para que la ingeniería web produzca resultados. La ingeniería web es un área que abarca procesos, técnicas y modelos.
Introducción al Proceso de Desarrollo de Software Patricio Letelier Departamento de Sistemas Informáticos y Computación Universidad.
METODOLOGIAS AGILES VS TRADICIONALES SCRUM - RUP FABIO ARNOBY BEJARANO Q. UNIREMINGTON BUGA (V) INGENIERIA DE SOFTWARE II SEPTIEMBRE 2018.
Autores: Ñauñay Colcha Jorge Luis Bravo Maldonado Paulo Dennis
CICLO DE VIDA DE SOFTWARE
1 Taller de Proyecto Tema 1. Metodología de desarrollo de software Rational Unified Process –RUP [1,2] Prof. Nora La Serna © Prof. Nora La Serna.
METODOLOGIA AGIL XP LIC. ROXANA LAUREL R.. INTRODUCCION  Proceso : conjunto de actividades ordenadas para lograr una serie de objetivos  Proceso Pesado.
Vicerrectoría Académica Dirección de Formación General Programa de Emprendimiento PROTOTIPOS.
Metodología de Desarrollo de Sistemas II Ingeniería de Software  DEFINICIÓN La ingeniería del software es el establecimiento y uso de principios de.
UTFSM - Departamento de Electrónica1 Noviembre de 2003 “Beneficios del Uso de Metodologías en el Desarrollo de Proyectos” Trabajo de título presentado.
METODOLOGÍAS ÁGILES Por metodologías ágiles entendemos a aquellas metodologías de gestión que permiten adaptar la forma de trabajo al contexto y naturaleza.
1 Introducción al proceso unificado de desarrollo de software.
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
Ingeniería de Software: Metodologías
UTFSM - Departamento de Electrónica1 Noviembre de 2003 “Beneficios del Uso de Metodologías en el Desarrollo de Proyectos” Trabajo de título presentado.
GESTIÓN DE PROYECTOS La gestión de proyectos está conformada por todas aquellas acciones que debes realizar para cumplir con una objetivo definido dentro.
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
TEMA: Funciones, Roles y Procesos Docente: Jesús Ulloa Ninahuamán.
Metodologías Modernas. Ivar Jacobson hace un análisis útil: La agilidad se ha convertido en la palabra mágica de hoy para describir un proceso del software.
Ing. Carlos García P. C.I UNIDAD EDUCATIVA “SALINAS INNOVA” P Identifique el contexto para el cual se Planifica un nuevo sistema ÁREA.
METODOLOGÍ A SCRUM Ing. Carlos diaz gantu Concepto Metodología de desarrollo ágil utilizada en el desarrollo diferentes productos, entre ellos, el desarrollo.
ICI 502 Procesos de Software
Transcripción de la presentación:

- Metodologías de Software a la medida - - Metodologías de Software a la medida - Dime qué desarrollas y te diré que metodología usar Autores: Kiberley Santos C.I Carmen Salazar C.I

Agenda  Introducción  Metodologías Pesadas Proceso Unificado de Rational (RUP)  Metodologías Livianas Metodologías Ágiles eXtreme Programing (XP) SCRUM  Caso Software Libre  Tendencias en la Industria Venezolana  Conclusiones  Referencias Bibliográficas

Introducción - El cliente demanda sistemas de software eficientes, con un alto desempeño funcional y alta calidad. - Nace la necesidad de contar con una metodología para gestionar los proyectos bajo un enfoque disciplinado y sistemático. - Existen variedad de metodologías de desarrollo y no siempre se escoge la mas adecuada, o se termina proponiendo una nueva. - A continuación se presenta esquema de desarrollo, ventajas y desventajas, destacando para que tipo de proyecto su utilización es apropiada.

Proceso Unificado Rational (RUP) - Precursores: Barry Boehm, Ken Hartman, Ivar Jacobson. La primera versión fue puesta en marcha en 1998 siendo el arquitecto en jefe Philippe Kruchten. - Proceso de ingeniería de software que junto al Lenguaje Unificado de Modelado (UML), constituye una metodología estándar altamente utilizada para el análisis, implementación y documentación de sistemas orientados a objetos. -Su propósito es asegurar la producción de software de alta calidad que se ajuste a las necesidades de sus usuarios finales con unos costos y calendario predecibles.

Proceso Unificado Rational (RUP) Figura 1: Fases, iteraciones y flujos de trabajo en RUP. Tomado de IBM Corporation (2006).

Proceso Unificado Rational (RUP) Ventajas - Reconoce que los requisitos del cliente no se pueden definir completamente al principio y se deben tomar acciones adaptativas. - Permite evaluar tempranamente los riesgos presentes en lugar de descubrir problemas en la integración final del producto de software. - Reduce el costo del riesgo a los costos de un solo incremento. - Acelera el ritmo del esfuerzo de desarrollo debido a que se trabaja para obtener resultados claros a corto plazo. - Distribuye la caga de trabajo a lo largo del tiempo del proyecto ya que todas la disciplinas colaboran en una iteración. - Facilita la reutilización de componentes teniendo en cuenta que se realizan en al primeras iteraciones.

Proceso Unificado Rational (RUP) Desventajas - La metodología puede ser vista como muy pesada debido a su contenido amplio y complejo. - Si se desconoce que es un marco de trabajo configurable, puede parecer tedioso ya que da la impresión de que se debe hacer uso de todos los elementos (actividades, artefactos y roles). - También se puede caer en el error de pensar que RUP no admite adaptabilidad ni extensiones dependiendo de las particularidades del proyecto. El detalle esta en conocer suficiente mente la metodología para estar en la capacidad de configurar el marco de trabajo.

Proceso Unificado Rational (RUP) Usos Esta metodología por su amplitud es más apropiada para proyectos grandes, de largo plazo y sobre todo cuando se trabaja con equipos de desarrollo con numerosas personas y dispersos en cuanto a ubicación geográfica.

Metodologías Ágiles - Precursores Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland y Dave Thomas. Manifiesto Ágil - A los individuos y su interacción, por encima de los procesos y las herramientas. - El software que funciona, por encima de la documentación exhaustiva. - La colaboración con el cliente, por encima de la negociación contractual. -La respuesta al cambio, por encima del seguimiento de un plan (Cockburn).

Metodologías Ágiles Principales Exponentes - XP (eXtreme Programming): Kent Beck y Ward Cunningham a finales de los 1980s. - La familia de Cristal de Cockburn: Alistair Cockburn. - Código Abierto. - El desarrollo de software adaptable de Highsmith: Jim Highsmith. - Scrum: Ken Schwaber y Mike Beedle. - Desarrollo manejado por rasgos: Jeff De Luca y el viejo gurú de la OO Peter Coad. - DSDM (método de desarrollo de sistemas dinámicos): El DSDM empezó en Gran Bretaña en 1994.

eXtreme Programming (XP) - La XP empieza con cuatro valores: Comunicación, Retroalimentación, Simplicidad y Coraje. - Construye sobre ellos una docena de prácticas que los proyectos XP deben seguir: Planificación incremental Testing Programación en parejas Refactorización Diseño simple Propiedad colectiva del código Integración continúa Cliente en el equipo Releases pequeñas Semanas de 40 horas Estándares de codificación Uso de Metáforas

eXtreme Programming (XP) Figura 3. Fases de un proyecto en eXtreme Programming. Tomado de XP (2006).

eXtreme Programming (XP) Ventajas - Funciona muy bien cuando loe requisitos son inciertos y volátiles. - Garantiza la satisfacción del cliente ya que se encuentra involucrado en las constantes validaciones que se hacen con los release. - Los desarrollos serán de calidad ya que son probados constantemente en todo el proceso. -Los equipos de trabajo pueden ser numerosos.

eXtreme Programming (XP) Desventajas - El equipo de trabajo es menor a 6 personas. - Si no se confía en las capacidades del equipo de trabajo. - Si los requisitos están bien definidos, no es necesario implementar ninguna metodología ágil. -En caso de contrataciones con costos fijos, ya que no existe la interacción que se necesita con el cliente.

SCRUM - Es un modelo de referencia que define un conjunto de prácticas y roles. - Los roles principales en Scrum son el ScrumMaster, que mantiene los procesos y trabaja de forma similar al director de proyecto, el ProductOwner, que representa a los stakeholders (clientes externos o internos), y el Team que incluye a los desarrolladores. - El desarrollo de software se realiza mediante iteraciones, denominadas sprints, con una duración de 30 días. El resultado de cada sprint es un incremento ejecutable que se muestra al cliente. - Existen reuniones a lo largo del proyecto, entre ellas destaca la reunión diaria de 15 minutos del equipo de desarrollo para coordinación e integración.

SCRUM Figura 2: Proceso de Trabajo con Scrum. Tomado de Taringa! (2007).

SCRUM Ventajas - Permite la entrega de un producto funcional al finalizar cada Sprint (iteración). - Posibilidad de ajustar la funcionalidad en base a la necesidad de negocio del cliente. - Se puede visualizar el proyecto día a día. - Alcance acotado y viable. -Potencia la formación de equipos de trabajos autosuficientes y multidisciplinarios.

SCRUM Desventajas - Scrum no genera toda la evidencia o documentación de otras metodologías. - No es apto para todos los proyectos. - Tal vez sea necesario complementarlo con otras metodologías, como por ejemplo XP.

SCRUM Usos - Indicada para pequeños equipos de desarrollo. - Entornos complejos. - Donde se necesita obtener resultados pronto. - Donde los requisitos son cambiantes o poco definidos. - Donde la innovación, la competitividad y la productividad son fundamentales. - Para resolver situaciones en que no se está entregando al cliente lo que necesita, cuando las entregas se alargan demasiado, los costes se disparan o la calidad no es aceptable. - Cuando se necesita capacidad de reacción ante la competencia. - Cuando la moral de los equipos es baja y la rotación alta. - Cuando es necesario identificar y solucionar ineficiencias sistemáticamente. - Cuando se quiere trabajar utilizando un proceso especializado en el desarrollo de producto.

Caso Software Libre  El Software Libre (SL) ha ganado seguidores a nivel mundial debido a las ventajas, tanto filosóficas como prácticas, que ofrece a sus usuarios y desarrolladores.  Hoy en día está abierta un supuesta investigación denominada ingeniería de SL, de los cuales existen artículos publicados, que es algo cuestionado académicamente.  Se puede tomar, del SL, como aspecto relevante la constante interacción con el usuario final a través de sus procesos de retroalimentación y la publicación de versiones en etapas tempranas.  Desarrolladores de SL tienden a utilizar más metodologías ágiles, como XP y Scrum, que metodologías de desarrollo basados en un análisis exhaustivo previo, esto se debe a que las metodologías ágiles propician principios y valores que se pueden adaptar fácilmente al desarrollo de SL.

Caso Software Libre  MeRinde, metodología desarrollada dentro del Centro Nacional de Tecnologías de Información (CNTI), que está basada en diversas metodologías para el desarrollo de software, como UP especialmente, la cual permite gestionar proyectos de desarrollo de SL para el estado venezolano, garantizando el cumplimiento con calidad del decreto N° Existen propuestas metodológicas venezolanas para desarrollar SL, como son:  Metodología para el desarrollo colaborativo de SL, promovida por el Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL), la cual está inspirada fuertemente en XP. En la metodología se combinan características de los estilos de desarrollo Catedral y Bazar, en base a las cuales es posible definir procesos centralizados que permitan el desarrollo colaborativo y la liberación frecuente del código.

Tendencias en la Industria Venezolana Un estudio realizado por la facultad de Ingeniería de la Universidad de los Andes en conjunto con el GIDyC, CEISoft y CEIDIS; con el título: “La Industria Nacional del Software en Venezuela”, arrojo entre sus conclusiones la siguiente: -El 93% de las empresas utilizan algún modelo de procesos o método de desarrollo en particular. El 51% dice emplear un modelo propio, es decir, han desarrollado su propio modelo de procesos o utilizan una mezcla de varios de los modelos conocidos. -Sin embargo, se pudo detectar que muchas de las empresas que usan un modelo propio, por lo general, no tienen un modelo documentado a un nivel de detalle que facilite su uso corporativo. El 68% de la muestra señalo que no es obligatorio el uso de modelos de procesos en los proyectos.

Tendencias en la Industria Venezolana

Conclusiones Siempre existirá una metodología adecuada y adáptale a las necesidades del proyecto, lo importante es saber como identificarla. Para esto proponemos tener en cuenta lo siguiente: - Para desarrollos con requisitos poco definidos, tiempos cortos y equipos de trabajo mayores de 2 personas, capacitado y con experiencia, se recomiendan metodologías ágiles. -Para desarrollos con requisitos poco definidos, tiempos largos y equipos de trabajo multidisciplinarios, se recomiendan metodologías pesadas como RUP o sus variaciones.

Conclusiones - Si el desarrollo es contratado y no existe suficiente interacción con el cliente, las metodologías ágiles no aplican. - Las metodologías pesadas generan más documentación y por ende más material que sirven de antecedente para futuros desarrollos que las metodologías livianas. - Para el caso de desarrollos libres, existen propuestas de metodologías que permiten canalizar el desarrollo de software hacia un desarrollo de calidad, sin dejar de lado el paradigma del bazar y la reutilización del conocimiento.

Conclusiones Emplear metodologías auto configuradas (por así decirlo), tiene sus riesgos, ya que puede afectar seriamente la calidad del producto final. Resumiendo los factores que se consideran determinantes a la hora de escoger una metodología, entre otros, son: - Capacidades y pericias del equipo de trabajo. - Madurez de los requisitos. - Tiempo con el que se cuenta para el desarrollo. - Interacción con el cliente. -Requerimiento de documentación por parte de la empresa desarrolladora de software y/o empresa contratante.

Conclusiones En relación a las tendencias de las empresas desarrolladoras de software a nivel nacional, hay que tomar en cuenta que este es un mercado relativamente nuevo en el país. Sin embargo, poco a poco, conforme los equipos de trabajo van madurando y adquiriendo experiencia, haciendo uso de diferentes metodologías; se va depurando el conocimiento y fomentando las buenas prácticas. Dando píe el uso de metodologías de desarrollo adecuadas, según las características de la empresa desarrolladora de software.

Referencias Bibliográficas Alvarez, I. (2007) Desarrollo Ágil con Scrum. Tomado el de df df Alvares J., Terán O., Aguilar J. (2008). Experiencias desde CENDITEL: Metodología para el Desarrollo Colaborativo de Software Llibre. Vol. 1. Canós José, Letelier Patricio, Mª Carmen Penadés (2003). Métodologías Ágiles en el Desarrollo de Software. Tomado el de Cockburn and Highsmith, Agile Software Development Ecosystems. Cousso Ricardo, Desarrollo ágil de software. Tomado el de Ferrer Jorge (2003). Metodologías Ágiles. Tomado el de Fowler Martin (2003), La nueva metodología. Tomado el de IBM Corporation (2006). Rational Unified Process [Material disponible en disco Compacto (CD)]. Disponible: Rational Unified Process Version

Referencias Bibliográficas Jeffries Ron (2001). What is Extreme Programming?. Tomado el de Kruchten, P. (2003). The Rational Unified Process: An Introduction (3ra Ed.), Addison Wesley. Letelier, P. (2003). Proyecto Docente e Investigador, DSIC. MeRinde (2007). Descripción de MeRinde. Tomado el de Netcraft (2006). December 2006 Web Server Survey. Tomado el de Rivero Dulce, Montilva Jonás, Granados Gladis, Barrios Judith, Besembel Isabel y Sandia Beatriz (2007), La Industria Nacional de Software en Venezuela, Tomado el de Schwaber K (2004). Agile Project Management with Scrum.Microsoft Press, 163pp, ISBN X Schwaber K., Beedle M., Martin R.C. (2001) Agile Software Development with SCRUM. Prentice Hall.

Referencias Bibliográficas Sourcepyme (2006). Los institutos tecnológicos AIMME, AIMPLAS e ITI reúnen a más de 200 expertos en la Jornada Sourcepyme. Tomado el de Taringa! (2007). SCRUM: Desarrollo Ágil de software. Tomado el de Wheeler, D. (2005). Why Open Source Software / Free Software (OSS/FS, FLOSS, or FOSS)? Look at the Numbers!. Tomado el de Wikipedia, Agile software development, Tomado el de Wikipedia, Manifiesto Ágil, Tomado el de XP (2006), Extreme Programming: A gentle introduction, Tomado el de