Rough vs Fuzzy vs Granular Computing
"Granularity" refers to the resolution of the variables under analysis.  If you are analyzing height of people, you could use course-grained variables that have only a few possible values -- e.g. "above-average, average, below-average" -- or a fine-grained variable, with many or an infinite number of values -- e.g. integer values or real number values.

A measure is "fuzzy" if the distinction between alternative values is not crisp.  In the course-grained variable for height, a "crisp" measure would mean that any given individual could only be assigned one value -- e.g. a tall-ish person is either "above-average", or "average".  In contrast, a "fuzzy" measure allows for degrees of membership for each value, with "membership" taking values from 0 to 1.0.  Thus, a tall-ish person could be a value of "0.5 above-average", "0.5 average", "0.0 below-average".

Finally, a measure is "rough" when two values are given: upper and lower bounds as an estimate of the "crisp" measure.  In our example of a tall-ish person, the rough measure would be {UPPER = above-average, LOWER = average}.

Why use granular, fuzzy, or rough measures at all, you might ask?  Why not measure everything in nice, precise real numbers?  Because many real-world phenomena don't have a good, reliable intrinsic measure and measurement procedure that results in a real number.  If you ask married couples to rate the quality of their marriage on a scale from 1 to 10, or 1.00 to 10.00, they might give you a number (or range of numbers), but how reliable are those reports? Using a course-grained measure (e.g. "happy", "neutral/mixed", "unhappy"), or fuzzy measure, or rough measure can be more reliable and more credible in your analysis.  Generally, it's much better to use rough/crude measures well than to use precise/fine-grained measures poorly.