CS 332 Assignment 2 Solutions
1.1: [6 marks]
Assumption: Using Figure 1.2 in the textbook, the software development cycle costs 33% of the entire software life cycle. Thus, the cost for each phase is
w Requirements phase = 2% / 33% x $430,000 = $26,061
w Specification phase = 5% / 33% x $430,000 = $65,152
w Design phase = 6% / 33% x $430,000 = $78,182
w Implementation = 12% / 33% x $430,000 = $156,364
w Integration = 8% / 33% x $430,000 = $104,242
Future maintenance will take an additional $873,000 (= 67% / 33% x $430,000).
1.2: [5 marks]
Try to find a solution using off-the-shelf software (packages). If this fails, deter¡©mine which of the constraints (time, cost, functionality) can be relaxed, and pro¡©vide a solu¡©tion that fits the remaining constraints. If this fails, do not make promises that cannot be kept, but rather provide data such as hardware invoices and software development schedules showing the unreasonableness of the total request.
1.5: [4 marks]
Using the more recent data (IBM AS/400[Kan et al., 1994]) of Figure 1.5, the ratio of cost of detecting and correcting a fault during the maintenance phase to the cost of detecting and correct¡©ing it during the specifica¡©tions phase is approx¡©imately 368 to 3. Thus, the cost in the specifications phase would have been $18,730 x 3 / 368 = $153.
1.6: [4 marks]
Using the more recent data (IBM AS/400[Kan et al., 1994]) of Figure 1.5, the ratio of cost of detecting and correcting a fault during the maintenance phase to the cost of detecting and correct¡©ing it during the implemen¡©ta¡©tion phase is ap¡©proximately 368 to 10. Thus, the cost in the implementation phase would have been $18,730 x 10 / 368 = $509.
1.10: [6 marks]
If the software developers have little experience with the object-oriented para¡©digm, additional time and money will be needed for proper training. Although future bene¡©fits will be realized from training the staff, training may result in this particular project run¡©ning late and over-budget. Thus, if delivery deadline and cost are critical, then it may make more sense to use the structured paradigm.
However, if the developers have a comfortable understanding of the object-orient¡©ed paradigm, then that is what should be utilized. Using the object-oriented para¡©digm should result in a product that is easier and quicker to develop, has fewer faults, and is easier to maintain.