You are on page 1of 15

Diego Montaa Franco. Yaneth Meja Rendn.

Esta mtrica mide la falta de cohesin de una determinada clase (forma parte de un conjunto de mtricas que cogen su nombre de las iniciales de Lack of Cohesion of Methods). Antes de entrar a analizar cmo funciona esta mtrica, es de inters mencionar aunque sea en lneas generales, qu es la cohesin y para qu sirve.

La cohesin mide la especializacin (o la proximidad al principio de responsabilidad nica) de una determinada clase o lo que es lo mismo cmo de relacionados estn los distintos elementos (atributos y mtodos) que la componen. Se entiende que clases ms especializadas son ms mantenibles. Esto es fcil de apreciar cuando por ejemplo miramos el cdigo de una clase cohesionada y el cdigo de una clase Tutti Frutti, en el primer caso veremos que la clase describe un objeto y su comportamiento, considerando dicho objeto como algo atmico, en el segundo caso nos podremos encontrar (exagerando mucho) clases que plancharn la ropa, jugarn al ftbol, te hacen un Cola Cao y son capaces de mantener una charla contigo sobre metafsica.

Evidentemente, por muy complejo que sea el primer tipo de clases, probablemente el comportamiento, inteligibilidad, mantenibilidad, etc de la segunda se vea afectado en sentido negativo.

Existen distintos grados de cohesin, segn la forma en qu estn relacionados sus elementos. En las anteriores diapositivas nos centramos en la de carcter funcional, que es la que nos parece ms interesante.

LCOM4
LCOM4 es la falta de cohesin, una de las mtricas recomendadas para programas de Visual Basic. Las Medidas LCOM4 contiene el nmero de "componentes conectados" en una clase. Un componente conectado es un conjunto de mtodos relacionados (y las variables de nivel de clase). No debe ser un tipo de componente en cada clase. Si hay dos o ms componentes, la clase debe dividirse en clases ms pequeas tantos.

QU MTODOS SE RELACIONAN?

Mtodos A y B son correspondientes:


dependiendo del acceso a la misma variable de nivel de clase, O llamadas de a- b, o de b-a.

CMO FUNCIONA LCOM4?

Calcula un valor para una determinada clase, si ese valor es mayor que uno, la clase es sospechosa de falta de cohesin (cuento mayor sea dicho valor, menos cohesin tendr). Lo que hace Sonar es indicarte el porcentaje de clases respecto al total que tienen un LCOM4 mayor que uno, as como calcularte el LCOM4 medio. Como en el resto de mtricas de Sonar, la clave est en definir umbrales, es decir, qu porcentaje de clases con LCOM4 mayor que uno se considera aceptable y cul es el mximo valor de LCOM4 admisible para las clases. Puede haber casos donde se pueda justificar superar dichos umbrales (suponiendo que dichos umbrales se hayan depurado con la experiencia), en ese caso, el equipo de desarrollo deber explicar los motivos y ser coherentes si quiere que se le acepte la entrega.

Para el clculo del LCOM4 de una clase bsicamente lo que hace es medir el nmero de relaciones diferentes que se establecen entre mtodos, teniendo en cuenta que un mtodo se considera relacionado con otro si acceden a un atributo comn de la clase o si uno llama a otro. Para el clculo hay mtodos que no se tienen en cuenta como por ejemplo los constructores. Tampoco se tienen en cuenta los accesores.

determinar los mtodos relacionados, dibujar un grfico que une los mtodos relacionados entre s. LCOM4 igual al nmero de grupos conectados de mtodos.

LCOM4 = 1 indica una clase de cohesin, que es el "bien" de clase. LCOM4> = 2 indica un problema. La clase se divide en clases ms pequeas tantos. LCOM4 = 0 que pasa cuando no hay ningn mtodo en una clase. Esto tambin es una "mala clase".

El ejemplo de la izquierda muestra una clase que consiste en los mtodos de la A a la E y las variables X e Y. A llama a B y B tiene acceso a x. C y D de acceso a. D llamadas E, E, pero no tiene acceso a ninguna de las variables. Esta clase consiste en dos componentes independientes (LCOM4 = 2). Usted podra dividir como {A, B, X} y {C, D, E, y}.

En el ejemplo de la derecha, se hace el acceso C x para aumentar la cohesin. Ahora la clase se compone de un solo componente (LCOM4 = 1). Es una clase cohesionada.

Casos:

Si la mtrica, cuya variable se llamara CCM por su nombre, es igual a 0


Si la mtrica es elevada. Si la mtrica es baja.

You might also like