Metodologias modernas para el desarrollo de software

21
METODOLOGÍAS DE DESARROLLO DE SOFTWARE

description

 

Transcript of Metodologias modernas para el desarrollo de software

Page 1: Metodologias modernas para el desarrollo de software

METODOLOGÍAS DE

DESARROLLO DE SOFTWARE

Page 2: Metodologias modernas para el desarrollo de software

Software

Es el conjunto de programas y procedimientos necesarios para hacer posible la realización de

una tarea especifica

Page 3: Metodologias modernas para el desarrollo de software

Tipos del software

Software de sistema

Software de programación

Software de aplicación

es la parte que permite funcionar al hardware .

Proporciona herramientas para ayudar al programador a

escribir programas

informáticos y a buscar

diferentes lenguajes de

programación.

Permite a los

usuarios llevar a

cabo una o varias tareas

mas especificas

.

Page 4: Metodologias modernas para el desarrollo de software

Lenguaje de programaciónEs un lenguaje que puede ser utilizado para controlar el comportamiento de una maquina , particularmente de una computadora Se clasifican

en:

Lenguajes de bajo nivel:Se acercan al funcionamiento de una computadora.Lenguajes de medio nivel:sus cualidades que los hacen un lenguaje mas cercano al hombreLenguajes de alto nivel: Están formados por elementos de lenguajes naturales .

Lenguajes compilados:Son aquellos cuya función es traducir un programa escrito en determinado lenguaje a un idioma que la computadora entienda.Lenguajes interpretados: elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa.

Lenguajes imperativos : son un conjunto de instrucciones que le indican al computador cómo realizar una tarea. Lenguajes declarativos: está basado en el desarrollo de programas especificando "un conjunto de condiciones, proposiciones y afirmaciones que describen el problema y detallan su solución Funcionales: se pueden realizar programas usando exclusivamente funciones definidas por el usuarioLógicos: consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de lenguaje de programación.

Lenguajes orientados a objetos:

Según el nivel de abstracción

Según la forma de ejecución

Según el paradigma de programación

Page 5: Metodologias modernas para el desarrollo de software

SOFTWARE

ETIMOLOGIA

CODIFICACION

Software (pronunciación AFI:[soft'ɣware]) es una palabra proveniente del inglés (literalmente: partes blandas o suaves), que en español no posee una traducción adecuada al contexto, por lo cual se la utiliza asiduamente sin traducir y así fue admitida por la Real Academia Española(RAE).Aunque no es estrictamente lo mismo, suele sustituirse por expresiones tales como programas (informáticos) o aplicaciones (informáticas).Software es lo que se denomina producto en Ingeniería de Software

Código objeto

Código fuente

Contiene el conjunto de instrucciones codificadas en algún lenguaje de alto nivel

Contiene el conjunto de instrucciones codificadas en algún lenguaje de alto nivel

por ejemplo se tardaría más tiempo en codificar un algoritmo en lenguaje ensamblador que el mismo programado en lenguaje C.

Page 6: Metodologias modernas para el desarrollo de software

METODOLOGIA

“Conjunto de actividades necesarias para transformar los requisitos de los

usuarios en un sistema software“

Page 7: Metodologias modernas para el desarrollo de software

DUM

Características:Proporciona una guía para las actividades de

un equipo de desarrollo.Dirige las tareas de cada desarrollador por

separado y del equipo en conjunto.Especifica los productos que deben

desarrollarse.Ofrece criterios para el control, medición de los

productos y actividades del proyecto.

Desarrollo Unificado con Métrica

Page 8: Metodologias modernas para el desarrollo de software

DUMLas cuatro primeras fases (Inicio,

elaboración, construcción, transición) atraviesan cinco flujos de trabajo que son conocidos como iteración:

1.Captura de requisitos.2.Análisis.3.Diseño.4.Implementación.5.Prueba.

Page 9: Metodologias modernas para el desarrollo de software

Principales metodologías de software 1968 Conceptos sobre la programación estructurada de DIJKSTRA 1974 Técnicas de programación estructurada de WARNIER y JACKSON 1975 Primeros conceptos sobre diseño estructurado de MYERS y

YOURDON 1977 Primeros conceptos sobre análisis estructurado GANE y SARSON 1978 Análisis estructurado: DEMARCO y WEINBERG Nace MERISE 1981 SSADM (versión inicial) Information Engineering (versión inicial) 1985 Análisis y Diseño estructurado para sistemas de tiempo real de WARD y MELLOR 1986 SSADM Versión 3 1987 Análisis y Diseño estructurado para sistemas de tiempo real de HATLEY y PIRHBAY 1989 METRICA (versión inicial) 1990 SSADM Versión 4 1993 METRICA Versión 2 1995 METRICA Versión 2.1

Page 10: Metodologias modernas para el desarrollo de software

Metodologías estructuradas

METODOLOGIAS ORIENTADAS A PROCESOS

Especificación estructurada:Diagramas de Flujo de DatosDiccionario de DatosEspecificaciones de procesos

Page 11: Metodologias modernas para el desarrollo de software

metodologías modernas para el desarrollo de software

Page 12: Metodologias modernas para el desarrollo de software

Rapid Application Development (Desarrollo rápido de aplicaciones – RAD )El RAD es un proceso de desarrollo de software, desarrollado inicialmente por James Martin en 1980. El método comprende el desarrollo iterativo, la construcción de prototipos y el uso de utilidades CASE. Tradicionalmente, el desarrollo rápido de aplicaciones tiende a englobar también la usabilidad, utilidad y la rapidez de ejecución

El Desarrollo Rápido de Aplicaciones (DRA) (Rapid Application Development RAD) es un modelo de proceso del desarrollo del software lineal secuencial que enfatiza un ciclo de desarrollo extremadamente corto. DRA es una adaptación a “Alta velocidad” en el que se logra el desarrollo rápido utilizando un enfoque de construcción basado en componentes. Si se comprenden bien los requisitos y se limita el ámbito del proyecto, el proceso DRA permite al equipo de desarrollo crear un “sistema completamente funcional” dentro de periodos cortos de tiempo.

Page 13: Metodologias modernas para el desarrollo de software

Modelado de gestiónModelad

o de datosModelado

de ProcesosGeneración

de AplicacionesPruebas

y Volumen

De 60 a 90 días

Fases:Ventajas de RAD•Comprar puede ahorrar dinero en comparación con construir. •Los entregables pueden ser fácilmente trasladados a otra plataforma. •El desarrollo se realiza a un nivel de abstracción mayor. •Visibilidad temprana. •Mayor flexibilidad. •Menor codificación manual. •Mayor involucramiento de los usuarios. •Posiblemente menos fallas. •Posiblemente menor costo. •Ciclos de desarrollo más pequeños. •Interfaz gráfica estándar.

Page 14: Metodologias modernas para el desarrollo de software

Scrum Desarrollada por Ken Schwaber, Jeff Sutherland y Mike Beedle.Define un marco para la gestión de proyectos, que se ha utilizado con éxito durante losúltimos 10 años. Está especialmente indicada para proyectos con un rápido cambio derequisitos. Sus principales características se pueden resumir en dos. El desarrollo desoftware se realiza mediante iteraciones, denominadas sprints, con una duración de 30días. El resultado de cada sprint es un incremento ejecutable que se muestra al cliente.La segunda característica importante son las reuniones a lo largo proyecto. Éstas sonlas verdaderas protagonistas, especialmente la reunión diaria de 15 minutos del equipode desarrollo para coordinación e integración.

Page 15: Metodologias modernas para el desarrollo de software

Proceso:En Scrum un

proyecto se ejecuta en bloques temporales cortos y fijos (iteraciones de un mes natural y hasta de dos semanas, si así se necesita). Cada iteración tiene que proporcionar un resultado completo, un incremento de producto final que sea susceptible de ser entregado con el mínimo esfuerzo al cliente cuando lo solicite.

Page 16: Metodologias modernas para el desarrollo de software

Extreme Programming. (Programación extrema - XP)

¿Qué es XP? Metodología para un ágil desarrollo de

software.Programación basada en los deseos del cliente.El equipo lo conforman los jefes de proyecto,

desarrolladores y el cliente.Se rige por valores y principios.

Page 17: Metodologias modernas para el desarrollo de software

Caracteristicas de XPComunicación: Crear

software requiere de sistemas comunicados.

Simplicidad: Empezar con lo necesario y requerido y trabajar desde ahí.

Retroalimentacion: Del sistema, del cliente, y del equipo.

Valentia: Programa para hoy y no para mañana.

Respeto: El equipo debe trabajar como uno, sin hacer desiciones repentinas.

Ciclo de la XP

Page 18: Metodologias modernas para el desarrollo de software

Rational Unified Process. (Proceso Racional Unificado - 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. RUP es una guía de cómo usar UML de la forma más efectiva. RUP es un refinamiento realizado por Rational Software del más genérico Proceso Unificado.

Es una forma disciplinada de asignar tareas y responsabilidades en una empresa de desarrollo (quién hace qué, cuándo y cómo).

Es también un producto:•Desarrollado y mantenido por Rational.•Actualizado constantemente para tener en cuenta las mejores prácticas de acuerdo con la experiencia.•Su objetivo principal es asegurar la producción de software de calidad dentro de plazos y presupuestos predecibles. Dirigido por casos de uso, centrado en la arquitectura, iterativo (mini-proyectos) e incremental (versiones).

Page 19: Metodologias modernas para el desarrollo de software

Agile Unified Process. (Proceso Ágil Unificado - AUP)

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 20: Metodologias modernas para el desarrollo de software

Fases Metas Hitos

1.Inicio

Identificar el alcance inicial de proyecto, una arquitectura inicial del sistema y obtener un presupuesto inicial del proyecto y una aceptación de los involucrados.

Objetivos de Ciclo de Vida( LCO, por su siglas en inglés)

2.Elaboración Probar arquitectura del sistema.

Arquitectura del Ciclo de Vida (LCA, por su siglas en inglés)

3.Construcción

Construir un software funcional sobre una base regular e incremental, las cuales cumplan con las prioridades más importantes para los involucrados o usuarios del proyecto.

Capacidad Operacional Inicial (IOC, por su siglas en inglés)

4.TransiciónValidar y desplegar el sistema en su ambiente de la producción.

Liberación del Producto (PR, por su siglas en inglés)

Las fases son implementadas de una forma serial a lo largo de un proyecto de Agile UP. Estas fases son:

Page 21: Metodologias modernas para el desarrollo de software

Sistemas

¡Muchas gracias!

“El computador es capaz de multiplicar por mil; una estupidez humana”