Software Engineering
Subject Overview
Software Engineering covers the full software development lifecycle — process models (waterfall, incremental, evolutionary, unified process) and agile methods (XP, Scrum), requirements engineering and risk/project management, design and structural modeling (UML diagrams) and testing strategies, and quality management, release management and product sustenance. A 3-credit core theory paper.
Unit-wise Syllabus
4 units — click WhatsApp below to get the full notes for each
Unit 1: Process models and agile development
Evolving role and changing nature of software, layered technology, process framework, waterfall/incremental/evolutionary process models, the unified process, agility principles and agile methods, plan-driven vs agile development, extreme programming, Scrum
Unit 2: Requirements and project management
Functional and non-functional requirements, requirements specification and engineering processes, elicitation, analysis, validation and management; risk strategies, identification, projection, refinement, RMMM plan; software pricing, plan-driven development, project scheduling, agile planning, estimation techniques
Unit 3: Design and testing
Design process and quality, design concepts and model, software architecture, data design, class/sequence/collaboration/use case/component diagrams; testing strategies, black-box and white-box testing, validation and system testing, debugging; product metrics for analysis, design, source code, testing and maintenance
Unit 4: Quality and release management
Quality concepts, software quality assurance, formal technical reviews, statistical SQA, software reliability, release planning, development and build plans, release strategies, post-deployment monitoring, maintenance, updates, end of life and migration strategies
