National Institute of Technology Rourkela

राष्ट्रीय प्रौद्योगिकी संस्थान राउरकेला

ଜାତୀୟ ପ୍ରଯୁକ୍ତି ପ୍ରତିଷ୍ଠାନ ରାଉରକେଲା

An Institute of National Importance

Syllabus

Course Details

Subject {L-T-P / C} : CS3074 : Software Engineering Laboratory { 0-0-3 / 2}

Subject Nature : Practical

Coordinator : Prof. Durga Prasad Mohapatra

Syllabus

1. Prepare the SRS document for each of the following problems. You should identify the appropriate requirements for each problem Draw the Use Case diagrams, Domain Models, and Class Diagrams. Draw the Sequence Diagrams and Collaboration Diagrams for each Use Case, Draw the State Chart Diagrams and Activity Diagrams, wherever necessary Develop the corresponding software using Java with an interactive GUI and appropriate Database. Also, formally specify the following systems using Z and Petrinet.
a) Develop software to automate the bookkeeping activities of a 5 star hotel
b) The local newspaper and magazine delivery agency wants to automate the various clerical activities associated with its business. Develop a software for this.
c) A small automobile spare parts shop sells the spare parts for vehicles of several makes and models. Each spare part is typically manufactured by several small industries. To streamline the sales and supply ordering, the shop owner wants to automate the activities associated with his business. Develop a software for this.
d) Develop a software for the automation of the dispensary of NIT, Rourkela.
e) Develop a software for automating various activities of the Estate Office of NIT, Rourkela.
f) Develop a word processing software with some limited number of facilities such as making bold italics, underline, cut, copy and paste etc.
g) Develop a graphics editor software package, using which one can create / modify several common types of graphics entities.
h) Develop a software for automating various activities of the departmental offices of NIT, Rourkela.
2. Write a C function for searching an integer value from a large sorted sequence of integer values stored in array of size 100, using the binary search method. Build the control flow graph of this function using any compiler writing tool. Write a program in Java to determine its cyclomatic complexity. Identify the linearly independent paths and generate the test cases using path coverage based strategy.
3. Write a program in Java to determine the number of defects still remaining after testing, using error seeding methodology.
4. Calculate Unadjusted Function Point (UFP), Complexity Adjustment Factor (CAF) and Function Point (FP) for the following problem.
Number of user inputs=32
Number of user outputs=60
Number of user inquiries=24
Number of files=8
Number of external interfaces=2
Assume all weighting factors to be average and all complexity adjustment values to be average.
Number of user inputs=24 (Weighting factor is average)
Number of user outputs=46 (Weighting factor is simple)
Number of user inquiries=8 (Weighting factor is complex)
Number of files=4 (Weighting factor is average)
Number of external interfaces=2 (Weighting factor is simple)
The various complexity adjustment values are 4, 1, 0, 3, 3, 5, 4, 4, 3, 3, 2, 2, 4, 5.

5. For a project of 100,000 LOC embedded system, compute the effort and development time using intermediate COCOMO. Assume there are programmers of the low quality but a lot of experience with the programming language with all other attribute values being nominal. Value for low quality=1.17, value for lot of experience=0.95, nominal value=1.
6. Consider an office automation system. There are 4 major modules:
Data Entry 0.6 KLOC
Data Update 0.6 KLOC
Query 0.8 KLOC
Reports 1.0 KLOC
The various cost driver attributes are of high complexity, high storage, low experience and low programmer capability with all others being nominal. Use intermediate COCOMO to estimate final effort, average staff size and total development time. Value for high complexity=1.15, value for high storage=1.06, value for low experience=1.13, value for low programmer capability=1.17, nominal value=1.

7. Consider a database application project with the following characteristics. The application has 6 screens with 4 views each and 9 data tables for 3servers and 4 clients. The application may generate 5 report of 6 sections each from 5 data tables from 2 server and 3 clients. There is 12% reuse of object points. The developers experience and capability in the similar environment is low. The maturity of organization in terms of capability is nominal. Calculate the object point count, New Object-Point count and effort to develop such a project.
8. Draw the network diagram, find out the critical path and critical activities, and calculate the project duration for the given problems using CPM.
9. Draw the network diagram, find out the critical path and critical activities, and calculate the project duration for the given problems using PERT.
10. Perform load testing on the following websites using the tool JMeter.
(a) www.google.com, (b) www.irctc.com, (c) www.nitrkl.ac.in
11. Perform mutation testing and find the mutation score of some sample applications using the tool Jumble.
12. Perform functional testing of some sample web applications using the tool Selenium.

Course Objectives

  • To develop SRS document, design documents such as ER Diagrams, DFDs, UML Diagrams etc. for some given software project.
  • To develop efficient codes for some given software projects and test the developed code using different tools.
  • To implement different software project management techniques.
  • To use different computer aided software engineering (CASE) tools.

Course Outcomes

After reading this subject, students will be able to: <br />1. Develop SRS document, design documents such as ER Diagrams, DFDs, UML Diagrams etc. for a given software project. <br />2. Develop efficient codes for a given software project using appropriate coding standards and guidelines and test the developed code using different tools. <br />3. Implement different software project management techniques such as FP, COCOMO, CPM, PERT etc. . <br />4. Know the use of different computer aided software engineering (CASE) tools in the development, maintenance and reuse of software systems.

Essential Reading

  • R. Mall, Fundamentals of Software Engineering, PHI Learning , 2014
  • , ,

Supplementary Reading

  • , ,
  • , ,