25
Metodología de desarrollo de software En ingeniería de software es un marco de trabajo usado para estructurar, planificar y controlar el proceso de desarrollo en sistemas de información.

Metodología de desarrollo de software

Embed Size (px)

Citation preview

Page 1: Metodología de desarrollo de software

Metodología de desarrollo de software

En ingeniería de software es un marco de trabajo usado para

estructurar, planificar y controlar el proceso de desarrollo en sistemas

de información.

Page 2: Metodología de desarrollo de software

Introducción

Una metodología de desarrollo de software se refiere a un framework que es usado para estructurar, planear y controlar el proceso de desarrollo en sistemas de información.

A lo largo del tiempo, una gran cantidad de métodos han sido desarrollados diferenciándose por su fortaleza y debilidad.

Page 3: Metodología de desarrollo de software

Historia

El desarrollo de los sistemas tradicionales de ciclo de vida se originó en la década de 1960 para desarrollar a gran escala funcional de sistemas de negocio en una época de grandes conglomerados empresariales. La idea principal era continuar el desarrollo de los sistemas de información en una muy deliberada, estructurada y metódica, reiterando cada una de las etapas del ciclo de vida. Los sistemas de información en torno a las actividades resueltas pesadas para el procesamiento de datos y rutinas de cálculo.

Page 4: Metodología de desarrollo de software

1970s Programación estructurada sol desde 1969 Programación estructurada Jackson desde 1975

1980s Structured System Analysis and Desing Methodology (SSADM)

desde 1980 Structured Analysis and Desing Technique (SADT) desde 1980 Ingeniería de la información (IE/IEM) desde 1981

1990s Rapid application development (RAD) desde 1991. Programacion orientada a objetos (OOP) a lo largo de la década

de los 90's Virtual finite state state machine (VFSM) desde 1990s Dynamic System Development Method desarrollado en UK

desde 1995. Scrum (desarrollo), en la última parte de los 90's Rational Unified Process (RUP) desde 1999.

Nuevo milenio Extreme Programming (XP) desde 1999 Enterprise Unified Process (EUP) extensiones RUP desde 2002 Constructionist desing methodology (CDM) desde 2004 por

Kristinn R. Thórisson. Agile Unified Process (AUP) desde 2005 por Scott Ambler

Page 5: Metodología de desarrollo de software

Enfoques de desarrollo de software

Cada metodología de desarrollo de software tiene más o menos su propio enfoque para el desarrollo de software. Estos son los enfoques más generales, que se desarrollan en varias metodologías específicas. Estos enfoques son los siguientes: Modelo en cascada: Framework lineal. Prototipado: Framework iterativo. Incremental: Combinación de framework lineal e iterativo. Espiral: Combinación de framework lineal e iterativo. RAD: Rapid Application Development, framework

interactivo.

Page 6: Metodología de desarrollo de software

Enfoques de desarrollo de software

Page 7: Metodología de desarrollo de software

Modelo en cascada

Es un proceso secuencial de desarrollo en el que los pasos de desarrollo son vistos hacia abajo (como en una cascada de agua) a través de las fases de análisis de las necesidades, el diseño, implementación, pruebas (validación), la integración, y mantenimiento. La primera descripción formal del modelo de cascada se cita a menudo a un artículo publicado por Winston Royce W. en 1970, aunque Royce no utiliza el término "cascada" de este artículo.

Page 8: Metodología de desarrollo de software

Los principios básicos del modelo de cascada son los siguientes:

El proyecto está dividido en fases secuenciales, con cierta superposición y splashback aceptable entre fases.

Se hace hincapié en la planificación, los horarios, fechas, presupuestos y ejecución de todo un sistema de una sola vez.

Un estricto control se mantiene durante la vida del proyecto a través de la utilización de una amplia documentación escrita, así como a través de comentarios y aprobación / signoff por el usuario y la tecnología de la información de gestión al final de la mayoría de las fases antes de comenzar la próxima fase.

Page 9: Metodología de desarrollo de software

Prototipado

El prototipado es el framework de actividades dedicada al desarrollo de software prototipo, es decir, versiones incompletas del software a desarrollar.

Page 10: Metodología de desarrollo de software

Incremental

Provee una estrategia para controlar la complejidad y los riesgos, desarrollando una parte del producto software reservando el resto de aspectos para el futuro.

Page 11: Metodología de desarrollo de software

Los principios básicos son: Una serie de mini-Cascadas se llevan a cabo,

donde todas las fases de la cascada modelo de desarrollo se han completado para una pequeña parte de los sistemas, antes de proceder a la próxima incremental

Se definen los requisitos antes de proceder con la evolutivo, se realiza un mini-Cascada de desarrollo de cada uno de los incrementos del sistema

El concepto inicial de software, análisis de las necesidades, y el diseño de la arquitectura y colectiva básicas se definen utilizando el enfoque de cascada, seguida por iterativo de prototipos, que culmina en la instalación del prototipo final.

Page 12: Metodología de desarrollo de software

Espiral Los principios básicos son:

La atención se centra en la evaluación y reducción del riesgo del proyecto dividiendo el proyecto en segmentos más pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo, así como ofrecer la oportunidad de evaluar los riesgos y con un peso de la consideración de la continuación del proyecto durante todo el ciclo de vida.

Cada viaje alrededor de la espiral atraviesa cuatro cuadrantes básicos: (1) determinar objetivos, alternativas, y desencadenantes de la iteración; (2) Evaluar alternativas; Identificar y resolver los riesgos; (3) desarrollar y verificar los resultados de la iteración, y (4) plan de la próxima iteración.

Cada ciclo comienza con la identificación de los interesados y sus condiciones de ganancia, y termina con la revisión y examinación.

Page 13: Metodología de desarrollo de software

Rapid Application Development (RAD)

El desarrollo rápido de aplicaciones (RAD) es una metodología de desarrollo de software, que implica el desarrollo iterativo y la construcción de prototipos. El desarrollo rápido de aplicaciones es un término originalmente utilizado para describir un proceso de desarrollo de software introducido por James Martín en 1991.

Page 14: Metodología de desarrollo de software

Principios básicos: Objetivo clave es para un rápido desarrollo y entrega de una alta

calidad en un sistema de relativamente bajo costo de inversión. Intenta reducir el riesgo inherente del proyecto partiéndolo en

segmentos más pequeños y proporcionar más facilidad de cambio durante el proceso de desarrollo.

Orientación dedicada a producir sistemas de alta calidad con rapidez, principalmente mediante el uso de iteración por prototipos (en cualquier etapa de desarrollo), promueve la participación de los usuarios y el uso de herramientas de desarrollo computarizadas. Estas herramientas pueden incluir constructores de Interfaz grafica de usuario (GUI), Computer Aided Software Enginnering (CASE) las herramientas, los sistemas de gestión de base de datos (DBMS), lenguajes de programación de cuarta generación, generadores de código, y técnicas orientada a objetos.

La participación activa de los usuarios es imprescindible. Iterativamente realiza la producción de software, en lugar de

enfocarse en un prototipo. Produce la documentación necesaria para facilitar el futuro

desarrollo y mantenimiento.

Page 15: Metodología de desarrollo de software

Proceso Unificado de Rational El Proceso Racional Unificado (Rational Unified Process en

inglés, habitualmente resumido como RUP) es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.

El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.

También se conoce por este nombre al software desarrollado por Rational, hoy propiedad de IBM, el cual incluye información entrelazada de diversos artefactos y descripciones de las diversas actividades. Está incluido en el Rational Method Composer (RMC), que permite la personalización de acuerdo con las necesidades.

Originalmente se diseñó un proceso genérico y de dominio público, el Proceso Unificado, y una especificación más detallada, el Rational Unified Process, que se vendiera como producto independiente.

Page 16: Metodología de desarrollo de software

Principios de desarrollo

El RUP está basado en 6 principios clave que son los siguientes: Adaptar el proceso Equilibrar prioridades Demostrar valor iterativamente Colaboración entre equipos Elevar el nivel de abstracción Enfocarse en la calidad

Page 17: Metodología de desarrollo de software

Principales características

Forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo y cómo)

Pretende implementar las mejores prácticas en Ingeniería de Software

Desarrollo iterativo Administración de requisitos Uso de arquitectura basada en componentes Control de cambios Modelado visual del software Verificación de la calidad del software

Page 18: Metodología de desarrollo de software

Fases Establece oportunidad y alcance Identifica las entidades externas o actores con las que se trata Identifica los casos de uso

RUP comprende 2 aspectos importantes por los cuales se establecen las disciplinas: 'Proceso': Las etapas de esta sección son: (Revise nuevamente la

gráfica) Modelado de negocio Requisitos Análisis y Diseño Implementación Pruebas Despliegue

Soporte: En esta parte nos encontramos con las siguientes etapas: Gestión del cambio y configuraciones Gestión del proyecto Entorno

Page 19: Metodología de desarrollo de software

Comentarios sobre Alcance del RUP

La metodología RUP es más apropiada para proyectos grandes (Aunque también pequeños), dado que requiere un equipo de trabajo capaz de administrar un proceso complejo en varias etapas. En proyectos pequeños, es posible que no se puedan cubrir los costos de dedicación del equipo de profesionales necesarios

Page 20: Metodología de desarrollo de software

Programación extrema (XP)

Es el más destacado de los procesos ágiles de desarrollo de software. Al igual que éstos, la programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Se puede considerar la programación extrema como la adopción de las mejores metodologías de desarrollo de acuerdo a lo que se pretende llevar a cabo con el proyecto, y aplicarlo de manera dinámica durante el ciclo de vida del software.

Page 21: Metodología de desarrollo de software

Valores

Los Valores originales de la programación extrema son: Simplicidad: Comunicación: Retroalimentación (feedback):. Coraje o valentía: Respeto:

Page 22: Metodología de desarrollo de software

Características fundamentalesLas características fundamentales del método son: Desarrollo iterativo e incremental: pequeñas mejoras, unas tras

otras. Pruebas unitarias continuas, frecuentemente repetidas y

automatizadas, incluyendo pruebas de gestión. Programación en parejas: se recomienda que las tareas de desarrollo

se lleven a cabo por dos personas en un mismo puesto. Frecuente integración del equipo de programación con el cliente o

usuario. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo.

Corrección de todos los errores antes de añadir nueva funcionalidad. Refactorización del código, es decir, reescribir ciertas partes del

código para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento.

Propiedad del código compartida: promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto.

Simplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrá añadir funcionalidad si es necesario.

Page 23: Metodología de desarrollo de software

Agile Unified Process

El Proceso Unificado Agil de Scott Ambler o Agile Unified Process (AUP) en inglés es una versión simplificada del Proceso Unificado de Rational (RUP). Este describe de una manera simple y fácil de entender la forma de desarrollar aplicaciones de software de negocio usando técnicas ágiles y conceptos que aún se mantienen válidos en RUP. El AUP aplica técnicas ágiles incluyendo Desarrollo Dirigido por Pruebas (test driven development - TDD), Modelado Agil, Gestión de Cambios Agil, y Refactorización de Base de Datos para mejorar la productividad

Page 24: Metodología de desarrollo de software

Otros enfoques de desarrollo de software Metodologías de desarrollo Orientado a objetos, Diseña

orientado a objetos (OOD) de Grady Booch, también conocido como Análisis y Diseño Orientado a Objetos (OOAD). El modelo incluye seis diagramas: de clase, objeto, estado de transición, la interacción, módulo, y el proceso.

Top-down programming, evolucionado en la década de 1970 por el investigador de IBM Harlan Mills (y Niklaus Wirth) en Desarrollo Estructurado.

Proceso Unificado, es una metodología de desarrollo de software, basado en UML. Organiza el desarrollo de software en cuatro fases, cada una de ellas con la ejecución de una o más iteraciones de desarrollo de software: creación, elaboración, construcción, y las directrices. Hay una serie de herramientas y productos diseñados para facilitar la aplicación. Una de las versiones más populares es la de Rational Unified Process.

Page 25: Metodología de desarrollo de software

UNIVERSIDAD TECNICA “JOSE PERALTA”

ANALISIS DE SISTEMAS

Metodología de desarrollo de Software

NOMBRE:

Karina Rivera .

CATEDRATICO:

Ing. Jaime Sayago