Upload
adap88
View
1.371
Download
0
Embed Size (px)
Citation preview
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 1
1
Tutorial:Desarrollo de Software Basado
en Componentes
Unidad 2:
Métodos de Desarrollo de Software Basado en Componentes
Jonás A, Montilva C., Ph.D.Universidad de Los Andes
Facultad de IngenieríaDepartamento de Computación
Mérida, Venezuela
Santa Cruz, Bolivia, Diciembre, 2003
XIII Asamblea General del ISTEC
2© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Unidad 2: Métodos de Desarrollo Basados en CSR
ContenidosEl proceso de desarrollo de software
Aspectos metodológicos del desarrollo de software
Desarrollo de Software Basado en Reutilización
Desarrollo de Activos ReutilizablesDesarrollo de Aplicaciones Basadas en Reutilización
Modelos de Procesos Basados en Reutilización
El modelo de procesos TWINEl modelo de procesos TWIN extendidoModelos alternativos recientes
Métodos de Desarrollo de Software Basado en Componentes
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 2
3© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Propiedades del software
El software es un objeto abstracto producido por el intelecto del hombre que tiene las siguientes propiedades:
No es visible, no es tangible
No tiene propiedades físicas
tales como volumen, peso, masa, color u olorNo se deteriora, ni desgasta con el tiempo
Tiene una estructura modificable:
está sujeto a cambios continuos, periódicos o no
4© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Propiedades del software
Las modificaciones continuas ocasionan con el tiempo una pérdida de confiabilidad
Se desarrolla, no se construye:
Sus componentes crecen progresivamente mediante adiciones y correcciones sucesivas de sus componentes
Su mantenimiento es complejo:
sus componentes no se reemplazan, se corrigenSu estructura evoluciona mediante modificaciones sucesivas
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 3
5© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Caracterización del proceso de software
Los ingenieros resuelven problemas mediante la aplicación del Modelo de Procesos de la Ingeniería
La Ingeniería de Software emplea procesos de desarrollo fundamentados en este modelo
Sin embargo, estos procesos deben ser adaptados para adecuarse a las propiedades particulares del software
Formulacióndel problema
Diseñode la solución
Selección de lamejor solución
Búsquedade soluciones
Análisisdel problema
Implementaciónde la solución
Modelos de Procesos de Ingeniería
(Jensen y Tonies, 1979)
6© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Caracterización del proceso de software
En Ingeniería de Software, el proceso de desarrollo se realiza bajo la modalidad de proyecto
Un proyecto tiene un conjunto de objetivos que deben ser alcanzados dentro de restricciones tales como:
el presupuesto asignado al proyecto,
el tiempo esperado de desarrollo del producto y
la disponibilidad de recursos humanos para desarrollarlo.
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 4
7© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Caracterización del proceso de software
Tres elementos fundamentales de un proyecto
Procesos
Actividades, fases, pasos, tareas Productos
Administrativos, técnicos, de entrega (deliverables)Recursos:
Humanos, financieros, tiempo, materiales, H/S, etc.
8© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Caracterización del proceso de software
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 5
9© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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 equipo de desarrollo
10© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 6
11© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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 desarrollo
Describe 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
12© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Modelos de procesos
Ciclo de Vida y Modelos de ProcesosEl ciclo de vida del software (software life cycle) muestra la evolución del software a través de un ciclo de cuatro etapas
Un modelo de proceso describe que se hace en cada una de las etapas del ciclo de vida
Un modelo de procesos es una representación de las actividades requeridas para llevar a cabo una etapa del ciclo de vida
Desarrollo Uso
MantenimientoRetiro
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 7
13© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Clasificación de los modelos de procesos
Existe una gran variedad de modelos de procesos que podemos clasificar en función de:
El enfoque o paradigma utilizado por el modelo
Enfoque de ingenieríaEnfoque evolutivoEnfoque formalEnfoque orientado a objetosEnfoque ágilEnfoque de reutilización de componentes
14© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Clasificación de los modelos de procesos
El enfoque de ingeniería El modelo de cascada (Waterfall Model)El modelo VEl modelo de sala de laboratorio (Cleanroom Model)
El enfoque evolutivoModelos basados en prototiposEl modelo de espiral (Spiral Model)El modelo “diente de serrucho” ( Sawtooth Model)El modelo “diente de tiburón” (Shark Tooth Model)Modelos de desarrollo incrementalModelo de desarrollo por versionesEl modelo de Microsoft (The Synchronize and Stabilize Model)
El enfoque formalEl modelo de transformaciones formales
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 8
15© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Clasificación de los modelos de procesos
El enfoque orientado a objetos
El método Booch
El modelo de desarrollo unificado
RUP: Rational Unified Process Model
El enfoque de procesos ágiles
Programación extrema
El enfoque de reutilización de software
Modelos de desarrollo de software con reutilización
Modelos de desarrollo de software para reutilización
Modelo de proceso de dos fases o modelo TWIN
16© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Enfoque de Reutilización
Los procesos de desarrollo de software basados en la reutilización de software se clasifican en:
Desarrollo de Activos Reutilizables
Es un proceso de desarrollo de software para reutilizaciónConsiste en la adaptación o desarrollo de activos y/ocomponentes de software con el propósito expreso de ser reutilizados en el desarrollo de aplicaciones
Desarrollo de Aplicaciones Basadas en Reuso
Consiste en el desarrollo de una nueva applicación queinvolucra el reuso de un activos de software existentes
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 9
17© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Enfoque de Reutilización de Componentes
18© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Desarrollo de Activos Reutilizables
El desarrollo de activos de software reutilizablestiene como objetivo:
Producir repositorios de activos o componentes de software reutilizables que puedan ser empleadosrecurrentemente en el desarrollo de software
Requisitos mínimos que debe cumplir un componente reutilizable:
Debe ser genérico (dentro de su dominio de aplicación)Debe poseer una interfaz claramente definidaDebe estar apropiadamente documentadoDebe estar certificado
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 10
19© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Desarrollo de Activos Reutilizables
Repositorios de Componentes (CSR)
Son bases de datos especializadas que almacenan y permiten la rápida recuperación y el mantenimiento de CSR
Su objetivo: Asegurar la disponibilidad de componentes para apoyar la Ingeniería de Aplicaciones
Además de los CSR, el repositorio mantiene informaciónrelevante de cada CSR:
Especificación técnica (incluyendo descripción de interfaces, restricciones, interacción con otros componentes y diseño del CSR)Historia o registro de usoClasificación del componenteDocumentación CSRs
20© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Desarrollo de Activos Reutilizables
Según su alcance
Locales
Son desarrollados y reusadosinternamente por unaorganización o empresa
Globales o de uso comercial
Disponibles a terceros bajoadquisición o subscripciónEjemplos: COTS, ServiciosWeb
Según su aplicabilidad
De dominio específico
De dominio general
Según su propósito
De reuso
Permiten el almacenamiento y recuperación de CSR
De referencia
Facilitan la localización de CSR en otros repositorios
Ejemplo: La Agencias de Localización de ServiciosWeb
Tipos de Repositorios de CSR
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 11
21© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Desarrollo de Activos Reutilizables
La producción de componentes se lleva a cabo a través de:
La adaptación de componentes existentes
Los componentes existentes se evalúan, modifican y prueban para ser reutilizados en futuros proyectosEjemplos: Envolvimiento de aplicaciones legadas
El desarrollo de componentes
Implica desarrollar componentes con el objetivo expreso de reutilizarlosEjemplos: COTS, Servicios WebMétodos de desarrollo de componentes:
El método WATCH-Component
22© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Desarrollo de Activos Reutilizables
El Método WATCH-Component (Hamar y Montilva, 2003)
Es un método desarrollado expresamente para producircomponentes de software reutilizable
Consta 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
Métodos para el desarrollo de componentes
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 12
23© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Método WATCH-Component
Modelo del Producto
24© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Método WATCH-Component
Modelo del Producto: Las formas de un CSRA lo largo de su desarrollo un componente toma varias formas
El modelo de productos del WATCH-Component captura estasformas
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 13
25© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Método WATCH-Component
Modelo de un componente implementado
26© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Método WATCH-Component
Modelo de un componente instalado en unainfraestructura de despliegue
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 14
27© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Método WATCH-Component
El Modelo del Proceso
28© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
• Análizar el Dominio• Análizar la
Arquitectura de Dominio
• Definir las interfaces
• Especificar interfaces• Elaborar contrato de
uso• Elaborar contrato de
realización
• Verificarespecificación
• Verificar factibilidadtecnológica
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 15
29© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
30© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 16
31© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
32© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 17
33© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
34© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Enfoque de Reutilización de Componentes
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 18
35© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Desarrollo de Aplicaciones Basadas en Reuso
El desarrollo de aplicaciones basadas en reuso
Es un proceso de software que aprovecha la disponibilidad de activos de software reutilizables
Produce nuevas aplicaciones basadas en la reutilización de activos existentes
Es un enfoque que:
Maximiza la reutilización de activos de software existentes
Reduce el número de componentes que requieren ser desarrollados desde el comienzo
Reduce los costos y tiempo de desarrollo de aplicaciones
36© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Desarrollo de Aplicaciones Basadas en Reuso
Condiciones mínimas para la reutilización
Existencia de repositorios o bases de componentesreutilizablesLos componentes son confiables y actuán de acuerdo a susespecificaciones
La certificación garantiza la confiabilidad del componente
Los componentes están debidamente documentados
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 19
37© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Desarrollo de Aplicaciones Basadas en Reuso
Modos de reutilización de componentes de software:
Reutilización Ad-hoc
Reutilización por oportunidad
Reutilización Sistemática
Modelos adaptados a la reutilizaciónModelos guiados por la reutilización
38© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Desarrollo de Aplicaciones Basadas en Reuso
Reutilización sistemáticaModelos de procesos adaptados a la reutilización:
La reutilización es adaptada e integrada a un modelo de procesos existente como parte de la fase de diseño de software
(Fuente: [Sametinger, 1997])
Diseñar laArquitectura
Especificarcomponentes
Buscarcomponentes
Adaptarcomponentes
Integrarcomponentes
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 20
39© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Desarrollo de Aplicaciones Basadas en Reuso
Reutilización SistemáticaModelos de procesos conducido por la reutilización:
El proceso de desarrollo es basado en la reutilización
Especificar elsistema
Buscarcomponentes
Modificarespec. del sist.
Diseñar laarquitectura
Buscarcomponentes
Especificarcomponentes
Adaptarcomponentes
Integrarcomponentes
(Fuente: [Sametinger, 1997])
40© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Desarrollo de Aplicaciones Basadas en Reuso
El modelo de procesos TWIN
Integra los modelos de procesos de:
Desarrollo de Activos Reutilizables Desarrollo de Aplicaciones Basadas en Reutilización
Análisisdel
Dominio
Desarrollode
Componentes
Desarrollode
Aplicaciones
Reutilizaciónde
Componentes
modelosde análisis
diseñosgenéricos componentes
[Sametinger, 1997]
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 21
41© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El modelo de procesos TWIN
Consta de dos grupos de procesos denominados:
Ingeniería de Dominios
Ingenierí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
42© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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.
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 Dominio
Ingeniería de Aplicaciones
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 22
43© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
44© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Modelos alternativos
Modelos más recientes se orientan a la integraciónde las Ingenierías de Componentes y de Aplicaciones:
El modelo del CBDiForum [1999]
El modelo del SEI [Cohen, et al, 1995]
El modelo inspirado en Catalysis [Brown, 2000]
El modelo WATCH [Montilva, et al, 2000]
El modelo UML Components [Cheesman and Daniels, 2001]
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 23
45© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El modelo de procesos de la CBDi Forum [1999]
Gestión del proceso
Gestión del inventario
Modeladodel
negocio
Diseñode la
arquitectura
AdquirirSuscribirModificarEnvolver
Crear
EnsamblajeDe la
aplicaciónPruebas Deployment
46© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El modelo de procesos del SEI [Cohen, et al, 1995]
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 24
47© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El modelo inspirado en Catalysis [Brown, 2000]
Entender elcontexto
Definir laArquitectura
Proveer laSolución
Solución de negocios
Necesidades de negocios
Conocimiento del dominio
Patronesarquitecturales
Componentesexistentes
Sistemas actuales y prácticas
Arquitecturas de software existentes
Sistemas legadosenvueltos
48© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El modelo WATCH [Montilva, et al., 2000]
Análisis delDominio
Descubrim. deRequerim.
Anal. & Espec.de
Requerim.
Diseño delSistema
Diseño deComponentes
Implement. delSistema
Pruebas delSistema
Entrega delSistema
ProcesosGerenciales
Procesos dePost-Desarr.
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 25
49© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El modelo UML Components [Cheesman &Daniels, 2001]
(Tomado de [Daniels, 2000])
50© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Modelado de componentes usando UML
UML es un conjunto de notaciones para el modelado de sistemas que incluye:
Notaciones estructurales:Diagramas de claseDiagramas de objetos
Notaciones orientadas al usuario o funcionales:Diagramas de casos de uso
Notaciones de comportamiento:Diagramas de secuenciasDiagramas de colaboraciónDiagramas de estadoDiagramas de actividad
Notaciones orientadas a la implementación:Diagramas de componentesDiagramas de despliegue (deployment)
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 26
51© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Modelado de componentes usando UML
La extensión UML de Cheesman y Daniels [2001]
Especificación de componentes Realización de componentes
Especificación de interfaz
52© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Modelado de componentes usando UML
La extensión UML de Cheesman y Daniels [2001]
Paquete de especificación de interfaz
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 27
53© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Modelado de componentes usando UML
La extensión UML de Cheesman y Daniels [2001]
componente
interfaces
uso de interfaces
Arquitectura de componentes
54© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components
El método UML Components de Cheesman y Daniels[2001] se orienta al desarrollo de aplicaciones basadas en arquitecturas de N capas (n-tier)
(Tomado de [Daniels, 2000])
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 28
55© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components
La arquitectura típica de un sistema desarrollado usando UML Components consta de 4 capas divididas en dos partes:
(Tomado de [Daniels, 2000])
56© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components: El modelo de productos
El modelo de productos consta de:
Productos de requerimientos
Modelo de conceptos de negociosModelo de casos de uso
Productos de especificación
Modelo de tipos del negocioEspecificaciones de interfacesEspecificaciones de componentesArquitectura de componentes
Productos de software
Componentes de negociosComponentes del sistemaAplicación
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 29
57© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components: El modelo de productos
El modelo de productos: Los artefactos del método
(Tomado de [Daniels, 2000])
58© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components: El modelo de productos
Modelo de Conceptos de Negocios (Business Concept Model)
Muestra las clases de entidades que existen o están asociadasal dominio de la aplicación, denominadas clases de negocios
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 30
59© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components: El modelo de productos
Modelo de Casos de Uso (Use Case Diagram)Muestra los tipos de usuarios y las funciones de interacciónentre cada tipo de usuario y la aplicación
60© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components: El modelo de productos
Modelo de Tipos de Negocios (Business Type Model)Es un modelo de especificación que muestra los tipos de entidadesdel negocio y sus detalles, esto es, los atributos y restricciones queson relevantes a la aplicación.
Es un refinamiento del modelo de conceptos de negocios
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 31
61© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components: El modelo de productos
Especificación de Interfaces (Interface Specification)
Describe unainterfaz, en términosde:
El tipo de interfazEl modelo de información queincluye los tiposasociados a la interfazLa especificación de cada operación: signatures, pre y postcondicionesInvariantes
62© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components: El modelo de productos
La Arquitectura de Componentes (Component Architecture Diagram)
Define las interacciones entre componentes a través de susinterfaces
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 32
63© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components: El Modelo de Procesos
El modelo de procesos del método:
Especificación
Requerimientos Definición de Requerimientos
Identificación deComponentes
Interacción deComponentes
Especificación de Componentes
Aprovisionamiento
Ensamblaje
Objetivos del proceso
Entender los procesos de negocios que serán apoyados por la aplicación
Especificar los requerimientos del sistema
Identificar las interfaces de los componentes del negocio y del sistema
Crear la arquitectura inicial de componentes
Establecer las interacciones entre componentes
Elaborar las especificaciones de componentes: sus interfaces y sus restricciones
64© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components: El Modelo del Equipo
El modelo del equipo de trabajo empleado por el método
(Tomado de [Daniels, 2000])
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 33
65© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components
El modelo del proceso (flujo de trabajo) y los productos (artefactos) del método
(Tomado de [Daniels, 2000])
66© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components
Fase de definición de requerimientos
(Tomado de [Daniels, 2000])
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 34
67© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components
Fase 2: Identificación de Componentes
(Tomado de [Daniels, 2000])
68© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components
Fase 3: Interacción de Componentes
(Tomado de [Daniels, 2000])
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 35
69© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components
Fase 4: Especificación de Componentes
(Tomado de [Daniels, 2000])
70© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El método UML Components
Fase 4: Provisión
(Tomado de [Daniels, 2000])
XIII Asamblea General del ISTEC – Bolivia 2003Tutorial: Desarrollo de Software Basado en Componentes
© Jonás Montilva, 2003ULA-CEISOFT, Venezuela Unidad 2 – Pag. 36
71© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Referencias BibliográficasBrown, A. W. Large-Scale, Component-Based Development. Prentice Hall PTR, 2000.
CBDi Forum. Component Based Development: Using Componentized Software. May 1999. (www.cbdiforum.com).
Cheesman, J. and Daniels, J. UML Components. Addison-Wesley, 2001.
Daniels, J. Component-Based Design: A Complete Worked Example, [Documento electrónico], Syntropy, LTD. 2000.
Cohen, S., Krut, R., Peterson, S., Withey, J. Models for Domain and Architectures: A Prescription for Systematic Software Reuse, Software Engineering Institute, Technical report, 1995.
Herzum, P. and Sims, o. Business Component Factory. John Wiley & Sons.2000.
Mili, A.,Yacoub, S., Addy, E., and Mili, H. Toward an Engineering Discipline of Software Reuse. IEEE Software, September/October, 1999, pp. 22-31.
Montilva, J. Hazam, K., and Gharawi, M. “The Watch Model for Developing Business Software in Small and Midsize Organizations”. Proceedings of the IV World Multiconference on Systemics, Cybernetics and Informatics - SCI´2000. Orlando, Florida, Julio, 2000.
Sametinger, J.. Sofware Engineering with Reusable Components. Berlin: Springer-Verlag. 1997 (Part II: Software Components).
Sommerville, I. Software Engineering. Fifth Edition, Addison-Wesley, 1995.
72© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Desarrollo de Software Basado en Componentes
http://www.centauro.ing.ula.ve/[email protected]