Definition
The term connascence derives from Latin: co + nascence.
"co" means together and "nascence" derives from nascentem, which means arising young, immature. It's the present participle of nasci, to be born, hence the definition:
Note
The birth and growth of two or more things at the same time.
In software development, we can say that two or more elements (fields, methods, classes, parameters, variables, but also build steps, procedures of any kind, and so on) are connascent if a change in one element would also require a change in the others in order for the system to keep working correctly.
Connascence generalizes the ideas of cohesion and coupling, combining them in a more exhaustive classification using a proper taxonomy. In 2009, Jim Weirich, in a great talk at a conference, defined connascence as The Grand Unified Theory of Software Development because of its wide applicability in the analysis and improvement of information...