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

Post on 12-Jul-2020

8 views 0 download

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

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

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

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

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

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

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

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

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

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)

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

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

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)

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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.