• No se han encontrado resultados

Introducción a la calidad de código

N/A
N/A
Protected

Academic year: 2021

Share "Introducción a la calidad de código"

Copied!
6
0
0

Texto completo

(1)

i

i

i

i

Universidad de Buenos Aires

Facultad De Ingenier´ıa

Introducci´

on a la calidad de c´

odigo

[75.40] Algoritmos y Programaci´

on I

2do Cuatrimestre 2010

C´atedra: Ing. Pablo Guarna

(2)

´

Indice

1. Introducci´on 2

2. ¿Qu´e es la calidad de software? 2

3. Calidad de C´odigo 3

3.1. Legibilidad del c´odigo . . . 3

3.2. Nombres de variables . . . 4

3.3. Nombres de funciones/procedimientos . . . 5

3.3.1. Cantidad de par´ametros . . . 5

(3)

i

i

i

i

1.

Introducci´

on

Este documento est´a orientado para que los alumnos de [75.40] Algoritmos y Programaci´on I, C´atedra: Ing. Pablo Guarna, comprendan el concepto de la calidad del c´odigo al momento de dise˜nar un software.

Lo cual les permitir´a generar c´odigos con mayor claridad, mas eficientes y mas adaptados para una futura mejora.

2.

¿Qu´

e es la calidad de software?

Quiz´as uno puede estar pensando que la calidad de el software es pr´acticamente el desempe˜no del mismo al momento de resolver cierto problema, o quiz´as la interfaz que tiene con el usuario. Si bien estos dos conceptos son correctos para definir la calidad de software, no quiere decir que sean los ´unicos.

Existen otros factores que definen la calidad de software. Estos factores son: Confiabilidad Facilidad de uso Seguridad Funcionalidad Oportunidad Costo Eficiencia en el desempe˜no Interoperabilidad Extensibilidad Reutilizaci´on Portabilidad Escalabilidad

En este documento no me voy a centrar en explicar todos los conceptos de calidad de software, sino mas bien me voy a centrar en la calidad de el c´odigo de un software.

Antes que nada quiero dejarles citado una frase: ((El c´odigo es el ´unico artefacto del desarrollo de software que siempre se va a construir))1

1Ing. Carlos Fontela. Profesor de las materias [75.07] Algoritmos y Programaci´on III y [75.47] Taller de Desarrollo de Proyectos II

(4)

3.

Calidad de C´

odigo

Vamos a ver algunos puntos importantes para la calidad de c´odigo

3.1.

Legibilidad del c´

odigo

La legibilidad del c´odigo es sumamente importante, ya que esto nos facilita en la b´usqueda de errores del mismo y una posible refactorizaci´on (o mejora).

Veamos el siguiente ejemplo:

Codigo1:Ingreso de notas a 10 alumnos

1 Program n o t a s a l u m ; 2 Uses c r t ; 3 Const ALUM=10; 4 Type t V e c t o r = a r r a y [ 1 . .ALUM] o f i n t e g e r; 5 Var Notas : t V e c t o r ; 6 P r o c e d u r e t o m a d a t o s (v a r v e c t o r : t V e c t o r ) ; 7 Var i : i n t e g e r; 8 Begin 9 For i :=1 t o ALUM do 10 Begin 11 W r i t e l n ( ’ I n g r e s e l a n o t a d e l alumno ’ , i , ’ de l a l i s t a ’ ) ; 12 Readln ( v e c t o r [ i ] ) ; 13 End; 14 W r i t e l n ( ’ Carga de d a t o s f i n a l i z a d a ’ ) ; 15 End; 16 P r o c e d u r e m u e s t r a d a t o s (v a r v e c t o r : t V e c t o r ) ; 17 Var i :i n t e g e r; 18 Begin 19 W r i t e l n( ’ Notas de l o s alumnos : ’ ) ; 20 For i :=1 t o ALUM do 21 W r i t e l n ( i : 3 , ’ : ’ , v e c t o r [ i ] ) ; 22 End; 23 Begin 24 C l r s c r ; 25 t o m a d a t o s ( Notas ) ; 26 w r i t e l n; 27 m u e s t r a d a t o s ( Notas ) ; 28 End.

Podemos apreciar que es muy desprolijo y ademas es muy poco claro, lo cual le quita legibilidad al mismo. Ahora veamos el mismo c´odigo, pero utilizando la tabulaci´on correspondiente:

Codigo1:Ingreso de notas a 10 alumnos

1 Program n o t a s a l u m ; 2 Uses c r t ; 3 Const ALUM=10; 4 Type t V e c t o r = a r r a y [ 1 . .ALUM] o f i n t e g e r; 5 Var Notas : t V e c t o r ; 6 7 P r o c e d u r e t o m a d a t o s (v a r v e c t o r : t V e c t o r ) ; 8 Var i : i n t e g e r; 9 Begin 10 For i :=1 t o ALUM do 11 Begin 12 W r i t e l n ( ’ I n g r e s e l a n o t a d e l alumno ’ , i , ’ de l a l i s t a ’ ) ; 13 Readln ( v e c t o r [ i ] ) ; 14 End; 15 W r i t e l n ( ’ Carga de d a t o s f i n a l i z a d a ’ ) ; 16 End; 17 18 P r o c e d u r e m u e s t r a d a t o s (v a r v e c t o r : t V e c t o r ) ; 19 Var i :i n t e g e r;

(5)

i i i i 20 Begin 21 W r i t e l n( ’ Notas de l o s alumnos : ’ ) ; 22 For i :=1 t o ALUM do 23 W r i t e l n ( i : 3 , ’ : ’ , v e c t o r [ i ] ) ; 24 End; 25 26 Begin {Programa P r i n c i p a l} 27 C l r s c r ; 28 t o m a d a t o s ( Notas ) ; 29 w r i t e l n; 30 m u e s t r a d a t o s ( Notas ) ; 31 End.

Se puede apreciar que el ´ultimo c´odigo es much´ısimo mas claro y much´ısimo mas f´acil para realizar un seguimiento en el caso de una mejora.

Tengan en mente esto siempre:El c´odigo se escribe una vez y se lee muchas veces.

3.2.

Nombres de variables

Los nombres de las variables tienen que ser claros y entendibles, ya que los mismos son utilizados para realizar infinitas operaciones. Pasemos a mostrar un ejemplo de lo que se dice:

Codigo2:Malos nombres de variables

1 Var

2 l p p : I n t e g e r; 3 d i s t a n c i a : R e a l; 4 T o t a l 1 : Long ; 5 T o t a l 2 : Byte;

Codigo2:Buenos Nombres de variables

1 Var

2 l i n e a s p o r p a g i n a : I n t e g e r; 3 D i s t a n c i a E n M e t r o s : R e a l; 4 Maximo : Long ;

5 Minimo : Byte;

Existe la excepci´on a las variables de iteraci´on en los ciclos:For, While y Repeat Until, como por ejemplo:

Codigo3:Buenos Nombres de variables para iteraci´on

1 Var

2 i , j , k : I n t e g e r; {v a r i a b l e s de i t e r a c i ´o n p a r a v a r i o s c i c l o s}

Tambi´en hay un standard para las variables booleanas, por ejemplo, si sabemos que las variables booleanas solo pueden almacenar 2 valores distintosTrue y False. Entonces el standard para elegir el nombre en una variable booleana es no darles un nombre negativo, o nombres pocos claros, ya que los mismos pueden prestar confusi´on al momento de la codificaci´on. Veamos un ejemplo:

Codigo4:Malos Nombres para variables booleanas

1 Var

2 No Encontrado : B o o l e a n; 3 N o E r r o r : B o o l e a n; 4 No Terminado : B o o l e a n; 5 Sexo : B o o l e a n;

(6)

3.3.

Nombres de funciones/procedimientos

Los nombres de las funciones/procedimientos son muy importantes, ya que el mismo siempre describe que es lo que hace dicha funci´on/procedimiento, pero de una forma tal, que s´olo expresa la intenci´on (o el qu´e) y no detalles de imple-mentaci´on (el c´omo). Otro buen punto es no mezclar idiomas en los nombres de las funciones/procedimientos, es decir, mezclar el ingl´es con el espa˜nol.

Veamos algunos ejemplos de malos nombres para funciones/procedimientos:

Codigo5:Malos Nombres para funciones/procedimientos

1 F u n c t i o n b u s c a r E l i m i n a r ( p o s i c i o n : I n t e g e r) : I n t e g e r; 2 P r o c e d u r e f i n d E m p l e a d o D e l e t e ( p o s i c i o n : I n t e g e r) ; 3 P r o c e d u r e b e e ( ) ;

4 P r o c e d u r e buscEmpEl ( ) ;

Codigo5:Buenos Nombres para funciones/procedimientos

1 F u n c t i o n busquedaRapida ( p o s i c i o n : I n t e g e r) : I n t e g e r; 2 P r o c e d u r e e l i m i n a r E m p l e a d o ( p o s i c i o n : I n t e g e r) ;

3 F u n c t i o n o b t e n e r S a l d o ( una Cuent aBanc aria : t r C u e n t a B a n c a r i a ) : R e a l; 4 F u n c t i o n o b t e n e r P r o m e d i o ( unVector : t a V e c t o r ) : R e a l;

3.3.1. Cantidad de par´ametros

La cantidad de par´ametros en las funciones/procedimientos tiene que ser como m´aximo 7, ya que qued´o demostrado que al haber demasiados par´ametros se presta a la confusi´on al momento de codificar dicha funci´on/procedimiento y ademas es una muestra de la falla de modularizaci´on del programa

4.

Comentarios en el c´

odigo

Los comentarios en el c´odigo son de vital importancia, al momento de explicar ciertas partes del c´odigo que creemos que es necesario explicar. Pero no todo es color de rosa en la vida de un inform´atico, si bien los comentarios sirven para explicar lineas, tambi´en son un arma de doble filo, ya que un c´odigo extremadamente comentado, significa que dicho c´odigo es extremadamente complejo de entender y que su dise˜no es extremadamente retorcido. Lo cual implica una revisi´on y un re-dise˜no del mismo.

NUNCAse debe comentar lo obvio, es decir repetir en el comentario lo que se dice en el c´odigo, como por ejemplo:

Codigo6:Mal uso de los comentarios

1 VAR

2 edad : I n t e g e r; 3

4 BEGIN {Cuerpo P r i n c i p a l d e l programa}

5 {Le a s i g n o e l v a l o r 21 a l a v a r i a b l e edad}

6 edad := 21

Referencias

Documento similar

La clave está en el hombre, en su actitud (recordemos de paso a Aris tóteles, y a algunos lingüistas, como Richards, para los cuales la literatura es productora de

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

Cabe destacar también la exitosa acogida de la segunda edición de Ex- pociencia Unileon 2020 (Fig.. ciparon en el evento, organizando talleres y ponencias a los que asistieron 8000

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que

El desarrollo de una conciencia cáritas es esencial para identificar cuando un momento de cuidado se convierte en transpersonal, es necesaria para identificar