En ingeniería de software , la propiedad del código es un término que se utiliza para describir el control que tiene un desarrollador de software individual o un equipo de desarrollo sobre las modificaciones del código fuente de un módulo o un producto . [ 1 ]
Definiciones
Aunque el término es muy popular, no existe una definición universalmente aceptada del mismo. Koana et al., en su revisión bibliográfica de 2024, encontraron 28 definiciones diferentes, [ 2 ] y las clasificaron de la siguiente manera:
- La propiedad psicológica es un sentimiento de propiedad y orgullo por parte del desarrollador en el elemento particular del proyecto; [ 3 ]
- La propiedad corporal es un conjunto de reglas formales o informales que definen la responsabilidad de una pieza de software en particular. Las reglas dependen del enfoque de desarrollo adoptado por el equipo, pero generalmente se pueden dividir según las siguientes líneas: "¿qué se posee?" / "¿quién lo posee?" / "¿cuál es el grado de control?": [ 3 ]
- Si bien la respuesta a "¿qué?" suele ser alguna parte del código fuente, el concepto de propiedad también se ha aplicado a otros artefactos del desarrollo de software tan diversos como un proyecto completo o un solo error de software ; [ 4 ]
- El propietario ("¿quién?") podría ser un desarrollador individual o un grupo que podría incluir autores del código, revisores y gerentes. [ 5 ] Los dos extremos están representados por una propiedad dedicada con un solo desarrollador responsable de cualquier parte particular del código y una propiedad colectiva del código , donde cada miembro del equipo posee todo el código; [ 5 ]
- El grado de control por parte del propietario puede variar desde una revisión obligatoria del código hasta la responsabilidad de las pruebas o la implementación completa.
Paternidad literaria
Algunos investigadores también utilizan el término para describir la autoría del software (identificar quién escribió una línea de software en particular). Koana et al. afirman que este es un significado diferente, aunque relacionado, ya que el propietario del código podría no ser el autor original de la pieza de software. [ 3 ]
Influencia en la calidad
Generalmente se acepta que la falta de una clara propiedad del código (normalmente cuando muchos desarrolladores aplican libremente pequeños cambios a un fragmento de código compartido) provoca la introducción de errores. Al mismo tiempo, sin un propietario del código, se puede perder el conocimiento sobre un artefacto. Esto se confirma en estudios a gran escala, por ejemplo, los realizados con Windows 7 y Windows Vista . [ 6 ]
Propietarios del código en el control de versiones
Los sistemas modernos de control de versiones permiten la designación explícita de propietarios de código para archivos o directorios específicos (véase la función CODEOWNERS de GitHub ). Normalmente, el propietario del código recibe notificaciones de todos los cambios realizados en el código del que es propietario o debe aprobar cada cambio. [ 7 ]
Referencias
- ↑ Metiu 2006 , pág. 424.
- ↑ Koana et al. 2024 , pág. 2.
- ^ Koana y col. 2024 , pág. 8.
- ^ Koana y col. 2024 , págs. 9-11.
- ^ Koana y col. 2024 , pág. 11.
- ↑ Greiler, Herzig y Czerwonka 2015 , pág. 2.
- ↑ "Acerca de los propietarios del código" . GitHub .
Fuentes
- Greiler, Michaela; Herzig, Kim; Czerwonka, Jacek (2015). «Propiedad del código y calidad del software: un estudio de replicación» (PDF) . 2015 IEEE/ACM 12.ª Conferencia de Trabajo sobre Minería de Repositorios de Software . IEEE. pp. 2–12 . doi : 10.1109/msr.2015.8 . ISBN 978-0-7695-5594-2.
- Koana, Umme Ayman; Le, Quang Hy; Rahman, Shadikur; Carlson, Chris; Chew, Francis; Nayebi, Maleknaz (27 de septiembre de 2024). "Análisis de los modelos de propiedad en equipos de software". Ingeniería de Software Empírica . 29 (6). Springer Science and Business Media LLC. arXiv : 2405.15665 . doi : 10.1007/s10664-024-10538-5 . ISSN 1382-3256 .
- Metiu, Anca (2006). "Owning the Code: Status Closure in Distributed Groups" . Organization Science . 17 (4). INFORMS: 418–435 . doi : 10.1287/orsc.1060.0195 . ISSN 1047-7039 . JSTOR 25146047. Recuperado el 4 de noviembre de 2024 .
- Terminología de ingeniería de software
- Esbozos de ingeniería de software