Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías...

30
Ingeniería del Software de Gestión www.kybele.es Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión

Transcript of Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías...

Page 1: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Tema 3:

Metodologías de Desarrollo

Marcos López SanzIngeniería del Software de Gestión

Page 2: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Índice

� ¿Qué es una metodología?

� Enfoques metodológicos

� Implantación de una plataforma metodológica

Page 3: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

¿Qué es una metodología?

� Es un conjunto de procedimientos, métodos, técnicas,

herramientas y un soporte documental que ayuda a

desarrollar software

� Una metodología establece (sugiere) un camino para

desarrollar software de manera sistemática,

proporcionando un estándar de trabajo a la

organización

Page 4: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

¿Qué es una metodología?

� Una metodología define fases y actividades� Fase de análisis � actividad de análisis

� Cada actividad está compuesta de tareas� Tarea de definición de la estructura de los datos

� Cada tarea se lleva a cabo siguiendo un procedimiento o método concreto� Forma de construir el modelo conceptual (pasos que hay que dar)

� Ese procedimiento produce uno o más productos� Modelo conceptual de datos

� Para aplicar un procedimiento se puede utilizar una o más técnicas� Técnica de Chen o Técnica de De Marco

� Para la realización de la técnica podemos apoyarnos en una o más herramientas

Page 5: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Metodología, método y ciclo de vida

� Un modelo de ciclo de vida define varios procesos de software que deben ser realizados

� Una metodología puede seguir uno o varios modelos de ciclo de vida� El ciclo de vida indica qué hay que obtener en cada etapa,

pero no cómo

� Una metodología es un concepto más amplio que el de método� Existen métodos que se centran en fases del ciclo de vida:

p.ej. métodos de programación, análisis y diseño estructurado

Page 6: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

¿Qué es una metodología?

Elementos incluidos

� ¿Qué especifica una metodología?

�Cómo se debe dividir un proyecto en etapas

�Qué tareas hay que realizar en cada etapa

�Qué técnicas emplear en cada tarea

�Qué herramientas se deben utilizar

�Cómo gestionar, controlar y evaluar el proyecto

�Qué documentación y otros productos se deben generar

�Definición de responsabilidades

�Control de la calidad

Page 7: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

¿Qué es una metodología?

Conceptos

� ¿Qué es un método?

� Un método especifica en qué fases, etapas y actividades se

debe descomponer el proceso de desarrollo de un proyecto

� Para cada etapa o actividad se identifica:

� Qué se debe hacer

� Qué técnicas se deben utilizar

� Qué documentos se deben generar

� Qué control se debe hacer

Page 8: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

¿Qué es una metodología?

Conceptos

� ¿Qué es una técnica?

� Es la explicación clara y práctica de cómo se debe llevar a

cabo una actividad concreta

� Suele estar soportada por una herramienta

Page 9: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

¿Qué es una metodología?

Conceptos

� ¿Qué es una herramienta?

� Todo aquello que funciona en un ordenador y proporciona a la metodología un soporte para realizar, de forma automática o semiautomática, las actividades y tareas que define.

� Las herramientas CASE (Computer Aided Software Engineering) son un ejemplo:

� Un diagramador (Smartdraw)

� Procesador de texto (Word)

� Editor gráfico (Visio)

Page 10: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

¿Qué es una metodología?

Clasificación

� Metodología explícita:

� Metodología que está perfectamente documentada

� Subtipos: públicas y privadas

� Metodología implícita:

� Se utiliza sin estar documentada

� Se emplea sin consciencia de su uso, pero se sigue de manera

natural

Page 11: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

¿Qué es una metodología?

Objetivos

� Mejorar el proceso de desarrollo

� Dotar a la empresa de un estándar de trabajo

� Conseguir definir requisitos de forma acertada

� Establecer un método sistemático de desarrollo

� Construir sistemas en tiempo y coste razonable

� Construir sistemas documentados fáciles de mantener

Page 12: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

¿Qué es una metodología?

Características deseables

� Existencia de reglas bien definidas (predefinidas)

� Cobertura total del ciclo de desarrollo � cubrir el mayor número de procesos del ciclo de vida del software

� Que esté soportada por herramientas CASE

� Facilitar la comunicación entre las personas involucradas � comunicación efectiva

� Verificaciones intermedias � hacer visible y controlable los avances del proyecto (revisiones del software)

Page 13: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

¿Qué es una metodología?

Características deseables

� Facilitar el mantenimiento y evolución del sistema

� Debe ser adaptable, tanto a proyectos grandes como a pequeños

� Enlace con procesos de gestión

� Que fomente la reutilización del software

� Fácil formación � que sea fácil de aprender, entender y aplicar

� Debe contener actividades que mejoren el proceso de desarrollo � existencia de métricas de calidad y coste

Page 14: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

¿Qué es una metodología?

Características NO deseables

� Que sea compleja y difícil de aplicar

� Difícil de interpretar

� Que no sea reusable

� Que tenga conceptos difusos � que no quede claro cómo se debe aplicar o cómo se tiene que generar un documento

� Que sea difícil de aprender

Page 15: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Índice

� ¿Qué es una metodología?

� Enfoques metodológicos

� Implantación de una plataforma metodológica

Page 16: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Ejemplos de metodologías

� Evolución de las metodologías de desarrollo:

�Desarrollo convencional (años 50)

�Desarrollo estructurado (finales de los 60 mediados

de los 70)

� SSADM (1981), Métrica v3 (2001)

�Desarrollo orientado a objetos (años 80 y 90)

� Proceso Unificado (1999)

�Métodos ágiles (siglo XXI)

� eXtreme Programming (1996), Scrum (2001), etc.

Page 17: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Ejemplos de metodologías

Enfoque Convencional

� Inicialmente no existían metodologías de desarrollo (años 50)

� Detección de la necesidad de contar con analistas (funcionales y técnicos), operadores y programadores

� Inconvenientes:

� Los resultados finales son impredecibles

� No hay forma de controlar lo que está sucediendo en el proyecto

� Los cambios organizativos afectan negativamente al proceso de desarrollo

Page 18: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Ejemplos de metodologías

Enfoque Estructurado

� Tiene sus orígenes en la programación estructurada (inicios de los 70)

� Problemas iniciales del diseño estructurado:

� Especificaciones monolíticas (había que leer toda la especificación para entender el producto)

� Especificaciones redundantes

� Especificaciones ambiguas

� Especificaciones imposibles de mantener

� Solución: enfoque estructurado basado en especificaciones funcionales:

� Gráficas: diagramación de requisitos con soporte textual detallado

� Particionadas: independencia de secciones

� Mínimamente redundantes

� Este enfoque se conoce como análisis estructurado o enfoque top-down

� Métrica:

� Creado en 1989 (Ministerio de Administración Pública)

� Marco metodológico común para la planificación y el desarrollo de sistemas de información de la Administración Pública española

� Versión 3 (2001): incluye cobertura para desarrollos orientados a objetos e interfaces entre las actividades de la metodología y los procesos de gestión

Page 19: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Ejemplos de metodologías

Enfoque Orientado a Objetos

� Tiene sus orígenes en la aparición de lenguajes de programación OO (años 80 y 90)

� Integración de métodos de análisis y diseño OO a partir de 1996:

� Definición de UML (1997–v1.0 � 2009–v2.1)

� Distribución del Proceso Unificado de Rational (2000)

� Proceso Unificado de Desarrollo:

� Unificación de tres metodologías de desarrollo basadas en el paradigma orientado a objetos: OOSE (Jacobson – casos de uso), Booch (diseño), OMT (Rumbaugh - análisis) + Arquitectura (Kruchten)

� 2 dimensiones:� Temporal del proceso: ciclos, fases, iteraciones e hitos

� Estática del proceso: actividades, productos intermedios, roles y flujos de trabajo

� Principios:� Iterativo e incremental

� Dirigido por casos de uso

� Centrado en la arquitectura

� Utiliza UML como notación

Page 20: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Índice

� ¿Qué es una metodología?

� Enfoques metodológicos

� Implantación de una plataforma metodológica

Page 21: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

¿Qué es una plataforma metodológica?

� Es un conjunto formado por una o más metodologías

� Lo normal es seguir sólo una

� Y una o más herramientas que ayudan a la utilización

automatizada de estas metodologías

� Lo normal es utilizar varias

Page 22: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Implantación de una plataforma metodológica

Factores a considerar

� Todas las personas relacionadas con el uso de la

plataforma tienen que recibir una formación adecuada

� Primero se debe aplicar a proyectos piloto

� Es importante contar con la ayuda de un experto,

interno o externo

� Se debe empezar a aplicar en proyectos nuevos

Page 23: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Implantación de una plataforma metodológica

Método de Implantación

INICIAR LA

IMPLANTACIÓN

REALIZAR LA

EVALUACIÓN

NORMALIZACIÓN Y

ADAPTACIÓN

PLAN DE FORMACIÓN

PROBAR EN

PROYECTOS PILOTO

INICIAR LA

IMPLANTACIÓNSOPORTE Y

MEJORA

Page 24: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Implantación de una plataforma metodológica

Método de Implantación

� Iniciar la implantación

� Definir el equipo de trabajo para la implantación:

� Responsables del proyecto: jefe de departamento, jefe de proyecto

� Consultores externos que ayudan a la implantación

� Integrantes del equipo de desarrollo

� Integrantes del equipo técnico

� Decidir el alcance que tendrá la metodología:

� Decidir qué procesos del ciclo de vida del SW cubrirá la metodología que se pretende implantar

� Hacer la planificación:

� Establecer tareas, recursos y tiempos necesarios

� Marcar hitos concretos de revisión y toma de decisión

Page 25: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Implantación de una plataforma metodológica

Método de Implantación

� Realizar la evaluación:

� Identificar la metodología más adecuada para cada

proceso. Nos tenemos que basar en la experiencia

pasada

�Podemos elegir entre metodologías públicas o

privadas que sean fáciles de aprender

�Buscar la mejores herramientas que soporten la

metodología

Page 26: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Implantación de una plataforma metodológica

Método de Implantación

� Plan de normalización y adaptación:� Adaptar la metodología a nuestra empresa teniendo en

cuenta:� Factores de la organización (grande, pequeña…)

� Factores técnicos (instalaciones, HW…)

� Factores profesionales (formación, experiencia…)

� Objetivos de la empresa

� Adaptar la metodología a los diferentes proyectos. Se tienen que normalizar:� Procesos

� Responsabilidades

� Documentos a generar y su formato

� Comunicaciones entre el equipo

Page 27: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Implantación de una plataforma metodológica

Método de Implantación

� Plan de formación:

� Formación en las técnicas:

� Conocimientos específicos de cómo realizar las tareas que componen la metodología

� Formación en la guía de uso:

� Dar a conocer todas las actividades que se tienen que llevar a cabo

� Formación en las herramientas:

� Imprescindible.

� Debe ser impartida por profesionales

Page 28: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Implantación de una plataforma metodológica

Método de Implantación

� Iniciar el proyecto piloto:

� Seleccionar el proyecto piloto:

� Se considera proyecto piloto aquel que aporta poco riesgo a la empresa (ni muy grande ni muy pequeño)

� Se utiliza este proyecto piloto para evaluar y modificar la metodología y adaptarla mejor a las necesidades de la empresa

� Una vez acabado con el proyecto piloto debemos recolectar los resultados y conclusiones para una implantación futura

Page 29: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Implantación de una plataforma metodológica

Método de Implantación

� Realizar la migración:

�Diagnosticar la situación de los sistemas existentes:

hacer un inventario de los sistemas metodológicos

actuales de la empresa y un estudio de cada uno de

ellos

�Planificar la migración hacia la nueva plataforma

Page 30: Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías de Desarrollo Marcos López Sanz Ingeniería del Software de Gestión. ... de forma

Ingeniería del Software de Gestión www.kybele.es

Implantación de una plataforma metodológica

Método de Implantación

� Iniciar el proceso de soporte y mejora:

� Ya aplicamos la metodología a proyectos reales

� Los diferentes componentes de la plataforma se deben refinar y ajustar: es habitual al principio

� Tener en cuenta que hay elementos de la plataforma en constante evolución (herramientas)

� El equipo de trabajo necesita una formación continuada en las nuevas versiones.