• No se han encontrado resultados

Ciclo de Ingeniería de Software

N/A
N/A
Protected

Academic year: 2021

Share "Ciclo de Ingeniería de Software"

Copied!
43
0
0

Texto completo

(1)

Ciclo de Ingeniería de Software

Desarrollo Iterativo de Software

Aplicaciones Cliente Servidor

Aplicaciones OO

Universidad FASTA

2008

(2)

Desarrollo Iterativo de Software

Contenido

– Introducción

– Conceptos

– Planificación

– Calidad del Software

– Caso real, RUP

– Caso real, XP

(3)

Desarrollo Iterativo de Software

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

(4)

Desarrollo Iterativo de Software

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.

(5)

Desarrollo Iterativo de Software

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,

(6)

Desarrollo Iterativo de Software

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

(7)

Desarrollo Iterativo de Software

● Análisis del dominio. Entender,

investigar.

● Análisis del software. No debe ser

incompleto, ni haber ambiguedades o contradicciones. ● Especificación. ● Arquitectura de software. ● Construcción. ● Testing. ● Deploy. ● Documentación. ● Capacitación. ● Soporte. ● Mantenimiento.

Introducción

(8)

Desarrollo Iterativo de Software

Introducción

Procesos de Desarrollo de Software, hay para elegir.

Cascada Espiral MDD UP XP FDD Prototype ATAM SCRUM

(9)

Desarrollo Iterativo de Software

Introducción

Procesos de Desarrollo de Software, hay para elegir.

(10)

Desarrollo Iterativo de Software

Introducción

Procesos de Desarrollo de Software, hay para elegir.

Cuál elegir? Cascada Espiral UP XP FDD Prototype ATAM SCRUM MDD EL MAS CONVENIENTE

(11)

Desarrollo Iterativo de Software

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

(12)

Desarrollo Iterativo de Software

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

(13)

Desarrollo Iterativo de Software

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.

(14)

Desarrollo Iterativo de Software

Introducción

Problemas de la Ingeniería de Software

Fuente: Standish Group www.standishgroup.com

1995

16% en tiempo y

forma

52% sobrepasados

32% fallidos

(U$S 81b)

2003

34% en tiempo y

forma

51% sobrepasados

15% fallidos

(15)

Desarrollo Iterativo de Software

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

(16)

Desarrollo Iterativo de Software

Fuente: VersionOne.com

Introducción

(17)

Desarrollo Iterativo de Software

Introducción

Modelos Iterativos RUP (1999) SCRUM (1986) ESPIRAL (1988) XP (1999)

(18)

Desarrollo Iterativo de Software

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

(19)

Desarrollo Iterativo de Software

Conceptos

● Adaptable, no predictivo.

● Iteración ● Iterativo

● Estado de aceptación de un software ● Incremental

(20)

Desarrollo Iterativo de Software

Conceptos

● Adaptable, no predictivo.

● Iteración

● Iterativo

● Estado de aceptación de un software ● Incremental

(21)

Desarrollo Iterativo de Software

Conceptos

● Adaptable, no predictivo. ● Iteración

● Iterativo

● Estado de aceptación de un software ● Incremental

(22)

Desarrollo Iterativo de Software

Conceptos

● Adaptable, no predictivo. ● Iteración

● Iterativo

● Estado de aceptación de un software

● Incremental

(23)

Desarrollo Iterativo de Software

Conceptos

● Adaptable, no predictivo. ● Iteración

● Iterativo

● Estado de aceptación de un software

● Incremental

(24)

Desarrollo Iterativo de Software

Conceptos

● Adaptable, no predictivo. ● Iteración

● Iterativo

● Estado de aceptación de un software ● Incremental

(25)

Desarrollo Iterativo de Software

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

(26)

Desarrollo Iterativo de Software

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

(27)

Desarrollo Iterativo de Software

RUP: Proceso Unificado de Rational

● Basado en UP: Iterativo e incremental

● Dirigido por casos de uso

● Centrado en la arquitectura

(28)

Desarrollo Iterativo de Software

(29)

Desarrollo Iterativo de Software

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.

(30)

Desarrollo Iterativo de Software

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

(31)

Desarrollo Iterativo de Software

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.

(32)

Desarrollo Iterativo de Software

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

(33)

Desarrollo Iterativo de Software

XP: Programación Extrema

● Fundado con 4 valores

– Comunicación

– Simplicidad

– Feedback

(34)

Desarrollo Iterativo de Software

XP: Programación Extrema

● Fundado sobre 12 prácticas

– Intengración contínua

– No hay dueños de código

– Estándares de codificación

– Metáforas

– 40 Hs

– Planning game

– Versiones pequeñas

– Testeos de aceptación de usuario – Diseño simple

– Programación de a pares

– Desarrollo orientado al testing –

TDD

(35)

Desarrollo Iterativo de Software

(36)

Desarrollo Iterativo de Software

(37)

Desarrollo Iterativo de Software

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

(38)

Desarrollo Iterativo de Software

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

(39)

Desarrollo Iterativo de Software

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

(40)

Desarrollo Iterativo de Software

XP: Programación Extrema

● Video 1. Planning game.

(41)

Desarrollo Iterativo de Software

(42)

Desarrollo Iterativo de Software

Recursos

● www.FernandoSoriano.com.ar ● www.WikiPedia.com ● www.ExtremeProgramming.org ● www.CraigLarman.com ● www.MartinFowler.com ● www.ScottAmbler.com ● www.ibm.com/developerworks

(43)

Ciclo de Ingeniería de Software

Desarrollo Iterativo de Software

Aplicaciones Cliente Servidor

Aplicaciones OO

Universidad FASTA

2008

Referencias

Documento similar

Debido al riesgo de producir malformaciones congénitas graves, en la Unión Europea se han establecido una serie de requisitos para su prescripción y dispensación con un Plan

Como medida de precaución, puesto que talidomida se encuentra en el semen, todos los pacientes varones deben usar preservativos durante el tratamiento, durante la interrupción

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)