CPM, defines the critical path of a project which includes all tasks that are critical to the project success and its ability to do its purpose.
ABC Video Rental Processing represents an order processing/inventory control problem (Conger, 2008, p.51). The system processes a customer, inventory, and orders files, and theses files are regularly maintained.
According to (Conger, 2008, p.312), we can define multiple entities for the data type of the rental application. The entities are as follows:
Customer: mentioned in (Conger, 2008, p.52) as a person who rents a video tape.
Video Inventory: mentioned in (Conger, 2008, p.52) as a list of video tapes available for rent.
Open Rentals: mentioned in (Conger, 2008, p.53) as a documentation of all video rental operations.
Video History: mentioned in (Conger, 2008, p.52) as a representation of the sum of all rentals of a video tape (individually per physical tape, and grouped by video title).
Customer History: mentioned in (Conger, 2008, p.52) as a representation of the sum of all rentals of a customer.
End of Day Totals: mentioned in (Conger, 2008, p.53) as a summary of all transactions for the day.
Reports: mentioned in (Conger, 2008, p.52), which holds number of new users monthly and yearly, bad credit customers, and so on.
The critical path must include all of the processes mentioned above along with their entities and data attributes.
We are going to use CoCoMo method for estimations of Lines of Code -mentioned in (Conger, 2008, p.176)-. we consider ABC Rental as Intermediate project that is going to be developed by a small team of experienced developers.
According to CoCoMo method, intermediate sized projects are about 8K lines of code.
The project is being developed in-house by a small team (team of 2), so we consider this project as organic.
we use 8 as value for KSDI then:
number of person months (organic product) = 2.4 * (KDSI ^ 1.05) = 2.4 * (8 ^ 1.05) = 2.4 * 9.6 = 23.04.
time of development = 2.5 * (person months ^ 0.38) = 2.5 * (23.04 ^ 0.38) = 2.5 * 4.8 = 12 months.
The project will need 12 months to be developed = 50 weeks.
Tasks wil be defined as follows, the person who is responsible for each task is mentioned in parentheses, and the duration of each task is mentioned after the column:
initialization: 2 weeks (Sam + Mary).
develop ERD: 2 weeks (Sam + Marry).
build CRUD operations on all entities, which follow the following (14 weeks total):
Customers (Sam), Employees (Marry): 2 weeks.
Inventory (Sam), Open Rentals (Marry): 2 weeks.
User History (Sam), Video History (Marry): 2 weeks.
Plan reports (Sam + Marry): 4 weeks (contingency backup).
End of Day Totals (Sam), Implement Reports (Marry): 4 weeks.
Implement Orders, Returns Accounting, making sure that all entities in accordance to the regulations, integrate some 3rd party software for doing this job (Sam + Marry): 6 weeks.
verify unit testing, integration testing, and system testing (Sam + Marry): 8 weeks.
Build the GUI, test it on windows (Sam + Marry): 6 weeks.
Closing the project, and preparing the final report (Sam + Marry): 2 weeks.
Install product on PCs of the shop, Train staff (Sam + Marry): 4 weeks.
contingency backup: 2 weeks (Sam + Marry).
The task mentioned above are the critical path of the project, and the project will be completed in 50 weeks, the CPM below summarizes the project plan: