Group A — Short Answer Questions (1 Mark Each)

Q1Define Software Engineering.

Ans: Software Engineering (IEEE 610.12) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software — i.e., the use of engineering principles to build reliable, economical software on time and within budget.

Q2What is a Software Process Model?

Ans: A software process model is an abstract representation of the software development life cycle that defines the phases (process activities) and the order in which they are carried out to produce a software product.

Q3Name the generic phases of the generic process model.

Ans: The five generic phases are: (1) Communication, (2) Planning, (3) Modeling (analysis & design), (4) Construction (coding & testing), and (5) Deployment.

Q4What is the Waterfall Model?

Ans: The Waterfall Model is a linear-sequential life-cycle model in which each phase must be completed and baselined before the next begins, with no overlap — best suited when requirements are well understood and stable.

Q5Differentiate between Iterative and Incremental models.

Ans: Iterative model refines a complete system through repeated cycles. Incremental model delivers the system in successive slices (increments), where each increment adds new functionality on top of the previous one.

Q6Define the Spiral Model.

Ans: The Spiral Model (Boehm) is a risk-driven process model that combines prototyping with controlled, iterative cycles; each loop passes through Planning, Risk Analysis, Engineering, and Customer Evaluation quadrants.

Q7What is Component-Based Development (CBD)?

Ans: CBD is a process model that emphasises assembling software from reusable, pre-built, independently-deployable components with well-defined interfaces, reducing development effort and time.

Q8What are Formal Methods?

Ans: Formal methods are mathematically-based techniques (notation, semantics, verification) for specifying, developing, and verifying software so that the system can be proven correct using rigorous mathematical proofs.

Q9Define Agile Methodology.

Ans: Agile is an umbrella of iterative, customer-collaborative software development methods (XP, Scrum, FDD) based on the Agile Manifesto — valuing individuals, working software, customer collaboration, and responding to change.

Q10What is eXtreme Programming (XP)?

Ans: XP is an Agile methodology using short development cycles (iterations), pair programming, test-driven development, continuous integration, refactoring, and on-site customer presence to deliver high-quality code.

Q11Define a Sprint in Scrum.

Ans: A Sprint is the basic unit of development in Scrum — a time-boxed iteration (usually 1–4 weeks) during which a potentially shippable product increment is produced.

Q12What is the Rational Unified Process (RUP)?

Ans: RUP is an iterative software process framework organised around four phases (Inception, Elaboration, Construction, Transition) and six best practices including iterative development and use-case driven design.

Q13Define COCOMO.

Ans: COCOMO (Constructive Cost Model) by Boehm is an algorithmic software cost-estimation model that predicts effort, schedule, and staffing from the estimated size (KLOC) and a mode (Organic, Semi-detached, Embedded).

Q14What is Requirements Engineering?

Ans: Requirements Engineering is the systematic process of eliciting, analysing, negotiating, specifying, validating, and managing the requirements for a software system.

Q15Define Software Requirement Specification (SRS).

Ans: An SRS is a formal document that completely describes the external behaviour of the system, the non-functional constraints, and the functional requirements; it serves as the contract between customer and developer.

Q16What are Functional and Non-Functional Requirements?

Ans: Functional Requirements describe what the system does (features, functions). Non-Functional Requirements describe how well it does them — performance, security, usability, reliability, maintainability.

Q17What is a Requirement Traceability Matrix (RTM)?

Ans: An RTM is a table that maps each requirement to its source, design elements, code modules, and test cases, ensuring every requirement is implemented and tested (forward & backward traceability).

Q18Define Software Design.

Ans: Software Design is the process of transforming the requirements into a blueprint for construction — defining architecture, components, interfaces, data structures, and algorithms.

Q19List the generic design concepts.

Ans: Abstraction, Refinement, Modularity, Software Architecture, Control Hierarchy, Structural Partitioning, Data Structure, Software Procedure, Information Hiding.

Q20What is a Design Pattern?

Ans: A Design Pattern (Gang-of-Four) is a reusable, proven solution to a recurring design problem — a named template describing how to solve a problem in a particular context (Creational, Structural, Behavioural).

Q21What is Architectural Style?

Ans: An architectural style is a named, reusable pattern that defines components, their responsibilities, and the connectors between them (e.g., layered, client–server, pipe-and-filter, microservices).

Q22Define Component-Level Design.

Ans: Component-level design refines the architectural data-flow into detailed procedural descriptions for each module — specifying data structures, interfaces, and algorithms at the lowest level of abstraction.

Q23Name the Golden Rules of User Interface Design.

Ans: (1) Place the user in control, (2) Reduce the user's memory load, (3) Make the interface consistent.

Q24What is Unit Testing?

Ans: Unit testing verifies the smallest testable parts (functions, classes, methods) of the software in isolation, usually performed by the developer using a unit-testing framework (JUnit).

Q25Differentiate Functional vs Structural testing.

Ans: Functional (Black-Box) testing verifies the software against specifications without knowing internal code. Structural (White-Box) testing verifies the internal logic, branches, and paths of the code.

Q26What is Integration Testing?

Ans: Integration testing exercises the interfaces between integrated modules to expose faults in their interaction — using strategies like top-down, bottom-up, or sandwich (regression) integration.

Q27Define System Testing.

Ans: System testing verifies the complete, integrated software system against its specified requirements on a production-like environment, including functional, performance, security, and recovery tests.

Q28What is Debugging?

Ans: Debugging is the process of locating, analysing, and removing the cause of a software fault (the symptomatic failure) — typically performed after a failed test execution.

Q29Define Software Quality Assurance (SQA).

Ans: SQA is the planned, systematic set of activities (audits, reviews, standards, testing) that ensure that software processes and products conform to requirements, standards, and procedures.

Q30What is Software Configuration Management (SCM)?

Ans: SCM is the discipline of tracking and controlling changes in the software's artefacts (code, docs, models) to maintain integrity and traceability throughout the project life cycle.

Q31What is ISO 9000?

Ans: ISO 9000 is a family of internationally recognised quality-management standards that define best practices for a quality assurance system; ISO 9001 certification indicates conformance to these standards.

Q32What is SEI CMM?

Ans: The SEI Capability Maturity Model is a 5-level framework (Initial, Repeatable, Defined, Managed, Optimising) that describes the maturity of an organisation's software processes.

Q33Define Software Maintenance.

Ans: Software maintenance is the modification of a software product after delivery to correct faults, improve performance or other attributes, adapt to a changed environment, or prevent future degradation.

Q34What is Reverse Engineering?

Ans: Reverse engineering is the process of analysing an existing system to identify its components and their interrelationships and to create representations of the system at higher levels of abstraction.

Q35Define Software Re-engineering.

Ans: Software re-engineering is the examination and alteration of an existing system to reconstitute it in a new form, including reverse engineering, restructuring, and forward engineering, without changing its functionality.

Group B — Descriptive Questions (5 Marks Each)

Q1Compare Waterfall, Iterative, Incremental, and Spiral process models.

Software Process Models Compared

graph LR W[Waterfall] ---|Linear, sequential| A[Iteration] I[Incremental] ---|Functionality slices| B[Spiral] A ---|Refinement cycles| I B ---|Risk-driven loops| W
AspectWaterfallIterativeIncrementalSpiral
FlowLinearRepeated refinementFunctional slicesRisk-driven loops
Customer feedbackAt endEach iterationAfter each incrementEach cycle
Risk handlingPoor (late discovery)ModerateModerateExcellent (explicit)
Best forStable, well-defined reqsEvolving requirementsEarly delivery neededHigh-risk, large projects
Q2Explain the Generic Process Model with its five framework activities.

Generic Process Model

The generic process model (Pressman) defines five framework activities that span all software projects, regardless of model choice:

flowchart LR A[1. Communication] --> B[2. Planning] B --> C[3. Modeling] C --> D[4. Construction] D --> E[5. Deployment] E -->|Feedback| A
  • Communication — Stakeholder collaboration to understand goals and requirements.
  • Planning — Define scope, resources, schedule, and risk; produce the Software Project Management Plan.
  • Modeling — Analysis & design: create data, functional, behavioural models of the system.
  • Construction — Code generation and testing (unit, integration, system).
  • Deployment — Delivery to customer, evaluation, feedback, and continued support/maintenance.

Umbrella activities (work across all five) include project tracking, risk management, quality assurance, configuration management, and reviews.

Q3Describe the Scrum Framework and its roles, events, and artefacts.

Scrum Framework

flowchart TD PB[Product Backlog] --> SP[Sprint Planning] SP --> SB[Sprint Backlog] SB --> DEV[Development Work] DEV --> DS[Daily Scrum 15 min] DS --> SR[Sprint Review] SR --> SRET[Sprint Retrospective] SRET --> PB

Roles: Product Owner (prioritises backlog), Scrum Master (removes impediments), Development Team (cross-functional, self-organising).

Events: Sprint (1–4 weeks), Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective, Backlog Refinement.

Artefacts: Product Backlog, Sprint Backlog, Product Increment (potentially shippable), Burn-down/Burn-up charts.

Q4Explain COCOMO cost estimation model with an example.

COCOMO Model

The Constructive Cost Model is applied in three stages:

  1. Basic COCOMO — uses size and mode only.
  2. Intermediate COCOMO — adds 15 cost drivers (product, hardware, personnel, project).
  3. Detailed COCOMO — adds 5 scale factors and phased effort multipliers.

Basic formulas:

\[ E = a \times (KLOC)^b \qquad T_{dev} = c \times (E)^d \]

Example (Organic mode, 32 KLOC): a=2.4, b=1.05, c=2.5, d=0.38

\[ E = 2.4 \times (32)^{1.05} \approx 91.3 \text{ person-months} \]

\[ T_{dev} = 2.5 \times (91.3)^{0.38} \approx 13.9 \text{ months} \]

Q5Explain the four phases of the Rational Unified Process (RUP).

RUP Phases

flowchart LR I[Inception] --> E[Elaboration] E --> C[Construction] C --> T[Transition]
  • Inception — Define scope, identify stakeholders, draft initial use cases, evaluate feasibility.
  • Elaboration — Refine requirements, establish architectural baseline, identify risks, create detailed design.
  • Construction — Iterative implementation of components, continuous testing, beta releases.
  • Transition — Deployment to users, user training, beta testing, defect fixes, final release.

RUP also prescribes nine core disciplines (six engineering + three supporting) that run in parallel with different intensity across phases.

Q6Explain Requirements Elicitation techniques.

Requirements Elicitation Techniques

Elicitation gathers information from stakeholders. Common techniques:

  • Interviews — One-on-one or group, formal closed-ended / open-ended questions.
  • Workshops / JAD Sessions — Joint Application Development with all stakeholders together.
  • Questionnaires / Surveys — Useful for a large, geographically-distributed user base.
  • Observation (Ethnography) — Watch users perform their work in their natural environment.
  • Document Analysis — Review existing forms, reports, manuals to extract business rules.
  • Prototyping — Build quick mock-ups to clarify ambiguous requirements.
  • Brainstorming / Focus Groups — Generate ideas collaboratively.
Q7Describe the structure of a Software Requirement Specification (SRS) document (IEEE 830).

SRS Document Structure (IEEE 830)

mindmap root((SRS Document)) Introduction Purpose Scope Definitions References Overall Description Product Perspective Product Functions Constraints Assumptions Specific Requirements Functional Performance Design Constraints External Interface Appendices Index Glossary

Each section uses measurable, testable, unambiguous language. The SRS is the baseline for design, coding, testing, and validation.

Q8Explain Functional vs Non-Functional Requirements with examples.

Functional vs Non-Functional Requirements

TypeDescriptionExample (Online Banking App)
FunctionalWhat the system does"User can transfer funds to a saved beneficiary."
PerformanceSpeed, response time"Transfer completes within 3 seconds."
SecurityAuthentication, authorisation"OTP verification required for > ₹5000 transfers."
UsabilityEase of use"New user completes first transfer in < 2 minutes."
ReliabilityUptime, MTBF"99.95% availability excluding maintenance."
MaintainabilityEase of change"Add a new payment gateway within 2 dev-weeks."
Q9What is a Requirement Traceability Matrix (RTM)? Why is it important?

Requirement Traceability Matrix (RTM)

An RTM is a 2D table that links every requirement to its origin, design element, implementation code, and test cases. Two directions of traceability exist:

  • Forward Traceability — From requirements → design → code → tests. Ensures every requirement is implemented and tested.
  • Backward Traceability — From code/tests back to requirement. Ensures every artefact traces to a valid business need.

Importance: Helps evaluate impact of change requests, validates 100% requirement coverage, supports audit, and prevents gold-plating (unwanted features).

Q10Explain the Software Design Process and the Design Model.

Software Design Process

Design is an iterative process that transforms the SRS into a multi-layered model:

  1. Architectural Design — Identify subsystems, their responsibilities, and interactions.
  2. Data Design — Define data structures, file formats, database schemas.
  3. Interface Design — Define external (user) and internal (module) interfaces.
  4. Component-Level Design — Refine each module's algorithm and procedural detail.

The Design Model is the totality of all artefacts produced — DFDs, ER diagrams, UML diagrams (class, sequence, state, activity), architectural diagrams, and detailed module specs.

Q11List and briefly explain the common architectural styles.

Common Architectural Styles

  • Layered (N-Tier): Presentation, Business, Data layers — classic enterprise pattern.
  • Client–Server: Thin/thick clients communicate with a centralised server.
  • Pipe-and-Filter: Data flows through transformation stages (e.g., Unix pipelines, compilers).
  • Model-View-Controller (MVC): Separates data, presentation, and input handling.
  • Repository (Blackboard): Shared data store + independent processing components (AI systems).
  • Event-Driven: Components communicate via events on a bus (e.g., Kafka).
  • Microservices: Small, independent services communicating via lightweight APIs.
  • Service-Oriented (SOA): Coarse-grained reusable services with formal contracts.
Q12Explain Architectural Mapping Using Data Flow.

Architectural Mapping with DFD

Data-flow style architectures are mapped directly from the DFD:

  1. Identify the type of data flow (transform flow / transaction flow).
  2. Isolate the input, transform centre, and output boundaries on the DFD.
  3. Perform First-Level Factorisation — create a single "module factory" for each input/output region.
  4. Perform Second-Level Factorisation — break each input/output branch into sub-modules.
  5. Refine using design heuristics (e.g., factoring).

For transaction flows, identify the transaction centre (the process that determines type) and map each path as a separate branch.

Q13Describe the Golden Rules of User Interface Design.

Three Golden Rules of UI Design

(Shneiderman's Golden Rules)

  1. Place the user in control — Allow undo/redo, shortcuts, defaults, meaningful feedback, exit gracefully.
  2. Reduce the user's memory load — Recognise rather than recall, use metaphors, defaults, short menus, consistent layouts.
  3. Make the interface consistent — Uniform fonts, colours, terminologies, predictable behaviour, platform conventions.

Other principles: feedback, visibility, error prevention, aesthetic integrity, user diversity, help & documentation.

Q14Explain the Taxonomy of Software Testing.

Testing Taxonomy

mindmap root((Software Testing)) By Process Unit Integration System Acceptance By Approach White-Box Black-Box Grey-Box By Type Functional Non-Functional Static Review Inspection Dynamic Manual Automated

Tests can also be classified by purpose (smoke, regression, sanity, retest) and by development phase (verification, validation).

Q15Explain Unit Testing and Integration Testing strategies.

Unit & Integration Testing

Unit Testing: Tests individual functions/classes in isolation. Uses drivers/stubs for incomplete modules. Usually done by developers using JUnit / pytest frameworks.

Integration Testing Strategies:

  • Top-Down: Test main first; stubs for lower levels. Easy to demonstrate early.
  • Bottom-Up: Test lower levels first; drivers for higher levels. Easy to drive.
  • Sandwich (Hybrid): Combines both — top & bottom meet in the middle.
  • Big-Bang: Integrate everything at once; risky, hard to debug.
Q16Explain the V-Model of testing.

V-Model of Testing

flowchart LR R[Requirements] --> A[Acceptance Testing] S[System Design] --> ST[System Testing] D[Detailed Design] --> IT[Integration Testing] C[Coding] --> UT[Unit Testing] R -.-> S S -.-> D D -.-> C

The V-Model maps each development phase to its corresponding testing phase — showing that test preparation happens in parallel with development, not only after coding.

Q17Explain debugging approaches (Brute Force, Backtracking, Cause Elimination).

Debugging Approaches

  • Brute Force: Add print statements, run with traces, examine core dumps — labour-intensive, often last resort.
  • Backtracking: Start at the symptom and trace backwards through the code to the cause — works well for small programs.
  • Cause Elimination: Use binary search / hypothesis-testing — identify possible causes by eliminating one variable at a time (most systematic).
  • Program Slicing: Compute the set of statements (the slice) that affect the value of a variable of interest.
  • Interactive Debuggers: Step-through, breakpoints, watch variables — most popular modern approach.
Q18Explain the levels of SEI CMM.

SEI CMM Levels

flowchart BT L1[Level 1: Initial
Ad-hoc / chaotic] --> L2 L2[Level 2: Repeatable
Project-tracked] --> L3 L3[Level 3: Defined
Org-standardised] --> L4 L4[Level 4: Managed
Quantitative] --> L5 L5[Level 5: Optimising
Continuous improvement]
  • L1 Initial: Process is ad-hoc, chaotic; success depends on individual effort.
  • L2 Repeatable: Basic project management; cost, schedule tracked.
  • L3 Defined: Processes are standardised across the organisation and documented.
  • L4 Managed: Detailed metrics & statistical control over processes.
  • L5 Optimising: Continuous process improvement through innovation.
Q19Explain Software Reliability and Software Reviews.

Software Reliability & Reviews

Software Reliability is the probability that the software performs its intended function without failure under specified conditions for a specified period.

Metrics: MTTF (Mean Time To Failure), MTTR, MTBF, Availability = MTTF/MTBF.

Formal Technical Reviews (FTRs) are structured meetings by peers to identify defects in early artefacts:

  • Walkthroughs — author-led, informal.
  • Inspections — most formal; uses roles (moderator, reader, recorder, reviewer).
  • Code Reviews — peer review for code quality and standards compliance.
Q20Explain Software Configuration Management (SCM) activities.

SCM Activities

  • Configuration Identification: Naming & organising configuration items (code, docs, libraries).
  • Version Control: Track changes, branching, merging (Git, SVN).
  • Baseline Management: Freeze formally approved versions.
  • Change Control: Formal CCB review of proposed changes.
  • Configuration Audits: Verify conformance to baseline and standards.
  • Release Management: Package, version, distribute.
Q21Explain the software maintenance process models.

Maintenance Process Models

  • Quick-Fix Model: Ad-hoc bug fixes — works only for very small systems.
  • Iterative Enhancement Model: Iteratively add features; reflects real maintenance work.
  • Reuse-Oriented Model: Emphasises reusing existing components & frameworks.
  • IEEE Maintenance Model: Formal steps — Identify, Classify, Analyse, Design, Implement, Regression Test, Acceptance.

Maintenance types: Corrective (bugs), Adaptive (environment), Perfective (new features), Preventive (future-proofing).

Q22Explain COCOMO-II maintenance cost estimation model.

COCOMO-II for Maintenance

COCOMO-II maintenance estimation uses an Annual Change Traffic metric:

\[ AT = \frac{Added + Modified}{Original\;size} \]

\[ AD = AT \times AAF \qquad\; E_{maintenance} = 2.4 \times (AD)^{1.05} \]

Where AAF (Adaptation Adjustment Factor) accounts for differences in software quality, hardware, and personnel.

This helps managers budget annual maintenance effort given the percentage of code being changed each year.

Q23Explain Reverse Engineering in detail.

Reverse Engineering

The process of analysing a legacy system to recover its design, data, and behavioural models, producing higher-level abstractions from existing source.

Steps:

  1. Information extraction: Parse source, extract static and dynamic information.
  2. Database reverse engineering: Recover ER schema, table relations.
  3. Recover design abstractions (UML): Reconstruct class, sequence, state diagrams.

Goals: Recovery of lost design, legacy migration, security audit, understanding competitors' code, identifying reusable assets.

Q24Explain the Software Re-engineering process.

Software Re-engineering Process

flowchart LR INV[Inventory Analysis] --> DOC[Document Restructuring] DOC --> RE[Reverse Engineering] RE --> CR[Code Restructuring] CR --> DR[Data Restructuring] DR --> FE[Forward Engineering]
  • Inventory Analysis: Prioritise legacy components by business value & technical risk.
  • Document Restructuring: Regenerate up-to-date docs from existing code.
  • Reverse Engineering: Recover design & data models.
  • Code & Data Restructuring: Refactor without changing external behaviour.
  • Forward Engineering: Generate modern implementation from refactored design.
Q25Explain the Agile Manifesto and its 12 principles.

Agile Manifesto & 12 Principles

Manifesto Values:

  • Individuals & interactions over processes & tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

12 Principles (selected): early & continuous delivery, welcome changing requirements, business & developers daily collaboration, sustainable development, attention to technical excellence & good design, simplicity, self-organising teams, regular reflection & adaptation.

Group C — Long Answer Questions (15 Marks Each)

Q1a) Compare Waterfall, Spiral, and Agile process models with a comparison diagram. b) When is each most appropriate? Explain with real-life scenarios.

Master Answer: Comparing Process Models

Part (a) Comparison Diagram

flowchart LR subgraph Waterfall A1[Req] --> A2[Design] --> A3[Code] --> A4[Test] --> A5[Deploy] end subgraph Spiral B1[Plan] --> B2[Risk] B2 --> B3[Engineer] B3 --> B4[Customer Eval] B4 -.-> B1 end subgraph Agile C1[Plan] --> C2[Build] --> C3[Test] C3 -.-> C1 end

Part (b) Comparison & When to Use

CriterionWaterfallSpiralAgile
ApproachSequentialRisk-driven loopsIterative & incremental
RequirementsFixed upfrontRefined per cycleEvolving
Customer involvementMilestone reviewsPer cycleContinuous
DeliverySingle end deliveryPer cycleContinuous increment
DocumentationHeavyModerateMinimal

When to use:

  • Waterfall: Payroll system with fixed regulations; defence project with strict milestones.
  • Spiral: Medical device software where risk analysis is critical and prototypes must be evaluated.
  • Agile: Mobile startup app where user feedback rapidly shapes features.
Q2a) Explain the phases of the SDLC with a flowchart. b) Explain the Agile Scrum workflow with a diagram and list roles, events, and artefacts.

Master Answer: SDLC & Agile Scrum

Part (a) SDLC Phases

flowchart LR R[Requirement Analysis] --> D[System Design] D --> C[Coding / Implementation] C --> T[Testing] T --> IM[Implementation / Deployment] IM --> M[Maintenance] M -.-> R
  • Requirement Analysis: Gather & document user needs.
  • System Design: Architectural & detailed design.
  • Implementation (Coding): Translate design into source code.
  • Testing: Unit, integration, system, acceptance.
  • Deployment: Release to production.
  • Maintenance: Corrective, adaptive, perfective, preventive.

Part (b) Agile Scrum Workflow

flowchart TD PB[(Product Backlog)] --> SP[Sprint Planning] SP --> SB[(Sprint Backlog)] SB --> DS((Daily Scrum 15 min)) DS --> DEV[Development - 2-4 wks] DEV --> SR[Sprint Review] SR --> SRET[Sprint Retrospective] SRET --> PB

Roles: Product Owner, Scrum Master, Development Team.

Events: Sprint, Planning, Daily Scrum, Review, Retrospective, Backlog Refinement.

Artefacts: Product Backlog, Sprint Backlog, Increment, Burn-down chart.

Q3a) Draw and explain the SRS document structure with a hierarchical diagram. b) Differentiate Functional, Non-Functional, and Domain requirements with examples.

Master Answer: SRS Document

Part (a) SRS Structure (IEEE 830)

mindmap root((SRS Document)) 1 Introduction Purpose Scope Glossary References 2 Overall Description Product Perspective Product Functions User Characteristics Constraints Assumptions 3 Functional Requirements Inputs Outputs Processing Logic Error Handling 4 Non-Functional Performance Security Usability Reliability Maintainability 5 Appendices

Part (b) Types of Requirements

AspectFunctionalNon-FunctionalDomain
DefinesSystem behaviour & featuresQuality attributesBusiness domain rules & regulations
NatureActionableConstraint-basedRegulatory / domain-specific
Example (Hospital App)"Book an appointment.""App loads in 2 sec.""Must comply with HIPAA."
Measurable byFunctional testsPerformance/Security testsCompliance audit
Q4a) Explain the levels of software testing with a diagram. b) Compare Black-Box vs White-Box testing on 6 dimensions. c) Design test cases using Equivalence Partitioning & Boundary Value Analysis.

Master Answer: Software Testing Levels

Part (a) Testing Levels

flowchart BT U[Unit Testing - Modules] --> I[Integration Testing - Modules combined] I --> S[System Testing - Complete system] S --> A[Acceptance Testing - User validation] A -.->| Beta | U
  • Unit: Individual functions/classes.
  • Integration: Interface defects between modules.
  • System: Compliance with full requirements.
  • Acceptance: User-driven alpha/beta testing.

Part (b) Black-Box vs White-Box

DimensionBlack-BoxWhite-Box
FocusExternal behaviourInternal logic
Knowledge of codeNot requiredRequired
TechniquesEquivalence, BVA, Decision tablesStatement, Branch, Path coverage
Performed byQA / End userDeveloper
PhaseSystem / acceptanceUnit / integration
ToolingSelenium, QTPJUnit, coverage tools

Part (c) Test Case Design — Discount Coupon Field

Field accepts strings of length 5 to 12 alphanumeric chars.

Test IDTechniqueInputExpected
TC01Equivalence (valid)"SAVE50"Accepted
TC02Equivalence (invalid)"AB!"Rejected (non-alnum)
TC03BVA (min-1)"AB12"Rejected (too short)
TC04BVA (min)"AB12X"Accepted
TC05BVA (max)"ABC123XYZ9P"Accepted
TC06BVA (max+1)"ABC123XYZ9PQ"Rejected (too long)
Q5a) Explain User Interface Design principles and the Web App Design process. b) Compare MVC vs MicrossWeb vs Microservices with diagrams.

Master Answer: UI Design & Web Architectures

Part (a) UI Design Principles

Shneiderman's three Golden Rules — user control, reduce memory load, consistency — drive interface design. Additional principles (Nielsen): visibility of system status, match between system & real world, user control & freedom, error prevention, recognition over recall, flexibility, aesthetic & minimalist design, help users recover from errors, help & documentation.

Web App Design Process

flowchart LR F[Formulation] --> C[Conceptual Design] C --> M[Mechanical Design] M --> E[Electronic Distribution] E -.->| Feedback | F

Part (b) MVC vs Client-Server vs Microservices

flowchart LR subgraph MVC V[View] --> C2[Controller] C2 --> M2[Model] M2 --> V end subgraph Client-Server CL[Client] --> R[Request] --> S2[Server] --> RES[Response] --> CL end subgraph Microservices U2[User] --> U4[API Gateway] U4 --> S1[Auth Service] U4 --> P1[Payment Service] U4 --> O1[Order Service] end

MVC is a pattern; client-server is a deployment model; microservices is an architectural style for distributed independently-scaled services.

Q6a) Explain the Waterfall Model phases with a flow diagram. b) Compare Waterfall vs Agile on 8 dimensions using a table.

Master Answer: Waterfall & Waterfall vs Agile

Part (a) Waterfall Model Phases

flowchart LR F1[Feasibility Study] --> R1[Requirement Analysis] R1 --> D1[System Design] D1 --> C1[Coding] C1 --> T1[Testing] T1 --> I1[Implementation] I1 --> M1[Maintenance]
  • Each phase produces a deliverable that becomes the input to the next.
  • Backtracking (returning to a previous phase) is rare and costly — captured as a maintenance activity.
  • Suitable only when requirements are stable and clearly understood.

Part (b) Waterfall vs Agile

DimensionWaterfallAgile
ApproachSequentialIterative-incremental
RequirementsFixed upfrontEvolving
DeliverySingle final releaseFrequent small increments
Customer involvementMilestone reviewsContinuous collaboration
DocumentationComprehensiveMinimal — working software
RiskHigh (late discovery)Low (fast feedback)
TeamSiloed (Analysis → Dev → QA)Cross-functional
ChangeExpensive, discouragedWelcome
Q7a) Explain Software Requirement Specification (SRS) characteristics (FURPS+). b) Explain Requirement Traceability with a forward & backward diagram.

Master Answer: SRS Quality & Traceability

Part (a) FURPS+ Characteristics

  • F — Functional: Features, capabilities.
  • U — Usability: Aesthetics, help, documentation.
  • R — Reliability: Availability, MTBF, recoverability.
  • P — Performance: Response time, throughput, accuracy.
  • S — Supportability: Configurability, localisation, install.
  • + : Design constraints, implementation, interface, physical.

Part (b) Requirement Traceability

flowchart LR SRC[Stakeholder Need] --> R[Requirement] R --> D[Design] D --> C[Code] C --> T[Test Case] T -.->|backward| R R -.->|forward| T

Forward traceability: requirement → test (verifies every requirement is implemented).

Backward traceability: test → requirement (verifies every test serves a valid requirement).

Q8a) Explain the five SEI CMM maturity levels with a hierarchical diagram and KPA examples. b) Compare CMM vs CMMI in a table.

Master Answer: SEI CMM Levels & CMM/CMMI

Part (a) Five Maturity Levels

flowchart BT L1[Level 1: Initial
Ad-hoc, chaotic] --> L2 L2[Level 2: Repeatable
Basic PM, CM] --> L3 L3[Level 3: Defined
Org processes] --> L4 L4[Level 4: Managed
Quantitative controls] --> L5 L5[Level 5: Optimising
Continuous improvement]
LevelFocusSample KPAs
2 RepeatableProject-level disciplineRM, SQA, SCM, Project Planning, Tracking
3 DefinedOrg-wide standardisationOrg Process Focus, Training, PEI, IDM
4 ManagedQuantitativeQPM, OPP, REPS
5 OptimisingInnovationCausal Analysis, CAR, OPM

Part (b) CMM vs CMMI

AspectCMMCMMI
Full NameCapability Maturity ModelCapability Maturity Model Integration
ScopeSoftware onlySoftware + Systems + Services
Levels5 maturity levels5 maturity levels + 6 capability levels
DisciplinesSW-only KPAs22 Process Areas integrated
VendorSEI (deprecated)ISACA / CMMI Institute
Q9a) Calculate Effort (E), Development Time (Tdev), and Average Staffing (SS) using Basic COCOMO for an Organic project with Size = 20 KLOC, a=2.4, b=1.05, c=2.5, d=0.38. b) Compare the three modes (Organic, Semi-Detached, Embedded).

Master Answer: COCOMO Calculation

Part (a) Basic COCOMO Calculation

Given: Size = 20 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 (20)^{1.05}\)
    \(20^{1.05} \approx 23.21\)
    \(E \approx 2.4 \times 23.21 = \mathbf{55.7 \; Person-Months}\)
  2. Development Time (Tdev):
    \(T_{dev} = c \times (E)^d\)
    \(T_{dev} = 2.5 \times (55.7)^{0.38}\)
    \(55.7^{0.38} \approx 4.78\)
    \(T_{dev} \approx 2.5 \times 4.78 = \mathbf{11.95 \; Months}\)
  3. Average Staffing (SS):
    \(SS = E / T_{dev} = 55.7 / 11.95 \approx \mathbf{4.66 \approx 5 \; persons}\)

Part (b) COCOMO Modes

ModeProject SizeTeam SizeInnovationExample
OrganicSmall (~2-50 KLOC)SmallFamiliarPayroll, Inventory
Semi-DetachedMedium (~50-300 KLOC)MediumSome newDBMS, ERP
EmbeddedLarge / very complexLargeStrong constraintsAvionics, Real-time control
Q10a) Calculate Function Points for a system with given weights: EI=12(simple), EO=8(average), EQ=4(complex), ILF=5(average), EIF=3(simple). ΣFi = 40. b) What is VAF? What does each Fi represent?

Master Answer: Function Point Calculation

Part (a) Calculation

ParameterCountComplexityWeightSubtotal
External Inputs (EI)12Simple336
External Outputs (EO)8Average540
External Inquiries (EQ)4Complex624
Internal Logical Files (ILF)5Average1050
External Interface Files (EIF)3Simple515
UFP165

Step 2 — Value Adjustment Factor (VAF):

\[ VAF = 0.65 + (0.01 \times \Sigma F_i) = 0.65 + 0.40 = \mathbf{1.05} \]

Step 3 — Final Function Points:

\[ FP = UFP \times VAF = 165 \times 1.05 = \mathbf{173.25 \; FP} \]

Part (b) About VAF & Fi

The 14 General System Characteristics (Fi), each rated 0–5, measure: Data communications, Distributed processing, Performance, Heavily used configuration, Transaction rate, Online data entry, End-user efficiency, Online update, Complex processing, Reusability, Installation ease, Operational ease, Multiple sites, Facilitation of change. VAF adjusts UFP for project complexity.

Q11a) Explain Software Maintenance process with types (corrective, adaptive, perfective, preventive). b) Explain Software Re-engineering lifecycle with diagram.

Master Answer: Maintenance & Re-engineering

Part (a) Maintenance Types

  • Corrective: Fix discovered defects.
  • Adaptive: Adapt to changes in environment (hardware, OS, regulations).
  • Perfective: New features, performance, usability improvements.
  • Preventive: Restructure code to prevent future failures.

Maintenance Process (IEEE)

flowchart LR I[Identify & Classify] --> A[Analyse] A --> D[Design] D --> IM[Implement] IM --> RT[Regression Test] RT --> AC[Acceptance & Release]

Part (b) Re-engineering Lifecycle

flowchart LR L[Legacy System] --> INV[Inventory Analysis] INV --> DR[Document Restructuring] DR --> RE[Reverse Engineering] RE --> CR[Code Restructuring] CR --> DAR[Data Restructuring] DAR --> FE[Forward Engineering] FE --> N[Modern System]
  • Reverse Engineering: Analyse to recover design & data models.
  • Restructuring: Refactor code/data without changing behaviour.
  • Forward Engineering: Generate new system from refactored design.
Q12a) Explain Design Patterns with the three GoF categories (Creational, Structural, Behavioural). b) Describe Singleton, Factory, and Observer patterns with code snippets. c) Explain Component-Level Design and its purpose.

Master Answer: Design Patterns & Component Design

Part (a) GoF Pattern Categories

CategoryPurposeExamples
CreationalObject creation mechanismsSingleton, Factory, Builder, Prototype, Abstract Factory
StructuralClass/object compositionAdapter, Decorator, Facade, Composite, Proxy
BehaviouralObject interaction & responsibilityObserver, Strategy, Iterator, Command, State

Part (b) Patterns with Java

Singleton:

public class DBConnection {
    private static final DBConnection INSTANCE = new DBConnection();
    private DBConnection() {}
    public static DBConnection getInstance() { return INSTANCE; }
}

Factory:

interface Shape { void draw(); }
class Circle implements Shape { public void draw() { System.out.println("Circle"); } }
class Square implements Shape { public void draw() { System.out.println("Square"); } }
class ShapeFactory {
    public static Shape create(String type) {
        return switch (type) {
            case "C" -> new Circle();
            case "S" -> new Square();
            default -> throw new IllegalArgumentException();
        };
    }
}

Observer:

interface Observer { void update(String msg); }
class NewsChannel implements Observer {
    public void update(String msg) { System.out.println("Breaking: " + msg); }
}
class Publisher {
    private final List<Observer> obs = new ArrayList<>();
    public void subscribe(Observer o) { obs.add(o); }
    public void publish(String msg) { for (Observer o : obs) o.update(msg); }
}

Part (c) Component-Level Design

Refines the architectural DFD into procedural specifications for each module — pseudocode, I/O formats, data structures, algorithms. Purpose: a translation-ready blueprint, easier integration, reduced defect density, and unambiguous interface contracts.