Sei sulla pagina 1di 9

ESTNDAR DE CODIFICACIN PARA JAVA

Recopilacin: John Fredy Velsquez, Oswaldo Alberto Romero ni!ersidad "istrital Francisco Jose de #aldas Introduccin a los Estndares de Codi icacin

$a le%ibilidad del cdi%o &uente repercute directamente en lo bien que un desarrollador comprende un sistema de so&tware' $a mantenibilidad del cdi%o es la &acilidad con que el sistema de so&tware puede modi&icarse para a(adirle nue!as caracter)sticas, modi&icar las ya e*istentes, depurar errores, o me+orar el rendimiento' Aunque la le%ibilidad y la mantenibilidad son el resultado de muchos &actores, una &aceta del desarrollo de so&tware en la que todos los pro%ramadores in&luyen especialmente es en la t,cnica de codi&icacin' -l me+or m,todo para ase%urarse de que un equipo de pro%ramadores manten%a un cdi%o de calidad es establecer un estndar de codi&icacin sobre el que se e&ectuarn lue%o re!isiones del cdi%o de rutinas' sar t,cnicas de codi&icacin slidas y realizar buenas prcticas de pro%ramacin con !istas a %enerar un cdi%o de alta calidad es de %ran importancia para la calidad del so&tware y para obtener un buen rendimiento' Adems, si se aplica de &orma continuada un estndar de codi&icacin bien de&inido, se utilizan t,cnicas de pro%ramacin apropiadas, y, posteriormente, se e&ect.an re!isiones del cdi%o mediante inspeccin directa o mediante herramientas automatizadas, caben muchas posibilidades de que un proyecto de so&tware se con!ierta en un sistema de so&tware &cil de comprender y de mantener' Aunque el propsito principal para lle!ar a cabo re!isiones del cdi%o a lo lar%o de todo el desarrollo es localizar errores y a &uturo pre!enir de&ectos en el so&tware, las re!isiones tambi,n pueden a&ianzar los estndares de codi&icacin de manera uni&orme' $a adopcin de un estndar de codi&icacin slo es !iable si se si%ue desde el principio hasta el &inal del proyecto de so&tware' /o es prctico, ni prudente, imponer un estndar de codi&icacin una !ez iniciado el traba+o'

I O!JETIVO
0resentar una propuesta de estndar de codi&icacin para el rea de pro%ramacin en el proyecto #urricular de 1istemas de la &acultad de 2n%enier)a de la ni!ersidad "istrital F'J'#' CRITERIOS DE CA"IDAD -s importante que durante la codi&icacin se consideren permanentemente los si%uientes criterios de calidad: CRITERIO
Facilidad de #omunicacin Autodescripcin 1implicidad

O!JETIVO
0roporcionar al usuario entradas y salidas &cilmente asimilables' 0roporcionar en el cdi%o, e*plicaciones sobre la implantacin realizada' $a implantacin realizada debe hacerse de la &orma ms comprensible posible'

NOTACION
PRINCIPIOS #ENERA"ES $os nombres de cada uno de los elementos del pro%rama deben ser si%ni&icati!os3 su nombre debe e*plicar en lo posible el uso del elemento' $a mayor)a de los elementos se deben nombrar usando sustanti!os 4posiblemente compuestos5, o &ormas !erbales en imperati!o' $a &orma de construir los nombres ser colocando primero el !erbo o el sustanti!o, se%uido de cada uno de sus complementos con la primera letra en may.scula' EJE$P"OS
Jue%o numeroJu%adas pilaVacia ha%aJu%ada almacene0artida

es nombre sustanti!o es nombre sustanti!o' es nombre sustanti!o' es un nombre !erbal en imperati!o es un nombre !erbal en imperati!o

NO$!RA$IENTO DE E"E$ENTOS Ele%ento #lases, inter&aces y archi!os &uente #onstantes Atributos 7,todos Re&las de no%'ra%iento /ombre sustanti!o sin%ular, con la primera letra en may.scula y las dems en min.sculas' /ombre sustanti!o en may.sculas' 0ara separar palabras se usar el %uin ba+o: 6 /ombre sustanti!o en min.sculas' /ombre sustanti!o en min.sculas, si retorna un !alor /ombre !erbal en min.sculas, si no retorna !alor' 0ara los m,todos analizadores y modi&icadores de atributos, alternati!amente puede usarse el estndar %etAtributo45 y setAtributo45' 1i se utiliza esta alternati!a, debe usarse consistentemente en todos estos m,todos' /ombre sustanti!o sin%ular en min.sculas

0aquetes y directorios

II

ESTR(CT(RA DE ARC)IVOS

8odos los archi!os &uente deben tener la si%uiente estructura bsica %eneral:
99::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 99 /O7;R- "- AR#<2VO' 99 F-#<A #R-A#2=/: 99 A 8OR: 99 V-R12O/: 99 >' Comentarios generales 99::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: pac?a%e xxxx3 99::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 99 ;2;$2O8-#A1 R-@ -R2"A1 99::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: import xxx 3 ''''

#ada clase o inter&az debe tener la si%uiente estructura bsica %eneral:


99::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 99 #$A1- NombreDeLaClase 99::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: >' 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 99 A8R2; 8O1 "- 2/18A/#2A 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >' 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 99 A8R2; 8O1 "- #$A1- 4-18A82#O15 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >' 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 99 VA$2"A#2=/ "- 2/VAR2A/899AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA pri!ate bolean in!arianteO? 45 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 99 7-8O"O1 #O/18R #8OR-1 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >' 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 99 7B8O"O1 "- 2/18A/#2A 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >' 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 99 7-8O"O1 "- #$A1- 4-18A82#O15 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >' 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 99 2/2#2A$2CA"OR "- #$A1- 4-18A82#O5 99AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA >'

1i al%una de las secciones no aparece, las l)neas de encabezado pueden eliminarse Ta%a*o de "+neas $as l)neas deben ser de m*imo DD caracteres' 1i es necesario partir la l)nea, la si%uiente l)nea debe alinearse de+ando doble san%r)a'
''''''''''''''''''''''''''''''''''' ''''''''' 3

CO$ENTARIOS #ENERA"IDADES
1e emplear el &ormalismo de precondicin, poscondicin e in!ariante' Bstas son a&irmaciones sobre el estado antes y despu,s de e+ecutarse un m,todo para las primeras dos3 o durante toda la !ida de un ob+eto para el .ltimo' -l cdi%o debe comentarse utilizando la sinta*is apropiada para uso de javadoc, teniendo en cuenta que para la produccin de la documentacin deben incorporarse los tags particulares que no ha%an parte del estndar' -n el caso de las poscondiciones, utilizaremos la notacin prima 4*E5 para re&erirnos al !alor de una !ariable al &inalizar el m,todo, y sin prima 4*5 para su !alor antes de iniciarse la e+ecucin de la rutina' 0or e+emplo una rutina que incrementa el !alor de * en uno puede especi&icarse con: Fpos *E :: * G H' $os conectores l%icos que se deben emplear son los de Ja!a: II, JJ, K 1e asume que los atributos que no &i%uran en la poscondicin, /O su&ren modi&icaciones' -n el caso de &unciones analizadoras, ,stas /O deben a&ectar atributos, y su poscondicin se especi&ica con el ta% Freturn de javadoc'

CO$ENTARIOS DE C"ASES E INTERFACES


9LL L Descripcin de la clase L Fauthor Nombre del desarrollador 1 L Fauthor Nombre del desarrollador 2 L F!ersion nmero versin y fecha L Fin! 2n!ariante de clase L9

CO$ENTARIOS DE ATRI!(TOS
9LL "escripcin del atributo L9

CO$ENTARIOS DE $,TODOS CONSTR(CTORES


9LL L Descripcin de lo q e hace el m!todo L Fparam p Descripcin del par"metro' L Fpre precondicin no L Fpre precondicin dos L Fpos poscondicin no L Fpos poscondicin no L Fe*ception #ipo$xcepcin, Condiciones q e ca san la excepcin L9

CO$ENTARIOS DE $,TODOS ANA"I-ADORES


9LL L Descripcin de lo q e hace el m!todo L Fparam p Descripcin del par"metro' L Fpre precondicin no L Freturn valor a retornar L Fe*ception #ipo$xcepcin, Condiciones q e ca san la excepcin L9

CO$ENTARIOS DE $,TODOS $ODIFICADORES


9LL L Descripcin de lo q e hace el m!todo L Fparam p Descripcin del par"metro' L Fpre precondicin uno L Fpos poscondicin uno L Fe*ception #ipo$xcepcin, Condiciones q e ca san la excepcin L9

OTROS CO$ENTARIOS INTERNOS


$os otros comentarios necesarios deben &i%urar a partir de la columna MN'
99 ''''''''''''''''> 99''''''''''''''''''''

III

SAN#R.A / A!"OCA$IENTO

8odos los archi!os &uentes deben se%uir el estndar de san%r)a' #ada entrada corresponde a O espacios' /o debe usarse el carcter de tabulacin, pues es dependiente de la con&i%uracin del editor' 8odos los constructores que admiten bloques de instrucciones delimitados por P>Q, deben usarlos a.n si ,stos tienen una sola instruccin' $as &unciones deben tener un solo punto de retorno, y el &lu+o normal de las estructuras de iteracin no debe alterarse mediante instrucciones brea? o continue'

DEFINICIN DE C"ASES O INTERFACES


''''''''' P ''' ''''' 3 ''' ''''' 3 ''' ''''' 3 ''' ''''' 3 Q ''''''

DEFINICIN DE $,TODOS
'''' ''' ''''' 4 '''' , '''' , '''' 5P ''''' 3 ''''' 3 Q '''' ''' ''''' 4 '''' , '''' , '''' 5 throws ''','''' P ''''' 3 ''''' 3 Q

ESTR(CT(RAS CONDICIONA"ES
i& 4 ''''' 5 P ''''' 3 ''''' 3 ''''' 3 Q else i& 4 ''''' 5 P ''''' 3 ''''' 3 ''''' 3 Q else P ''''' 3 ''''' 3 ''''' 3 Q switch 4 ''''' 5 P case ''''' : ''''' 3 ''''' 3 ''''' 3 brea?3 case ''''' : ''''' 3 ''''' 3 ''''' 3 brea?3 case ''''' : ''''' 3 ''''' 3 ''''' 3 de&ault: ''''' 3 ''''' 3 ''''' 3

Q
$as proposiciones brea? siempre deben estar en el ni!el de case'

ESTR(CT(RAS DE ITERACIN
while 4 ''''' 5 P ''''' 3 ''''' 3 ''''' 3 Q

&or 4 ''''' 3 ''''' 3 ''''' 5 P ''''' 3 ''''' 3 ''''' 3 Q do P ''''' 3 ''''' 3 ''''' 3 Q while 4 ''''' 5 3

ESTR(CT(RAS DE E0CEPCIN
try P '''''3 '''''3 Q catch 4''''5 P ''''3 Q catch 4''''5 P ''''3 Q &inally P '''' 3 Q

ASERCIONES
1e recomienda el uso de aserciones para !alidacin de poscondiciones, in!ariantes y otros puntos cr)ticos se%.n sea el caso' 0ara el caso del in!ariante de la representacin se recomienda la implantacin del m,todo in!arainteO?, de modo que se pueda in!ocar desde las aserciones de poscondicin de todos los m,todos'

ESTNDAR DE CODIFICACIN PARA OTROS "EN#(AJES


Notacin )1n&ara

7icroso&t utiliza una notacin estandarizada para nombrar las !ariables, m,todos y clases conocida como notacin <.n%ara' $a notacin <.n%ara consiste en incluir un pre&i+o a la !ariable, m,todo o clase que queremos nombrar, con este pre&i+o se especi&ica el tipo de dicha !ariable9m,todo9clase' $os distintos pre&i+os son:

Pre i2o b by c dw &n h i l lp ms% n s 1z, str w a d # 47ayuscula5 ob+ * bool 4int5 ;R8- o char

Ti3o al cual a3lica

#<AR 4unsi%ned char5

"SOR" 4unsi%ned lon%5 0untero a &uncin <andle 4#omo un puntero pero usado para los ob+etos de Sindows5 2nte%er $on% $on% pointer messa%e /umero 41hort o int5 #adena #adena con terminacion null SOR" o 2/8 4unsi%ned int5 Array "ouble #lase Ob+eto 2ndeterminado, no se conoce su tipo

Adems hay otros con!enios sobre la notacin de las !ariables' -n caso de tratarse de ms de una palabra, estas se escribirn con la primera letra en may.scula y se%uidas sin separacin de nin%una clase 4#onocida in&ormalmente como T/otacin

dromedarioU5' 0or e+emplo el n.mero de puntos del +u%ador A podr)a ser: n0untosJu%adorA' $as constantes se escribirn con may.sculas y separadas con V6V por e+emplo: 7AW6J XA"OR-1' -s importante aclarar que las constantes pueden utilizar tambi,n un pre&i+o, por e+emplo 1S672/272C-3 este pre&i+o si%ni&ica que !a a ser usado como ar%umento para la &uncin 1howSindow45' Finalmente los nombres de las clases se escribirn i%ual que las &unciones e*cepto que iran precedidos por una #, por e+emplo la clase Ju%ador: #Ju%ador'

!I!"IO#RAFIA
-ste borrador esta basado en la si%uiente biblio%ra&)a y documentos: http:99+a!a'sun'com9docs9codecon!9html9#ode#on!8O#'doc'html msdn'microso&t'com9library910A9 !sentY9html9!*concodin%standardscodere!iews'asp http:99www'linu*lots'com9Zbarreiro9spanish9%nomeAes9%nomeAde!Ain&o6es9boo?H'html http:99+a!a'sun'com9+[se9H'M9docs9tooldocs9+a!adoc9inde*'html http:99www'is'escuelain%'edu'co9asi%naturas9pobH9

Potrebbero piacerti anche