Métricas en la reutilización orientada al objeto (25 de enero de 1999)

MĒ Esperanza Manso Martínez

e-mail: manso@infor.uva.es

Francisco J. García Peñalvo

e-mail: fgarcía@gugu.usal.es

Miguel A. Laguna Serrano

e-mail: mlaguna@infor.uva.es

 

  1. Introducción
  2. La reutilización del software se está vendiendo como una de las mejores aproximaciones para atajar la tan afamada crisis del software - y especialmente como compañera inseparable del paradigma orientado a objetos (en adelante OO)- como una posible solución para dar respuesta a un mercado que exige productos y servicios cada vez más fiables, baratos y entregados a tiempo [Jacobson et al, 1997], [McClure, 1997], [Karlsson, 1995]

    Existen dos facetas básicas en la reutilización, el desarrollo para reutilización o el desarrollo con reutilización. Ambas, aunque estrechamente relacionadas, presentan características peculiares que involucran puntos de vista diversos que se complementan, y que aún no están suficientemente investigados ni desarrollados. Uno de ellos tiene que ver con las métricas y modelos del paradigma OO y su uso en la reutilización.

    Se puede decir que la reutilización es un nuevo modelo de desarrollo de software [Jacobson et al, 1997] que requiere un entorno soportado por tecnología que aún no esta madura, y un modelo de desarrollo que explicite cuando cómo y dónde reutilizar, o cómo desarrollar el elemento para la reutilización. Desde esta perspectiva, los repositorios son un paso más en el proceso para integrar la reutilización en la ingeniería del software.

    La investigación sobre modelos de métricas y validación de los mismos, forma parte de la estructura que posibilitará que la reutilización se convierta en una disciplina de ingeniería totalmente incorporada a la Ingeniería del Software.

  3. Calidad y métricas vs. reutilización

Un modelo de reutilización completo debe aglutinar las diversas vistas que se tienen de la reutilización del software [Karlsson, 1995]. De forma simplificada, debe comprender:

El proceso de desarrollo para el paradigma de Orientación al Objeto se comporta de forma diferente al paradigma de desarrollo clásico, las fases de análisis y diseño no están tan separadas. Y la diferencia es aún mayor si se desarrolla con reutilización, pues ésta se encuentra incorporada en el desarrollo OO a través de mecanismos inherentes al paradigma, como la herencia.

Vamos a considerar algunos aspectos relevantes de la calidad y de las métricas, desde el punto de vista de la reutilización, centrándonos en el proceso y el producto.

El desarrollo de productos software con un alto valor de reutilización (para reutilización), supondrá un incremento de los costes, ya que tendrán un valor añadido. El modelo de costes que se utilice deberá incluir, de una u otra forma, parámetros que reflejen ese valor añadido al producto [Karlsson, 1995, pp165-168] [Frakes, 1996].

En cuanto a los costes del desarrollo con reutilización, se estiman en [Karlsson, 1995, pp 168-173], [McClure, 1997] y [Frakes, 1996] teniendo en cuenta que éste es uno de los aspectos más conflictivos de la reutilización. Los modelos de estimación de costes deberán diferenciar entre elementos software que se desarrollan por completo y aquellos que se reutilizan total o parcialmente. Cabe esperar una reducción en los costes, pues desarrollar con reutilización debe aumentar la productividad. Sin embargo no todos los autores coinciden en este punto, según [McClure, 1997] los beneficios de la reutilización hay que buscarlos en la mejora de otros aspectos como calidad, fiabilidad, etc. y no en los costes.

Las métricas servirán para reflejar y/o controlar, entre otros, la reusabilidad y factores de calidad que sean de interés en el entorno de desarrollo para reutilización. Es un hecho que las personas que juegan el papel de desarrolladores para reutilización, deben poner el máximo interés para que los assets que producen recuperen la inversión de tiempo y dinero a través de su reutilización, y las métricas son un medio para cualificar los assets que están produciendo. Parece razonable pensar que un asset de baja fiabilidad no es un buen candidato para reutilizar, en este caso los modelos y métricas de fiabilidad jugarán un papel importante.

Uno de los soportes para la reutilización, que integra herramientas de diferentes tipos actuando conjuntamente, es el repositorio [Karlsson, 1995]. El papel jugado por la administración de un repositorio no se limitará sólo a publicar y gestionar el acceso a los assets recibidos. También formará parte de ella un aspecto fundamental que es el de la cualificación de los assets, de forma que un determinado asset para ser considerado como tal deberá pasar por un proceso que lo cualifique o certifique como elemento de valor y de calidad. Las métricas del producto son parte de las herramientas a utilizar en este proceso. Y modelos como el FCM(Factor, Criterios, Métricas) o el GQM(Objetivos, Cuestiones, Métricas) [Fenton, 1997], permitirán crear un marco en el que deducir un conjunto de métricas asociadas a cada factor u objetivo de interés. La explotación del repositorio, en el desarrollo con reutilización, permitirá obtener información procedente de los usuarios, que puede dar lugar a revisiones y ajustes en ese conjunto de métricas. El marco que proporcionan los modelos bayesianos puede facilitar algunos reajustes, considerando que permite realizar modificaciones en las estimaciones a priori, con la llegada de nueva información [McClure, 1997, pp. 158-162]

En cualquier caso, se hace necesario el estudio de las propiedades que tienen las métricas, tanto desde el punto de vista de la medición como desde el punto de vista estadístico, estudio de los modelos estadísticos que se utilizan, pues todo ello permitirá:

Ésta es una de las vías que pueden aproximar las aplicaciones reales de la reutilización del software a las expectativas creadas en los ambientes académicos y de investigación.

 

  1. Bibliografía referenciada.

 [Fenton, 1997] Fenton N.E. & Pfleeger S.L., "Software Metrics. A rigorous and practical approach". PWS Pub., 1997.

En este texto se describen modelos de calidad y métricas del software, los más conocidos, evaluando su validez desde el punto de vista de la teoría de la medida. En los capítulos 1,3 y 13 se encuentran referencias a los modelos FCM y GQM, lugar que ocupan y utilidad que tienen en el contexto de la Ingeniería del software, así como referencias bibliográficas donde ampliar el estudio de estos modelos.

 [Frakes, 1996] Frakes Williams y Terry Carol, "Software Reuse: Metrics and Models" . ACM Computing Surveys. Vol. 28 Nē 2. June 1996.

Se presenta una clasificación de la reutilización y las métricas adecuadas a cada tipo. Analiza los costes y beneficios de la reutilización, introduciendo variantes en los modelos clásicos de costes, y presenta los resultados de un estudio en el que se relaciona la calidad (medida como tasa de errores) y productividad (medida como tiempo medio de desarrollo) con la reutilización.

Además presenta un Modelo de Madurez de la Reutilización análogo al CMM propuesto por SEI.

 [Jacobson et al., 1997] Jacobson I.,Griss M. y Jonsson P. ," Software reuse. Architecture, Process and Organization for Business Success" , ACM Press. Addison Wesley Longman, 1997.

Al comienzo del texto se describen los objetivos, alcances y limitaciones del mismo, en forma bastante realista. La mayor aportación del texto es la información detallada que proporciona sobre la aplicación de la reutilización en diferentes casos particulares. Se ponen en práctica las ideas genéricas llevándolo a un terreno más concreto, con el riesgo de que sólo sirva para resolver el caso de estudio pertinente. Las referencias a métricas se hacen, sobre todo, desde la perspectiva del proyecto (estimación de costes de la reutilización, del tiempo y del esfuerzo), con el fin de gestionar, a partir de ellas, la reutilización.

 [Karlsson, 1995] Karlsson Even-André, "Software Reuse. A Holistic Approach", Edited by Even-André Karlsson, John Wiley & Son Ltd.1995

Este libro surge a raíz del proyecto ESPRIT III #7808 REBOOT (REuse Based on Object-Oriented Techniques). Intenta cubrir los aspectos de organización y metodológicos (estos últimos desde el punto de vista del paradigma de la orientación a objeto) para la implantación adecuada de la reutilización dentro de un organismo.

Los contenidos se estructuran en dos partes diferenciadas. La primera trata fundamentalmente aspectos organizativos. La segunda parte se centra en aspectos metodológicos, y proporciona una colección de guías que permiten sistematizar la reutilización en todos los niveles de abstracción, ya sea en su vertiente de desarrollo para o con reutilización.

El marco en el que desarrolla las métricas es bastante preciso, tanto en lo que se refiere a objetivos como a modelos utilizados: el objetivo de las actividades de medida que plantea consiste en capturar aspectos del desarrollo del software relacionados con la reutilización, y mostrar cómo pueden utilizarse. En concreto medidas del proceso de reutilización, del producto y del coste de la reutilización.

El modelo de validación de métricas de factores y atributos, lo que en el texto se llama calibración, se basa en estadística bayesiana, aunque no se proporciona información sobre las características del estimador que utiliza.

En conclusión se trata de un libro de fácil lectura, muy adecuado para introducirse en la reutilización, y que cubre gran parte de sus aspectos, o bien como material de referencia para cualquiera que ocupe un papel determinado dentro de una experiencia de reutilización.

 [McClure, 1997] McClure Carma, "Software Reuse Techniques. Adding Reuse to the Systems Development Process", Prentice Hall, 1997.

Este texto trata de identificar los pasos necesarios para incorporar la reutilización sistemática dentro del proceso de desarrollo de software. Para ello aborda el tema desde los diferentes puntos de vista que se tienen en una organización dedicada a la construcción del software: la parte de gestión, la parte de desarrollo con reutilización y la parte de desarrollo para la reutilización. El texto se divide en dos partes, la primera proporciona una introducción a la reutilización y la segunda se ocupa de técnicas de reutilización.

La introducción a la reutilización está realizada de forma muy correcta y de fácil lectura, lo que hace que sea una referencia prácticamente obligada para cualquiera que se inicie en este tema o en cualquier curso de introducción a la reutilización.

La segunda parte se centra en técnicas de reutilización. Proporciona modelos para estimar los costes de la reutilización en sus diferentes facetas, y críticas a los mismos desde una visión bastante realista sobre las dificultades y problemas que presentan. Las secciones de la segunda parte están escritas en forma de guías que abarcan los diferentes papeles que se representan dentro del proceso de desarrollo.

En conclusión el texto proporciona una introducción a la reutilización de fácil lectura y una segunda parte de referencia general para la realización de una plan de reutilización, dentro de una organización de desarrollo de software.