jueves, 7 de febrero de 2019
miércoles, 6 de febrero de 2019
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.
(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.
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.
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
¿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
Suscribirse a:
Comentarios (Atom)
Integradora I
Viabilidad de los proyectos Estudiar la viabilidad de un proyecto permite saber si este realmente aportará los beneficios que se esperan de ...
-
Cierre del proyecto ¿El proyecto acaba con la aceptación del último entregable?. Pues lo cierto es que no, una vez se han ejecutado, y acept...
-
Ver video: https://www.youtube.com/watch?v=V6TMhsgo5Ac