National Institute of Technology Rourkela

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

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

An Institute of National Importance

Syllabus

Course Details

Subject {L-T-P / C} : CS4061 : Fundamentals of Software Engineering { 3-0-0 / 3}

Subject Nature : Theory

Coordinator : Prof. Durga Prasad Mohapatra

Syllabus

Software development life cycle and Project Management: Software development life cycle (SDLC) models, software project management, project planning, project estimation, project scheduling, staffing, Organization and team structure, risk management, configuration management. [8 hours]

Requirements analysis and specification: Feasibility study, Requirements gathering and analysis, software requirements specification, formal systems specification, axiomatic specification, algebraic specification. [4 hours]

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, object-oriented software design: UML diagrams, OOD goodness criteria, user interface design, types of user interfaces, component-based GUI development. [10 hours]

Coding and Testing: Coding standards and guidelines, code review, software documentation, unit testing, black-box testing, white-box testing, debugging, integration testing, system testing. [8 hours]

Software reliability and Quality management: Software reliability, software quality, ISO 9000, SEI CMM, PSP, Six sigma, CASE Tools, Software maintenance, Software reuse. [6 hours]

Course Objectives

  • 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.
  • To discuss different aspects of software project management, risk management and configuration management and explain various requirement elicitation, analysis and specification techniques.
  • To discuss various software design methodologies, the impact of cohesion and coupling measures on the goodness of the software design.
  • To discuss the importance of practicing different coding standards, guidelines and different testing strategies along with software reliability metrics and software quality management techniques & standards.

Course Outcomes

After reading this subject, students will be able to: <br />1. Choose a proper life cycle model for different real-life industrial applications, develop the SRS document, design the software using function-oriented approach (DFDs) and object-oriented approach (UML diagrams), code it and test the developed software using different testing techniques. <br />2. Understand the concepts of computer aided software engineering (CASE) and use different CASE tools in the development, maintenance and reuse of software systems.

Essential Reading

  • R. Mall, Fundamentals of Software Engineering, PHI Learning , 2014
  • R. S. Pressman, Software Engineering: A Practitioner's Approach, McGraw Hill Publications , 2006

Supplementary Reading

  • I. Sommerville, Software Engineering, Pearson Education , 2006
  • A. Behferooz and F. J. Hudson, Software Engineering Fundamentals, Oxford University Press , 2000