SlideShare una empresa de Scribd logo
1 de 22
Nombre: Rosa Virginia Ortega
Introducción
La complejidad de los sistemas computacionales actuales nos ha
llevado a buscar la reutilización del software existente. El desarrollo de
software basado en componentes permite reutilizar piezas de código
pre elaborado que permiten realizar diversas tareas, conllevando a
diversos beneficios como las mejoras a la calidad, la reducción del ciclo
de desarrollo y el mayor retorno sobre la inversión. Al comparar la
evolución del ambiente de IT con el crecimiento de las metrópolis
actuales, podemos entender el origen de muchos problemas que se han
presentado históricamente en la construcción de software y vislumbrar
las posibles y probables soluciones que nos llevarán hacia la
industrialización del software moderno.
¿Qué es un componente?
Un componente es una entidad de composición de aplicaciones software
que posee un conjunto de interfaces y un conjunto de dependencias
explícitas del contexto 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).
Estandarizado: Los componentes tienen que ajustarse a algún modelo de
estandarización.
Independiente: Tiene que ser posible desplegar un componente sin tener que
utilizar otros componentes específicos.
Componible: Todas las interacciones deben tener lugar a través de interfaces
definidas públicamente.
Desplegable: Para ser desplegable, un componente debe ser independiente y debe
ser capaz de funcionar como una entidad autónoma o sobre una plataforma de
componentes que implemente el modelo de componentes.
Documentado: Los componentes tienen que estar completamente documentados
para que los usuarios potenciales puedan decidir si satisfacen o no sus necesidades.
Características
Desarrollo de Software Basado en
Componentes
El modelo de desarrollo basado en componentes conduce a la
reutilización del software, y la reutilización proporciona beneficios a los
ingenieros de software. Según estudios de reutilización
La actividad de la ingeniería comienza con la identificación de clases
candidatas. Esto se lleva a cabo examinando los datos que se van a
manejar por parte de la aplicación y el algoritmo que se va a aplicar
para conseguir el tratamiento. Los datos y los algoritmos
correspondientes se empaquetan en una clase.
Beneficios del Desarrollo de Software basado en
Componentes
En esencia, un componente es una pieza de código pre elaborado que
encapsula alguna funcionalidad expuesta a través de interfaces estándar . Los
componentes son los "ingredientes de las aplicaciones", que se juntan y
combinan para llevar a cabo una tarea . Es algo muy similar a lo que podemos
observar en el equipo de música que tenemos en nuestra sala. Cada
componente de aquel aparato ha sido diseñado para acoplarse perfectamente
con sus pares, las conexiones son estándar y el protocolo de comunicación
está ya preestablecido
Las tecnologías de objetos proporcionan el marco de trabajo técnico para un
modelo de proceso basado en componentes para la ingeniería del software. El
paradigma orientado a objetos enfatiza la creación de clases que encapsulan
tanto los datos como los algoritmos que se utilizan para manejar los datos. Si
se diseñan y se implementan adecuadamente, las clases orientadas a objetos
son reutilizables por las diferentes aplicaciones y arquitecturas de sistemas
basados en computadora.
El paradigma de ensamblar componentes y escribir código para hacer que
estos componentes funcionen se conoce como Desarrollo de Software Basado
en Componentes. El uso de este paradigma posee algunas ventajas:
Reutilización del software. Nos lleva a alcanzar un mayor nivel de
reutilización de software.
Simplifica las pruebas. Permite que las pruebas sean ejecutadas probando
cada uno de los componentes antes de probar el conjunto completo de
componentes ensamblados.
Simplifica el mantenimiento del sistema. Cuando existe un débil
acoplamiento entre componentes, el desarrollador es libre de actualizar y/o
agregar componentes según sea necesario, sin afectar otras partes del
sistema.
Mayor calidad. Dado que un componente puede ser construido y luego
mejorado continuamente por un experto u organización, la calidad de una
aplicación basada en componentes mejorará con el paso del tiempo.
Beneficios del Desarrollo de Software basado en
Componentes
De la misma manera, comprar componentes de
terceros en lugar de desarrollarlos, posee algunas
ventajas:
Ciclos de desarrollo más cortos. La adición de una pieza dada de
funcionalidad tomará días en lugar de meses ó años.
Mejor ROI. Usando correctamente esta estrategia, el retorno sobre la
inversión puede ser más favorable que desarrollando los componentes uno
mismo.
Funcionalidad mejorada. Para usar un componente que contenga una
pieza de funcionalidad, solo se necesita entender su naturaleza, más no sus
detalles internos. Así, una funcionalidad que sería impráctica de implementar
en la empresa, se vuelve ahora completamente asequible.
Motivación y planteamientos generales o
Contexto
Una de las disciplinas de la ingeniería del software que más impulso está
teniendo en los últimos tiempos es aquella que describe, desarrolla y utiliza
técnicas basadas en componentes software para la construcción de sistemas
abiertos y distribuidos, como por ejemplo los sistemas de información
distribuidos bajo Web. Esta disciplina también se conoce como ingeniería
del software basada en componentes distribuidos.
Los componentes software en cierta medida surgen ante la necesidad de
hacer un uso correcto de software reutilizable dentro de las aplicaciones.
Sin embargo, la mayoría de las metodologías de reutilización actuales no
contemplan el uso de componentes comerciales ya existentes para el
desarrollo de aplicaciones software
Podemos definirla como el empleo de elementos de software u otros de nivel
superior, creados en desarrollo anteriores, para de este modo reducir los
tiempos y simplificar el desarrollo del software, mejorando la calidad y
reduciendo su costo.
 Especificaciones de requerimientos previamente concebidas
 Diseños previamente definidos (Estructuras de datos, algoritmos, etc.)
 Código probado y depurado con anterioridad
 Planes y casos de prueba previamente utilizados
 Personal cualificado (aprovechamiento de la experiencia de los ingenieros de
un proyecto a otro)
 Paquetes de software de propósito general
Elementos que intervienen en la reutilización
La Reutilización
Conceptos de reutilización de software
 La reutilización de software aparece como una alternativa para
desarrollar aplicaciones y sistemas SW de un manera más eficiente,
productiva y rápida.
 La idea es reutilizar elementos y componentes SW en lugar de tener
que desarrollarlos desde un principio.
 Surge formalmente de 1968
 La idea principal era producir componentes de software como si de
componentes eléctricos se tratara.
 El objetivo es reutilizar lo existente sin tener que volver a rediseñarlo
desde el principio.
Dificultades de la reutilización
 En muchas empresas no existe plan de reutilización (No se considera
prioritario)
 Escasa formación
 Resistencia del personal
 Pobre soporte metodológico
 Uso de métodos que no promueven la reutilización (Estructurados)
 Necesario métodos para:
 Desarrollo para reutilización
 Desarrollo con reutilización
 ¿Quién soporta los gastos adicionales de la reutilización?
Ventajas
 Reducir el tiempo de desarrollo.
 Reducir los costos.
 Incrementar la productividad.
 No tener que reinventar las soluciones.
 Facilitar la compartición de productos del ciclo de vida.
 Mayor fiabilidad
 Mayor eficiencia (Aunque al principio pueda parecer que no)
 Consistencia y la familiaridad, los patrones dentro del software serán más
consistentes, tendiendo a facilitar el mantenimiento del producto.
Economía en el Mercado de Software
Basado en Componentes
Los desarrollos tradicionales de aplicaciones incurren en altos costos y
en una inversión de tiempo extensa. El Desarrollo del Software basado
en Componentes 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. Esto
aumenta los niveles de la economía en el mercado del software.
El 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 Orienta los esfuerzos hacia una industria de
partes dando un giro de 360 grados al momento de ahorrar costos , esto
abarata los márgenes de precios mejorando así una mayor demanda de
productos.
Arquitectura de Software
Una Arquitectura de Software, también denominada Arquitectura lógica,
consiste en un conjunto de patrones y abstracciones coherentes que
proporcionan un marco definido y claro para interactuar con el código
fuente del software.
ARQUITECTURA BASADA EN COMPONENTES.
Una arquitectura basada en componentes describe una aproximación de
ingeniería de software al diseño y desarrollo de un sistema. Esta
arquitectura se enfoca en la descomposición del diseño en componentes
funcionales o lógicos que expongan interfaces de comunicación bien
definidas. Esto provee un nivel de abstracción mayor que los principios de
orientación por objetos y no se enfoca en asuntos específicos de los objetos
como los protocolos de comunicación y la forma como se comparte el
estado.
La palabra inglesa framework define, en términos generales, un conjunto
estandarizado de conceptos, prácticas y criterios para enfocar un tipo de
problemática particular, que sirve como referencia para enfrentar y resolver
nuevos problemas de índole similar. En el desarrollo de software, un
framework es una estructura conceptual y tecnológica de soporte definida,
normalmente con artefactos o módulos de software concretos, con base en la
cual otro proyecto de software puede ser organizado y desarrollado.
Que es un Marco de Trabajo?
Típicamente, puede incluir soporte de programas, bibliotecas y un lenguaje
interpretado entre otros programas para ayudar a desarrollar y unir los
diferentes componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de
las entidades del dominio.
Provee una estructura y una metodología de trabajo la cual extiende o utiliza las
aplicaciones del dominio.
-Comunicación: Intensa colaboración y comunicación de los clientes. Incluye la
investigación de requisitos.
-Planeación: Establece un plan de trabajo de ingeniería de software, incluye tareas
técnicas, riesgos y recursos.
-Modelos: Creación de modelos que permiten al desarrollador y al cliente entender
mejor los requisitos del software.
-Construcción: Combina la generación de códigos y realización de pruebas necesarias
para descubrir errores.
-Despliegue: Al entregar el software al cliente este lo evalúa y proporciona información
a partir de su evaluación.
Actividades del Marco de Trabajo
Actividades Sombrillas
Se aplican durante el proceso del software, entre ellos
están:
*Seguimiento y control del proyecto del software
*Gestión de Riesgos
*Aseguramiento de la Calidad de Software
*Medición
*Gestión de Configuración
*Gestión de Reutilización
Actividades del Marco de Trabajo
Framework
El concepto framework se emplea en muchos ámbitos del desarrollo de
sistemas software, no solo en el ámbito de aplicaciones Web. Podemos
encontrar framework para el desarrollo de aplicaciones médicas, de visión
por computador, para el desarrollo de juegos, y para cualquier ámbito que
pueda ocurrírsenos. En general, con el término framework, nos estamos
refiriendo a una estructura software compuesta de componentes
personalizables e intercambiables para el desarrollo de una aplicación. En
otras palabras, un framework se puede considerar como una aplicación
genérica incompleta y configurable a la que podemos añadirle las últimas
piezas para construir una aplicación concreta.
Tipos de Framework.
Existen varios tipos de framework Web: orientados a la interfaz de usuario,
como Java Server Faces, orientados a aplicaciones de publicación de
documentos, como Coocon, orientados a la parte de control de eventos,
como Struts y algunos que incluyen varios elementos como Tapestry
Características de un Framework.
A continuación se mostrara una serie de características que podemos encontrar en
prácticamente todos los framework existentes.
•Abstracción de URL y sesiones: No es necesario manipular directamente las URL ni
las sesiones, el framework ya se encarga de hacerlo.
•Acceso a datos: Incluyen las herramientas e interfaces necesarias para integrarse con
herramientas de acceso a datos, en BBDD, XML, entre otros.
•Controladores: La mayoría de framework implementa una serie de controladores para
gestionar eventos, como una introducción de datos mediante un formulario o el acceso a
una página. Estos controlador es suelen ser fácilmente adaptables a las necesidades de un
proyecto concreto.
•Autentificación y control de acceso: Incluyen mecanismos para la identificación de
usuarios mediante un identificador y una contraseña donde permiten restringir el acceso
a determinas páginas a determinados usuarios.
Modelo – Vista – Controlador (MVC)
El patrón Modelo-Vista-Controlador es una guía para el diseño de arquitecturas de
aplicaciones que ofrezcan una fuerte interactividad con usuarios. Este patrón organiza
la aplicación en tres modelos separados, el primero es un modelo que representa los
datos de la aplicación y sus reglas de negocio, el segundo es un conjunto de vistas que
representa los formularios de entrada y salida de información, el tercero es un conjunto
de controladores que procesa las peticiones de los usuarios y controla el flujo de
ejecución del sistema.
Frameworks más populares entre las empresas y los
desarrolladores independientes
Sistemas Distribuidos
Son Programas concurrentes ejecutados en diferentes procesadores sin
memoria común
– Extensiones y nuevos mecanismos de concurrencia (paso de mensajes,
RPC, sockets).
– Dependen de un medio físico de comunicación: cable serie, bus interno
(transputers), red, etc.
– Problemas de fiabilidad
- Tolerancia a fallos hardware y software.
Sistemas Abiertos
• Sistemas distribuidos que integran programas heterogéneos e incluso
aplicaciones ya existentes (legacy systems). Necesitan modelos nuevos ya
que los mecanismos y las lógicas aplicables a la concurrencia no son
válidos.
• Actores: Objetos con un thread interno (activos)
– mensajes asíncronos
– comunicación punto a punto
– una dirección que puede transmitirse lo que permite configuraciones
dinámicas
– los actores pueden crear otros actores (dinámismo)
– Muchas versiones (sincronismo local, protocolos de interacción entre
actores, tiempo real, agrupación de actores, etc.)
•Modelos de coordinación
– Construir programas pegando diferentes piezas activas: programa, tarea,
thread, .. – Entidades a coordinar + medio de coordinación + leyes de
coordinación
– Lenguaje de coordinación: elementos lingüísticos para describir modelos
de coordinación.
– Orientados a datos: Modelos de pizarra - Linda
– Orientados al control
Conclusiones
La tecnología de componentes surge como una necesidad de mejorar la
calidad y la productividad de las empresas dedicadas al desarrollo de software.
Sin embargo, este nuevo paradigma y sus soluciones tecnológicas traen
consigo una serie de nuevas oportunidades y dificultades. La tecnología Java
brinda una de las opciones para generar soluciones, pero no es por sí misma
una solución, para lograrlo debe hacerse un uso adecuado de ella. Por tanto,
es importante aprovechar sus oportunidades ubicadas del lado de la
reutilización en un marco de ingeniería de dominio, en conjunto con el
desarrollo de activos reutilizables como lo son las arquitecturas de referencia,
los frameworks, patrones, entre otros. De otro lado, se deben vencer las
debilidades que se ubican del lado de las limitantes que la tecnología Java
presenta, y entre ellas, la más visible y que comparte con las otras tecnologías
de componentes, es su problema en la eficiencia reflejado en el consumo de
recursos, el cual se puede solventar con el uso de prácticas de diseño
adecuadas que permitan mejorar el desempeño de las aplicaciones
desarrolladas en la plataforma J2EE.

Más contenido relacionado

La actualidad más candente

Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de SoftwareMaricela Ramirez
 
Unidad I Requerimientos
Unidad I RequerimientosUnidad I Requerimientos
Unidad I Requerimientosguest409adc
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareLia IS
 
Introducción a la Ingenieria de Software
Introducción a la Ingenieria de SoftwareIntroducción a la Ingenieria de Software
Introducción a la Ingenieria de SoftwareSorey García
 
Ingeniería De Requisitos
Ingeniería De RequisitosIngeniería De Requisitos
Ingeniería De RequisitosssharLudena
 
Fundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareFundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareRichard J. Nuñez
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitosZuleima
 
Unidad 1.2 B Metodos Agiles 1
Unidad 1.2 B Metodos Agiles  1Unidad 1.2 B Metodos Agiles  1
Unidad 1.2 B Metodos Agiles 1Sergio Sanchez
 
presentacion_edisleynissilva
presentacion_edisleynissilvapresentacion_edisleynissilva
presentacion_edisleynissilvaeddysilva18
 
Requerimientos
RequerimientosRequerimientos
Requerimientoskaresha3
 
2. requerimientos del software
2. requerimientos del software2. requerimientos del software
2. requerimientos del softwareuniv of pamplona
 
Fundamentos del diseno software
Fundamentos del diseno softwareFundamentos del diseno software
Fundamentos del diseno softwareclaudiocaizales
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Softwareem3marquez
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTECAMILO
 

La actualidad más candente (20)

Análisis del Proyecto de Software
Análisis del Proyecto de SoftwareAnálisis del Proyecto de Software
Análisis del Proyecto de Software
 
Introducción a la ingeniería del software
Introducción a la ingeniería del softwareIntroducción a la ingeniería del software
Introducción a la ingeniería del software
 
Unidad I Requerimientos
Unidad I RequerimientosUnidad I Requerimientos
Unidad I Requerimientos
 
Requerimientos del Software
Requerimientos del SoftwareRequerimientos del Software
Requerimientos del Software
 
Introduccion a la Ingeniería de Software
Introduccion a la Ingeniería de SoftwareIntroduccion a la Ingeniería de Software
Introduccion a la Ingeniería de Software
 
Adrian adrianza
Adrian adrianzaAdrian adrianza
Adrian adrianza
 
Introducción a la Ingenieria de Software
Introducción a la Ingenieria de SoftwareIntroducción a la Ingenieria de Software
Introducción a la Ingenieria de Software
 
Ingeniería De Requisitos
Ingeniería De RequisitosIngeniería De Requisitos
Ingeniería De Requisitos
 
Fundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del SoftwareFundamentos del diseño y Garantías de Calidad del Software
Fundamentos del diseño y Garantías de Calidad del Software
 
NORMA 830
NORMA 830NORMA 830
NORMA 830
 
Ingeniería de requisitos
Ingeniería de requisitosIngeniería de requisitos
Ingeniería de requisitos
 
Unidad 1.2 B Metodos Agiles 1
Unidad 1.2 B Metodos Agiles  1Unidad 1.2 B Metodos Agiles  1
Unidad 1.2 B Metodos Agiles 1
 
presentacion_edisleynissilva
presentacion_edisleynissilvapresentacion_edisleynissilva
presentacion_edisleynissilva
 
Requerimientos
RequerimientosRequerimientos
Requerimientos
 
2. requerimientos del software
2. requerimientos del software2. requerimientos del software
2. requerimientos del software
 
Fundamentos del diseno software
Fundamentos del diseno softwareFundamentos del diseno software
Fundamentos del diseno software
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Ingenieria De Software
Ingenieria De SoftwareIngenieria De Software
Ingenieria De Software
 
Ingenieria en Software
Ingenieria en SoftwareIngenieria en Software
Ingenieria en Software
 
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTEPRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
PRESENTACION: PROYECTO DE SOFTWARE & ESTIMACION DE COSTE
 

Similar a ing del software

Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentesUlises Cruz
 
Metodología basada en componentes
Metodología basada en componentes Metodología basada en componentes
Metodología basada en componentes Anibal Ulibarri
 
Topicos de ingeniería de software
Topicos de ingeniería de softwareTopicos de ingeniería de software
Topicos de ingeniería de softwareAlex Hurtado
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de softwareLuis Jesus Curbata
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de softwareJORGE MONGUI
 
Ingenieroa de de Software Conceptos Iniciales
Ingenieroa de de Software Conceptos InicialesIngenieroa de de Software Conceptos Iniciales
Ingenieroa de de Software Conceptos InicialesMaikoUrizar1
 
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 BasicosMaikoUrizar1
 
Software basado en Componentes
Software basado en ComponentesSoftware basado en Componentes
Software basado en ComponentesJeissonAlexander7
 
Software basado en Componentes
Software basado en ComponentesSoftware basado en Componentes
Software basado en ComponentesJeissonAlexander7
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentesmellcv
 
Desarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorDesarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorJomicast
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del softwareDaniel Merchan
 
Fundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareFundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareGerardo Valera
 
Desarrollo de componentes
Desarrollo de componentesDesarrollo de componentes
Desarrollo de componenteschito86
 
Desarrollo de componentes
Desarrollo de componentesDesarrollo de componentes
Desarrollo de componentesdianiktlk
 

Similar a ing del software (20)

Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
Proyecto
ProyectoProyecto
Proyecto
 
Proyecto
ProyectoProyecto
Proyecto
 
Metodología basada en componentes
Metodología basada en componentes Metodología basada en componentes
Metodología basada en componentes
 
Topicos de ingeniería de software
Topicos de ingeniería de softwareTopicos de ingeniería de software
Topicos de ingeniería de software
 
Fundamentos de diseño de software
Fundamentos de diseño de softwareFundamentos de diseño de software
Fundamentos de diseño de software
 
Ingeniería de software
Ingeniería de softwareIngeniería de software
Ingeniería de software
 
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
 
Software basado en Componentes
Software basado en ComponentesSoftware basado en Componentes
Software basado en Componentes
 
Software basado en Componentes
Software basado en ComponentesSoftware basado en Componentes
Software basado en Componentes
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
Manuel sirvent
Manuel sirventManuel sirvent
Manuel sirvent
 
Desarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorDesarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidor
 
13. ingeniería del software
13. ingeniería del software13. ingeniería del software
13. ingeniería del software
 
Presentacion
PresentacionPresentacion
Presentacion
 
Fundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de softwareFundamentos, Garantías y Técnicas en el diseño de software
Fundamentos, Garantías y Técnicas en el diseño de software
 
Fundamentos
FundamentosFundamentos
Fundamentos
 
Desarrollo de componentes
Desarrollo de componentesDesarrollo de componentes
Desarrollo de componentes
 
Desarrollo de componentes
Desarrollo de componentesDesarrollo de componentes
Desarrollo de componentes
 

Último

Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.ALEJANDROLEONGALICIA
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfReneBellido1
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaANDECE
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdfEdwinAlexanderSnchez2
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptxGARCIARAMIREZCESAR
 
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfCE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfssuserc34f44
 
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdfPPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdfZamiertCruzSuyo
 
3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptxJhordanGonzalo
 
Fisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfFisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfJessLeonelVargasJimn
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadANDECE
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 

Último (20)

Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.Flujo potencial, conceptos básicos y ejemplos resueltos.
Flujo potencial, conceptos básicos y ejemplos resueltos.
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
Edificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes GranadaEdificio residencial Tarsia de AEDAS Homes Granada
Edificio residencial Tarsia de AEDAS Homes Granada
 
183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf183045401-Terminal-Terrestre-de-Trujillo.pdf
183045401-Terminal-Terrestre-de-Trujillo.pdf
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
4.6 DEFINICION DEL PROBLEMA DE ASIGNACION.pptx
 
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdfCE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
CE.040 DRENAJE PLUVIAL_RM 126-2021-VIVIENDA.pdf
 
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdfPPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
 
3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx3039_ftg_01Entregable 003_Matematica.pptx
3039_ftg_01Entregable 003_Matematica.pptx
 
Fisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdfFisiología del Potasio en Plantas p .pdf
Fisiología del Potasio en Plantas p .pdf
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidad
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 

ing del software

  • 2. Introducción La complejidad de los sistemas computacionales actuales nos ha llevado a buscar la reutilización del software existente. El desarrollo de software basado en componentes permite reutilizar piezas de código pre elaborado que permiten realizar diversas tareas, conllevando a diversos beneficios como las mejoras a la calidad, la reducción del ciclo de desarrollo y el mayor retorno sobre la inversión. Al comparar la evolución del ambiente de IT con el crecimiento de las metrópolis actuales, podemos entender el origen de muchos problemas que se han presentado históricamente en la construcción de software y vislumbrar las posibles y probables soluciones que nos llevarán hacia la industrialización del software moderno.
  • 3. ¿Qué es un componente? Un componente es una entidad de composición de aplicaciones software que posee un conjunto de interfaces y un conjunto de dependencias explícitas del contexto 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). Estandarizado: Los componentes tienen que ajustarse a algún modelo de estandarización. Independiente: Tiene que ser posible desplegar un componente sin tener que utilizar otros componentes específicos. Componible: Todas las interacciones deben tener lugar a través de interfaces definidas públicamente. Desplegable: Para ser desplegable, un componente debe ser independiente y debe ser capaz de funcionar como una entidad autónoma o sobre una plataforma de componentes que implemente el modelo de componentes. Documentado: Los componentes tienen que estar completamente documentados para que los usuarios potenciales puedan decidir si satisfacen o no sus necesidades. Características
  • 4. Desarrollo de Software Basado en Componentes El modelo de desarrollo basado en componentes conduce a la reutilización del software, y la reutilización proporciona beneficios a los ingenieros de software. Según estudios de reutilización La actividad de la ingeniería comienza con la identificación de clases candidatas. Esto se lleva a cabo examinando los datos que se van a manejar por parte de la aplicación y el algoritmo que se va a aplicar para conseguir el tratamiento. Los datos y los algoritmos correspondientes se empaquetan en una clase.
  • 5. Beneficios del Desarrollo de Software basado en Componentes En esencia, un componente es una pieza de código pre elaborado que encapsula alguna funcionalidad expuesta a través de interfaces estándar . Los componentes son los "ingredientes de las aplicaciones", que se juntan y combinan para llevar a cabo una tarea . Es algo muy similar a lo que podemos observar en el equipo de música que tenemos en nuestra sala. Cada componente de aquel aparato ha sido diseñado para acoplarse perfectamente con sus pares, las conexiones son estándar y el protocolo de comunicación está ya preestablecido Las tecnologías de objetos proporcionan el marco de trabajo técnico para un modelo de proceso basado en componentes para la ingeniería del software. El paradigma orientado a objetos enfatiza la creación de clases que encapsulan tanto los datos como los algoritmos que se utilizan para manejar los datos. Si se diseñan y se implementan adecuadamente, las clases orientadas a objetos son reutilizables por las diferentes aplicaciones y arquitecturas de sistemas basados en computadora.
  • 6. El paradigma de ensamblar componentes y escribir código para hacer que estos componentes funcionen se conoce como Desarrollo de Software Basado en Componentes. El uso de este paradigma posee algunas ventajas: Reutilización del software. Nos lleva a alcanzar un mayor nivel de reutilización de software. Simplifica las pruebas. Permite que las pruebas sean ejecutadas probando cada uno de los componentes antes de probar el conjunto completo de componentes ensamblados. Simplifica el mantenimiento del sistema. Cuando existe un débil acoplamiento entre componentes, el desarrollador es libre de actualizar y/o agregar componentes según sea necesario, sin afectar otras partes del sistema. Mayor calidad. Dado que un componente puede ser construido y luego mejorado continuamente por un experto u organización, la calidad de una aplicación basada en componentes mejorará con el paso del tiempo. Beneficios del Desarrollo de Software basado en Componentes
  • 7. De la misma manera, comprar componentes de terceros en lugar de desarrollarlos, posee algunas ventajas: Ciclos de desarrollo más cortos. La adición de una pieza dada de funcionalidad tomará días en lugar de meses ó años. Mejor ROI. Usando correctamente esta estrategia, el retorno sobre la inversión puede ser más favorable que desarrollando los componentes uno mismo. Funcionalidad mejorada. Para usar un componente que contenga una pieza de funcionalidad, solo se necesita entender su naturaleza, más no sus detalles internos. Así, una funcionalidad que sería impráctica de implementar en la empresa, se vuelve ahora completamente asequible.
  • 8. Motivación y planteamientos generales o Contexto Una de las disciplinas de la ingeniería del software que más impulso está teniendo en los últimos tiempos es aquella que describe, desarrolla y utiliza técnicas basadas en componentes software para la construcción de sistemas abiertos y distribuidos, como por ejemplo los sistemas de información distribuidos bajo Web. Esta disciplina también se conoce como ingeniería del software basada en componentes distribuidos. Los componentes software en cierta medida surgen ante la necesidad de hacer un uso correcto de software reutilizable dentro de las aplicaciones. Sin embargo, la mayoría de las metodologías de reutilización actuales no contemplan el uso de componentes comerciales ya existentes para el desarrollo de aplicaciones software
  • 9. Podemos definirla como el empleo de elementos de software u otros de nivel superior, creados en desarrollo anteriores, para de este modo reducir los tiempos y simplificar el desarrollo del software, mejorando la calidad y reduciendo su costo.  Especificaciones de requerimientos previamente concebidas  Diseños previamente definidos (Estructuras de datos, algoritmos, etc.)  Código probado y depurado con anterioridad  Planes y casos de prueba previamente utilizados  Personal cualificado (aprovechamiento de la experiencia de los ingenieros de un proyecto a otro)  Paquetes de software de propósito general Elementos que intervienen en la reutilización La Reutilización
  • 10. Conceptos de reutilización de software  La reutilización de software aparece como una alternativa para desarrollar aplicaciones y sistemas SW de un manera más eficiente, productiva y rápida.  La idea es reutilizar elementos y componentes SW en lugar de tener que desarrollarlos desde un principio.  Surge formalmente de 1968  La idea principal era producir componentes de software como si de componentes eléctricos se tratara.  El objetivo es reutilizar lo existente sin tener que volver a rediseñarlo desde el principio.
  • 11. Dificultades de la reutilización  En muchas empresas no existe plan de reutilización (No se considera prioritario)  Escasa formación  Resistencia del personal  Pobre soporte metodológico  Uso de métodos que no promueven la reutilización (Estructurados)  Necesario métodos para:  Desarrollo para reutilización  Desarrollo con reutilización  ¿Quién soporta los gastos adicionales de la reutilización? Ventajas  Reducir el tiempo de desarrollo.  Reducir los costos.  Incrementar la productividad.  No tener que reinventar las soluciones.  Facilitar la compartición de productos del ciclo de vida.  Mayor fiabilidad  Mayor eficiencia (Aunque al principio pueda parecer que no)  Consistencia y la familiaridad, los patrones dentro del software serán más consistentes, tendiendo a facilitar el mantenimiento del producto.
  • 12. Economía en el Mercado de Software Basado en Componentes Los desarrollos tradicionales de aplicaciones incurren en altos costos y en una inversión de tiempo extensa. El Desarrollo del Software basado en Componentes 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. Esto aumenta los niveles de la economía en el mercado del software. El 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 Orienta los esfuerzos hacia una industria de partes dando un giro de 360 grados al momento de ahorrar costos , esto abarata los márgenes de precios mejorando así una mayor demanda de productos.
  • 13. Arquitectura de Software Una Arquitectura de Software, también denominada Arquitectura lógica, consiste en un conjunto de patrones y abstracciones coherentes que proporcionan un marco definido y claro para interactuar con el código fuente del software. ARQUITECTURA BASADA EN COMPONENTES. Una arquitectura basada en componentes describe una aproximación de ingeniería de software al diseño y desarrollo de un sistema. Esta arquitectura se enfoca en la descomposición del diseño en componentes funcionales o lógicos que expongan interfaces de comunicación bien definidas. Esto provee un nivel de abstracción mayor que los principios de orientación por objetos y no se enfoca en asuntos específicos de los objetos como los protocolos de comunicación y la forma como se comparte el estado.
  • 14. La palabra inglesa framework define, en términos generales, un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular, que sirve como referencia para enfrentar y resolver nuevos problemas de índole similar. En el desarrollo de software, un framework es una estructura conceptual y tecnológica de soporte definida, normalmente con artefactos o módulos de software concretos, con base en la cual otro proyecto de software puede ser organizado y desarrollado. Que es un Marco de Trabajo? Típicamente, puede incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros programas para ayudar a desarrollar y unir los diferentes componentes de un proyecto. Representa una arquitectura de software que modela las relaciones generales de las entidades del dominio. Provee una estructura y una metodología de trabajo la cual extiende o utiliza las aplicaciones del dominio.
  • 15. -Comunicación: Intensa colaboración y comunicación de los clientes. Incluye la investigación de requisitos. -Planeación: Establece un plan de trabajo de ingeniería de software, incluye tareas técnicas, riesgos y recursos. -Modelos: Creación de modelos que permiten al desarrollador y al cliente entender mejor los requisitos del software. -Construcción: Combina la generación de códigos y realización de pruebas necesarias para descubrir errores. -Despliegue: Al entregar el software al cliente este lo evalúa y proporciona información a partir de su evaluación. Actividades del Marco de Trabajo
  • 16. Actividades Sombrillas Se aplican durante el proceso del software, entre ellos están: *Seguimiento y control del proyecto del software *Gestión de Riesgos *Aseguramiento de la Calidad de Software *Medición *Gestión de Configuración *Gestión de Reutilización Actividades del Marco de Trabajo
  • 17. Framework El concepto framework se emplea en muchos ámbitos del desarrollo de sistemas software, no solo en el ámbito de aplicaciones Web. Podemos encontrar framework para el desarrollo de aplicaciones médicas, de visión por computador, para el desarrollo de juegos, y para cualquier ámbito que pueda ocurrírsenos. En general, con el término framework, nos estamos refiriendo a una estructura software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicación. En otras palabras, un framework se puede considerar como una aplicación genérica incompleta y configurable a la que podemos añadirle las últimas piezas para construir una aplicación concreta. Tipos de Framework. Existen varios tipos de framework Web: orientados a la interfaz de usuario, como Java Server Faces, orientados a aplicaciones de publicación de documentos, como Coocon, orientados a la parte de control de eventos, como Struts y algunos que incluyen varios elementos como Tapestry
  • 18. Características de un Framework. A continuación se mostrara una serie de características que podemos encontrar en prácticamente todos los framework existentes. •Abstracción de URL y sesiones: No es necesario manipular directamente las URL ni las sesiones, el framework ya se encarga de hacerlo. •Acceso a datos: Incluyen las herramientas e interfaces necesarias para integrarse con herramientas de acceso a datos, en BBDD, XML, entre otros. •Controladores: La mayoría de framework implementa una serie de controladores para gestionar eventos, como una introducción de datos mediante un formulario o el acceso a una página. Estos controlador es suelen ser fácilmente adaptables a las necesidades de un proyecto concreto. •Autentificación y control de acceso: Incluyen mecanismos para la identificación de usuarios mediante un identificador y una contraseña donde permiten restringir el acceso a determinas páginas a determinados usuarios.
  • 19. Modelo – Vista – Controlador (MVC) El patrón Modelo-Vista-Controlador es una guía para el diseño de arquitecturas de aplicaciones que ofrezcan una fuerte interactividad con usuarios. Este patrón organiza la aplicación en tres modelos separados, el primero es un modelo que representa los datos de la aplicación y sus reglas de negocio, el segundo es un conjunto de vistas que representa los formularios de entrada y salida de información, el tercero es un conjunto de controladores que procesa las peticiones de los usuarios y controla el flujo de ejecución del sistema. Frameworks más populares entre las empresas y los desarrolladores independientes
  • 20. Sistemas Distribuidos Son Programas concurrentes ejecutados en diferentes procesadores sin memoria común – Extensiones y nuevos mecanismos de concurrencia (paso de mensajes, RPC, sockets). – Dependen de un medio físico de comunicación: cable serie, bus interno (transputers), red, etc. – Problemas de fiabilidad - Tolerancia a fallos hardware y software.
  • 21. Sistemas Abiertos • Sistemas distribuidos que integran programas heterogéneos e incluso aplicaciones ya existentes (legacy systems). Necesitan modelos nuevos ya que los mecanismos y las lógicas aplicables a la concurrencia no son válidos. • Actores: Objetos con un thread interno (activos) – mensajes asíncronos – comunicación punto a punto – una dirección que puede transmitirse lo que permite configuraciones dinámicas – los actores pueden crear otros actores (dinámismo) – Muchas versiones (sincronismo local, protocolos de interacción entre actores, tiempo real, agrupación de actores, etc.) •Modelos de coordinación – Construir programas pegando diferentes piezas activas: programa, tarea, thread, .. – Entidades a coordinar + medio de coordinación + leyes de coordinación – Lenguaje de coordinación: elementos lingüísticos para describir modelos de coordinación. – Orientados a datos: Modelos de pizarra - Linda – Orientados al control
  • 22. Conclusiones La tecnología de componentes surge como una necesidad de mejorar la calidad y la productividad de las empresas dedicadas al desarrollo de software. Sin embargo, este nuevo paradigma y sus soluciones tecnológicas traen consigo una serie de nuevas oportunidades y dificultades. La tecnología Java brinda una de las opciones para generar soluciones, pero no es por sí misma una solución, para lograrlo debe hacerse un uso adecuado de ella. Por tanto, es importante aprovechar sus oportunidades ubicadas del lado de la reutilización en un marco de ingeniería de dominio, en conjunto con el desarrollo de activos reutilizables como lo son las arquitecturas de referencia, los frameworks, patrones, entre otros. De otro lado, se deben vencer las debilidades que se ubican del lado de las limitantes que la tecnología Java presenta, y entre ellas, la más visible y que comparte con las otras tecnologías de componentes, es su problema en la eficiencia reflejado en el consumo de recursos, el cual se puede solventar con el uso de prácticas de diseño adecuadas que permitan mejorar el desempeño de las aplicaciones desarrolladas en la plataforma J2EE.