Software Development Methodology

- Requirements Analysis
Extracting the requirements of a desired software product is the first task in creating it. It may require skill and experience to recognize incomplete, ambiguous requirements. - Specification
Specification is the task of precisely describing the software to be written, in a mathematically rigorous way to understand and fine-tune applications. - Software architecture
Architecture is concerned with making sure the software system will meet the requirements of the product, also ensuring that future requirements can be addressed. - Coding
Reducing a design to code may be the most obvious part of the software engineering job, but it is not necessarily the largest portion. - Testing
Testing of parts of software, especially where code by two different engineers must work together, falls to the software engineer. - Documentation
An important (and often overlooked) 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.













