Generic Phases of Software Engineering
In the questions the definition phase focuses on what. That means during definition, the software developer attempts to identify what function and performance are desired, what information is to be processed, what interfaces are to be established, what system behavior can be expected, what validation criteria are required to define a successful system, and what design constraints exist. Identified are the key requirements of the system and the software. Although the techniques applied during the definition phase will vary depending upon the software engineering paradigm (or combination of paradigms) that is applied, 3 major tasks will occur in some form that are System or information engineering software project, requirements analysis and planning.
The development phase of software is focuses on how. That means during development of software a software engineer attempts to describe how data are to be structured, how the design will be translated into a programming language ( or nonprocedural language) how procedural details are to be implemented, how interfaces are to be characterized, how function is to be implemented as a software architecture, and how testing will be performed. This technique applied during the development phase will vary, but three specific technical tasks should always occur software design code generation and software testing.
The maintenance phase is focuses on change that is related with error correction, adaptations needs as the software's environment evolves and changes due to enhancements brought above by changing customer needs. The maintenance phase reapplies the steps of the definition and development phases, but does so in the context of existing software.