SlideShare una empresa de Scribd logo
1 de 23
Desarrollo de Software Basado en Componentes Ulises Cruz Miranda
Introducción 	Los continuos avances en la Informática y las Telecomunicaciones están haciendo cambiar la forma en la que se desarrollan actualmente las aplicaciones software Aumento de la potencia de los ordenadores Abaratamiento de los costos del hardware Redes de datos de cobertura global Modelos de programación existentes desbordados Nuevos paradigmas de programación
Los desarrollos tradicionales de aplicaciones incurren en altos costos y en una inversión de tiempo extensa.  El DSBC busca, dentro de otros objetivos, reducir el tiempo de trabajo, el esfuerzo que requiere implementar una aplicación y los costos del proyecto, y, de esta forma, incrementar el nivel de productividad de los grupos desarrolladores y minimizar los riesgos globales. Desarrollo de Software Basado en Componentes
Desarrollo de Software Basado en Componentes Ensamblaje de partes de software previamente elaboradas Inspirada en los procesos de producción de sistemas físicos: 	Producción de aviones, vehículos, computadores, aparatos 	electrónicos, etc. Fundamentada en la Reutilización de Software Orientar esfuerzos hacia una industria de partes
Componente 	“Un componente es una unidad de composición de aplicaciones software, que posee un conjunto de interfaces y un conjunto de requisitos, y que ha de poder ser desarrollado, adquirido, incorporado al sistema y compuesto con otros componentes de forma independiente, en tiempo y espacio” [Szyperski, 1998].
Definición de los 7 criterios [Meyer,1999]: Puede ser usado por otros elementos de SW Puede ser usado por los clientes sin la necesidad de la intervención del desarrollador. Incluye las especificaciones de todas las dependencias. Incluye documentación de las funcionalidades que ofrece Se puede entender su funcionamiento en base a las especificaciones. Se puede acoplar a otros componentes Puede ser incorporado a un sistema de manera suave y rápida
Modelo del Ciclo de vida de DSBC
Arquitecturas Software y Marcos de Trabajo El disponer de componentes software no es suficiente para desarrollar aplicaciones, ya provengan éstos de un mercado global o sean desarrollados a medida para la aplicación. Un aspecto crítico a la hora de construir sistemas complejos es el diseño de la estructura del sistema.
Arquitectura Software Entendemos por Arquitectura Software la representación de alto nivel de la estructura de un sistema o aplicación, que describe las partes que la integran, las interacciones entre ellas, los patrones que supervisan su composición, y las restricciones a la hora de aplicar esos patrones.
	En general, la arquitectura software nace como una herramienta de alto nivel para cubrir distintos objetivos: Comprender y manejar la estructura de las aplicaciones complejas. Reutilizar dicha estructura (o partes de ella) para resolver problemas similares. Planificar la evolución de la aplicación, identificando sus partes mutables e inmutables, así como los costes de los posibles cambios. Analizar la corrección de la aplicación, y su grado de cumplimiento respecto a los requisitos iniciales Permitir el estudio de alguna propiedad específica del dominio.
Marcos de Trabajo La reutilización de arquitecturas software se define dentro un marco de trabajo (framework, o abreviadamente MT). En general, un MT se suele definir de la siguiente forma: 	“Un MT es el esqueleto de una aplicación que debe ser adaptado a necesidades concretas por el programador de la aplicación”
Un MT encapsula el patrón de la arquitectura software de un sistema o de alguna de sus partes. Las principales ventajas que ofrecen los MT son la reducción del coste de los procesos de desarrollo de aplicaciones software para dominios específicos, y la mejora de la calidad del producto final. Sin embargo, la utilización de MT presenta actualmente ciertas dificultades, aunque se suelen englobar todas en el problema de la documentación de un MT
Paradigmas de Programación para Sistemas Abiertos Al principio sólo existía la programación secuencial, pues cada programa sólo se ejecutaba en una maquina monoprocesador y aislada. Posteriormente aparecieron las máquinas multiprocesador y los sistemas operativos multitarea, por lo que nacieron nuevos paradigmas y mecanismos de programación. (Programación concurrente y programación distribuida)
Programación Orientada a Componentes (POC) La POC nace con el objetivo de construir un mercado global de componentes software, cuyos usuarios son los propios desarrolladores de aplicaciones que necesitan reutilizar componentes ya hechos y probados para construir sus aplicaciones de forma más rápida y robusta.
Tendencias actuales de la POC La adecuación de los lenguajes de programación Diseño de nuevos lenguajes y modelos de componentes La construcción de herramientas de desarrollo y marcos de trabajo para componentes La aplicación de técnicas formales para razonar sobre las aplicaciones desarrolladas a base de componentes.
En cuanto a los lenguajes de programación, sólo hay unos pocos que realmente incorporen conceptos suficientes para realizar una programación orientada a componentes: Oberón, Java, Ada95, Modula-3 y Component Pascal.
Tecnologías de componentes estandarizadas  CORBA (CommonObjectRequestBrokerArchitecture — arquitectura común de intermediarios en peticiones a objetos): Es un estándar que establece una plataforma de desarrollo de sistemas distribuidos facilitando la invocación de métodos remotos bajo un paradigma orientado a objetos.
DCOM (DistributedComponentObjectModel-Modelo de Objetos de Componentes Distribuidos): Es una tecnología propietaria de Microsoft para desarrollar componentes software distribuidos sobre varios ordenadores y que se comunican entre sí.  .NET es un framework de Microsoft que hace un énfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones.
Enterprise JavaBeans: Modelo de componentes basado en arquitectura cliente servidor. Esta plataforma ofrece una solución multiplataforma, de fácil reutilización, integración universal con otros componentes además de la maquina virtual de java. 	La tecnología java a estado a la vanguardia del DSBC y constituye una referencia clave en este tema.
La programación de aplicaciones distribuidas se basa en un conjunto de servicios que proporcionan a los componentes el acceso a los recursos compartidos de una forma segura y eficiente. Estos servicios suelen englobarse en las siguientes categorías básicas: Comunicaciones Remotas Servicios de Directorio Seguridad Transacciones Gestión
Problemas típicos de la POC Clarividencia: dificultad con la que se encuentra el diseñador de un componente al realizar su diseño, pues no conoce ni quien lo utilizará, ni cómo, ni en qué entorno, ni para qué aplicación Evolución de los componentes. La gestión de la evolución es un problema serio, pues en los sistemas grandes han de poder coexistir varias versiones de un mismo componente
Particularización. Cómo particularizar los servicios que ofrece un componente para adaptarlo a las necesidades y requisitos concretos de nuestra aplicación, sin poder manipular su implementación. Falta de soporte formal. Por otro lado, la POC también se encuentra con otro reto añadido, como es la dificultad que encuentran los métodos formales para trabajar con sus peculiaridades
Puntos a considerar sobre un Mercado global de software Componentes COTS (commercial off-the-shelf). Búsqueda y reconocimiento de los componentes que se necesitan, su posible adaptación, o la resolución de solapamientos entre las funciones y servicios que ofrecen. Estándares que garanticen la interoperabilidad de los componentes a la hora de construir aplicaciones

Más contenido relacionado

La actualidad más candente

Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitectura
Fatima Cham
 
Ventajas y desventajas de cmmi
Ventajas y desventajas de cmmiVentajas y desventajas de cmmi
Ventajas y desventajas de cmmi
Sandrea Rodriguez
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
martin
 
Aplicaciones prácticas de las arquitecturas orientadas al servicio
Aplicaciones prácticas de las arquitecturas orientadas al servicioAplicaciones prácticas de las arquitecturas orientadas al servicio
Aplicaciones prácticas de las arquitecturas orientadas al servicio
Grial - University of Salamanca
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
Micky Jerzy
 

La actualidad más candente (20)

Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitectura
 
Plan desarrollo software
Plan desarrollo softwarePlan desarrollo software
Plan desarrollo software
 
Ventajas y desventajas de cmmi
Ventajas y desventajas de cmmiVentajas y desventajas de cmmi
Ventajas y desventajas de cmmi
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
 
Aplicaciones prácticas de las arquitecturas orientadas al servicio
Aplicaciones prácticas de las arquitecturas orientadas al servicioAplicaciones prácticas de las arquitecturas orientadas al servicio
Aplicaciones prácticas de las arquitecturas orientadas al servicio
 
Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacion
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
Ingenieria de requerimientos
Ingenieria de requerimientosIngenieria de requerimientos
Ingenieria de requerimientos
 
Metodología basada en componentes
Metodología basada en componentes Metodología basada en componentes
Metodología basada en componentes
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
Requerimientos no funcionales
Requerimientos no funcionalesRequerimientos no funcionales
Requerimientos no funcionales
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Proyecto de reingenieria de software
Proyecto de reingenieria  de softwareProyecto de reingenieria  de software
Proyecto de reingenieria de software
 
Patrones GRASP
Patrones GRASPPatrones GRASP
Patrones GRASP
 
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
Concurrencia y asincronía: Lenguajes, modelos y rendimiento: GDG Toledo Enero...
 
Procesos de evolución del software
Procesos de evolución del softwareProcesos de evolución del software
Procesos de evolución del software
 
Metodologia orientada a objetos
Metodologia orientada a objetosMetodologia orientada a objetos
Metodologia orientada a objetos
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Modelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareModelos o Ciclos de vida de software
Modelos o Ciclos de vida de software
 
Metodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesMetodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentes
 

Similar a Desarrollo de software basado en componentes

Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
Jose Garcia
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del software
Daniel Merchan
 
Nuevas tecnologías reingsys 31_3_09
Nuevas tecnologías reingsys 31_3_09Nuevas tecnologías reingsys 31_3_09
Nuevas tecnologías reingsys 31_3_09
Reingsys
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
Edwin Alexander
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1
preciadoag
 

Similar a Desarrollo de software basado en componentes (20)

Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1Sanchez garcia juan jose  definiciones en la ingeniería de software sis4-1
Sanchez garcia juan jose definiciones en la ingeniería de software sis4-1
 
ing del software
 ing del software  ing del software
ing del software
 
Proyecto
ProyectoProyecto
Proyecto
 
Proyecto
ProyectoProyecto
Proyecto
 
Presentacion lineas de productos de software y el metodo watch
Presentacion lineas de productos de software y el metodo watchPresentacion lineas de productos de software y el metodo watch
Presentacion lineas de productos de software y el metodo watch
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del software
 
Nuevas tecnologías reingsys 31_3_09
Nuevas tecnologías reingsys 31_3_09Nuevas tecnologías reingsys 31_3_09
Nuevas tecnologías reingsys 31_3_09
 
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
 
Tarea semana 1
Tarea semana 1Tarea semana 1
Tarea semana 1
 
Tareasemana1
Tareasemana1Tareasemana1
Tareasemana1
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelos
 
Poc
PocPoc
Poc
 
Adrian adrianza
Adrian adrianzaAdrian adrianza
Adrian adrianza
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
Modelos de procesos de software(completo)
Modelos de procesos de software(completo)Modelos de procesos de software(completo)
Modelos de procesos de software(completo)
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Tema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadTema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de Calidad
 
Ingenieroa de de Software Conceptos Iniciales
Ingenieroa de de Software Conceptos InicialesIngenieroa de de Software Conceptos Iniciales
Ingenieroa de de Software Conceptos Iniciales
 
Ingenieria de Software Introducción a los Conceptos Basicos
Ingenieria de Software Introducción a los Conceptos BasicosIngenieria de Software Introducción a los Conceptos Basicos
Ingenieria de Software Introducción a los Conceptos Basicos
 

Último

TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 

Último (20)

Factores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdfFactores que intervienen en la Administración por Valores.pdf
Factores que intervienen en la Administración por Valores.pdf
 
Actividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docxActividades para el 11 de Mayo día del himno.docx
Actividades para el 11 de Mayo día del himno.docx
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdfFICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
FICHA PROYECTO COIL- GLOBAL CLASSROOM.docx.pdf
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 

Desarrollo de software basado en componentes

  • 1. Desarrollo de Software Basado en Componentes Ulises Cruz Miranda
  • 2. Introducción Los continuos avances en la Informática y las Telecomunicaciones están haciendo cambiar la forma en la que se desarrollan actualmente las aplicaciones software Aumento de la potencia de los ordenadores Abaratamiento de los costos del hardware Redes de datos de cobertura global Modelos de programación existentes desbordados Nuevos paradigmas de programación
  • 3. Los desarrollos tradicionales de aplicaciones incurren en altos costos y en una inversión de tiempo extensa. El DSBC busca, dentro de otros objetivos, reducir el tiempo de trabajo, el esfuerzo que requiere implementar una aplicación y los costos del proyecto, y, de esta forma, incrementar el nivel de productividad de los grupos desarrolladores y minimizar los riesgos globales. Desarrollo de Software Basado en Componentes
  • 4. Desarrollo de Software Basado en Componentes Ensamblaje de partes de software previamente elaboradas Inspirada en los procesos de producción de sistemas físicos: Producción de aviones, vehículos, computadores, aparatos electrónicos, etc. Fundamentada en la Reutilización de Software Orientar esfuerzos hacia una industria de partes
  • 5. Componente “Un componente es una unidad de composición de aplicaciones software, que posee un conjunto de interfaces y un conjunto de requisitos, y que ha de poder ser desarrollado, adquirido, incorporado al sistema y compuesto con otros componentes de forma independiente, en tiempo y espacio” [Szyperski, 1998].
  • 6. Definición de los 7 criterios [Meyer,1999]: Puede ser usado por otros elementos de SW Puede ser usado por los clientes sin la necesidad de la intervención del desarrollador. Incluye las especificaciones de todas las dependencias. Incluye documentación de las funcionalidades que ofrece Se puede entender su funcionamiento en base a las especificaciones. Se puede acoplar a otros componentes Puede ser incorporado a un sistema de manera suave y rápida
  • 7. Modelo del Ciclo de vida de DSBC
  • 8. Arquitecturas Software y Marcos de Trabajo El disponer de componentes software no es suficiente para desarrollar aplicaciones, ya provengan éstos de un mercado global o sean desarrollados a medida para la aplicación. Un aspecto crítico a la hora de construir sistemas complejos es el diseño de la estructura del sistema.
  • 9. Arquitectura Software Entendemos por Arquitectura Software la representación de alto nivel de la estructura de un sistema o aplicación, que describe las partes que la integran, las interacciones entre ellas, los patrones que supervisan su composición, y las restricciones a la hora de aplicar esos patrones.
  • 10. En general, la arquitectura software nace como una herramienta de alto nivel para cubrir distintos objetivos: Comprender y manejar la estructura de las aplicaciones complejas. Reutilizar dicha estructura (o partes de ella) para resolver problemas similares. Planificar la evolución de la aplicación, identificando sus partes mutables e inmutables, así como los costes de los posibles cambios. Analizar la corrección de la aplicación, y su grado de cumplimiento respecto a los requisitos iniciales Permitir el estudio de alguna propiedad específica del dominio.
  • 11. Marcos de Trabajo La reutilización de arquitecturas software se define dentro un marco de trabajo (framework, o abreviadamente MT). En general, un MT se suele definir de la siguiente forma: “Un MT es el esqueleto de una aplicación que debe ser adaptado a necesidades concretas por el programador de la aplicación”
  • 12. Un MT encapsula el patrón de la arquitectura software de un sistema o de alguna de sus partes. Las principales ventajas que ofrecen los MT son la reducción del coste de los procesos de desarrollo de aplicaciones software para dominios específicos, y la mejora de la calidad del producto final. Sin embargo, la utilización de MT presenta actualmente ciertas dificultades, aunque se suelen englobar todas en el problema de la documentación de un MT
  • 13. Paradigmas de Programación para Sistemas Abiertos Al principio sólo existía la programación secuencial, pues cada programa sólo se ejecutaba en una maquina monoprocesador y aislada. Posteriormente aparecieron las máquinas multiprocesador y los sistemas operativos multitarea, por lo que nacieron nuevos paradigmas y mecanismos de programación. (Programación concurrente y programación distribuida)
  • 14. Programación Orientada a Componentes (POC) La POC nace con el objetivo de construir un mercado global de componentes software, cuyos usuarios son los propios desarrolladores de aplicaciones que necesitan reutilizar componentes ya hechos y probados para construir sus aplicaciones de forma más rápida y robusta.
  • 15. Tendencias actuales de la POC La adecuación de los lenguajes de programación Diseño de nuevos lenguajes y modelos de componentes La construcción de herramientas de desarrollo y marcos de trabajo para componentes La aplicación de técnicas formales para razonar sobre las aplicaciones desarrolladas a base de componentes.
  • 16. En cuanto a los lenguajes de programación, sólo hay unos pocos que realmente incorporen conceptos suficientes para realizar una programación orientada a componentes: Oberón, Java, Ada95, Modula-3 y Component Pascal.
  • 17. Tecnologías de componentes estandarizadas CORBA (CommonObjectRequestBrokerArchitecture — arquitectura común de intermediarios en peticiones a objetos): Es un estándar que establece una plataforma de desarrollo de sistemas distribuidos facilitando la invocación de métodos remotos bajo un paradigma orientado a objetos.
  • 18. DCOM (DistributedComponentObjectModel-Modelo de Objetos de Componentes Distribuidos): Es una tecnología propietaria de Microsoft para desarrollar componentes software distribuidos sobre varios ordenadores y que se comunican entre sí. .NET es un framework de Microsoft que hace un énfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones.
  • 19. Enterprise JavaBeans: Modelo de componentes basado en arquitectura cliente servidor. Esta plataforma ofrece una solución multiplataforma, de fácil reutilización, integración universal con otros componentes además de la maquina virtual de java. La tecnología java a estado a la vanguardia del DSBC y constituye una referencia clave en este tema.
  • 20. La programación de aplicaciones distribuidas se basa en un conjunto de servicios que proporcionan a los componentes el acceso a los recursos compartidos de una forma segura y eficiente. Estos servicios suelen englobarse en las siguientes categorías básicas: Comunicaciones Remotas Servicios de Directorio Seguridad Transacciones Gestión
  • 21. Problemas típicos de la POC Clarividencia: dificultad con la que se encuentra el diseñador de un componente al realizar su diseño, pues no conoce ni quien lo utilizará, ni cómo, ni en qué entorno, ni para qué aplicación Evolución de los componentes. La gestión de la evolución es un problema serio, pues en los sistemas grandes han de poder coexistir varias versiones de un mismo componente
  • 22. Particularización. Cómo particularizar los servicios que ofrece un componente para adaptarlo a las necesidades y requisitos concretos de nuestra aplicación, sin poder manipular su implementación. Falta de soporte formal. Por otro lado, la POC también se encuentra con otro reto añadido, como es la dificultad que encuentran los métodos formales para trabajar con sus peculiaridades
  • 23. Puntos a considerar sobre un Mercado global de software Componentes COTS (commercial off-the-shelf). Búsqueda y reconocimiento de los componentes que se necesitan, su posible adaptación, o la resolución de solapamientos entre las funciones y servicios que ofrecen. Estándares que garanticen la interoperabilidad de los componentes a la hora de construir aplicaciones