The design phase of software development deals with transforming the customer requirements as described in the SRS (software requirement specification) documents into a form implementable using a programming language.

The software design process can be divided into the following three levels of phases of design:

  • Interface Design

    Interface design is the specification of the interaction between a system and its environment.

  • Architectural Design

    Architectural design is the specification of the major components of a system, their responsibilities, properties, interfaces, and the relationships and interactions between them.

  • Detailed Design

    Design is the specification of the internal elements of all major system components, their properties, relationships, processing, and often their algorithms and the data structures.