Este documento describe los beneficios de realizar una auditoría de código. Explica que el control de versiones permite gestionar los cambios realizados en un producto a lo largo de su desarrollo. También describe los programas de control de versiones y el método X.Y.Z para numerar versiones. Finalmente, destaca que una auditoría de código ayuda a identificar problemas antes de pasar una aplicación a producción, reduciendo costos operativos y de downtime.
2. Contenido
• Control de versiones
• Programas para control de versiones
• ¿Para qué es el control de cambios en el
código?
• Control de versiones con el método X.Y.Z
• ¿Versiones Beta, Alpha, RC?
• Beneficios de una Auditoria de Código
• Proceso de pase a producción
3. Control de versiones
• Se llama control de versiones a la gestión de los diversos cambios
que se realizan sobre los elementos de algún producto o una
configuración del mismo. Una versión, revisión o edición de un
producto, es el estado en el que se encuentra dicho producto en un
momento dado de su desarrollo o modificación. Aunque un sistema
de control de versiones puede realizarse de forma manual, es muy
aconsejable disponer de herramientas que faciliten esta gestión
dando lugar a los llamados sistemas de control de versiones o SVC
(del inglés System Version Control).
• El control de versiones se realiza principalmente en la industria
informática para controlar las distintas versiones del código
fuente dando lugar a la sistemas de control de código fuente o
SCM (siglas del inglés Source Code Management). Sin embargo, los
mismos conceptos son aplicables a otros ámbitos como
documentos, imágenes, sitios web, etc.
4. Programas para control de
versiones
• Los programas para control de versiones son un grupo de
aplicaciones originalmente ideadas para gestionar ágilmente los
cambios en el código fuente de los programas y poder revertirlos,
cuyo ámbito ha sido ampliado pasando del concepto Control de
versiones al de Software Configuration Management, en el que se
engloban todas las actividades que pueden realizarse por un equipo
sobre un gran proyecto software u otra actividad que genere
ficheros digitales (e.g. documentos, ofertas, dibujos, esquemas...
• Estos sistemas facilitan la administración de las distintas versiones
de cada producto desarrollado, así como las posibles
especializaciones realizadas (por ejemplo, para algún cliente
específico). Ejemplos de este tipo de herramientas son entre
otros: CVS, Subversion, SourceSafe, ClearCase, Darcs, Bazaar , Plasti
c SCM, Git, Mercurial, Perforce.
5. ¿Para qué es el control de
cambios en el código?
• Cuando se modifica un archivo pueden pasar
dos cosas, mantener un historial de cambios o
dejarlo sin una memoria de los cambios
realizados, siendo esto último un dolor de
cabeza cuando arruinamos aún más el archivo.
6. ¿Para qué es el control de
cambios en el código?
• Imaginemos que están haciendo un sistema en el que
están involucradas muchas personas, cada uno
trabajando en áreas diferentes, pero que de alguna u
otra manera se relacionan entre sí. El sistema al final
perdería contexto y no sabrían que significan las líneas
de código que ustedes no pusieron.
La buena noticia es que para casos como este ya hay
software que se encargan de mantener un control de
versiones de manera automática, haciendo la vida
más sencilla de todos los involucrados en el proyecto.
7. Control de versiones con el
método X.Y.Z
• El método más común para numerar las
versiones de un sistema es basándose en dos
o tres cifras decimales, dependiendo de la
importancia de los cambios es el número que
se debe cambiar. La primer cifra siempre se
cambia cuando se hizo una modificación
crítica o muy importante, siendo la segunda
cifra de menor importancia
8. Control de versiones con el
método X.Y.Z
0.Y.Z
• Se debe iniciar desde 0.Y.Z, con esto estamos
diciendo que el documento no está listo aún o
que no cumple con los requerimientos
mínimos.
Cada cambio en esta cifra denota una
reescritura o la incompatibilidad con versiones
anteriores.
9. Control de versiones con el
método X.Y.Z
X.0.Z
• La segunda cifra X.0.Z se cambia cuando hay
modificaciones en el contenido o la
funcionalidad del documento, pero no lo
suficientemente importantes como para decir
que ya no es el mismo documento.
Cuando se hace un cambio mayor (en la
primer cifra), el segundo número se reinicia
a0
10. Control de versiones con el
método X.Y.Z
X.Y.0
• La tercer cifra se cambia cuando se hacen
correcciones al documento pero no se ha
añadido ni eliminado nada relevante.
Si se hace un cambio en la segunda cifra se
debe reiniciar el número de la tercera a 0
11. ¿Versiones Beta, Alpha, RC?
• Son versiones especiales, se usan previo a un cambio de versión
significativa. Por ejemplo, si tenemos un sistema en la versión 1.9.0,
pero queremos hacer cambios para probarlos antes de soltar al
siguiente versión mayor, podemos poner el sistema como 2.0a (2.0
alpha) siendo la primer versión previa.
• No significa que sea ya una versión completa, nada más es una
previa, tomen eso mucho en cuenta siempre. Después de pruebas y
modificaciones podemos pasar a la versión 2.0b (2.0 Beta), y se
siguen haciendo pruebas y correcciones.
• El RC o Release Candidate se usa para no utilizar todas las letras
griegas en nuestras versiones. Cuando ya tenemos una versión más
completa, ya casi terminada y que no puede ser considerada como
Beta (porque además ya todos odiamos lo que sea Beta), se usa RC.
12. Beneficios de una Auditoria
de Código
• ¿Inversión o Gasto?
• COSTO APLICACION
• COSTO OPERACION
+ PERDIDAS MERCADOTECNIA (MARCA, ETC)
+ VENTAS PERDIDAS (En caso de ventas por
Internet o sistemas críticos abajo)
____________________________________
= COSTO DOWNTIME
13. Beneficios de una Auditoria
de Código
• El pase a producción es la gestión de revisión y pruebas por las que tiene
que pasar los aplicativos antes de ponerlos en línea o dicho de otra
manera en producción.
• Para dicho proceso, se necesitan dos ambientes que simulen el ambiente
actual de trabajo.
• Ambiente de desarrollo: Este ambiente es similar al que se encuentra en
producción, pero es de uso exclusivo de desarrolladores, en el cual como
su nombre dice, se desarrolla nuevas implementaciones, modificaciones
de aplicativos, es importante saber que estos son los únicos fuentes o
aplicativos que los desarrolladores pueden modificar.
• Ambiente de prueba: Este ambiente también es similar al que se
encuentra en producción, pero es de uso exclusivo de los usuarios líderes,
que se encargaran de probar las nuevas implementaciones,
modificaciones de aplicativos.
• Ambiente de producción: Este ambiente se lo conoce también como
ambiente en línea, son los aplicativos que están corriendo y generando la
información real y al vivo de la empresa.