Ciclo de Ingeniería de Software



Documentos relacionados
El Proceso Unificado de Desarrollo de Software

Ingeniería de Software: Parte 2

UNIVERSIDAD UNION BOLIVARIANA CARRERA DE INGENIERIA DE SISTEMAS

Ingeniería de Software


6 Anexos: 6.1 Definición de Rup:

Information Technology Infrastructure Library

Ingeniería de Software I

Certified Scrum Developer (CSD), Módulo 3 y Track Completo

Análisis y Diseño de Aplicaciones

CICLO DE VIDA DEL SOFTWARE

Propuesta Matriz de Actividades para un Ciclo de Vida de Explotación de Datos

Ingeniería de Software. Procesos. Proyecto de Ingeniería. Metodologías. Metodologías. Metodologías. Metodologías de desarrollo

METODOLOGÍA TRADICIONAL.

Proceso Unificado de Rational

PDSM: PROCESO DE DESARROLLO DE SOFTWARE MIXTO COMBINANDO RUP Y SCRUM. Mariani, María Florencia Okabe, Evangelina

Gestión de Equipos de Desarrollo. Max Déboli Director de Desarrollo Lagash MVP Azure

Anteproyecto Fin de Carrera

Fundamentos de Ingeniería del Software. Capítulo 8. Introducción a los métodos de desarrollo de software

Como Abordar una Implementación Exitosa. Raúl Zavala IBM GBS

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

El Proceso Unificado Rational para el Desarrollo de Software.

Syllabus.

Ciclo de Vida del Desarrollo de un Sistema de Información. Departamento de Ingeniería Industrial Universidad de Chile

Modelo para el Aseguramiento de Calidad en el Desarrollo de Software Libre

Solución de una Intranet bajo software Open Source para el Gobierno Municipal del Cantón Bolívar [IOS-GMCB] Gobierno Municipal del Cantón Bolívar

RUP. Rational Unified Process

Implementando CMMI 2 con el Proceso Unificado de Desarrollo de Software. Ing. Patricia Forradellas Ing. Guillermo Pantaleo

Metodología básica de gestión de proyectos. Octubre de 2003

4 a 8 semanas. Equipos pequeños 5 a 9 miembros. Informal. Cara a cara. En cada entrega el cliente dará su aportación. Sólo documentación básica

La medición funcional de software con SCRUM

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

E-learning: E-learning:

INGENIERÍA DEL SOFTWARE

FÁBRICA DE SOFTWARE. Presentado por: Ing. Juan José Montero Román Gerente de Fábrica de Software USMP

Planeación del Proyecto de Software:

XP- EXTREME PROGRAMMING

Participantes

Gestión de Proyectos de desarrollo de software. Ing. Rafael Bentancur Universidad ORT Uruguay

Instituto Nacional de Tecnología Industrial TESTING DE SOFTWARE

Ingeniería de Software

La gestión n de proyectos. Planificación n y metodología. Visión, misión n y alcance.

Metodologías Ágiles Desde una Perspectiva de Project Management. Fernando Contreras Velásquez Project Management & Engineering Services.

Proceso: AI2 Adquirir y mantener software aplicativo

Período Teoría Práctica Laboratorio de crédito Electiva Requisitos Metodología del Software

Plan de estudios ISTQB: Nivel Fundamentos

INGENIERÍA DE SOFTWARE CICLOS DE VIDA Y METODOLOGIAS

Maximizar las Sinergias entre ITIL y sus Áreas de Negocio. Presentado por: HIXSA y Cherwell Software

Impala Risk. Simulación de Riesgo en Proyectos. Servicios. Capacitación.

2. Administración de Proyectos en el contexto de TI

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 2: EL CICLO DE VIDA DEL SOFTWARE

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

Innovación y trabajo en equipo

Tecnología de la Información. Administración de Recursos Informáticos

Contenidos. Parte I - Introducción Capítulo 1 - Evolución. Capítulo 2 Condiciones de trabajo en el Desarrollo de Software

Gestión de Proyectos Informáticos

IT Project Management Desarrollo de Software

Figure 9-1: Phase C: Information Systems Architectures

Modelos de Ciclo de Vida de Desarrollo de Software en el Contexto de la Industria Colombiana de Software

n u e v o s p a r a d i g m a s... n u e v a s s o l u c i o n e s.

LISTA DE MEJORAS PARA MEJORAR LOS RESULTADOS DE LA EVALUACIÓN

CLASE 2: INTRODUCCIÓN A LA ING. DE SOFTWARE. MODELOS DE PROCESOS. MEJORES PRÁCTICAS. USB Ing. De Software. Prof. I. C. Martínez

CICLO DE VIDA DEL SOFTWARE. Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software

Señor A/P. Lino Bessonart FEMI Presente Ref.: 181/2009

Elementos requeridos para crearlos (ejemplo: el compilador)

El Proceso de Desarrollo de Software. Diseño de Software Avanzado Departamento de Informática

SCRUM Metodología de trabajo ágil

Nombre de la asignatura: Gestión de Proyectos de Software

DESARROLLO DE SOFTWARE DEFINICIÓN GENERAL DEL PROCESO GABY LORENA GUERRERO LEYDI ROCIO ERAZO PABLO FELIPE MIRANDA WALTER ALEXIS ANTE

Aplicación de una Metodología basada en Mediciones para la Gestión de Calidad de Software

Ciclos desde su nacimiento hasta su muerte. Nacimiento. Muerte

Gestión de la Configuración

COMPILACION BIBLIOGRAFICA PMBOK, OPM3 JHON FREDY GIRALDO. Docente: Carlos Hernán Gomez Asignatura: Auditoria de Sistemas

14. Ingeniería de software. Ing. Alejandro Adorjan

Construcción de sistemas de soporte a la toma de decisiones

MANTENIMIENTO Y SOPORTE

Los profesores Flipantes

F A B R I C I O M U Ñ O Z S. T E N I E N T E T É C N I C O D E A V I A C I Ó N

Curso: Arquitectura Empresarial basado en TOGAF

Trabajo Práctico Integrador

Gestión de Proyectos. Visión Global. Obra bajo licencia Creative Commons

CAPÍTULO 4. FORMA DE EVALUACIÓN CMM. 4.1 Evolución de los métodos de valoración del SEI

Desarrollo ágil en tiempos de crisis. Alejandro Torres Castañeda y Analía Baño Dynkowski Baufest

IMPACTO DEL DESARROLLO TECNOLOGICO EN LA AUDITORIA

BPM en la práctica Transitando del BPA al BPM con una metodología probada. Diego Karbuski - Diciembre 2012

DE VIDA PARA EL DESARROLLO DE SISTEMAS

PMI Agile Certification

CALIDAD DEL SOFTWARE TESTS DE EXAMEN ACTUALIZADO SEP TEMA 4 MODELOS, METODOLOGÍAS Y ESTÁNDARES: ESTRATEGIAS PARA ALCANZAR LA CALIDAD

Capitulo 3: Procesos de la Dirección de Proyectos para un proyecto

Modelos de Medición. De los Procesos de Desarrollo de Software

Tema 2. Ingeniería del Software I feliu.trias@urjc.es

ACADEMIA AGIL PROFESSIONAL SCRUM DEVELOPER

METODOLOGÍA TRADICIONAL.

Transcripción:

Ciclo de Ingeniería de Software Desarrollo Iterativo de Software Aplicaciones Cliente Servidor Aplicaciones OO Universidad FASTA 2008 Licencia

Contenido Introducción Conceptos Planificación Calidad del Software Caso real, RUP Caso real, XP Debate casos reales

Introducción Ingeniería de Software Establecer y usar sólidos principios de ingeniería y buenas prácticas de gestión, así como la evolución de herramientas y métodos aplicables y su uso cuando sea apropiado para obtener, con los recursos existente, software de calidad en un sentido explícitamente definido. Bauer, 1972.

Introducción Definición de Proceso (general) Un proceso se define como un conjunto de tareas, actividades o acciones interrelacionadas entre sí que, a partir de una o varias entradas, dan lugar a una o varias salidas (producto o servicio) con un valor agregado. Objetivo: Administrar, controlar y dar valor.

Introducción Definición de Proceso en IS (ciclo de vida del software) Los procesos del ciclo de vida del software son un conjunto de métodos y estándares para mejorar y manejar los procesos de desarrollo de software, y que a la vez permiten soportarlo y administrarlo a través de todo el ciclo de vida. Hay varios procesos en la IS. Adquisición, provisión, desarrollo, operación y mantenimiento

Introducción Definición de Proceso de Desarrollo de Software Un proceso en el contexto del desarrollo de software es entonces, el conjunto de actividades definidas explícitamente y organizadas de una determinada manera, para llevar adelante la construcción de software (producto o servicio). Se puede desarrollar software sin procesos, SI Se debe desarrollar software sin procesos, NO

Introducción Actividades específicas al Desarrollo de Software Análisis del dominio. Entender, investigar. Análisis del software. No debe ser incompleto, ni haber ambiguedades o contradicciones. Deploy. Especificación. Documentación. Arquitectura de software. Capacitación. Construcción. Soporte. Testing. Mantenimiento.

Introducción Procesos de Desarrollo de Software, hay para elegir. Cascada MDD ATAM XP Espiral FDD UP SCRUM Prototype

Introducción Procesos de Desarrollo de Software, hay para elegir. Cuál elegir?

Introducción Procesos de Desarrollo de Software, hay para elegir. Cuál elegir? Cascada MDD ATAM XP Espiral EL MAS CONVENIENTE FDD SCRUM UP Prototype

Introducción Procesos de desarrollo VS. Patrones de desarrollo Se incoporan los principios de patrones Claramente identificados Se aplican en diferentes contextos Reusabilidad de conocimiento y experiencias.

Introducción Metaprocesos ISO 12207 Aplicable a nivel ciclo de vida, no solo desarrollo CMMI-DEV v1.2 (SEI) Concentrado en el proceso de desarrollo de productos y servicios. ISO 15504 (SPICE) SixSigma DMAIC: para mejorar procesos DMADV: para crear procesos

Introducción Historia del IID 1970 primeras definiciones y en 1972 el primer proyecto real con el modelo IID. 1975 Vic Vasili y Joe Turner primer paper. 1976 Tom Gilb publicó el primer libro en el que se expone la idea del IID ( Evolutionary Project Management ) Entre 80s y 90s se desarrolló RUP. En 1988 Barry Bohem presenta un artículo donde se discute el desarrollo iterativo ( A Spiral Model of Software Development and Enhancement ). En 1999 se publica el primer libro de UP ( The Unified Software Development Process, ISBN: 0-201-57169-2) por Jacobson, Booch y Rumbaugh.

Introducción Problemas de la Ingeniería de Software 1995 16% en tiempo y forma 52% sobrepasados 32% fallidos (U$S 81b) 2003 34% en tiempo y forma 51% sobrepasados 15% fallidos Fuente: Standish Group www.standishgroup.com

Introducción No Iterativo. Desarrollo en Cascada El desarrollo de software es un proceso complejo, contínuo y repetitivo. Este modelo no se adapta a todas ellas. El valor de negocio se obtiene muy al final del proyecto. Es la causa en el 82% de proyectos fallidos (C. Larman)

Introducción Mejoras con Desarrollo Ágil Fuente: VersionOne.com

Introducción Modelos Iterativos RUP (1999) XP (1999) ESPIRAL (1988) SCRUM (1986)

Introducción Hay Beneficios con IID Disminuye el time to market. Aumenta la productividad. Reduce los defectos del software. Reduce los costos. Simplicidad para modificar prioridades. Mejora la relación de IT con los objetivos de negocio. Satisfacción de los equipos de trabajo. Proyectos con menores riesgos Fuente: VersionOne y Agile Alliance

Conceptos Adaptable, no predictivo. Iteración Iterativo Estado de aceptación de un software Incremental Manejo de complejidad

Conceptos Adaptable, no predictivo. Iteración Iterativo Estado de aceptación de un software Incremental Manejo de complejidad

Conceptos Adaptable, no predictivo. Iteración Iterativo Estado de aceptación de un software Incremental Manejo de complejidad

Conceptos Adaptable, no predictivo. Iteración Iterativo Estado de aceptación de un software Incremental Manejo de complejidad

Conceptos Adaptable, no predictivo. Iteración Iterativo Estado de aceptación de un software Incremental Manejo de complejidad

Conceptos Adaptable, no predictivo. Iteración Iterativo Estado de aceptación de un software Incremental Manejo de complejidad

Planificación Consideraciones Implica más trabajo, pero más simple. Número de iteraciones Duración de las iteraciones Ej: Rational con 700 personas manejan iteraciones de 5 a 8 semanas. Factores Experiencia en el modelo Maduración del equipo Automatización y herramientas Bases de conocimiento Métodos de testing

Calidad del Software Desarrollo orientado al test Ej: JUnit Feedback temprano del usuario Diferentes test en cada iteración Desventaja, genera alto costo Calidad para el usuario Util, aprovechable, confiable, etc. Calidad para la IS Documentación, modularidad, portabilidad, seguridad, etc.

RUP: Proceso Unificado de Rational Basado en UP: Iterativo e incremental Dirigido por casos de uso Centrado en la arquitectura Enfocado en los riesgos

RUP: Proceso Unificado de Rational

Planificación en RUP Plan de Fase Uno por proyecto. Orientado a algunos stakeholders (PMs y externos) Vista gorda del plan general del proyecto. Centrado en hitos más relevantes. Recordar: el plan correcto no será el primero. Ajuste. Ejemplo de fechas de hitos en UP: LCO (Lifecycle Objective). Incepción. LCA (Lifecycle Architecture). Elaboración. IOC (Initial Operational Capability). Construcción. Beta. PR (Product Release). Transición. Release.

RUP: Proceso Unificado de Rational Tips Si el proyecto es riesgoso, o con gente nueva, nuevas herramienats y tecnologías, la fase de Elaboración deberá más larga. La duración de las iteraciones o la velocidad en la que puede iterar depende del tamaño del equipo. Cuidado con iteraciones largas, puede perder el ritmo del proyecto. Iteraciones cortas de un mes o menos son mas comunes en la fase de construcción.

RUP: Proceso Unificado de Rational Tips En proyectos normales puede llevar de 6 a 8 iteraciones [1, 2, 2, 1] o [1, 3, 3, 1]. Si el dominio es desconocido extienda la fase de Incepción. Si la arquitectura es un desafío incorpore de 2 a 3 iteraciones en la Elaboración. Si el desarrollo implica un período largo agregue iteraciones a la Construcción. Si no poseee experiencia empiece con 3 iteraciones.

Planificación en RUP Plan de Iteración Uno por iteración. Orientado a stakeholders internos. Vista fina de las tareas en cada iteración. Se establecen con un tiempo fijo dentro de cada fase. El PM siempre tiene presente una iteración activa y la próxima.

XP: Programación Extrema Fundado con 4 valores Comunicación Simplicidad Feedback Coraje

XP: Programación Extrema Fundado sobre 12 prácticas Planning game Versiones pequeñas Testeos de aceptación de usuario Diseño simple Programación de a pares Desarrollo orientado al testing TDD Refactoring Intengración contínua No hay dueños de código Estándares de codificación Metáforas 40 Hs

XP: Programación Extrema

XP: Programación Extrema

XP: Programación Extrema Planning Game. Plan de Release Se basa en las historias de usuario. Definido en Planning Meeting junto al cliente. Cada release incluye 80 (+ - 20) historias de usuario. El cliente establece la prioridad de cada historia de usuario. El equipo de desarrollo estima la duración de cada historia de usuario. En todo momento se aplica la velocidad del proyecto. Cada historia de usuario se traduce a tareas implementables. Cada historia de usuario se traduce en test de aceptación. Siempre que haya desvíos se vuelve a la Planning meeting. Es normal cada 3 o 5 iteraciones.

XP: Programación Extrema Planning Game. Plan de Iteración Iteraciones de 1 a 3 semanas de duración. 12 iteraciones aprox. por release plan. Iteraciones de duración fija. No se realiza ninguna tarea no programada para la iteración. Keep it simple. La refactorización lo soluciona. El plan de iteración se compone de las historias de usuario definidas en el pan de release, más los test de aceptación previos que fallaron. Cada tarea se estima de 1 a 3 días. El desarrollador que implementa es el que estima El desarrollador que implementa no es intercambiable.

XP: Programación Extrema Planning Game. Plan de Iteración Al inicio de cada iteración se realiza la iteration planning meeting. El cliente selecciona la historia de usuario y/o testeos de aceptación fallidos a incluir, teniendo en cuenta la velocidad del proyecto. Se definen las tareas a realizar. Cada programador toma la/s tareas a realizar, y estima el tiempo. Se contraponen estos tiempos con la velocidad del proyecto. Según el resultado de los tiempos el cliente puede cambiar su elección inicial.

XP: Programación Extrema Video 1. Planning game. Video 2. Development.

Debate Casos Reales

Recursos www.fernandosoriano.com.ar www.wikipedia.com www.extremeprogramming.org www.craiglarman.com www.martinfowler.com www.scottambler.com www.ibm.com/developerworks

Ciclo de Ingeniería de Software Desarrollo Iterativo de Software Aplicaciones Cliente Servidor Aplicaciones OO Universidad FASTA 2008 Licencia