Calidad Del Software 20

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 55

7/21/24, 6:39 PM Calidad del Software

INGENIERÍA DE SOFTWARE
CALIDAD DEL SOFTWARE
Created by edme88

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 1/55
7/21/24, 6:39 PM Calidad del Software

TEMARIO

CALIDAD DEL SOFTWARE


Definición
Manejo de la calidad
Qué es calidad?
Compromiso de Calidad
Actividades de manejo de calidad
Atributos de la calidad del software
Calidad basada en procesos
Estándares de Software
Importancia de los estándares
Problemas con estándares

ISO 9000-9001
Certificación ISO
Revisión
Procedimientos de Revisión
Revisiones de Calidad
Tipos de Revisiones
Inspecciones del programa
Métricas de calidad del producto
Suposición de métricas
Métricas estáticas de productos de software
Métricas Orientadas a Objetos
Métricas de acoplamiento

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 2/55
7/21/24, 6:39 PM Calidad del Software

Madures de las métricas

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 3/55
7/21/24, 6:39 PM Calidad del Software

CALIDAD
Asegurar la calidad: definición de procesos y
estándares que deben conducir a la obtención de
productos de alta calidad
Control de calidad: aplicación de procesos para
eliminar productos que no cuentan con el nivel
de calidad requerido

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 4/55
7/21/24, 6:39 PM Calidad del Software

MANEJO DE LA CALIDAD DEL SOFTWARE


Se refiere a lograr un nivel de calidad requerido
en el producto de software
Involucra a la definición de estándares de calidad
apropiados y procedimientos que permitan
asegurar que estos se cumplan.
Debe llevar a desarrollar una cultura de calidad
en donde la calidad es responsabilidad de todos

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 5/55
7/21/24, 6:39 PM Calidad del Software

QUE ES CALIDAD?
Calidad significa que un producto debe cumplir con
sus especificaciones.
Para sistemas de software
Algunos requerimientos de calidad son difíciles
de especificar (eficiencia, mantenibilidad,
reusabilidad, etc.)
Las especificaciones del Software son
usualmente incompletos y a menudo
inconsistentes

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 6/55
7/21/24, 6:39 PM Calidad del Software

EL COMPROMISO DE CALIDAD
No podemos esperar a que las especificaciones
mejoren para poner atención al manejo de la
calidad
Debe haber procedimientos que permitan
mejorar la calidad aunque la especificaciones no
sean perfectas
El manejo de la calidad no solo se refiere a
reducir defectos sino también a mejorar otras
cualidades del producto

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 7/55
7/21/24, 6:39 PM Calidad del Software

ACTIVIDADES DE MANEJO DE CALIDAD


Asegurar la calidad: Establecer procedimientos
organizacionales y estándares para la calidad
Planear la calidad: Seleccionar procedimientos
aplicables y estándares para un proyecto en
particular y modificar estos como sean
requeridos
Controlar la calidad: Garantizar que
procedimientos y estándares son seguidos por el
equipo de desarrollo de software

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 8/55
7/21/24, 6:39 PM Calidad del Software

ACTIVIDADES DE MANEJO DE CALIDAD


El manejo de calidad debe ser separado del manejo
del proyecto para asegurar independencia

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 9/55
7/21/24, 6:39 PM Calidad del Software

ATRIBUTOS DE LA CALIDAD DEL SOFTWARE

Protección Comprensibilidad Portabilidad


Seguridad Comprobabilidad Usabilidad
Fiabilidad Adaptabilidad Reusabilidad
Flexibilidad Modularidad Eficiencia
Facilidad para
que el usuario
Robustez Complejidad
aprenda a
utilizarlo

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 10/55
7/21/24, 6:39 PM Calidad del Software

CALIDAD BASADA EN PROCESOS


Relación directa entre procesos y productos
Más complejo para software debido a:
Se requiere la aplicación de habilidades
individuales y experiencia, lo cual es
importante para el desarrollo de software
Factores externos en las que una
aplicación es novedosa o la necesidad
para acelerar el calendario de desarrollo
puede empeorar la calidad del producto
Debe tenerse especial cuidado de no imponer
estándares inapropiados

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 11/55
7/21/24, 6:39 PM Calidad del Software

CALIDAD DE PROCESOS PRACTICA


Definir procesos de estándares que indiquen
como llevar a cabo las revisiones, la
administración de la configuración, etc.
Monitoriear el proceso de desarrollo para
asegurar que se están siguiendo los estándares.
Reportar estos procesos a la administración del
proyecto.

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 12/55
7/21/24, 6:39 PM Calidad del Software

CALIDAD BASADA EN PROCESOS

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 13/55
7/21/24, 6:39 PM Calidad del Software

ESTÁNDARES DE SOFTWARE
Son clave para un efectivo manejo de calidad
Puede ser un proyecto internacional, nacional, o
organizacional
Los estándares de producto definen
características que todos los componentes
deberán tener

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 14/55
7/21/24, 6:39 PM Calidad del Software

IMPORTANCIA DE LOS ESTÁNDARES


Reúne las mejores practicas
Evita la repetición de errores pasados
Proporciona un marco para el análisis de calidad
- involucra verificar la conformidad con
estándares
Proporcionar continuidad. El personal nuevo
puede entender a la organización entendiendo a
los estándares aplicados

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 15/55
7/21/24, 6:39 PM Calidad del Software

ESTÁNDARES DE PRODUCTOS Y PROCESOS


Estándares de producto Estándares de proceso
Formato de revisión de Realizar revisión del
diseño diseño
Estructura de Enviar nuevo código
documento de para construcción del
requerimientos sistema
Formato de
Proceso de liberación
encabezado por
de versión
método
Estilo de programación Proceso de aprobación
Java del plan del proyecto
Formato de plan de Proceso de control de
proyecto cambio
Formato de solicitud de Proceso de registro de
cambio prueba

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 16/55
7/21/24, 6:39 PM Calidad del Software

PROBLEMAS CON ESTÁNDARES


No son vistos como relevantes ni se encuentran
actualizados por los ingenieros de software
Involucra actividades burocráticas
No soportado por herramientas de software por
lo que se requieren actividades manuales para
mantener los estándares

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 17/55
7/21/24, 6:39 PM Calidad del Software

PROBLEMAS CON ESTÁNDARES


Involucrar a los desarrolladores. Los Ingenieros
deberán entender la racionalidad bajo un
estándar.
Revisión de estándares y su uso regularmente.
Los estándares pueden rápidamente estar
desactualizados lo cual reduce su credibilidad
entre sus usuarios
Los estándares detallados deberán tener
asociado una herramienta de soporte

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 18/55
7/21/24, 6:39 PM Calidad del Software

PROBLEMAS CON ESTÁNDARES


Excesivo trabajo manual es el mas significante
reclamo en contra de los estándares

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 19/55
7/21/24, 6:39 PM Calidad del Software

ISO 9000 - ISO 9001


Conjunto de estándares internacionales para el
manejo de calidad
Aplicable a un rango de organizaciones desde
industrias de servicio a industrias de
manufactura
La ISO 9001 es aplicable a organizaciones que
diseñan, desarrollan y mantienen productos
ISO 9001 es un modelo genérico del proceso de
calidad. Está instanciado para cada organización

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 20/55
7/21/24, 6:39 PM Calidad del Software

CERTIFICACIÓN ISO
Los Estándares de calidad y procedimientos
deberán ser documentados en un manual
organizacional de calidad
Personal externo puede certificar que una
organización conforma con los estándares ISO
9000/9001
Los clientes demandan cada vez mas que los
productos tengan la certificación ISO 9000/9001

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 21/55
7/21/24, 6:39 PM Calidad del Software

ISO 9001

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 22/55
7/21/24, 6:39 PM Calidad del Software

ISO 9001 Y MANEJO DE CALIDAD

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 23/55
7/21/24, 6:39 PM Calidad del Software

REVISIÓN
Es el principal método de validación de la calidad
de un proceso o de un producto
Un grupo debe examinar parte o toda su
documentación para buscar problemas
potenciales
Hay diferentes tipos de revisiones con diferentes
objetivos
Inspecciones para remover defectos
(producto)
Revisiones para estimación de progresos
(procesos y producto)
Revisiones de calidad (estándares y
producto)

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 24/55
7/21/24, 6:39 PM Calidad del Software

PROCEDIMIENTOS DE REVISIÓN
Función de calidad - Es parte del proceso general
de administración de calidad
Función de administración del proyecto -
proveen información para los administradores
del proyecto
Funciones de comunicación. Paso de
conocimientos entre miembros del equipo

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 25/55
7/21/24, 6:39 PM Calidad del Software

REVISIONES DE CALIDAD
Un grupo de personas cuidadosamente
examinará cada parte o todo un sistema de
software y su documentación asociada
Código, diseños, especificaciones, planes de
prueba, estándares, etc. todo puede ser revisado
Documentos o Software puede ser “firmados” en
cada revisión lo cual significa que la
administración ha aprobado el progreso de la
siguiente etapa del desarrollo

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 26/55
7/21/24, 6:39 PM Calidad del Software

REVISIONES DE CALIDAD
El objetivo es descubrir defectos en el sistema e
inconsistencias
Cualquier documento producido en el proceso
puede ser revisado
El equipo de revisión deberá ser relativamente
pequeño y las revisiones deberán ser
relativamente cortas
La revisión deberá ser grabada y almacenada

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 27/55
7/21/24, 6:39 PM Calidad del Software

TIPOS DE REVISIONES
Tipo de
Propósito Principal
Revisión
Detectar errores detallados en el
diseño o código y comprobar si se
Inspecciones
han seguido las normas. La
de diseño o
revisión debe basarse en una lista
programa
de verificación de posibles
errores.
Proporcionar información a la
dirección sobre el progreso
Revisiones de general del proyecto. Se trata de
progreso un proceso y una revisión del
producto y se ocupa de costos,
planes y cronogramas.
Realizar un análisis técnico de los
componentes o la documentación
del producto para encontrar
fallas o desajustes entre la
Revisiones de especificación y el diseño, código
calidad o documentación. También puede
estar relacionado con cuestiones
de calidad más amplias, como el
cumplimiento de estándares y
otros atributos de calidad.

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 28/55
7/21/24, 6:39 PM Calidad del Software

INSPECCIONES DEL PROGRAMA


Clase de
Comprobación de inspección
falla
Fallas de * ¿Todas las variables del programa se
datos inician antes de usar sus valores?
* ¿Todas las constantes tienen
nombre?
* ¿La cota superior de los arreglos es
igual al tamaño del arreglo o Valor -
1?
* Si se usan cadenas de caracteres, ¿se
asigna explicitamente un
delimitador?
* ¿Existe alguna posibilidad de
desbordamiento de buffer?
Fallas de * Para cada enunciado condicional, ¿la
control condición es correcta?
* ¿Hay certeza de que termine cada
ciclo?
* ¿Los enunciados compuestos están
correctamente colocados entre
paréntesis?
* En caso de enunciados, ¿se justifican
todos los casos posibles?

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 29/55
7/21/24, 6:39 PM Calidad del Software

Clase de
Comprobación de inspección
falla
* Si después de cada caso en los
enunciados se requiere un paréntesis,
¿éste se incluyó?

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 30/55
7/21/24, 6:39 PM Calidad del Software

INSPECCIONES DEL PROGRAMA


Clase de falla Comprobación de inspección

Fallas de * ¿Se usan todas las variables


entrada/salida de entrada?
* ¿A todas las variables de
salida se les asigna un valor
antes de que se produzcan?
* ¿Entradas inesperadas
pueden causar corrupción?
* ¿Todas las llamadas a
función y método tienen el
Fallas de interfaz
número correcto de
parámetros?
* ¿Los tipos de parámetro
formal y real coinciden?
* ¿Los parámetros están en
el orden correcto?
* Si los componentes
acceden a memoria
compartida, ¿tienen el
mismo modelo de estructura
de memoria compartida?
Fallas de gestión * Si se modifica una
de estructura vinculada, ¿todos
almacenamiento
https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 31/55
7/21/24, 6:39 PM Calidad del Software

Clase de falla Comprobación de inspección


los vinculos se reasignan
correctamente?
* Si se usa almacenamiento
dinámico, ¿el espacio se
asignó correctamente.
* ¿El espacio se cancela
explícitamente después de
que ya no se requiere?
* ¿Se tomaron en cuenta
Fallas de gestión
todas las posibles
de excepción
condiciones de error?

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 32/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS DE LA CALIDAD DEL PRODUCTO


Una métrica de calidad deberá ser una forma de
predicción de la calidad del producto
La mayoría de las métricas de calidad existentes
son las métricas de la calidad del diseño las
cuales se relacionan con la medición del
acoplamiento o la complejidad del diseño

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 33/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS DE CONTROL Y PREDICCIÓN

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 34/55
7/21/24, 6:39 PM Calidad del Software

SUPOSICIÓN DE MÉTRICAS
Una propiedad del software puede ser medida
Existe una relación entre lo que se puede medir y
que se quiere conocer
Esta relación ha sido formalizada y validada
Puede ser difícil relacionar que puede ser
medido en cuanto a atributos deseables de
calidad

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 35/55
7/21/24, 6:39 PM Calidad del Software

ATRIBUTOS INTERNOS Y EXTERNOS

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 36/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS ESTÁTICAS DE PRODUCTOS DE SOFTWARE


Fan-in/Fan-Out
Longitud de código
Complejidad Ciclomática
Longitud de identificadores
Profundidad de anidado condicional
Índice Fog

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 37/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS ESTÁTICAS DE PRODUCTOS DE SOFTWARE


Fan-in/Fan-Out: Fan-in (abanico de entrada) es
una medida del número de funciones o métodos
que llaman a otra función o método (por ejemplo,
X). Fan-out (abanico de salida) es el número de
funciones a las que llama la función X. Un valor
alto para fan-in significa que X está
estrechamente acoplado con el resto del diseño
y que los cambios a X tendrán extensos efectos
dominó. Un valor alto de fan-out sugiere que la
complejidad global de X puede ser alta debido a
la complejidad de la lógica de control necesaria
para coordinar los componentes llamados.
Longitud de código: Ésta es una medida del
tamaño de un programa. Por lo general, cuanto
más grande sea el tamaño del código de un
componente, más probable será que el
componente sea complejo y proclive a errores.
Se ha demostrado que la longitud del código es
una de las métricas más fiables para predecir la
proclividad al error en los componentes.

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 38/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS ESTÁTICAS DE PRODUCTOS DE SOFTWARE


Complejidad Ciclomática: Ésta es una medida de
la complejidad del control de un programa. Tal
complejidad del control puede relacionarse con
la comprensibilidad del programa. En el capitulo
8 se estudia la complejidad ciclomática.
Longitud de identificadores: Ésta es una medida
de la longitud promedio de los identificadores
(nombres para variables, clases, métodos,
etcétera) en un programa. Cuanto más largos
sean los identificadores, es más probable que
sean significativos y, por ende, más comprensible
será el programa.

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 39/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS ESTÁTICAS DE PRODUCTOS DE SOFTWARE


Profundidad de anidado condicional: Ésta es
una medida de la profundidad de anidado de los
enunciados if en un programa. Los enunciados if
profundamente anidados son dificiles de
entender y proclives potencialmente a errores.
Índice Fog: Ésta es una medida de la longitud
promedio de las palabras y oraciones en los
documentos. Cuanto más alto sea el valor del
indice Fog de un documento, más difícil será
entender el documento.

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 40/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS ORIENTADAS A OBJETOS


Métodos ponderados por clase
Profundidad de árbol de herencia
Número de hijos
Acoplamiento entre clases de objetos
Repsuesta por clase
Falta de cohesión en métodos

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 41/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS ORIENTADAS A OBJETOS


Métodos ponderados por clase: Éste es el
número de métodos en cada clase, ponderado
por la complejidad de cada método. Por lo tanto,
un método simple puede tener una complejidad
de 1, y un método grande y complejo tendrá un
valor mucho mayor. Cuanto más grande sea el
valor para esta métrica, más compleja será la
case de objeto. Es más probable que los objetos
complejos sean más dificiles de entender. Tal vez
no sean lógicamente cohesivos, por lo que no
pueden reutilizarse de manera efectiva como
supercases en un árbol de herencia.
Profundidad de árbol de herencia: Esto
representa el número de niveles discretos en el
árbol de herencia en que las subcases heredan
atributos y operaciones (métodos) de las
superclases. Cuanto más profundo sea el árbol
de herencia, más complejo será el diseño. Es
posible que tengan que comprenderse muchas
clases de objetos para entender las clases de
objetos en las hojas del árbol.

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 42/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS ORIENTADAS A OBJETOS


Número de hijos: Ésta es una medida del número
de subclases inmediatas en una clase. Mide la
amplitud de una jerarquia de clase, mientras que
DIT mide su profundidad. Un valor alto de NOC
puede indicar mayor reutilización. Podria
significar que debe realizarse más esfuerzo para
validar las clases base, debido al número de
subclases que dependen de ellas.
Acoplamiento entre clases de objetos: Las dases
están acopladas cuando los métodos en una dase
usan los métodos o variables de instancia
definidos en una dase diferente. CBO es una
medida de cuánto acoplamiento existe. Un valor
alto para CBO significa que las clases son
estrechamente dependientes y, por lo tanto, es
más probable que el hecho de cambiar una dase
afecte a otras clases en el programa.

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 43/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS ORIENTADAS A OBJETOS


Repsuesta por clase: RFC es una medida del
número de métodos que potencialmente podrían
ejecutarse en respuesta a un mensaje recibido
por un objeto de dicha clase. Nuevamente, RFC
se relaciona con la complejidad. Cuanto más alto
sea el valor para RFC, más compleja será una
case y, por ende, es más probable que incluya
errores.
Falta de cohesión en métodos: LCOM se calcula
al considerar pares de métodos en una clase.
LCOM es la diferencia entre el número de pares
de método sin compartir atributos y el número
de pares de método con atributos compartidos.
El valor de esta métrica se debate ampliamente y
existe en muchas variaciones. No es claro si
realmente agrega alguna información útil
además de la proporcionada por otras métricas.

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 44/55
7/21/24, 6:39 PM Calidad del Software

PROCESO DE MEDICIÓN DEL PRODUCTO

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 45/55
7/21/24, 6:39 PM Calidad del Software

MANTENIBILIDAD DEL DISEÑO


Cohesión: Cuanto están relacionadas las partes
forman un componente.
Acoplamiento: Que tan independiente es un
componente.
Entendibilidad: Que tan fácil es entender las
funciones de un componente.
Adaptabilidad: Que tan fácil es cambiar un
componente.

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 46/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS DE ACOPLAMIENTO
Asociado con la medida ‘fan-in y fan-out’.
Alta entrada (fan-in)- implica un alto
acoplamiento debido a las dependencias de los
módulos.
Alta salida (fan-out)- implica un alto
acoplamiento debido a la complejidad del control

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 47/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS DE CALIDAD EN UN PROGRAMA


Las métricas de diseño son también aplicables a
programas.
Otras métricas incluyen:
Longitud. El tamaño del código fuente del
programa.
Complejidad ciclomatica. La complejidad
de control de un programa.
Longitud de identificadores
Profundidad de condicionales anidados
Los valores anómalos de las métricas sugieren
que un componente presenta defectos o es difícil
de entender

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 48/55
7/21/24, 6:39 PM Calidad del Software

CONSIDERACIONES PARA LAS MÉTRICAS


La longitud del código es simple pero la
experimentación ha sugerido que representa un
buen predictor de problemas
La complejidad ciclomatica puede ser engañosa
Nombres largos deberán incrementar la
entendibilidad de un programa
Condicionales profundamente anidadas son
difíciles de entender.

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 49/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS DE COMPLEJIDAD
La complejidad ciclomatica es una medida de cuanto
una estructura es compleja:
M = Complejidad ciclomática.
A = Número de arcos del grafo.
N = Número de nodos del grafo
M=A−N+2

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 50/55
7/21/24, 6:39 PM Calidad del Software

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 51/55
7/21/24, 6:39 PM Calidad del Software

Grafo numerando nodos y aristas. M=8-7+2

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 52/55
7/21/24, 6:39 PM Calidad del Software

MÉTRICAS DE CALIDAD DE LA DOCUMENTACIÓN


La legibilidad es importante en la documentación
El índice “Gunnings Fog” es una medida de la
legibilidad
Basada en la longitud de las frases y el
numero de sílabas en una palabra
Esto puede causar malas interpretaciones
cuando se aplica a la documentación
técnica.

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 53/55
7/21/24, 6:39 PM Calidad del Software

MADURES DE LAS MÉTRICAS


Las métricas todavía tienen un valor limitado y
no ampliamente aceptado.
Las relaciones entre que lo que se puede medir y
lo que se quiere conocer no esta bien
comprendido aun.
Hace falta poner de acuerdo a las organizaciones
sobre las métricas necesarias en el proceso de
software.

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 54/55
7/21/24, 6:39 PM Calidad del Software

¿DUDAS, PREGUNTAS, COMENTARIOS?

https://ubp-ingenieriasoftware.github.io/filminas/U11_calidad_del_software.html#/ 55/55

También podría gustarte