SlideShare una empresa de Scribd logo
1 de 4
COMPONENTES REUTILIZABLES                       exploradores, se basa en los APIs cual
EN UN PROYECTO DE                               objetivo es poder definir un modelo de
                                                componentes pequeños o medianos que
SOFTWARE
                                                permitan una mejor accesibilidad, que sean
El objetivo de la ISBC (Ingeniería de           portables con gran calidad y lo más simple
Software Basada en Componentes) es              posibles, además de que los componentes
aumentar la productividad de otros software     pueden soportar la introspección, ser
que ya están elaborados, esto se hace           modificados, la comunicación mediante
reutilizando componentes estándares, pero       eventos.
primero que nada un componente es una
                                                Ahora Java 2 Platform Enterprise Edition
parte modular que encapsula su contenido
                                                (J2EE) facilita y simplifica el desarrollo de
y es por eso que reutilizarlo es fácil ya que
                                                programación en múltiples capas además
no       es     necesario      reprogramarlo
                                                incluye políticas y APIs como Java Servlets
completamente, el componente está
                                                y Java Message Service (JMS), también es
compuesto      de   su     interfaz    y   su
                                                compatible con las plataformas estándares.
implementación por separado por lo que
                                                Por otra pare se encuentra Microsoft.NET
solo se cambiara en su implementación él
                                                que conecta personas, sistemas y
como hace las cosas no el servicio que
                                                dispositivos, permite construir aplicaciones
provee ya originalmente y tampoco
                                                web, inteligentes, servicios web XML, los
cambiara la resto de la aplicación. Cuando
                                                desarrolladores de componentes puede
vamos a reutilizar un componente hay dos
                                                utilizar herramientas como Microsoft Visual
clasificaciones   una     que     divide   en
                                                Studio.NET el cual provee un ambiente
subcategorias las categorías de cada
                                                integrado y rápido para programar, también
componente y el de facetas que nos
                                                puede utilizar servidores como Microsoft
describe de manera profunda cada
                                                Windows, SQL Server, BizTalk Server que
componente, por otra parte los elementos
                                                integran corren y manejan aplicaciones y
de los componentes nos dicen el estado de
                                                servicios web. En conjunto permite al
éstos como su servicio y también nos dice
                                                desarrollador construir y correr aplicaciones
que el componente puede soportar varias
                                                basadas en web, reduciendo el tiempo de
implementaciones, cuando tenemos los
                                                codificación ya que partes de la
componentes a utilizar ahora buscamos
                                                programación las realiza automáticamente,
programas donde ejecutarlos como puede
                                                también permite el desarrollo, búsqueda y
ser Microsoft COM+, Sun Java Beans,
                                                manipulación de datos XML.
Enterprise Java Beans etc.
                                                Ahora hablaremos de las interfaces son la
Ahora los paquetes son componentes
                                                parte visible de los componentes y no
agrupados que dan un servicio, para esto
                                                afectan la implementación de los mismos.
también debemos tener en cuenta que los
                                                Las interfaces definidas tienen dos
componentes están formados por objetos
                                                propiedades funcionales unas que son la
que tiene acceso a su implementación pero
                                                firma que describen las operaciones del
no     debemos     dejar   accesible       la
                                                componente y las y el comportamiento que
implementación de nuestro componente a
                                                describe      el    comportamiento     del
objetos de afuera de esté, para utilizar los
                                                componente. Se pueden describir dos tipos
componentes podemos usar CORBA que
                                                de interfaces las exportadas o las
es actualmente la arquitectura estándar
                                                importadas las interfaces exportadas
para objetos y compatible con varias
                                                describen los servicios que ofrece un
plataformas.
                                                componente en un ambiente mientras que
Por otro lado Java Beans es una                 las interfaces importadas especifican los
arquitectura neutral, también opera en          servicios requeridos por un componente en
cualquier sistema operativo y permite la        el ambiente. El único problema de las
reutilización de componentes los cuales         interfaces es que no se actualicen y haya
soportan contenedores de diferentes             incompatibilidad de versiones, por lo que
algunas veces en cuanto sale una interfaz         los frameworks y patrones podemos decir
se congela su implementación y no se              que los patrones de diseño son una
vuelven a modificar.                              estructura lógica en el software mientras
                                                  que los frameworks es una estructura física
Los contratos listan las restricciones            que se basa en el diseño de los patrones
globales que mantendrá un componente,             las diferencias entre ambos es que los
lista las restricciones que el cliente necesita   frameworks son implementados en un
conocer (la precondición) y las que el            lenguaje de programación y es ejecutado y
componente promete establecer (la pos             los patrones necesitan ser implementados
condición) que en conjunto forman la              cada que se utilizan, otra diferencia es que
especificación del componente, también            los patrones son elementos más pequeños
especifica       las    interacciones     entre   que los frameworks y estos a su vez
componentes en términos de el conjunto de         contiene varios patrones mientras que un
componentes que participan, el papel que          patrón     no    puede     contener    varios
desempeña cada componente así como                frameworks, otra cosa los patrones pueden
sus requerimientos, la especificación de los      utilizarse en cualquier aplicación y los
métodos que instancia el contrato. Todo           frameworks son más especializados y se
componente requiere de los servicios de           aplican particularmente. Ahora sobre el
otros componentes, y en conjunto trabajan         análisis y diseño orientado al objeto para la
para proveer un objetivo específico.              reutilización, para esto podemos decir que
                                                  el termino reutilización fue postulado por
Los patrones capturan soluciones no
                                                  M.D Mclloroy en la conferencia de la NATO
obvias y describen relaciones entre las
                                                  en 1968 sobre Ingeniería de Software, el
estructuras más profundas de un sistema y
                                                  propósito de la reutilización es mejorar la
los mecanismos y no solo entre módulos
                                                  eficiencia y productividad del desarrollo de
independientes. Ahora un patrón de diseño
                                                  software utilizando elementos de software
puede ser empleado en el diseño y
                                                  existentes, para reutilizar un componente
documentación de un componente describe
                                                  esté debe cumplir ciertos requerimientos
los detalles de la implementación, pueden
                                                  para terminar como un componente
ser     clasificados     en   3    categorías
                                                  genérico y especializado, las técnicas para
dependiendo de su nivel de abstracción: los
                                                  utilizarlos consisten en la selección y
patrones de arquitectura capturan toda la
                                                  recuperación, la comprensión y evaluación,
estructura y organización de un sistema,
                                                  la adaptación y la integración de los
describen los subsistemas participantes y
                                                  componentes, en la reutilización se utiliza
especifica los papeles y relaciones que hay
                                                  la programación orientada a objetos la cual
entre ellos, otros son los patrones de
                                                  proporciona         mecanismos         como
diseño éstos refinan la estructura y el
                                                  encapsulación, abstracción y ocultación de
comportamiento de los subsistemas y la
                                                  la información y las clases proporcionan
comunicación entre ellos. Pero en
                                                  dos niveles de reutilización como
conclusión los patrones sirven para
                                                  representación de una abstracción que se
identificar y describir los componentes que
                                                  puede especializar y como fabrica de
se van a reutilizar. Los frameworks son
                                                  objetos que comparten estructura y
marcos de trabajo donde se juntan todas
                                                  comportamiento, para esto se usa la
las piezas o componentes reutilizables su
                                                  herencia que permite que una clase utilice
diseño puede servir para varias situaciones
                                                  objetos de ella en otra clase pero no es tan
y en ellos se especifican los requerimientos
                                                  eficiente a la hora de una aplicación amplia
que deben tener los componentes que
                                                  al tener muchas dependencias internas en
estarán en él, la diferencia que hay entre
                                                  el recurso de rapidez, por otro lado los
estos y los contratos es que los frameworks
                                                  frameworks son un conjunto de clases
se enfocan en las propiedades globales de
                                                  asociadas por herencia donde las clases
los     componentes       y   los   contratos
                                                  abstractas son las principales y le siguen
especifican       el    comportamiento      y
                                                  las clases concretas las cuales trabajan
requerimientos de los mismos y referente a
                                                  como un todo y debe de ocultar las partes
de diseño y dejar accesibles las que deben      subsistema debe tener una fuerte cohesión
especializarse y para reutilizar un             es decir que si un subsistema es
frameworks se debe definir las clases que       modificado no debe alterar a un
se necesitan y configurar objetos ya que        subsistemas       de     nivel   bajo,    cada
este se reutiliza completo. Ahora hablemos      subsistema debe tener una alta cohesión y
del análisis y diseño orientado al objeto,      un bajo acoplamiento, se debe ocultar el
donde el objetivo del análisis es modelar el    comportamiento o funcionalidad entre los
dominio del problema identificando los          subsistemas, después de esto llegamos al
objetos semánticos que contiene el              diseño detallado que consiste en la
significado de las especificaciones y los       utilización de la herencia para que los
requisitos mientras que el diseño se enfoca     componentes sean menores más sencillos
en los objetos semánticos relacionados a        de entender y modificar, utilizar interfaces,
las soluciones examinando de nueva              métodos públicos, usar el polimorfismo y
cuenta las clases para mejorar su               evitar clases demasiado grandes. Para la
reutilización y aventajar sobre la herencia,    reutilización utilizamos mucho el termino
pero estos dos pasos deben llevarse a           dominio que puede definirse como un área
cabo juntos de manera concurrente. En           de conocimiento donde se observan
concreto el AOO sirve para identificar los      conceptos relacionados por lo que el
requerimientos de nuestro software para         análisis de dominio es un proceso de
esto se realizan tres actividades las cuales    creación y mantenimiento de estructuras
son, identificar las clases, atributos y        los hay verticales que especifica una clase
comportamientos y tener lo reemplazos de        de sistemas y los horizontales que contiene
los      anteriores     y   especificar    el   partes generales de software, es muy
comportamiento dinámico mediante paso           importante que el dominio de nuestro
de mensajes, algunas consideraciones que        software se defina de manera clara y juntar
se deben de tomar son: recoger                  toda la información después de esto se
información de la mayor cantidad de             debe      recolectar     datos    sobre     los
fuentes posibles para una mejor visión a        componentes que vamos a utilizar si sirven
futuro, capturar todos los requisitos que se    o no, deben clasificarse y analizarse los
puedan para tener un mejor producto             datos       para       determinar      nuevos
reutilizable, que su implementación sea lo      requerimientos, las características del
más sencillo posible para que lo entienda       dominio son el análisis del contexto que
quien lo va a reutilizar, refinar y eliminar    consiste en definir el alcance, funciones y
clases redundantes, utilizar la herencia        características del domino en diagramas de
para especializar nuestros componentes,         flujo de datos, el modelo del dominio su
tomar en cuenta todas las aplicaciones          propósito es analizar las cosas en común y
hechas con características comunes para         diferencias del problema , analiza las
buscar soluciones, generalizar nuestro          características y capacidades y servicios de
software para que se permita reutilizar         las aplicaciones, se define el conocimiento
componentes         sin    necesidad      de    del dominio para implementarlo y el análisis
reestructurar la arquitectura mediante la       funcional representa el comportamiento de
herencia, establecer las variantes que hay      las aplicaciones. En conclusión se puede
entre varios sistemas para permitirles una      decir que la reutilización tiene beneficios en
larga vida, revisar la documentación para       calidad, productividad, funcionamiento,
verificar que no haya errores o requisitos      confiabilidad, interoperabilidad, reducción
incumplidos. Apara continuar hablemos           de esfuerzo y su facetas son 6: substancia
sobre el DOO cuyo propósito es crear una        define los componente a reutilizar), alcance
arquitectura para el sistema todo esto se       (la forma y grado), modo (como se lleva a
hace mediante el análisis que se hizo           cabo), técnica (lo que se utiliza para
anteriormente ejecutar las estrategias          implementar),       intención    (como       se
implementar las clases y atributos pero el      utilizaran), y producto (que es reutilizado).
problema aquí es que la complejidad se          Los tipos de reutilización son: reutilización
acrecienta rápidamente, y un buen               compositiva está basada en componentes
que aun no se han modificado y la
reutilización generativa que se basa más
en reutilizar un proceso que un
componente, también debemos saber que
dentro de un software se puede reutilizar
desde el código fuente, la documentación,
los objetos, texto, y arquitectura, algoritmos
ya que estos son la base del éxito de un
programa, las librerías de función, de
clases, la arquitectura del software, por otra
pare debemos tener en cuenta los aspectos
legales que son los derechos de registro
del software al momento de reutilizarlo, los
aspectos económicos como cuanto vamos
a invertir y que vamos a obtener al terminar
nuestro           software,          aspectos
organizacionales dependiendo de los
afectados por el software y los aspectos de
métricas para estudiar a fondo el proyecto
antes de su realización.



ALICIA GABRIELA OYERVIDES ARJONA
(10380692)

Más contenido relacionado

La actualidad más candente

Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process FrameworkJAINAM KAPADIYA
 
Software Testing: History, Trends, Perspectives - a Brief Overview
Software Testing: History, Trends, Perspectives - a Brief OverviewSoftware Testing: History, Trends, Perspectives - a Brief Overview
Software Testing: History, Trends, Perspectives - a Brief OverviewSoftheme
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- designLilia Sfaxi
 
Ch8-Software Engineering 9
Ch8-Software Engineering 9Ch8-Software Engineering 9
Ch8-Software Engineering 9Ian Sommerville
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceEr. Nancy
 
Aseguramiento de la Calidad
Aseguramiento de la  CalidadAseguramiento de la  Calidad
Aseguramiento de la CalidadNeris Alfonzo
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimationHaitham Ahmed
 
Writing software requirement document
Writing software requirement documentWriting software requirement document
Writing software requirement documentSunita Sahu
 
Unit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptUnit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptDrTThendralCompSci
 
Lecture 6 agile software development
Lecture 6   agile software developmentLecture 6   agile software development
Lecture 6 agile software developmentIIUI
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceRizky Munggaran
 
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 componentesEmmanuel Fontán
 
Software Quality Assurance in software engineering
Software Quality Assurance in software engineeringSoftware Quality Assurance in software engineering
Software Quality Assurance in software engineeringMuhammadTalha436
 
Software myths | Software Engineering Notes
Software myths | Software Engineering NotesSoftware myths | Software Engineering Notes
Software myths | Software Engineering NotesNavjyotsinh Jadeja
 
ASD (Adaptive Software Development)
ASD (Adaptive Software Development)ASD (Adaptive Software Development)
ASD (Adaptive Software Development)urumisama
 

La actualidad más candente (20)

Software Engineering Layered Technology Software Process Framework
Software Engineering  Layered Technology Software Process FrameworkSoftware Engineering  Layered Technology Software Process Framework
Software Engineering Layered Technology Software Process Framework
 
Software Testing: History, Trends, Perspectives - a Brief Overview
Software Testing: History, Trends, Perspectives - a Brief OverviewSoftware Testing: History, Trends, Perspectives - a Brief Overview
Software Testing: History, Trends, Perspectives - a Brief Overview
 
Software Engineering - chp3- design
Software Engineering - chp3- designSoftware Engineering - chp3- design
Software Engineering - chp3- design
 
Ch8-Software Engineering 9
Ch8-Software Engineering 9Ch8-Software Engineering 9
Ch8-Software Engineering 9
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 
Formal Methods
Formal MethodsFormal Methods
Formal Methods
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
Aseguramiento de la Calidad
Aseguramiento de la  CalidadAseguramiento de la  Calidad
Aseguramiento de la Calidad
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 
Psp ingeniería del software
Psp ingeniería del softwarePsp ingeniería del software
Psp ingeniería del software
 
Writing software requirement document
Writing software requirement documentWriting software requirement document
Writing software requirement document
 
Unit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.pptUnit 1 - Introduction to Software Engineering.ppt
Unit 1 - Introduction to Software Engineering.ppt
 
Lecture 6 agile software development
Lecture 6   agile software developmentLecture 6   agile software development
Lecture 6 agile software development
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
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
 
Ch1 introduction
Ch1 introductionCh1 introduction
Ch1 introduction
 
Software Quality Assurance in software engineering
Software Quality Assurance in software engineeringSoftware Quality Assurance in software engineering
Software Quality Assurance in software engineering
 
Software myths | Software Engineering Notes
Software myths | Software Engineering NotesSoftware myths | Software Engineering Notes
Software myths | Software Engineering Notes
 
Ch15 software reuse
Ch15 software reuseCh15 software reuse
Ch15 software reuse
 
ASD (Adaptive Software Development)
ASD (Adaptive Software Development)ASD (Adaptive Software Development)
ASD (Adaptive Software Development)
 

Similar a Reutilizacion de componentes en sistemas

Modelo componentes
Modelo componentesModelo componentes
Modelo componentesmartin
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentesUlises Cruz
 
14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentesGary Araujo Viscarra
 
Diseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentesDiseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentesAndresRealp1
 
Modelos de procesos de software(completo)
Modelos de procesos de software(completo)Modelos de procesos de software(completo)
Modelos de procesos de software(completo)David Rosero
 
redes de computacion
redes de computacionredes de computacion
redes de computacionbryfer_diaz
 
9 tecnologías v1.1
9 tecnologías v1.19 tecnologías v1.1
9 tecnologías v1.1UTN
 
Ingenieria de software basada en componentes -jeiner gonzalez blanco
Ingenieria de software basada en componentes  -jeiner gonzalez blancoIngenieria de software basada en componentes  -jeiner gonzalez blanco
Ingenieria de software basada en componentes -jeiner gonzalez blancoJeiner Gonzalez Blanco
 
Capitulo xiv expectativasparaunambientededesarrollo
Capitulo xiv expectativasparaunambientededesarrolloCapitulo xiv expectativasparaunambientededesarrollo
Capitulo xiv expectativasparaunambientededesarrolloarpamanpadopo
 
Documentacion struts2 laura.palma
Documentacion struts2 laura.palmaDocumentacion struts2 laura.palma
Documentacion struts2 laura.palmaLaura Palma
 
Programación Orientada a Aspectos - Fernando Córdoba
Programación Orientada a Aspectos - Fernando CórdobaProgramación Orientada a Aspectos - Fernando Córdoba
Programación Orientada a Aspectos - Fernando Córdoba2008PA2Info3
 
Programación rientada a Aspectos - David Burbano
Programación rientada a Aspectos - David BurbanoProgramación rientada a Aspectos - David Burbano
Programación rientada a Aspectos - David Burbano2008PA2Info3
 

Similar a Reutilizacion de componentes en sistemas (20)

Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
 
Nixon torrealbav
Nixon torrealbavNixon torrealbav
Nixon torrealbav
 
Fr amework
Fr ameworkFr amework
Fr amework
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes14704374 arquitectura-basada-en-componentes
14704374 arquitectura-basada-en-componentes
 
Framework spring
Framework springFramework spring
Framework spring
 
Diseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentesDiseño en-el-nivel-de-componentes
Diseño en-el-nivel-de-componentes
 
Modelos de procesos de software(completo)
Modelos de procesos de software(completo)Modelos de procesos de software(completo)
Modelos de procesos de software(completo)
 
Diccionario 1
Diccionario 1Diccionario 1
Diccionario 1
 
redes de computacion
redes de computacionredes de computacion
redes de computacion
 
9 tecnologías v1.1
9 tecnologías v1.19 tecnologías v1.1
9 tecnologías v1.1
 
Ingenieria de software basada en componentes -jeiner gonzalez blanco
Ingenieria de software basada en componentes  -jeiner gonzalez blancoIngenieria de software basada en componentes  -jeiner gonzalez blanco
Ingenieria de software basada en componentes -jeiner gonzalez blanco
 
Capitulo xiv expectativasparaunambientededesarrollo
Capitulo xiv expectativasparaunambientededesarrolloCapitulo xiv expectativasparaunambientededesarrollo
Capitulo xiv expectativasparaunambientededesarrollo
 
Documentacion struts2 laura.palma
Documentacion struts2 laura.palmaDocumentacion struts2 laura.palma
Documentacion struts2 laura.palma
 
Documentacion struts2
Documentacion struts2Documentacion struts2
Documentacion struts2
 
Presentación1
Presentación1Presentación1
Presentación1
 
Programación Orientada a Aspectos - Fernando Córdoba
Programación Orientada a Aspectos - Fernando CórdobaProgramación Orientada a Aspectos - Fernando Córdoba
Programación Orientada a Aspectos - Fernando Córdoba
 
Componentes
ComponentesComponentes
Componentes
 
Arquitecturas de software
Arquitecturas de softwareArquitecturas de software
Arquitecturas de software
 
Programación rientada a Aspectos - David Burbano
Programación rientada a Aspectos - David BurbanoProgramación rientada a Aspectos - David Burbano
Programación rientada a Aspectos - David Burbano
 

Reutilizacion de componentes en sistemas

  • 1. COMPONENTES REUTILIZABLES exploradores, se basa en los APIs cual EN UN PROYECTO DE objetivo es poder definir un modelo de componentes pequeños o medianos que SOFTWARE permitan una mejor accesibilidad, que sean El objetivo de la ISBC (Ingeniería de portables con gran calidad y lo más simple Software Basada en Componentes) es posibles, además de que los componentes aumentar la productividad de otros software pueden soportar la introspección, ser que ya están elaborados, esto se hace modificados, la comunicación mediante reutilizando componentes estándares, pero eventos. primero que nada un componente es una Ahora Java 2 Platform Enterprise Edition parte modular que encapsula su contenido (J2EE) facilita y simplifica el desarrollo de y es por eso que reutilizarlo es fácil ya que programación en múltiples capas además no es necesario reprogramarlo incluye políticas y APIs como Java Servlets completamente, el componente está y Java Message Service (JMS), también es compuesto de su interfaz y su compatible con las plataformas estándares. implementación por separado por lo que Por otra pare se encuentra Microsoft.NET solo se cambiara en su implementación él que conecta personas, sistemas y como hace las cosas no el servicio que dispositivos, permite construir aplicaciones provee ya originalmente y tampoco web, inteligentes, servicios web XML, los cambiara la resto de la aplicación. Cuando desarrolladores de componentes puede vamos a reutilizar un componente hay dos utilizar herramientas como Microsoft Visual clasificaciones una que divide en Studio.NET el cual provee un ambiente subcategorias las categorías de cada integrado y rápido para programar, también componente y el de facetas que nos puede utilizar servidores como Microsoft describe de manera profunda cada Windows, SQL Server, BizTalk Server que componente, por otra parte los elementos integran corren y manejan aplicaciones y de los componentes nos dicen el estado de servicios web. En conjunto permite al éstos como su servicio y también nos dice desarrollador construir y correr aplicaciones que el componente puede soportar varias basadas en web, reduciendo el tiempo de implementaciones, cuando tenemos los codificación ya que partes de la componentes a utilizar ahora buscamos programación las realiza automáticamente, programas donde ejecutarlos como puede también permite el desarrollo, búsqueda y ser Microsoft COM+, Sun Java Beans, manipulación de datos XML. Enterprise Java Beans etc. Ahora hablaremos de las interfaces son la Ahora los paquetes son componentes parte visible de los componentes y no agrupados que dan un servicio, para esto afectan la implementación de los mismos. también debemos tener en cuenta que los Las interfaces definidas tienen dos componentes están formados por objetos propiedades funcionales unas que son la que tiene acceso a su implementación pero firma que describen las operaciones del no debemos dejar accesible la componente y las y el comportamiento que implementación de nuestro componente a describe el comportamiento del objetos de afuera de esté, para utilizar los componente. Se pueden describir dos tipos componentes podemos usar CORBA que de interfaces las exportadas o las es actualmente la arquitectura estándar importadas las interfaces exportadas para objetos y compatible con varias describen los servicios que ofrece un plataformas. componente en un ambiente mientras que Por otro lado Java Beans es una las interfaces importadas especifican los arquitectura neutral, también opera en servicios requeridos por un componente en cualquier sistema operativo y permite la el ambiente. El único problema de las reutilización de componentes los cuales interfaces es que no se actualicen y haya soportan contenedores de diferentes incompatibilidad de versiones, por lo que
  • 2. algunas veces en cuanto sale una interfaz los frameworks y patrones podemos decir se congela su implementación y no se que los patrones de diseño son una vuelven a modificar. estructura lógica en el software mientras que los frameworks es una estructura física Los contratos listan las restricciones que se basa en el diseño de los patrones globales que mantendrá un componente, las diferencias entre ambos es que los lista las restricciones que el cliente necesita frameworks son implementados en un conocer (la precondición) y las que el lenguaje de programación y es ejecutado y componente promete establecer (la pos los patrones necesitan ser implementados condición) que en conjunto forman la cada que se utilizan, otra diferencia es que especificación del componente, también los patrones son elementos más pequeños especifica las interacciones entre que los frameworks y estos a su vez componentes en términos de el conjunto de contiene varios patrones mientras que un componentes que participan, el papel que patrón no puede contener varios desempeña cada componente así como frameworks, otra cosa los patrones pueden sus requerimientos, la especificación de los utilizarse en cualquier aplicación y los métodos que instancia el contrato. Todo frameworks son más especializados y se componente requiere de los servicios de aplican particularmente. Ahora sobre el otros componentes, y en conjunto trabajan análisis y diseño orientado al objeto para la para proveer un objetivo específico. reutilización, para esto podemos decir que el termino reutilización fue postulado por Los patrones capturan soluciones no M.D Mclloroy en la conferencia de la NATO obvias y describen relaciones entre las en 1968 sobre Ingeniería de Software, el estructuras más profundas de un sistema y propósito de la reutilización es mejorar la los mecanismos y no solo entre módulos eficiencia y productividad del desarrollo de independientes. Ahora un patrón de diseño software utilizando elementos de software puede ser empleado en el diseño y existentes, para reutilizar un componente documentación de un componente describe esté debe cumplir ciertos requerimientos los detalles de la implementación, pueden para terminar como un componente ser clasificados en 3 categorías genérico y especializado, las técnicas para dependiendo de su nivel de abstracción: los utilizarlos consisten en la selección y patrones de arquitectura capturan toda la recuperación, la comprensión y evaluación, estructura y organización de un sistema, la adaptación y la integración de los describen los subsistemas participantes y componentes, en la reutilización se utiliza especifica los papeles y relaciones que hay la programación orientada a objetos la cual entre ellos, otros son los patrones de proporciona mecanismos como diseño éstos refinan la estructura y el encapsulación, abstracción y ocultación de comportamiento de los subsistemas y la la información y las clases proporcionan comunicación entre ellos. Pero en dos niveles de reutilización como conclusión los patrones sirven para representación de una abstracción que se identificar y describir los componentes que puede especializar y como fabrica de se van a reutilizar. Los frameworks son objetos que comparten estructura y marcos de trabajo donde se juntan todas comportamiento, para esto se usa la las piezas o componentes reutilizables su herencia que permite que una clase utilice diseño puede servir para varias situaciones objetos de ella en otra clase pero no es tan y en ellos se especifican los requerimientos eficiente a la hora de una aplicación amplia que deben tener los componentes que al tener muchas dependencias internas en estarán en él, la diferencia que hay entre el recurso de rapidez, por otro lado los estos y los contratos es que los frameworks frameworks son un conjunto de clases se enfocan en las propiedades globales de asociadas por herencia donde las clases los componentes y los contratos abstractas son las principales y le siguen especifican el comportamiento y las clases concretas las cuales trabajan requerimientos de los mismos y referente a como un todo y debe de ocultar las partes
  • 3. de diseño y dejar accesibles las que deben subsistema debe tener una fuerte cohesión especializarse y para reutilizar un es decir que si un subsistema es frameworks se debe definir las clases que modificado no debe alterar a un se necesitan y configurar objetos ya que subsistemas de nivel bajo, cada este se reutiliza completo. Ahora hablemos subsistema debe tener una alta cohesión y del análisis y diseño orientado al objeto, un bajo acoplamiento, se debe ocultar el donde el objetivo del análisis es modelar el comportamiento o funcionalidad entre los dominio del problema identificando los subsistemas, después de esto llegamos al objetos semánticos que contiene el diseño detallado que consiste en la significado de las especificaciones y los utilización de la herencia para que los requisitos mientras que el diseño se enfoca componentes sean menores más sencillos en los objetos semánticos relacionados a de entender y modificar, utilizar interfaces, las soluciones examinando de nueva métodos públicos, usar el polimorfismo y cuenta las clases para mejorar su evitar clases demasiado grandes. Para la reutilización y aventajar sobre la herencia, reutilización utilizamos mucho el termino pero estos dos pasos deben llevarse a dominio que puede definirse como un área cabo juntos de manera concurrente. En de conocimiento donde se observan concreto el AOO sirve para identificar los conceptos relacionados por lo que el requerimientos de nuestro software para análisis de dominio es un proceso de esto se realizan tres actividades las cuales creación y mantenimiento de estructuras son, identificar las clases, atributos y los hay verticales que especifica una clase comportamientos y tener lo reemplazos de de sistemas y los horizontales que contiene los anteriores y especificar el partes generales de software, es muy comportamiento dinámico mediante paso importante que el dominio de nuestro de mensajes, algunas consideraciones que software se defina de manera clara y juntar se deben de tomar son: recoger toda la información después de esto se información de la mayor cantidad de debe recolectar datos sobre los fuentes posibles para una mejor visión a componentes que vamos a utilizar si sirven futuro, capturar todos los requisitos que se o no, deben clasificarse y analizarse los puedan para tener un mejor producto datos para determinar nuevos reutilizable, que su implementación sea lo requerimientos, las características del más sencillo posible para que lo entienda dominio son el análisis del contexto que quien lo va a reutilizar, refinar y eliminar consiste en definir el alcance, funciones y clases redundantes, utilizar la herencia características del domino en diagramas de para especializar nuestros componentes, flujo de datos, el modelo del dominio su tomar en cuenta todas las aplicaciones propósito es analizar las cosas en común y hechas con características comunes para diferencias del problema , analiza las buscar soluciones, generalizar nuestro características y capacidades y servicios de software para que se permita reutilizar las aplicaciones, se define el conocimiento componentes sin necesidad de del dominio para implementarlo y el análisis reestructurar la arquitectura mediante la funcional representa el comportamiento de herencia, establecer las variantes que hay las aplicaciones. En conclusión se puede entre varios sistemas para permitirles una decir que la reutilización tiene beneficios en larga vida, revisar la documentación para calidad, productividad, funcionamiento, verificar que no haya errores o requisitos confiabilidad, interoperabilidad, reducción incumplidos. Apara continuar hablemos de esfuerzo y su facetas son 6: substancia sobre el DOO cuyo propósito es crear una define los componente a reutilizar), alcance arquitectura para el sistema todo esto se (la forma y grado), modo (como se lleva a hace mediante el análisis que se hizo cabo), técnica (lo que se utiliza para anteriormente ejecutar las estrategias implementar), intención (como se implementar las clases y atributos pero el utilizaran), y producto (que es reutilizado). problema aquí es que la complejidad se Los tipos de reutilización son: reutilización acrecienta rápidamente, y un buen compositiva está basada en componentes
  • 4. que aun no se han modificado y la reutilización generativa que se basa más en reutilizar un proceso que un componente, también debemos saber que dentro de un software se puede reutilizar desde el código fuente, la documentación, los objetos, texto, y arquitectura, algoritmos ya que estos son la base del éxito de un programa, las librerías de función, de clases, la arquitectura del software, por otra pare debemos tener en cuenta los aspectos legales que son los derechos de registro del software al momento de reutilizarlo, los aspectos económicos como cuanto vamos a invertir y que vamos a obtener al terminar nuestro software, aspectos organizacionales dependiendo de los afectados por el software y los aspectos de métricas para estudiar a fondo el proyecto antes de su realización. ALICIA GABRIELA OYERVIDES ARJONA (10380692)