18001025661 / 8527794500

Syllabus | B.Tech-Computer Science & Engineering | Software Engineering

  Software Engineering Learning Schedule
Pre-requisites: Basic Computing 3 0 0 3



This course is an introduction to software engineering process. Students are learned about software development process models and examine life cycle phases of software starting from: planning, problem analysis, requirements definition, specification, design, implementation, testing, maintenance and project management. The course also presents a collection of techniques for formal software development including operational, algebraic, model-based, property-based specification methods for the verification of consistency and completeness of specifications and for the verification of software properties. Students will be given approximately assignments and coursework in a group project. Team software development project using concepts and methodologies learned in software engineering classes and has to build a practical implementation of software development.


The objective of this course is to:

  1. Design and develop software systems (including analysis, design, construction, maintenance, quality assurance and project management) using the appropriate theory, principles, tools and processes.
  2. Use appropriate computer science and mathematics principles in the development of software systems.
  3. Solve problems in a team environment through effective using various tools, techniques and processes.
  4. Introduce the current issues presently involved in effectively performing duties as a software practitioner in an ethical and professional manner for the benefit of society.
  5. Practice the lifelong learning needed in order to keep current as well as new challenging issues in real life scenario.
  6. Develop software in at least one application domains like Healthcare, safety, Society, Legal, Environment, Communica-tion etc.


At the end of the course student will be able to:

  1. To apply software engineering theory, principles, tools and processes, as well as the theory and principles of computer sci-ence and mathematics, to the development and maintenance of complex software systems.
  2. To design and validate various software prototypes and to develop quality software metrics.
  3. To participate, productively in software project teams involving students from both software engineering and other majors streams of computer scinec & engineering.
  4. To design and develop standard procedures through oral and written reports and software documentation evaluated by both peers and faculty.
  5. To elicit, analyze and specify software requirements through a productive working relationship with project stakeholders.
  6. Analyze and implement application of network system.


Unit I: Introduction to Software Engineering

Software Components, Software Characteristics, Software Crisis, Software Engineering Processes, Similarity and Differences from Conventional Engineering Processes, Software Quality Attributes. Software Development Life Cycle (SDLC) Models: Water Fall Model, Prototype Model, Spiral Model, Evolutionary Development Models, Iterative Enhancement Models.

Unit II: Software Requirement Specifications (SRS)

Requirement Engineering Process: Elicitation, Analysis, Documentation, Review and Management of User Needs, Feasibility Study, Information Modeling, Data Flow Diagrams, Entity Relationship Diagrams, Decision Tables, SRS Document, IEEE Stan-dards for SRS.

Software Quality Assurance (SQA): Verification and Validation, SQA Plans, Software Quality Frameworks, ISO 9000 Models, SEI-CMM Model.

Unit III: Software Design

Basic Concept of Software Design, Architectural Design, Low Level Design: Modularization, Design Structure Charts, Pseudo Codes, Flow Charts, Coupling and Cohesion Measures, Design Strategies: Function Oriented Design, Object Oriented Design, Top-Down and Bottom-Up Design. Software Measurement and Metrics: Various Size Oriented Measures: Halestead’s Software Science, Function Point (FP) Based Measures, Cyclomatic Complexity Measures: Control Flow Graphs.

Unit IV: Software Testing

Testing Objectives, Module Testing, Integration Testing, Acceptance Testing, Regression Testing, Testing for Functionality and Testing for Performance, Top-Down and Bottom-Up Testing Strategies: Test Drivers and Test Stubs, Structural Testing (White Box Testing), Functional Testing (Black Box Testing), Test Data Suit Preparation, Alpha and Beta Testing of Products. Static Test-ing Strategies: Formal Technical Reviews (Peer Reviews), Walk Through, Code Inspection, Compliance with Design and Coding Standards.

Unit V: Software Maintenance and Software Project Management

Software as an Evolutionary Entity, Need for Maintenance, Categories of maintenance: Preventive, Corrective and Perfective Main-tenance, Cost of Maintenance, Software Re-Engineering, Reverse Engineering. Software Configuration Management Activities, Change Control Process, Software Version Control, an Overview of CASE Tools. Estimation of Various Parameters such as Cost, Efforts, Schedule/Duration, Constructive Cost Models (COCOMO), Resource Allocation Models, Software Risk Analysis and Management.


  1. S. Pressman, Software Engineering: A Practitioners Approach, McGraw Hill.
  2. K. Aggarwal and Yogesh Singh, Software Engineering, New Age International Publishers.


  1. Rajib Mall, Fundamentals of Software Engineering, PHI Publication.
  2. Pankaj Jalote, Software Engineering, Wiley
  3. Carlo Ghezzi, M. Jarayeri, D. Manodrioli, Fundamentals of Software Engineering, PHI Publication.
  4. Ian Sommerville, Software Engineering, Addison Wesley.