Anda di halaman 1dari 5

Keren Yosmara Orozco Escobar

Carn: 201690005
Maestra en Tecnologa de la Informacin y Comunicacin
Introduccin a la Ingeniera de Software (AS01)
1er. Trimestre 2016

Anlisis de cdigo mediante mtricas de calidad


Ambos programas fueron desarrollados en el lenguaje JAVA sobre el IDE Eclipse, luego, dichos cdigos fueron
analizados con la herramienta JArchitect. Podemos ver que JArchitect nos genera informacin importante
respecto a la calidad del cdigo, las cuales son llamadas: Reglas de proyecto, y son 218 (para sta herramienta
en especfico), entre ellas se encuentra: LOC, Cyclomatic Complexity (basado en el mtodo de McCabe),
Nesting Depth.
La complejidad ciclomtica se basa en la suma de las siguientes expresiones encontradas + 1:

Las siguientes expresiones no son tomadas en cuenta en JArchitect:

Se recomienda que el valor de CC no sea mayor a 15, ya que entonces se torna difcil de entender y darle
mantenibilidad, y si sobrepasa el valor de 30, se vuelve extremadamente complejo, es ah en donde se
aconseja dividir en pequeos mtodos y/o procedimientos.
La mtrica de Nesting Depth, se basa en el nmero mximo de alcances encapsulados dentro del mtodo, es
calculada en base al ByteCode.
Los mtodos que conllevan ms de 100 instrucciones BC (bytecode) se vuelven difciles de entender y
mantener, y si sobrepasan el valor de 200, son extremadamente complejas y deberan ser divididas en
pequeos mtodos y/o procedimientos.

Programa No.1 Sucesin de Fibonaccipublic static void main(String[] args){


System.out.println("Ingrese el nmero a calcular su respectiva sucesin de fibonacci");
int n = new Scanner(System.in).nextInt();
int b = 1, a = 0, resu = 0;
System.out.println(a);
System.out.println(b);
do {
resu = b+a;
System.out.println(resu);
a = b;
b = resu;
} while (resu <n);
}
Resultados de JArchitect
El valor de la mtrica complejidad ciclomtica es de 2, dado que es un programa bastante sencillo, el cual
nos pide un nmero y nos devuelve su respectiva sucesin de Fibonacci, dicho procedimiento solamente
conlleva un ciclo, 3 impresiones al principio, y n impresiones ms internas en el ciclo. Adems, solamente

Keren Yosmara Orozco Escobar


Carn: 201690005
Maestra en Tecnologa de la Informacin y Comunicacin
Introduccin a la Ingeniera de Software (AS01)
1er. Trimestre 2016
con 10 lneas de cdigo, lo hace ser un programa simple y pequeo. Todas las variables fueron utilizadas al
menos 1 vez. En total, el BC (bytecode) fue de 39.

Keren Yosmara Orozco Escobar


Carn: 201690005
Maestra en Tecnologa de la Informacin y Comunicacin
Introduccin a la Ingeniera de Software (AS01)
1er. Trimestre 2016

Programa No.2 De acuerdo a una fecha, devuelve el da de la semana


correspondientepublic static void main(String[] args){
System.out.println("Ingrese una fecha con el formato dd/mm/aaaa : ");
String fecha = new Scanner(System.in).nextLine();
SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
try {
Date fNueva = formato.parse(fecha);
System.out.println(diaSemana(fNueva.getDay()));
} catch (ParseException e) {
e.printStackTrace();
}
}
public static String diaSemana(int nDay){
String dia="";
switch (nDay){
case 1:
dia = "Lunes";
break;
case 2:
dia = "Martes";
break;
case 3:
dia = "Mircoles";
break;
case 4:
dia = "Jueves";
break;
case 5:
dia = "Viernes";
break;
case 6:
dia = "Sbado";
break;
case 7:
dia = "Domingo";
break;
}
return dia;
}

Keren Yosmara Orozco Escobar


Carn: 201690005
Maestra en Tecnologa de la Informacin y Comunicacin
Introduccin a la Ingeniera de Software (AS01)
1er. Trimestre 2016
Resultados de JArchitect
Este programa es bastante pequeo, tiene 31 LOC, 7 del procedimiento principal, y 24 del procedimiento que
regresa el valor del da en letras. La complejidad ciclomtica para el procedimiento principal es de 2 (lo cual lo
convierte en un proceso sencillo) y el valor CC para el otro procedimiento es de 8, lo cual requiere un poco
ms esfuerzo para su mantenibilidad. En total se utilizaron 5 variables, todas fueron utilizadas al menos 1 vez.
Las instrucciones BC fueron en total: 54, lo cual est en el rango aceptable de este tipo de mtrica.

Keren Yosmara Orozco Escobar


Carn: 201690005
Maestra en Tecnologa de la Informacin y Comunicacin
Introduccin a la Ingeniera de Software (AS01)
1er. Trimestre 2016

En conclusin, segn las mtricas implementadas y los resultados obtenidos mediante JArchitect, se puede
ver que el programa ms sencillo es el #1, el cual solamente realiza una sucesin de Fibonacci dado un
nmero cualquiera, solamente realiza unas operaciones iterativamente y lo resuelve en 10 LOC con un CC de
2, comparado con el programa #2, el cual devuelve el da (en letras) segn una fecha dada, siendo un poco
ms complejo al momento de seleccionar entre 7 opciones, teniendo 31 LOC y un CC de 10.