Cost Estimation: 1. Introduction To estimate the effort needed for the software project, Function Point Analysis (FPA) and COCOMO model are used to predict the size and cost of developing the ESTMD system. 2. Function Points Analysis In order to measure the software functionality, function points are derived using an empirical relationship based on countable measures of software’s information domain and assessments of software complexity. The general approach of FPA is: Determine and count five information domain characteristics: inputs, outputs, inquiries, files, and external interfaces. Compute the Function Points following the formula: FP = UFP [0.65 + 0.01 (Fi)], which Fi are “complexity adjustment values” based on responses to some questions. Calculate the Source Lines of Code with the help of the AFP and the Language Factor (LF). 2.1 Determine and count information domain characteristics The weights are based on the complexity of the characteristics being counted. (Table 1) Function type Inputs Outputs Inquires Files External interfaces Simple 3 4 3 7 5 Average 4 5 4 10 7 Complex 6 7 6 15 10 Table 1. Domain characteristics with weights User Inputs User Inputs are items of application data that is supplied to the system. The logical input is usually considered one item and individual fields are not usually counted separately. For example, the input of personal data of a student might be considered one input. I summarized the user inputs in the following items: - New students' information (Simple) Students' grade (Simple) Teacher Recommendations (Simple) Teacher login (Simple) Crate New Groups (Simple) User Outputs User outputs are displays of application data. In this context output refers to reports, analysis screens, error messages, and so on. Individual fields are usually not considered separate outputs. I summarized the user outputs in the following items: - Students' EPT results and recommendation report. (Average) - Success importing students ELP scores message (Simple) - Highlight line for missing students’ EPT scores (Simple) - Generate failed message when student is missed in the system that has ELP Scores (Average) - Generate successfully placement message. (Simple) - Success adding new students’ information (Simple) - Success create groups message.(Simple) - Place students in the propel levels (Complex) - Success teacher login message (Simple) User Inquiries These are request responses that do not change the internal data. Example, a request for the level of a specified student is an inquiry. The whole sequence of asking, supplying the test number and getting the level and group would count as one inquiry. I summarized the user inquiries in the following items: - View list of levels and groups (Simple) View specific student information (Simple) View Teachers classes and groups (Average) External Interfaces There are no external interfaces for the ELP Helper. Internal Files Each major logical group of user data or control information related to application. For this system No File processing is required. Item Inputs Outputs Inquiries Files Interfaces Total Simple 3*(5) 4*(6) 3*(2) 7*(0) 5*(0) Average 4*(0) 5 *(2) 4*(1) 10 *(0) 7*(0) Complex 6*(0) 7*(1) 6* (0) 15*(0) 10*(0) Total 15 41 10 0 0 66 Table 2. Unadjusted Function Points count From the table above, I have concluded the value of FP unadjusted is (UFP) = 66 2.2 Compute the Function Points To calculate the complexity adjustment value, several factors have to be considered, such as Back up and recovery, code design for reuse, etc. All the factors and their estimated value in the project are shown in the following table. The adjusted function point denoted by FP is given by the formula: FP = UFP [0.65 + 0.01 (Fi)], which Fi are “complexity adjustment values” based on responses to questions called complexity weighting factors in the table below. Each complexity weighting factor is assigned a value that ranges between 0 (not important) to 5 (absolutely essential). Complexity Weighting Factor Backup and recovery Data communications Distributed processing Performance critical Existing operating environment On-line data entry Input transaction over multiple screens Master files updated online Information domain values complex Internal processing complex Code designed for reuse Conversion/installation in design Multiple installations Application designed for change Total complexity adjustment value Value (0-5) 0 2 4 5 0 3 3 3 5 5 5 3 0 4 42 Table 3. Adjustment value count Total Unadjusted Function Points (UFP) = 66 Product Complexity Adjustment (PC) = 0.65 + (0.01 × 42) = 1.07 Total Adjusted Function Points (FP) = UFP × PC = 70.62 2.3 Calculate the Source Lines of Code (SLOC) Language Factor (LF) for C#.Net based in my project is 25 as lines of code for each FP. Source Lines of Code (SLOC) = FP × LF = 1765.5 = 1765.5 = 1.7655 K 3. COCOMO COCOMO, Constructive Cost Model, is a good measure for estimating the number of person-months required to develop software. ELP Helper is an application program. The table below presents the COCOMO formulae for different type of programs. Project complexity Programmer Effort Application Programs PM = 2.4*(KDSI) 1.05 Utility Programs PM = 3.0*(KDSI) 1.12 System Programs PM = 3.6*(KDSI) 1.20 Development Time (Months) TDEV = 2.5*(PM) 0.38 TDEV = 2.5*(PM) 0.35 TDEV = 2.5*(PM) 0.32 Table 4. Formulas for different programs in COCOMO This project is an application program. The formulas of the first row in the upper table are used. Delivered Source Instructions (KDSI) = 1.7655 K Programmer Effort (PM) = 2.4 × (KDSI) 1.05 = 4.4 programmer-month Development Time in month (TDEV) = 2.5 × (PM) 0.38 = 4.4 months