martes, 8 de abril de 2014

Moprosoft

¿Que es esto?

Hablamos de un modelo para mejorar y evaluar el proceso de desarrollo de software, Lo que se busca al implementar este modelo es obviamente la calidad bajo métricas y criterios evaluativos generales:

  • La estructura de procesos resultante debe ser acorde a la estructura generalmente empleada por las organizaciones de la industria del software (alta dirección, gestión y operación)
  • La alta dirección tiene un papel importante a través de la planificación estratégica. Debe actuar como promotor del buen funcionamiento de la organización a través de su implicación en la revisión y mejora continua del modelo.
  • El modelo considera a la gestión como proveedora de recursos, procesos y proyectos; así como responsable de la vigilancia del cumplimiento de los objetivos estratégicos de la organización.
  • El modelo considera a la operación como ejecutora de los proyectos de desarrollo y mantenimiento de software.
  • El modelo integra con claridad y consistencia los elementos indispensables para la definición de los procesos y las relaciones entre ellos.
  • El modelo integra los elementos para realizar la administración de proyectos desde un sólo proceso.
  • El modelo integra los elementos para realizar la ingeniería de productos de software en un único marco que incluya los procesos precisos de soporte (verificación, validación, documentación y control de la documentación).
  • El modelo destaca la importancia de la gestión de recursos, con especial relevancia en aquellos que componen el conocimiento de la organización: productos generados por proyectos, datos de los proyectos, mediciones, documentación de procesos y datos cosechados a partir del uso y de las lecciones aprendidas.
  • Moprosoft se basa en los modelos de procesos ISO 9001:2000, en las áreas de procesos de los niveles 2 y 3 de CMM-SW: CMM-SW v.1.1., en el marco general ISO/IEC15504 y en prácticas y conceptos de PMBOK Y SWEBOK.
  • PROSOFT representa un campo diferente de apoyo a los empresarios de las tecnologías de la información, es un sector diverso para hacer negocios y generar fuentes de empleo dignas”
Este modelo ya no es tan técnico sino que presenta caracteristicas mas enfocadas a la gestión, y está basado en el modelo de evaluación y mejora de CMMI, lo cual implica claramente una certificación de calidad para empresas dedicadas al desarrollo de software.

Otra caracteristica importante es que este modelo identifica los procesos en tres grandes categorias dentro de cualquier empresa:
  • Alta dirección
  • Gerencia
  • Operación

Puntos de caso de uso.

Es un método de estimación de esfuerzo para proyectos de software a partir de sus casos de uso, este método fue creado a partir del anterior publicado (puntos de función). En general el método utiliza los actores y casos de uso para estimar el esfuerzo que significará desarrollar un software.

A los casos de uso se les asigna una complejidad basada en transacciones entendidas como la interacción entre el usuario y el sistema, en palabras mas sencillas, son las interfaces.

Este método consta de cuatro etapas:
  • Factor de peso de los actores sin ajustar (UAW)
Cuando iniciamos un proyecto de software debemos identificar a los actores principales para tener una breve descripción de lo que serán los casos de uso,  bajo este análisis podemos hacer una breve descripción de la funcionalidad que debe ofrecer nuestro software.
En este punto podemos definir la complejidad por medio de la identificación de los actores del sistema (simple, medio y complejo)
  • Factor de peso de los casos de uso sin ajustar (UUCW)
 Similar a la etapa anterior, se determina el nivel de complejidad basado en dos metodos:
Basado en transacciones: Toma en cuenta el número de transacciones que se pueden realizar en un caso de uso y lo evalúa según la siguiente tabla:

Tipo de caso de uso Descripción Factor
Simple 3 transacciones o menos 5
Medio 4 a 7 transacciones 10
Complejo Más de 7 transacciones 15


Basado en clases de análisis:
Toma en cuenta el número de clases que tiene un caso de uso y lo evalúa según la siguiente tabla:
Tipo de caso de uso Descripción Factor
Simple Menos de 5 clases 5
Medio 5 a 10 clases 10
Complejo Más de 10 clases 15

independientemente del método utilizado tenemos una formula general: UUCW = Sum (CantidadDeUnTipoDeCasoUso*Factor).
Aún obteniendo  resultados en esta etapa, la estimación es muy imprecisa ya que existe escacés de información.
  • Puntos de caso de uso ajustados (UCP)
En esta etapa utilizamos los resultados anteriores para tener una información relevante y mas cercana a la realidad bajo una sencilla fórmula:

UCP = UUCP x TCF x EF
  • Esfuerzo horas-hombre
El esfuerzo en horas-persona viene dado por:
E = UCP x CF
Estas siglas significan:
E: Esfuerzo estimado en horas-persona.
UCP: Puntos de Casos de Uso ajustados.
CF: Horas-Persona.
Al realizar la multiplicación del UCP por las horas- persona, se consigue un esfuerzo estimado, que representa una parte del total del esfuerzo de todo el proyecto, generalmente un 40%. Este 40% se refiere al esfuerzo total para el desarrollo de la funcionalidades especificadas en los Casos de Uso.

Puntos de función

El concepto nos dice que el punto de funcion es un metodo propio de la ingenieria de software utilizado para medir el tamaño del software, pero... Esto no nos dice mucho ¿verdad?.

Comenzemos...

Como lo marca el nombre, este método pretende medir la funcionalidad que se le entrega al usuario, desde el diseño hasta la implementación y el mantenimiento. 

La técnica de medición del tamaño en punto-función consiste en asignar una cantidad de "puntos" a una aplicación informática según la complejidad de los datos que maneja y de los procesos que realiza sobre ellos. Siempre tratando de considerarlo desde el punto de vista del usuario.

En realidad esta metodología nos lleva a una buena métrica de calidad hablando del desarrollo de software y tiene los siguientes componentes:
  •  EI.- Proceso de introducción de datos. 
  • EO.- Proceso en el cual se envían los datos al exterior de la aplicación.
  • EQ.- Procesos de entrada y salida combinados, en los que la entrada no hay cambios en archivos y en la salida no contiene información derivada.
  • ILF.- Estos son grupos de datos relacionados entre sí dentro del propio sistema.
  • EIF.- Grupos de datos que se mantienen externamente
Estos aspectos se evalúan con tablas para asignar peso en función del número de atributos que tenga el software y el nuemro de archivos afectados.