Propiedad Colectiva del Código y Estándares de Codificación.



Documentos relacionados
Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

DESARROLLO DE SOFTWARE DEFINICIÓN GENERAL DEL PROCESO GABY LORENA GUERRERO LEYDI ROCIO ERAZO PABLO FELIPE MIRANDA WALTER ALEXIS ANTE

Figura 4.1 Clasificación de los lenguajes de bases de datos

Figure 16-1: Phase H: Architecture Change Management

Diferencias entre nivel 2 y nivel 3 y una estrategia de implantación

Juan Carlos Sanchez Galvis

Conceptos básicos de Ingeniería de Software

Inter American Accreditation Cooperation. Grupo de prácticas de auditoría de acreditación Directriz sobre:

5.1. Organizar los roles

ARCHIVOS DE SONIDO, COMUNICACIÓN ORAL Y AUTOEVALUACIÓN Elisa Bernáldez 1 Halden vgs

Capítulo 1. Introducción

Políticas de Derechos de autor

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

Norma ISO 9001:2015. Cuáles son los cambios presentados en la actualización de la Norma?

Interpretación CINIIF 12 Acuerdos de Concesión de Servicios

Seguimiento y evaluación

Modelos y Bases de Datos

El adjetivo alternativo, en sí, no implica calidad alguna, ya que sólo indica un camino diferente, una posibilidad diferente.

COMPETENCIAS BÁSICAS: DIEZ CLAVES

Curso: Arquitectura Empresarial basado en TOGAF

Unidad VI: Supervisión y Revisión del proyecto

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A)

Autor: Igor Acosta M. SINCOR C.A. VENEZUELA. IX Congreso de Confiabilidad Noviembre 2007

Los polinomios. Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x

ÍNDICE 2. DIRECCIONES DE INTERÉS SOBRE TELETRABAJO Y DISCAPACIDAD BIBLIOGRAFÍA...

LiLa Portal Guía para profesores

Los números racionales

ANÁLISIS Y GESTIÓN DEL DESARROLLO DE SOFTWARE TEMA 5: LA PLANIFICACIÓN DEL PRODUCTO

Trabajo lean (1): A que podemos llamar trabajo lean?

PEEPER PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERIA CARRERA DE INGENIERIA DE SISTEMAS. Mayo Versión 2.1 OSCAR IVAN LÓPEZ PULIDO

Curso Auditor Interno Calidad

GUIA SOBRE LOS REQUISITOS DE LA DOCUMENTACION DE ISO 9000:2000

CMM - Capability Maturity Model. Estructura de CMM... Componentes de CMM. Estructura de CMM

CAPITULO VI ESTRATEGIAS DE OUTSOURCING

Rúbricas para Actividades de Aprendizaje para el siglo XXI. Colaboración

Plan de estudios ISTQB: Nivel Fundamentos

Cómo Desarrollar un plan Estratégico

Análisis y gestión de riesgo

XII JUNTA GENERAL PROYECTO EDUCATIVO. Humanidad Imparcialidad Neutralidad Independencia Voluntariado Unidad Universalidad

Manual Usuario Wordpress. Índice

INSTRUCTIVO DEL COMANDO MAKE

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

ENSEÑANZA DE IDIOMAS PROFESORES. PROFESORES DE ESCUELAS OFICIALES DE IDIOMAS DE ESPAÑOL Preparación de la prueba práctica Para el examen de Oposición

ZCARTAS: Iniciación a la suma y resta de números enteros Introducción Actividad 1: Escenario con cartas numeradas desde -2 hasta 2...

PROPIEDAD Y DERECHOS DE EXPLOTACIÓN DE LAS CREACIONES PUBLICITARIAS

Servicio de administración de pautas publicitarias en Internet

CAPITULO INTRODUCCION

Operación 8 Claves para la ISO

OBJETIVOS GENERALES DEL AUDITOR INDEPENDIENTE Y CONDUCCIÓN DE UNA AUDITORÍA, DE ACUERDO CON LAS NORMAS INTERNACIONALES DE AUDITORÍA

DIRECTRIZ DE ICC/ESOMAR SOBRE MANTENIMIENTO DE LAS DISTINCIONES ENTRE LA INVESTIGACIÓN DE MERCADO Y EL MARKETING DIRECTO

DESARROLLO COMUNITARIO Y EDUCACIÓN

XP- EXTREME PROGRAMMING

2.1 Planificación del Alcance

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

REUNIONES DE ANÁLISIS EN CASOS DE MUERTE POR EVENTOS DE INTERÉS EN SALUD PÚBLICA

CMMI (Capability Maturity Model Integrated)

Ingeniería en tecnologías de la información y comunicación Administración de proyectos de TI I

Normalización de bases de datos

Capítulo 11. Conclusiones y trabajo futuro

Sistema de Mensajería Empresarial para generación Masiva de DTE

Adaptación del producto

ENSAYOS CLÍNICOS. Guía para padres y tutores

Caso práctico de Cuadro de Mando con Tablas Dinámicas

NORMA ISO DE RIESGOS CORPORATIVOS

GERENCIA DE INTEGRACIÓN

Aprendizaje cooperativo (Del libro Aprendizaje inteligente Montserrat del Pozo. Oct 2009)

El Futuro de la Computación en la Industria de Generación Eléctrica

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

CAPITULO 2 VALORES Y POLITICAS DE LA EMPRESA

LA IMPORTANCIA DE CONTROLAR LAS PÉRDIDAS DE ENERGÍA EN LAS EMPRESAS DISTRIBUIDORAS

En este capítulo se describe las herramientas, así como los procesos involucrados en el análisis y desarrollo de sistemas de información, por otro

Es una persona que ayudará a que los derechos de las personas con discapacidad se hagan realidad

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

GUÍAS. Módulo de Diseño de software SABER PRO

La perspectiva de género en la sistematización de experiencias

Unidad II. ERP s Definición de ERP s.

ENSEÑA A TU HIJO HABILIDADES SOCIALES Y A SOLUCIONAR SUS PROBLEMAS

Qué es Scrum? Basado en el texto Explicando Scrum a mi abuela de Jorge Serrano - MVP Visual Developer - Visual Basic

Diseño de la capacitación

Demasiados deberes en casa?

Control y Gestión de Notas de Gasto Documentación Técnico Comercial

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

L3 ORGANIZACIÓN DE ARCHIVOS ELECTRÓNICOS

DESARROLLO AGIL ING. MA. MARGARITA LABASTIDA ROLDÁN

VISIÓN, MISIÓN, VALORES

352<(&72$/)$781,1*±$0(5,&$/$7,1$ &$55(5$6%$6$'$6(1&203(7(1&,$6,17(*5$&,21'(2&+2$5($618(9$6

Introducción. Definición de los presupuestos

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

EDICIÓN Y FORMATO (II)

Por qué es importante la planificación?

Gestión de Riesgos - Introducción

ECONOMÍA SOCIAL SOLIDARIA

Estrategias de producto y precio

PLAN DE MÉTRICAS EN OCHO PASOS

Ventajas del software del SIGOB para las instituciones

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

6 Anexos: 6.1 Definición de Rup:

IAP ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

Las 5 S herramientas básicas de mejora de la calidad de vida

Transcripción:

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.