A piece of software is often expressed as a description of what the software will be used for. Identify the scope, functional requirements and boundaries of a particular program.
It is also often necessary to clearly outline any assumptions that have been made prior to design and implementation.
Assumptions are often specific to the task at hand but generally take account of:
the hardware needed to run the software
any software compatibility concerns
the need for an internet connection during use
IT competency of the target user group
At the design phase, the purpose, functional requirements and any assumptions determined during analysis will be considered, and programmers will begin to develop a plan to create the software.