Aspectos metodológicos del desarrollo de...
Transcript of Aspectos metodológicos del desarrollo de...
Aspectos metodológicos del desarrollo de componentes de software reutilizable
Jonás A, Montilva C., Ph.D.Centro de Excelencia en Ingeniería de Software – CEISOFT
Mérida, Venezuela
Judith Barrios, Ph.D.Vanessa Hamar, M.Sc.
Universidad de Los Andes, Facultad de Ingeniería, Postgrado en ComputaciónMérida, Venezuela
SEPG Conferencia Latinoamérica 2004Guadalajara, México
Noviembre, 2004
Aspectos Metodológicos del Desarrollo de CSR 2
Aspectos Metodológicos del Desarrollo de CSR
ContenidosAspectos metodológicos del desarrollo de software
Métodos y sus elementos fundamentalesModelos de procesosEl modelo de procesos TWINLíneas de productos
El Método WATCH ComponentEl Método WATCHConclusiones
Aspectos Metodológicos del Desarrollo de CSR 3
Aspectos Metodológicos del Desarrollo de CSR
http://www.artmetic.de
Aspectos Metodológicos del Desarrollo de CSR 4
Aspectos metodológicos del desarrollo de software
Tres elementos fundamentales de un proyecto de desarrollo de software
Procesos
Actividades, fases, pasos, tareas
Productos
Administrativos, técnicos, de entrega (deliverables)
Recursos:
Humanos, financieros, tiempo, materiales, H/S, etc.
Aspectos Metodológicos del Desarrollo de CSR 5
Aspectos metodológicos del desarrollo de software
Los tres elementos esenciales de un proyecto de desarrollo de software:
el producto que se desarrolla el proceso utilizado para desarrollar el producto los recursos humanos requeridos para desarrollar el producto
determinan los tres componentes fundamentales de un método:
El modelo del productoEl modelo del procesoEl modelo del grupo de desarrollo
Aspectos Metodológicos del Desarrollo de CSR 6
Aspectos metodológicos del desarrollo de software
Modelodel
Producto
Modelodel
Proceso
Modelodel
Grupo
Productos GrupoProceso
Método de desarrollo de software
Proyecto de desarrollo de software
Elementosdelmétodo
Elementosdelproyecto
instanciación
Aspectos Metodológicos del Desarrollo de CSR 7
Aspectos metodológicos del desarrollo de software
Modelo del productoDescripción genérica de los productos administrativos, técnicos y de entrega que produce el método
Modelo del procesoRepresentación gráfica de las fases, pasos, actividades o tareas que el método propone para desarrollar software
Modelo del grupo de desarrolloDescribe la estructura y los roles del personal que participa en el proyecto de desarrollo
Modelodel
Producto
Modelodel
Proceso
Modelodel
Grupo
que productos elaborar que propiedades tiene el producto
que y como hacer el producto
quien ejecuta
Aspectos Metodológicos del Desarrollo de CSR 8
Clasificación de los modelos de procesos
Existe una gran variedad de modelos de procesos que podemos clasificar en función del enfoque o paradigma utilizado por el modelo:
Enfoque de ingenieríaEnfoque evolutivoEnfoque formalEnfoque orientado a objetosEnfoque ágilEnfoque de reutilización de software
Aspectos Metodológicos del Desarrollo de CSR 9
El enfoque de reutilización de software
Reutilización de Software
Desarrollo de Softwarepara reutilización
Desarrollo de Softwarecon reutilización
Ingeniería deDominio
Ingeniería deAplicaciones
Desarrollo de SoftwareBasado en Componentes
Desarrollo de SoftwareBasado en
Líneas de Productos
Aspectos Metodológicos del Desarrollo de CSR 10
El modelo de procesos TWIN
Consta de dos grupos de procesos denominados:Ingeniería de DominiosIngeniería de Aplicaciones
Ingeniería de Dominios
Especificaciónde requerimentos
Ingeniería de Aplicaciones
Análisis del Dominio
Diseño delDominio
Desarrollo deComponentes
Diseño de laArquitectura
EspecificaciónDe Componentes
Adapt / Des.Componentes
Búsqueda deComponentes
Integración deComponentes
modelosdeanálisis
diseñosgenéricos
componentes
Aspectos Metodológicos del Desarrollo de CSR 11
El modelo de procesos TWIN extendido
Análisisde
aplicacionesdel dominio
Adquisiciónde
conocimientodel
dominio
Modeladodel
dominio
Definiciónde requerim.del dominio
Análisis del Dominio
Diseño de laarquitecturade dominio
Evaluaciónde la
arquitectura
Diseño del Dominio Ingeniería deComponentes
Desarrollode
componentes
Gestióndel
repositoriode comp.
Ingeniería de Dominio
Análisis yespecificación
derequerimientos
Diseño de laarquitectura dela aplicación
Busqueda decomponentes
Desarrollo denuevos
componentes
Adaptación decomponentes
Integraciónde
componentes
Pruebasde la
aplicación
Ingeniería de Aplicaciones
Sistema de Gestiónde ASR
Aspectos Metodológicos del Desarrollo de CSR 12
Desarrollo Basado en Líneas de Productos
Definición de una línea de productos
“Es un conjunto de sistemas de software que comparten un conjunto común y gestionado de aspectos, que satisfacen las necesidades específicas de un segmento de mercado particular, y que son desarrollados, de una manera preestablecida, a partir de un conjunto de activos fundamentales” [Clements y Northrop, 2002]
Fuente: [http://www.sei.cmu.edu/plp/framework.html]
Aspectos Metodológicos del Desarrollo de CSR 13
El Método WATCH
Surge como un medio instruccional empleado en la enseñanza de los procesos de Ingeniería de Dominio e Ingeniería de Aplicación
Consta de dos componentes metodológicos
Especificacióndel
Componente
Certificacióndel
Componente
Liberacióndel
Componente
Aprovisionamiento
Pruebasdel
Componente
Modeladode
Negocios
Ingenieríade Requisitos
DiseñoArquitectónico
Especificaciónde
Componentes
Aprovisionamientode
Componentes
Ensamblajede Componentes
Pruebas dela Aplicación
Entrega dela Aplicación
Ingeniería de Dominio:Desarrollo de Componentes
Ingeniería de Aplicaciones:Desarrollo de Aplicaciones Empresariales
WATCHComponent
WATCH
Aspectos Metodológicos del Desarrollo de CSR 14
Aspectos Metodológicos del Desarrollo de CSR
http://www.artmetic.de
Aspectos Metodológicos del Desarrollo de CSR 15
Ingeniería de Dominio: Desarrollo de Activos CSR
El Método WATCH-Component (Hamar y Montilva, 2003)Es un método desarrollado expresamente para producir componentes de software reutilizableConsta de tres modelos:
Modelo del productoCaptura las propiedades de los CSRs
Modelo del procesoDescribe las actividades necesarias para producir CSR
Modelo del grupo de desarrolloDescribe los actores y roles del grupo de desarrollo de CSRs
Aspectos Metodológicos del Desarrollo de CSR 16
El Método WATCH-Component
Modelo del Producto
Aspectos Metodológicos del Desarrollo de CSR 17
El Método WATCH-Component
Modelo del Producto: Las formas de un CSRA lo largo de su desarrollo un componente toma varias formasEl modelo de productos del WATCH-Component captura estas formas
Aspectos Metodológicos del Desarrollo de CSR 18
El Método WATCH-Component
Modelo de un componente implementado
Aspectos Metodológicos del Desarrollo de CSR 19
El Método WATCH-Component
El Modelo del Proceso
Aspectos Metodológicos del Desarrollo de CSR 20
Definición del Componente
Especificacióndel Componente
Verificacióndel componente
Fase 1 - Especificación del Componente
El Método WATCH-Component
El Modelo de ProcesosFase 1: Especificación del Componente
• Analizar el Dominio• Analizar la
Arquitectura de Dominio
• Definir las interfases
• Especificar interfases• Elaborar contrato de
uso• Elaborar contrato de
realización
• Verificarespecificación
• Verificar factibilidadtecnológica y económica
Aspectos Metodológicos del Desarrollo de CSR 21
El Método WATCH-Component
El Modelo de Procesos: Fase 2: Aprovisionamiento del Componente
Fase 2 - Aprovisionamiento del Componente
Busqueda del Componente
Reutilizar el Componente
Desarrollar el componente
Adquirir
Suscribir
AdaptarModificar
Envolver
Aspectos Metodológicos del Desarrollo de CSR 22
El Método WATCH-Component
El Modelo de Procesos: Fase 3: Pruebas del Componente
Planificación depruebas
PruebasFuncionales
PruebasNo-funcionales
Pruebas deInstalación
(despliegue)
Pruebas deAceptación
Fase 3 - Pruebas del Componente
Aspectos Metodológicos del Desarrollo de CSR 23
El Método WATCH-Component
El Modelo de Procesos: Fase 4: Certificación del Componente
Verificar consistencia delcomponente con los contratos
Verificardependencias
Verificacióncompatibilidad de versiones
Certificarcomponente
Fase 4: Certificación del Componente
Aspectos Metodológicos del Desarrollo de CSR 24
El Método WATCH-Component
El Modelo de Procesos: Fase 5: Liberación del Componente
Catalogación oPublicación delComponente
Localización delComponente
Despliegue delComponente
Fase 5 - Liberación del Componente
Aspectos Metodológicos del Desarrollo de CSR 25
El Método WATCH-Component
El Modelo del Grupo de Desarrollo
Líder del Proyecto
Arquitecto de
componentes
Experto en sistemas legados
Administrador de Repositorio
Gerente de aprovisionamiento
Certificador de
componentes
Diseñador de
Componentes
Asesor de
componentes
Realizador pruebas de
componentes
Desarrollador de
componentes
Aspectos Metodológicos del Desarrollo de CSR 26
Unidad 2: Aspectos Metodológicos de la ISBC
http://www.artmetic.de
Aspectos Metodológicos del Desarrollo de CSR 27
El Método WATCH
Es un marco metodológico orientado al desarrollo de aplicacionesempresariales caracterizadas por:
Estar basadas en la reutilización de componentesEmplear tecnología webSer de pequeña a mediana escala
Integra los mejores aspectos de los siguientes modelos y métodos:Ingeniería de Software Basada en Componentes
Modelo TWINUML Components
El modelo espiral de BoehmDesarrollo incremental y por versionesRational Unified Process (RUP)
Aspectos Metodológicos del Desarrollo de CSR 28
El Método WATCH
El estándar IEEE 1074 fue utilizado para crear la estructura de procesosdel modelo
Emplea el UML como su lenguaje de modelado
Metáfora utilizada: el reloj (watch)
Aspectos Metodológicos del Desarrollo de CSR 29
El Método WATCH
Instanciación del métodoEs el proceso mediante el cual el método es adaptado a las características particulares de un proyecto específicoWATCH es un marco metodológico adaptable a proyectos de pequeña y mediana escala
Aspectos Metodológicos del Desarrollo de CSR 30
El Método WATCH
Aspectos Metodológicos del Desarrollo de CSR 31
WATCH: Modelo del Producto
WATCH ayuda a un grupo de desarrollo a producir aplicaciones empresariales
Un aplicación empresarial es aplicación distribuida que apoya la ejecución de procesos de negocios en una empresa
Ejemplos:Aplicaciones webSistemas de información webAplicaciones integradas
Aspectos Metodológicos del Desarrollo de CSR 32
WATCH: Modelo del Producto
Modelo genéríco de una aplicación empresarialUna aplicación empresarial consta de tres o más capas
Capa de Presentación
Com
pone
ntes
del L
ado
del C
lient
e
Com
pone
ntes
del
Lado
del
Ser
vido
r web
Capa de Lógica de Negocios
ComponentesProcesos de
Negocio
ComponentesEntidades de
Negocio
Capa de Datos
Bases deDatos
AlmacenesDe Datos
XML
Aspectos Metodológicos del Desarrollo de CSR 33
El Método WATCH
Aspectos Metodológicos del Desarrollo de CSR 34
Modelo de Grupos de Desarrollo
Los grupos de desarrollo de aplicaciones empresariales pueden organizarse de dos maneras diferentes :
Organización por proceso de desarrollo
Basada en las actividades del proceso de desarrollo de aplicaciones
Aspectos Metodológicos del Desarrollo de CSR 35
Modelo de Grupos de Desarrollo
Organización por competencias
Basada en el conocimiento y experiencia requerida para desarrollar los diferentes elementos de una aplicación empresarial
Aspectos Metodológicos del Desarrollo de CSR 36
El Método WATCH
Aspectos Metodológicos del Desarrollo de CSR 37
La cadena de valor del Método WATCH
Procesos técnicos:
Procesos gerenciales:
Modeladode
Negocios
Ingenieríade
Requisitos
DiseñoArquitec-
tónico
Diseñode
Compo-nentes
Aprovisionamiento
deCompo-
nentes
Ensamblajede
Compo-nentes
Pruebasde la
Aplicación
Entregade la
Aplicación
Gestión del Proyecto
Gestión de la Calidad del Software (SQA)
Gestión de la Configuración del Software (SCM)
Verificación & Validación (V&V)
Gestión de Riesgos
Adiestramiento
Documentación
Aspectos Metodológicos del Desarrollo de CSR 38
WATCH: Procesos de Desarrollo
Aspectos Metodológicos del Desarrollo de CSR 39
WATCH: Procesos de Desarrollo
FASE 1: MODELADO DEL NEGOCIO
Objetivos:Obtener un conocimiento global y detallado del dominio de la aplicación empresarial:
El sistema de negocios (SN) para el cual se desarrolla la aplicación Este conocimiento se logra a través de un proceso de modelado empresarial que determina:
Los objetivos, procesos, actores, objetos, reglas, eventos y unidades organizacionales del Sistema de Negocios (SN)
Producto principal:Modelo del Sistema de Negocios (Modelo de Negocios)
Aspectos Metodológicos del Desarrollo de CSR 40
FASE 1: MODELADO DEL NEGOCIO
Flujo de trabajo:
Aspectos Metodológicos del Desarrollo de CSR 41
FASE 1: MODELADO DEL NEGOCIO
• Cadena de Valor del SN
• Diagramas de Procesos del SN (en UML Business)
• Diagramas de actividades en UML
• Visitas de campo• Entrevista con expertos• Revisión de
documentación técnica• Modelado de Cadenas de
Valor • Modelado de Procesos en
UML Business• Modelado de Actividades
en UML
• Identificar y analizar las tecnologías de producción o servicios usadas por el SN
• Modelar la cadena de valor• Modelar los procesos vitales• Modelar los procesos de
soporte• Modelar las actividades de
cada proceso
Modelado de los Procesos de Negocio del SN
• Diagrama de Objetivos del SN
• Revisión de los manuales de organización
• Entrevistas con Gerentes del SN
• Modelado de objetivos
• Definir la visión del SN• Definir la misión del SN• Definir objetivos del SN• Elaborar la jerarquía de
objetivos
Modelado de Objetivos del SN
• Diagrama de Jerarquía de sistemas
• Revisión de los manuales de organización
• Entrevistas con Gerentes del SN
• Modelado de sistemas
• Establecer el alcance del sistema de negocios (SN)
• Definir el suprasistema del SN
• Identificar los subsistemas del SN
Definición del Sistema de Negocios (SN)
ProductosTécnicas y NotacionesActividadesPasos
Aspectos Metodológicos del Desarrollo de CSR 42
FASE 1: MODELADO DEL NEGOCIO
• Diagrama de eventos en UML Business
• Matriz Eventos-Procesos
• Modelado de eventos en UML Business
• Identificar eventos asociados al SN
• Modelar el flujo de trabajo asociado a cada evento
• Elaborar la matriz de eventos-procesos
Modelado de Eventos
• Organigrama• Descripción de
Actores y sus Roles• Matriz Actores-
Procesos
• Diseño Organizacional• Analizar la estructura organizacional (organigrama)
• Identificar actores del SN• Definir roles de los actores• Elaborar la matriz actores-
procesos
Modelado de actores y unidades organizacionales
• Descripción de reglas de negocio del SN
• Consultas a usuarios y expertos
• Búsqueda de documentación
• Modelado de reglas de negocio
• Identificar las reglas de negocio que regulan el SN
• Analizar y clasificar las reglas de negocio
• Describir las reglas
Identificación de las Reglas de Negocio
ProductosTécnicas y NotacionesActividadesPasos
Aspectos Metodológicos del Desarrollo de CSR 43
FASE 1: MODELADO DEL NEGOCIO
• Modelo de Negocios del SN validado
• Revisión técnica (Estándar IEEE 1012-1986)
• Planificar las actividades de validación
• Revisar formalmente del documento
Validación del Modelo de Negocios
• Modelo de Negocios del SN
• Técnicas de documentación
• Definir la estructura del documento
• Redactar el documento
Elaboración del documento de Modelado de Negocio
• Modelo de Conceptos del SN (diagramas de clases en UML)
• Matriz Procesos-Objetos
• Modelado conceptual• Modelado de Clases en
UML
• Identificar los tipos de objetos de negocio del SN
• Definir las relaciones entre tipos de objetos
• Elaborar el modelo de objetos
• Elaborar la matriz procesos-objetos
Modelado de los Objetos de Negocio del SN
ProductosTécnicas y NotacionesActividadesPasos
Aspectos Metodológicos del Desarrollo de CSR 44
WATCH: Procesos de Desarrollo
FASE 2: INGENIERÍA DE REQUISITOS
Objetivos de la fase:Determinar las necesidades de información y automatización de procesos de negocios, que tienen los usuarios de la aplicación empresarial
Producto principal:Documento de Requisitos de la aplicación
Aspectos Metodológicos del Desarrollo de CSR 45
FASE 2: INGENIERÍA DE REQUISITOS
Flujo de trabajo:
Aspectos Metodológicos del Desarrollo de CSR 46
WATCH: Procesos de Desarrollo
FASE 3: DISEÑO ARQUITECTÓNICO
Objetivos de la fase:Elaborar un diseño de la arquitectura de la aplicación empresarial que:
Sea apropiada a los requisitos especificados Establezca los subsistemas de la aplicación, los componentes de cada subsistema, las conexiones entre estos componentes y las restricciones que regulan la arquitectura.
Producto principal:Descripción de la Arquitectura de la aplicación
Aspectos Metodológicos del Desarrollo de CSR 47
FASE 3: DISEÑO ARQUITECTÓNICO
Flujo de trabajo:
Aspectos Metodológicos del Desarrollo de CSR 48
WATCH: Procesos de Desarrollo
FASE 4: DISEÑO DE COMPONENTES
Objetivos de la fase: Elaborar los diseños detallados de los componentes que integran cada uno de los subsistemas de la aplicación
Productos principales:Documento de DiseñoPlan de Pruebas
Aspectos Metodológicos del Desarrollo de CSR 49
FASE 4: DISEÑO DE COMPONENTES
Flujo de trabajo:
Aspectos Metodológicos del Desarrollo de CSR 50
FASE 4: DISEÑO DE COMPONENTESEl Proceso de Especificación de Componentes
Describe las actividades necesarias para especificar los componentes de una aplicación empresarialEstá basado en el proceso de UML Components [Cheesman, 2000]Consta de tres actividades:
Aspectos Metodológicos del Desarrollo de CSR 51
WATCH: Procesos de Desarrollo
FASE 5: APROVISIONAMIENTO DE COMPONENTES
Objetivos de la fase:Búsqueda y adaptación de componentes de software reutilizables que cumplan con las especificaciones de componentesDesarrollo de aquellos componentes que no puedan ser localizados o que no satisfagan adecuadamente las especificaciones de componentes
Producto principal:Colección de componentes asociados a cada una de las tres capas de la aplicación empresarial
Aspectos Metodológicos del Desarrollo de CSR 52
FASE 5: APROVISIONAMIENTO DE COMPONENTES
Flujo de trabajo:
Aspectos Metodológicos del Desarrollo de CSR 53
WATCH: Procesos de Desarrollo
FASE 6: ENSAMBLAJE DE COMPONENTES
Objetivos de la fase:Implementar cada uno de las tres capas de la aplicación empresarial mediante el ensamblaje de componentes que fueron adquiridos, adaptados, suscritos o desarrollados en la Fase 5
Producto principal:Una aplicación integrada de acuerdo a la arquitectura diseñada
Aspectos Metodológicos del Desarrollo de CSR 54
FASE 6: ENSAMBLAJE DE COMPONENTES
Flujo de trabajo:
Aspectos Metodológicos del Desarrollo de CSR 55
WATCH: Procesos de Desarrollo
FASE 7: PRUEBAS DE LA APLICACIÓN
Objetivos de la fase:Comprobar que la aplicación empresarial cumple con los requisitos funcionales y no funcionales establecidos en la fase 2
Producto principal:Aplicación empresarial probada
Aspectos Metodológicos del Desarrollo de CSR 56
FASE 7: PRUEBAS DE LA APLICACIÓN
Flujo de trabajo:
Aspectos Metodológicos del Desarrollo de CSR 57
WATCH: Procesos de Desarrollo
FASE 8: ENTREGA DE LA APLICACIÓN EMPRESARIAL
Objetivos de la fase:Instalar la aplicación empresarial en su ambiente de producciónPoner la aplicación en operaciónEntregar la aplicación a sus usuarios
Producto principal:Aplicación empresarial en operación (en producción)
Aspectos Metodológicos del Desarrollo de CSR 58
FASE 8: ENTREGA DE LA APLICACIÓN EMPRESARIAL
Flujo de trabajo:
Aspectos Metodológicos del Desarrollo de CSR 59
Conclusiones
Las líneas de productos representan el estado del arte en procesos de desarrollo de software basado en la reutilización de activos
La Ingeniería de Dominio y la Ingeniería de Aplicaciones requieren métodos sencillos, completos y fáciles de aprender
WATCH y WATCH Component fueron diseñados para cumplir estos objetivos
WATCH se ha empleado, con éxito, en el desarrollo de aplicaciones empresariales en dos empresas venezolanas
WATCH Component fue utilizado en la creación de una librería de CSR para el dominio de redes de distribución
Trabajo futuro:Diseño de un proceso de gestión que asegure una mayor relación entre el método WATCH y WATCH Component
Aspectos Metodológicos del Desarrollo de CSR 60
Aspectos Metodológicos del Desarrollo de CSR
http://www.artmetic.de
Jonás Montilva [email protected]
http://www.ceisoft.org