Desarrollo de Software j Montilva

36
XIII Asamblea General del ISTEC – Bolivia 2003 Tutorial: Desarrollo de Software Basado en Componentes © Jonás Montilva, 2003 ULA-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ía Departamento 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 Contenidos El proceso de desarrollo de software Aspectos metodológicos del desarrollo de software Desarrollo de Software Basado en Reutilización Desarrollo de Activos Reutilizables Desarrollo de Aplicaciones Basadas en Reutilización Modelos de Procesos Basados en Reutilización El modelo de procesos TWIN El modelo de procesos TWIN extendido Modelos alternativos recientes Métodos de Desarrollo de Software Basado en Componentes

Transcript of Desarrollo de Software j Montilva

Page 1: Desarrollo de Software j Montilva

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

Page 2: Desarrollo de Software j Montilva

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

Page 3: Desarrollo de Software j Montilva

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.

Page 4: Desarrollo de Software j Montilva

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

Page 5: Desarrollo de Software j Montilva

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

Page 6: Desarrollo de Software j Montilva

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

Page 7: Desarrollo de Software j Montilva

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

Page 8: Desarrollo de Software j Montilva

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

Page 9: Desarrollo de Software j Montilva

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

Page 10: Desarrollo de Software j Montilva

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

Page 11: Desarrollo de Software j Montilva

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

Page 12: Desarrollo de Software j Montilva

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

Page 13: Desarrollo de Software j Montilva

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

Page 14: Desarrollo de Software j Montilva

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

Page 15: Desarrollo de Software j Montilva

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

Page 16: Desarrollo de Software j Montilva

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

Page 17: Desarrollo de Software j Montilva

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

Page 18: Desarrollo de Software j Montilva

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

Page 19: Desarrollo de Software j Montilva

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

Page 20: Desarrollo de Software j Montilva

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]

Page 21: Desarrollo de Software j Montilva

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

Page 22: Desarrollo de Software j Montilva

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]

Page 23: Desarrollo de Software j Montilva

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]

Page 24: Desarrollo de Software j Montilva

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.

Page 25: Desarrollo de Software j Montilva

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)

Page 26: Desarrollo de Software j Montilva

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

Page 27: Desarrollo de Software j Montilva

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])

Page 28: Desarrollo de Software j Montilva

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

Page 29: Desarrollo de Software j Montilva

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

Page 30: Desarrollo de Software j Montilva

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

Page 31: Desarrollo de Software j Montilva

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

Page 32: Desarrollo de Software j Montilva

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])

Page 33: Desarrollo de Software j Montilva

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])

Page 34: Desarrollo de Software j Montilva

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])

Page 35: Desarrollo de Software j Montilva

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])

Page 36: Desarrollo de Software j Montilva

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]