Software variability management deals with the adaptation of reusable artifacts, such as models, specifications, and code, for particular requirements. External variability, which refers to software functionality as visible to users, deserves a special attention as it is closely linked to requirements and hence to early development stages. Errors or inaccuracies in these stages are relatively inexpensive to detect and easy to correct, yet can lead to expensive outcomes if not corrected. Nevertheless, the analysis of external variability in the literature is done ad-hoc and requires improvement. In this paper we introduce a framework for classifying external variability types based on ontological principles. The framework defines the external view of software in terms of the behavior of the application domain. Behavior is formalized as state changes in response to external stimuli. Based on this view we classify the possible similarities and differences among applications and identify an integrated similarity measurement. We demonstrate the usage of this classification framework for feasibility studies in system development.