viernes, 27 de febrero de 2015

Estimacion por Puntos de Funcion II parte

Traducir el numero el tamaño de la funcionalidad que brinda un producto de software asignarle un valor numérico a la funcionalidad, respecto a la complejidad.
*       Desde el punto de vista del usuario.
*       Suma ponderada de características del producto.
Transacciones:
Ø  Número de Entradas Externas (EE)
Ø  Número de Salidas Externas (SE)
Ø  Número de Consultas Externas (CE)
  Datos:
Ø  Numero de Archivos Interfaz Lógicos (AIL)
Ø  Numero de Archivos Interfaz Externa (AIE)

Para realizar el cálculo de Puntos de Función en un producto de software se tiene que seguir con la siguiente formula:
PF = PFSA * Factor de Ajuste, donde, PFSA son los puntos de Función sin ajuste los cuales se calculan mediante los datos y las transacciones del software y el Factor de ajuste que se calcula mediante los factores generales de la aplicación, a continuación se explican detalladamente el cálculo de cada elemento de la formula.


Pasos para calcular los puntos de función
Paso 1: Determinar el tipo de conteo.
Paso 2: Identificar los alcances de la medición y los límites de la aplicación
Paso 3: Contar las funciones de datos.
Paso 4: Contar las funciones Transaccionales.
Paso 5: Determinar los puntos de función no ajustados.
Paso 6: Determinar el valor del factor ajuste.
Paso 7: Determinar los puntos de función ajustados.

Paso 8: calcular el punto de función.

martes, 10 de febrero de 2015

El PSP (proceso personal de software) es un conjunto de prácticas disciplinadas para la gestión del tiempo y mejora de la productividad personal de los programadores o ingenieros de software, en tareas de desarrollo y mantenimiento de sistemas. Está alineado y diseñado para emplearse en organizaciones con modelos de procesos CMMI o ISO 15504. Fue propuesto por Watts Humphrey en 1995 y estaba dirigido a estudiantes. A partir de 1997 con el lanzamiento del libro "An introduction to the Personal Software Process" se dirige ahora a ingenieros juniors.
El proceso de Software Personal (PSP) fue diseñado para ayudar a los ingenieros del software  a hacer bien su trabajo. Muestra cómo aplicar métodos avanzados de ingeniería a sus trabajos diarios. Proporciona métodos detallados de planificación y estimación, muestra a los ingenieros como controlar su rendimiento frente a esos planes y explica como los procesos definidos  guían su trabajo.
Personal Software Process (PSP) son marcas registradas de la universidad de Carnegie Mellon.
PSP se concentra en las prácticas de trabajo de los ingenieros en una forma individual. El principio detrás de PSP es ése, sirve para producir software de calidad, cada ingeniero debe trabajar en la necesidad de realizar trabajo de calidad. PSP se diseñó para ayudar a profesionales del software para que utilicen constantemente prácticas sanas de ingeniería de software.
Se puede considerar como la guía de trabajo personal para ingenieros de software en organizaciones que emplean un modelo CMMI con nivel de madurez o de capacidad de procesos que implica la medición cualitativa y mejora de procesos.
Uno de los mayores problemas que tiene es la gran cantidad de datos que hay que tomar. El PSP tiene obsesión por la toma de datos y elaboración de tablas. El PSP se orienta el conjunto de áreas clave del proceso que debe manejar un desarrollador cuando trabaja de forma individual.
El diseño de PSP se basa en los siguientes principios de planeación y de calidad [HUMPHREY; 95]
*       Cada ingeniero es esencialmente diferente; para ser más precisos, los ingenieros deben planear su trabajo y basar sus planes en sus propios datos personales.
*       Para mejorar constantemente su funcionamiento, los ingenieros deben utilizar personalmente procesos bien definidos y medidos.
*       Para desarrollar productos de calidad, los ingenieros deben sentirse personalmente comprometidos con la calidad de sus productos.
*       Cuesta menos encontrar y arreglar errores en la etapa inicial del proyecto que encontrarlos en las etapas subsecuentes.
*        Es más eficiente prevenir defectos que encontrarlos y arreglarlos.

*        La manera correcta de hacer las cosas es siempre la manera más rápida y más barata de hacer un trabajo.

viernes, 6 de febrero de 2015

miércoles, 28 de enero de 2015

lunes, 19 de enero de 2015

conceptos de metrica

2.1 Concepto de métrica.
2.1.1. Medición
Es el proceso por el cual los números o símbolos son asignados a atributos o entidades en el mundo real tal como son descritos de acuerdo a reglas claramente
definidas” [Fenton ´91].
2.1.2 Medida
“proporciona una indicación cuantitativa de extensión, cantidad, dimensiones, capacidad y tamaño de algunos atributos de un proceso o producto” [Pressman´98].

2.1.3 Métrica
 “Es una medida cuantitativa del grado en que un sistema, componente o proceso posee un atributo dado[Len O. Ejiogo ´91].

2.1.4 Métricas de Software
Michael [‘99] define las métricas de software como “La aplicación continua de mediciones basadas en técnicas para el proceso de desarrollo del software y sus productos para suministrar información relevante a tiempo, así el administrador junto con el empleo de estas técnicas mejorará el proceso y sus productos”. Las métricas de software proveen la información necesaria para la toma de decisiones técnicas.
Las métricas son la maduración de una disciplina, que, según Pressman [’98] van a ayudar a la  evaluación de los modelos de análisis y de diseño,  en donde proporcionarán una indicación de la complejidad de diseños procedimentales y de código fuente, y ayudaran en el diseño de pruebas más efectivas. Es por eso que propone un proceso de medición, el cual se puede caracterizar por cinco actividades:
1.    Formulación: La obtención de medidas y métricas del software apropiadas para la representación de software en cuestión.
2.    Colección: El mecanismo empleado para acumular datos necesarios para obtener las métricas formuladas.
3.    Análisis: El cálculo de las métricas y la aplicación de herramientas matemáticas.
4.    Interpretación: La evaluación de los resultados de las métricas en un esfuerzo por conseguir una visión interna de la calidad de la representación.
5.    Realimentación: Recomendaciones obtenidas de la interpretación de métricas técnicas trasmitidas al equipo de software.

2.1.5 Características de las métricas

*       Simple y fácil de calcular: debería ser relativamente fácil de aprender a obtener la métrica y su cálculo no obligara a un esfuerzo o a una cantidad de tiempo inusuales.
*       Empírica e intuitivamente persuasiva: la métrica debería satisfacer las nociones intuitivas del ingeniero de software sobre el atributo del producto en cuestión (por ejemplo: una métrica que mide la cohesión de un módulo debería aumentar su valor a medida que crece el nivel de cohesión).
*       Consistente en el empleo de unidades y tamaños: el cálculo matemático de la métrica debería utilizar medidas que no lleven a extrañas combinaciones de unidades. Por ejemplo, multiplicando el número de personas de un equipo por las variables del lenguaje de programación en el programa resulta una sospechosa mezcla de unidades que no son intuitivamente concluyentes.
*       Independiente del lenguaje de programación: las métricas deberían apoyarse en el modelo de análisis, modelo de diseño o en la propia estructura del programa. No deberían depender de los caprichos de la sintaxis o semántica del lenguaje de programación.
*       Un mecanismo eficaz para la realimentación de calidad: la métrica debería suministrar al desarrollador de software información que le lleve a un producto final de superior calidad.

2.2 Tipos de métricas de calidad de software.

2.2.1 Clasificación de las Métricas
La clasificación de una métrica de software refleja o describe la conducta del software. A continuación se muestra una breve clasificación de métricas de software, descritas por Lem O. Ejiogu [‘91]:
a) Según criterios

*       Métricas de complejidad: Son todas las métricas de software que definen de una u otra forma la medición de la complejidad; Tales como volumen, tamaño, anidaciones, costo (estimación), agregación, configuración, y flujo. Estas son los puntos críticos de la concepción, viabilidad, análisis, y diseño de software. 
*       Métricas de calidad: Son todas las métricas de software que definen de una u otra forma la calidad del software; Tales como exactitud, estructuración o modularidad, pruebas, mantenimiento, reusabilidad, cohesión del módulo, acoplamiento del módulo, etc. Estas son los puntos críticos en el diseño, codificación, pruebas y mantenimiento.

*       Métricas de competencia: Son todas las métricas que intentan valorar o medir las actividades de productividad de los programadores o practicantes con respecto a su certeza, rapidez, eficiencia y competencia. No se ha alcanzado mucho en esta área, a pesar de la intensa investigación académica.

*       Métricas de desempeño: Corresponden a las métricas que miden la conducta de módulos y sistemas de un software, bajo la supervisión del sistema operativo o hardware. Generalmente tienen que ver con la eficiencia de ejecución, tiempo, almacenamiento, complejidad de algoritmos computacionales, etc.
*       Métricas estilizadas: Son las métricas de experimentación y de preferencia; Por ejemplo: estilo de código, identación, las convenciones denominando de datos, las limitaciones, etc. Pero estas no se deben confundir con las métricas de calidad o complejidad.
*       Variedad de métricas: tales como portabilidad, facilidad de localización, consistencia. Existen pocas investigaciones dentro del área.
*       Estas clasificaciones de métricas fortalecen la idea, de que más de una métrica puede ser deseable para valorar la complejidad y la calidad del software.
b) Según el contexto en que se aplican:
*       Métricas de proceso: Se recopilan de todos los proyectos y durante un largo periodo de tiempo y se caracteriza por control y ejecución Del proyecto y Medición de tiempos de las fases.
*       Métricas de proyecto: Permiten evaluar el estado del proyecto y seguir la pista de los riesgos.

*       Métricas de producto: Se centran en las características del software y no en cómo fue producido, también son productos los artefactos, documentos, modelos, y componentes que conforman el software. Se miden cosas como el tamaño, la calidad, la totalidad, la volatilidad, y el esfuerzo.