Feasibility - determining if the proposed development is worthwhile.
Market analysis is to determine if there is a potential market for this product.
Requirements - determining what functionality the software should have.
Requirement gathering is to obtain the requirements from the user