Tema 3: Metodologías de Desarrollo · Ingeniería del Software de Gestión Tema 3: Metodologías...
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.