Software design & development includes research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products. There are various software development approaches defined and designed which are used/employed during development process of software, these approaches are also referred as “Software Development Process Models” (e.g. Waterfall model, incremental model, V-model, iterative model, etc.).
Software life cycle models describe phases of the software cycle and the order in which those phases are executed. There are following six phases in every Software development life cycle model: (1) Requirement gathering and analysis, (2) Design, (3) Implementation or coding, (4) Testing, (5) Deployment & (6) Maintenance.