There are different approaches to designing software. If we consider our system as different interacting units it falls under the Functional oriented system design. And if we consider our system as a collection of entities, we are making use of Object-oriented system design. When focusing on the visual part of our software, we are dealing with User Interface design. In this section, we will discuss different approaches to software design.