Norma de calidad de software web
© 2004 Eniac, S.A. de C.V.
Última revisión: 18/Ago/2004
Introducción
La norma de calidad de software web Eniac™ ha sido diseñada para facilitar el mantenimiento y operabilidad de los sistemas web.
Los programadores de software de ENIAC, S.A. de C.V. se comprometen a seguir para todos los desarrollos web, los lineamientos mencionados a continuación.
Contenido
- AsesorÃa en seguridad
-
- Documentación
- MetodologÃa
- Seguridad
- Arquitectura
- Control de versiones
- Refactoring
- Copias paralelas
- Respaldos
- Sobre esta norma de calidad
AsesorÃa en seguridad
- Previamente al desarrollo, se deberá investigar las vulnerabilidades de seguridad para la plataforma en la cual se desarrollará el software.
- Se deberá notificar al cliente de la lista de huecos de seguridad de su plataforma, o de su sistema actual si es que lo hay.
- De ser necesario, se sugerirá la plataforma más segura en la cual se haya desarrollado previamente.
- Se deberá alertar al cliente de los posibles riesgos de seguridad que se puedan presentar como consecuencia de la elección de determinada plataforma o herramienta.
Notas:
- Eniac, SA de CV no se hace responsable por pérdidas financieras causadas debido a alguna intrusión informática de cualquier tipo.
- Sin embargo, el cliente está invitado a contratar personal externo para comprobar por sà mismo la seguridad de nuestros sistemas.
Código fuente
- Documentación: Se deberá documentar el código, tanto en formato imprimible (p.e. Microsoft Word™) como dentro del mismo código.
- MetodologÃa de Programación: Se deberá simplificar el código en la mayor medida posible, utilizando las siguientes filosofias de programación: Utilización de Plantillas, Programación Orientada a Objetos, y programación modular.
- Seguridad: Se deberán tomar las siguientes medidas de seguridad
en todo el código fuente:
- Validación de entrada: Verificar en los programas, todos los datos que provengan de HTTP o de archivos subidos por el usuario.
- Manejo de sesiones obligatorio: Incluir en el inicio de cada módulo una verificación de que el usuario haya ingresado al sistema.
- Verificación de privilegios: Incluir en el inicio de cada módulo una verificación de privilegios del usuario.
- Arquitectura multicapa: Se deberá separar el código en las siguientes categorÃas: presentación (p.e. HTML, CSS, javascript), lógica de aplicación (módulos, submódulos) y acceso a datos (librerÃas SQL, acceso a archivos). Cada categorÃa deberá estar en distintas secciones de código, y si es posible, en distintos subdirectorios.
- Control de versiones: Se deberá tener un control
de versiones para cada archivo fuente a utilizar, indicando para cada uno los
cambios hechos a cada función o lÃnea de código, y guardando todas las versiones
anteriores de los archivos.
(Nota: Se recomienda utilizar CVS) - Refactoring: Dependiendo del tiempo disponible, el programador buscará métodos de optimizar y reorganizar el código existente, siempre teniendo como prioridad la compatibilidad del sistema.
- Copias paralelas: Para cada sistema en desarrollo, mantener un directorio separado para realizar modificaciones y optimizaciones.
- Respaldos: Respaldar frecuentemente el código. Después de cada avance importante en el código, realizar una copia por separado.
Código web
Compatibilidad: Salvo cuando las circunstancias lo requieran, se deberá producir código compatible con los siguientes estándares web:
- XHTML 1.0
- CSS nivel 2
Se procurará validar cada página para asegurarse que cumple con los estándares mencionados, y verificar que pueda ser vista en al menos dos navegadores distintos (Internet Explorer, Mozilla/Netscape).
- Organización: Evitar en su mayorÃa el uso de código de presentación (p.e. tags "font") dentro del texto, y reemplazarlo por hojas de estilo en archivos separados.
Usabilidad: Adicionalmente, se deberá verificar manualmente la usabilidad de los siguientes elementos de diseño:
- Formas: Se proveerá validación instantánea (javascript) y mensajes amigables. En la medida de lo posible, el orden de tabulación de las entradas deberá corresponder con la localización visible de las mismas.
- Texto: Se asegurará que se utilicen medidas relativas (no absolutas)
para que todo texto que aparezca en la página pueda cambiar de tamaño según el
navegador.
Los menús laterales pueden ser la excepción, siempre y cuando sean legibles a una resolución de 1024 x 768 en un monitor de 15" o menor. - Tablas: Las páginas diseñadas automáticamente (Dreamweaver, Frontpage, Fireworks) deberán ser post-procesadas manualmente para eliminar el código innecesario.
- Código Javascript: Utilizar en la menor cantidad posible las extensiones propietarias de algún navegador, salvo cuando sea estrictamente requerido para el proyecto.
- Impresión: Proveer, cuando sea solicitado, ligas a versiones
imprimibles de las páginas. Modificar las hojas de estilo para que se pueda
imprimir una página web sin gráficos ni elementos decorativos.
Asegurarse que los colores utilizados en la impresión sean legibles y tengan buen contraste.
Dependiendo de los requerimientos del cliente, se verificará que el sitio cumpla con las normas A, AA, o AAA de las Guias de Accesibilidad Web (WCAG).
Acerca de esta norma de calidad de desarrollos web
La "norma de calidad de software web Eniac" es propiedad © 2004
Eniac, S.A. de C.V.
Su reproducción parcial o total requerirá de permiso por escrito.
El contenido de esta norma está sujeto a cambios sin previo aviso.