Software Engineering
Complete Exam Guide
SDLC · Waterfall · Agile · Spiral · V-Model · Testing · Design Principles · DevOps · Microservices · Scrum · Risk Management · 47 MCQs with Explanations — for GATE, SSC, IBPS, UPSC, NDA & all tech exams
FoundationWhat is Software Engineering?
Software Engineering is the systematic, disciplined, and measurable approach to developing, operating, and maintaining software. It applies engineering principles to software development to ensure that software is reliable, efficient, maintainable, and delivered on time within budget.
- Goal: Produce reliable + economical + efficient software — all three together (so answer = “All of the above”)
- Software characteristics: intangible, does not wear out, is reusable, but is NOT free from defects
- SE bridges Computer Science (theory) and Project Management (practice)
- Key models: Waterfall, Agile, Spiral, V-Model, Incremental, Prototype
- Coined by: Margaret Hamilton (NASA, 1969 NATO conference)
- IEEE definition: “the application of a systematic, disciplined, quantifiable approach to software development”
Most Frequently Tested — Know the OrderSoftware Development Life Cycle (SDLC)
- First phase = Requirement Analysis (NOT design, NOT coding)
- Correct order: Requirement → Design → Implementation → Testing → Deployment → Maintenance
- User Acceptance Testing (UAT) occurs in the Testing phase (not Design or Maintenance)
- Each SDLC model handles these phases in a different order/style
- Requirements document = most important output of Phase 1; basis for all future work
Most Tested Topic in SESoftware Development Models
🌊 Waterfall
“One-Way Street” Sequential / LinearEach phase must be fully completed before the next begins. No going back. Like water flowing in one direction. Testing happens only after implementation is complete.
🔁 Agile
“Adapt & Deliver” Iterative / IncrementalWork divided into short sprints (2–4 weeks). Customer continuously involved. Working software delivered frequently. Embraces changing requirements even late in development.
🌀 Spiral
“Iterative + Risk Management” Iterative + Risk-drivenCombines Waterfall’s structure with Agile’s iteration. Each cycle (spiral) includes: Planning → Risk Analysis → Engineering → Evaluation. Risk is assessed at every phase. Best risk management of all models.
V️ V-Model
“Verification & Validation” Sequential + Test-parallelExtension of Waterfall. Each development phase has a CORRESPONDING test phase planned simultaneously. Left side = development. Right side = testing. Testing starts early but execution is late. No working version until end.
📦 Incremental
“Build in Parts” Iterative ReleasesSoftware is built and delivered in multiple increments. First increment = core functionality. Each subsequent increment adds more features. Customer gets a working (partial) product early and provides feedback.
🔬 Prototype
“Build to Learn” ExploratoryBuild a quick, incomplete version (prototype) for customer to evaluate. Customer provides feedback. Prototype is refined or discarded and the real system is built. Good for unclear requirements.
Most Asked ComparisonModel Comparison Table
| Feature | Waterfall | Agile | Spiral | V-Model | Incremental |
|---|---|---|---|---|---|
| Approach | Sequential | Iterative | Iterative + Risk | Sequential | Iterative releases |
| Requirements | Fixed upfront | Evolving (welcome changes) | May evolve | Fixed upfront | Prioritised |
| Customer Involvement | Low (only at start/end) | High (every sprint) | Medium (each cycle) | Low | Medium |
| Testing Phase | After implementation | Every sprint (continuous) | Each spiral | Planned early, run late | After each increment |
| Risk Management | Poor | Good | Excellent | Moderate | Good |
| Documentation | Heavy | Minimal | Moderate | Heavy | Moderate |
| Working Software | Only at end | Every sprint | Each spiral | Only at end | Each increment |
| Best For | Small, stable | Dynamic, complex | High-risk, large | Critical systems | Large, feature-rich |
| Memory Hook | One-Way Street | Sprints + Flexibility | Cycles + Risk Checks | Verify & Validate | Build in Parts |
- Unclear requirements → Agile or Prototype
- High risk / complex / large → Spiral
- Critical system (defence, medical) → V-Model
- Fixed, stable, small → Waterfall
- V-Model is also called the Verification and Validation model
- Agile testing = continuous | Waterfall testing = after implementation
Frequently Tested DefinitionsSoftware Design Principles
Modularity
Break system into separate, independent modules. Each module handles one specific function. Makes development, testing, and maintenance easier.
Abstraction
Show only essential features; hide implementation details from user. “What it does” not “how it does it.” Like a car’s steering wheel — you steer, not manage the mechanics.
Encapsulation
Wrapping data (variables) and methods (functions) into a single unit (class). Data is hidden from outside access. Foundation of Object-Oriented Programming (OOP).
Cohesion
How closely related the functions within a single module are. High cohesion = module does one thing well. Low cohesion = module does many unrelated things (bad).
Coupling
How much modules depend on each other. Low coupling = modules are independent, easy to change. High coupling = changing one breaks others (bad). Aim: high cohesion + low coupling.
- High Cohesion = GOOD | Low Coupling = GOOD (remember the opposites)
- Abstraction = hide details | Encapsulation = bundle data + methods together
- Modularity = the principle of dividing into independent parts (NOT cohesion, NOT abstraction)
- SOLID principles = Single Responsibility, Open/Closed, Liskov, Interface Segregation, Dependency Inversion
- Low coupling + High cohesion = well-designed, maintainable software
Very High Exam WeightSoftware Testing
🔬 Unit Testing
Test individual modules/functions by developers. First level. Catches bugs early. Developer performs — uses White Box testing knowledge.
🔗 Integration Testing
Test how modules work together. Verify interfaces between modules. Catches “glue” bugs. Primary purpose = verify module interactions.
⚙️ System Testing
Validate the complete, integrated system. Tests functional and non-functional requirements. Entire system tested as a whole.
✅ Acceptance Testing (UAT)
Final phase — customer verifies if software meets business requirements. User Acceptance Testing. Happens in the Testing phase of SDLC.
⬛ Black Box Testing
Tests software without knowledge of internal code. Tester only knows inputs and expected outputs. Focuses on functionality. Also called Functional Testing.
⬜ White Box Testing
Tests software with full knowledge of internal code. Tester examines code paths, branches, and logic. Also called Glass Box / Clear Box / Structural Testing.
🔄 Regression Testing
Ensures new code changes do not break existing functionality. Run after every bug fix or new feature addition. Critical for continuous development.
⚡ Performance Testing
Tests system behaviour under various load conditions. Includes Load Testing (normal), Stress Testing (beyond limit), and Spike Testing.
🛡️ Security Testing
Identifies vulnerabilities, threats, and risks in the software. Includes penetration testing, vulnerability scanning.
🔁 Smoke Testing
Preliminary testing to check if basic functions work before detailed testing. “Does it turn on?” type test. Quick sanity check.
🤖 Automated Testing
Uses scripts and tools to automatically run tests. Faster than manual, good for regression. Tools: Selenium, JUnit, TestNG.
👤 Manual Testing
Human tester manually executes test cases. More flexible for exploratory testing. Needed for UI/UX evaluation and new features.
- Testing done without code knowledge = Black Box | With code = White Box
- Regression testing = ensure new changes don’t break existing functionality
- In Waterfall: testing only after implementation | In Agile: every sprint
- Unit testing done by developers | UAT done by end users/clients
- Integration testing purpose = verify interfaces between modules (not individual modules)
- In Agile: testing after each sprint | V-Model: test planning early but execution late
| Testing Type | Who Performs | When | Knowledge of Code | Purpose |
|---|---|---|---|---|
| Unit Testing | Developer | During implementation | Yes (White Box) | Test individual modules |
| Integration Testing | Developer/Tester | After unit testing | Partial | Test module interactions |
| System Testing | QA Team | After integration | No (Black Box) | Validate full system |
| UAT / Acceptance | End User/Client | Before deployment | No | Verify business requirements |
| Regression Testing | QA Team | After every change | Both | Ensure no breakage |
CAPC — All 4 Types Must Be KnownSoftware Maintenance
Corrective
Fix bugs and defects discovered after delivery.
Adaptive
Modify software to work in changed environments (new OS, new hardware, new regulations).
Perfective
Add new features or improve performance based on user requests.
Preventive
Restructure/optimise code to prevent future problems — improve maintainability.
- Memory: C-A-P-P = Corrective (fix bugs) → Adaptive (new environment) → Perfective (add features) → Preventive (avoid future bugs)
- Fixing bugs = Corrective | New OS support = Adaptive | New features = Perfective | Code refactoring = Preventive
- Most expensive phase of SDLC = Maintenance (60-80% of total cost in long-running systems)
Very High Exam Weight — Know All RolesAgile Methodologies — Scrum, Kanban, XP
🏃 Scrum
Most popular Agile framework. Work divided into Sprints (2–4 weeks). Three key roles: Product Owner, Scrum Master, Development Team. Key artifacts: Product Backlog, Sprint Backlog, Burn-down Chart. Daily Stand-up meetings.
📋 Kanban
Visual workflow management. Uses a Kanban Board with columns: To-Do → In Progress → Done. No fixed sprint timeboxes. Work items (cards) move through columns. Limits Work-in-Progress (WIP) to avoid overload.
⚡ Extreme Programming (XP)
Emphasises technical excellence. Key practices: Test-Driven Development (TDD), Pair Programming, Continuous Integration, Frequent small releases, Heavy customer involvement, Simple Design.
| Scrum Element | Description | Exam Role |
|---|---|---|
| Product Owner | Defines features, prioritises backlog, represents customer needs | Most asked Scrum role |
| Scrum Master | Facilitates the process, removes obstacles/impediments for the team | “Who removes obstacles?” = Scrum Master |
| Development Team | Cross-functional group that builds the product increment | Self-organising team |
| Product Backlog | Prioritised list of all features and requirements | Primary Scrum artifact |
| Sprint Backlog | Tasks committed for the current sprint | Subset of product backlog |
| Sprint | Time-boxed iteration (typically 2–4 weeks) | Unit of Agile work |
| Burn-down Chart | Shows remaining work vs time in a sprint | Progress tracking tool |
| Velocity | Amount of work completed in a sprint (measured in story points) | Team capacity metric |
Tools & Risk ManagementProject Management & Risk
| Tool/Concept | What It Is | Used For |
|---|---|---|
| Gantt Chart | Bar chart showing tasks vs timeline | Project scheduling — most common answer in exams |
| PERT Chart | Program Evaluation and Review Technique — network diagram | Task dependencies and scheduling |
| CPM | Critical Path Method — finds longest path of tasks | Identifies which tasks cannot be delayed |
| Critical Path | The longest sequence of dependent tasks | Any delay on critical path = project delay |
| WBS | Work Breakdown Structure — hierarchical task decomposition | Breaking project into manageable pieces |
| Risk Type | Examples | Mitigation Approach |
|---|---|---|
| Project Risks | Budget overruns, schedule slippage, staffing | Detailed planning, buffer time, resource tracking |
| Technical Risks | System failures, technology incompatibilities, performance | Prototypes, testing, backup technologies |
| Business Risks | Changing market conditions, competitor moves, requirement changes | Market research, flexible architecture |
- Step 1: Risk Identification — what could go wrong?
- Step 2: Risk Analysis — how likely + how severe?
- Step 3: Risk Planning — what’s the mitigation strategy?
- Step 4: Risk Monitoring — ongoing tracking throughout project
- Risk mitigation = reducing the impact or probability of risk (not just identifying it)
- Business risks include: changing market conditions (NOT budget overruns — that’s project risk)
| Metric | Full Form / Meaning | What It Measures |
|---|---|---|
| LOC | Lines of Code | Size of software — simple but crude measure |
| KLOC | Kilo Lines of Code (1000 lines) | Productivity and effort estimation |
| Defect Density | Defects per KLOC | Quality — number of bugs per 1000 lines |
| Cyclomatic Complexity | McCabe’s metric | Number of independent paths in code — measures complexity |
| Function Points | FP | Measures software functionality (independent of programming language) |
| MTBF | Mean Time Between Failures | Reliability — average time between system failures |
| MTTR | Mean Time to Repair | How quickly failures are fixed |
Reusable Solutions to Common ProblemsDesign Patterns
| Category | Pattern | What It Does | Exam One-liner |
|---|---|---|---|
| Creational | Singleton | Ensures only ONE instance of a class exists throughout the application | “Only one instance” = Singleton |
| Creational | Factory | Creates objects without specifying the exact class to create | “Create without knowing class” = Factory |
| Creational | Builder | Constructs complex objects step by step | “Step-by-step object creation” = Builder |
| Structural | Adapter | Converts one interface to another (compatibility layer) | “Convert one interface to another” = Adapter |
| Structural | Decorator | Adds behaviour to objects dynamically without changing class | “Add features dynamically” = Decorator |
| Behavioral | Observer | When one object changes, all dependent objects are notified automatically | “Notify on change” = Observer |
| Behavioral | Strategy | Define a family of algorithms and make them interchangeable | “Switch algorithms at runtime” = Strategy |
| Behavioral | Proxy | Provides a surrogate/placeholder to control access to another object | “Control access via placeholder” = Proxy |
Current Affairs + Exam OverlapEmerging Trends in Software Engineering
⚙️ DevOps
Combines Development and Operations teams. Emphasises Continuous Integration (CI), Continuous Delivery (CD), Infrastructure as Code (IaC). Eliminates manual deployments. Goal: faster, reliable software delivery.
🔲 Microservices
Application built as small, independent, loosely coupled services. Each service handles one business function and can be deployed independently. Enables scalability, fault isolation, independent deployment. Opposite of monolithic architecture.
☁️ Cloud Computing
On-demand computing resources over the internet (AWS, Azure, GCP). IaaS (Infrastructure), PaaS (Platform), SaaS (Software). Enables elastic scaling, cost efficiency, global deployment.
🤖 AI in Software Engineering
AI tools that assist developers: automated code generation (GitHub Copilot), automated testing, AI-powered debugging, code review, requirements analysis. Reduces development time significantly.
🔗 API-First Development
Design APIs before building implementation. Enables parallel development of frontend and backend. RESTful APIs, GraphQL, gRPC are dominant. Foundation for microservices and integrations.
🔒 DevSecOps
Security integrated into DevOps pipeline from the start (“Shift Left Security”). Security testing automated in CI/CD. Static code analysis, dependency scanning, penetration testing in pipeline.
🌐 Serverless Architecture
Run code without managing servers. Functions execute on demand. Pay only for execution time. AWS Lambda, Azure Functions, Google Cloud Functions. Enables extreme scalability.
📱 Low-Code / No-Code
Build applications with minimal or no traditional coding. Visual drag-and-drop development. Enables non-developers to create apps. Growing rapidly for business workflows.
- DevOps = Dev + Ops | Key: CI/CD, IaC | NOT: manual deployments (manual deployments are NOT DevOps)
- Microservices key benefit = independent and scalable services (NOT centralized architecture)
- Continuous Delivery = software is always production-ready
- Cloud computing provides on-demand computing resources (AWS, Azure, GCP)
- Singleton pattern = only one instance | Adapter = converts interface | Observer = notifies on change
Tap Any Option to Reveal AnswerMCQ Practice — 47 Questions
Last-Minute PrepQuick Revision Flash Cards
💡 SE Basics
- Goal: Reliable + Economical + Efficient = All three
- Software: intangible, reusable, does not wear out
- Software is NOT free from defects
- SDLC first step: Requirement Analysis
🌊 Waterfall
- Sequential, linear, documentation-heavy
- Testing: after implementation only
- Hook: “One-Way Street”
- Best for: small, stable, fixed requirements
🔁 Agile
- Iterative sprints, flexible, continuous testing
- Hook: “Sprints + Flexibility”
- Best for: unclear, dynamic requirements
- Testing: every sprint
🌀 Spiral
- Iterative + Risk analysis every cycle
- Hook: “Cycles + Risk Checks”
- Best for: high-risk, large, complex projects
- Most expensive model
V️ V-Model
- = Verification & Validation model
- Each dev phase has matching test phase
- Hook: “Verify & Validate”
- Best for: critical systems (defence, medical)
🏗️ Design Principles
- High Cohesion = GOOD (related functions in module)
- Low Coupling = GOOD (less interdependency)
- Abstraction = hide complexity
- Encapsulation = bundle data + methods
🧪 Testing
- Black Box = no code knowledge
- White Box = full code knowledge
- Regression = ensure new changes don’t break
- Unit → Integration → System → UAT
🔧 Maintenance (CAPP)
- Corrective = fix bugs
- Adaptive = new environment (OS, hardware)
- Perfective = add new features
- Preventive = avoid future problems
🏃 Scrum Roles
- Product Owner = defines requirements, prioritises backlog
- Scrum Master = removes obstacles, facilitates
- Dev Team = builds the product
- Sprint = 2–4 weeks | Backlog = priority list
⚙️ DevOps
- Dev + Ops integration
- CI/CD = Continuous Integration / Delivery
- IaC = Infrastructure as Code
- NOT DevOps: manual deployments
- Continuous Delivery = always production-ready
🧩 Design Patterns
- Singleton = only ONE instance
- Adapter = converts interface
- Observer = notify on change
- Creational | Structural | Behavioral = 3 categories
📊 Metrics
- Defect Density = defects per KLOC
- Cyclomatic Complexity = code complexity paths
- MTBF = reliability (time between failures)
- MTTR = time to repair failures
- Critical Path = longest path in project
