title: Am I right about the meaning of coupling?
body: <p>I'm gonna try to write some ideas ideas about software coupling and cohesion, but I'm not sure they mean anything practical at all. So if you want to explain your answers with examples please use simple algebraic expressions <strong>imagining that algebra is a sequential programming language</strong> so we all can understand what you´re talking about...</p>
  <p><a href="https://en.wikipedia.org/wiki/Coupling_(computer_programming)" rel="nofollow noreferrer">Read about it in wikipedia</a></p>
  <p>So here is what I want to believe (is this correct?):</p>
  <pre><code>'Implementation of A with Low Cohesion
  '(Coincidental cohesion because there is no 
  ' good reason or need to group the functions
  ' in this way)
  a(x) = 2x + 1
  b(x) = 3x + 2
  r(x) = a(x) + b(x) 
  </code></pre>
  <p>...</p>
  <pre><code>'Implementation of A with High Cohesion (Almost Atomic)
  r(x) = 5x + 3
  </code></pre>
  <p>...</p>
  <pre><code>'Implementation of A with Low Cohesion too
  a(x) = 2x + 1
  r(x) = a(x) + 3x + 2
  </code></pre>
  <p>...</p>
  <pre><code>'Implementations of A with Functional Cohesion
  a(x, y) = x * y   'Groups multiplication
  b(x, y) = x + y   'Groups addition
  r(x) = b(a(5,x), 3)
  </code></pre>