Application Development Process:
Requirements Analysis: Extracting the requirements of a desired software product is the first task in creating it.
Specification: Specification is the task of precisely describing the software to be written, in a mathematically rigorous way.
Software architecture: The architecture of a software system refers to an abstract representation of that system. Architecture is concerned with making sure the software system will meet the requirements of the product, as well as ensuring that future requirements can be addressed.
Testing: Testing of parts of software, especially where code by two different engineers must work together, falls to the software engineer.
Documentation: An important task is documenting the internal design of software for the purpose of future maintenance and enhancement.
Maintenance: Maintaining and enhancing software to cope with newly discovered problems or new requirements can take far more time than the initial development of the software.