Heap data is potentially unbounded and seemingly arbitrary. This makes it an interesting topic of study and there is an abundance of literature containing algorithms to construct useful descriptions of heap. Although most studies have addressed related or similar concerns, their formulations and formalisms often seem dissimilar and, some times even unrelated. Thus the insights gained in one investigation do not seem to directly carry over to some other investigation. This survey is a result of our quest for a unifying theme in the existing descriptions of heap (as against the algorithms that construct them). We view a heap abstraction as consisting of two features: a heap model to represent the heap memory and a summarization technique for bounding the heap representation. We classify the models as storeless, store based, and hybrid. We describe various summarization techniques based on k-limiting, allocation sites, patterns, variables, other generic predicates, and logic. This approach allows us to compare the insights of a large number of seemingly dissimilar heap abstractions.