Requirements, Design and Development
The initial requirements for a project often arise due to a particular problem that the business or customer needs to solve. This leads to a project to implement an appropriate solution, and the first step is to determine the scope of work and the actual requirements for the project, and whether the project is feasible from the cost, time and technical considerations. The user requirements are determined from discussions with the customer, and they are then refined into the system requirements which state the functional and non-functional requirements of the system.
The software design of the system is concerned with the architecture of the system, as well as activities to describe the algorithms and functions required to implement the system requirements. It is a creative process concerned with how the system will be implemented, and the architecture may include hardware such as personal computers and servers as well as the various software modules and their interfaces.
The software development is concerned with the actual implementation of the design, and the implementation is in some programming language such as C++ or Java. The software may be developed internally or it may be outsourced to another company, or a solution may be purchased off-the-shelf. It is essential that the design is valid with respect to the requirements, and that the implemented system is valid with respect to the design.