Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivos
El campo de la reutilización
Los patrones de diseño
Reutilización basado en generador
Los marcos de aplicación
Sistema de reutilización de aplicaciones
Beneficios de la Reutilización 1
Mayor fiabilidad: Software reutilizados, que han sido probados en
sistemas de trabajo, deben ser mas confiables que el nuevo software.
El uso inicial del software revela cualquier avería del diseño y de la
puesta en práctica. Éstos entonces están fijados, así reduciendo el
número de faltas cuando se reutiliza el software.
Proceso de reducción de riesgos: Si existe el software, hay menos
incertidumbre en los costes de la reutilización que el software que en
los costes de desarrollo. Este es un factor importante para la gestión
de proyectos, ya que reduce el margen de error en la estimación de
costes del proyecto. Esto es particularmente cierto cuando se vuelven
a utilizar los componentes de software relativamente grandes, tales
como sub-sistemas.
El uso eficaz de los especialistas: En lugar de especialistas en
aplicaciones haciendo el mismo trabajo en diferentes proyectos, estos
especialistas pueden desarrollar software reutilizables que encapsulan
sus conocimientos.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 6
Beneficios de la Reutilización 2
• Cumplimiento de las normas: Algunas normas, como las normas de
interfaz de usuario, puede ser implementadas como un conjunto de
componentes estándar reutilizables. Por ejemplo, si los menús en un
interfaz de usuario se implementan utilizando componentes reutilizables,
todas las aplicaciones presentes en el mismo menú se ajustan en formatos
para los usuarios. El uso de interfaces de usuario estándar mejora
fiabilidad, los usuarios son menos propensos a cometer errores cuando se
presenta una interfaz familiar.
Problemas de Reutilización 1
Aumento de costes de mantenimiento: Si el código fuente de un sistema de
software reutilizable o componente no está disponible, los costos de
mantenimiento podrán incrementarse, los elementos reutilizados del sistema puede
llegar a ser cada vez más incompatibles con los cambios del sistema.
La falta de herramienta de apoyo: Conjuntos de herramientas CASE no puede
apoyar el desarrollo con reutilización. Puede ser difícil o imposible integrar estas
herramientas con un sistema de biblioteca de componentes. El proceso de software
asumido por estas herramientas no puede tomar en cuenta la reutilización.
Síndrome No inventado: Algunos ingenieros de software a veces prefieren volver
a escribir componentes, ya que creen que pueden mejorar los componentes
reutilizables. Esto es en parte tiene que ver con la confianza y con el hecho de que
el software original de la escritura es vista como más difícil que la reutilización de
software de otras personas.
El Campo de la Reutilización
Enfoques de Reutilización 1
• Los patrones de diseño: Abstracciones genéricas que se producen en todas las
aplicaciones son representados como patrones de diseño que muestran los objetos
abstractos y concretos y de las interacciones.
• Desarrollo basado en componentes: Los sistemas se desarrollan mediante la
integración de componentes (colecciones de objetos) que se ajusten a las normas de
componentes del modelo. Esto se trata en el capítulo 19.
• Los marcos de aplicación: Colecciones de clases abstractas y concretas que
pueden ser adaptadas y ampliadas para crear sistemas de aplicación.
• Envoltura de sistemas heredados: Los sistemas heredados (véase el capítulo 2)
que pueden ser "envueltos por la definición de un conjunto de interfaces y el acceso
a estos sistemas de legado a través de estas interfaces.
• Servicio de sistemas orientados: Los sistemas se desarrollan mediante la
vinculación de los servicios compartidos que pueden ser proporcionados
externamente.
Nombre
• Un identificador de modelo significativo.
Descripción del problema.
Descripción de la solución.
• No un diseño concreto sino una plantilla para una
solución del diseño que puede ser instanciado de
diversas maneras.
Consecuencias
• Los resultados, las ventajas y desventajas de
aplicar el modelo.
Múltiples Pantallas
50
D
A
25
C
A B C D
B 0
Tema
Observador 1 A: 40 Observador 2
B: 25
C: 15
D: 20
El Patrón Observador
Tipos de Generadores
de Programa
Tipos de generadores de programa
• Generadores de aplicaciones para procesamiento de datos
de negocios;
• Analizador y generadores de analizadores léxicos para el
procesamiento de lenguaje;
• Generadores de código en las herramientas CASE..
Un Generador basado en la reutilización es muy
rentable, pero su aplicabilidad se limita a un número
relativamente pequeño de dominios de aplicación.
Es más fácil que los usuarios finales desarrollen
programas usando los generadores en comparación con
el otro componente de los enfoques basados en la
reutilización.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 22
Reutilización a Través del Generador
de Programa
Desarrollo de Aspecto-Orientado
El desarrollo Aspecto-orientado trata un problema importante
de la tecnología de dotación lógica - la separación de
preocupaciones.
Las preocupaciones no se asocian a menudo simplemente
funcionalidad de la aplicación, pero son transversales - por
ejemplo, todos los componentes pueden controlar su propio
funcionamiento, todos los componentes pueden tener para
mantener la seguridad, etc.
Cuestiones intersectoriales se implementan como los
aspectos y se tejen dinámicamente en un programa. El
código de preocupación es la reutilización y el nuevo
sistema es generado por el tejedor del aspecto.
Modelo-Vista-Controlador
Sistema de E-Adquisiciones
Problemas de Integración
del sistema COTS
La falta de control sobre la funcionalidad y el rendimiento
• Sistemas COTS pueden ser menos eficaces de lo que
parecen
Problemas con el sistema de inter-operabilidad COTS
• Diversos sistemas de los COTS pueden hacer diversas
asunciones que significa que la integración es difícil
Ningún control sobre la evolución del sistema
• Proveedores de COTS no controlan la evolución de los
usuarios del sistema
Soporte de los proveedores de COTS
• COTS vendedores no pueden ofrecer apoyo durante la
vida útil del producto
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 36
Líneas de Productos de Software
Las líneas de productos o familias de aplicaciones de
software son aplicaciones con una funcionalidad
genérica que puede ser adaptada y configurada para su
uso en un contexto específico.
La adaptación puede implicar:
• Componentes y la configuración del sistema;
• Adición de nuevos componentes para el sistema;
• Selección de una biblioteca de componentes ya
existentes;
• Modificación de los componentes para satisfacer
las nuevas necesidades.
Un Sistema de Despacho
Puntos Claves
Reutilización de productos COTS se refiere a la
reutilización de los grandes, fuera de los sistemas
comerciales.
Problemas con la reutilización de COTS incluyen la falta
de control sobre la funcionalidad, el rendimiento y la
evolución y los problemas con la inter-operación.
Los sistemas ERP son creados por la configuración de un
sistema genérico, con información sobre el negocio de un
cliente.
Las líneas de productos de software están relacionados
con las aplicaciones desarrolladas en torno a un núcleo
común de funcionalidad compartida.
©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 50