How to identify the dependencies? Its really simple. You need to divide your application into smaller possible components. Lets assume the smallest component we are talking about is a class. A class provides the definition of attributes and behaviors, of an object. An object can perform certain responsibilities (behaviors). To perform these responsibilities they may need to initiate other smaller components. Tada! here comes the dependency.