Connascence (/kɒˈnəsəns/; pronounced kuh-NAS-uhns) is a technical term typically used in computing to describe a relationship between two or more software components that must work together to function properly. The word is of Latin origin and comes from the word "con-," meaning together, and "nascere," meaning to be born or to arise. Due to its technical nature, the spelling and pronunciation of connascence can be challenging for those who are not familiar with the term.
Connascence is a concept in computer programming that refers to the level of interdependence or correlation between different modules or components within a system. It describes the extent to which changes in one module can affect or necessitate changes in another module. The term "connascence" comes from Latin, meaning "born together" or "co-nascence."
In software development, connascence is a measure of how closely two or more components or modules are coupled together. It signifies the degree to which a change in one module requires modifications in other modules. Higher levels of connascence indicate stronger dependencies between modules, while lower levels indicate looser coupling.
There are different types or levels of connascence. Specifically, there are seven types defined by Meilir Page-Jones: connascence of name, connascence of meaning, connascence of position, connascence of algorithm, connascence of timing, connascence of value, and connascence of identity.
By understanding and quantifying connascence, developers can make informed decisions about how to organize and structure their code. Reducing connascence can lead to more modular, maintainable, and flexible software. Looser coupling can also improve testability and enable easier modifications in the future.
Overall, connascence is an important concept in software engineering, highlighting the interdependencies and relationships between modules, and guiding developers towards creating robust, adaptable, and efficient systems.
A common birth or origin; act of growing together.
Etymological and pronouncing dictionary of the English language. By Stormonth, James, Phelp, P. H. Published 1874.
The word "Connascence" is derived from the Latin word "connascentia", which means "born together" or "co-nascent". It is a compound word formed by combining the prefix "con-" (meaning "together" or "with") and the verb "nasco" (meaning "I am born"). In English, the term "Connascence" is commonly used in computer programming to describe a relationship between software components that depend on each other's interfaces. It signifies a concept of interdependence or coexistence, reflecting its Latin roots.