Study Problem Solutions CSCI 6231 Mid Term Chapter 1 1.1: Postdelivery maintenance will cost about 3 times as much as the original development, that is, about $1,275,000. 1.2: No. Temporally defined maintenance is a subset of operationally defined maintenance. That is, all changes to a software product constitute operational maintenance, but only those performed after installation constitute temporal maintenance. 1.3: Try to find a solution using off-the-shelf software (packages). If this fails, determine which of the constraints (time, cost, functionality) can be relaxed, and provide a solution 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. Chapter 1 Continued 1.4: Acceptance criteria must be stipulated in the contract, as must a full list of deliverables. Clauses should include: software shall meet specifications, be delivered on time, within budget; all faults shall be corrected at no further charge for a period of one year, say, after acceptance of product; documentation shall be full and complete, and shall include source code, specifications, design, and operating instructions; training shall be provided (stipulate type and duration). Terms of the maintenance contract should be included. You might try to include a clause holding the developer responsible for damages caused by faults in the software. Chapter 1 Continued 1.5: Late delivery: Underestimation of size of product; failure to obtain complete and accurate requirements; poor planning; failure to specify the product correctly; poor management techniques; failure to detect faults early in the life cycle; ineffective or badly trained personnel; poor quality testing; personnel turnover; poor documentation of the development process; poor communication between members of the development team; continual hardware and/or system software failures. Project over budget: All of the above, plus unexpected price increases for hardware, programming tools, and so on. Product does not meet specifications: All of the above, plus poor quality specifications; poor testing; poor quality assurance. Operational faults, such as injuries to sailors firing the missiles: Poor testing, and hence residual faults; poor quality documentation. Inadequate documentation: Badly trained personnel; poor management. Chapter 1 Continued 1.6: $136. From Figure 1.6 of Object-Oriented Software Engineering, the ratio of cost of detecting and correcting a fault during postdelivery maintenance to the cost of detecting and correcting it during the analysis phase is 368 to 3 (approximately 123 to 1). Chapter 2 2.3: Because of Miller’s Law we cannot develop a software product in a single step, and therefore we need to use stepwise refinement. 2.4: Incrementation. Chapter 2 Continued 2.8: Experience and skills of the development team; computer literacy of the client; extent to which the client seems to appreciate his or her real needs. 2.9: The product may not be what the client really needs, so construct a rapid prototype. The design may not permit future development as the corporation grows or changes the way it does business, so ensure that the design is as open-ended as is reasonable. There may be cost and or time overruns, so estimate carefully (see Chapter 9). The users may not be comfortable with the product, so a rapid prototype of the user interface is needed; also, involve the purchasing clerks, factory supervisors, sales clerks, and so on, in the development loop. A competitor may produce off-theshelf software before the product has been delivered — there is no ethical way to resolve this risk. A critical member of the development team may leave, so keep management of the development organization abreast of major decisions being made, thereby making it easier to integrate a replacement into the team. The development team may not be properly managed, so ensure that managers are competent and well-trained. Chapter 9 9.3: From Figure 9.2 of Object-Oriented and Classical Software Engineering, Seventh Edition, UFP = 7 x 3 + 2 x 4 + 10 x 6 + 56 x 5 + 8 x 3 + 12 x 10 + 17 x 10 = 683 Chapter 9 Continued 9.8: Nominal effort for this organic mode product is 3.2 x 521.05 = 190 person months (i) At $9,900 per person-month, the project costs $1,881,000. (ii) Replacing the staff with team A from Problem 9.7, the cost for the project becomes (190 x 0.35) x 12,900 = $857,850, or a gain of $1,023,150. Chapter 9 Continued 9.9: First obtain independent COCOMO and function point estimates as a check. Assuming that the predictions do not change, the next step is to discuss the product with experienced software engineers, and ask them to come up with estimates based on their experience (“expert judgment by analogy”). Use their estimates to try to decide whether the COCOMO or function point estimator is more likely to be an accurate predictor of the cost of the product. If this, too, fails, use the function point estimate on the grounds that it is generally less damaging in the long run to overestimate than to underestimate cost. Alternatively, the Delphi technique could be used to try to achieve agreement within an accepted tolerance. Chapter 9 Continued 9.7:Nominal effort (organic mode) = 3.2 x 431.05 = 126 person-months Multiplier for P1 = 1.65 Multiplier for P2 = 0.70 Multiplier for team A = 0.71 x 0.82 x 0.70 x 0.90 x 0.95 = 0.35 Multiplier for team B = 1.46 x 1.29 x 1.42 x 1.21 x 1.14 = 3.69 (i)If team A develops P1, total effort = 126 x 1.65 x 0.35 = 73 person-months. If team B develops P2, total effort = 126 x 0.70 x 3.69 = 325 person-months. Total = 398 person-months (ii)If team B develops P1, total effort = 126 x 1.65 x 3.69 = 767 person-months. If team A develops P2, total effort =126 x 0.70 x 0.35 = 31 person-months. Total = 798 person-months. (iii)Assignment (i) makes more sense, and is backed by COCOMO predictions. Chapter 4 4.1: Use a (modified) chief programmer team. This is a standard application area, so an experienced chief programmer with a team of two reasonably competent programmers should do a credible job. Chapter 4 Continued 4.2: The team should be organized as in Figure 4.6 of Object-Oriented Software Engineering. The difficulty of the problem requires the synergistic effect of group interaction at each level, but the scale of the problem and the need for strict controls (military project) require a hierarchy. Regulatory and budgetary considerations require nontechnical management. Chapter 5 5.11: Build tool: Promotes stepwise refinement by making it easy to perform numerous compilations and linkages. Coding tool: Promotes stepwise refinement by making it easy to add, modify, or delete code. Configuration-control tool: Promotes stepwise refinement by making it easy to find the appropriate version of a module or artifact. Data dictionary: Promotes stepwise refinement by allowing the team to add, modify, or delete entries while the product is being developed or maintained. (E-mail: Does not hinder stepwise refinement.) Interface checker: Promotes stepwise refinement by checking interfaces when a module is added, modified, or deleted. Online documentation: Promotes stepwise refinement by allowing the documentation to be modified easily. Operating system front end: Promotes stepwise refinement by making it easy to perform numerous compilations and linkages. Pretty printer: Promotes stepwise refinement by ensuring that the code is readable even after changes have been made. Chapter 5 Continued Report generator: Promotes stepwise refinement by making it easy to add or modify reports. Screen generator: Promotes stepwise refinement by making it easy to add or modify screens. Source-level debugger: Promotes stepwise refinement by making it easier to find faults after making an addition, modification, or deletion to the software. (Spreadsheet: Does not hinder stepwise refinement.) Structure editor: Promotes stepwise refinement by making it easy to add, modify, or delete code. Version-control tool: Promotes stepwise refinement by making it easy to find the appropriate version of a module or artifact. (Word processor: Does not hinder stepwise refinement.) (World Wide Web browser: Does not hinder stepwise refinement.) Chapter 6 6.2: If the organization is restructured so that 26 professionals, including five managers, are concerned solely with SQA, increased productivity and product quality can be expected. The costs to the company will include reorganization time (two day’s labor, approximately 77 x $825 + 19 x $1,100, or about $84,500) and training time and costs for the five SQA managers (perhaps $75,000). The total cost of under $160,000 should be recouped in a year even if productivity increases by only 3%. 6.10: The proof stands. Chapter 6 Continued 6.12: An annotated flowchart is shown in Figure 6.1.