Software Engineering CO 307
Spring 2009 Mid-term examination Total Marks: 70
Answer question number 1 and any three from the rest. 1. a. Inheritance and templates are helpful programming constructs because they contribute to what characteristic of a good design? [1] b. It seems that since dividing a project into functional partitions can increase the likelihood of successful implementation, why don't we divide the project into as many subprojects as possible? [2] c. Fred Brooks in his classic book "The Mythical Man-Month" is famous for his quote "Adding people to a late software project makes it later." Explain this phenomenon. [2] d. What is the purpose of a use case diagram? Is it created before or after writing the use cases? [2] e. Do you agree: The number of defects remaining in a software product is directly related to its reliability Give reasons [2] f. During SD, the __________of SA is transformed to a structured chart representation. [1] 2. a. What is quality? List the ISO qualities of good software. [4] b. Draw the DFD and Structure chart for the following for the following Book Sales Processing Automation software: [ 10 ] A book store deals with a large number of orders from customers. The book store has a regular set of customers. Each of these regular customers is assigned a unique ID. The customers quote the ID on every order they place. Once an order is placed, the software checks for the credit worthiness of the customer. The credit worthiness is determined by analyzing the credit-info from the customer file. If the customer is valid then his/her orders are processed else appropriate apology message sent. The orders placed may be of two types: Bulk order and regular order. A bulk order has at least 100 book orders. Appropriate discount is given for Bulk orders and then the orders are processed and invoice generated. For regular orders (Order < 100 books) no discount is given. Regular orders are also processed and invoice is generated. Finally invoices are sent back to the customers and to the shipping department. c. Consider the following java function and determine the cyclomatic complexity. Design a test suite for the sort function using the white box testing strategies (statement coverage, branch coverage, condition coverage & path coverage). [6]
public static void selSort(int[] x) { for (int i=0; i<x.length-1; i++) { int minIndex = i; // Index of smallest remaining value.
Time: 3 hours
for (int j=i+1; j<x.length; j++) { if (x[minIndex] > x[j]) { minIndex = j; // Remember index of new minimum } } if (minIndex != i) { //... Exchange current element with smallest remaining. int temp = x[i]; x[i] = x[minIndex]; x[minIndex] = temp; } } }
3. a. Explain some strategies for reducing coding errors. [8] b. The Pareto Principle defines the vital few, the trivial many. Explain. Is complete testing impossible? Justify. [2+3] c. A software product has been installed in the year 2000. The cost incurred during developing the product was Rs. 2,00,000 and every year for maintenance purposes 5% of code is added and 3% of code is deleted. What will be the maintenance cost at the beginning of 2010. [5] d. How can we change from existing software to new software? [2] 4. a. Give three software reliability metrics. Do you think the three metrics given by you can entirely measure the reliability of a system? Justify. [4] b. What are legacy systems? What are its problems? Give the best solution. [5] c. During the software testing process, why is the reliability growth initially high but slows down later? What are the different types of testing? Explain. [2+5] d. What is a widget? Give two kinds of widget? 5. a. State Lehmans three laws. Give the different UML views. [3+3] c. Draw the Use case, Class, Sequence, Collaboration and Activity diagrams for the following: [ 14 ] Suppose you are representing airline reservation software by UML. Passengers on arrival will go through the process of Check-in, luggage weighing and seat-assigning. It must be clear that in order to check in a Passenger, Luggage must be weighed and a Seat assigned. Moreover, in order to add a seat-reservation to the system, the available space must be checked and the passenger's information (Name, ticket number, luggage ticket, flight number) must be recorded. Not all of the seats aboard the airplane are exactly alike (some window and some aisle seats), and sometimes passengers will express a preference for one of these types of seats but not the other. But of course, they cannot just be given their preference right away, because the seat they want might not be available. Therefore, the process of assigning a window seat involves checking for the availability of window seats, whereas the process of assigning an aisle seat [4]
involves checking for the availability of aisle seats. Once all passengers have been assigned seats, and luggage sent to the luggage van. The passengers are asked to move to their designated flight number.