Q.2. i. What does the V-Model emphasize in software development? The V-Model (Validation and Verification Model) emphasizes that every phase in the software development lifecycle must have a corresponding, strictly planned testing phase. Instead of moving downward in a linear way, the process steps bend upwards after the coding phase to form a typical 'V' shape. It highlights that test planning and test case creation should happen early, right alongside the requirement and design phases, rather than waiting until coding is finished.
Q.2. ii. Which model is best suited for well-understood requirements? The Waterfall Model is best suited for projects with well-understood, clearly defined, and fixed requirements. Because it is a linear sequential model, it assumes that all requirements can be gathered completely at the very beginning of the project, making it ideal for straightforward, predictable projects where changes are unlikely.
Q.2. iii. Define cyclomatic complexity Cyclomatic complexity is a software metric used to indicate the logical complexity of a program. It quantitatively measures the number of linearly independent paths through a program's source code. Developers use it to determine how difficult a piece of code will be to test and maintain. It is calculated using the formula: (Where represents the number of edges and represents the number of nodes in the control flow graph).
Q.2. iv. How is software reliability measured? Software reliability is measured in terms of the probability of failure-free operation of a computer program in a specified environment for a specified amount of time. It is typically measured using time-based metrics such as:
Q.2. v. What is the difference between black-box and white-box testing? Black-box testing focuses solely on the external behavior, inputs, and expected outputs of the software without looking at the internal source code (testing functionality). White-box testing (or structural testing) requires the tester to have deep knowledge of the internal code structure, allowing them to test logical paths, loops, and conditional statements to ensure the internal mechanisms work correctly.
Q.2. vi. Define integration testing. Integration testing is a phase in software testing where individual, isolated software modules are combined and tested as a group. The primary purpose is to expose faults in the interaction and data exchange between these integrated units. Common strategies include Top-Down integration, Bottom-Up integration, and Sandwich (hybrid) integration.
Q.2. vii. What is coupling in software design? Coupling is a measure of the degree of interdependence or connection between different software modules. In good software design, low coupling is highly desirable. If modules are loosely coupled, a change in one module is less likely to cause unintended errors or require massive rewrites in other connected modules, making the system easier to maintain.
Q.2. viii. What is risk mitigation? Risk mitigation is a proactive project management strategy aimed at reducing the probability of a risk occurring, or minimizing its negative impact if it does happen. For example, if a high turnover of key developers is a identified risk, a mitigation strategy would be enforcing rigorous code documentation and cross-training team members so the project does not halt if someone leaves.
Q.2. ix. What is the difference between proactive and reactive risk strategies? A proactive risk strategy involves identifying potential risks before the project begins and creating plans to avoid them or minimize their impact (a "preventive" approach). A reactive risk strategy acts only after a risk has materialized into an actual problem, relying on "firefighting" or crisis management to fix the issue, which is generally more costly and stressful.
Q.2. x. Differentiate between coupling and cohesion. Coupling refers to the relationship and dependencies between different modules (good design requires low coupling). Cohesion refers to the internal strength and focus of a single module; it measures how closely related the internal operations of a module are to one another (good design requires high cohesion, meaning the module does exactly one well-defined job).
Q.2. xi. Define the term Metrics? Discuss Size Oriented Metrics. Software Metrics are quantifiable measures used to assess the quality, cost, or efficiency of a software product or its development process. Size Oriented Metrics measure the physical volume of the software, almost always using Lines of Code (LOC) or Thousands of Lines of Code (KLOC). These metrics are used to calculate productivity (e.g., pages of documentation per KLOC) and quality (e.g., errors per KLOC).
Introduction Both Agile and Spiral models are iterative approaches to software development, meaning they build software in repeated cycles rather than one massive push. However, their core philosophies and ideal use cases are vastly different.
The Agile Model Agile is an umbrella term for methodologies (like Scrum or Kanban) focused on continuous iteration, rapid delivery, and extreme flexibility. It breaks the project down into tiny increments (sprints) lasting 1-4 weeks. It relies heavily on constant communication, cross-functional teams, and incorporating user feedback at every step.
The Spiral Model The Spiral Model, proposed by Barry Boehm, is highly risk-driven. It visualizes the process as a spiral with multiple loops. Each loop represents a phase (like planning, risk analysis, engineering, and evaluation). Its defining characteristic is the intense Risk Analysis phase in every single iteration, utilizing prototyping to resolve major risks before heavy coding begins.
Comparison Table
| Feature | Agile Model | Spiral Model |
|---|---|---|
| Primary Focus | Flexibility, speed, and continuous user feedback. | Rigorous risk assessment and risk resolution. |
| Process Style | Lightweight, highly adaptable, minimal documentation. | Heavyweight, structured, formal documentation. |
| Customer Involvement | Customer is involved continuously throughout the daily/weekly process. | Customer evaluates the prototypes at the end of each spiral iteration. |
| Cost & Budget | Generally budget-friendly, changes are expected. | Highly expensive due to extensive risk analysis and planning. |
When to Use Each Model
The Incremental Model Explained The Incremental process model combines elements of linear and iterative development. Instead of building the entire software system at once, the project is broken down into smaller, more manageable pieces called "increments."
Improvements Over the Waterfall Model
1. Improvement in Flexibility
2. Improvement in Risk Management
(Note: This is a high-frequency exam question, appearing similarly in multiple past papers).
Defining Software Quality Software Quality is the degree to which a software product meets the exact needs and expectations of its users. Specifically, it involves three pillars:
Tasks of Software Quality Assurance (SQA) SQA is an umbrella activity applied throughout the software process. Its key tasks include:
What is Risk in Software Engineering? In software engineering, a risk is a potential future problem or event that may or may not occur. If it does occur, it will have a negative impact on the project's schedule, budget, or the quality of the final software. Every risk is characterized by two factors: Uncertainty (the risk might happen, but it's not a 100% guarantee) and Loss (if the risk becomes a reality, unwanted consequences or losses will occur).
Differentiation of Risk Types
1. Project Risks
2. Product Risks (Technical Risks)
3. Business Risks
Open this section to load past papers