About the Talk
August 8, 2013 7:45 AM
The Winery SF, San Francisco, CAThe Winery SF, San Francisco, CA
Connascence (noun) is defined as (1) the common birth of two or more at the same time; production of two or more together, (2) That which is born or produced with another, or (3) the act of growing together.
In software, we are told we should reduce the coupling between our modules so that our software is easier to maintain. But what is coupling? Myers (in "Composite/Structured Design") suggests that there are seven levels of coupling, but his nomenclature is developed during the days of Structured programming and does not deal well with objects and classes.
By identifying and classifying how changes in one portion of a software program can effect other places in the program, connascence attempts to define coupling in terms of ways software can changes. In this talk we will examine the different types of connascence and come to understand how coupling effects software development.