The Software Development Process
Any software process must include the following four activities:
- Software specification (or requirements engineering): Define the main functionalities of the software and the constrains around them.
- Software design and implementation: The software is to be designed and programmed.
- Software verification and validation: The software must conforms to it’s specification and meets the customer needs.
- Software evolution (software maintenance): The software is being modified to meet customer and market requirements changes.

Software Specification
Notes on software requirements and specification
- A complete software specification document for a project
- A complete template specification document to support developers and product owners with requirements engineering

Software Design
- TutorialsPoint
- Software Design Considerations
- Waterfall vs AgileMethodology
- UML Diagrams
- Object-Oriented Design with Java
Implementation
Software design done correctly doesn't leave much creativity to the next stage in the process, implementation.
Verification
Verification that the software works according to specifications securely, provides a pleasant and functional user experience, and in incorporates the principles of universal design can be a tedious task.
The advent of "test-driven development" minimizes the tedium.

Maintenance
