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



Documentos relacionados
Tema 3 Metodologías de Desarrollo de Software

El Proceso Unificado de Desarrollo de Software

El proceso unificado en pocas palabras

Repetir el proceso para cada abstracción identificada hasta que el diseño este expresado en términos sencillos

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Unidad VI: Supervisión y Revisión del proyecto

INGENIERÍA DEL SOFTWARE I Tema 1. Introducción a la Ingeniería del Software. Univ. Cantabria Fac. de Ciencias Francisco Ruiz

Ingeniería de Software

En este capítulo se describe las herramientas, así como los procesos involucrados en el análisis y desarrollo de sistemas de información, por otro

Cristian Blanco

Ingeniería de Software

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Curso: Arquitectura Empresarial basado en TOGAF

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

Proceso Unificado de Rational

ITZOFT, una metodología de desarrollo de sistemas basada en el Proceso Unificado de Rational. Resumen

El Proceso Unificado Rational para el Desarrollo de Software.

Administración de proyectos. Organizar, planificar y programar los proyectos de software


Índice.

UNIVERSIDAD UNION BOLIVARIANA CARRERA DE INGENIERIA DE SISTEMAS

DIAGRAMA DE CLASES EN UML

UML. Lenguaje de Modelado Unificado

PRODUCTIVIDAD. Contenido. 1. Introducción. 2. Importancia de la Productividad. 3. Que es productividad? 4. Como se mide la productividad?

GESTIÓN DE LA DOCUMENTACIÓN

Análisis de Sistemas. M.Sc. Lic. Aidee Vargas C. C. octubre 2007

Propiedad Colectiva del Código y Estándares de Codificación.

INGENIERÍA DEL SOFTWARE

Metodología Orientada a Objetos Clave Maestría en Sistemas Computacionales

GESTIÓN Y CONTROL DEL DESARROLLO E IMPLANTACIÓN DE APLICACIONES

En un proyecto de desarrollo de software la metodología define Quién debe hacer Qué, Cuando y Como hacerlo. 6

Orientación Formación Profesional. 21 de abril de 2016

Diferencias entre nivel 2 y nivel 3 y una estrategia de implantación

MÉTODOS PARA DESARROLLAR SISTEMAS DE INFORMACIÓN Anexo

Ingeniería de Software: Parte 2

ISO 17799: La gestión de la seguridad de la información

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

DATOS DE IDENTIFICACION DEL CURSO DEPARTAMENTO:

GESTIÓN ESTRATÉGICA DE VERIFICACIÓN Y VALIDACIÓN: ORGANIZACIÓN Y MODELAMIENTO EMPRESARIAL

Syllabus.

ALGUNAS NOVEDADES DE LAS CONVOCATORIAS 2013 DE PROYECTOS DE I+D

GERENCIA DE INTEGRACIÓN

MANTENIMIENTO Y SOPORTE

METODOLOGÍA TRADICIONAL.

Inter American Accreditation Cooperation. Grupo de prácticas de auditoría de acreditación Directriz sobre:

MODELOS DE CALIDAD EN EL DESARROLLO DE SOFTWARE

METODOLOGÍA TRADICIONAL.

Elaboración de guías didácticas

Programa de la asignatura Curso: 2009 / 2010 ANÁLISIS E INGENIERÍA DEL SOFTWARE (1296)

Capitulo V Administración de memoria

El elearning paso a paso

Gestión de Proyectos Informáticos

5. Gestión de la Configuración del Software (GCS)

2 EL DOCUMENTO DE ESPECIFICACIONES

Propuesta de Proyecto Final Para optar al grado de Magíster en Tecnologías de la Información

Tema 1 Introducción a la Ingeniería de Software

El Software. Es lo que se conoce como el ciclo de vida del software.

Procesos Críticos en el Desarrollo de Software

MARCO DE REFERENCIA PARA LA GESTIÓN DE TI EN EL ESTADO COLOMBIANO

Curso Auditor Interno Calidad

REGLAMENTO DE LOS SERVICIOS DE PREVENCIÓN. RD 39/1997, de 17 de enero

La transnacionalidad en los proyectos comunitarios

Los requisitos de accesibilidad en un proyecto software. Implicaciones de usuarios discapacitados en el proceso software

Gestión del equipo de trabajo del almacén

Operación 8 Claves para la ISO

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

ANÁLISIS Y DISEÑO DE SISTEMAS

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.1 UML: Introducción

Unidad I: Introducción a la gestión de proyectos

FUNDACIÓN DÉDALO PARA LA SOCIEDAD DE LA INFORMACIÓN. - Acompañamiento TIC -

Figure 16-1: Phase H: Architecture Change Management

PLAN DE AUDITORIA. La auditoria no busca culpables, busca la mejora de los procesos y servicios de la Entidad.

DECRETO SUPREMO Nº 170/09

Unidad 9. Entornos de Desarrollo

Orientación Diseño Industrial Asignatura: DIRECCION DE PROYECTOS 6 año

Aprender español vía proyectos en niveles avanzados: una experiencia docente

ANÁLISIS DE PROPUESTAS CURRICULARES. El planteamiento curricular presenta varios aspectos interesantes, como por ejemplo:

4. Alcance de un proyecto

DOCUMENTO VISIÓN SISTEMA DE VENTAS Y PRÉSTAMOS DE LA CINEMATECA BOLIVIANA PAWI. Versión 1.0. Aruquipa Mamani Rolando Willy

Ingeniería de Software I

Organización como función administrativa Resumen para Administración y Gestión Profesor: Gonzalo V.

1 FUNDAMENTACION DE LA MATERIA

Asegurando el valor de las aplicaciones para el negocio PERSPECTIVA. j u n i o

JAVATO: UN FRAMEWORK DE DESARROLLO JAVA LIBRE

LA METODOLOGÍA DEL BANCO PROVINCIA

Plan de voluntariado. Rosario [Escribir el nombre de la compañía] [Seleccionar fecha]

Oscar Alberto, Custodio Izquierdo Carlos Arturo, Hernández Torruco José Fecha de elaboración: 28 de Mayo de 2010 Fecha de última actualización:

CAPÍTULO 2 IMPORTANCIA DE LA ASIGNATURA OUTSOURCING EN TECNOLOGÍAS DE INFORMACIÓN

Eclipse Process Framework Composer EPFC, es un editor de procesos gratuito que sirve para editar fragmentos de método, procesos o metodologías y

KAIZEN, CONCEPTOS, ALCANCES Y PROCESO KAIZEN

Gestión de proyectos y públicos

Además se recomienda su uso como herramienta de trabajo dentro de las actividades habituales de gestión.

El Futuro de la Computación en la Industria de Generación Eléctrica

Preguntas Frecuentes. Plataforma ScienTI. Aplicativos CvLAC y GrupLAC

Una Introducción al UML. El Modelo de Componentes

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

Anteproyecto Fin de Carrera

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Sistemas de Información

Conceptos básicos de Ingeniería de Software

Transcripción:

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

Introducción a los métodos de desarrollo de software. Estructura 1. Definición. 2. Beneficios. 3. Adaptación del método. 4. Características deseables. 5. Métodos ágiles. 6. Clasificación general. 7. Ejemplos de métodos.

Introducción a los métodos de desarrollo de software. Bibliografía (Piattini et al. 96) (Piattini et al. 04) Capítulo 4.

1. Definición Es necesario establecer un enfoque disciplinado y sistemático para desarrollar un proyecto de software Método (metodología) Método Notación Método Técnica Método Herramienta

Definición (II) Conjunto de pasos y procedimientos que deben seguirse para el desarrollo de software Cómo se debe dividir un proyecto en etapas. Qué tareas se llevan a cabo en cada etapa. Heurísticas para llevar a cabo dichas tareas. Qué salidas se producen y cuándo se deben producir. Qué restricciones se aplican. Qué herramientas se van a utilizar. Cómo se gestiona y controla un proyecto.

Definición (III) Conjunto de procedimientos, técnicas, herramientas, y un soporte documental que ayuda a los desarrolladores a producir nuevo software Modelo de proceso (fases y subfases, procesos, actividades, tareas) Procedimientos, que definen la forma de ejecutar las tareas y dan lugar a productos (artefactos) Técnicas (gráficas, textuales) (p.ej. DFDs, E/R) Herramientas (p.ej. System Architect, Enterprise Architect) Puede acomodar varios ciclos de vida: Ciclo de vida: qué hay que producir, no cómo Método: qué y cómo

Definición (IV) (Sommerville 2002) Un método de ingeniería de software es un enfoque estructurado para el desarrollo de software cuyo propósito es facilitar la producción de software de alta calidad de una forma costeable. Todos los métodos se basan en la idea de modelos gráficos de desarrollo de un sistema y en el uso de estos modelos como un sistema de especificación o diseño.

Definición (V) (Sommerville 2002) Componentes Descripción Ejemplo Descripciones del modelo del sistema Reglas Recomendaciones Guías en el proceso Descripciones de los modelos del sistema que se desarrollará y la notación utilizada para definir estos modelos Restricciones que siempre aplican a los modelos de sistemas Heurística que caracteriza una buena práctica de diseño en este método. Seguir estas recomendaciones debe dar como resultado un modelo del sistema bien organizado. Descripciones de las actividades que deben seguirse para desarrollar los modelos del sistema y la organización de estas actividades. Modelos de objetos, de flujo de datos, de máquina de estado, etc. Cada entidad de un modelo de sistema debe tener un nombre único Ningún objeto debe tener más de 7 subobjetos asociados a él. Los atributos de los objetos deben documentarse antes de definir las operaciones asociadas a un objeto.

2. Beneficios Sistemas de mayor calidad pero el seguimiento de una metodología no basta! Proceso de desarrollo (modelo de procesos) definido productos intermedios en cada fase mejor planificación y gestión del proyecto desarrollos más rápidos recursos adecuados Proceso estándar en la organización facilidad de cambios de personal

3. Adaptación del método No existe un método universal o ideal Métodos diferentes tienen distintas áreas donde son aplicables P.ej., los métodos OO son adecuados para sistemas interactivos, pero no para sistemas en tiempo real con requisitos severos (Sommerville 2002) El método está condicionado por el tamaño y estructura de la organización, y el tipo de aplicaciones. No es razonable pensar que dos organizaciones utilicen la misma metodología sin realizar cambios sobre ella. (entre otras razones) Proliferación de metodologías, técnicas, notaciones

4. Características deseables (Piattini et al. 04) Existencia de reglas predefinidas. Procesos, actividades, tareas, productos intermedios, técnicas, herramientas, etc. Cobertura total del ciclo de desarrollo. Verificaciones intermedias. Planificación y control. Comunicación efectiva. Uso sobre un amplio abanico de proyectos. Fácil formación.

Características deseables (II) Herramientas CASE. Debe contener actividades que mejoren el proceso de desarrollo. Soporte al mantenimiento. p.ej. reingeniería Soporte de la reutilización del software no sólo reutilización de código En muchos dominios, no debería ser muy burocrático Métodos ágiles

5. Métodos ágiles (Sommerville 2004) En los 80 y principios de los 90, existía un acuerdo generalizado en que la mejor forma de desarrollar buen software era a través de: Cuidadosa planificación del proyecto Formalizar el aseguramiento de calidad Métodos de análisis y diseño soportados por herramientas CASE Proceso de desarrollo controlado y riguroso Procedía de la experiencia de desarrollo de sistemas software grandes, de larga vida, que estaban compuestos de un gran número de programas Muchas veces estos sistemas eran críticos Grandes equipos de desarrollo, a veces geográficamente dispersos, a veces trabajando incluso para empresas distintas P.ej., el software para un sistema de control de un avión A veces lleva diez años desde la especificación inicial al despliegue En estos sistemas era necesario una sobrecarga en planificación, diseño y documentación del sistema

Métodos ágiles (II) Qué ocurre cuando se aplican estos métodos burocráticos (heavyweight) a una aplicación de gestión de tamaño medio o pequeño? La sobrecarga de trabajo (requisitos, diseño, documentación) domina el proceso de desarrollo Se dedica más tiempo a cómo el sistema será desarrollado que a programación y prueba Cada vez que cambia un requisito hay que hacer mucho trabajo de rediseño y redocumentación Insatisfacción del cliente y del equipo de desarrollo A finales de los 90, aparecen métodos ágiles (lightweight) como extreme programming (Beck 2000) Atención al software más que al diseño y la documentación Iterativos e incrementales

Métodos ágiles (III) (Sommerville 2004) Principios de los métodos ágiles Implicación del cliente Entrega incremental Personas, no proceso Asumir el cambio Mantener la simplicidad Descripción Los clientes deberían estar muy involucrados en el proceso de desarrollo. Deben proporcionar y otorgar prioridades a los nuevos requisitos del sistema y evaluar las iteraciones del sistema. El software es desarrollado en incrementos, y es el cliente el que especifica los requisitos que se deben incluir en cada incremento. Las destrezas del equipo de desarrollo deben ser reconocidas, y se les debe sacar partido. Los miembros del equipo deberían poder usar sus propias formas de trabajo (creatividad) en lugar de trabajar con procesos prescriptivos. Ser consciente de que los requisitos del sistema cambiarán, de manera que se debe diseñar el sistema para acomodar esos cambios. El enfoque debe estar en la simplicidad, tanto en el software como en el proceso de desarrollo. Donde sea posible, trabajar activamente para eliminar la complejidad del sistema.

Métodos ágiles (IV) Cuándo son útiles? (Sommerville 2004) Útiles para aplicaciones de gestión y productos software de tamaño pequeño o medio con requisitos que cambian rápidamente durante el proceso de desarrollo No son útiles en desarrollo de software de gran escala con equipos de desarrollo en lugares distintos y con interacciones complejas con otros sistemas software y hardware. Tampoco son útiles en sistemas críticos en los que es necesario un análisis detallado de los requisitos del sistema para comprender las implicaciones de seguridad (security y safety) Con los métodos ágiles, se puede articular el SRS como contrato con los clientes?

6. Clasificación de métodos Adaptado de (Piattini et al.) ENFOQUE TIPO DE SISTEMA FORMALIDAD FILOSOFÍA ESTRUCTURADOS Orientados a procesos Orientados a datos Jerárquicos No jerárquicos Mixtos GESTIÓN NO FORMAL ÁGIL OO TIEMPO REAL FORMAL CONVENCIONAL

Clasificación de métodos (II) Estructurados: representan los procesos, flujos y estructuras de datos, de una manera jerárquica, descendente Ven el sistema como entradas-proceso-salidas Orientados a procesos: se centran en la parte proceso constan de (fundamentalmente) DFDs, DD, miniespecificaciones de proceso, E-R/DED Orientados a datos: se orientaban más a las entradas y salidas primero se definían los datos a partir de ellos, los componentes procedimentales Los datos son más estables

7. Ejemplos de métodos Orientados a procesos: Análisis estructurado - De Marco 79, Gane & Sarson 79 Análisis estructurado moderno - Yourdon 89 SSADM Reino Unido Merise - Francia MÉTRICA 2.1 España Orientados a datos: JSP/JSD Jackson Warnier 74 Ágiles: XP, Extreme Programming - Beck 99 SCRUM Cristal FDD, Feature Driven Development - Palmer y Feslsing 02 Modelado Ágil - Ambler 02 Orientados a objetos: OMT - Rumbaugh et al. 91 Booch 94 Objectory/OOSE - Jacobson et al. 93 FUSION - Coleman 94 OOram - Reenskaug 96 Proceso Unificado - Jacobson et al. 99 Rational Unified Process (RUP) - Krutchen et al. 99 Tiempo real, ambos orientados a procesos: Ward & Mellor 85 Hatley & Pirbhay 87