Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DISTRIBUCIÓN :
COPIA N° :
ENTREGADO A:
APROBADO
REV ELABORADO POR: FIRMA REVISADO POR : FIRMA FIRMA FECHA
POR:
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:2 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
1. OBJETIVO
Definir estándares de codificación para programación en Java de modo que permitan contar con
código de programación legible y entendible por cualquier programador que desarrolle con
tecnología Java, de tal forma que si el creador de un bloque de código no está presente se puedan
hacer mantenimientos a sus desarrollos iniciales, además de permitir hacer análisis sobre los
mismos para evaluar la posibilidad de posibles adecuaciones.
2. ALCANCE
La presente Instrucción se aplica a todos los desarrollos en Java que se lleven a cabo para la
Corporación Aceros Arequipa sean estos realizados por el personal del Area de Informática o por
los Proveedores Outsoursing.
3. RESPONSABILIDADES
4. DOCUMENTOS
5.1 Outsourcing.- Contrato por el cual un tercero (puede ser una empresa o un profesional),
desarrolla o mantiene una aplicación Informática, para proveernos un software de acuerdo a
las especificaciones particulares que le hemos detallado.
5.2 Componentes de software.- Se refiere a los programas, pantallas, reportes, triggers, funciones,
bibliotecas, etc. que forman parte de un software.
5.3 Poner en producción: Se refiere a la instalación de los componentes de software en la
infraestructura informática de la empresa para disponibilidad de los usuarios finales y con data
oficial. Por ejemplo: El sistema de facturación tiene etapas de diseño, análisis, pruebas, etc., pero
cuando se instala y los usuarios de ventas comienzan a usarlo se dice que la aplicación fue
“puesta en producción”.
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:3 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
5.4 El compilador del lenguaje java de igual manera que lo hace cualquier otro compilador de otro
lenguaje tiene como entrada archivos fuente y obtiene como salida archivos objeto. En el caso
particular del lenguaje java se tiene lo siguiente:
Archivos Descripción
Fuente Los archivos fuente en el lenguaje de programación java tienen la extensión .java.
Objeto Los archivos objeto que genera el compilador java contienen bytes codes en la
terminología de java y tienen la extensión .class
Jar Los archivos jar son un formato que permite el transporte de varias clases que
conformen una biblioteca, aplicación, componente web, u cualquier otro
componente dentro del lenguaje java que abarque tanto archivos .class o
recursos que utilice, tales como archivos de texto, archivos .xml etc. Este formato
es una manera compacta y estandar de portabilidad en cualquier plataforma java.
War Aplicación web java empaquetada o comprimida lista para ser desplegada en
cualquiera de los servidores que brindan servicios para este tipo de aplicaciones
web.
6. INSTRUCCIÓN
Cuando se utilice un nombre para identificar cualquier construcción se debe de definir un nombre
simple o un nombre compuesto con la primera letra en mayúscula de cada parte que conforme el
nombre, y se debe de evitar el uso de abreviaciones a menos de que la misma sea la mayormente
conocida en la jerga de TI. Por ejemplo, un archivo fuente java lo podremos nombrar como:
CuentaAhorro.java
Una excepción a esta regla será cuando se asigne nombres a métodos en los cuales se utilizan
verbos y cuyas primeras letras aparecen en minúsculas y los siguientes elementos del nombre
aparecen según la convención descrita aquí.
Evite nombres largos, de preferencia menor a 15 caracteres y evite usar el guión bajo, ya que éste
esta designado para propósitos del sistema.
Organización de Ficheros
Un fichero consta de secciones que deberían estar separadas por líneas en blanco y un comentario
opcional identificando cada sección.
6.1Convenciones de Nombrado
Las convenciones de nombrado hacen los programas más entendibles haciéndolos más fáciles
de leer. También pueden proporcionar información sobre la función del identificador, por
ejemplo, si es una constante, un paquete o una clase, lo que puede ayudarnos a entender el
código.
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:4 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:5 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
Class
Referencia
Interface
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
Arrays
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:6 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
. bte Byte
. sht Short
. int Int
. lng Long
. chr Char
. flt Float
. dbl Double
. bln Boolean
Referencia
. obj Instancias de clase(Objetos) o interfaces
. str String
. a+{prefijo-tipo-elementos} Arreglos
El ámbito de una variable será de acuerdo a los modificadores de ámbito: public, protected, private, pero
también podemos encontrar variables locales a métodos. Los prefijos a utilizar en estos casos se
describen en la siguiente tabla:
Prefijo Ámbito
Pb Variables de clase o de instancia que sean public
Pt Variables de instancia que sean protected
Pv Variables de instancia que sea private
L Variables locales a métodos
A Argumentos en métodos
Af Argumentos en métodos que sean final
En el caso que el nombre descriptivo sea compuesto , escribir la primera letra de cada palabra interna en
mayúsculas.
Ejemplo: strL_fechaCumpleanios
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:7 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
Todo fichero fuente Java contiene una sóla clase pública o una interface. Cuando hay clases
privadas e interfaces asociados con una clase pública, se pueden poner dentro del mismo fichero
fuente que la clase pública. La clase pública debería ser la primera clase o interface en el fichero.
Los ficheros fuente Java tienen el siguiente orden:
Comentarios de inicio
Sentencias Package e Import
Declaraciones de clase e interface.
6.3Comentarios de Inicio
Todos los ficheros fuente deberían empezar con un comentario. Este comentario inicial tendrá la
siguiente información:
Elemento Descripción
Nombre de clase Proporciona el nombre otorgado a la clase public top-level
Nombre clases asociadas Proporciona el nombre de las clases private o de paquete declaradas en
este mismo archivo fuente. Este campo debe de estar presente en caso de
que el archivo .java contenga mas de una declaración de clase y/o interface
Información de versión Contiene información de versión
Fecha creación Contiene la fecha de creación del archivo java
Autor original Nombre de la persona encargada de la creación inicial del archivo fuente
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:8 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
La primera línea no comentada de la mayoría de los ficheros fuente Java es una sentencia
package. Después de esta pueden seguir sentencias import. Por ejemplo:
package com.aasa.sarch.dao;
import java.util.ArrayList;
import java.util.Collection;
import javax.sql.DataSource;
import java.sql.SQLException;
import com.aasa.sipilsap.dao.accesoDaoException;
import com.aasa.sipilsap.bean.Cliente;
La siguiente tabla describe las partes de una declaración de clase o interface, en el orden en que
deberían aparecer.
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:9 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
6.6Identación
Para lograr la claridad en el código fuente hay que estructurar los archivos fuente con cierta
identación para distinguir las instrucciones así como cualquier otra construcción del lenguaje.
Para esto se establecen las siguientes convenciones:
6.6.1 Longitud de Línea
Evitar líneas mayores de 80 caracteres, ya que no son bien manejadas por muchos terminales y
herramientas.
6.6.2 Ruptura de Líneas
Cuando una expresión no entre en una sóla línea, se debe romper de acuerdo a estos principio
generales:
Romper después de una coma.
someMethod(longExpression1, longExpression2, longExpression3,
longExpression4, longExpression5);
var = someMethod1(longExpression1,
someMethod2(longExpression2,
longExpression3));
// EVITAR
longName1 = longName2 * (longName3 + longName4
- longName5) + 4 * longname6;
Alinear la nueva línea con el principio de la expresión al mismo nivel de la línea anterior.
Si las reglas anteriores conducen a la confusión del código o código que se estrella contra el
margen derecho, sólo identamos 8 espacios.
6.7Comentarios
Los programas Java pueden tener dos tipos de comentarios: los comentarios de implementación
y los comentarios de documentación.
Los comentarios de implementación son un medio para la documentación acerca del código o
para documentar acerca de una particular implementación. Están delimitados por /*...*/, y //
Los comentarios de documentación son únicos de Java y están delimitados por /**...*/. Los
comentarios de documentación se pueden extraer a ficheros HTML usando la herramienta
javadoc.
Los comentarios de implementación son un medio para la documentación acerca del código o
para documentar acerca de una particular implementación.
no necesariamente tener el código fuente a la mano. Este tipo de comentarios describe que hace
la clase y/o método mas no como lo hace.
Para los comentarios se recomienda tener en cuenta lo siguiente:
Evitar encerrar los comentarios en grandes cajas asteriscos y otros caracteres.
Evitar el uso de caracteres especiales dentro de comentarios tales como form-feed y backspace.
6.7.1 Comentarios de Implementación
Comentarios de Bloque (/*…*/): Se usaran para proporcionar descripciones de archivos,
métodos, estructuras de datos y algoritmos.
Estos se pueden usar en el inicio de un archivo, antes de cada método o dentro de métodos.
Los comentarios de bloque dentro de una función o método tienen que identarse al mismo
nivel que el código que ellos describen.
Un comentario de bloque tiene que ser precedido por una línea en blanco.
Un comentario de línea simple tiene que ser precedido por una línea en blanco.
Se usarán para identificar la intención de una comprobación de una condición en una
instrucción if, while, for, etc.
Los comentarios Doc describen clases, interfaces, constructores, métodos, y campos Java. Cada
comentario doc se establece dentro de los delimitadores /**…*/, con un comentario por clase,
interface, o miembro.
6.8Declaraciones
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:12 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
Se debe de tener una declaración por línea y se debe de comentar la utilización que se da a
la declaración dentro del código.
Alinear todos los identificadores de diferentes líneas, utilizando los espacios o tabs
adecuados para ello. Por ejemplo:
int level; //nivel de indentación.
Object currentEntry; //entrada de tabla seleccionada actualmente.
Inicializar las variables locales donde estas son declaradas.
Poner las declaraciones únicamente al inicio de los bloques (un bloque es cualquier código
encerrado por los caracteres de llaves “{” y “}”).
No utilizar declaraciones locales que oculten declaraciones de niveles más alto.
Las instrucciones compuestas(instrucciones encerradas por llaves “{” “}”) tienen que:
Estar indentadas un nivel mas que la instrucción compuesta.
La llave de apertura tiene que aparecer al final de la linea que inicia la instrucción
compuesta; la llave de cerradura tiene que iniciar una nueva línea y tiene que alinearse a
la instrucción compuesta.
Las llaves deben de ser utilizadas en todos los casos incluyendo los casos de
instrucciones compuestas simples, como en los casos de instrucciones if, for, while que
pueden incluir solo una instrucción como instrucción compuesta.
Siempre utilizar llaves en instrucciones if.
Incluir un comentario trailing o de fin de línea indicando la intención de la condición, en
función del significado de la expresión que se utiliza.
Una instrucción return con valor no debe de utilizar paréntesis a menos de que haga más
claro el valor de retorno. Ejemplo:
o return;
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:13 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
o return myDisk.size();
o return (size ? size : defaultSize);
No debe haber ningún espacio entre el nombre y el paréntesis “(“ que inicia la lista de
parámetros.
El corchete abierto “{” aparece en la misma línea que la declaración.
El corchete cerrado “}” empieza una línea por sí mismo, identado a su correspondiente
sentencia de apertura, excepto cuando es una sentencia null en la que el “}” debería
aparecer inmediatamente después del “{“:
class Sample extends Object {
int ivar1;
int ivar2;
Sample(int i, int j) {
ivar1 = i;
ivar2 = j;
}
int emptyMethod() {}
...
}
Los métodos están separados por una línea en blanco.
6.9Sentencias
6.9.1 Sentencias Simples
Cada línea debe contener como máximo una sentencia. Por ejemplo:
argv++; // Correct
argc++; // Correct
argv++; argc--; // EVITAR!
Las sentencias encerradas deben identarse uno o más niveles que la sentencia compuesta.
El corchete de apertura debe estar al final de la línea que empieza la sentencia compuesta; el
corchete de cierre debería empezar una nueva línea y estar identado con el principio de la
sentencia compuesta.
Los corchetes se usan alrededor de todas las sentencias, incluso para sentencias simples,
cuando éstas forman parte de una estructura de control como una sentencia if-else o for. Esto
hace más fácil la adición de sentencias sin introducir errores debido al olvido de los corchetes.
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:14 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
Toda sentencia switch debería incluir un valor default. El break en el case por defecto es
redundante, pero evita un error de caída si añadimos después otro case.
try {
statements;
} catch (ExceptionClass e) {
statements;
} finally {
statements;
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:16 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:17 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
8. MEDIO AMBIENTE
No aplicable.
9. OBSERVACIONES
No aplicable.
10. ANEXOS
10.1 Formato para el control de cambios en la documentación
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección
CODIGO: CIGI005GI
Instrucción de Estándares REVISIÓN: 3
PAGINA:18 de 18
de Codificación para Programación en Java
APROBADO: R.C.G.
FECHA: 2012/06
ANEXO 10.1
CÓDIGO : CIGI005GI
REGISTRO PARA CONTROL DE LOS REVISIÓN :1
CAMBIOS EN LA DOCUMENTACIÓN APROBADO : RCG
FECHA : 2011/08
PÁGINA : 18 DE 18
TIPO
DE NUEVA FECHA AGREG OMIT MODIFIC
CAMBI REVISIÓ NUEVA OBSERVACIONES A E A
O N REVISIÓN Descripción de la Naturaleza del Cambio
Este Documento es vigente solo en medios Electrónicos / Propiedad de Corporación Aceros Arequipa S.A: Prohibida su
reproducción total o parcial sin autorización del Representante de la Dirección