Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tutorial:
Desarrollo de Software Basado
en Componentes
Unidad 2:
Métodos de Desarrollo de Software Basado en
Componentes
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
3
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
4
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
6
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
7
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
8
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
Modelos de procesos
Desarrollo Uso
Retiro Mantenimiento
12
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
13
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
15
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Enfoque de Reutilización
16
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
17
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
18
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
19
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
20
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
z El desarrollo de componentes
z Implica desarrollar componentes con el objetivo expreso de
reutilizarlos
z Ejemplos: COTS, Servicios Web
21
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Método WATCH-Component
23
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Método WATCH-Component
24
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Método WATCH-Component
25
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Método WATCH-Component
26
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Método WATCH-Component
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
El Método WATCH-Component
z El Modelo de Procesos:
z Fase 2: Aprovisionamiento del Componente
Adquirir
Modificar
Busqueda del Componente Adaptar
Envolver
Desarrollar el componente
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
30
© 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 4: Certificación del Componente
Verificación
compatibilidad de versiones
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
32
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
El Método WATCH-Component
Líder del
Proyecto
33
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
34
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
35
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
36
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
37
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
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
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
Ingeniería de Dominios
Ingeniería de Aplicaciones
41
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
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
44
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Adquirir
Modelado Diseño Suscribir Ensamblaje
del de la Modificar De la Pruebas Deployment
negocio arquitectura Envolver aplicación
Crear
45
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
46
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
Procesos de
Post-Desarr.
Análisis del
Dominio
Diseño de
Componentes
48
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
49
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
50
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
Especificación de interfaz
51
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
52
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
uso de interfaces
53
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
54
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
55
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
56
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
57
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
58
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
59
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
60
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
62
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
64
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
65
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
66
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
67
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
68
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
69
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
z Fase 4: Provisión
70
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2
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
http://www.centauro.ing.ula.ve/jonas
jonas@ula.ve
72
© J. Montilva, CEISOFT - ULA Tutorial: Desarrollo de Software Basado en Componentes Unidad 2