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:
|
| 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.
|
