lunes, 4 de febrero de 2019

Métricas de software


¿Qué son las métricas de software?
Las métricas son la maduración de una disciplina, que, según Pressman van a ayudar a la (1) evaluación de los modelos de análisis y de diseño, (2) en donde proporcionarán una indicación de la complejidad de diseños procedimentales y de código fuente, y (3) 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.
¿Para qué se utilizan las métricas del software?
De la misma forma que en ingeniería de construcción necesitaríamos definir la altura y ancho de una estructura y sus componentes expresados en metros o centímetros, en desarrollo de software podemos valernos de una unidad de medida que nos permitiera conocer el tamaño del reto al que como desarrolladores de software nos enfrentamos.
Una vez conocido el tamaño en unidad de medida, podríamos utilizarla para determinar con precisión cuál es la estimación de tiempo y presupuesto de un proyecto de software, si nuestras especificaciones de requerimientos son ambiguas o falta información, impacto de un cambio de alcance propuesto, medir unidades planificadas vs. Producidas, graficar la cantidad de unidades de medica producidas en el tiempo (para medir la productividad), entre otros usos.
¿Cuáles son los métodos más utilizados para determinar métricas del software?

Existen diversas técnicas de estimación de esfuerzo y costo en proyectos de software. Un ejemplo ampliamente usado para realizar mediciones del tamaño de un software es la métrica del punto de función.

Desarrollada originalmente en los años 70, la técnica del análisis de puntos de función permite asignar un tamaño a los requerimientos de software (sus funcionalidades) expresadas en una métrica que se conoce como el punto de función.

Para medir el software utilizando los puntos de función, primero se toman los requerimientos del software (que pueden estar documentados en la especificación de requerimientos o historias de usuario) y se realiza una descomposición funcional en sus componentes.

Realizada la descomposición funcional, se le asigna a cada componente una cantidad de puntos de función que vienen dados por su complejidad, si son movimientos de entrada o salida, solo consulta o transferencia de datos.

El método de más tiempo de uso es el del International Function Points User Group (IFPUG). En la siguiente serie de artículos, te presentamos un ejemplo de cómo medir software utilizando el método IFPUG.

> Estimación de proyectos de software por puntos de función: Introducción
> Estimación de proyectos de software con puntos de función: Determinar tipo de conteo y componentes funcionales
> Estimación de proyectos de software: Cálculo de los puntos de función no ajustados
El IFPUG ofrece un esquema de certificación, que le brinda la oportunidad a profesionales de demostrar sus conocimientos en el método y certificarse para presentarlo ante posibles empleadores y prospectos de cliente.
Desde su introducción inicial, se han desarrollado otros métodos de análisis de puntos de función, como por ejemplo NESMA, MkII, COSMIC y FiSMA.

Por ejemplo, el método COSMIC fue desarrolado para modernizar la técnica de puntos de función y alinearse con el proceso de ingeniería del software. A diferencia del método IFPUG en el cual se asignan los puntos de función según la clasificación y complejidad de las funcionalidades, bajo COSMIC el número de función se asigna en función del número de entradas y salidas que tengan los componentes del software.


domingo, 3 de febrero de 2019

Introducción a la calidad en el desarrollo de software


¿QUÉ ES CALIDAD?
Es entregar al cliente no lo que quería, sino lo que nunca se había imaginado que quería.

¿QUE ES UNA NORMA DE CALIDAD?
Es un Documento, establecido por consenso y aprobado por un organismo reconocido que proporciona un uso común y repetido, una serie de reglas, directrices o características para las actividades de calidad o sus resultados, con el fin de conseguir un grado óptimo de orden en el contexto de la calidad.
¿QUE ES UN ESTÁNDAR DE CALIDAD?
Normas y protocolos internacionales que deben cumplir productos de cualquier índole para su distribución y consumo por el cliente final.
¿QUE ES EL PROCESO  DE CALIDAD?
La base fundamental de todo sistema de calidad es que el diseño de los productos y servicios debe ajustarse a las necesidades, deseos, expectativas y exigencias del cliente, tomando en consideración que en la definición de esas necesidades interviene aspectos culturales, sociales, económicos y geográficos.
PROCESO DE MEJORA DE LA CALIDAD
·         Identificar al cliente
·         Precisar los requerimientos que exige y valora el cliente
·         Traducir los requerimientos de los clientes en especificaciones
·         Determinar los factores o parámetros de diseño clave
·         Estructurar un plan de trabajo para implementar requerimientos
·         Definir las medidas del proceso de desempeño o puntos del control del proceso
·         Verificación de la comprensión del proceso
·         Evaluación de los procesos resultados alcanzados
·         Mejorar y hacer cambio en el proceso de calidad
¿QUE ES UN MODELO DE CALIDAD DE SOFTWARE?
Es un conjunto de buenas prácticas para el ciclo de vida del software, enfocado en los procesos de gestión y desarrollo de proyectos.
Los modelos de calidad te dicen QUE hacer no COMO hacerlo.
¿QUE MODELOS EXISTEN?
CMMI v. 1.2
Norma ISO/IEC 12007
Metrica3
¿QUE INSTITUTOS QUE REGULAN LA CALIDAD?
1.-Normas ISO
2.-Prosoft
3.-CMMI

ACTORES Y CARACTERÍSTICAS QUE DETERMINAN LA CALIDAD DE DESARROLLO DE SOFTWARE
sistema  
FACTORES Y  CARACTERÍSTICAS
Corrección
Es la capacidad de los software para realizar con exactitud sus tareas
Robustez
Es la capacidad de los sistemas software de reaccionar apropiadamente ante condiciones excepcionales.
Extensibilidad
Es la facilidad de adaptar los productos del software a los cambios de especificación
Reutilización
Es la capacidad de los elementos software de servir para la construcción de muchas aplicaciones diferentes
Compatibilidad
Es la facilidad de combinar unos elementos software con otros
Eficiencia
Es la capacidad de un sistema software para exigir la menor cantidad posible de recursos hardware, tales como tiempo de procesador, espacio ocupado de memoria interna y externa o ancho de banda utilizado en los dispositivos de comunicación
Portabilidad (transportabilidad)
Es la facilidad de transferir los productos software a diferentes entornos hardwares y software


Facilidad de uso
Es la facilidad con la cual personas con diferentes formaciones y aptitudes pueden aprender a usar los productos software y aplicarlos a la resolución de problemas, instalación de operación y supervisión
Funcionalidad
Es el conjunto de posibilidades que proporciona un sistema
Oportunidad

Es la capacidad de un sistema software de ser lanzado cuando los usuarios lo desean o antes
  
Integridad
Es la característica de un sistema de ser capaz de proteger sus diferentes componentes contra los procesos o elementos que no tengan derecho de acceso a los mismos
Verificabilidad
Es la facilidad de verificación de corrección de un software. Que tan sencillo es la realización de pruebas que garanticen la funcionalidad del sistema.
Fiabilidad
El grado que se puede esperar de una aplicación lleve a cabo las operaciones especificadas y con la precisión requerida.
Facilidad de mantenimiento
El esfuerzo requerido para localizar y reparar errores.
Flexibilidad
El esfuerzo requerido para modificar una aplicación en Funcionamiento.
Facilidad de Prueba
El esfuerzo requerido para probar una aplicación de forma
que cumpla con lo especificado en los requerimientos.
Interoperabilidad
El esfuerzo necesario para comunicar la aplicación con otras aplicaciones o sistemas informáticos.
Leer más sobre calidad de software en: 
·         Sistema de Información Científica Redalyc, Red de Revistas Científicas de América Latina y el Caribe, España y Portugal https://www.redalyc.org/articulo.oa?id=84920503058



Integradora I

Viabilidad de los proyectos Estudiar la viabilidad de un proyecto permite saber si este realmente aportará los beneficios que se esperan de ...