Design is an important step that is done prior to actual coding. Creating a code from scratch is quite difficult that is why it is essential to think about the appropriate means of solving the problem. During the design stage, flowcharting is done along with creation of pseudocodes. The standard flowcharting method used to be understood by all programmers is the Unified Modeling Language or UML.

UML is divided into three major scopes which are structural, behavioral or interactive in nature. There are 13 standard UML diagrams that are used in designing a program. The structural diagrams include class, component, composite, deployment, object, and package diagrams. Behavioral diagrams can be any of these three such as activity, state-machine and use case diagrams. While communication, interaction, sequence, and timing diagrams are all interactive diagrams.

These 13 diagrams are not strictly required to produce an understandable software design. Usually, a combination of one from each category is enough to create a vivid image of the proposed solution. The common diagrams that are used are class diagram for structural, use case diagram for behavioral and sequence diagram for interactive.

A use case diagram represents how the program functions through an interconnection of actors and use cases bounded by the system being designed. A class diagram shows the building blocks that compose a system. A sequence diagram illustrates the step by step functionality of the program as time progresses. Using this three, how a program works and what it is made of is completely described.