Connascencia


Connascencia ( / k ə n s ən s / ) es una calidad del software métrica inventada por Meilir Page-Jones para permitir que el razonamiento sobre la complejidad causada por relaciones de dependencia en el diseño orientado a objetos muy parecido acoplamiento hizo por el diseño estructurado . En ingeniería de software , dos componentesson connascentes si un cambio en uno requiere que se modifique el otro para mantener la corrección general del sistema. Además de permitir la categorización de las relaciones de dependencia, connascence también proporciona un sistema para comparar diferentes tipos de dependencia. Estas comparaciones entre diseños potenciales a menudo pueden indicar formas de mejorar la calidad del software.

Se considera que una forma de connascencia es más fuerte si es más probable que requiera cambios compensatorios en elementos connascentes. Cuanto más fuerte es la forma de connascencia, más difícil y costoso es cambiar los elementos de la relación.

La aceptabilidad de la connascencia está relacionada con el grado de su aparición. La connascencia podría ser aceptable en un grado limitado pero inaceptable en gran medida. Por ejemplo, una función o método que toma dos argumentos generalmente se considera aceptable. Sin embargo, generalmente es inaceptable que las funciones o los métodos tomen diez argumentos. Los elementos con un alto grado de connascencia incurren en una mayor dificultad y costo de cambio que los elementos que tienen un grado más bajo.

La localidad importa al analizar la connascencia. Las formas más fuertes de connascencia son aceptables si los elementos involucrados están estrechamente relacionados. Por ejemplo, muchos lenguajes utilizan argumentos posicionales al llamar a funciones o métodos. Esta connascencia de posición es aceptable debido a la cercanía entre la persona que llama y la persona que llama. Pasar argumentos a un servicio web de manera posicional es inaceptable debido a la relativa falta de relación de las partes. La misma fuerza y ​​grado de connascencia tendrá una mayor dificultad y costo de cambio, cuanto más distantes estén los elementos involucrados.

La connascencia del nombre es cuando varios componentes deben estar de acuerdo con el nombre de una entidad. Los nombres de los métodos son un ejemplo de esta forma de connascencia: si el nombre de un método cambia, las personas que llaman a ese método deben cambiarse para usar el nuevo nombre.

La connascencia de tipo es cuando múltiples componentes deben estar de acuerdo con el tipo de entidad. En lenguajes de tipado estático, el tipo de argumentos del método es un ejemplo de esta forma de connascencia. Si un método cambia el tipo de su argumento de un número entero a una cadena, los llamadores de ese método deben cambiarse para pasar un argumento diferente al anterior.