National Institute of Technology Rourkela

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

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

An Institute of National Importance

Course Details

Subject {L-T-P / C} : CS3004 : Software Engineering { 3-0-0 / 3}

Subject Nature : Theory

Coordinator : Durga Prasad Mohapatra

Syllabus

Module 1 :

Software development life cycle: Various software development life cycle (SDLC) models; Requirements analysis and specification: Requirements gathering and analysis, software requirements specification, formal systems specification. [8 hours]

Module 2 :

Software Design: Outcome of a design process, cohesion and coupling, layered arrangement of modules, approaches to software design, function-oriented software design: overview of SA/SD methodology, structured analysis, DFDs, structured design, detailed design, design review, object-oriented software design: UML diagrams, use case modelling, unified process, OOD goodness criteria, Coding: Coding standards and guidelines, code review, code walk through and inspection. [10 hours]

Module 3 :

Testing: unit testing, black-box testing, white-box testing, debugging, integration testing, system testing, regression testing, testing of O-O software. [7 hours]

Module 4 :

User interface design: types of user interfaces, component-based GUI development; CASE Tools, Software maintenance; Software reuse. [5 hours]

Module 5 :

Software Project Management: project planning, project estimation, COCOMO, Halstead’s Software Science, project scheduling, staffing, risk management, configuration management; Software reliability and Quality management: Software reliability, Statistical testing, software quality, ISO 9000, SEI CMM, PSP, Six sigma. [6 hours]

Course Objective

1 .

To discuss the software engineering discipline, its evolution, impact and emergence of software engineering and explain the development and use of different software life cycle models for real-life industrial applications.

2 .

To explain various requirement elicitation, analysis and specification techniques, discuss various software design methodologies, and demonstrate various coding standards and guidelines.

3 .

To discuss different software testing and debugging strategies.

4 .

To demonstrate different user interface design methods and computer aided software engineering (CASE) tools in the software development process, discuss different types of software maintenance, software engineering and re-engineering activities and explain how to reuse different components of software systems.

5 .

To discuss different aspects of software project management, risk management and configuration management along with software reliability metrics and software quality management techniques & standards.

Course Outcome

1 .

After reading this subject, students will be able to:
Choose and apply a proper life cycle model and prepare the SRS document for different real-life industrial projects.

2 .

Perform designing of different real-life industrial software using function-oriented approach (DFDs) and object-oriented approach (UML diagrams), code them.

3 .

Test the developed software using different software testing strategies.

4 .

Apply different user interface design methods and computer aided software engineering (CASE) tools in the software development process, apply different types of software maintenance, software engineering and re-engineering activities and reuse different components of software systems in other similar applications.

5 .

Apply different software project management activities and software quality management techniques / standards in real-life industrial projects and estimate the reliability of these industrial projects.

Essential Reading

1 .

R. S. Pressman, Software Engineering: A Practitioner's Approach, McGraw Hill Publications , 2023

2 .

R. Mall, Fundamentals of Software Engineering, PHI Learning , 2018

Supplementary Reading

1 .

I. Sommerville, Software Engineering, Pearson Education , 2006

2 .

A. Behferooz and F. J. Hudson, Software Engineering Fundamentals, Oxford University Press , 2000

Journal and Conferences

1 .

1. IEEE Transactions on Software Engineering.
2. International Conference on Software Engineering