Software development is a highly labour intensive activity. A large software project may involve hundreds of people and span many years. To complete the project successfully, the large workforce has to be properly organized so that the entire workforce is contributing effectively and efficiently the project.
Planning may be the most important management activity. Without a proper plan, no real monitoring or controlling of the project is possible.
For a given set of requirements it is desirable to know how much it will cost to develop the software to satisfy the given requirements, and how much time development will take. These estimates are needed before development is initiated. The primary reason for cost and schedule estimation is to enable the client or developer to perform a cost/benefit analysis and for project monitoring and control.
For a software development project, detailed and accurate cost and schedule estimates are essential prerequisites for managing the project. Cost and schedule estimates are also required to determine the staffing level for a project during different phase and are fundamental to any form of project management and are always required for a project.
Cost in a project is due to the requirements for software, hardware and human resources. Hardware resources are the computer time, terminal time, and memory required for the project whereas the software resources include the tools and compilers needed during development. Most cost estimation procedures focuses on the human resources needed. Most cost-estimates are determined in terms of person-months (PM).
The task of software cost estimation is to determine:
- How many resources are needed to complete the project.
Usually, it is defined in person-month (PM)..
- When to complete.
- Cost of people.
- Access the progress of the project.