Propiedad Colectiva del Código y Estándares de Codificación. Carlos R. Becerra Castro. Ing. Civil Informática UTFSM.
Introducción. n. En este trabajo se presentan específicamente dos prácticas de XP: Collective Code Ownership y Coding Standard. Se presenta el esqueleto que rige el desarrollo de software libre, y como estas dos prácticas de XP ayudan en el desempeño o de este.
Metodologías Ágiles. El desarrollo de software es una actividad caótica, frecuentemente caracterizada por la frase "codifica y corrige". El software se escribe con un plan subyacente mínimo, m y el diseño del sistema se adapta con muchas decisiones a corto plazo. Las metodologías imponen un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo más m s predecible y eficiente. metodologías ágiles : Estos nuevos métodos m buscan un justo medio entre ningún n proceso y demasiados procesos, proporcionando simplemente suficientes procesos para que el esfuerzo valga la pena.
Extreme Programming. XP es un método m ágil, para equipos de desarrollo de software de tamaño o pequeño o a mediano, que se enfrentan a requisitos vagos y que cambian rápidamente r. La innovación n de XP consiste en: Agrupar todas las prácticas Asegurarse de que esas prácticas se llevan a cabo Asegurarse de que las prácticas se soportan entre si en el mayor grado posible
Variables y Valores de XP. XP define cuatro variables para cualquier proyecto software: costo, o, tiempo, calidad y alcance. XP se basa en 4 valores fundamentales: Comunicación, n, Sencillez, Realimentación n y Valentía. a.
Propiedad Colectiva del Código. C En XP todos tienen responsabilidad sobre todo el sistema. El código c creado es propiedad del equipo completo, no de un desarrollador especifico. Diferente a que no excita propiedad del código. c Es necesario que los desarrolladores escriban código c dentro de una arquitectura, estilo y propósito común n que es la alta calidad. Promueve a que el equipo entero trabaje mucho mas junto, buscado producir diseños, código c y casos de test de alta calidad.
Ventajas de Propiedad Colectiva del Código. Ayuda a la integración, n, confiabilidad y creatividad en los equipos de trabajo. Requiere y se esfuerza por un estilo y filosofía consistente para todo el sistema. Maneja fácilmente f el crecimiento y contracción n de los equipos. Rápidamente responde a cambios o incrementos en los requerimientos. Tiende a prevenir código c complejo en la primera parte de construcción n del sistema.
Desventajas de Propiedad Colectiva del Código. C La responsabilidad de las tareas y roles puede ser difícil de establecer. Hay posibilidades para el modelo Browniano en el código, c donde se hacen repetidos cambios de acuerdo a diferentes estilos personales de programar. El sistema podría a perder una arquitectura común, y su propósito inicial podría a ser difícil de alcanzar.
Estándares de Codificación. No se puede permitir que cada miembro del equipo utilice una nomenclatura diferente en el código c que desarrolla. El propósito fundamental de los estándares de codificación n es que el software tenga una arquitectura y estilo consistente, independiente del autor. Con esto resulta un software que es fácil f de entender y mantener. El problema mayor que se soluciona con estándares de codificación n es que cuando se trata de entender código escrito por otros programadores es muy difícil de entender por el formato y estilo utilizados por este.
Tipos de estándares de codificación. Mandatarios: Estos estándares deben ser utilizados por todos los miembros de los equipos. Pautas: Estas son consideradas las mejores prácticas y a menudo describen una aproximación n al desarrollo. Recomendaciones: Estas reglas son consideradas buenas prácticas y deberían ser usadas todas las veces, excepto cuando exista una justificación n valida para no hacerlo.
Aspectos a Definir en los Estándares de codificación. Formato: incluye el uso de espacios en blanco, identación, n, y largo de las declaraciones en el código. c Estructura de código: c descritas en los lineamientos del proyecto, además s se deben describir las clases, funciones y otras fuentes de archivos. Convenio de nombres: Especifica como los desarrolladores nombran sus métodos, m clases, variables, eventos y parámetros. Comentarios: Son una descripción n que explica la lógica l del código (código de calidad debería a ser auto documentado por defecto). Comentarios de calidad, produce código c de calidad que es mas fácil f de mantener y entender.
Enfoque de calidad y productividad. Calidad: Consiguiendo código c con un mejor diseño o se evita la futura aparición n de problemas durante el desarrollo, consiguiendo agilizar el proceso. Por otro lado estas dos prácticas son de vital importancia en la mantenibilidad, dado que en XP la única forma de comunicación n entre los desarrolladores es el código. c Otro punto importante en el que ayudan estas dos practicas analizadas en este trabajo es en la remoción n e defectos. La flexibilidad, es decir, el esfuerzo requerido para modificar un programa operativo, se ve soportada de mejor forma. Mejora de la reusabilidad, es decir, el grado en que un programa (o partes de un programa) se puede reusar en otras aplicaciones.
Enfoque de calidad y productividad. Productividad: Los principales factores de la productividad, en que estas prácticas tienen una alta repercusión n en el proceso de desarrollo de software son: tiempo y recursos. Permiten una realización n fácil f y expedita de las correcciones al código c para que éste mejore o para que una nueva integración n sea exitosa. Las revisiones son mucho más m s expeditas, debido a que parece que todo el código c construido está hecho por una sola persona, consiguiendo con esto mejorar la productividad.
Software Libre. En realidad, la definición n de software libre es un concepto legalista, ya que la única diferencia entre el software propietario y el software libre es precisamente su licencia. Además s que es software de código c abierto.
Visión n de calidad y Productividad en el Software Libre. De debe dar primero una definición n de calidad y productividad para el software libre. Se puede dividir en dos partes: La primera presenta una visión n funcional de la calidad, donde para que un software sea de calidad debe hacer lo que el usuario espera que q este haga y en la forma que espera que lo haga. La segunda parte de esta definición n representa la visión n de los desarrolladores y se alcanza cumpliendo las metas especificadas por los desarrolladores, esto se ve reflejado en como debo hacer las cosas para que sean de calidad y aumenten la productividad al ponerlo en un estilo y estructura común,lo cual esta definido en los estándares de codificación, por otra parte la propiedad colectiva del código c permite utilizar partes de código c ya realizadas por otros desarrolladores.
Visión n de calidad y Productividad en el Software Libre. La prácticas que mas repercute en el desarrollo de software libre es la propiedad colectiva del código. c Para facilitar el trabajo conjunto, se siguen estándares de codificación n que permiten una lectura rápida r y simple del código, a la vez que independiza de su autor. La mantenibilidad, es un factor relevante, ya que en software libre el código c de calidad es muy impórtate, porque al ser un sistema abierto este será leído y modificado por muchos desarrolladores, lo cual se ve facilitado por la existencia de estándares de codificación n y propiedad colectiva de código. c La mantenibilidad se alcanza con código c fuente auto documentado y de diseño o consistente, lo que se logra con estas dos practicas de XP.
Conclusiones. Las practicas mencionadas ayudan a mejorara la productividad y calidad c debido especialmente al contexto común n que dan a los programadores y mantenedores del software, lo que hace mas fácil f su comprensión, n, modificación n y reutilización. Estas dos iniciativas tienen como objetivo principal transformar el modelo de desarrollo que actualmente está centrado en demasía a en encontrar y corregir errores a una nueva forma de desarrollar en la que el dised iseño iterativo y la codificación n tomen mayor relevancia. En definitiva, se ha podido ver cómo c la programación n extrema puede aportar nuevas formas para optimizar el modelo de desarrollo de software libre, ayudando a aumentar la calidad y productividad del proceso o y producto. El tiempo dirá si estas prácticas son asumidas por los diferentes proyectos de software libre y, en su caso, si realmente harán n gozar de las ventajas que se han presentado.