Group C — Long / Numerical Questions (15 Marks Each)

Q1a) Calculate McCabe's Cyclomatic Complexity V(G) for a program flow graph with E=14 edges, N=10 nodes, P=1. List all 5 independent paths. b) Design test cases using Basis Path Testing. c) Explain Black-Box vs White-Box testing comparison.

Master Answer: Cyclomatic Complexity & Basis Path Testing

Part (a) Calculate Cyclomatic Complexity V(G)

Given: Edges \(E = 14\), Nodes \(N = 10\), Connected Components \(P = 1\).

Using the Edge-Node formula:

\[ V(G) = E - N + 2P \]

\[ V(G) = 14 - 10 + 2(1) = 4 + 2 = 6 \]

The Cyclomatic Complexity is 6. This means there are exactly 6 independent paths through the program flow graph.

Independent Paths (Assumed based on standard loops/branches):

  1. Path 1: 1 → 2 → 10 (Direct exit)
  2. Path 2: 1 → 2 → 3 → 8 → 9 → 10
  3. Path 3: 1 → 2 → 3 → 4 → 7 → 8 → 9 → 10
  4. Path 4: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10
  5. Path 5: 1 → 2 → 3 → 8 → 2 → ... → 10 (Loop iteration)
  6. Path 6: 1 → 2 → 3 → 4 → 7 → 4 → ... → 10 (Inner Loop iteration)

Part (b) Design Test Cases using Basis Path Testing

Basis Path testing guarantees that every statement and every branch is executed at least once.

  • Test Case 1 (for Path 1): Input values that cause the program to hit the very first error/exit condition (e.g., passing a Null pointer).
  • Test Case 2 (for Path 2): Input values that bypass the inner loops entirely.
  • Test Cases 3-6: Inputs designed specifically to force the execution to walk through the various loop combinations and internal if/else branches identified in paths 3 through 6.

Part (c) Black-Box vs White-Box Testing

Feature Black-Box Testing White-Box Testing
Focus External behavior and functionality (Inputs/Outputs). Internal logic, code structure, and execution paths.
Knowledge Required No programming knowledge needed. Based on SRS. Requires deep programming knowledge and access to source code.
Techniques Equivalence Partitioning, Boundary Value Analysis. Statement Coverage, Branch Coverage, Basis Path Testing.
Performed By Independent QA Testers, End Users. Software Developers.
Q2a) Calculate Effort, Development Time, and Average Staffing for an Organic software project estimated at 32 KLOC using Basic COCOMO Model (a=2.4, b=1.05, c=2.5, d=0.38). b) Calculate Function Points for a system with 10 External Inputs (Simple), 12 External Outputs (Average), 8 External Inquiries (Complex), 4 Internal Logical Files (Average), 6 External Interface Files (Simple). Sum of Complexity Adjustment Factors ΣFi = 45.

Master Answer: Software Estimation (COCOMO & FP)

Part (a) Basic COCOMO Calculation

Given: Size = 32 KLOC. Mode = Organic. Constants: \(a = 2.4, b = 1.05, c = 2.5, d = 0.38\).

  1. Effort (E):
    \(E = a \times (KLOC)^b\)
    \(E = 2.4 \times (32)^{1.05} = 2.4 \times 38.05 = \mathbf{91.32 \text{ Person-Months}}\)
  2. Development Time (Tdev):
    \(T_{dev} = c \times (E)^d\)
    \(T_{dev} = 2.5 \times (91.32)^{0.38} = 2.5 \times 5.54 = \mathbf{13.87 \text{ Months}}\)
  3. Average Staffing (SS):
    \(SS = \frac{E}{T_{dev}} = \frac{91.32}{13.87} = \mathbf{6.58 \text{ Persons (round up to 7)}}\)

Part (b) Function Point (FP) Calculation

Given parameters and their standard weights:

  • External Inputs (Simple: weight 3): \(10 \times 3 = 30\)
  • External Outputs (Average: weight 5): \(12 \times 5 = 60\)
  • External Inquiries (Complex: weight 6): \(8 \times 6 = 48\)
  • Internal Logical Files (Average: weight 10): \(4 \times 10 = 40\)
  • External Interface Files (Simple: weight 5): \(6 \times 5 = 30\)

Step 1: Unadjusted Function Points (UFP)

\(UFP = 30 + 60 + 48 + 40 + 30 = \mathbf{208}\)

Step 2: Value Adjustment Factor (VAF)

Given \(\Sigma F_i = 45\).

\(VAF = 0.65 + (0.01 \times \Sigma F_i) = 0.65 + (0.01 \times 45) = 0.65 + 0.45 = \mathbf{1.10}\)

Step 3: Final Adjusted Function Points (FP)

\(FP = UFP \times VAF = 208 \times 1.10 = \mathbf{228.8 \text{ FP}}\)

Q3a) Draw Data Flow Diagram (Level 0 Context Diagram & Level 1 DFD) for an Online Examination System. b) Draw UML Class Diagram and Sequence Diagram for User Login and Exam Submission.

Master Answer: DFD and UML for Online Examination System

Part (a) Data Flow Diagrams (DFD)

Level 0 Context Diagram:

graph LR S((Student)) -->|"Login Credentials"| O[Online Exam System] S -->|"Exam Answers"| O O -->|"Exam Results"| S A((Admin)) -->|"Questions/Keys"| O O -->|"Usage Reports"| A

Level 1 DFD:

Decomposes the main system into:

  1. Process 1.0 (Auth): Validates Student credentials against User DB.
  2. Process 2.0 (Exam Engine): Retrieves questions from Question DB and serves them.
  3. Process 3.0 (Evaluation): Compares submitted answers against Answer Key DB.
  4. Process 4.0 (Reporting): Generates scores and saves to Results DB.

Part (b) UML Class and Sequence Diagram

Class Diagram:

classDiagram class User { +String username +String password +login() } class Student { +int studentId +takeExam() } class Exam { +int examId +List questions +submitAnswers() } User <|-- Student Student "1" -- "*" Exam : Takes
Q4a) Develop complete Software Test Plan for an E-Commerce Shopping Cart application. b) Write detailed Test Cases (Test ID, Description, Input, Expected Output, Pass/Fail) using Equivalence Partitioning and Boundary Value Analysis for credit card expiration date input (Month 1-12, Year 2026-2035).

Master Answer: Software Test Plan and Test Cases

Part (a) Test Plan for E-Commerce Shopping Cart

A Software Test Plan outlines the testing strategy, scope, resources, and schedule.

  • Scope: Adding items to cart, updating quantities, removing items, calculating totals (including tax/shipping), and proceeding to checkout.
  • In-Scope Testing Types: Functional Testing, UI Testing, Integration Testing (Cart to Payment Gateway), Performance Testing (handling Black Friday loads).
  • Test Environment: Staging server mirroring production. Browsers: Chrome, Firefox, Safari. Devices: Desktop, iOS, Android.
  • Entry/Exit Criteria: Entry: Code freeze achieved. Exit: 100% of Critical/High severity bugs resolved, 90% test case pass rate.

Part (b) Test Cases using Equivalence Partitioning & BVA

Scenario: Credit Card Expiration Date (Month: 1-12, Year: 2026-2035)

Test ID Description (Technique) Input (MM, YYYY) Expected Output Pass/Fail
TC01 Valid Expiration (Eq. Partition) 05, 2029 Accepted
TC02 Invalid Month Low (BVA) 00, 2029 Rejected (Error)
TC03 Valid Month Min Bound (BVA) 01, 2029 Accepted
TC04 Valid Month Max Bound (BVA) 12, 2030 Accepted
TC05 Invalid Month High (BVA) 13, 2030 Rejected (Error)
TC06 Invalid Year Past (Eq. Partition) 06, 2020 Rejected (Expired)
Q5a) Explain Agile Scrum Framework end-to-end. b) Describe Sprint Planning, Daily Standup, Sprint Review, Sprint Retrospective, and Backlog Refinement. c) Compare Agile vs Traditional Waterfall on 6 dimensions.

Master Answer: Agile Scrum Framework

Part (a) & (b) End-to-End Scrum Workflow

Scrum is an iterative framework operating in time-boxed Sprints (1-4 weeks).

graph TD PB[(Product Backlog)] --> SP[Sprint Planning] SP --> SB[(Sprint Backlog)] SB --> DS((Daily Scrum)) DS --> DEV[Development] DEV --> SR[Sprint Review] SR --> SRET[Sprint Retrospective] SRET --> PB
  • Sprint Planning: The entire team selects high-priority items from the Product Backlog and moves them to the Sprint Backlog, agreeing on a Sprint Goal.
  • Daily Standup (Daily Scrum): 15-minute sync-up to discuss progress, daily goals, and blockers.
  • Sprint Review: At the end of the sprint, the team demonstrates the potentially shippable product increment to stakeholders.
  • Sprint Retrospective: Internal team meeting to discuss what went well, what failed, and how to improve processes for the next sprint.
  • Backlog Refinement (Grooming): Ongoing activity where the Product Owner adds detail, estimates, and order to items in the Product Backlog.

Part (c) Agile vs Traditional Waterfall

Dimension Agile (Scrum) Traditional Waterfall
RequirementsFlexible, expected to change.Rigid, frozen upfront.
DeliveryContinuous, small increments.Single massive delivery at the end.
Customer InvolvementHigh throughout the project.High at the start, very low during dev.
RiskLow (fast failure and feedback).High (issues found late in testing).
Team StructureSelf-organizing, cross-functional.Siloed teams (Designers → Devs → QA).
DocumentationMinimal, focus on working code.Heavy, exhaustive documentation.
Q6a) Calculate PERT/CPM Critical Path for a software project network graph with 8 activities. b) Calculate Earliest Start (ES), Earliest Finish (EF), Latest Start (LS), Latest Finish (LF), and Total Float. c) Identify Critical Path and project completion duration.

Master Answer: PERT/CPM and Critical Path Method

Part (a), (b), (c) Calculating Critical Path

Imagine a project with the following sequential network:

  • A (Start, 3 days)
  • B (Depends on A, 4 days)
  • C (Depends on A, 2 days)
  • D (Depends on B and C, 5 days)

Step 1: Forward Pass (Calculate ES & EF)

Formula: \(EF = ES + Duration\)

  • A: ES=0, EF=3
  • B: ES=3, EF=7
  • C: ES=3, EF=5
  • D: ES = max(EF of B, EF of C) = max(7, 5) = 7. EF = 7 + 5 = 12.

Project Completion Duration = 12 days.

Step 2: Backward Pass (Calculate LS & LF)

Formula: \(LS = LF - Duration\)

  • D: LF=12, LS=7
  • B: LF=7 (from D), LS=3
  • C: LF=7 (from D), LS=5
  • A: LF = min(LS of B, LS of C) = min(3, 5) = 3. LS=0.

Step 3: Total Float (Slack)

Formula: \(Float = LS - ES\) (or \(LF - EF\))

  • A: 0 - 0 = 0
  • B: 3 - 3 = 0
  • C: 5 - 3 = 2 (Task C can be delayed by 2 days without affecting the project)
  • D: 7 - 7 = 0

Critical Path: The path with ZERO Float. Therefore, the Critical Path is A → B → D.

Q7a) Explain Object-Oriented Analysis and Design (OOAD) using UML. b) Draw Use Case Diagram, Class Diagram, Sequence Diagram, and Activity Diagram for an Automated Teller Machine (ATM) system.

Master Answer: OOAD and UML for ATM System

Part (a) Object-Oriented Analysis and Design (OOAD)

OOAD models a system as a group of interacting objects. Analysis (OOA) focuses on understanding the problem domain and identifying objects (Nouns in requirements). Design (OOD) defines the software architecture, class attributes, methods, and relationships (inheritance, polymorphism, encapsulation).

Part (b) UML Diagrams for ATM

Use Case Diagram:

graph LR C((Customer)) -->|"Uses"| W(Withdraw Cash) C -->|"Uses"| B(Check Balance) B -->|"<<include>>"| A(Authenticate PIN) W -->|"<<include>>"| A

Activity Diagram (Withdrawal Flow):

stateDiagram-v2 [*] --> InsertCard InsertCard --> EnterPIN EnterPIN --> ValidatePIN ValidatePIN --> InvalidPIN : Fails InvalidPIN --> [*] ValidatePIN --> SelectWithdrawal : Succeeds SelectWithdrawal --> CheckFunds CheckFunds --> DispenseCash : Sufficient CheckFunds --> Reject : Insufficient DispenseCash --> EjectCard EjectCard --> [*]
Q8a) Explain Software Risk Management in detail. b) Construct Risk Projection Matrix and Risk Mitigation, Monitoring, and Management (RMMM) Plan for a mission-critical banking application.

Master Answer: Software Risk Management

Part (a) Risk Management Phases

Risk Management involves identifying, analyzing, and mitigating threats to a software project's schedule, cost, or quality.

  • Identification: Creating a checklist of all possible project, technical, and business risks.
  • Projection (Analysis): Estimating the Probability (\(P\)) and Impact (\(I\)) of each risk. Risk Exposure \(RE = P \times I\).
  • RMMM (Mitigation, Monitoring, and Management): Creating actionable plans to deal with the prioritized risks.

Part (b) Risk Projection Matrix & RMMM for a Banking App

Risk Description Category Probability Impact (1-5) RMMM Strategy
Database Server Crash Technical 15% 5 (Catastrophic) Mitigate: Setup real-time DB replication. Monitor: Ping server every 5 seconds. Manage: Auto-failover to backup server if ping fails.
Key Lead Developer Quits Project 30% 4 (Critical) Mitigate: Enforce pair programming and thorough documentation. Manage: Cross-train team members.
New RBI API Specs Released Business 40% 3 (Moderate) Mitigate: Build system with a highly decoupled adapter layer for external APIs.
Q9a) Explain Capability Maturity Model Integration (CMMI) Framework. b) Detail all 5 Process Maturity Levels (Initial, Managed, Defined, Quantitatively Managed, Optimizing) and Process Areas.

Master Answer: CMMI Framework

Part (a) What is CMMI?

Capability Maturity Model Integration (CMMI) is a process improvement training and appraisal program administered by the CMMI Institute. It guides organizations to streamline processes, encouraging a culture of continuous improvement.

Part (b) The 5 Maturity Levels

  1. Level 1: Initial
    Characteristics: Unpredictable, chaotic, reactive. No standard processes. Success depends on individual heroism.
    Process Areas: None.
  2. Level 2: Managed
    Characteristics: Processes are planned and executed at the project level. Basic project management exists.
    Process Areas: Requirements Management, Project Planning, Configuration Management.
  3. Level 3: Defined
    Characteristics: Processes are well characterized and standardized across the entire organization.
    Process Areas: Organizational Training, Risk Management, Decision Analysis.
  4. Level 4: Quantitatively Managed
    Characteristics: The organization uses statistical and quantitative techniques to precisely control process performance.
    Process Areas: Quantitative Project Management, Organizational Process Performance.
  5. Level 5: Optimizing
    Characteristics: Focus is on continuous, proactive process improvement through incremental and innovative technological improvements.
    Process Areas: Causal Analysis and Resolution, Organizational Performance Management.
Q10a) Explain Software Quality Assurance (SQA) plan and Software Quality Metrics. b) Calculate Defect Removal Efficiency (DRE) and Defect Density for a software release.

Master Answer: SQA and Defect Metrics

Part (a) Software Quality Assurance (SQA)

SQA is the umbrella activity ensuring that software processes and products conform to standards (like ISO 9001). The SQA plan defines the audits, code reviews, testing strategies, and configuration management rules.

Quality Metrics: Metrics used to measure quality include Defect Density, Mean Time To Failure (MTTF), Cyclomatic Complexity, and Test Coverage percentage.

Part (b) Calculating Defect Removal Efficiency (DRE) and Defect Density

Scenario: During development and testing (before release), the QA team finds \(E = 85\) defects. After release, end-users report \(D = 15\) defects. The software size is 50 KLOC.

  1. Defect Removal Efficiency (DRE):

    DRE measures the percentage of bugs caught internally before they reach the customer.

    \[ DRE = \frac{E}{E + D} = \frac{85}{85 + 15} = \frac{85}{100} = 0.85 \]

    The DRE is 85%. (A DRE approaching 1.0 indicates a highly effective QA process).

  2. Defect Density:

    Defect Density measures the total number of known defects relative to the size of the software.

    Total Defects = \(E + D = 100\).

    \[ Defect Density = \frac{\text{Total Defects}}{\text{Size in KLOC}} = \frac{100}{50} = \mathbf{2.0 \text{ defects/KLOC}} \]

Q11a) Explain Software Maintenance process model. b) Detail Software Re-engineering lifecycle model including Reverse Engineering, Restructuring, and Forward Engineering.

Master Answer: Software Maintenance and Re-engineering

Part (a) Software Maintenance Process Model

The IEEE maintenance process involves the following steps:

  1. Identification & Classification: A change request (bug report or feature request) is submitted and classified (Corrective, Adaptive, Perfective, Preventive).
  2. Analysis: Evaluating the impact of the change on the existing system, estimating cost, and determining feasibility.
  3. Design: Designing the modifications required in the architecture and modules.
  4. Implementation: Writing the new code or modifying existing code.
  5. Regression Testing: Running extensive tests to ensure the new changes haven't broken any existing, working functionality.
  6. Acceptance & Delivery: Deploying the updated software to users.

Part (b) Software Re-engineering Lifecycle

Re-engineering revamps a legacy system to a modern architecture without changing its core business logic.

graph TD L[Legacy Code] --> RE[Reverse Engineering] RE --> D[Recovered Design] D --> RS[Restructuring] RS --> ND[New Architecture Design] ND --> FE[Forward Engineering] FE --> M[Modern System]
  • Reverse Engineering: The process of analyzing the legacy source code to extract high-level design representations (like Class Diagrams or DFDs) since original documentation is often missing or outdated.
  • Restructuring: Code restructuring involves cleaning up "spaghetti code" into structured programming blocks. Data restructuring involves normalizing old flat files into modern relational database schemas.
  • Forward Engineering: Using the recovered and restructured design models to generate new source code in a modern language (e.g., migrating from COBOL to Java/Spring Boot).
Q12a) Explain System Testing for large scale enterprise software. b) Design test strategies and scenarios for Load Testing, Stress Testing, Volume Testing, Security Testing, and Recovery Testing.

Master Answer: Enterprise System Testing

Part (a) System Testing Overview

System Testing evaluates the complete, fully integrated software system to verify compliance with its specified requirements. It is an end-to-end Black-Box testing phase conducted on an environment that closely mirrors production.

Part (b) Test Strategies and Scenarios

Testing Type Strategy & Goal Scenario (e-Commerce App)
Load Testing Test behavior under expected maximum concurrent user load. Simulate 5,000 concurrent users adding items to their carts and checking out simultaneously. Measure if response time stays under 2 seconds.
Stress Testing Push system beyond maximum capacity to find the breaking point and observe how it fails. Ramp up to 20,000 concurrent users. Observe if the system crashes gracefully or if it loses payment transaction data during the crash.
Volume Testing Test the system's ability to handle massive amounts of data in the database over time. Insert 10 million dummy product records into the database and check if the search function still returns results within 3 seconds.
Security Testing Identify vulnerabilities to hacking, unauthorized access, and data breaches. Attempt SQL Injection in the login form (' OR 1=1 --). Attempt Cross-Site Scripting (XSS) in the product review section.
Recovery Testing Force the system to fail and verify if it recovers properly and data is not lost. While a payment is being processed, physically pull the network cable from the server. Reconnect and verify the transaction rolled back safely.
Q13a) Explain Software Architecture Design and Evaluation Method (SAAM / ATAM). b) Detail Layered vs Microservices Architecture for cloud-native applications.

Master Answer: Software Architecture & Evaluation

Part (a) Architecture Evaluation Method (ATAM)

The Architecture Tradeoff Analysis Method (ATAM) evaluates software architectures relative to quality attribute goals (Performance, Security, Modifiability, etc.).

  • Scenarios: ATAM uses specific scenarios (e.g., "A new payment gateway must be added in 2 weeks") to test the architecture.
  • Sensitivity Points: Architectural decisions that significantly affect one or more quality attributes (e.g., Using a central database is highly sensitive to scalability).
  • Trade-offs: Decisions that positively impact one attribute while negatively impacting another (e.g., High encryption improves Security but degrades Performance).

Part (b) Layered vs Microservices Architecture

Feature Layered Architecture (Monolith) Microservices Architecture
Structure Single unified codebase divided into logical layers (Presentation, Business, Data). Suite of small, independent services communicating via APIs (REST/gRPC).
Deployment Must deploy the entire massive application even for a 1-line code change. Independent deployment. Can update the "Billing Service" without touching the "Search Service".
Scalability Scale by replicating the entire monolith across multiple servers (Resource heavy). Scale individual services as needed. (e.g., Scale up the Search service during Black Friday).
Failure Isolation Poor. A memory leak in one module can crash the entire server. Excellent. If the "Recommendation Service" crashes, users can still checkout and pay.
Q14a) Explain Object-Oriented Design Principles (SOLID) in detail with code snippets. b) Detail Singleton, Factory, and Observer Design Patterns.

Master Answer: OOAD Principles and Patterns

Part (a) SOLID Principles

  • Single Responsibility: A class should have only one reason to change. (e.g., An Invoice class should only handle invoice logic, not printing logic).
  • Open/Closed: Open for extension, closed for modification. (e.g., Use an Interface Shape and implement Circle and Square, instead of modifying an AreaCalculator with if/else statements).
  • Liskov Substitution: Subclasses should be replaceable for their base classes. (e.g., A Penguin class inheriting from Bird violates LSP if Bird has a fly() method, because penguins can't fly).
  • Interface Segregation: Many client-specific interfaces are better than one general-purpose interface.
  • Dependency Inversion: Depend on abstractions, not concretions. (e.g., Depend on IDatabase instead of MySQLDatabase).

Part (b) Core Design Patterns

  • Singleton (Creational): Ensures a class has only one instance globally.
    Implementation: Private constructor, static private instance variable, static public getInstance() method. (Used for Database Connection Pools).
  • Factory Method (Creational): Defines an interface for creating an object, but lets subclasses decide which class to instantiate. (e.g., A VehicleFactory that returns a Car or Truck object based on input).
  • Observer (Behavioral): Defines a one-to-many dependency so that when one object (Subject) changes state, all its dependents (Observers) are notified automatically. (Used in GUI event listeners or Publish-Subscribe systems).
Q15a) Explain Function Point Analysis (FPA) methodology in detail. b) Calculate Unadjusted Function Points (UFP) and Final Value Adjustment Factor (VAF) for a Hospital Management System.

Master Answer: Detailed Function Point Analysis

Part (a) FPA Methodology

Function Point Analysis measures software size based on external user interactions and internal logical data. It is independent of the programming language used.

The 5 parameters are EI (External Inputs), EO (External Outputs), EQ (External Inquiries), ILF (Internal Logical Files), and EIF (External Interface Files). Each is weighted (Simple, Average, Complex). UFP is the sum. Then, 14 General System Characteristics (GSCs) are rated from 0 to 5 to calculate the VAF.

Part (b) Hospital Management System Calculation

Assume the following counts and average weights for the Hospital System:

  • EI (Admit Patient Form): count 15 × weight 4 = 60
  • EO (Patient Discharge Bill): count 10 × weight 5 = 50
  • EQ (Search Patient Record): count 12 × weight 4 = 48
  • ILF (Patient DB, Doctor DB): count 5 × weight 10 = 50
  • EIF (Insurance API): count 2 × weight 7 = 14

Unadjusted Function Points (UFP) = 60 + 50 + 48 + 50 + 14 = 222

Assume the sum of the 14 GSC ratings (\(\Sigma F_i\)) is 35 (moderate complexity).

Value Adjustment Factor (VAF):

\[ VAF = 0.65 + (0.01 \times \Sigma F_i) = 0.65 + (0.01 \times 35) = 0.65 + 0.35 = \mathbf{1.00} \]

Final FP = \(UFP \times VAF = 222 \times 1.00 = \mathbf{222 \text{ FP}}\)

Q16a) Explain Software Configuration Management (SCM) process. b) Detail Repository management, Baselines, Branching/Merging strategies, Change Control Board (CCB), and Configuration Audits.

Master Answer: Software Configuration Management (SCM)

Part (a) SCM Process

SCM is the discipline of managing and controlling changes in the software evolution process. It ensures that team members don't overwrite each other's work and that previous stable versions can be restored if needed.

Part (b) SCM Components

  • Repository Management: The central database (like Git/GitHub) where all code, assets, and historical versions are stored.
  • Baselines: A milestone in the SDLC representing an approved, stable version of a document or codebase. Once baselined, changes require formal approval. (e.g., The final SRS document is Baseline 1).
  • Branching/Merging: Developers create isolated copies ("branches") of the code to work on new features. Once complete and tested, the branch is "merged" back into the main trunk (master branch).
  • Change Control Board (CCB): A committee that reviews, evaluates, approves, or rejects proposed changes to baselined configurations based on cost, risk, and impact.
  • Configuration Audits: Verifying that the software product actually satisfies its baselined requirements and that all approved changes were implemented correctly.
Q17a) Explain Cleanroom Software Engineering methodology. b) Detail Formal Specification, Statistical Quality Certification, and Non-Execution Verification.

Master Answer: Cleanroom Software Engineering

Part (a) Cleanroom Methodology

Cleanroom software engineering is a formal, highly rigorous approach that emphasizes defect prevention rather than traditional compile/test defect removal. It aims to develop software with a certified level of reliability.

Part (b) Key Pillars

  1. Formal Specification: Requirements are defined using rigorous mathematical models (State-box, Clear-box). This eliminates ambiguity entirely.
  2. Non-Execution Verification: Programmers write the code but are forbidden from compiling or executing it. Instead, they use mathematical correctness proofs and formal technical reviews to verify the logic. The idea is to write code flawlessly the first time.
  3. Statistical Quality Certification: Once the code is verified mathematically, an independent testing team compiles it and runs statistical usage testing. Test cases are generated based on the probability distribution of actual user behavior. The reliability of the software is then mathematically certified (e.g., 99.99% reliable) based on the test results.
Q18a) Explain Software Reliability Models (Jelinski-Moranda Model, Basic Execution Time Model). b) Derive Reliability R(t) and Hazard Rate Z(t) formulas.

Master Answer: Software Reliability Models

Part (a) Reliability Models Overview

Reliability models predict the probability of failure-free operation based on historical fault detection data.

  • Jelinski-Moranda Model: Assumes that there are \(N\) total initial faults in the software. Every time a fault is discovered and fixed, the overall failure rate drops by a constant step. It assumes all faults contribute equally to the failure rate.
  • Basic Execution Time Model (Musa): Models reliability based on actual CPU execution time rather than calendar time. As failures occur and are fixed, the intensity of failures decreases exponentially.

Part (b) Reliability and Hazard Formulas

  • Hazard Rate \(Z(t)\): The instantaneous rate of failure at time \(t\), given that the system has survived up to time \(t\). For a constant failure rate \(\lambda\), \(Z(t) = \lambda\).
  • Reliability \(R(t)\): The probability that the system survives without failure for a duration \(t\).
  • Relationship: For a constant hazard rate \(\lambda\) (meaning failures occur randomly over time), reliability follows an exponential decay distribution:
    \[ R(t) = e^{-\lambda t} \]
  • MTTF: The Mean Time To Failure is the inverse of the constant hazard rate: \(MTTF = \frac{1}{\lambda}\).
Q19a) Explain Component-Based Software Engineering (CBSE) and Component Off-The-Shelf (COTS) integration. b) Detail Component Domain Engineering and Component Composition issues.

Master Answer: Component-Based Software Engineering

Part (a) CBSE and COTS

CBSE focuses on building systems by integrating pre-existing, reusable software components rather than writing everything from scratch. COTS (Commercial Off-The-Shelf) components are pre-built, third-party software packages (like an Oracle Database or a Stripe Payment Gateway SDK) that can be bought and integrated directly.

Part (b) Domain Engineering vs Composition

  • Component Domain Engineering: The process of actually creating the reusable components. This involves identifying common functionalities across multiple applications in a specific domain, designing generalized components, and cataloging them in a repository for future use.
  • Component Composition (Integration): The process of assembling the system using these components.
    Issues include:
    • Architectural Mismatch: The COTS component might assume a different architectural style (e.g., event-driven vs procedural) than the main system.
    • Interface Incompatibility: The component's API might require data formats or parameter types that differ from what the system provides. (Often solved using the Adapter Design Pattern).
    • Vendor Lock-in: Relying heavily on a proprietary COTS component makes it difficult to switch to a competitor later.
Q20a) Complete Software Engineering Case Study: Trace development of a Food Delivery Mobile App from Requirements Elicitation to Deployment. b) Provide SRS outline, Level 1 DFD, Architecture diagram, and Test Strategy.

Master Answer: Case Study - Food Delivery Mobile App

Part (a) SDLC Trace

  1. Elicitation: Interviews with restaurant owners and surveys with potential users.
  2. Analysis & Design: Creating UML diagrams, defining microservices, designing UI/UX mockups.
  3. Development: Building the Android/iOS frontend in Flutter and the backend in Node.js.
  4. Testing: Unit testing APIs, Load testing the order matching algorithm, UI testing the app.
  5. Deployment: Releasing to App Store/Play Store and monitoring via CI/CD pipelines.

Part (b) System Artifacts

1. SRS Outline:

  • Functional: User registration, Restaurant menu browsing, Cart management, Live GPS tracking, Payment gateway integration.
  • Non-Functional: 99.9% uptime, API response under 200ms, Secure credit card tokenization.

2. Level 1 DFD:

graph TD U((Customer)) -->|"Order Details"| P1(1.0 Process Order) P1 -->|"Validation"| D1[(User DB)] P1 -->|"Push Notification"| R((Restaurant)) R -->|"Accept/Reject"| P2(2.0 Payment/Status) P2 -->|"Charge Card"| B((Bank Gateway)) P2 -->|"Status Update"| U

3. Architecture (Microservices): User Auth Service, Restaurant Catalog Service, Order Matching Service, Live Tracking Service, Payment Service.

4. Test Strategy: Automated unit tests for cart logic. Integration tests for Bank Gateway APIs. Field testing GPS tracking accuracy on physical mobile devices.

Q21a) Solve Intermediate COCOMO effort calculation incorporating 15 Cost Drivers (Cost Driver Multipliers sum to 1.15). b) Compare Basic vs Intermediate vs Detailed COCOMO models.

Master Answer: Intermediate COCOMO Cost Drivers

Part (a) Effort Calculation with Cost Drivers

The Intermediate COCOMO model refines the Basic model by introducing 15 Cost Drivers (Cost Multipliers) categorized into Product, Computer, Personnel, and Project attributes. These include things like "Required Reliability" or "Analyst Capability".

Formula:

\[ Effort = a_i \times (KLOC)^{b_i} \times EAF \]

Where \(EAF\) (Effort Adjustment Factor) is the product of all 15 Cost Driver Multipliers. (Note: The problem states they sum to 1.15, but traditionally EAF is a product. Assuming the prompt implies the final calculated \(EAF = 1.15\)).

Assuming an Organic project (Constants: \(a_i = 3.2, b_i = 1.05\)) and size = 32 KLOC:

\[ Effort = 3.2 \times (32)^{1.05} \times 1.15 \]

\[ Effort = 3.2 \times 38.05 \times 1.15 = 121.76 \times 1.15 = \mathbf{140.02 \text{ Person-Months}} \]

Notice the effort is significantly higher than the Basic model due to the penalty of the cost drivers (\(EAF > 1\)).

Part (b) Basic vs Intermediate vs Detailed COCOMO

  • Basic COCOMO: Computes software development effort (and cost) as a function of program size expressed in estimated lines of code (KLOC). It is good for quick, rough estimates.
  • Intermediate COCOMO: Computes effort as a function of program size and a set of 15 "Cost Drivers" that include subjective assessments of product, hardware, personnel, and project attributes.
  • Detailed COCOMO: Incorporates all characteristics of the intermediate version with an assessment of the cost driver's impact on each specific step of the software engineering process (e.g., Analysis, Design, Coding, Testing).
Q22a) Explain White-Box Path Testing for nested loops and conditional decisions. b) Construct flow graph and derive test cases achieving 100% Branch Coverage and 100% Statement Coverage.

Master Answer: White-Box Path Testing

Part (a) Path Testing for Nested Loops

Path testing nested loops requires generating test cases that test the boundary conditions of the loops. Specifically: bypassing the loop entirely, executing the loop exactly once, executing the loop a typical number of times (\(m\)), executing the loop \(max-1\) times, and executing the loop exactly \(max\) times.

For nested loops, you hold the outer loop at a minimum value, test all bounds of the inner loop, then hold the inner loop at a typical value and test the bounds of the outer loop.

Part (b) 100% Branch and Statement Coverage

Assume the following code block:

1: if (A > 5) { 2: B = 10; 3: } else { 4: B = 20; 5: } 6: if (C == 0) { 7: D = 100; 8: } 9: return B + D;
  • To achieve 100% Statement Coverage: We need to execute lines 2, 4, and 7.
    Test Case 1: A = 10, C = 0 (Executes lines 1, 2, 6, 7, 9)
    Test Case 2: A = 1, C = 1 (Executes lines 1, 3, 4, 6, 9)
    Statement Coverage achieved in 2 test cases.
  • To achieve 100% Branch Coverage: We must evaluate (A>5) as True and False, and (C==0) as True and False.
    Test Case 1 (T, T): A = 10, C = 0
    Test Case 2 (F, F): A = 1, C = 1
    Branch coverage is also achieved with these same 2 test cases.
Q23a) Explain Agile User Stories, Story Points, and Velocity metrics. b) Detail Planning Poker estimation technique and Burndown Charts.

Master Answer: Agile Metrics and Estimation

Part (a) User Stories, Story Points, and Velocity

  • User Story: A short, simple description of a feature told from the perspective of the user. Format: "As a [type of user], I want [some goal] so that [some reason]."
  • Story Points: A relative unit of measure (usually Fibonacci numbers: 1, 2, 3, 5, 8, 13) used to estimate the effort required to fully implement a User Story. It accounts for volume, complexity, and uncertainty.
  • Velocity: A metric that calculates how much work (in total Story Points) a team successfully completes during a single Sprint. It is used to forecast how many sprints it will take to clear the backlog.

Part (b) Planning Poker and Burndown Charts

  • Planning Poker: A consensus-based estimation technique. The Product Owner reads a User Story. Developers privately select a card with a Story Point value. Everyone reveals their cards simultaneously. If estimates vary wildly (e.g., someone plays a 2 and another an 8), they debate their reasoning and re-vote until consensus is reached. This prevents anchoring bias.
  • Burndown Chart: A visual graph showing the amount of work remaining (Y-axis, usually in Story Points or Hours) versus time (X-axis, days in the sprint). An "Ideal Trend" line is drawn diagonally down to zero. If the actual remaining work line sits above the ideal line, the team is behind schedule.
Q24a) Explain Formal Specification techniques: Algebraic Specification vs Model-Based Specification (Z notation). b) Write Z specification for a simple Stack data structure.

Master Answer: Formal Specification & Z Notation

Part (a) Algebraic vs Model-Based Specification

  • Algebraic Specification: The system is specified in terms of operations and algebraic equations that define the relationships between those operations (axioms). It is highly abstract and doesn't rely on underlying state variables.
  • Model-Based Specification (Z Notation): The system is modeled using mathematical entities like sets, sequences, and relations. It explicitly defines a "State Space" (variables) and how specific operations mutate that state.

Part (b) Z Specification for a Stack

In Z Notation, a specification is written in visual boxes called "Schemas".

--- State Schema: Stack ----------------- items: seq N max_size: N ----------------------------------------- #items <= max_size ----------------------------------------- --- Operation Schema: Push -------------- \Delta Stack (Indicates State changes) x? : N (Input variable x) ----------------------------------------- #items < max_size items' = ^ items (New state items' is x prepended to old items) max_size' = max_size -----------------------------------------

(Note: In actual Z notation, mathematical symbols are used. \Delta indicates a state change. ? denotes an input. ' denotes the state after the operation).

Q25a) Explain UI/UX Engineering principles and Accessibility standards (WCAG). b) Design User Interface layout and state transition diagram for an E-Learning Portal.

Master Answer: UI/UX Engineering and Accessibility

Part (a) Principles and WCAG Standards

UI (User Interface) focuses on the visual layout and interactivity. UX (User Experience) focuses on the overall feel, flow, and logical journey of the user.

WCAG (Web Content Accessibility Guidelines): Principles to make software accessible to people with disabilities.

  • Perceivable: Provide text alternatives for images (screen readers). Ensure high color contrast for the visually impaired.
  • Operable: Make all functionality available from a keyboard (no mouse trap). Do not design content that causes seizures (no fast flashing).
  • Understandable: Text must be readable. Error messages must explicitly state the problem and how to fix it.
  • Robust: Content must be compatible with current and future assistive technologies.

Part (b) E-Learning Portal UI State Transition

State Transition Diagram:

stateDiagram-v2 [*] --> LoggedOutHome LoggedOutHome --> LoginModal : Click Login LoginModal --> StudentDashboard : Valid Credentials StudentDashboard --> CoursePlayer : Click 'Resume Course' CoursePlayer --> QuizModal : Video Ends QuizModal --> StudentDashboard : Submit Quiz StudentDashboard --> LoggedOutHome : Click Logout
Q26a) Explain DevOps Culture and Automated Testing Pipeline. b) Detail Continuous Integration (CI), Continuous Testing (CT), and Continuous Deployment (CD) tools integration.

Master Answer: DevOps and Automated Pipelines

Part (a) DevOps Culture

DevOps bridges the historical wall between developers (who want to push new features fast) and operations (who want stability and no changes). It relies on heavy automation, continuous monitoring, and a cultural shift towards shared responsibility.

Part (b) CI, CT, and CD Pipeline

graph TD Code[Git Push] --> CI[Continuous Integration] CI --> Build[Build & Compile] Build --> CT[Continuous Testing] CT --> CD[Continuous Deployment] CD --> Prod[Production Server]
  • Continuous Integration (CI): Developers push code to GitHub. A CI server (like Jenkins or GitHub Actions) detects the push, automatically pulls the code, and builds the application.
  • Continuous Testing (CT): Immediately after the build, automated Unit, Integration, and Security tests run. If any test fails, the pipeline halts, and the developer is alerted immediately.
  • Continuous Deployment (CD): If all tests pass, the pipeline automatically packages the application (e.g., into a Docker container) and deploys it to the Production cloud environment (like AWS or Kubernetes) with zero downtime.
Q27a) Explain Software Fault Tree Analysis (FTA) and Failure Modes and Effects Analysis (FMEA). b) Construct Fault Tree for a Medical Device Software safety failure.

Master Answer: Software Fault Tree Analysis

Part (a) FTA vs FMEA

  • Fault Tree Analysis (FTA): A Top-Down deductive analysis. You start with a catastrophic system failure (the "Top Event") and work backward through a logic tree (using AND/OR gates) to identify all the possible root causes that could lead to that failure.
  • Failure Modes and Effects Analysis (FMEA): A Bottom-Up inductive analysis. You look at individual components at the lowest level, assume they fail (Failure Mode), and analyze what effect that failure will have on the overall system.

Part (b) Fault Tree for Medical Device Failure

Top Event: Pacemaker Delivers Fatal Shock

graph TD TE[Top Event: Fatal Shock] --> OR_GATE{OR Gate} OR_GATE --> A[Software calculates wrong voltage] OR_GATE --> B[Hardware relay fails closed] A --> AND_GATE{AND Gate} AND_GATE --> C[Sensor reads wrong heart rate] AND_GATE --> D[Failsafe logic does not trigger]

In this Fault Tree, the catastrophic event can happen if EITHER the software miscalculates OR the hardware relay breaks. For the software to miscalculate fatally, the sensor must read wrong AND the failsafe logic must simultaneously fail.

Q28a) Explain Static Code Analysis tools, Linters, and Code Review checklists. b) Formulate Code Inspection protocol and defect tracking workflow.

Master Answer: Static Analysis and Code Inspection

Part (a) Static Analysis & Linters

Static Analysis evaluates source code without executing it. Linters are automated tools (like SonarQube or ESLint) integrated into the IDE or CI pipeline. They enforce naming conventions, find dead code, detect memory leaks, and flag security vulnerabilities (like hardcoded API keys).

Code Review Checklists: Human reviewers use checklists during Pull Requests to check things automation cannot: Is the business logic correct? Is the architecture sound? Are the tests meaningful?

Part (b) Code Inspection Protocol

Formal Code Inspection (Fagan Inspection) involves strict roles:

  1. Author: Wrote the code, listens and answers questions, but does not lead the review.
  2. Moderator: Chairs the meeting, ensures the team stays on track, and logs defects.
  3. Reader: Reads the code aloud line-by-line, explaining what it logically does.
  4. Reviewers/Inspectors: Follow along and flag discrepancies between what the Reader says the code does and what the SRS requires.

Defect Tracking: Any identified bug is logged into a tracker (like Jira) with a unique ID, severity level, steps to reproduce, and assigned back to the Author for fixing.

Q29a) Explain Software Project Estimation using Use Case Points (UCP) method. b) Calculate UCP given Unadjusted Actor Weight (UAW), Unadjusted Use Case Weight (UUCW), Technical Complexity Factor (TCF), and Environmental Factor (EF).

Master Answer: Use Case Points (UCP) Estimation

Part (a) UCP Methodology

Use Case Points (UCP) is a software estimation technique used early in the SDLC when requirements are captured as UML Use Cases. It calculates size based on the complexity of Actors and Use Cases, modified by technical and environmental factors.

Part (b) UCP Calculation Formula

  1. Calculate UAW (Unadjusted Actor Weight): Count the number of Simple (weight 1), Average (weight 2), and Complex (weight 3) Actors in the system. Sum them.
  2. Calculate UUCW (Unadjusted Use Case Weight): Count the Use Cases based on the number of transactions they contain. Simple (weight 5), Average (weight 10), Complex (weight 15). Sum them.
  3. UUCP (Unadjusted Use Case Points):
    \(UUCP = UAW + UUCW\)
  4. Apply Factors: Evaluate 13 Technical Factors to get the TCF, and 8 Environmental Factors (team experience) to get the EF.
  5. Final UCP:
    \(UCP = UUCP \times TCF \times EF\)
  6. Calculate Effort: Multiply the final UCP by a productivity factor (e.g., 20 man-hours per UCP) to get the total estimated project hours.
Q30a) Explain Legacy Software System Modernization strategies. b) Compare Encapsulation, Re-hosting, Re-architecting, and Complete Replacement.

Master Answer: Legacy System Modernization

Part (a) Modernization Strategies

Legacy systems are old, brittle, but mission-critical applications. Modernizing them reduces maintenance costs and allows integration with cloud technologies.

Part (b) Comparison of Strategies

Strategy Description Risk / Cost
Encapsulation (Wrapping) Leave the legacy code entirely untouched. Build a modern API wrapper around it so new web apps can communicate with it. Low Risk / Low Cost. (Temporary band-aid, doesn't fix underlying bad code).
Re-hosting (Lift and Shift) Move the legacy application exactly as-is from an on-premise mainframe to a modern Cloud infrastructure (AWS/Azure) without changing the code. Low Risk / Medium Cost. (Reduces hardware costs).
Re-architecting Materially alter the application code to shift it to a new architecture (e.g., breaking a monolith into Microservices). High Risk / High Cost. (Best long-term ROI).
Complete Replacement Throw the entire legacy system away and build a brand new system from scratch based on the old system's business rules. Extreme Risk / Extreme Cost. (Often fails due to forgotten, undocumented business rules in the old code).