SlideShare ist ein Scribd-Unternehmen logo
1 von 5
METRICAS ORIENTADAS A CLASES.
Las métricasCK.Uno de los conjuntosde métricasOO más ampliamente referenciados,ha
sidoel propuestoporChidamberyKemerer.Normalmenteconocidascomolaserie de métricasCK,
los autores han propuesto seis métricas basadas en clases para sistemas OO.
Árbol de profundidadde herencia(APH). Esta métricase define como“lamáximalongitud
del nodoa laraíz del árbol”.ConreferenciaalaFigura1, el valordel APHpara la jerarquíade clases
mostradaesde 4. A medidaque el APHcrece,esposible que clasesde másbajosnivelesheredarán
muchos métodos.
Estoconllevadificultadespotenciales,cuandoseintentapredecirelcomportamientodeuna
clase. Una jerarquía de clases profunda (el APH es largo) también conduce a una complejidad de
diseño mayor. Por el lado positivo,los valores APH grandes implican un gran número de métodos
que se reutilizarán.
Númerode descendientes(NDD). Lassubclasesinmediatamente subordinadasauna clase
en la jerarquía de clases se denominan sus descendientes. Con referencia a la Figura 1, la clase C2
tiene tres descendientes (subclases C21, C22 y C23) . A medida que el número de descendientes
crece,lareutilizaciónse incrementa,peroademásesciertoque cuandoelNDDcrece,laabstracción
representada por la clase predecesora puede diluirse. Esto significa que existe una posibilidad de
que algunos descendientes no sean miembros, realmente apropiados, de la clase predecesora. A
medida que el NDD crece, la cantidad de pruebas (requeridas para ejercitar cada descendiente en
su contexto operativo) se incrementará también.
Acoplamientoentre clasesobjeto (ACO). En esencia,ACOes el númerode colaboraciones
listadasparaunaclase,enlatarjetaíndice CRC(Clase ResponsabilidadColaboración).A medidaque
ACO se incrementa, es más probable que el grado de reutilización de una clase decrezca. Valores
altos de ACO además complican las modificaciones y las pruebas, que se producen cuando se
realizanmodificaciones.Engeneral, losvaloresde ACOparacadaclase debenmantenersetanbajos
como sea razonable.Esto esconsistente conla regla general para reducirel acoplamiento,parael
software convencional.
Respuesta para una clase (RPC). El conjunto de respuesta de una clase es “una serie de
métodos que pueden potencialmente ser ejecutados, en respuesta a un mensaje recibido por un
objeto, en la clase”. RPC se define como el número de métodos en el conjunto de respuesta. A
medida que la RPC aumenta, el esfuerzorequeridopara la comprobación tambiénse incrementa,
ya que la secuencia de comprobación se incrementa también. Así mismo, se dice que, así como la
RPC aumenta, la complejidad del diseño global de la clase se incrementa.
Carencia de cohesiónen los métodos (CCM). Cada métododentrode una clase,C, accede
a unoo más atributos(tambiénllamadosvariablesde instancia)CCMesel númerode métodosque
accede a uno o más de los mismos atributos. Si no existenmétodos que accedan a los mismos
atributos, entonces CCM= 0.
Para ilustrarel caso enel que CCMes diferentede 0,considéreseunaclase con6 métodos.
Cuatro de los métodos tienen uno o más atributos en común (es decir, acceden a atributos
comunes).De estamanera,CCM=4. Si CCMesalto,losmétodosdebenacoplarseaotro,pormedio
de los atributos. Esto incrementa la complejidad del diseñode clases.En general,los valores altos
paraCCMimplicanque laclase debediseñarse mejordescomponiendoendosomásclasesdistintas.
Aunque existan casos en los que un valor alto para CCM es justificable, es deseable mantener la
cohesión alta, es decir, mantener CCMbajo.
MÉTRICAS OO (LORENZ Y KIDD).
Métricas propuestas por Lorenz y Kidd. En su libro sobre métricas OO, Lorenz y Kidd
separan las métricas basadas en clases en cuatro amplias categorías: tamaño, herencia, valores
internos y valores externos. Las métricas orientadas al tamaño para las clases OO se centran en el
recuento de atributos y operaciones para cada clase individual, y los valores promedio para el
sistema OO como un todo. Las métricas basadas en la herencia se centran en la forma en que las
operaciones se reutilizan en la jerarquía de clases. Las métricas para valores internos de clase
examinanlacohesiónylosaspectosorientadosal código;lasmétricasorientadasavaloresexternos,
examinan el acoplamiento y la reutilización. A continuación, una muestra de métricas propuestas
por Lorenz y Kidd.
Primera. Tamaño de clase (TC). El tamaño general de una clase puede medirse
determinando las siguientes medidas:
 El total de operaciones (operaciones tanto heredadas como privadas de la
instancia), que se encapsulan dentro de la clase.
 El númerode atributos(atributostanto heredadoscomoprivadosde la instancia),
encapsulados por la clase.
La métricaMPCpropuestaporChidamberyKemererestambiénunamétricaponderadadel
tamañode clase.Comose indicóconanterioridad,valoresgrandesparaTCindicanquelaclase debe
tener bastante responsabilidad. Esto reducirá la reutilización de la clase y complicará la
implementaciónylaspruebas.En general,operacionesyatributosheredadosopúblicosdebenser
ponderados con mayor importancia, cuando se determina el tamaño de clase. Operaciones y
atributos privados, permiten la especialización y son más propios del diseño.
También se pueden calcular los promedios para el número de atributos y operaciones de
clase.Cuanto menorsea el valor promediopara el tamaño, será más posible que lasclasesdentro
del sistema puedan reutilizarse.
Segunda. Número de operaciones redefinidas para una subclase (NOR). Existen casos en
que unasubclase reemplazaunaoperaciónheredadadesusuperclase porunaversiónespecializada
para su propiouso. A estose le llamaredefinición.Losvaloresgrandesparael NOR, generalmente
indican un problema de diseño. Tal como indican Lorenz y Kidd:
“Dado que una subclase debe serla especializaciónde sussuperclases,deben,sobre todo,
extender los servicios (operaciones) de las superclases. Esto debe resultar en nuevos nombresde
métodos únicos”.
Si el NOR esgrande,el diseñadorhavioladolaabstracción representadaporlasuperclase.
Esto provoca una débil jerarquía de clases y un software OO, que puede ser difícil de probar y
modificar.
Tercera. Número de operaciones añadidas por una subclase (NOA). Las subclases se
especializan añadiendo operaciones y atributos privados. A medida que el valor NOA se
incrementa, la subclase se aleja de la abstracción representada por la superclase. En
general, a medida que la profundidad de la jerarquía de clases incrementa (APH se vuelve
grande), el valor para NOA a niveles más bajos en la jerarquía debería disminuir.
Cuarta. Índice de especialización (IES). El índice de especialización proporciona una
indicación aproximada del grado de especialización, para cada una de las subclases en un
sistema OO. La especialización se puede alcanzar añadiendo o eliminando operaciones,
pero también redefiniendo.
IE = [ NOR * nivel ] / Mtotal
Donde: nivel corresponde al nivel en la jerarquía de clases en que reside la clase, y
Mtotal es el número total de métodos de la clase. Cuanto más elevado sea el valor de IE,
más probable será que la jerarquía de clases tenga clases que no se ajusten a la abstracción
de la superclase.
MÉTRICAS DE DISEÑO A NIVEL DE COMPONENTES DE SOFTWARE CONVENCIONAL
Las métricasde diseñoanivelde componentesse concentranenlascaracterísticasinternas
de los componentes del software e incluyen medidas de las «3Cs» la cohesión, acoplamiento y
complejidaddelmódulo.Estastresmedidaspuedenayudaral desarrolladorde software ajuzgarla
calidad de un diseño a nivel de los componentes.
Las métricaspresentadasenestasecciónsonde cajablancaen el sentidode que requieren
conocimiento del trabajo interno del módulo en cuestión. Las métricas de diseño de los
componentesse puedenaplicarunavezque se ha desarrolladoundiseñoprocedimental.También
se pueden retrasar hasta tener disponible el código fuente.
Métricas de Cohesión: Bieman y Ott definen una colección de métricas que proporcionan
unaindicaciónde lacohesióndeunmódulo.Lasmétricassedefinenconcincoconceptosymedidas:
 Porción de datos. Dicho simplemente,unaporciónde datoses una marcha atrás a
través de un módulo que busca valores de datos que afectan a la localización de
móduloenel que empezólamarchaatrás.Deberíaresaltarse quese puedendefinir
tanto porcionesde programas(que se centranen enunciadosycondiciones) como
porciones de datos.
 Muestras (tokens) de datos. Las variables definidas para un módulo pueden
definirse como muestras de datos para el módulo.
 Señales de unión. El conjunto de muestras de datos que se encuentran en una o
más porciones de datos.
 Señales de superunión. La muestras de datos comunes a todas las porciones de
datos de un módulo.
 Pegajosidad. La pegajosidad relativa de una muestra de unión es directamente
proporcional al número de porciones de datos que liga.
Métricas de acoplamiento: El acoplamiento de módulo proporciona una indicación de la
conectividad» de un módulo con otros módulos, datos globales y el entorno exterior.
Dhama ha propuesto una métrica para el acoplamiento del módulo que combina el
acoplamiento de flujo de datos y de control, acoplamiento global y acoplamiento de entorno.Las
medidas necesarias para calcular el acoplamiento de módulo se definen en términos de cada uno
de los tres tipos de acoplamiento apuntados anteriormente.
Para el acoplamiento de flujo de datos y de control:
di = número de parámetros de datos de entrada
ci = número de parámetros de control de entrada
do = número de parámetros de datos de salida
co = número de parámetros de control de salida
Para el acoplamiento global:
g, = número de variables globales usadas como datos
g, = número de variables globales usadas como control
Para el acoplamiento de entorno:
w = número de módulos llamados (expansión)
r = número de módulos que llaman al módulo en cuestión
Métricas de Complejidad: Se pueden calcular una variedad de métricas del software para
determinar la complejidaddel flujo de control del programa. Muchas de éstas se basan en una
representacióndenominada grafode flujo.Un grafo es una representacióncompuestade nodosy
enlaces(tambiéndenominadosaristas).Cuandose dirigenlosenlaces(aristas),el grafode flujoes
un grafo dirigido.
McCabe identifica un número importante de usos para las métricas de complejidad:
Las métricasde complejidadpuedenemplearse parapredecir lainformacióncríticasobre la
fiabilidad y mantenimiento de sistemas software de análisis automáticos de código fuente (o
información de diseño procedimental). Las métricas de complejidad también realimentan la
información durante el proyecto de software para ayudar a controlar la [actividad del diseño].
Durante las pruebas y el mantenimiento, proporcionan una detallada información sobre los
módulos software para ayudar a resaltar las áreas de inestabilidad potencial.
McCabe también defiende que la complejidad ciclomática puede emplearse para
proporcionar una indicación cuantitativa del tamaño máximo del módulo. Recogiendo datos de
varios proyectos de programación reales, ha averiguado que una complejidadciclomática de 10
parece ser el límite práctico superior para el tamaño de un módulo. Cuando la complejidad
ciclomática de los módulos excedían ese valor, resultaba extremadamente difícil probar
adecuadamente el módulo.
Referencias Bibliográficas
Métricas para Sistemas Orientados a Objetos
http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/gonzalez_d_h/capitulo6.pdf
Métodos y herramientas Orientados a Objetos a la Calidad del Software
http://www.frre.utn.edu.ar/gics/clean/files/get/item/6425
Ingeniería de Software III
http://ing-software3.blogspot.com/2012/11/metricas-del-modelo-del-diseno.html

Weitere ähnliche Inhalte

Was ist angesagt?

Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de Costo
CAMILO
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto software
antonio
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
Kleo Jorgee
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
negroues
 
Tema 2 -_metricas_y_modelos_de_estimacion_del_software
Tema 2 -_metricas_y_modelos_de_estimacion_del_softwareTema 2 -_metricas_y_modelos_de_estimacion_del_software
Tema 2 -_metricas_y_modelos_de_estimacion_del_software
xavazquez
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
azuajesimon
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
Marilugosale
 

Was ist angesagt? (20)

Entrega ii
Entrega iiEntrega ii
Entrega ii
 
MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)MODELO COCOMO (INGENIERA DE SOFTWARE)
MODELO COCOMO (INGENIERA DE SOFTWARE)
 
Estimacion de proyectos de software
Estimacion de proyectos de softwareEstimacion de proyectos de software
Estimacion de proyectos de software
 
Proyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de CostoProyecto de Software y Estimacion de Costo
Proyecto de Software y Estimacion de Costo
 
Modelado de los requerimientos
Modelado de los requerimientosModelado de los requerimientos
Modelado de los requerimientos
 
Desarrollo en espiral
Desarrollo en espiralDesarrollo en espiral
Desarrollo en espiral
 
Clasificacion de las Metodologias de Desarrollo de Software
Clasificacion de las Metodologias de Desarrollo de SoftwareClasificacion de las Metodologias de Desarrollo de Software
Clasificacion de las Metodologias de Desarrollo de Software
 
Trabajo de Christian Oblitas
Trabajo de Christian OblitasTrabajo de Christian Oblitas
Trabajo de Christian Oblitas
 
Tecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto softwareTecnicas de estimacion de costos de proyecto software
Tecnicas de estimacion de costos de proyecto software
 
Modelos empiricos de_estimacion
Modelos empiricos de_estimacionModelos empiricos de_estimacion
Modelos empiricos de_estimacion
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...Clase no. 1 unidad no. iii  introduccion al analisis y diseño estructurado  d...
Clase no. 1 unidad no. iii introduccion al analisis y diseño estructurado d...
 
Estimación De Proyectos De Software
Estimación De Proyectos De SoftwareEstimación De Proyectos De Software
Estimación De Proyectos De Software
 
Tema 2 -_metricas_y_modelos_de_estimacion_del_software
Tema 2 -_metricas_y_modelos_de_estimacion_del_softwareTema 2 -_metricas_y_modelos_de_estimacion_del_software
Tema 2 -_metricas_y_modelos_de_estimacion_del_software
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
COCOMO
COCOMOCOCOMO
COCOMO
 
Utilización de software en la Distribución en Planta de instalaciones
Utilización de software en la Distribución en Planta de instalacionesUtilización de software en la Distribución en Planta de instalaciones
Utilización de software en la Distribución en Planta de instalaciones
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Diseño estructurado
Diseño estructuradoDiseño estructurado
Diseño estructurado
 
Sistemas, redes y riesgos en los computadores
Sistemas, redes y riesgos en los computadoresSistemas, redes y riesgos en los computadores
Sistemas, redes y riesgos en los computadores
 

Andere mochten auch

Andere mochten auch (19)

Integracion de las metricas
Integracion de las metricasIntegracion de las metricas
Integracion de las metricas
 
Metricas
MetricasMetricas
Metricas
 
Firmas digitales
Firmas digitales Firmas digitales
Firmas digitales
 
TECNOLOGÍA DE LA INFORMACIÓN Y COMUNICACIÓN TIC
TECNOLOGÍA DE LA INFORMACIÓN Y COMUNICACIÓN TICTECNOLOGÍA DE LA INFORMACIÓN Y COMUNICACIÓN TIC
TECNOLOGÍA DE LA INFORMACIÓN Y COMUNICACIÓN TIC
 
Soberanía tecnológica
Soberanía tecnológicaSoberanía tecnológica
Soberanía tecnológica
 
SAPI (SERVICIO AUTONOMO A LA PROPIEDAD INTELECTUAL)
SAPI (SERVICIO AUTONOMO A LA PROPIEDAD INTELECTUAL)SAPI (SERVICIO AUTONOMO A LA PROPIEDAD INTELECTUAL)
SAPI (SERVICIO AUTONOMO A LA PROPIEDAD INTELECTUAL)
 
SOFTWARE LIBRE
SOFTWARE LIBRESOFTWARE LIBRE
SOFTWARE LIBRE
 
CONCEPTUALIZACIÓN DE LA INFORMACIÓN
CONCEPTUALIZACIÓN DE LA INFORMACIÓNCONCEPTUALIZACIÓN DE LA INFORMACIÓN
CONCEPTUALIZACIÓN DE LA INFORMACIÓN
 
Formacion de emprendedores
Formacion de emprendedores Formacion de emprendedores
Formacion de emprendedores
 
Re Engineering Michigan Brochure
Re Engineering Michigan BrochureRe Engineering Michigan Brochure
Re Engineering Michigan Brochure
 
Henry Ford Period 4
Henry Ford Period 4Henry Ford Period 4
Henry Ford Period 4
 
InstallShield 2015-DE
InstallShield 2015-DEInstallShield 2015-DE
InstallShield 2015-DE
 
Slides5
Slides5Slides5
Slides5
 
Fall 2014 NYJL Sustainer Slideshow
Fall 2014 NYJL Sustainer SlideshowFall 2014 NYJL Sustainer Slideshow
Fall 2014 NYJL Sustainer Slideshow
 
Zero Waste Antigua Strategy
Zero Waste Antigua StrategyZero Waste Antigua Strategy
Zero Waste Antigua Strategy
 
Welcome to Care2
Welcome to Care2Welcome to Care2
Welcome to Care2
 
Consumerization of IT: What Are the Risks and How Can They Be Alleviated? Inf...
Consumerization of IT: What Are the Risks and How Can They Be Alleviated? Inf...Consumerization of IT: What Are the Risks and How Can They Be Alleviated? Inf...
Consumerization of IT: What Are the Risks and How Can They Be Alleviated? Inf...
 
2011 proposal-renovasi-2-okok
2011 proposal-renovasi-2-okok2011 proposal-renovasi-2-okok
2011 proposal-renovasi-2-okok
 
Forest week belgium
Forest week belgiumForest week belgium
Forest week belgium
 

Ähnlich wie Métricas orientadas a la clase

Semanas01y02
Semanas01y02Semanas01y02
Semanas01y02
luisortiz
 
Tipos de modelo y metodologias
Tipos de modelo y metodologiasTipos de modelo y metodologias
Tipos de modelo y metodologias
Josafat Mtz
 
Uso de-patrones-de-arquitectura-capitulo-4
Uso de-patrones-de-arquitectura-capitulo-4Uso de-patrones-de-arquitectura-capitulo-4
Uso de-patrones-de-arquitectura-capitulo-4
Ozzy Bull
 
Metodologã­a orientada-a-objetos-omt.-rumbaugh
Metodologã­a orientada-a-objetos-omt.-rumbaughMetodologã­a orientada-a-objetos-omt.-rumbaugh
Metodologã­a orientada-a-objetos-omt.-rumbaugh
viisistemas
 
Patrones de programación y uml en java
Patrones de programación y uml en javaPatrones de programación y uml en java
Patrones de programación y uml en java
Guille Villaf
 

Ähnlich wie Métricas orientadas a la clase (20)

Clasificacion Supervisada Y Algoritmos Evolutivos
Clasificacion Supervisada Y Algoritmos EvolutivosClasificacion Supervisada Y Algoritmos Evolutivos
Clasificacion Supervisada Y Algoritmos Evolutivos
 
Metodología Estructurada
Metodología EstructuradaMetodología Estructurada
Metodología Estructurada
 
Algoritmos de Clasificación
Algoritmos de ClasificaciónAlgoritmos de Clasificación
Algoritmos de Clasificación
 
Capitulo6
Capitulo6Capitulo6
Capitulo6
 
Semanas01y02
Semanas01y02Semanas01y02
Semanas01y02
 
Semanas01y02
Semanas01y02Semanas01y02
Semanas01y02
 
Paradigmas
ParadigmasParadigmas
Paradigmas
 
capitulo v materiales y métodos
capitulo v materiales y métodoscapitulo v materiales y métodos
capitulo v materiales y métodos
 
Métricas OO
Métricas OOMétricas OO
Métricas OO
 
Aprendizaje no supervisado
Aprendizaje no supervisadoAprendizaje no supervisado
Aprendizaje no supervisado
 
Sis05 s simulacion
Sis05 s simulacionSis05 s simulacion
Sis05 s simulacion
 
Tipos de modelo y metodologias
Tipos de modelo y metodologiasTipos de modelo y metodologias
Tipos de modelo y metodologias
 
U2 dinamica de sistemas
U2 dinamica de sistemasU2 dinamica de sistemas
U2 dinamica de sistemas
 
Uso de-patrones-de-arquitectura-capitulo-4
Uso de-patrones-de-arquitectura-capitulo-4Uso de-patrones-de-arquitectura-capitulo-4
Uso de-patrones-de-arquitectura-capitulo-4
 
Metodologã­a orientada-a-objetos-omt.-rumbaugh
Metodologã­a orientada-a-objetos-omt.-rumbaughMetodologã­a orientada-a-objetos-omt.-rumbaugh
Metodologã­a orientada-a-objetos-omt.-rumbaugh
 
Clasificación Automática de Documentos
Clasificación Automática de DocumentosClasificación Automática de Documentos
Clasificación Automática de Documentos
 
Patrones de programación y uml en java
Patrones de programación y uml en javaPatrones de programación y uml en java
Patrones de programación y uml en java
 
Practicas susana todo unidad1
Practicas susana todo unidad1Practicas susana todo unidad1
Practicas susana todo unidad1
 
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorAcceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
 
Alumno david gimenez ci 26846136 metodología
Alumno david gimenez ci 26846136 metodologíaAlumno david gimenez ci 26846136 metodología
Alumno david gimenez ci 26846136 metodología
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.pptFUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
FUERZA Y MOVIMIENTO ciencias cuarto basico.ppt
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Posición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptxPosición astronómica y geográfica de Europa.pptx
Posición astronómica y geográfica de Europa.pptx
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
Power Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptxPower Point E. S.: Los dos testigos.pptx
Power Point E. S.: Los dos testigos.pptx
 
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
1ro Programación Anual D.P.C.C planificación anual del área para el desarroll...
 
Novena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan EudesNovena de Pentecostés con textos de san Juan Eudes
Novena de Pentecostés con textos de san Juan Eudes
 
Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024Tema 17. Biología de los microorganismos 2024
Tema 17. Biología de los microorganismos 2024
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Lecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigosLecciones 06 Esc. Sabática. Los dos testigos
Lecciones 06 Esc. Sabática. Los dos testigos
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 

Métricas orientadas a la clase

  • 1. METRICAS ORIENTADAS A CLASES. Las métricasCK.Uno de los conjuntosde métricasOO más ampliamente referenciados,ha sidoel propuestoporChidamberyKemerer.Normalmenteconocidascomolaserie de métricasCK, los autores han propuesto seis métricas basadas en clases para sistemas OO. Árbol de profundidadde herencia(APH). Esta métricase define como“lamáximalongitud del nodoa laraíz del árbol”.ConreferenciaalaFigura1, el valordel APHpara la jerarquíade clases mostradaesde 4. A medidaque el APHcrece,esposible que clasesde másbajosnivelesheredarán muchos métodos. Estoconllevadificultadespotenciales,cuandoseintentapredecirelcomportamientodeuna clase. Una jerarquía de clases profunda (el APH es largo) también conduce a una complejidad de diseño mayor. Por el lado positivo,los valores APH grandes implican un gran número de métodos que se reutilizarán. Númerode descendientes(NDD). Lassubclasesinmediatamente subordinadasauna clase en la jerarquía de clases se denominan sus descendientes. Con referencia a la Figura 1, la clase C2 tiene tres descendientes (subclases C21, C22 y C23) . A medida que el número de descendientes crece,lareutilizaciónse incrementa,peroademásesciertoque cuandoelNDDcrece,laabstracción representada por la clase predecesora puede diluirse. Esto significa que existe una posibilidad de que algunos descendientes no sean miembros, realmente apropiados, de la clase predecesora. A medida que el NDD crece, la cantidad de pruebas (requeridas para ejercitar cada descendiente en su contexto operativo) se incrementará también. Acoplamientoentre clasesobjeto (ACO). En esencia,ACOes el númerode colaboraciones listadasparaunaclase,enlatarjetaíndice CRC(Clase ResponsabilidadColaboración).A medidaque ACO se incrementa, es más probable que el grado de reutilización de una clase decrezca. Valores
  • 2. altos de ACO además complican las modificaciones y las pruebas, que se producen cuando se realizanmodificaciones.Engeneral, losvaloresde ACOparacadaclase debenmantenersetanbajos como sea razonable.Esto esconsistente conla regla general para reducirel acoplamiento,parael software convencional. Respuesta para una clase (RPC). El conjunto de respuesta de una clase es “una serie de métodos que pueden potencialmente ser ejecutados, en respuesta a un mensaje recibido por un objeto, en la clase”. RPC se define como el número de métodos en el conjunto de respuesta. A medida que la RPC aumenta, el esfuerzorequeridopara la comprobación tambiénse incrementa, ya que la secuencia de comprobación se incrementa también. Así mismo, se dice que, así como la RPC aumenta, la complejidad del diseño global de la clase se incrementa. Carencia de cohesiónen los métodos (CCM). Cada métododentrode una clase,C, accede a unoo más atributos(tambiénllamadosvariablesde instancia)CCMesel númerode métodosque accede a uno o más de los mismos atributos. Si no existenmétodos que accedan a los mismos atributos, entonces CCM= 0. Para ilustrarel caso enel que CCMes diferentede 0,considéreseunaclase con6 métodos. Cuatro de los métodos tienen uno o más atributos en común (es decir, acceden a atributos comunes).De estamanera,CCM=4. Si CCMesalto,losmétodosdebenacoplarseaotro,pormedio de los atributos. Esto incrementa la complejidad del diseñode clases.En general,los valores altos paraCCMimplicanque laclase debediseñarse mejordescomponiendoendosomásclasesdistintas. Aunque existan casos en los que un valor alto para CCM es justificable, es deseable mantener la cohesión alta, es decir, mantener CCMbajo. MÉTRICAS OO (LORENZ Y KIDD). Métricas propuestas por Lorenz y Kidd. En su libro sobre métricas OO, Lorenz y Kidd separan las métricas basadas en clases en cuatro amplias categorías: tamaño, herencia, valores internos y valores externos. Las métricas orientadas al tamaño para las clases OO se centran en el recuento de atributos y operaciones para cada clase individual, y los valores promedio para el sistema OO como un todo. Las métricas basadas en la herencia se centran en la forma en que las operaciones se reutilizan en la jerarquía de clases. Las métricas para valores internos de clase examinanlacohesiónylosaspectosorientadosal código;lasmétricasorientadasavaloresexternos, examinan el acoplamiento y la reutilización. A continuación, una muestra de métricas propuestas por Lorenz y Kidd. Primera. Tamaño de clase (TC). El tamaño general de una clase puede medirse determinando las siguientes medidas:  El total de operaciones (operaciones tanto heredadas como privadas de la instancia), que se encapsulan dentro de la clase.  El númerode atributos(atributostanto heredadoscomoprivadosde la instancia), encapsulados por la clase. La métricaMPCpropuestaporChidamberyKemererestambiénunamétricaponderadadel tamañode clase.Comose indicóconanterioridad,valoresgrandesparaTCindicanquelaclase debe
  • 3. tener bastante responsabilidad. Esto reducirá la reutilización de la clase y complicará la implementaciónylaspruebas.En general,operacionesyatributosheredadosopúblicosdebenser ponderados con mayor importancia, cuando se determina el tamaño de clase. Operaciones y atributos privados, permiten la especialización y son más propios del diseño. También se pueden calcular los promedios para el número de atributos y operaciones de clase.Cuanto menorsea el valor promediopara el tamaño, será más posible que lasclasesdentro del sistema puedan reutilizarse. Segunda. Número de operaciones redefinidas para una subclase (NOR). Existen casos en que unasubclase reemplazaunaoperaciónheredadadesusuperclase porunaversiónespecializada para su propiouso. A estose le llamaredefinición.Losvaloresgrandesparael NOR, generalmente indican un problema de diseño. Tal como indican Lorenz y Kidd: “Dado que una subclase debe serla especializaciónde sussuperclases,deben,sobre todo, extender los servicios (operaciones) de las superclases. Esto debe resultar en nuevos nombresde métodos únicos”. Si el NOR esgrande,el diseñadorhavioladolaabstracción representadaporlasuperclase. Esto provoca una débil jerarquía de clases y un software OO, que puede ser difícil de probar y modificar. Tercera. Número de operaciones añadidas por una subclase (NOA). Las subclases se especializan añadiendo operaciones y atributos privados. A medida que el valor NOA se incrementa, la subclase se aleja de la abstracción representada por la superclase. En general, a medida que la profundidad de la jerarquía de clases incrementa (APH se vuelve grande), el valor para NOA a niveles más bajos en la jerarquía debería disminuir. Cuarta. Índice de especialización (IES). El índice de especialización proporciona una indicación aproximada del grado de especialización, para cada una de las subclases en un sistema OO. La especialización se puede alcanzar añadiendo o eliminando operaciones, pero también redefiniendo. IE = [ NOR * nivel ] / Mtotal Donde: nivel corresponde al nivel en la jerarquía de clases en que reside la clase, y Mtotal es el número total de métodos de la clase. Cuanto más elevado sea el valor de IE, más probable será que la jerarquía de clases tenga clases que no se ajusten a la abstracción de la superclase. MÉTRICAS DE DISEÑO A NIVEL DE COMPONENTES DE SOFTWARE CONVENCIONAL Las métricasde diseñoanivelde componentesse concentranenlascaracterísticasinternas de los componentes del software e incluyen medidas de las «3Cs» la cohesión, acoplamiento y complejidaddelmódulo.Estastresmedidaspuedenayudaral desarrolladorde software ajuzgarla calidad de un diseño a nivel de los componentes.
  • 4. Las métricaspresentadasenestasecciónsonde cajablancaen el sentidode que requieren conocimiento del trabajo interno del módulo en cuestión. Las métricas de diseño de los componentesse puedenaplicarunavezque se ha desarrolladoundiseñoprocedimental.También se pueden retrasar hasta tener disponible el código fuente. Métricas de Cohesión: Bieman y Ott definen una colección de métricas que proporcionan unaindicaciónde lacohesióndeunmódulo.Lasmétricassedefinenconcincoconceptosymedidas:  Porción de datos. Dicho simplemente,unaporciónde datoses una marcha atrás a través de un módulo que busca valores de datos que afectan a la localización de móduloenel que empezólamarchaatrás.Deberíaresaltarse quese puedendefinir tanto porcionesde programas(que se centranen enunciadosycondiciones) como porciones de datos.  Muestras (tokens) de datos. Las variables definidas para un módulo pueden definirse como muestras de datos para el módulo.  Señales de unión. El conjunto de muestras de datos que se encuentran en una o más porciones de datos.  Señales de superunión. La muestras de datos comunes a todas las porciones de datos de un módulo.  Pegajosidad. La pegajosidad relativa de una muestra de unión es directamente proporcional al número de porciones de datos que liga. Métricas de acoplamiento: El acoplamiento de módulo proporciona una indicación de la conectividad» de un módulo con otros módulos, datos globales y el entorno exterior. Dhama ha propuesto una métrica para el acoplamiento del módulo que combina el acoplamiento de flujo de datos y de control, acoplamiento global y acoplamiento de entorno.Las medidas necesarias para calcular el acoplamiento de módulo se definen en términos de cada uno de los tres tipos de acoplamiento apuntados anteriormente. Para el acoplamiento de flujo de datos y de control: di = número de parámetros de datos de entrada ci = número de parámetros de control de entrada do = número de parámetros de datos de salida co = número de parámetros de control de salida Para el acoplamiento global: g, = número de variables globales usadas como datos g, = número de variables globales usadas como control Para el acoplamiento de entorno:
  • 5. w = número de módulos llamados (expansión) r = número de módulos que llaman al módulo en cuestión Métricas de Complejidad: Se pueden calcular una variedad de métricas del software para determinar la complejidaddel flujo de control del programa. Muchas de éstas se basan en una representacióndenominada grafode flujo.Un grafo es una representacióncompuestade nodosy enlaces(tambiéndenominadosaristas).Cuandose dirigenlosenlaces(aristas),el grafode flujoes un grafo dirigido. McCabe identifica un número importante de usos para las métricas de complejidad: Las métricasde complejidadpuedenemplearse parapredecir lainformacióncríticasobre la fiabilidad y mantenimiento de sistemas software de análisis automáticos de código fuente (o información de diseño procedimental). Las métricas de complejidad también realimentan la información durante el proyecto de software para ayudar a controlar la [actividad del diseño]. Durante las pruebas y el mantenimiento, proporcionan una detallada información sobre los módulos software para ayudar a resaltar las áreas de inestabilidad potencial. McCabe también defiende que la complejidad ciclomática puede emplearse para proporcionar una indicación cuantitativa del tamaño máximo del módulo. Recogiendo datos de varios proyectos de programación reales, ha averiguado que una complejidadciclomática de 10 parece ser el límite práctico superior para el tamaño de un módulo. Cuando la complejidad ciclomática de los módulos excedían ese valor, resultaba extremadamente difícil probar adecuadamente el módulo. Referencias Bibliográficas Métricas para Sistemas Orientados a Objetos http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/gonzalez_d_h/capitulo6.pdf Métodos y herramientas Orientados a Objetos a la Calidad del Software http://www.frre.utn.edu.ar/gics/clean/files/get/item/6425 Ingeniería de Software III http://ing-software3.blogspot.com/2012/11/metricas-del-modelo-del-diseno.html