Está en la página 1de 36

XIII Asamblea General del ISTEC – Bolivia 2003

Tutorial: Desarrollo de Software Basado en Componentes

XIII Asamblea General del ISTEC

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 1

Unidad 2: Métodos de Desarrollo Basados en CSR

z Contenidos
z El proceso de desarrollo de software
z Aspectos metodológicos del desarrollo de software
z Desarrollo de Software Basado en Reutilización
z Desarrollo de Activos Reutilizables

z Desarrollo de Aplicaciones Basadas en Reutilización

z Modelos de Procesos Basados en Reutilización


z El modelo de procesos TWIN

z El modelo de procesos TWIN extendido

z Modelos alternativos recientes

z Métodos de Desarrollo de Software Basado en


Componentes
2
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 1
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Propiedades del software

z El software es un objeto abstracto producido por


el intelecto del hombre que tiene las siguientes
propiedades:
z No es visible, no es tangible
z No tiene propiedades físicas
z tales como volumen, peso, masa, color u olor
z No se deteriora, ni desgasta con el tiempo
z Tiene una estructura modificable:
z está sujeto a cambios continuos, periódicos o no

3
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Propiedades del software

z Las modificaciones continuas ocasionan con el tiempo


una pérdida de confiabilidad
z Se desarrolla, no se construye:
z Sus componentes crecen progresivamente mediante
adiciones y correcciones sucesivas de sus componentes
z Su mantenimiento es complejo:
z sus componentes no se reemplazan, se corrigen
z Su estructura evoluciona mediante modificaciones
sucesivas

4
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 2
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Caracterización del proceso de software


z Los ingenieros resuelven Modelos de Procesos de Ingeniería
problemas mediante la Formulación
aplicación del Modelo de del problema
Procesos de la Ingeniería
Análisis
z La Ingeniería de Software del problema

emplea procesos de Búsqueda


desarrollo fundamentados de soluciones
en este modelo
Selección de la
z Sin embargo, estos mejor solución
procesos deben ser Diseño
adaptados para adecuarse de la solución
a las propiedades
Implementación
particulares del software de la solución
(Jensen y Tonies, 1979)
5
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Caracterización del proceso de software

z En Ingeniería de Software, el proceso de


desarrollo se realiza bajo la modalidad de proyecto
z Un proyecto tiene un conjunto de objetivos que
deben ser alcanzados dentro de restricciones tales
como:
z el presupuesto asignado al proyecto,
z el tiempo esperado de desarrollo del producto y
z la disponibilidad de recursos humanos para
desarrollarlo.

6
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 3
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Caracterización del proceso de software

z Tres elementos fundamentales de un proyecto


z Procesos
z Actividades, fases, pasos, tareas
z Productos
z Administrativos, técnicos, de entrega (deliverables)
z Recursos:
z Humanos, financieros, tiempo, materiales, H/S, etc.

7
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Caracterización del proceso de software

8
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 4
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Aspectos metodológicos del desarrollo de software

z Los tres elementos esenciales de un proyecto de


desarrollo de software:
z el producto que se desarrolla
z el proceso utilizado para desarrollar el producto
z los recursos humanos requeridos para desarrollar el
producto
determinan los tres componentes fundamentales
de un método:
z El modelo del producto
z El modelo del proceso
z El modelo del equipo de desarrollo
9
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Aspectos metodológicos del desarrollo de software

Método de desarrollo de software

Modelo Modelo Modelo Elementos


del del del del
Producto Proceso Grupo
método

Elementos
Productos Proceso Grupo del
proyecto
Proyecto de desarrollo de software

10
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 5
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Aspectos metodológicos del desarrollo de software

z Modelo del producto


z Descripción genérica de los
productos administrativos,
técnicos y de entrega que produce
el método
Modelo
z Modelo del proceso del
Producto
que productos elaborar que propiedades tiene el producto
z Representación gráfica de las
fases, pasos, actividades o tareas
que el método propone para quien ejecuta
desarrollar software Modelo Modelo
del del
z Modelo del grupo de Proceso Grupo

desarrollo que y como hacer el producto

z Describe la estructura y los roles


del personal que participa en el
proyecto de desarrollo
11
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Modelos de procesos

z Ciclo de Vida y Modelos de Procesos


z El ciclo de vida del software (software life cycle) muestra la
evolución del software a través de un ciclo de cuatro etapas
z Un modelo de proceso describe que se hace en cada una de las
etapas del ciclo de vida
z Un modelo de procesos es una representación de las actividades
requeridas para llevar a cabo una etapa del ciclo de vida

Desarrollo Uso

Retiro Mantenimiento

12
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 6
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Clasificación de los modelos de procesos

z Existe una gran variedad de modelos de procesos


que podemos clasificar en función de:
z El enfoque o paradigma utilizado por el modelo
z Enfoque de ingeniería
z Enfoque evolutivo
z Enfoque formal
z Enfoque orientado a objetos
z Enfoque ágil
z Enfoque de reutilización de componentes

13
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Clasificación de los modelos de procesos

z El enfoque de ingeniería
z El modelo de cascada (Waterfall Model)
z El modelo V
z El modelo de sala de laboratorio (Cleanroom Model)
z El enfoque evolutivo
z Modelos basados en prototipos
z El modelo de espiral (Spiral Model)
z El modelo “diente de serrucho” ( Sawtooth Model)
z El modelo “diente de tiburón” (Shark Tooth Model)
z Modelos de desarrollo incremental
z Modelo de desarrollo por versiones
z El modelo de Microsoft (The Synchronize and Stabilize Model)
z El enfoque formal
z El modelo de transformaciones formales

14
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 7
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Clasificación de los modelos de procesos

z El enfoque orientado a objetos


z El método Booch
z El modelo de desarrollo unificado
z RUP: Rational Unified Process Model
z El enfoque de procesos ágiles
z Programación extrema
z El enfoque de reutilización de software
z Modelos de desarrollo de software con reutilización
z Modelos de desarrollo de software para reutilización
z Modelo de proceso de dos fases o modelo TWIN

15
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El Enfoque de Reutilización

z Los procesos de desarrollo de software basados en


la reutilización de software se clasifican en:

z Desarrollo de Activos Reutilizables


z Es un proceso de desarrollo de software para reutilización
z Consiste en la adaptación o desarrollo de activos y/o
componentes de software con el propósito expreso de ser
reutilizados en el desarrollo de aplicaciones
z Desarrollo de Aplicaciones Basadas en Reuso
z Consiste en el desarrollo de una nueva applicación que
involucra el reuso de un activos de software existentes

16
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 8
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El Enfoque de Reutilización de Componentes

17
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Desarrollo de Activos Reutilizables

z El desarrollo de activos de software reutilizables


tiene como objetivo:
z Producir repositorios de activos o componentes de
software reutilizables que puedan ser empleados
recurrentemente en el desarrollo de software
z Requisitos mínimos que debe cumplir un
componente reutilizable:
z Debe ser genérico (dentro de su dominio de aplicación)
z Debe poseer una interfaz claramente definida
z Debe estar apropiadamente documentado
z Debe estar certificado

18
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 9
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Desarrollo de Activos Reutilizables

z Repositorios de Componentes (CSR)


z Son bases de datos especializadas que almacenan y
permiten la rápida recuperación y el mantenimiento de
CSR
z Su objetivo: Asegurar la disponibilidad de componentes para apoyar la
Ingeniería de Aplicaciones
z Además de los CSR, el repositorio mantiene información
relevante de cada CSR:
z Especificación técnica (incluyendo descripción de interfaces,
restricciones, interacción con otros componentes y diseño del CSR)
z Historia o registro de uso
z Clasificación del componente
CSRs
z Documentación

19
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Desarrollo de Activos Reutilizables

Tipos de Repositorios de CSR

z Según su alcance z Según su propósito


z Locales z De reuso
z Son desarrollados y reusados z Permiten el almacenamiento y
internamente por una recuperación de CSR
organización o empresa z De referencia
z Globales o de uso comercial z Facilitan la localización de CSR
z Disponibles a terceros bajo en otros repositorios
adquisición o subscripción z Ejemplo: La Agencias de
z Ejemplos: COTS, Servicios Localización de Servicios
Web Web
z Según su aplicabilidad
z De dominio específico
z De dominio general

20
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 10
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Desarrollo de Activos Reutilizables

z La producción de componentes se lleva a cabo a


través de:
z La adaptación de componentes existentes
z Los componentes existentes se evalúan, modifican y
prueban para ser reutilizados en futuros proyectos
z Ejemplos: Envolvimiento de aplicaciones legadas

z El desarrollo de componentes
z Implica desarrollar componentes con el objetivo expreso de
reutilizarlos
z Ejemplos: COTS, Servicios Web

z Métodos de desarrollo de componentes:


ƒ El método WATCH-Component

21
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Desarrollo de Activos Reutilizables


Métodos para el desarrollo de componentes

z El Método WATCH-Component (Hamar y


Montilva, 2003)
z Es un método desarrollado expresamente para producir
componentes de software reutilizable
z Consta de tres modelos:
z Modelo del producto
ƒ Captura las propiedades de los CSRs
z Modelo del proceso
ƒ Describe las actividades necesarias para producir CSR
z Modelo del grupo de desarrollo
ƒ Describe los actores y roles del grupo de desarrollo de CSRs
22
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 11
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El Método WATCH-Component

z Modelo del Producto

23
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El Método WATCH-Component

z Modelo del Producto: Las formas de un CSR


z A lo largo de su desarrollo un componente toma varias formas
z El modelo de productos del WATCH-Component captura estas
formas

24
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 12
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El Método WATCH-Component

z Modelo de un componente implementado

25
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El Método WATCH-Component

z Modelo de un componente instalado en una


infraestructura de despliegue

26
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 13
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El Método WATCH-Component

z El Modelo del Proceso

27
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El Método WATCH-Component

z El Modelo de Procesos
z Fase 1: Especificación del Componente

De finición del Especific ación Verific ac ión


Componente de l Componente del c ompone nte

Fase 1 - Espe cificació n del Compon ente

• Análizar el Dominio • Especificar interfaces • Verificar


• Análizar la • Elaborar contrato de especificación
Arquitectura de uso • Verificar factibilidad
Dominio • Elaborar contrato de tecnológica
• Definir las interfaces realización
28
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 14
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El Método WATCH-Component

z El Modelo de Procesos:
z Fase 2: Aprovisionamiento del Componente
Adquirir

Reutilizar el Componente Suscribir

Modificar
Busqueda del Componente Adaptar

Envolver

Desarrollar el componente

Fase 2 - Aprovisionamiento del Componente


29
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El Método WATCH-Component

z El Modelo de Procesos:
z Fase 3: Pruebas del Componente

Pruebas
Funcionales Pruebas de
Planificación de
Instalación
pruebas
Pruebas (despliegue)
No-funcionales

Pruebas de
Aceptación

Fase 3 - Pruebas del Componente

30
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 15
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El Método WATCH-Component

z El Modelo de Procesos:
z Fase 4: Certificación del Componente

Verificar consistencia del


componente con los contratos
Certificar
Verificar componente
dependencias

Verificación
compatibilidad de versiones

Fase 4: Certificación del Componente

31
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El Método WATCH-Component

z El Modelo de Procesos:
z Fase 5: Liberación del Componente

Catalogación o
Localización del Despliegue del
Publicación del
Componente Componente
Componente

Fase 5 - Liberación del Componente

32
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 16
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El Método WATCH-Component

z El Modelo del Grupo de Desarrollo

Líder del
Proyecto

Arquitecto Diseñador Administrador Gerente de


de de de Repositorio aprovisionamiento
componentes Componentes

Desarrollador Asesor Experto en Certificador Realizador


de de sistemas de pruebas de
componentes componentes legados componentes componentes

33
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El Enfoque de Reutilización de Componentes

34
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 17
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Desarrollo de Aplicaciones Basadas en Reuso

z El desarrollo de aplicaciones basadas en reuso


z Es un proceso de software que aprovecha la
disponibilidad de activos de software reutilizables
z Produce nuevas aplicaciones basadas en la
reutilización de activos existentes
z Es un enfoque que:
z Maximiza la reutilización de activos de software
existentes
z Reduce el número de componentes que requieren ser
desarrollados desde el comienzo
z Reduce los costos y tiempo de desarrollo de aplicaciones

35
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Desarrollo de Aplicaciones Basadas en Reuso

z Condiciones mínimas para la reutilización


z Existencia de repositorios o bases de componentes
reutilizables
z Los componentes son confiables y actuán de acuerdo a sus
especificaciones
ƒ La certificación garantiza la confiabilidad del componente
z Los componentes están debidamente documentados

36
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 18
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Desarrollo de Aplicaciones Basadas en Reuso

z Modos de reutilización de componentes de


software:
z Reutilización Ad-hoc
z Reutilización por oportunidad
z Reutilización Sistemática
z Modelos adaptados a la reutilización
z Modelos guiados por la reutilización

37
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Desarrollo de Aplicaciones Basadas en Reuso

z Reutilización sistemática
z Modelos de procesos adaptados a la reutilización:
z La reutilización es adaptada e integrada a un modelo de
procesos existente como parte de la fase de diseño de software
Diseñar la
Arquitectura

Especificar
componentes

Buscar
componentes

Adaptar
componentes

Integrar
componentes
(Fuente: [Sametinger, 1997])

38
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 19
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Desarrollo de Aplicaciones Basadas en Reuso

z Reutilización Sistemática
Especificar el z Modelos de procesos conducido por la reutilización:
sistema
z El proceso de desarrollo es basado en la
Buscar
componentes
reutilización
Modificar
espec. del sist.

Diseñar la
arquitectura

Buscar
componentes

Especificar
componentes

Adaptar
componentes

Integrar
componentes
(Fuente: [Sametinger, 1997])
39
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Desarrollo de Aplicaciones Basadas en Reuso

z El modelo de procesos TWIN


z Integra los modelos de procesos de:
z Desarrollo de Activos Reutilizables
z Desarrollo de Aplicaciones Basadas en Reutilización

Análisis Desarrollo
del de
Dominio Componentes

modelos diseños
componentes
de análisis genéricos

Desarrollo Reutilización
de de
Aplicaciones Componentes

[Sametinger, 1997]
40
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 20
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El modelo de procesos TWIN

z Consta de dos grupos de procesos denominados:


z Ingeniería de Dominios
z Ingeniería de Aplicaciones

Ingeniería de Dominios

Análisis del Diseño del Desarrollo de


Dominio Dominio Componentes

modelos diseños componentes


Especificación
de requerimentos de genéricos
análisis

Diseño de la Especificación Búsqueda de Adapt / Des. Integración de


Arquitectura De Componentes Componentes Componentes Componentes

Ingeniería de Aplicaciones
41
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El modelo de procesos TWIN extendido

Ingeniería de Dominio
Análisis del Dominio Diseño del Dominio Ingeniería de
Componentes
Adquisición
Análisis Gestión
de Definición Modelado Diseño de la Evaluación Desarrollo
de del
conocimiento de requerim. del arquitectura de la de
aplicaciones repositorio
del del dominio dominio de dominio arquitectura componentes
del dominio de comp.
dominio

Desarrollo de
Análisis y nuevos
Diseño de la Integración Pruebas
especificación Busqueda de componentes
arquitectura de de de la
de componentes
la aplicación componentes aplicación
requerimientos Adaptación de
componentes

Ingeniería de Aplicaciones

42
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 21
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El modelo de procesos TWIN extendido

Ingeniería de Dominio
Análisis del Dominio Diseño del Dominio Ingeniería de
Componentes
Adquisición
Análisis Gestión
de Definición Modelado Diseño de la Evaluación Desarrollo
de del
conocimiento de requerim. del arquitectura de la de
aplicaciones repositorio
del del dominio dominio de dominio arquitectura componentes
del dominio de comp.
dominio

Sistema de Gestión
de ASR

Desarrollo de
Análisis y nuevos
Diseño de la Integración Pruebas
especificación Busqueda de componentes
arquitectura de de de la
de componentes
la aplicación componentes aplicación
requerimientos Adaptación de
componentes

Ingeniería de Aplicaciones

43
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Modelos alternativos

z Modelos más recientes se orientan a la integración


de las Ingenierías de Componentes y de
Aplicaciones:
z El modelo del CBDiForum [1999]
z El modelo del SEI [Cohen, et al, 1995]
z El modelo inspirado en Catalysis [Brown, 2000]
z El modelo WATCH [Montilva, et al, 2000]
z El modelo UML Components [Cheesman and Daniels,
2001]

44
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 22
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El modelo de procesos de la CBDi Forum [1999]

Adquirir
Modelado Diseño Suscribir Ensamblaje
del de la Modificar De la Pruebas Deployment
negocio arquitectura Envolver aplicación
Crear

Gestión del inventario

Gestión del proceso

45
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El modelo de procesos del SEI [Cohen, et al, 1995]

46
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 23
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El modelo inspirado en Catalysis [Brown, 2000]


Necesidades de negocios

Sistemas actuales
Conocimiento Entender el y prácticas
del dominio contexto

Arquitecturas de
Patrones Definir la software existentes
arquitecturales Arquitectura

Sistemas legados
Componentes Proveer la envueltos
existentes Solución

Solución de negocios
47
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El modelo WATCH [Montilva, et al., 2000]

Procesos de
Post-Desarr.

Análisis del
Dominio

Entrega del Descubrim. de


Sistema Requerim.

Anal. & Espec.


Pruebas del Procesos
de
Sistema Gerenciales
Requerim.

Implement. del Diseño del


Sistema Sistema

Diseño de
Componentes

48
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 24
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El modelo UML Components [Cheesman &Daniels, 2001]

(Tomado de [Daniels, 2000])

49
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Modelado de componentes usando UML

z UML es un conjunto de notaciones para el modelado de


sistemas que incluye:
z Notaciones estructurales:
z Diagramas de clase
z Diagramas de objetos
z Notaciones orientadas al usuario o funcionales:
z Diagramas de casos de uso
z Notaciones de comportamiento:
z Diagramas de secuencias
z Diagramas de colaboración
z Diagramas de estado
z Diagramas de actividad
z Notaciones orientadas a la implementación:
z Diagramas de componentes
z Diagramas de despliegue (deployment)

50
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 25
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Modelado de componentes usando UML

z La extensión UML de Cheesman y Daniels [2001]


Realización de
Especificación de componentes componentes

Especificación de interfaz

51
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

Modelado de componentes usando UML

z La extensión UML de Cheesman y Daniels [2001]

Paquete de especificación de interfaz

52
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 26
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Modelado de componentes usando UML

z La extensión UML de Cheesman y Daniels [2001]


componente
interfaces
Arquitectura de componentes

uso de interfaces

53
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El método UML Components

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

54
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 27
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El método UML Components

z La arquitectura típica de un sistema desarrollado usando


UML Components consta de 4 capas divididas en dos
partes:

(Tomado de [Daniels, 2000])

55
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El método UML Components: El modelo de productos

z El modelo de productos consta de:


z Productos de requerimientos
z Modelo de conceptos de negocios
z Modelo de casos de uso
z Productos de especificación
z Modelo de tipos del negocio
z Especificaciones de interfaces
z Especificaciones de componentes
z Arquitectura de componentes
z Productos de software
z Componentes de negocios
z Componentes del sistema
z Aplicación

56
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 28
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El método UML Components: El modelo de productos

z El modelo de productos: Los artefactos del


método

(Tomado de [Daniels, 2000])

57
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El método UML Components: El modelo de productos

z Modelo de Conceptos de Negocios (Business


Concept Model)
z Muestra las clases de entidades que existen o están asociadas
al dominio de la aplicación, denominadas clases de negocios

58
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 29
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El método UML Components: El modelo de productos

z Modelo de Casos de Uso (Use Case Diagram)


z Muestra los tipos de usuarios y las funciones de interacción
entre cada tipo de usuario y la aplicación

59
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El método UML Components: El modelo de productos

z Modelo de Tipos de Negocios (Business Type Model)


z Es un modelo de especificación que muestra los tipos de entidades
del negocio y sus detalles, esto es, los atributos y restricciones que
son relevantes a la aplicación.
z Es un refinamiento del modelo de conceptos de negocios

60
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 30
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El método UML Components: El modelo de productos

z Especificación de
Interfaces (Interface
Specification)
z Describe una
interfaz, en términos
de:
z El tipo de interfaz
z El modelo de
información que
incluye los tipos
asociados a la
interfaz
z La especificación de
cada operación:
signatures, pre y
postcondiciones
z Invariantes

61
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El método UML Components: El modelo de productos

z La Arquitectura de Componentes (Component


Architecture Diagram)
z Define las interacciones entre componentes a través de sus
interfaces

62
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 31
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El método UML Components: El Modelo de Procesos

z El modelo de procesos del método: z Objetivos del proceso

Definición de
Requerimientos Requerimientos z Entender los procesos de negocios
que serán apoyados por la
aplicación
z Especificar los requerimientos del
Identificación de
Componentes sistema

Interacción de z Identificar las interfaces de los


Especificación Componentes componentes del negocio y del
sistema
Especificación de z Crear la arquitectura inicial de
Componentes componentes

Aprovisionamiento z Establecer las interacciones entre


componentes

Ensamblaje z Elaborar las especificaciones de


componentes: sus interfaces y63sus
© J. Montilva, CEISOFT - ULA
restriccionesUnidad 2
Tutorial: Desarrollo de Software Basado en Componentes

El método UML Components: El Modelo del Equipo

z El modelo del equipo de trabajo empleado por el


método

(Tomado de [Daniels, 2000])

64
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 32
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El método UML Components

z El modelo del proceso (flujo de trabajo) y los


productos (artefactos) del método

(Tomado de [Daniels, 2000])

65
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El método UML Components

z Fase de definición de requerimientos

(Tomado de [Daniels, 2000])

66
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 33
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El método UML Components

z Fase 2: Identificación de Componentes

(Tomado de [Daniels, 2000])

67
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El método UML Components

z Fase 3: Interacción de Componentes

(Tomado de [Daniels, 2000])

68
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 34
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

El método UML Components

z Fase 4: Especificación de Componentes

(Tomado de [Daniels, 2000])

69
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

El método UML Components

z Fase 4: Provisión

(Tomado de [Daniels, 2000])

70
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 35
XIII Asamblea General del ISTEC – Bolivia 2003
Tutorial: Desarrollo de Software Basado en Componentes

Referencias Bibliográficas
z Brown, A. W. Large-Scale, Component-Based Development. Prentice Hall
PTR, 2000.
z CBDi Forum. Component Based Development: Using Componentized
Software. May 1999. (www.cbdiforum.com).
z Cheesman, J. and Daniels, J. UML Components. Addison-Wesley, 2001.
z Daniels, J. Component-Based Design: A Complete Worked Example,
[Documento electrónico], Syntropy, LTD. 2000.
z 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.
z Herzum, P. and Sims, o. Business Component Factory. John Wiley & Sons.
2000.
z Mili, A.,Yacoub, S., Addy, E., and Mili, H. Toward an Engineering Discipline
of Software Reuse. IEEE Software, September/October, 1999, pp. 22-31.
z 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.
z Sametinger, J.. Sofware Engineering with Reusable Components. Berlin:
Springer-Verlag. 1997 (Part II: Software Components).
z Sommerville, I. Software Engineering. Fifth Edition, Addison-Wesley, 1995.
71
© 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/jonas
jonas@ula.ve

72
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2

© Jonás Montilva, 2003


ULA-CEISOFT, Venezuela Unidad 2 – Pag. 36

También podría gustarte