Construction of software components identified and described in design documents. Translation of a design into an implementation language. Program coding styles. Concepts, methods, processes, and techniques supporting the ability of a software system to change, evolve, and survive. Verification of software ensuring fulfillment of the requirements. Validation of software products at different stages of development: unit testing, integration testing, system testing, performance testing, and acceptance testing.