ALCCS

 

FEBRUARY 2009

 

Code: CS44                                                                     Subject: SOFTWARE ENGINEERING

Time: 3 Hours                                                                                                     Max. Marks: 100

 

NOTE:

·      Question 1 is compulsory and carries 28 marks. Answer any FOUR questions from the rest.  Marks are indicated against each question.

·      Parts of a question should be answered at the same place.

·      All calculations should be up to three places of decimals.

 

 

Q.1                                                                                                                                          (7 x 4)

             a.  Which process model will be used to develop the following system? Justify your answer?

                  (i)  Airline Reservation System, which is intended to replace an existing system.

                  (ii)  Railways Interactive System, which allows railway passengers to find train times from terminals installed in stations.

 

             b.  Discuss any two software myths each from the perspective of a Client and a Developer?

 

             c.  Discuss the advantages and disadvantages of using a Water-fall model for software development?

 

             d.  Discuss the role stubs and drivers in unit testing?

 

             e.  What is regression testing? When is regression testing done?

 

             f.   Differentiate between Software Verification and Software Validation. Mention the types of the validation testing used for product software.

 

             g. What is software maintenance? Justify the statement "Maintenance is unavoidable in software systems".

 

Q.2       a.  What are Software Correctness, Software Robustness and Software Reliability? How are they related?                                                                                                                                    (6)

                                   

             b.  Discuss the different categories of software development projects according to the COCOMO estimation model.                                                                                                                          (6)

                 

             c.  Differentiate between LOC and the Function Point metric to measure the size of the software product?        (6)


 

 

 

  Q.3          For the following problem statement

                  The blood bank wishes to computerize its operations. The bank issues blood to patients and hospitals. When a hospital requests for blood the request is immediately serviced. When a patient requests for blood then a relative is asked to replace blood in the blood bank storage. This blood may or may not be of the same blood group. The blood bank also collects blood from non-blacklisted donors. This collection can be from regular donors or from camps which are organized now and then. Every time blood is to be collected, the bank checks whether the person is suffering from any fatal or non-fatal disease or not. In case the person is identified to have fatal disease, the person is black-listed. If the person is healthy, then the blood group is determined and the blood is collected and stored in the bank. A collection report is generated by the blood bank and given to the donor.

(i)                                                                                                                                                                                                                                                                           Draw a Data Flow Diagram?

(ii)                                                                                                                                                                                                                                                                         Map the Data Flow Diagram to Structure Charts                                                                        (10+8)

 

  Q.4     a.  Define coupling and cohesion. Discuss the different types of coupling and cohesion in modular design?         (9)

 

             b.  What is program debugging? How is it different from program testing? Discuss any four approaches used for debugging a program.                                                                                                    (9)

 

  Q.5     a.  Draw a flow graph, arrive at the cyclomatic complexity, find the set of linearly independent paths for the following program.

void F(int key, int T[ ], int size, boolean found, int L)                                                    (10)

      {

            int bot, top, mid;

            bot=0;

            top=size-1;

            L=(top+bot)/2;

            if(T[L] = = key) found = true;

            else

            found=false;

            while (bot<=top && !found)

            {

            mid = (top+bot)/2;

            if (T[mid] = = key )

            {

            found = true; L=mid;

            }

            else if (T[mid] < key )

           bot = mid + 1;

            else

           top = mid – 1;

            }

                  }

            

             b.  Discuss the Statement Coverage, Branch Coverage, Condition Coverage and Path coverage Structural testing techniques with the help of an example.                                                                          (8)

 

  Q.6     a.  Discuss the components of a Software Requirement Specification document.

                 

             b.  Discuss any two-specification tools for arriving at a SRS document.                                   

 

             c.  Define Software Re-engineering? Discuss the steps involved in re-engineering a software system.     (6+6+6)

                 

  Q.7          Write short notes on any THREE of the following:

 

(i)                                                                                                                                                                                                                                                                    Integration and System Testing.

(ii)                                                                                                                                                                                                                                                                   CASE Tools.

(iii)                                                                                                                                                                                                                                                                 Mutation Testing.

(iv)                                                                                                                                                                                                                                                                 Walkthroughs & Inspections.

(v)                                                                                                                                                                                                                                                                         Functional testing.                                                                                                                (6+6+6)