Software development (also known as application development, software design, designing software, software application development, enterprise application development, or platform development) is the development of a software product. The term “software development” may be used to refer to the activity of computer programming, which is the process of writing and maintaining the source code, but in a broader sense of the term it includes all that is involved between the conception of the desired software through to the final manifestation of the software, ideally in a planned and structured process.
A software development methodology or system development methodology in software engineering is a framework that is used to structure, plan, and control the process of developing an information system. This includes the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.
A wide variety of such frameworks have evolved over the years, each with its own recognized strengths and weaknesses.
These are:
- Waterfall: a linear framework
- Prototyping: an iterative framework
- Incremental: a combined linear-iterative framework
- Spiral: a combined linear-iterative framework
- Rapid application development (RAD): an iterative framework
- Extreme Programming
Systems Development Resources
- Agile Methodology
- Software Acquisition
- Architecture
- Software Inspection
- Testing
- Cloud Computing
- Software Risk Management
- Security Considerations in the System Development Life Cycle
- Cyber Security and Software Assurance
- Development and Acquisition – FFIEC Handbook