H.W 3 Software Engineering Tariq ali almalki 200420467 1. What are the relative advantages and disadvantages between topdown and bottom-up integration testing? Top-down integration Develop the skeleton of the system and populate it with components. Bottom-up integration Integrate infrastructure components then add functional components. 2. Explain why interface testing is necessary given that individual units have been extensively validated through unit testing and program inspection Objectives are to detect faults due to interface errors or invalid assumptions about interfaces. Particularly important for object-oriented development as objects are defined by their interfaces. 3. Explain why program inspection are effective technique for discovering errors in a program. What types of error are unlikely to be discovered through inspection? a) Checklist of common errors should be used to drive the inspection. b) Error checklists are programming language dependent and reflect the characteristic errors that are likely to arise in the language. types of error : 1-Data faults 2-Control faults 3-Input/output faults 4-Interface faults 5-Storage management faults 6-Exception management faults 4. Explain why the savings in cost from reusing existing software is not simply proportional to the size of the components that are reused. The cost savings from reusing components are the cost savings from not having to write (and test) that component. These savings are more-or-less proportional to the component size: the larger the component, the greater the cost saving. But one must also consider the new costs associated with reuse: the costs of searching for and understanding the components chosen for reuse, and the costs of adapting other parts of the system to accommodate the reused components. These costs do not scale with the size of the component. For small components, these new costs may be considerable compared to any savings. This reduces the total cost saving, perhaps even making reuse more expensive than creating the component from scratch. 5. When would you recommend against the use of an agile method for developing a software system? Agile methods are probably best suited to small/medium-sized business systems or PC products.