SlideShare ist ein Scribd-Unternehmen logo
1 von 15
PROGRAMACIÓN
ORIENTADA A
COMPONENTES
FERNANDO SOLIS
INTRODUCCIÓN
• EL USO DE COMPONENTES ES MADURO EN MUCHAS
DISCIPLINAS DE INGENIERÍA.
• EN EL AMBITO DEL SOFTWARE, RECIEN SE TIENE EXITO EN
SU USO A PARTIR DEL 1990
• LAS RAZONES DEL FRACASO SE PUEDEN ATRIBUIR A LA
NATURALEZA DEL SW.
NATURALEZA DEL SW
• LOS COMPONENTES DE SOFTWARE FUERON INICIALMENTE
CONSIDERADOS SIMILARES A LOS COMPONENTES DE HARDWARE,
COMO LOS CIRCUITOS INTEGRADOS.
• ASÍ, EL TÉRMINO ''CIRCUITO INTEGRADO DE SOFTWARE'' SE VOLVIÓ
FASCINANTE.
• TAMBIÉN SE HICIERON ANALOGÍAS DE ESTE TIPO EN LA MECÁNICA Y
LA INGENIERÍA CIVIL.
• EL SOFTWARE ES DIFERENTE A LOS PRODUCTOS DE TODAS LAS
DEMÁS DISCIPLINAS DE INGENIERÍA. EN LUGAR DE ENTREGAR UN
PRODUCTO FINAL, LA ENTREGA DE SOFTWARE SIGNIFICA LA ENTREGA
DE MODELOS PARA LOS PRODUCTOS.
LOS COMPONENTES SON PARA
COMPOSICIÓN
• LA COMPOSICION PERMITE REUSAR “COSAS PREFABRICADAS”
ADAPTANDOLAS EN EL NUEVO AMBIENTE.
• COMPONENTES DE SOFTWARE
• SON UNIDADES EJECUTABLES DE PRODUCCIÓN INDEPENDIENTES.
• ABSTRACCIONES, TALES COMO PROCEDIMIENTOS, CLASES,
MÓDULOS O APLICACIONES, PODRÍAN FORMAR COMPONENTES,
SIEMPRE Y CUANDO ESTÉN EN UNA FORMA EJECUTABLE
SUSCEPTIBLE DE SER UN COMPONENTE.
• LAS BIBLIOTECAS PROCEDURALES SON EL EJEMPLO MÁS ANTIGUO
DE LOS COMPONENTES DE SOFTWARE
• INDEPENDENCIA Y FORMA EJECUTABLE SON ESENCIALES CON EL
FIN DE PERMITIR EL DESARROLLO INDEPENDIENTE Y LA
INTEGRACIÓN ROBUSTA.
POR QUÉ PRODUCIR, COMPRAR,
DISTRIBUIR, USAR…
COMPONENTES DE SW?
• LOS COMPONENTES SON EL CAMINO A SEGUIR PORQUE TODAS
LAS DISCIPLINAS DE INGENIERÍA INTRODUJERON
COMPONENTES A MEDIDA QUE FUERON MADURANDO - Y
TODAVÍA LOS UTILIZAN.
• POCO DESPUÉS DE LA CRISIS DEL SOFTWARE SE ACUÑÓ EL
TÉRMINO, FUE PREVISTO TAMBIÉN: SOFTWARE DE CIRCUITOS
INTEGRADOS (MCILROY 1968; COX 1990) DESDE ENTONCES,
HACE 30 AÑOS, LAS PERSONAS HAN PREGUNTADO POR QUÉ
ESTE IDEA INTUITIVA REALMENTE NUNCA LLEGÓ A
REALIZARSE.
BENEFICIOS
• EL DESARROLLO DE SOFTWARE TRADICIONAL PUEDEN DIVIDIRSE EN
DOS CAMPOS.
• EN UN EXTREMO, UN PROYECTO DESARROLLADO ÍNTEGRAMENTE
DESDE CERO (LÍNEA POR LÍNEA), CON LA AYUDA SÓLO DE
HERRAMIENTAS DE PROGRAMACIÓN Y BIBLIOTECAS.
• EN EL OTRO EXTREMO, TODO ES "EXTERNALIZADO" - EN OTRAS
PALABRAS, EL SOFTWARE ESTÁNDAR SE COMPRA Y SE PARAMETRIZA
PARA PROPORCIONAR UNA SOLUCIÓN QUE ESTA LO "SUFICIENTEMENTE
CERCA" A LO QUE SE NECESITA.
ESTE TIPO DE SOFTWARE TIENE VENTAJAS SIGNIFICATIVAS (CUANDO
FUNCIONA):
• PUEDE SER ÓPTIMAMENTE ADAPTADO AL MODELO DE NEGOCIO DEL
USUARIO
• PUEDE TOMAR VENTAJA DE CUALQUIER CONOCIMIENTO DE SU PROPIEDAD
O PRÁCTICAS.
• PUEDE PROPORCIONAR UNA VENTAJA COMPETITIVA EN LA ERA DE LA
ANTECENDENTES: SW HECHO
LÍNEA POR LÍNEA (DESVENTAJAS)
• LA PRODUCCIÓN DE SW DESDE CERO ES UNA EMPRESA MUY
COSTOSA.
• EL MANTENIMIENTO Y EL SEGUIMIENTO DEL ESTADO DEL ARTE, COMO
EL INCORPORAR ACCESOS WEB, PUEDEN CONVERTIRSE EN UNA
MAYOR CARGA.
• LOS REQUERIMIENTOS DE INTEROPERABILIDAD CON OTROS SISTEMAS
LOCALES TAMBIÉN SE VEN AFECTADOS.
• COMO RESULTADO, LA MAYORÍA DE LOS PROYECTOS GRANDES
FALLAN PARCIALMENTE O TOTALMENTE, CONDUCIENDO A UN RIESGO
SUSTANCIAL. ADEMÁS, EN UN MUNDO DE RÁPIDOS Y CONTÍNUOS
CAMBIOS EN LOS REQUERIMIENTOS DE NEGOCIOS, EL SOFTWARE
HECHO LÍNEA POR LÍNEA ES USUALMENTE MUY LENTO PARA SER
PRODUCTIVO ANTES DE CONVERTIRSE EN OBSOLETO.
TENDENCIA OUTSOURCING
• FRENTE A TODAS ESTAS DESVENTAJAS MENCIONADAS, LA GRAN TENDENCIA HACIA
EL "OUTSOURCING" EN LA INDUSTRIA ES COMPRENSIBLE.
• LA PRODUCCIÓN DE SOFTWARE A MEDIDA ES SUBCONTRATADA POR DEBAJO DEL
PRECIO FIJADO, PARA LIMITAR EL RIESGO FINANCIERO, PARA CUBRIR EL RIESGO DE
TIEMPO DE SALIDA AL MERCADO.
• HAY UNA FUERTE TENDENCIA HACIA EL USO DE SOFTWARE ESTÁNDAR - ES DECIR, EL
SOFTWARE QUE ES SÓLO LIGERAMENTE AJUSTADO A LAS NECESIDADES REALES.
• LA CARGA DE MANTENIMIENTO, EVOLUCIÓN DEL PRODUCTO, Y LA
INTEROPERABILIDAD SE DEJA AL PROVEEDOR DEL PAQUETE ESTÁNDAR.
• LO QUE QUEDA ES LLEVAR LA PARAMETRIZACIÓN Y EL DETALLE DE CONFIGURACIÓN
AL PRÓXIMO LANZAMIENTO - TODAVÍA UN ESFUERZO CONSIDERABLE, PERO
INEVITABLE EN UN MUNDO DE CAMBIO.
¿QUÉ HAY DE MALO EN SOFTWARE
ESTÁNDAR?
• EN PRIMER LUGAR, SOFTWARE ESTÁNDAR PUEDE REQUERIR
UNA REORGANIZACIÓN MAYOR O MENOR DE LOS PROCESOS
DE NEGOCIO AFECTADO. AUNQUE EL PROCESO DE
REINGENIERÍA DEL NEGOCIO PUEDE VALER LA PENA EN LA
EMPRESA.
• SEGUNDO EL SOFTWARE ESTÁNDAR ES UN ESTÁNDAR.
INTENTA DAR UNA SOLUCIÓN GENERAL A UN PROBLEMA
AMPLIO. LO CUAL NOS RESTRINGE SU USO, EXCEPTO QUE SE
UTILICE EXTREMADAMENTE BIEN.
• EN TERCER LUGAR, COMO SOFTWARE ESTÁNDAR NO ESTÁ
BAJO EL CONTROL LOCAL, NO ES SUFICIENTEMENTE ÁGIL
COMO PARA ADAPTARSE RÁPIDAMENTE A LAS NECESIDADES
CAMBIANTES.
EL ESPECTRO ENTRE HACERLO
TODO Y COMPRARLO TODO
Cuando todo esta
hecho a medida, la
flexibilidad no tiene
límites pero la
rentabilidad cae en
picada.
LOS COMPONENTES SON
INEVITABLES
• EL DESARROLLO DE LA TECNOLOGÍA DE COMPONENTES EXCELENTES NO ES
SUFICIENTE PARA ESTABLECER UN MERCADO. LA DISCIPLINA ESTÁ LLENA DE
EJEMPLOS DE PRODUCTOS TÉCNICAMENTE SUPERIORES QUE NO PUDIERON
CAPTURAR MERCADOS SUFICIENTEMENTE GRANDES. ADEMÁS DE LA SUPERIORIDAD
TÉCNICA DE UN COMPONENTE SE NECESITA UNA MASA CRÍTICA PARA DESPEGAR.
• UN PARADIGMA DE COMPONENTES GANA UNA GRAN CLIENTELA SI LOS
COMPONENTES OFRECIDOS TIENEN SUFICIENTE VARIEDAD Y CALIDAD, ENTONCES,
EXISTE UN BENEFICIO OBVIO AL USAR COMPONENTES.
• UNA VEZ QUE LOS CLIENTES HAN CUBIERTO SUS NECESIDADES EN UN SEGMENTO DEL
MERCADO, EL USO DE COMPONENTES EN ESE SEGMENTO SE VUELVE INEVITABLE.
…LOS COMPONENTES SON
INEVITABLES
• SI NO SE ENCUENTRAN LOS COMPONENTES REQUERIDOS
DISPONIBLES, SE PROVOCA LA REINVENCIÓN DE SOLUCIONES.
ESTO SÓLO PUEDE SER JUSTIFICADO CUANDO LA SOLUCIÓN
CREADA ES SUPERIOR A LA ALTERNATIVA QUE SE PUEDE
COMPRAR.
• UN PRODUCTO QUE UTILIZA LOS BENEFICIOS DE LOS
COMPONENTES, ES EL QUE HACE USO DE UNA COMBINACIÓN
DE PRODUCTIVIDAD E INNOVACIÓN DE TODOS LOS
VENDEDORES DE COMPONENTES. LOS VENDEDORES DE
COMPONENTES ESTÁN ENFOCADOS EN PROVEER A MUCHOS
CLIENTES DIFERENTES Y ASÍ SER CAPACES DE PERFECCIONAR
SUS COMPONENTES RÁPIDAMENTE.
LOS COMPONENTES SON
UNIDADES DE IMPLEMENTACIÓN
• UN COMPONENTE DE SOFTWARE UNA IMPLEMENTACIÓN AISLADA DE
UN SISTEMA.
• CONTRARIO A LO QUE SE HA DICHO, LOS OBJETOS CASI NUNCA SE
COMPRAN, VENDEN O IMPLEMENTAN.
• LA UNIDAD DE IMPLEMENTACIÓN ES ALGO MAS BIEN MÁS ESTÁTICO,
COMO UNA CLASE, O, MÁS PROBABLEMENTE, UN CONJUNTO DE
CLASES, COMPILADO Y ENLAZADO EN ALGÚN PAQUETE.
• AUNQUE UN COMPONENTE PUEDE SER UNA SOLA CLASE, ES MÁS
PROBABLE QUE SEA UNA COLECCIÓN DE CLASES, ALGUNAS VECES
LLAMADO MÓDULO.
MERCADOS
• RECIENTEMENTE HAN SURGIDO MERCADOS EXITOSOS
BASADOS EN TECNOLOGÍAS DE COMPONENTES.
• COMPAÑÍAS COMO COMPONENTSOURCE.COM O
FLASHLINE.COM VENDEN MILES DE COMPONENTES YA
HECHOS, LA MAYORÍA EN COM Y CATEGORÍAS EN JAVA,
PERO COMPONENTES VCL (UNA TECNOLOGÍA DE
DELPHI/C++ BUILDER POR BORLAND) Y .NET TAMBIÉN
ESTÁN PRESENTES. COMPAÑÍAS COMO ILOG Y ROUGE WAVE
SOFTWARE GENERAN INGRESOS SUSTANCIALES AL
ENFOCARSE EN SU PRODUCCIÓN DE COMPONENTES.
BIBLIOGRAFIA
• HTTP://COMPUTACION.CS.CINVESTAV.MX/~SGARRIDO/CU
RSOS/ING_SOFT/COMPONENTES/NODE4.HTML

Weitere ähnliche Inhalte

Was ist angesagt?

Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
xpjair
 
Software propietario
Software propietarioSoftware propietario
Software propietario
Maria Fabiola
 
Introducción a los Sistemas Operativos
Introducción a los Sistemas OperativosIntroducción a los Sistemas Operativos
Introducción a los Sistemas Operativos
Gabriela
 

Was ist angesagt? (20)

Mapa conceptual apache y iis
Mapa conceptual apache y iisMapa conceptual apache y iis
Mapa conceptual apache y iis
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 
Sistema operativo ms dos
Sistema operativo  ms dosSistema operativo  ms dos
Sistema operativo ms dos
 
Oracle
Oracle Oracle
Oracle
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Unidad III procedimientos
Unidad III procedimientosUnidad III procedimientos
Unidad III procedimientos
 
DEFINICION DE CALIDAD Y CALIDAD DE SOFTWARE
DEFINICION DE CALIDAD Y CALIDAD DE SOFTWAREDEFINICION DE CALIDAD Y CALIDAD DE SOFTWARE
DEFINICION DE CALIDAD Y CALIDAD DE SOFTWARE
 
Los sistemas operativos de Red
Los sistemas operativos de Red Los sistemas operativos de Red
Los sistemas operativos de Red
 
Ejemplos práctios de calidad en el software tecdencies
Ejemplos práctios de calidad en el software tecdenciesEjemplos práctios de calidad en el software tecdencies
Ejemplos práctios de calidad en el software tecdencies
 
Framework Laravel
Framework LaravelFramework Laravel
Framework Laravel
 
PROGRAMACIÓN DE DISPOSITIVOS MÓVILES
PROGRAMACIÓN DE DISPOSITIVOS MÓVILESPROGRAMACIÓN DE DISPOSITIVOS MÓVILES
PROGRAMACIÓN DE DISPOSITIVOS MÓVILES
 
Métricas OO
Métricas OOMétricas OO
Métricas OO
 
Uso de flujo de Datos
Uso de flujo de DatosUso de flujo de Datos
Uso de flujo de Datos
 
INTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOSINTRODUCCION A LOS SISTEMAS OPERATIVOS
INTRODUCCION A LOS SISTEMAS OPERATIVOS
 
Software propietario
Software propietarioSoftware propietario
Software propietario
 
Estructura jerarquica
Estructura jerarquicaEstructura jerarquica
Estructura jerarquica
 
Transacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQLTransacciones y sql procedural EN MySQL
Transacciones y sql procedural EN MySQL
 
Sesion12-componentes Visuales java
Sesion12-componentes Visuales javaSesion12-componentes Visuales java
Sesion12-componentes Visuales java
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
Introducción a los Sistemas Operativos
Introducción a los Sistemas OperativosIntroducción a los Sistemas Operativos
Introducción a los Sistemas Operativos
 

Ähnlich wie Programacion orientada a componentes

La elección de un software – Clave del éxito.
La elección de un software – Clave del éxito.La elección de un software – Clave del éxito.
La elección de un software – Clave del éxito.
SoftDoit
 
PRESENTACION TBSFACTORY ES
PRESENTACION TBSFACTORY ESPRESENTACION TBSFACTORY ES
PRESENTACION TBSFACTORY ES
tbsfactory
 
Codigo abierto
Codigo abiertoCodigo abierto
Codigo abierto
José Fung
 
Software propietario y libre
Software propietario y libreSoftware propietario y libre
Software propietario y libre
aldo rivera
 
Software propietario y libre
Software propietario y libreSoftware propietario y libre
Software propietario y libre
aldo rivera
 

Ähnlich wie Programacion orientada a componentes (20)

La elección de un software – Clave del éxito.
La elección de un software – Clave del éxito.La elección de un software – Clave del éxito.
La elección de un software – Clave del éxito.
 
PRESENTACION TBSFACTORY ES
PRESENTACION TBSFACTORY ESPRESENTACION TBSFACTORY ES
PRESENTACION TBSFACTORY ES
 
Codigo abierto
Codigo abiertoCodigo abierto
Codigo abierto
 
Modelos de los ciclos de vida
Modelos de los ciclos de vidaModelos de los ciclos de vida
Modelos de los ciclos de vida
 
Eje tematico no. 6 (1)
Eje tematico no. 6 (1)Eje tematico no. 6 (1)
Eje tematico no. 6 (1)
 
informatica basica 4
informatica basica 4informatica basica 4
informatica basica 4
 
Programa de formación
Programa de formaciónPrograma de formación
Programa de formación
 
Software libre y software gratis
Software libre y software gratisSoftware libre y software gratis
Software libre y software gratis
 
Centro de estudios tecnologicos industriales y de servicios
Centro de estudios tecnologicos industriales y de serviciosCentro de estudios tecnologicos industriales y de servicios
Centro de estudios tecnologicos industriales y de servicios
 
Las apps
Las appsLas apps
Las apps
 
Tipos de software
Tipos de softwareTipos de software
Tipos de software
 
tipos de sistema y plataformas disponibles.pptx
tipos de sistema y plataformas disponibles.pptxtipos de sistema y plataformas disponibles.pptx
tipos de sistema y plataformas disponibles.pptx
 
PresentacionN
PresentacionNPresentacionN
PresentacionN
 
Software privativo
Software privativoSoftware privativo
Software privativo
 
Proceso unificado de desarrollo de software
Proceso unificado de desarrollo de softwareProceso unificado de desarrollo de software
Proceso unificado de desarrollo de software
 
Presentación1
Presentación1Presentación1
Presentación1
 
Sistema operativo y mantenimiento pc int 3ro
Sistema operativo y mantenimiento pc int 3roSistema operativo y mantenimiento pc int 3ro
Sistema operativo y mantenimiento pc int 3ro
 
Las apps
Las appsLas apps
Las apps
 
Software propietario y libre
Software propietario y libreSoftware propietario y libre
Software propietario y libre
 
Software propietario y libre
Software propietario y libreSoftware propietario y libre
Software propietario y libre
 

Mehr von mellcv

Mehr von mellcv (20)

INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓNINTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
 
INTERACCIÓN ENTRE CLASES, HERENCIAS
INTERACCIÓN ENTRE CLASES, HERENCIASINTERACCIÓN ENTRE CLASES, HERENCIAS
INTERACCIÓN ENTRE CLASES, HERENCIAS
 
Asp .net
Asp .netAsp .net
Asp .net
 
Asp
AspAsp
Asp
 
Eventos
EventosEventos
Eventos
 
ARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICESARREGLOS EN JAVA, VECTORES Y MATRICES
ARREGLOS EN JAVA, VECTORES Y MATRICES
 
Arquitectura basada en componentes
Arquitectura basada en componentesArquitectura basada en componentes
Arquitectura basada en componentes
 
Poc 2
Poc 2Poc 2
Poc 2
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
Poc
PocPoc
Poc
 
PAQUETES EN JAVA
PAQUETES EN JAVAPAQUETES EN JAVA
PAQUETES EN JAVA
 
EXCEPCIONES JAVA
EXCEPCIONES JAVAEXCEPCIONES JAVA
EXCEPCIONES JAVA
 
Programacion orientada a objetos 2
Programacion orientada a objetos 2Programacion orientada a objetos 2
Programacion orientada a objetos 2
 
Programacion orientada a objetos 1
Programacion orientada a objetos 1Programacion orientada a objetos 1
Programacion orientada a objetos 1
 
MODIFICADORES Y METODOS DE ACCESO
MODIFICADORES Y METODOS DE ACCESOMODIFICADORES Y METODOS DE ACCESO
MODIFICADORES Y METODOS DE ACCESO
 
INSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVAINSTANCIAS Y CONSTRUCTORES EN JAVA
INSTANCIAS Y CONSTRUCTORES EN JAVA
 
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMAENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
ENTORNO DE DESARROLLO, ESTRUTURA GENERAL DE UN PROGRAMA
 
Lenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptosLenguaje de programacion java, conceptos
Lenguaje de programacion java, conceptos
 
Principios fundamentales de la programación orientado a objetos
 Principios fundamentales de la programación orientado a objetos  Principios fundamentales de la programación orientado a objetos
Principios fundamentales de la programación orientado a objetos
 
Introduccion al lenguage java
Introduccion al lenguage javaIntroduccion al lenguage java
Introduccion al lenguage java
 

Kürzlich hochgeladen

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Kürzlich hochgeladen (12)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 

Programacion orientada a componentes

  • 2. INTRODUCCIÓN • EL USO DE COMPONENTES ES MADURO EN MUCHAS DISCIPLINAS DE INGENIERÍA. • EN EL AMBITO DEL SOFTWARE, RECIEN SE TIENE EXITO EN SU USO A PARTIR DEL 1990 • LAS RAZONES DEL FRACASO SE PUEDEN ATRIBUIR A LA NATURALEZA DEL SW.
  • 3. NATURALEZA DEL SW • LOS COMPONENTES DE SOFTWARE FUERON INICIALMENTE CONSIDERADOS SIMILARES A LOS COMPONENTES DE HARDWARE, COMO LOS CIRCUITOS INTEGRADOS. • ASÍ, EL TÉRMINO ''CIRCUITO INTEGRADO DE SOFTWARE'' SE VOLVIÓ FASCINANTE. • TAMBIÉN SE HICIERON ANALOGÍAS DE ESTE TIPO EN LA MECÁNICA Y LA INGENIERÍA CIVIL. • EL SOFTWARE ES DIFERENTE A LOS PRODUCTOS DE TODAS LAS DEMÁS DISCIPLINAS DE INGENIERÍA. EN LUGAR DE ENTREGAR UN PRODUCTO FINAL, LA ENTREGA DE SOFTWARE SIGNIFICA LA ENTREGA DE MODELOS PARA LOS PRODUCTOS.
  • 4. LOS COMPONENTES SON PARA COMPOSICIÓN • LA COMPOSICION PERMITE REUSAR “COSAS PREFABRICADAS” ADAPTANDOLAS EN EL NUEVO AMBIENTE. • COMPONENTES DE SOFTWARE • SON UNIDADES EJECUTABLES DE PRODUCCIÓN INDEPENDIENTES. • ABSTRACCIONES, TALES COMO PROCEDIMIENTOS, CLASES, MÓDULOS O APLICACIONES, PODRÍAN FORMAR COMPONENTES, SIEMPRE Y CUANDO ESTÉN EN UNA FORMA EJECUTABLE SUSCEPTIBLE DE SER UN COMPONENTE. • LAS BIBLIOTECAS PROCEDURALES SON EL EJEMPLO MÁS ANTIGUO DE LOS COMPONENTES DE SOFTWARE • INDEPENDENCIA Y FORMA EJECUTABLE SON ESENCIALES CON EL FIN DE PERMITIR EL DESARROLLO INDEPENDIENTE Y LA INTEGRACIÓN ROBUSTA.
  • 5. POR QUÉ PRODUCIR, COMPRAR, DISTRIBUIR, USAR… COMPONENTES DE SW? • LOS COMPONENTES SON EL CAMINO A SEGUIR PORQUE TODAS LAS DISCIPLINAS DE INGENIERÍA INTRODUJERON COMPONENTES A MEDIDA QUE FUERON MADURANDO - Y TODAVÍA LOS UTILIZAN. • POCO DESPUÉS DE LA CRISIS DEL SOFTWARE SE ACUÑÓ EL TÉRMINO, FUE PREVISTO TAMBIÉN: SOFTWARE DE CIRCUITOS INTEGRADOS (MCILROY 1968; COX 1990) DESDE ENTONCES, HACE 30 AÑOS, LAS PERSONAS HAN PREGUNTADO POR QUÉ ESTE IDEA INTUITIVA REALMENTE NUNCA LLEGÓ A REALIZARSE.
  • 6. BENEFICIOS • EL DESARROLLO DE SOFTWARE TRADICIONAL PUEDEN DIVIDIRSE EN DOS CAMPOS. • EN UN EXTREMO, UN PROYECTO DESARROLLADO ÍNTEGRAMENTE DESDE CERO (LÍNEA POR LÍNEA), CON LA AYUDA SÓLO DE HERRAMIENTAS DE PROGRAMACIÓN Y BIBLIOTECAS. • EN EL OTRO EXTREMO, TODO ES "EXTERNALIZADO" - EN OTRAS PALABRAS, EL SOFTWARE ESTÁNDAR SE COMPRA Y SE PARAMETRIZA PARA PROPORCIONAR UNA SOLUCIÓN QUE ESTA LO "SUFICIENTEMENTE CERCA" A LO QUE SE NECESITA. ESTE TIPO DE SOFTWARE TIENE VENTAJAS SIGNIFICATIVAS (CUANDO FUNCIONA): • PUEDE SER ÓPTIMAMENTE ADAPTADO AL MODELO DE NEGOCIO DEL USUARIO • PUEDE TOMAR VENTAJA DE CUALQUIER CONOCIMIENTO DE SU PROPIEDAD O PRÁCTICAS. • PUEDE PROPORCIONAR UNA VENTAJA COMPETITIVA EN LA ERA DE LA
  • 7. ANTECENDENTES: SW HECHO LÍNEA POR LÍNEA (DESVENTAJAS) • LA PRODUCCIÓN DE SW DESDE CERO ES UNA EMPRESA MUY COSTOSA. • EL MANTENIMIENTO Y EL SEGUIMIENTO DEL ESTADO DEL ARTE, COMO EL INCORPORAR ACCESOS WEB, PUEDEN CONVERTIRSE EN UNA MAYOR CARGA. • LOS REQUERIMIENTOS DE INTEROPERABILIDAD CON OTROS SISTEMAS LOCALES TAMBIÉN SE VEN AFECTADOS. • COMO RESULTADO, LA MAYORÍA DE LOS PROYECTOS GRANDES FALLAN PARCIALMENTE O TOTALMENTE, CONDUCIENDO A UN RIESGO SUSTANCIAL. ADEMÁS, EN UN MUNDO DE RÁPIDOS Y CONTÍNUOS CAMBIOS EN LOS REQUERIMIENTOS DE NEGOCIOS, EL SOFTWARE HECHO LÍNEA POR LÍNEA ES USUALMENTE MUY LENTO PARA SER PRODUCTIVO ANTES DE CONVERTIRSE EN OBSOLETO.
  • 8. TENDENCIA OUTSOURCING • FRENTE A TODAS ESTAS DESVENTAJAS MENCIONADAS, LA GRAN TENDENCIA HACIA EL "OUTSOURCING" EN LA INDUSTRIA ES COMPRENSIBLE. • LA PRODUCCIÓN DE SOFTWARE A MEDIDA ES SUBCONTRATADA POR DEBAJO DEL PRECIO FIJADO, PARA LIMITAR EL RIESGO FINANCIERO, PARA CUBRIR EL RIESGO DE TIEMPO DE SALIDA AL MERCADO. • HAY UNA FUERTE TENDENCIA HACIA EL USO DE SOFTWARE ESTÁNDAR - ES DECIR, EL SOFTWARE QUE ES SÓLO LIGERAMENTE AJUSTADO A LAS NECESIDADES REALES. • LA CARGA DE MANTENIMIENTO, EVOLUCIÓN DEL PRODUCTO, Y LA INTEROPERABILIDAD SE DEJA AL PROVEEDOR DEL PAQUETE ESTÁNDAR. • LO QUE QUEDA ES LLEVAR LA PARAMETRIZACIÓN Y EL DETALLE DE CONFIGURACIÓN AL PRÓXIMO LANZAMIENTO - TODAVÍA UN ESFUERZO CONSIDERABLE, PERO INEVITABLE EN UN MUNDO DE CAMBIO.
  • 9. ¿QUÉ HAY DE MALO EN SOFTWARE ESTÁNDAR? • EN PRIMER LUGAR, SOFTWARE ESTÁNDAR PUEDE REQUERIR UNA REORGANIZACIÓN MAYOR O MENOR DE LOS PROCESOS DE NEGOCIO AFECTADO. AUNQUE EL PROCESO DE REINGENIERÍA DEL NEGOCIO PUEDE VALER LA PENA EN LA EMPRESA. • SEGUNDO EL SOFTWARE ESTÁNDAR ES UN ESTÁNDAR. INTENTA DAR UNA SOLUCIÓN GENERAL A UN PROBLEMA AMPLIO. LO CUAL NOS RESTRINGE SU USO, EXCEPTO QUE SE UTILICE EXTREMADAMENTE BIEN. • EN TERCER LUGAR, COMO SOFTWARE ESTÁNDAR NO ESTÁ BAJO EL CONTROL LOCAL, NO ES SUFICIENTEMENTE ÁGIL COMO PARA ADAPTARSE RÁPIDAMENTE A LAS NECESIDADES CAMBIANTES.
  • 10. EL ESPECTRO ENTRE HACERLO TODO Y COMPRARLO TODO Cuando todo esta hecho a medida, la flexibilidad no tiene límites pero la rentabilidad cae en picada.
  • 11. LOS COMPONENTES SON INEVITABLES • EL DESARROLLO DE LA TECNOLOGÍA DE COMPONENTES EXCELENTES NO ES SUFICIENTE PARA ESTABLECER UN MERCADO. LA DISCIPLINA ESTÁ LLENA DE EJEMPLOS DE PRODUCTOS TÉCNICAMENTE SUPERIORES QUE NO PUDIERON CAPTURAR MERCADOS SUFICIENTEMENTE GRANDES. ADEMÁS DE LA SUPERIORIDAD TÉCNICA DE UN COMPONENTE SE NECESITA UNA MASA CRÍTICA PARA DESPEGAR. • UN PARADIGMA DE COMPONENTES GANA UNA GRAN CLIENTELA SI LOS COMPONENTES OFRECIDOS TIENEN SUFICIENTE VARIEDAD Y CALIDAD, ENTONCES, EXISTE UN BENEFICIO OBVIO AL USAR COMPONENTES. • UNA VEZ QUE LOS CLIENTES HAN CUBIERTO SUS NECESIDADES EN UN SEGMENTO DEL MERCADO, EL USO DE COMPONENTES EN ESE SEGMENTO SE VUELVE INEVITABLE.
  • 12. …LOS COMPONENTES SON INEVITABLES • SI NO SE ENCUENTRAN LOS COMPONENTES REQUERIDOS DISPONIBLES, SE PROVOCA LA REINVENCIÓN DE SOLUCIONES. ESTO SÓLO PUEDE SER JUSTIFICADO CUANDO LA SOLUCIÓN CREADA ES SUPERIOR A LA ALTERNATIVA QUE SE PUEDE COMPRAR. • UN PRODUCTO QUE UTILIZA LOS BENEFICIOS DE LOS COMPONENTES, ES EL QUE HACE USO DE UNA COMBINACIÓN DE PRODUCTIVIDAD E INNOVACIÓN DE TODOS LOS VENDEDORES DE COMPONENTES. LOS VENDEDORES DE COMPONENTES ESTÁN ENFOCADOS EN PROVEER A MUCHOS CLIENTES DIFERENTES Y ASÍ SER CAPACES DE PERFECCIONAR SUS COMPONENTES RÁPIDAMENTE.
  • 13. LOS COMPONENTES SON UNIDADES DE IMPLEMENTACIÓN • UN COMPONENTE DE SOFTWARE UNA IMPLEMENTACIÓN AISLADA DE UN SISTEMA. • CONTRARIO A LO QUE SE HA DICHO, LOS OBJETOS CASI NUNCA SE COMPRAN, VENDEN O IMPLEMENTAN. • LA UNIDAD DE IMPLEMENTACIÓN ES ALGO MAS BIEN MÁS ESTÁTICO, COMO UNA CLASE, O, MÁS PROBABLEMENTE, UN CONJUNTO DE CLASES, COMPILADO Y ENLAZADO EN ALGÚN PAQUETE. • AUNQUE UN COMPONENTE PUEDE SER UNA SOLA CLASE, ES MÁS PROBABLE QUE SEA UNA COLECCIÓN DE CLASES, ALGUNAS VECES LLAMADO MÓDULO.
  • 14. MERCADOS • RECIENTEMENTE HAN SURGIDO MERCADOS EXITOSOS BASADOS EN TECNOLOGÍAS DE COMPONENTES. • COMPAÑÍAS COMO COMPONENTSOURCE.COM O FLASHLINE.COM VENDEN MILES DE COMPONENTES YA HECHOS, LA MAYORÍA EN COM Y CATEGORÍAS EN JAVA, PERO COMPONENTES VCL (UNA TECNOLOGÍA DE DELPHI/C++ BUILDER POR BORLAND) Y .NET TAMBIÉN ESTÁN PRESENTES. COMPAÑÍAS COMO ILOG Y ROUGE WAVE SOFTWARE GENERAN INGRESOS SUSTANCIALES AL ENFOCARSE EN SU PRODUCCIÓN DE COMPONENTES.