REUTILIZACIN SISTEMTICA DEL SOFTWARE - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

REUTILIZACIN SISTEMTICA DEL SOFTWARE

Description:

Jos Manuel Marqu s. Departamento de Inform tica. Universidad ... Burgos, 16 de ... hard SO DBMS comunicaciones. dificulta la portabilidad y la inter ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 36
Provided by: josmanue3
Category:

less

Transcript and Presenter's Notes

Title: REUTILIZACIN SISTEMTICA DEL SOFTWARE


1
REUTILIZACIÓN SISTEMÁTICA DEL SOFTWARE
José Manuel Marqués Departamento de
Informática Universidad de Valladolid
  • Burgos, 16 de diciembre de 1998

2
INDICE
  • Introducción/Motivación
  • Conceptos básicos de reutilización
  • Proceso
  • Organización / gestión
  • Tecnologías en la reutilización

3
Reutilización
Problema cultural?
4
(No Transcript)
5
ACLARACIONES PREVIAS
  • La reutilización es un problema técnico y
    no-técnico
  • No es necesario la utilización de herramientas
    especiales
  • La Inteligencia Artificial no es LA SOLUCIÓN al
    problema de la reutilización
  • Ningún lenguaje proporciona la solución al
    problema de la reutilización
  • El diseño de software a partir de componentes
    reutilizables NO es equivalente al diseño de
    hardware utilizando circuitos integrados
  • La reutilización del software que no ha sido
    diseñado específicamente para la reutilización es
    complicada.

6
Motivación
  • Por qué reutilizar?
  • Cuál es la importancia de la reutilización?
  • Qué es reutilización?
  • Qué se debe reutilizar?
  • Cómo se realiza la reutilización?
  • Qué aspectos están relacionados con la
    reutilización?

7
Por qué reutilizar?
8
Por qué reutilizar?
La reutilización sistemática del software
proporciona las bases para el incremento de la
calidad y la fiabilidad y a largo plazo reduce
los costes del desarrollo y el mantenimiento del
software
9
Por qué reutilizar?
Desarrollo rápido de sistemas
  • Algunos tipos de sistemas software tienen un
    tiempo crítico de entrega
  • Reutilización de componentes reduce el tiempo
  • Se puede abordar el prototipado
  • Implica la existencia de un método de diseño para
    la reutilización

10
Estandarización y consistencia
Por qué reutilizar?
  • Existen funciones similares en diferentes formas
    en diferentes sistemas
  • La reutilización de componentes significa el
    desarrollo de un estándar para la organización

11
Encapsulación de la experiencia
Por qué reutilizar?
  • No siempre se tienen los expertos en el dominio a
    mano
  • No se reutiliza el conocimiento del experto, se
    captura su conocimiento en un componente
  • Se reducen los riesgos
  • Reutilización vs. Re-implementación

12
Cuál es la importancia de la reutilización?
Se ha demostrado que la aplicación de los
principios de la reutilización del software
proporciona grandes beneficios en la reducción de
costes, tiempo y esfuerzo a lo largo del ciclo de
vida de la producción del software.
En la Navy una reducción del 26 en las horas de
trabajo.
Raytheon (Missile System Division) un incremento
del 50 en la productividad.
Fujitsus Software Development ha pasado del 20
al 70 en los productos que se entregaron a
tiempo.
La Army ha estimado un ahorro de 479.9 millones
en el desarrollo del Tactical Command and
Control system.
13
Qué es reutilización? (1)
Software components (routines), to be widely
acceptable to different machines and users,
should be available in families arranged
according to precision, robustness, generality
and time-space performance. Existing sources of
components - manufacturers, software houses,
users groups and algorithm collections - lack
the breadth of interest or coherence of purpose
to assemble more than one or two members of such
families, yet software production in the large
would be enormously helped by the availability
of spectra of high quality routines, quite as
mechanical design is abetted by the existence of
families of structural shapes, screws,
or resistors. Doug McIlroy, 1968.
14
Qué es reutilización? (2)
  • La utilización de conceptos y objetos existentes
    en un sistema o situación nueva, directamente o
    adaptándolos. Para ello, estos conceptos y
    objetos deberán encontrarse codificados en un
    nivel de abstracción establecido y deberán poder
    ser recuperados
  • Propiedad de utilizar conocimiento o componentes
    software ya existente para adaptarlo a una nueva
    necesidad, incrementando significativamente la
    calidad y productividad del desarrollo.
  • Es el proceso de implementar o actualizar
    sistemas software utilizando assets software
    existentes

15
Qué es reutilización? (3)
  • Es la utilización de conceptos u objetos
    adquiridos previamente en una nueva situación, e
    implica la codificación de la información del
    desarrollo a diferentes niveles de abstracción,
    almacenar esta representación para referenciarla
    en el futuro, contraste de situaciones nuevas y
    antiguas, duplicación de objetos y situaciones ya
    desarrolladas, y su adaptación para ajustarse a
    nuevos requisitos
  • Reusabilidad es una medida de la facilidad con
    la que uno puede utilizar estos conceptos u
    objetos previos en situaciones nuevas

16
Qué es reutilización? (y 4)
Utilización de assets
asset?
Proceso
Infraestructura
Planificación
Certificación de assets
Catalogación de assets
Soporte
Bibliotecas
Localización
Recuperación
Creación de assets
Análisis y modelado de dominios
17
Qué se debe reutilizar?
  • Productos. Utilización de productos o partes de
    productos existentes con o sin modificación en el
    desarrollo de otros productos. Enfoque de
    composición.
  • Procesos. Utilización de procesos que se han
    utilizado de forma exitosa para desarrollar un
    tipo de producto para el desarrollo de productos
    similares. Este enfoque se suele denominar el
    enfoque generador.

18
Qué se debe reutilizar?
Se va a denominar asset a cualquier producto del
ciclo de vida del software que pueda ser
potencialmente reutilizado. Esto incluye
modelo de dominio, arquitectura de dominio,
requisitos, diseño, código, bases de datos,
esquemas de bases de datos, documentación,
manuales de usuario, casos de prueba... DoD,
1992
19
Marco tecnológico
  • Perspectiva de los sistemas implicados
    (Biggerstaff Richter, 87)
  • Se centra en los mecanismos empleados en la
    creación de sistemas software y las salidas que
    producen esos mecanismos. (composición/generación)
  • Combinación de abstracción, selección,
    especialización e integración (Krueger, 92)
  • Procesos y su formalización (Bowles, 93)
  • dominios horizontales -gt dominios verticales
  • individual -gt proyecto -gt empresa
  • código -gt diseño -gt concepto -gt abstracción

20
Principios de las tecnologías de composición
  • Componentes atómicos
  • Los componentes no cambian en la reutilización
  • Pueden ser modificados o cambiados para que se
    ajusten a los propósitos computacionales de la
    reutilización
  • Son elementos pasivos sobre los que operan
    agentes externos
  • Los nuevos programas se obtienen a partir de la
    composición de bloques, aplicando principios
    perfectamente definidos.

21
Principios de las tecnologías de generación
  • Componentes no fáciles de identificar como
    entidades concretas
  • Se puede identificar un bloque de construcción
    antes y después de su utilización
  • Es inmutable en el sentido de que mantiene su
    forma e identidad después de su utilización
  • Son a menudo patrones incorporados en el sistema
    generador
  • Las estructuras resultantes no están muy
    relacionadas con el patrón del programa generador
  • La reutilización es un asunto de ejecución
  • Patrones de código
  • Patrones de reglas de transformación

22
Elementos de las tecnologías - Krueger
  • Abstracción
  • Permite a los desarrolladores saber que hace cada
    elemento y cómo reutilizarlo
  • Selección
  • Cualquier enfoque de reutilización ayuda a
    localizar, comparar y seleccionar elementos de
    software reutilizable
  • Especialización
  • Los elementos similares se agrupan en uno
    genérico. Una vez seleccionado el elemento hay
    que especializarlo para poder utilizarlo
  • Integración
  • Combinación de elementos seleccionados y
    especializados en un sistema software completo

23
Categorías de reutilización - Krueger
  • LENGUAJES DE ALTO NIVEL
  • RECOGIDA DE DISEÑOS Y CODIGO
  • COMPONENTES DE CODIGO FUENTE
  • ESQUEMAS SOFTWARE
  • GENERADORES DE APLICACIONES
  • LENGUAJES DE MUY ALTO NIVEL
  • SISTEMAS TRANSFORMACIONALES
  • ARQUITECTURAS SOFTWARE

24
Cómo se realiza la reutilización?
  • Caótica
  • Aplicación individual intuitiva e informal
  • Controlada
  • Aplicada a nivel de grupos de trabajo que
    utilizan herramientas no especializadas para la
    reutilización.
  • Coordinada
  • Aplicada en algunas áreas de aplicación con
    algunas herramientas de clasificación y síntesis
  • Planificada
  • Orientada al desarrollo de familias de productos
    motivada por la naturaleza del negocio con
    bibliotecas automatizadas de componentes
    reutilizables
  • Integrada
  • Aplicada en toda la empresa como forma de
    trabajo, incentivada por el plan estratégico y
    con soporte automatizado orientado a la
    reutilización

25
Cómo se organiza la reutilización?
Propuestas
26
(No Transcript)
27
Biblioteca Software
Especifi.Requis.Soft.
Componentes Aplicación
DiseñoAlto Nivel
ComponentesModelado
ArquitecturasGenéricas
Disponible
SubsistemasEsp.,Dise.Cod.,Test
DiseñoDetallado
PlantillasDiseño
ModulosEsp.,Dise.Cod. Test
FragmentosCódigo
Usar/Adaptar
Implantación
TestUnidades
HERRAMIENTAS
Compil.
Editores
TestIntegración
Analizadores
TestRequis.Softw.
28
Desarrollo con Reutilización
Asistencia a la reutilización
Recuperación
Evaluación
Adaptación
Repositorio de assets
Desarrolladores de aplicaciones
Coordinador
Candidatos Modificación de requisitos Actualizació
n de assets
Asistencia a la construcción de assets
Desarrollo para Reutilización
Clasificación
Cualificación
Reingeniería
29
(No Transcript)
30
Tecnologías en la reutilización del software
Representación
  • Es una vista o modelo del propio asset
    reutilizable
  • Es una descripción del asset reutilizable en un
    nivel de abstracción
  • procesos, partes de procesos, objetos, productos
    y relaciones entre procesos y productos
  • Se necesitan modelos comunes de representación.
  • Representaciones expresivas que capturen la
    estructura, funcionalidad, comportamiento y
    restricciones
  • Modelo 3C (RSRG)
  • RIG, PCTE (ECMA), IRDS (ANSI)....

31
Tecnologías en la reutilización del software
Bibliotecas y repositorios
ASSET , CARDS, RBSE-ELSA, EUROWARE. ...
32
Tecnologías en la reutilización del software
Métodos
  • Basados en el conocimiento
  • Aplicación de las técnicas de representación del
    conocimiento y del razonamiento para obtener las
    representaciones de los expertos en un dominio y
    aplicarlas a una solución automatizada del
    problema en ese dominio.
  • Orientados al Objeto
  • OOP Clases (modularidad, ocultamiento de la
    información y polimorfismo) y herencia.
  • OOD frameworks design patterns
  • OOA Compatible con el análisis de dominios, Use
    Cases
  • Formales
  • Utilización de teorías matemáticas para
    especificar, desarrollar y verificar sistemas.

33
Tecnologías en la reutilización del software
Software Engineering Environments
  • Plataformas
  • hard SO DBMS comunicaciones
  • dificulta la portabilidad y la inter-operabilidad
  • Marco de servicios
  • Utiliza los recursos de la plataforma
  • almacenamiento y gestión de assets
  • Repositorio
  • Herramienta CASE
  • produce y utiliza los assets del repositorio
  • Herramientas para el ciclo de vida
  • documentación, métricas, gestión de
    configuraciones, proceso y proyecto

34
Tecnologías en la reutilización del software
Reingeniería
  • Consiste en el examen y la reforma de un sistema
    para reconstituirlo en una forma nueva e
    implementarlo de nuevo
  • Los assets se recuperan a partir de sistemas
    existentes, fase de ingeniería inversa, y se
    crean nuevos assets, fase de ingeniería directa
  • Tecnología muy interesante en los casos en los
    que los assets no han sido desarrollados
    específicamente para reutilización
  • Mejora del software, comprensión del software, y
    captura, conservación y extensión del
    conocimiento del software

35
Muchas gracias por la atención prestada
Preguntas?
Write a Comment
User Comments (0)
About PowerShow.com