metricas-diagramas

15
5TIC1 Calidad en el desarrollo de Sw Métricas Nivel Diseño y Conceptual Cruz Leobardo Jesús Abraham Hernández Martínez Andrés de Jesús Sánchez Olguín Rosa Isela

Transcript of metricas-diagramas

Page 1: metricas-diagramas

5TIC1

Calidad en el desarrollo de SwMétricas Nivel Diseño y Conceptual

Cruz Leobardo Jesús Abraham Hernández Martínez Andrés de Jesús Sánchez Olguín Rosa Isela

Page 2: metricas-diagramas

MÉTRICAS DIAGRAMA DE CLASES (DISEÑO)

Participantes

+telefono: String+nombre: String+ap_paterno: String+ap_materno: String+edad: Int+sexo: Char+email: String+contraseña: String+puntos_acumulados: Int

+registrar_participantes()

Premios

+id_Premio: Int+nombre_Premio: String+descripcion: String+existencia_Premio: Int+valor_Puntos: Int

+agregar()+modificar()+consultar()+eliminar()

Productos

+codigo: String+puntos: Integer+telefono: String

+registrar_puntos()

*

1

Canje

+id_canje: Int+fecha: Date+id_premio: Int+telefono

+canjear_premio()

*

*

**

Diagrama de clases del Sistema Promocional Peñafiel-12

Métricas Valores ExplicaciónNAssoc 3 Asociaciones (Participantes-Canje), (Canje, Premios),

(Participantes-Productos),*NAgg 0*NDep 0*NGen 0*NAggH 0*NGenH 0*MaxHAgg 0

Objetivo: recopilar indicadores cuantitativos sobre entidad de software, siendo una entidad software todo elemento software sobre el que se puede aplicar un proceso de medición y que están caracterizadas por una serie de atributos.

NAssoc: número total de asociaciones dentro de un modelo de clases para medir la complejidad estructural.

*En las siguientes métricas los valores son nulos debido a que no existen tales en el diagrama de clases.

Page 3: metricas-diagramas

MÉTRICAS PARA BASE DE DATOS

Las bases y almacenes de datos se han convertido en la principal herramienta para la toma de decisiones. Por tanto, es esencial poder asegurar la calidad de los datos y la información. Por ello se muestra una métrica para evaluar la calidad de los modelos de datos a niveles conceptual y lógico.

Diagrama Entidad-Relación del Sistema Promocional Peñafiel-12

Page 4: metricas-diagramas

Métricas Valores ExplicaciónNE 3 Entidades=productos, participantes, premios

NA 17 Atributos simples, valores simples, no derivados=productos(codigo,puntos,telefono),participantes(telefono,edad,sexo,email, contrasena,puntos_acumulados), canje(id_canje,fecha),premios(existencia_premios,id_premio,descripcion,nombre_premio,valor_puntos),Atributos compuestos=participantes(nombre)

NDA 0NCA 1 Atributos compuestos=participantes(nombre)

NMVA 0NR 2 Relaciones=registra, canje

NM:NR 1 Relaciones M:N=canje

N1:NR 1 Relaciones 1:N=registra

NN_AryR 0NBinaryR 2 Relaciones binarias=registra, canje

NIS_AR 0NRefR 0

La idea de estos autores se centra en la medición de la mantenibilidad de los modelos E-R. Por ello han definido en peattini et al (2001) un conjunto de métricas para medir propiedades estructurales, como son el tamaño y la complejidad estructural de los modelos E-R.

Page 5: metricas-diagramas

METRICAS MOOD

Este conjunto de métricas fue propuesto por Brito e Abreu y Carapuca(1994) y su objetivo es medir los principales mecanismos del paradigma OO, tales como encapsulación, herencia, polimorfismo, y paso de mensajes, así como polimorfismo y su consecuente influencia sobre la calidad del software y la productividad en el desarrollo.

Calculo de métricas MHF

El Factor de Ocultamiento de los Métodos mide la proporción entre los métodos definidos como protegidos o privados y el número total de métodos. MHF se propone como una medida de encapsulación, cantidad relativa de información oculta.

Métrica MHF

Clase MH MV MD

Conexión 0 5 5ServCanje 3 4 7

ServConsulta 3 4 7ServRegistraPuntos 3 4 7

ServRegistro 3 4 7ServSesion 3 4 7

MH = Conexión=0ServCanje=3 (processRequest,doGet,doPost); ServConsulta=3 (processRequest,doGet,doPost); ServRegistraPuntos=3 (processRequest,doGet,doPost);ServRegistro=3 (processRequest,doGet,doPost);ServSesion=3 (processRequest,doGet,doPost);

MV = Conexión=5 (conexion,conDB,desconectar,getConexion,creaStat); ServCanje=4 (ServCanje,init,destroy,getServletInfo); ServConsulta=4 (ServConsulta,init,destroy,getServletInfo); ServRegistraPuntos=4 (ServRegistraPuntos,init,destroy,getServletInfo);ServRegistro=4 (ServRegistro,init,destroy,getServletInfo);ServSesion=4 (ServSesion,init,destroy,getServletInfo);

MHF= MH / MD = 15/40 = 0.375

Page 6: metricas-diagramas

Calculo de métricas AHF

El Factor de Ocultamiento de los Atributos se define como el cociente entre la suma de las invisibilidades de todos los atributos definidos en todas las clases y el número total de atributos definidos en el sistema considerado. AHF se definió como una medida de encapsulación.

Métrica AHF

Clase AH AV AD

Conexión 3 0 3ServCanje 4 0 4

ServConsulta 4 0 4ServRegistraPuntos 4 0 4

ServRegistro 4 0 4ServSesion 4 0 4

AH = Conexión=3 (conn,sentenciaSQL,controlador); ServCanje=4 (conexion,sentenciaSQL,cdr,conect); ServConsulta=4 (conexion,sentenciaSQL,cdr,conect); ServRegistraPuntos=4 (conexion,sentenciaSQL,cdr,conect);ServRegistro=4 (conexion,sentenciaSQL,cdr,conect);ServSesion=4 (conexion,sentenciaSQL,cdr,conect);

AV = Conexión=0 ServCanje=0 ServConsulta=0 ServRegistraPuntos=0 ServRegistro=0 ServSesion=0

AHF= AH / AD = 23/23 = 1

Page 7: metricas-diagramas

Calculo de métricas MIF

El Factor de Herencia de los Métodos se define como el cociente entre la suma de los métodos heredados en todas las clases del sistema considerado y el número total de métodos existentes en todas las clases. MIF se define como una medida de herencia, y por lo tanto como una medida de nivel de reutilización.

Métrica MIF

Clase MN MO MI MD MA

Conexión 5 0 0 5 5ServCanje 7 0 4 11 15

ServConsulta 7 0 4 11 15ServRegistraPuntos 7 0 4 11 15

ServRegistro 7 0 4 11 15ServSesion 7 0 4 11 15

MN = Conexión=5 (conexion,conDB,desconectar,getConexion,creaStat); ServCanje=7 (ServCanje,init,processRequest,doGet,doPost,destroy,getServletInfo); ServConsulta=7 (ServConsulta,init,processRequest,doGet,doPost,destroy,getServletInfo);ServRegistraPuntos=7 (ServRegistraPuntos,init,processRequest,doGet,doPost,destroy,getServletInfo);ServRegistro=7 (ServRegistro,init,processRequest,doGet,doPost,destroy,getServletInfo);ServSesion=7 (ServSesion,init,processRequest,doGet,doPost,destroy,getServletInfo);

MO = Conexión=0ServCanje=0ServConsulta=0ServRegistraPuntos=0ServRegistro=0ServSesion=0

MI = Conexión=0; ServCanje=4 (conDB,desconectar,getConexion,creaStat); ServConsulta=4 (conDB,desconectar,getConexion,creaStat); ServRegistraPuntos=4 (conDB,desconectar,getConexion,creaStat);ServRegistro=4 (conDB,desconectar,getConexion,creaStat);ServSesion=4 (conDB,desconectar,getConexion,creaStat);

MIF= MI / MA = 20/80= 0.25

Page 8: metricas-diagramas

Calculo de métricas AIF

El Factor de Herencia de los Atributos se define como el cociente entre la suma de los atributos heredados en todas las clases del sistema considerados y el número total de atributos existentes en todas las clases. Al igual que MIF, AIF se considera como un medio para expresar la capacidad de reutilización en un sistema.

Métrica AIF

Clase AN AO AI AD AA

Conexión 3 0 0 3 3ServCanje 4 0 2 4 6

ServConsulta 4 0 2 4 6ServRegistraPuntos 4 0 2 4 6

ServRegistro 4 0 2 4 6ServSesion 4 0 2 4 6

AN = Conexión=3 (conn,sentenciaSQL,controlador); ServCanje=4 (conexion,sentenciaSQL,cdr,conect); ServConsulta=4 (conexion,sentenciaSQL,cdr,conect);ServRegistraPuntos=4 (conexion,sentenciaSQL,cdr,conect);ServRegistro=4 (conexion,sentenciaSQL,cdr,conect);ServSesion=4 (conexion,sentenciaSQL,cdr,conect);

AO = Conexión=0ServCanje=0ServConsulta=0ServRegistraPuntos=0ServRegistro=0ServSesion=0

AI = Conexión=0 ServCanje=2 (conn,sentenciaSQL); ServConsulta=2 (conn,sentenciaSQL); ServRegistraPuntos=2 (conn,sentenciaSQL);ServRegistro=2 (conn,sentenciaSQL);ServSesion=2 (conn,sentenciaSQL);

AIF= MI / MA = 10/33 = 0.303030303

Page 9: metricas-diagramas

Participante

Registrar Asignar Puntos

Rechazar Petición

Leer Asignar Petición

Rechazar Petición

Leer Petición Registrar

Pet. AceptadaPet. Aceptada

Pet. Registro Pet. RechazadaPet. AsignarPet. Rechazada

MÉTRICAS DE HENRY Y KAFURA

Fan-in (concentración ) y fan-out(expansión) Propuesta por Henry y Kafura(1981). Ambas métricas trabajan sobre la estructura de un módulo representada como un árbol o grado de llamadas entre módulos. El fan-in de un módulo m es el número de flujos que terminan en m, mientras que el fan-out es el número de flujos que salen de m.

Se utilizan para determinar la complejidad de un módulo, midiendo el número de sentencias en el lenguaje de programación en el módulo.

Módulo Fan-In Fan-Out [Fin*FOut]2 Longitud* MHK*Participante 2 0 4Registrar 1 2 9Asignar Puntos

1 2 9

Leer Petición Registrar

0 1 1

Rechazar Petición

1 0 1

Leer Petición Asignar

0 1 1

Rechazar Petición

1 0 1

Page 10: metricas-diagramas

Producto

Registrar Producto Consultar

Rechazar Petición

Leer Petición Consultar

Rechazar Petición

Leer Petición Asignar Canje

Pet. AceptadaPet. Aceptada

Pet. Asignar Pet. RechazadaPet. ConsultarPet. Rechazada

MÉTRICAS DE HENRY Y KAFURA

Módulo Fan-In Fan-Out [Fin*FOut]2 Longitud* MHK*Producto 2 0 4Registrar Producto

1 2 9

Consultar 1 2 9Leer Petición Registrar Producto

0 1 1

Rechazar Petición

1 0 1

Leer Petición Consultar

0 1 1

Rechazar Petición

1 0 1

Page 11: metricas-diagramas

Premio

Consultar Premio

Rechazar Petición

Leer Petición Consultar Premio

Pet. Aceptada

Pet. Asignar Pet. Rechazada

MÉTRICAS DE HENRY Y KAFURA

Módulo Fan-In Fan-Out [Fin*FOut]2 Longitud* MHK*Premio 1 0 4Consultar Premio

1 2 9

Leer Petición Consultar Premio

0 1 1

Rechazar Petición

1 0 1

MÉTRICAS DE HENRY Y KAFURA

Page 12: metricas-diagramas

Canje

Asignar Canje Consultar

Rechazar Petición

Leer Petición Consultar

Rechazar Petición

Leer Petición Registrar Producto

Pet. AceptadaPet. Aceptada

Pet. Registro Pet. RechazadaPet. ConsultarPet. Rechazada

Módulo Fan-In Fan-Out [Fin*FOut]2 Longitud* MHK*Canje 2 0 4Asignar Canje 1 2 9Consultar 1 2 9Leer Petición Asignar Canje

0 1 1

Rechazar Petición

1 0 1

Leer Petición Consultar

0 1 1

Rechazar Petición

1 0 1

*(Estas mediciones aun no pueden ser realizadas, debido a que la etapa de desarrollo en que se encuentra el sistema no ha finalizado).