viernes, 9 de marzo de 2018

Técnicas de Estimación De Proyectos de Software

 

Todo proyecto de desarrollo de software comienza con una etapa de estimación y planificación, en la cual debemos determinar, a partir de los requerimientos del software, cuánto esfuerzo, personal, recursos materiales, tiempo y en última instancia dinero tomará construir el sistema o producto.

Si bien, se suele realizar dichas estimaciones de forma empírica, es decir, basadas en experiencias anteriores y el conocimiento que se tiene de las actividades a realizar, esta suelen ser imprecisas debido a la incomprensión global de los requerimientos y sus implicaciones técnicas y a las diferencias entre un proyecto y otro.

A fin de solucionar este problema de precisión se crearon técnicas basadas en parametros para realizar estimaciones de calidad.


Medición por Puntos de Función

 

Es una técnica de medición de las funcionalidades ofrecidas por un software desde el punto de vista de sus usuarios.

Punto de función, que es su unidad de medida, tiene por objetivo tornar la medición independiente de la tecnología utilizada para su construcción. Es decir, busca medir lo que el software hace y no como es construido.

Los puntos de función no miden directamente el esfuerzo, la productividad y el costo. Es exclusivamente una medida de tamaño funcional del software. Los puntos de función en conjunto con otras variables, son usados para derivar la productividad, estimar el esfuerzo y el costo del proyecto de software.


Medición por Casos de Uso 

 


Se trata de un método de estimación del tiempo de desarrollo de un proyecto mediante la asignación de “pesos” a un cierto número de factores que lo afectan, para finalmente, contabilizar el tiempo total estimado para el proyecto a partir de esos factores.

Se basa en el cálculo del esfuerzo para el desarrollo de los actores y casos de uso requeridos por la solución, los cuales se categorizan de acuerdo con su complejidad y de acuerdo con las ponderaciones se obtiene un valor inicial. El valor obtenido es ajustado considerando factores ambientales y técnicos, y finalmente, utilizando un factor de productividad, se obtiene el esfuerzo en horas-hombre requerido. 


Estos solo son un par, podrás aprender más sobre la estimación de proyectos analizando el siguiente caso:

https://drive.google.com/open?id=14yj_BGudyIsXrZlxkfYgH1wXphjTO6ps



 


Personal Software Process (PSP)


 




El Proceso Personal Software, conocido por sus siglas como PSP, es una metodología de reciente creación, proveniente del Instituto de Ingeniería del Software (SEI).
PSP es una alternativa dirigida a los ingenieros de sistemas, que les permite mejorar la forma en la que construyen software.



Sus principios 



  • Cada ingeniero es diferente; para ser el más eficaz, los ingenieros deben planificar su trabajo y deben basar sus proyectos en sus propios datos personales
  • Para mejorar coherentemente su funcionamiento, los ingenieros deben usar procesos bien definidos
  • Para producir productos de calidad, los ingenieros deben sentirse personalmente responsables de la calidad de sus productos 
  • Es menos costoso encontrar defectos antes en un proceso que más tarde
  • Es más eficiente prevenir defectos que encontrarlos durante el desarrollo
  • El camino correcto es siempre el modo más rápido y más barato de hacer un trabajo



Elementos

Scripts


Guían a los desarrolladores en el uso consistente de los procesos, los cuales ellos conocen (mediante la asistencia a cursos de capacitación en PSP o a través de bibliografía introductoria en el uso de PSP)
Los Scripts se organizan en cuatro niveles, identificados del 0 al 3, atendiendo en cada nivel un conjunto de aspectos a mejorar del proceso de desarrollo de software.




Logs

Proveen templates para registrar y almacenar datos.
Son un elemento crucial, pues es a través del análisis de  la información contenida en estos que se podrá obtener información precisa para la medición del rendimiento, así como planeación de mejoras.


En el siguiente pdf podrás aprender más sobre PSP y su aplicación en el entorno académico:


https://drive.google.com/open?id=1b667-Noqm-nsgF2kDbiXesOUHx1Qgtea