Ingeniería del Software

Slides:



Advertisements
Presentaciones similares
EL PROCESO DE DESARROLLO DEL SOFTWARE
Advertisements

Ciclo de vida de desarrollo de software
Desarrollo en espiral.
SISTEMAS II CICLO DE VIDA.
Ciclo de Vida del Software
Metodologías ágiles.
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
SISTEMAS II CICLO DE VIDA.
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Rational Unified Process (RUP)
Proceso de Originación de Crédito: Banco de los Alpes
Modelos de Proceso del Software
Ingeniería del Software
Aspectos Avanzados de la Tecnología de Objetos
Erique Gaspar, Carlos Alfredo
Desarrollo Orientado a Objetos con UML
HERRAMIENTAS CASE.
Análisis y Diseño de Sistemas
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
Ingeniería de Software
Ingeniería de Software Orientado a Objetos
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Rational Unified Process (RUP)
Ingenieria de software
Ciclo de Vida del Software Paradigmas de Desarrollo
5.3 APROXIMACIONES AL DISEÑO
Gestión de Proyectos Informáticos Sesión N° 5 Ciclo de Vida de un Proyecto Roberto Jijena I.
Contexto Proyecto consolidado dentro de la línea de investigación de Sistemas de Información en el Dpto. de Ingeniería en Sistemas de Información de la.
Metodología para el desarrollo de Software educativo POO
Tema 1: Introducción al análisis y diseño de aplicaciones software
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería del Software
Ingeniería de Software: Parte 2 Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
Ingeniería de Software I
Rational Unified Process
INTRODUCCIÓN AL PROCESO UNIFICADO DE DESARROLLO DESOFTWARE
Ciclo de Vida del Software Paradigmas de Desarrollo
INGENIERIA DE SOFTWARE
Metodología de Desarrollo Unidad Educativa Bolívar Sebastián Torres 6° 18°
Alexander Aristizabal Ángelo flores herrera
Introducción a UML Departamento de Informática Universidad de Rancagua
Conceptos Fundamentales
PROCESO UNIFICADO.
Proceso de desarrollo de software Pablo Gervás F. Informática, UCM, noviembre 2007.
UML.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Relación con otras asignaturas del plan de estudio
METODOLOGIAS DE DESARROLLO DE SOFTWARE
PROCESOS DE DESARROLLO DE SOFTWARE
Actividades en el Proceso de desarrollo de Software
Modelo Prescriptivos de proceso
Estructurar tus ideas para hacerlas realidad
Ciclo de Vida del Software
Proceso de desarrollo de Software
CONCEPTO DE CICLO DE VIDA 1 En los departamentos de Sistemas se debe definir un marco de referencia común que debe ser:  Pueda ser empleado por todos.
Fundamentos de Computación
Software de Comunicaciones
Modelo de procesos de software
ELO-329: Diseño y Programación Orientados a Objetos1 Proceso de Desarrollo de SW Agustín J. González ElO329: Diseño y Programación Orientados a Objeto.
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Modelado Orientado a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006.
1 Tema 2: Introducción al proceso unificado de desarrollo de software.
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
Entregables del Proyecto
Universidad Nacional de Ingeniería Comprendiendo los Fundamentos de
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Fase de Inicio Proceso Unificado de Desarrollo de Software.
Transcripción de la presentación:

Ingeniería del Software El Proceso de Desarrollo de Software Ciclos de vida Métodos de desarrollo de software El Proceso Unificado de Desarrollo de Software

Ingeniería del Software Fases principales del desarrollo de software Captura de requerimientos: cuál es el problema? análisis: qué debe hacerse? qué sistema debemos construir? diseño: cómo podemos solucionar el problema? codificación: trasladar el diseño a programas... pruebas: ... que funcionen... mantenimiento: ... y que pueden estar sujetos a posibles modificaciones o mejoras posteriores!

Ingeniería del Software Ciclo de vida en cascada Análisis Diseño Codificación Pruebas Mantenimiento

Ingeniería del Software Ciclo de vida en cascada A veces no se dispone de las especificaciones correctas ni completas al principio de la fase de desarrollo Imprecisión del SI a desarrollar Se identifican nuevas necesidades! Falta de (buena) comunicación! + Se identifican y separan las distintas tareas + No se empieza una fase hasta terminar la anterior + Se pospone la implementación

Ingeniería del Software Otros ciclos de vida Hay otras formas de organizar el ciclo de vida del desarrollo del software. Cada una tiene sus ventajas e inconvenientes. Modelo con Prototipos: se construye un sistema muy elemental, se muestra al cliente, se clarifican los requisitos, se mejora ... “extreme programming” Modelo en Espiral: similar al anterior, pero con un ciclo de vida en cascada completo para cada prototipo. Modelo iterativo e incremental: construir un buen sistema pero de funcionalidad reducida, se entrega, se completan las funcionalidades extra.

Ingeniería del Software IS como proceso formal Lo importante es formalizar el proceso. Un proyecto debe adoptar un patrón de desarrollo. Este patrón define las fases del ciclo de vida y sus entregas o productos. Este proceso da estructura al proyecto, ayudando a su gestión y proporcionando una guía a sus desarrolladores. También proporciona una forma natural de comparar proyectos (y problemas) y aprender de la experiencia.

Ingeniería del Software Métodos de desarrollo de IS Se han propuesto varios métodos de IS. Un método debería contemplar: un proceso de desarrollo un lenguaje de notación Una colección de herramientas CASE (Computer-Aided Software Engineering) Un método debería ser suficientemente general para permitir su adaptación a un problema particular o una metodología de programación concreta.

Ingeniería del Software IS Orientada a Objetos (SIOO) Se han propuesto distintos métodos SIOO. Los tres métodos principales han sido: el método Booch El método OMT (Object Modelling Technique) desarrollado por Rumbaugh et. al. el método Jacobson (OOSE) Cada uno de ellos propone un proceso, una notación y sus herramientas de soporte.

Ingeniería del Software El método OMT La fase de análisis elabora tres modelos distintos: El modelo objeto: cuáles son las clases y objetos del sistema y cómo están relacionados? El modelo dinámico: cómo interaccionan los objetos entre ellos? El modelo funcional: cómo fluyen los datos a través del sistema, y qué restricciones debe satisfacer el sistema?

Ingeniería del Software El método Booch Se da énfasis a la evolución: el resultado de cada fase es refinada en la siguiente fase. Los documentos Booch incluyen: Diagramas de clases y objetos Diagramas de transición entre estados Diagramas de interacción Los programas Orientados a Objetos encajan bien con un desarrollo evolutivo. Los objetos del mundo real mencionados en los requerimientos evolucionan hasta convertirse en objetos en la implementación. A medida que avanza el desarrollo se detallan (completan) mejor los objetos y las relaciones entre ellos.

Ingeniería del Software El Lenguaje UML (Unified Modelling Language) Industrialización 09/1997 UML 1.1 Estandarización 01/1997 UML 1.0 10/1996 UML 0.91 Unificación OOPSLA 95 Unified Method 0.8 Booch’93 OMT-2 Fragmentación Otros métodos Booch’91 OMT-1 OOSE

Ingeniería del Software El triangulo del éxito Notación (p.e. UML) Proceso (p.e. PUD) Herramienta (p.e. Rational Rose)

Ingeniería del Software El Proceso Unificado de Desarrollo Proceso de desarrollo que combina un conjunto de “buenas prácticas”: Orientado a objetos Guiado por casos de uso Desarrollo dirigido por el riesgo Centrado en la arquitectura Con in ciclo de vida iterativo e incremental

Ingeniería del Software El Proceso Unificado de Desarrollo de Software Guiado por casos de uso Los sistemas se crean para dar servicio a usuarios Capturan requerimientos funcionales: qué debe hacer el sistema para cada usuario? Un Caso de Uso es una funcionalidad del sistema que le proporciona a algún usuario un resultado El Modelo de Casos de Uso (MCU) describe la funcionalidad completa del sistema

Ingeniería del Software El Proceso Unificado de Desarrollo de Software Desarrollo dirigido por el riesgo Abordar cuestiones de alto riesgo (complejas, vagas, etc.) en las primeras iteraciones Construir en las primeras iteraciones un núcleo consistente

Ingeniería del Software El Proceso Unificado de Desarrollo de Software Centrado en la arquitectura La arquitectura del sistema da una idea de qué forma tiene el sistema completo Conviene pensar en la forma del sistema que se está construyendo: ordenadores necesarios, SOs, SGBDs, comunicaciones, etc.

Ingeniería del Software El Proceso Unificado de Desarrollo de Software Ciclo de vida iterativo e incremental El desarrollo de un proyecto se divide en iteraciones Cada iteración es como un mini proyecto Tiene una duración fija (p.e. de 2 a 6 semanas) Incluye sus fases de captura de requisitos, análisis, diseño, implementación, pruebas ... Cada iteración produce un resultado mejorado: Más detallado Añade alguna nueva funcionalidad Puede ser probado, integrado, ejecutado, etc. Es incompleto

Ingeniería del Software Fases del Proceso Unificado de Desarrollo El PUD agrupa las iteraciones en: Inicio: análisis del negocio, alcance, visión aproximada Elaboración: implementación iterativa del núcleo central del sistema, resolución de riesgos altos, visión refinada, identificación de más requisitos, nuevo alcance Construcción: implementación iterativa del resto de requisitos de menor riesgo, preparación para la implantación Transición: pruebas beta, implantación

Ingeniería del Software Ciclo de vida del Proceso Unificado de Desarrollo Fases Iteraciones Disciplinas Iteración 1 Iteración i ... Inicio Planificación Captura Requisitos Análisis Diseño Implementación Pruebas Evaluación Iteración i+1 Iteración j ... Elaboración Iteración j+1 Iteración k ... Construcción Iteración k+1 Iteración N ... Transición

Ingeniería del Software Ciclo de vida del Proceso Unificado de Desarrollo Inicio Elaboración Construcción Transición Captura de Requisitos Análisis Diseño Pruebas Implementación

Ingeniería del Software Iteración y entregas en PUD Planificación de la Iteración Captura de requerimientos: Modelo de casos de uso, Modelo de Dominio, ... Análisis: Diagrama de secuencia del sistema, Contratos, Modelo Conceptual... Diseño: Diagramas de interacción, Diagrama de Clases Implementación: Código fuente (Clases y métodos) Pruebas: verificación de la implementación Evaluación de la iteración