Back to Full Curriculum
CS303Semester 63 (3-0-0)Core

Software Engineering

Software crisis and characteristics of software, Software development life cycle (SDLC) models (waterfall, prototyping, iterative, spiral), Agile manifesto and principles, Scrum framework (roles, ceremonies, artifacts...

01

Unit 1: Software Engineering Foundations and Process Models

Software crisis and characteristics of software, Software development life cycle (SDLC) models (waterfall, prototyping, iterative, spiral), Agile manifesto and principles, Scrum framework (roles, ceremonies, artifacts), Kanban and lean software development, Capability Maturity Model Integration (CMMI) levels, Process selection criteria based on project characteristics and risk profiles.

02

Unit 2: Requirements Engineering and Analysis

Requirements elicitation techniques (interviews, surveys, observation, JAD sessions), Functional vs. non-functional requirements, Use case modeling (actors, scenarios, relationships), User stories and acceptance criteria, Requirements traceability matrix, Requirements validation (reviews, prototyping), Change management and version control of requirements specifications.

03

Unit 3: Software Design Principles and UML

Design concepts (modularity, cohesion, coupling, abstraction), Architectural patterns (MVC, layered, microservices), UML 2.x diagrams (class, sequence, activity, state, component, deployment), Design principles (SOLID, DRY, KISS), Design patterns (creational, structural, behavioral - focusing on Strategy, Observer, Factory), Refactoring techniques and code smells.

04

Unit 4: Software Testing Fundamentals and Strategies

Testing principles (early testing, defect clustering, pesticide paradox), Test case design techniques (equivalence partitioning, boundary value analysis, decision table testing), Levels of testing (unit, integration, system, acceptance), Test-driven development (TDD) and behavior-driven development (BDD), Test automation frameworks and tools, Mutation testing concepts.

05

Unit 5: Software Project Management and Quality

Effort estimation techniques (COCOMO, function point analysis, planning poker), Project scheduling (Gantt charts, PERT/CPM), Risk management (identification, analysis, mitigation), Software metrics (size, complexity, quality metrics), Software configuration management (version control, branching strategies), Software quality assurance (SQA) and process audits, DevOps practices and CI/CD pipelines.

Top skills

Cloud ComputingDevOpsRobotics

Structure

Semester6
Credits3 (3-0-0)
CategoryCore