Desarrollo de Software Basado en Componentes

Slides:



Advertisements
Presentaciones similares
APLICACIONES DISTRIBUIDAS
Advertisements

Arquitecturas de administración de redes y sus submodelos
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
Introducción a LAS Bases de Datos
Diseño y Arquitectura sobre productos de software
Bases de datos distribuidas
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Arquitectura Orientada a Servicios (SOA)
Metodologías orientadas a objetos
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
MI PROGRAMA DE FORMACION
Introducción a la programación orientada a aspectos.
Términos Básicos y Conceptos
COMPONENTIZACIÓN DE ALGORITMOS GENETICOS Y SU IMPLEMENTACIÓN EN UNA PLATAFORMA ABIERTA PARA APRENDIZAJE COMPUTACIONAL.
TOGAF.
Java 2 Platform Enterprise Edition
Yeimi Constanza Patiño
Desarrollo de Software Basado en Componentes
M.S.C. Ivette Hernández Dávila
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
HERRAMIENTAS CASE.
Ingeniería de Software Dr. Marcello Visconti Departamento de Informática Universidad Técnica Federico Santa María
SEMANA Introducción.
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Ingeniería de Software
Programación e Ingeniería de Software III
Como Desarrollar SW Distribuido de Calidad
Bases de Datos Orientadas a Objetos (BDOO)
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
DATA WAREHOUSE Equipo 9.
Ciclo de Vida del Software Paradigmas de Desarrollo
LA IMPORTANCIA DE LAS PyMEs
Desarrollo de aplicaciones para ambientes distribuidos
Arquitectura Orientada a Servicios
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Haga clic para modificar el estilo de subtítulo del patrón 28/04/09 Por ARLEDY SARRIA MOLINA NAZLY DIAZ ARIZA JHOANNA MARQUELLA DESARROLLO DE SOFTWARE.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
FRAMEWORK VS Código fuente
Ing. de SW Basada en Componentes
Tema 1: Introducción a la Ingeniería de Software
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
Desarrollo de Software Orientado a Objetos (deficiencias)
Términos y Conceptos Básicos
Alexander Aristizabal Ángelo flores herrera
Implementación de la Arquitectura Empresarial
1. Introducción a los Sistemas de Internet Gestión de Sistemas en Internet Universidad Antonio de Nebrija 2003/04 Justo N. Hidalgo Sanz.
TIPOS DE AUDITORÍAS EN SISTEMAS DE INFORMACIÓN
Elaborado por: Mayoral Cruz Matilde Morales Espinoza Anllhins
DISEÑO CURRICULAR Presentado por: Cesar Augusto Sáenz María Alejandra Hernández 1.contenidos curriculares de competencia.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Introducción al proceso de verificación y validación.
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
MAESTRIA EN CIENCIAS DE LA COMPUTACION Comparación de implementación de sistemas distribuidos usando COM y CORBA Jesús Gil Muñoz Julio 2001.
Ingeniería en Informática F UNDAMENTOS DE C OMPUTACIÓN B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
Tendencia De Los Sistemas Operativos
DISEÑO DE COMPONENTES Y DESARROLLO BASADO EN COMPONENTES
Proceso de desarrollo de Software
QUÉ ES ITIl? (Information technology infrastucture library)
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) IV. IMPLEMENTACIÓN DE COMPONENTES.
Harware Software Yuneidy moreno 7-2 Tecnología i. E. devora Arango.
Las fases del ciclo de la vida de desarrollo de sistemas
NZ/EA/abril Introducción Julio NZ/EA/abril ¿ Que es la IS ? Disciplina que trata los aspectos concernientes al desarrollo de sistemas.
Fundamentos de Programación Unidad I Conceptos Básicos.
Autores: Myriam Montes, Iván Viera, Carlos Caizaguano, José Sancho
Patrón de diseño BROKER
Conociendo el modelo Cliente-Servidor
Conociendo el modelo Cliente-Servidor. Introducción En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama.
Análisis de datos secundarios Tema 1: Introducción Enrique Fernández Macías Departamento de Sociología y Comunicación Universidad de Salamanca.
Transcripción de la presentación:

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

Desarrollo de Software Basado en Componentes 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 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 (Common Object Request Broker Architecture — 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 (Distributed Component Object Model-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.

Comunicaciones Remotas Servicios de Directorio Seguridad Transacciones 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 -Proporcionan una serie de mecanismos para la comunicación remota entre componentes, como pueden ser los mensajes, Llamadas a Procedimientos Remotos, canales, etc. -Proporcionan un esquema de direccionamiento global para los recursos, servicios y componentes de un sistema, incluyendo la asignación de sus nombres, y su organización, localización y acceso. -Proporcionan el acceso seguro y autentificado a los recursos y servicios del sistema, así como protección frente a ataques externos o internos. -Proporcionan los mecanismos para coordinar las interacciones de los componentes cuando estos comparten datos críticos, de forma que siempre se pueda garantizar su coherencia. -Proporcionan un conjunto de facilidades para la monitorización, gestión y administración de los componentes, recursos y servicios del sistema.

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