Software Engineering applies systematic engineering principles to design, develop, test, and maintain software, and the Software Development Life Cycle (SDLC) defines the structured phases — from requirement gathering to maintenance — that a software project follows. IBPS SO IT Officer tests this subject mainly through comparisons: Waterfall vs Agile, Verification vs Validation, Coupling vs Cohesion, and the types of testing and maintenance, rather than numerical or implementation-heavy questions.
This guide is a single-page revision hub: concise notes, comparison tables, and a priority order for what to study first, followed by topic-wise and full-length mock tests.
Topic Priority for Revision
Previous year papers show a consistent pattern in which Software Engineering topics get tested most. Use this single table to sequence your revision.
| Topic | Exam Weightage | Revise |
|---|---|---|
| SDLC Models (Waterfall, Agile, Spiral, V-Model) | ⭐⭐⭐⭐⭐ | First |
| Software Testing Types | ⭐⭐⭐⭐⭐ | First |
| Verification vs Validation | ⭐⭐⭐⭐⭐ | First |
| Coupling & Cohesion | ⭐⭐⭐⭐☆ | First |
| Agile & Scrum Concepts | ⭐⭐⭐⭐☆ | Second |
| Software Maintenance Types | ⭐⭐⭐⭐☆ | Second |
| COCOMO & Cost Estimation | ⭐⭐⭐☆☆ | Second |
| CMM Levels | ⭐⭐⭐☆☆ | Third |
| Risk Management | ⭐⭐☆☆☆ | Third |
| UML Diagrams & CASE Tools | ⭐⭐☆☆☆ | Third |
Exam-day shortage of time? Cover every "First" row above, then Agile/Scrum and Software Maintenance — together these account for the majority of Software Engineering questions in past IBPS SO IT Officer papers.
Start Your Software Engineering Revision
Revise the topics below, then reinforce them with a topic-wise mock test built for the IBPS SO IT Officer exam.
1. Software Engineering Fundamentals
Software Engineering is the systematic application of engineering principles to the design, development, testing, and maintenance of software, aiming to build reliable software within time and budget constraints.
Why Software Engineering Matters
| Without Software Engineering | With Software Engineering |
|---|---|
| Unpredictable cost and schedule overruns | Structured estimation and planning |
| Poor quality, hard-to-maintain code | Defined quality standards and processes |
| No clear process to follow | A repeatable, documented life cycle |
Q: What is the difference between a Program and Software? A: A Program is a set of instructions written to perform a specific task, while Software includes the program along with documentation, user interfaces, and support materials, and is built following an engineered process to meet defined requirements.
Quick Revision
- Software Engineering = engineering discipline applied to software development.
- Goal: reliable, maintainable software within cost, time, and quality constraints.
- Software ≠ Program — software includes documentation and follows a defined process.
2. SDLC Models
The Software Development Life Cycle (SDLC) is a structured sequence of phases — Requirement Analysis, Design, Implementation, Testing, Deployment, and Maintenance — that a software project passes through, and different SDLC models organize these phases differently.

Common SDLC Models
| Model | Key Feature | Best Suited For |
|---|---|---|
| Waterfall | Sequential; each phase completes before the next begins | Projects with clear, fixed requirements |
| V-Model | Each development phase has a corresponding testing phase | Projects needing high reliability (e.g., safety-critical) |
| Iterative | Software is built in repeated cycles, refining with each iteration | Projects where requirements evolve gradually |
| Spiral | Combines iterative development with explicit risk analysis at each loop | Large, high-risk, complex projects |
| Prototype | A working sample is built early for user feedback before full development | Projects with unclear or evolving requirements |
| Agile | Software delivered in short iterations called sprints, with continuous feedback | Projects needing flexibility and fast delivery |
Q: What is the difference between the Waterfall Model and the Agile Model? A: The Waterfall Model follows a fixed, sequential set of phases where each must complete before the next begins, making it rigid but predictable and easy to manage. The Agile Model develops software in short, iterative sprints with continuous customer feedback, making it flexible and better suited to changing requirements.
Q: What is the main advantage of the Spiral Model over the Waterfall Model? A: The Spiral Model explicitly incorporates risk analysis at every iteration, allowing risks to be identified and mitigated early, whereas the Waterfall Model has no built-in mechanism to reassess risk once a phase is complete.
Q: What is the main drawback of the Waterfall Model? A: The Waterfall Model does not accommodate changing requirements well, because moving back to an earlier phase after testing or deployment is difficult and costly — this rigidity is its most commonly tested limitation.
Quick Revision
- Waterfall → sequential, rigid, best for fixed requirements.
- V-Model → testing phase paired with each development phase.
- Spiral → iterative + risk analysis at every loop.
- Agile → sprint-based, flexible, continuous feedback.
- Prototype → early working sample for unclear requirements.
3. Requirement Engineering
Requirement Engineering is the process of gathering, analyzing, documenting, and managing the requirements a software system must satisfy, typically recorded in a Software Requirement Specification (SRS) document.
Types of Requirements
| Type | Description |
|---|---|
| Functional Requirements | Define what the system should do (features, functions) |
| Non-Functional Requirements | Define how the system should perform (speed, security, usability) |
| Domain Requirements | Requirements specific to the application's problem domain |
Q: What is the difference between Functional and Non-Functional requirements? A: Functional requirements define specific behaviors or features the system must perform, such as "the system shall allow users to log in," while Non-Functional requirements define quality attributes of the system, such as performance, security, and usability, that describe how well the system performs its functions.
Quick Revision
- SRS = formal document capturing all requirements.
- Functional = what the system does; Non-Functional = how well it does it.
- Requirement Engineering happens before Design in the SDLC.
4. Software Design: Coupling & Cohesion
Coupling measures how dependent different modules of a system are on each other, while Cohesion measures how closely related the responsibilities within a single module are — good software design aims for low coupling and high cohesion.
Coupling (Lower Is Better)
| Type | Dependency Level |
|---|---|
| Content Coupling | Highest (worst) |
| Common Coupling | High |
| Control Coupling | Moderate |
| Data Coupling | Low (best) |
Cohesion (Higher Is Better)
| Type | Cohesion Level |
|---|---|
| Coincidental Cohesion | Lowest (worst) |
| Logical Cohesion | Low |
| Procedural Cohesion | Moderate |
| Functional Cohesion | Highest (best) |
Q: What is the difference between Coupling and Cohesion? A: Coupling measures the degree of interdependence between separate modules, and lower coupling is desirable because it makes modules easier to modify independently. Cohesion measures how closely the internal responsibilities of a single module are related, and higher cohesion is desirable because it makes each module more focused and maintainable.
Q: Why is low coupling and high cohesion considered good software design? A: Low coupling and high cohesion together make a system easier to maintain, test, and modify, because changes to one module are less likely to affect other modules, and each module has a single, well-defined responsibility.
Quick Revision
- Coupling → between modules; want it low.
- Cohesion → within a module; want it high.
- Data Coupling = best coupling type; Functional Cohesion = best cohesion type.
5. Software Testing
Software Testing is the process of executing a program to identify defects and verify that it meets specified requirements, carried out through multiple levels and two broad approaches.
Levels of Testing
| Level | What It Tests |
|---|---|
| Unit Testing | Individual components or functions in isolation |
| Integration Testing | Interaction between combined modules |
| System Testing | The complete, integrated system against requirements |
| Acceptance Testing | Whether the system satisfies business needs, done by end users |
Testing Approaches
| Approach | Basis |
|---|---|
| Black Box Testing | Tests functionality without knowledge of internal code structure |
| White Box Testing | Tests internal logic and code structure directly |
Q: What is the difference between Verification and Validation? A: Verification checks whether the software is being built correctly by reviewing documents, design, and code without executing the program, answering "Are we building the product right?" Validation checks whether the actual software meets user requirements by executing the program, answering "Are we building the right product?"
Q: What is the difference between Black Box and White Box Testing? A: Black Box Testing evaluates a system's functionality without any knowledge of its internal code structure, focusing only on inputs and outputs, while White Box Testing examines the internal logic, code paths, and structure directly, requiring programming knowledge.
Q: What is the correct order of software testing levels? A: The standard order is Unit Testing, followed by Integration Testing, then System Testing, and finally Acceptance Testing, progressing from the smallest components to the complete system as validated by end users.
Quick Revision
- Unit → Integration → System → Acceptance is the standard testing order.
- Verification = building it right (no execution); Validation = building the right thing (execution).
- Black Box = functionality only; White Box = internal code logic.
6. Software Cost Estimation: COCOMO
COCOMO (Constructive Cost Model) is a software cost estimation model that predicts the effort, time, and cost of a software project based on its estimated size in lines of code (KLOC).
COCOMO Project Modes
| Mode | Project Characteristics |
|---|---|
| Organic | Small, familiar, experienced team, straightforward requirements |
| Semi-Detached | Medium size and complexity, mixed team experience |
| Embedded | Large, complex, tight constraints (hardware, regulations) |
Q: What does COCOMO stand for and what is it used for? A: COCOMO stands for Constructive Cost Model. It is used to estimate the effort, development time, and cost of a software project based on the estimated size of the project in thousands of lines of code (KLOC).
Q: Which COCOMO mode applies to a small, simple project developed by an experienced team? A: The Organic mode applies, since it covers small, straightforward projects with familiar requirements developed by teams with prior experience in similar systems.
Quick Revision
- COCOMO estimates effort, time, and cost from project size (KLOC).
- Three modes: Organic (simple/small) → Semi-Detached (medium) → Embedded (complex/large).
7. Agile Methodology & Scrum
Agile is a software development approach that delivers working software in short, iterative cycles called sprints, prioritizing customer collaboration and adaptability over rigid upfront planning, with Scrum as its most widely used framework.
Key Scrum Roles & Terms
| Term | Definition |
|---|---|
| Scrum Master | Facilitates the Scrum process and removes obstacles for the team |
| Product Owner | Represents stakeholders and prioritizes the product backlog |
| Sprint | A fixed, short time period (usually 1–4 weeks) to deliver a working increment |
| Product Backlog | A prioritized list of all desired features and requirements |
| Daily Standup | A short daily meeting where team members share progress and blockers |
Q: What is a Sprint in Scrum? A: A Sprint is a fixed, short time-boxed period, typically one to four weeks, during which a Scrum team works to complete a set amount of work from the product backlog and deliver a potentially shippable increment.
Q: What is the role of a Scrum Master? A: The Scrum Master facilitates the Scrum process, removes obstacles that block the team's progress, and ensures the team follows Scrum practices, but does not manage the team in a traditional hierarchical sense.
Quick Revision
- Agile = iterative, adaptive, customer-collaboration-driven.
- Scrum = most common Agile framework, organized around Sprints.
- Scrum Master = facilitator; Product Owner = prioritizes backlog.
8. Software Maintenance
Software Maintenance is the process of modifying software after delivery to fix defects, adapt to environment changes, improve performance, or prevent future issues, classified into four types.
| Type | Purpose |
|---|---|
| Corrective | Fixes bugs and defects discovered after release |
| Adaptive | Adjusts software to changes in environment (OS, hardware, platform) |
| Perfective | Improves performance, features, or usability without fixing a defect |
| Preventive | Modifies software to prevent future problems (e.g., improving maintainability) |
Q: What are the four types of software maintenance? A: The four types are Corrective (fixing bugs), Adaptive (adjusting to environment changes like a new OS version), Perfective (improving performance or adding features), and Preventive (restructuring code to prevent future problems).
Q: What is the difference between Adaptive and Perfective maintenance? A: Adaptive maintenance modifies software to work correctly in a changed environment, such as a new operating system, while Perfective maintenance improves the software's performance or usability even though it already works correctly.
Quick Revision
- Corrective → fix bugs; Adaptive → adjust to new environment.
- Perfective → enhance without a defect; Preventive → reduce future risk.
9. Software Quality: CMM Levels
The Capability Maturity Model (CMM) is a five-level framework used to assess and improve the maturity of an organization's software development process.
| Level | Name | Characteristic |
|---|---|---|
| 1 | Initial | Process is unpredictable, poorly controlled, and reactive |
| 2 | Repeatable | Basic project management processes are established |
| 3 | Defined | Process is documented, standardized, and consistent across projects |
| 4 | Managed | Process is measured and controlled using quantitative metrics |
| 5 | Optimizing | Focus shifts to continuous process improvement |
Q: What is the highest level of the Capability Maturity Model? A: Level 5, Optimizing, is the highest CMM level, where an organization focuses on continuous process improvement using quantitative feedback from earlier levels.
Quick Revision
- CMM has 5 levels: Initial → Repeatable → Defined → Managed → Optimizing.
- Level 1 = unpredictable/ad hoc; Level 5 = continuous improvement.
10. Risk Management & UML Basics
Software Risk Management is the process of identifying, analyzing, and mitigating potential risks that could affect a project's cost, schedule, or quality, while UML (Unified Modeling Language) provides standardized diagrams to visualize a system's design.
Common UML Diagram Types
| Diagram | Purpose |
|---|---|
| Use Case Diagram | Shows interactions between users (actors) and the system |
| Class Diagram | Shows system structure through classes and their relationships |
| Sequence Diagram | Shows the order of interactions between objects over time |
| Activity Diagram | Shows the workflow or business process logic |
Q: What is the purpose of a Use Case Diagram in UML? A: A Use Case Diagram shows the interactions between external actors (users or other systems) and the system being built, capturing the system's functional requirements from a user's perspective.
Quick Revision
- Risk Management = identify → analyze → mitigate potential project risks.
- UML = standard diagram notation for software design.
- Use Case = user-system interaction; Class Diagram = system structure.
Previous Year Focus
Based on previous IBPS SO IT Officer and related competitive examinations, the following topics have consistently received higher weightage.
| Topic | Exam Frequency |
|---|---|
| SDLC Models (Waterfall/Agile/Spiral) | ⭐⭐⭐⭐⭐ |
| Verification vs Validation | ⭐⭐⭐⭐⭐ |
| Software Testing Types | ⭐⭐⭐⭐⭐ |
| Coupling & Cohesion | ⭐⭐⭐⭐☆ |
| Agile & Scrum Terminology | ⭐⭐⭐⭐☆ |
| Software Maintenance Types | ⭐⭐⭐⭐☆ |
| COCOMO | ⭐⭐⭐☆☆ |
| CMM Levels | ⭐⭐⭐☆☆ |
| UML Diagrams | ⭐⭐☆☆☆ |
Quick Revision Cheat Sheet
One final scan before your mock test.
| Concept | Remember |
|---|---|
| SDLC phases | Requirement → Design → Implementation → Testing → Deployment → Maintenance |
| Rigid, sequential SDLC model | Waterfall |
| Iterative, sprint-based SDLC model | Agile |
| Risk-focused SDLC model | Spiral |
| Verification | Are we building the product right? (no execution) |
| Validation | Are we building the right product? (execution) |
| Testing order | Unit → Integration → System → Acceptance |
| Good coupling | Low |
| Good cohesion | High |
| COCOMO estimates | Effort, time, cost (from KLOC) |
| Scrum time-box | Sprint (1–4 weeks) |
| Highest CMM level | 5 — Optimizing |
| Corrective maintenance | Fixes bugs |
Practice Topic-wise Mock Tests
Revise one topic at a time, then reinforce it immediately with a matching test.
Ready for the Software Engineer Mock Tests?
Final Thoughts
Software Engineering rewards clear comparisons over memorization: know each SDLC model's trade-offs, be able to separate Verification from Validation and Coupling from Cohesion without hesitation, and keep the Agile/Scrum vocabulary and the four maintenance types on the tip of your tongue. Work through this guide top to bottom once, then validate your recall with MockSensei's topic-wise tests before attempting a full-length Professional Knowledge mock.
