lunes, 4 de mayo de 2015

Estimación de proyectos de software con puntos de función: Determinar tipo de conteo y componentes funcionales

Este articulo esta basado en el contenido del Curso de Análisis de Puntos de Función: Medición y Estimación de Software suministrado por FATTO. Los puntos de función son una herramienta útil para realizar estimaciones de esfuerzo exactas. Para mayor información visita la pagina del curso.


El Análisis de puntos de función, mide el tamaño de los sistemas de información en base a la funcionalidad entregada a los usuarios desde una perspectiva externa de los requerimientos funcionales, tal como veíamos en la primera parte de esta serie Estimación de proyectos de software por puntos de función: Introducción.

Por lo tanto, la medición de los requisitos del software se expresa en término de las transacciones de negocio que el usuario puede ejecutar y de los datos de negocio que se pueden almacenar y acceder.

Al ejecutar un Análisis de puntos de función se dice que estamos realizando un “conteo”. El primer paso a realizar es establecer el tipo de conteo y el segundo paso consiste identificar las transacciones y componentes de datos que vamos a contar.

En esta segunda parte de la serie, presentaremos los distintos tipos de conteo que se pueden realizar y a describir cómo se identifican las transacciones de negocio y componentes de datos. En una tercera parte de la serie se profundizará sobre el cálculo y suma de los puntos de función.

PMOInformatica presenta como determinar el tipo de conteo y componentes funcionales cuando realizas estimaciones de proyectos de software con puntos de función.

¿Que es el análisis de puntos de función?

Si estás buscando información introductoria sobre que es el método de puntos de función y cuales son sus aplicaciones para estimar esfuerzo y costos en proyectos de software, o medir la funcionalidad entregada para efectos de facturación de servicios, te recomendamos la primera parte de esta serie.

> Estimación de proyectos de software por puntos de función: Introducción

¿Cuales son los pasos para realizar un conteo de puntos de función?

Para realizar un conteo de puntos de función, necesitas los siguientes pasos:

  1. Determinar el tipo de conteo de puntos de función.
  2. Identificar los componentes funcionales que formarán parte el conteo.
  3. Determinar el conteo de puntos función antes de ajuste.
  4. Determinar el valor del factor de ajuste.
  5. Calcular el conteo de puntos de función ajustado.

En esta segunda parte de nuestra serie de estimación de proyectos de software con análisis de puntos de función nos enfocaremos en los pasos 1 y 2, relacionados con el tipo de conteo de identificación de componentes funcionales.

En una tercera parte de la serie abordaremos el como realizar el conteo, determinar el factor de ajuste y calcular el conteo ajustado.

1.- Determinar el tipo de conteo de puntos de función

Desde la perspectiva del análisis de puntos de función, existen 3 tipos básicos de proyectos de ingeniería de software, a saber:

  • Desarrollo e instalación de una aplicación por primera vez.
  • Medición de una aplicación existente (No se está realizando ningún desarrollo de software).

Respectivamente, existen 3 tipos de conteos de puntos de función que se pueden realizar:

  • Conteo de puntos de función de un proyecto de desarrollo.
  • Conteo de puntos de función de un proyecto de mejoras.
  • Conteo de puntos de función de una aplicación.

¿Por qué necesitamos establecer el tipo de proyecto y conteo?

Las reglas para sumar los puntos al final del conteo varían según el tipo de conteo que se esté realizando, por lo cual necesitas establecerlo desde el comienzo.

Formación en Puntos de función



Una de las actividades fundamentales en los proyectos de ingeniería de software, es el poder estimar el esfuerzo, medido en horas o jornadas que tomara el proyecto.

La técnica del análisis de Puntos de Función (FPA) es considerada la principal herramienta para la medición funcional de productos de software y de los procesos involucrados en su desarrollo.

Este curso esta dirigido a profesionales involucrados en proyectos y servicios de ingeniería de software, tales como Arquitectos de software, Líderes técnicos, Gerentes de proyectos, Analistas de requerimientos, Desarrolladores, Coordinadores y Analistas de pruebas.

2.- Identificar los componentes funcionales que formarán parte el conteo

Una vez definido el tipo de conteo de puntos de función, el siguiente paso es determinar los limites (frontera) y el alcance del conteo.

El alcance del conteo será definido por la cantidad y complejidad de los componentes funcionales que integran la aplicación, es decir por los almacenes de datos, pantallas, reportes y otros componentes.

Debes identificar todos los componentes estimables según el tipo de conteo:

  • Proyecto de desarrollo: Debes contar los nuevos almacenes de datos, pantallas o reportes.
  • Proyecto de mejoras: Debes identificar los almacenes de datos, pantallas o reportes que se estén modificando
  • Conteo de una aplicación: Debes identificar los almacenes de datos, pantallas o reportes de toda la aplicación o parte de ella, según el alcance que tengas definido para el conteo.

Al realizar el conteo, no debes realizar suposiciones sobre comportamientos que aparentemente faltan, si este es el caso, lo recomendable es retornar la documentación de ingeniería de requisitos de vuelta al emisor para que incluya la información que falte.

¿Cuáles son los tipos de transacciones y componentes de datos que puedo identificar?

Antes de definir como buscaras los componentes a contar, necesitas conocer que estás buscando identificar.

Como veíamos en la primera parte de esta serie Estimación de proyectos de software por puntos de función: Introducción, el FPUG-FPA (ente rector de la técnica de los puntos de función), define los siguientes tipos de componentes de software:

  • Componentes transaccionales:
    • Entrada externa.
    • Salida externa.
    • Consulta externa.
  • Componentes de datos:
    • Archivo lógico interno.
    • Archivo externo de interfaz.

¿Cómo identifico los componentes del modelo?

Las técnicas que usamos son exactamente las mismas que se aplican en todo proceso de ingeniería de software, de hecho podemos integrar el conteo de puntos de función tomando como insumo el diseño funcional y técnico del sistema, el cual a su vez tiene la ingeniería de requisitos como insumo.

2.1 - Identificar las transacciones de negocio

Las técnicas de modelado funcional (Análisis funcional / Descomposición funcional) de la ingeniería de software, son las que utilizaras para establecer las relaciones entre las transacciones de negocio y la aplicación como un todo.

Estas transacciones serán relacionadas dentro de la jerarquía funcional bajo la actividad de negocio con la cual estén contribuyendo. Pueden ser de 3 tipos:

  • Entradas: Permiten al usuario ingresar datos que serán almacenados.
  • Salidas: Le permiten al usuario extraer información derivada del software.
  • Consultas: Permiten consultar, cruzar, relacionar, agrupar o sumarizar los datos almacenados.

Como puedes ver esta clasificación corresponde con la de componentes de tipo función: Entrada externa, Salida externa y Consulta externa respectivamente.

  • La descomposición funcional se refiere a resolver una relación funcional en sus partes integrantes, de tal forma que la función se puede reconstruir a partir de ellas.
  • La descomposición se realiza para identificar los componentes que constituyen la funcionalidad de software a desarrollar.
  • El rol de la descomposición funcional en la programación computacional e ingeniería de software es el de apoyar en la modularización de procesos.
  • La idea básica es tratar de dividir al sistema en sus partes integrantes, de tal forma que cada bloque pueda ser descrito sin depender de los demás.
  • De esta forma el sistema pasa a estar compuestos por "funciones puras" que pueden ser reusadas o reemplazadas sin afectar a las demás.

Viendo esta descomposición con un sencillo ejemplo, supongamos que estas diseñando un sistema de ventas al detal, entonces, este lo puedes dividir en un modulo de fijación de precios, modulo de inventario, modulo de ventas al público y modulo de reportes tributarios.

Seguidamente, puedes dividir cada modulo en submodulos y estos a su vez en transacciones de negocio, como por ejemplo Fijar precio, Realizar venta, Registrar salida de inventario, emitir reporte de impuesto al valor agregado, entre otros.

La descomposición en sus partes integrantes de mayor nivel de detalle se convertirán en las transacciones de negocio que serán sujeto del conteo de puntos de función.

Para realizar la descomposición funcional también debes apoyarte en métodos de modelado funcional, como por ejemplo diagramas de bloques funcionales, diagramas de flujo de datos (DFD), técnicas de análisis de sistemas estructuradas y muchas otras.

Para realizar la descomposición del sistema en sus partes integrantes, además de técnicas de ingeniería de software también puedes apoyarte en técnicas de la gerencia de proyectos (project manmagement), como por ejemplo las Estructuras desagregadas de trabajo (EDT).

¿Como puedo validar que la descomposición funcional está bien?

Puedes aplicar los siguientes criterios para asegurarte que cada transacción funcional que has identificado es un proceso único y que por ende no duplicaras el conteo:

  • Tiene lógica de procesamiento como por ejemplo edición o validación que es diferente de otras transacciones similares.
  • Accede una combinación única de campos y archivos.
  • Puede ser definida y reconocida por el usuario.
  • Fue definida a partir de un requerimiento de negocio (funcional) y no a partir de un requerimiento técnico.
  • Es lógicamente independiente de otras transacciones. (Aunque es permisible que pueda ser desencadenada por otra transacción).
  • Es desencadenada por un evento externo.
  • Esta orientada a un objetivo de negocio y no un objetivo técnico.

2.2 - Identificar los componentes de datos

Igualmente, las técnicas de modelado de datos, también conocida como diagramado entidad relación, que forman parte de la ingeniería de software son las que se usan para identificar los componentes de datos a contar.

Por medio del modelado, identificas cuales son los datos del sistema y las relaciones entre ellos. Los archivos de datos son relacionados con las transacciones que los acceden formando una jerarquía.

Los archivos constituyen grupos maestros lógicos de datos, vistos desde una perspectiva de usuario de negocio, tiende a ser creados como conjuntos de datos, aunque existen partes de los datos que pueden ser modificados independientemente.

Pueden ser del tipo de referencia para el negocio, es decir que sólo son leídos y usados para hacer cálculos en las transacciones de negocio pero que no son modificados.

Se pueden clasificar en 2 tipos:

  • Archivo interno: Almacena datos ingresados por las transacciones de sistemas internos.
  • Archivo externo: Datos cuyo mantenimiento es realizado por otros sistemas externos.

Los archivos de datos no incluyen archivos que sean creados por razones técnicas, de desempeño, seguridad o navegación. También corresponden con los datos permanentes, los datos temporales no están incluidos en esta definición.

Para realizar el modelado de datos, sigue los siguientes pasos:

  • A partir de la ingeniería de requisitos, elaborar el modelo de datos conceptual, el cual:
    • Es independiente de la tecnología de implementación.
    • Se usa para conversar con los interesados sobre los requerimientos iniciales.
    • Se construye revisando el modelo de actividad o flujo de datos y determinando a partir de este las necesidades de información para cumplir con los procesos.
  • Traducir el modelo conceptual al modelo lógico de datos:
    • Documenta las estructuras que pueden implementarse en una base de datos.
    • Se documentan utilizando técnicas de modelado de datos y lenguaje de definición de datos.
    • La técnica de modelado más difundida es la de Entidad relación y al modelo que resulta se le conoce como diagrama entidad relación.
    • Existen otras técnicas de modelado de datos como el modelado de datos genérico y modelado de datos semántico.
  • Traducir el modelo lógico al modelo físico de datos, el cual:
    • Organiza los datos en tablas físicas.
    • Contempla las definiciones para el acceso, desempeño y almacenamiento.
    • Suele documentarse en un “diccionario de datos” detallado.

Para mayor información sobre modelado de datos, recomendamos consultar el artículo de modelado de datos de WikipediaTambién puedes referirte a los libros de ingeniería de software.

Seguidamente:
  • Tomas el modelo físico de datos o inclusive el modelo lógico, coloca en un listado las tablas y vistas.
  • Clasifica cada tabla en interna o externa. La tabla será interna si el sistema que estamos desarrollando la modifica y externa si es modificada por un sistema externo.
  • Una vez listado, habrás identificado los componentes de datos que formaran parte del conteo para medir la aplicación.

Este articulo esta basado en el contenido del Curso de Análisis de Puntos de Función: Medición y Estimación de Software suministrado por FATTO. Los puntos de función son una herramienta útil para realizar estimaciones de esfuerzo exactas. Para mayor información visita la pagina del curso.

¿Y qué opinas tú?

¿Utilizas el método de puntos de función o algún otro método cuantitativo de estimación de software?, ¿implica el desglose de los componentes del software?, ¿Qué método o cuales pasos utilizar para identificar las transacciones y estructuras de datos a contar?

<< Artículo anterior: Introducción a la estimación de proyectos de software por puntos de función


¿Buscas más información de gerencia informática?

¿Quieres obtener completamente gratis y directamente en tu correo electrónico plantillas, artículos y otros recursos de gerencia informática?, entonces presiona "suscríbete" a continuación.

Suscríbete a la lista de correo electrónico:


Vía FeedBurner, se abrirá una nueva ventana

También puedes seguirnos vía Twitter, Facebook o Linkedin:

  

Artículos similares

Medición y estimación: Método COSMIC

Referencia

Alexander, A. How to Determine Your Application Size Using Function Points. Embarcadero Developer Network

Total Metrics. What are function points?

Wikipedia. Data Modeling

Wikipedia. Function Model

No hay comentarios :

Publicar un comentario

Pmoinformatica.com," La Oficina de Proyectos de Informática ", es un participante en el Programa de Servicios de Amazon Associates LLC, un programa de publicidad de afiliación diseñado para proporcionar un medio para que sitios web puedan ganar honorarios por la publicidad y enlaces a amazon.com y amazon.es.