Home Requirements Metrics Architecture Design Estimation Testing Final Exam

Software Engineering Exam Preparation

Complete study guide with simplified explanations and Roman Urdu summaries

Welcome to Your Study Guide

This website helps you learn Software Engineering in a simple way. Each topic has easy explanations and a Roman Urdu summary at the end so you can quickly remember what you learned. There are also practice questions (MCQs) to help you test your understanding.

Topics Covered:

  • Requirements Engineering (SRS, Verification, Validation, Elicitation)
  • Software Metrics (Product, Process, Project Metrics, LOC, Function Points)
  • Architecture Styles (Pipe-and-Filter, Client-Server, P2P, Publish-Subscribe, Repository, Layering)
  • Design Principles (Modularity, Coupling, Cohesion, Tradeoff Analysis)
  • Cost-Benefit Analysis (ROI, Payback Period)
  • Software Estimation (PERT, COCOMO I, COCOMO II)
  • Software Testing (Unit, Integration, Black Box, White Box, Cyclomatic Complexity)
  • 25 Final Exam Questions to test your knowledge

1. Requirements Engineering

What is Requirements Engineering?

Requirements Engineering (RE) is about figuring out what a software system needs to do. It's like making a detailed plan before building a house, so everyone knows what to build and why. This process makes sure the final software works as people expect.

🇵🇰 Roman Urdu Summary:
Requirements Engineering (RE) ka matlab hai software banane se pehle uski zarooriyat ko samajhna aur plan karna. Jaise ghar banane se pehle naksha banate hain, waise hi software ka bhi plan banta hai taake sabko pata ho kya banana hai aur kyun. Isse yeh yakeeni hota hai ke software waisa hi kaam karega jaisa log chahte hain.

1.1 SRS - Software Requirements Specification

An SRS is a formal document that clearly describes everything the software should do. Think of it as a contract between the client and the team building the software. It explains what features the software will have, how well it should perform, and any limitations.

A good SRS must be: Complete (all needs written), Consistent (no conflicts), Clear (easy to understand), Testable (can be checked), and Traceable (source known).

🇵🇰 Roman Urdu Summary:
SRS ek official document hai jo batata hai ke software kya karega. Yeh client aur banane wali team ke beech ek agreement ki tarah hai. Ismein software ke features, performance aur limits sab likhe hote hain. Ek achhi SRS complete, consistent, clear, testable aur traceable honi chahiye.

1.2 Requirements Elicitation

This is the process of collecting requirements from different people, like users, experts, or existing documents. It's often the hardest part because people might not know exactly what they want or might explain it differently.

Ways to collect requirements: Interviews (talking to people), Surveys (asking questions), Workshops (group meetings), Observation (watching how people work), Document Analysis (reading old papers), Prototyping (making simple models), and Use Case Analysis (describing user interactions).

🇵🇰 Roman Urdu Summary:
Requirements Elicitation ka matlab hai logon se aur purane documents se software ki zarooriyat jama karna. Yeh thoda mushkil ho sakta hai kyunki log apni zarooriyat theek se bata nahi pate. Iske liye interviews, surveys, workshops aur prototyping jaise tareeqe istemal hote hain.

1.3 Verification and Validation

Verification: Checks if we are building the product right. It means making sure the requirements are written correctly and clearly.

Validation: Checks if we are building the right product. It means making sure the requirements actually solve the user's problem and meet their real needs.

🇵🇰 Roman Urdu Summary:
Verification aur Validation do zaroori steps hain. Verification dekhta hai ke hum software ko *sahi tareeqe se* bana rahe hain (yani requirements theek likhi hain ya nahi). Validation dekhta hai ke hum *sahi software* bana rahe hain (yani requirements user ki asal zarooriyat poori kar rahi hain ya nahi).

1.4 Tools to Express Requirements

UML State-chart Diagram: Shows how a system changes its state based on different events. For example, an ATM machine goes from 'Idle' to 'Accepting Card' to 'Verifying PIN' and so on.

Fence Diagram: Shows how different parts of a software system connect and interact with each other. It helps understand module dependencies.

🇵🇰 Roman Urdu Summary:
UML State-chart Diagram dikhata hai ke software kaise alag-alag halaton (states) mein badalta hai jab koi event hota hai. Fence Diagram software ke mukhtalif hisson (modules) ke beech ke connection aur interaction ko dikhata hai.

Test Your Knowledge - Requirements Engineering

1. What is the primary goal of Requirements Elicitation?
A) To write code
B) To gather needs from stakeholders
C) To test the software
D) To deploy the application
Answer: B - Requirements elicitation is gathering and extracting requirements from stakeholders.
2. What is the output of the requirements specification phase?
A) Design Document
B) Test Plan
C) Software Requirements Specification (SRS)
D) User Manual
Answer: C - The SRS is the formal document specifying all requirements.
3. Verification checks if we are building the _____ product?
A) right
B) correct
C) best
D) fast
Answer: B - Verification checks if we're building the product correctly (right way).

2. Software Metrics and Measurements

What are Software Metrics?

Software metrics are like tools that help us measure different things about software, like its quality, how well it performs, or how long it takes to build. These measurements give us facts and numbers to plan, keep track of, and improve how we make software.

🇵🇰 Roman Urdu Summary:
Software metrics aise tools hain jo software ki quality, performance aur banane mein lagne wale time ko mapne mein madad karte hain. Yeh measurements humein software banane ke process ko plan karne, monitor karne aur behtar banane ke liye zaroori information dete hain.

2.1 Types of Metrics

Product Metrics: Measure the software itself (size, complexity, reliability). Examples: LOC, Function Points.

Process Metrics: Measure how we build the software (effort, time, defects found). Examples: Defect rate, productivity.

Project Metrics: Measure the project as a whole (cost, schedule, resources). Examples: Cost variance, schedule deviation.

🇵🇰 Roman Urdu Summary:
Software metrics ki mukhtalif qismein hoti hain: Product Metrics (software ki size, complexity), Process Metrics (banane ke tareeqe ko), aur Project Metrics (poore project ko).

2.2 Lines of Code (LOC)

LOC simply counts how many lines of code are in a program. It's easy to measure but doesn't tell you about code quality. Different programming languages have different LOC counts for the same functionality.

Good: Easy to count, widely understood. Bad: Doesn't measure quality, varies by language.

🇵🇰 Roman Urdu Summary:
Lines of Code (LOC) software mein code ki lines ko ginta hai. Yeh aasan hai lekin code ki quality nahi batata aur alag-alag languages mein iski counting alag hoti hai.

2.3 Function Points (FP)

Function Points measure the amount of useful work (functionality) a software provides. It looks at inputs, outputs, data files, and inquiries. The best thing about FP is that it doesn't depend on the programming language.

Components: External Inputs (data in), External Outputs (data out), External Inquiries (questions), Internal Logical Files (data stored), External Interface Files (data from other systems).

🇵🇰 Roman Urdu Summary:
Function Points (FP) software ki functionality ko mapte hain. Yeh inputs, outputs aur data files jaisi cheezon ko dekhta hai. Iska sabse bada fayda yeh hai ke yeh kisi bhi programming language par depend nahi karta.

2.4 Defect Removal Efficiency (DRE)

DRE tells us how good we are at finding and fixing bugs before the software is released. It's a percentage that shows how many bugs we caught compared to all the bugs that existed.

Formula: DRE = (Bugs found before release / Total bugs) × 100%

🇵🇰 Roman Urdu Summary:
Defect Removal Efficiency (DRE) batata hai ke hum software release hone se pehle kitni galtiyan dhoondh kar theek kar lete hain. Yeh ek percentage hai jo humne kitni galtiyan pakdi.

Test Your Knowledge - Metrics

1. Which metric is language-independent?
A) Lines of Code (LOC)
B) Function Points (FP)
C) Cyclomatic Complexity
D) Defect Density
Answer: B - Function Points measure functionality independent of programming language.
2. What is the main disadvantage of LOC metrics?
A) It is easy to measure
B) It does not account for code quality
C) It is widely used
D) It is accurate
Answer: B - LOC does not measure code quality and encourages writing more code.
3. Which of the following is NOT a component of Function Points?
A) External Inputs
B) External Outputs
C) Code Lines
D) Internal Logical Files
Answer: C - Code Lines (LOC) is not a component of Function Points.

3. Software Architecture Styles

What is Software Architecture?

Software architecture is like the blueprint of a building. It shows the main parts of a software system, how they connect, and the rules for building it. Architectural styles are common patterns for organizing software.

🇵🇰 Roman Urdu Summary:
Software architecture software ka blueprint hota hai, jo uske main parts, unke connections aur banane ke rules batata hai. Architectural styles software ko organize karne ke common patterns hain.

3.1 Pipe-and-Filter Architecture

Data flows through a series of independent processing components (filters). Each filter does a specific job, and "pipes" connect them. This style is modular and reusable but can be slow because data needs to be changed between steps.

🇵🇰 Roman Urdu Summary:
Pipe-and-Filter architecture mein data ek line mein chalta hai, jahan har step (filter) usko process karta hai. Har filter alag kaam karta hai. Yeh modular aur reusable hai, lekin interactive systems ke liye acha nahi.

3.2 Client-Server Architecture

Clients ask for services, and servers provide them. They talk over a network. Data is managed centrally on the server. Good for security but the server can become a bottleneck if too many clients ask for things at once.

🇵🇰 Roman Urdu Summary:
Client-Server architecture mein clients (users) services mangte hain aur servers unko dete hain. Yeh data ko centralize karta hai aur security achhi hoti hai, lekin server par load zyada ho sakta hai.

3.3 Peer-to-Peer (P2P) Architecture

Each computer (peer) can act as both client and server. They talk directly to each other without needing a central hub. No single point of failure, but security and data consistency can be concerns.

🇵🇰 Roman Urdu Summary:
Peer-to-Peer (P2P) architecture mein har computer client aur server dono ka kaam karta hai. Sab direct ek doosre se baat karte hain. Koi single point of failure nahi hota, lekin security aur data consistency mushkil ho sakti hai.

3.4 Publish-Subscribe Architecture

Publishers send messages to specific topics. Subscribers choose which topics they want and get only those messages. Publishers don't know who reads, and readers don't know who writes. Very flexible and scalable.

🇵🇰 Roman Urdu Summary:
Publish-Subscribe architecture mein publishers messages bhejte hain topics par, aur subscribers un topics ko subscribe karke messages receive karte hain. Yeh scalable aur flexible hai.

3.5 Repository Architecture

All data is stored in a central place (repository). All parts of the software access this central data store. Good for data-intensive applications but the central store can become a bottleneck.

🇵🇰 Roman Urdu Summary:
Repository architecture mein saara data ek central jagah (repository) par store hota hai. Yeh data consistency ke liye acha hai aur data-intensive applications ke liye behtar hai.

3.6 Layering Architecture

The system is organized into horizontal layers. Each layer has a specific job and only talks to layers directly above and below it. Clear separation but can be slow due to communication between layers.

🇵🇰 Roman Urdu Summary:
Layering architecture mein software alag-alag layers mein divide hota hai. Yeh separation of concerns ke liye acha hai aur organize karna aasan hai.

Test Your Knowledge - Architecture

1. In which architecture style does data flow through processing elements?
A) Client-Server
B) Pipe-and-Filter
C) Layering
D) Repository
Answer: B - In Pipe-and-Filter, data flows through processing components (filters).
2. Which architecture style has no single point of failure?
A) Client-Server
B) Repository
C) Peer-to-Peer
D) Layering
Answer: C - P2P has no central server, so no single point of failure.
3. Which architecture is best for data-intensive applications?
A) Pipe-and-Filter
B) Repository
C) Peer-to-Peer
D) Publish-Subscribe
Answer: B - Repository architecture is good for data-intensive applications.

4. Design Principles and Evaluation

Good Software Design

Good software design is super important for making systems that are easy to keep running, can grow bigger, and work reliably. Design rules like modularity, cohesion, and coupling help us build software that is well-organized.

🇵🇰 Roman Urdu Summary:
Achha software design bahut zaroori hai taake system ko maintain karna, scale karna aur reliable banana aasan ho. Modularity, cohesion aur coupling jaise design principles achhe structured systems banane mein madad karte hain.

4.1 Modularity

Modularity means breaking down a big software system into smaller, independent parts called modules. Each module does a specific job. This makes the system easier to understand, change, and expand.

Benefits: Easier to maintain, reusable, easier to test, faster development, easier to find bugs.

🇵🇒 Roman Urdu Summary:
Modularity ka matlab hai software ko chote, alag-alag hisson (modules) mein todna. Isse system ko samajhna, badalna aur bada karna aasan ho jata hai.

4.2 Coupling and Cohesion

Coupling: How much different modules depend on each other. Low coupling is good (modules are independent).

Cohesion: How well parts inside a module belong together. High cohesion is good (module has clear purpose).

Design Goal: High cohesion and low coupling.

🇵🇰 Roman Urdu Summary:
Coupling aur Cohesion design ke do important concepts hain. Coupling: modules ek doosre par kitna depend karte hain (low achha hai). Cohesion: ek module ke andar ke parts kitne achhe se ek saath kaam karte hain (high achha hai).

4.3 Tradeoff Analysis

When we have different ways to design something, Tradeoff Analysis helps us pick the best one. We look at the pros and cons of each design, considering things like speed, cost, or ease of maintenance.

🇵🇰 Roman Urdu Summary:
Jab hamare paas design ke kai options hote hain, toh Tradeoff Analysis humein sabse achha option chunne mein madad karta hai. Hum har design ke fayde aur nuksan dekhte hain.

4.4 Cost-Benefit Analysis

ROI (Return on Investment): How much profit we get back from our investment. Formula: ROI = (Net Benefit / Total Cost) × 100%

Payback Period: How long it takes to earn back the money we invested. Formula: Payback Period = Initial Investment / Average Annual Benefit

🇵🇰 Roman Urdu Summary:
Cost-Benefit Analysis yeh dekhta hai ke koi design idea financially kitna faida mand hai. ROI batata hai ke investment par kitna profit mila. Payback Period batata hai ke kitne time mein investment ka paisa wapas mil jayega.

Test Your Knowledge - Design

1. High cohesion and low coupling are characteristics of:
A) Poor design
B) Good design
C) Complex design
D) Small projects only
Answer: B - High cohesion and low coupling characterize good, maintainable design.
2. What does ROI stand for?
A) Rate of Interest
B) Return on Investment
C) Risk of Implementation
D) Reliable Output Index
Answer: B - ROI measures the profitability of an investment.
3. Payback Period is calculated as:
A) Initial Investment / Average Annual Benefit
B) Average Annual Benefit / Initial Investment
C) Initial Investment × Average Annual Benefit
D) Initial Investment - Average Annual Benefit
Answer: A - Payback Period = Initial Investment / Average Annual Benefit.

5. Software Project Estimation

What is Project Estimation?

Software project estimation is about guessing how much effort, time, money, and people we will need to finish a software project. Getting these guesses right is very important for planning the project and keeping everyone happy.

🇵🇰 Roman Urdu Summary:
Software project estimation ka matlab hai yeh andaza lagana ke software project ko poora karne mein kitni mehnat, waqt, paisa aur log lagenge. Sahi andaza lagana project planning aur sab stakeholders ko khush rakhne ke liye bahut zaroori hai.

5.1 3-Point Estimation (PERT)

This is a way to estimate tasks by using three different guesses: Optimistic (best case), Most Likely (normal case), and Pessimistic (worst case). We combine these using a formula to get a realistic estimate.

Formula: E = (O + 4M + P) / 6

🇵🇰 Roman Urdu Summary:
3-Point Estimation (PERT) mein hum kisi bhi kaam ka andaza teen tarah se lagate hain: Optimistic (sabse achha case), Most Likely (aam halat), aur Pessimistic (sabse bura case). Phir in teenon ko ek formula se combine karke ek zyada realistic estimate nikalte hain.

5.2 COCOMO I Model

COCOMO I is an old model that helps estimate how much effort, cost, and time a software project will need. It uses the size of the project (in KLOC - thousands of lines of code) and how complex it is.

Three types: Organic (small, simple), Semi-detached (medium), Embedded (large, complex).

🇵🇰 Roman Urdu Summary:
COCOMO I ek purana model hai jo software project ki mehnat, cost aur time ka andaza lagane mein madad karta hai. Iske teen types hain: Organic (chote projects), Semi-detached (medium projects), aur Embedded (bade aur complex projects).

5.3 COCOMO II Model

COCOMO II is a newer version made for modern software development. It's better for fast development, code reuse, and object-oriented systems. It gives better estimates for today's software projects.

🇵🇰 Roman Urdu Summary:
COCOMO II COCOMO model ka naya version hai. Yeh modern software development ke liye banaya gaya hai. Yeh aaj ke software projects ke liye behtar estimates deta hai.

Test Your Knowledge - Estimation

1. The PERT formula for 3-point estimation is:
A) E = (O + M + P) / 3
B) E = (O + 4M + P) / 6
C) E = (O + 2M + P) / 4
D) E = O + M + P
Answer: B - The PERT formula is E = (O + 4M + P) / 6.
2. Which COCOMO mode is for large, complex projects?
A) Organic
B) Semi-detached
C) Embedded
D) Basic
Answer: C - Embedded mode is for large, complex projects (300+ KLOC).
3. What does COCOMO stand for?
A) Component-based Cost Model
B) Constructive Cost Model
C) Complete Code Measurement
D) Comprehensive Cost Modeling
Answer: B - COCOMO stands for Constructive Cost Model.

6. Software Testing

What is Software Testing?

Software testing is about checking a program or system to find mistakes, make sure it works as it should, and confirm its quality. It's a very important step in making software, as it helps us find problems before users get the software.

🇵🇰 Roman Urdu Summary:
Software testing ka matlab hai program ya system ko check karna taake galtiyan dhoondhi ja sakein. Yeh software banane ka ek bahut zaroori step hai, jo users tak software pahunchne se pehle problems ko dhoondhne mein madad karta hai.

6.1 Why Testing is Important

Goals of Testing: Find bugs and errors, make sure software meets requirements, verify it works as expected, ensure quality and reliability, reduce risk of failures, and give confidence to stakeholders.

Test Case: A set of steps, data, and expected results used to check if a specific feature works correctly.

🇵🇰 Roman Urdu Summary:
Testing isliye zaroori hai taake software mein bugs dhoondhe ja sakein. Test Case ek set of steps, data aur expected results hota hai jo software ke ek khaas feature ko check karne ke liye istemal hota hai.

6.2 Types of Mistakes and Debugging

Types of Faults: Logic errors (wrong thinking), Syntax errors (grammar mistakes), Semantic errors (wrong logic), Interface errors (connection problems), Performance faults (too slow), Data faults (wrong data handling).

Debugging: The process of finding and fixing errors. Methods include: print statements, debugger tools, logging, breakpoints, code review.

🇵🇰 Roman Urdu Summary:
Galtiyan (Faults) kayi tarah ki hoti hain, jaise logic mein galti, grammar mein galti (syntax), ya data handling mein galti. Debugging ka matlab hai in galtiyon ko dhoondhna aur theek karna.

6.3 Levels of Testing

Unit Testing: Testing individual parts of the code in isolation. Tests each function or method separately.

Integration Testing: Testing combined parts to make sure they work together. Approaches: Big Bang (all at once), Top-Down (start from top), Bottom-Up (start from bottom), Sandwich (mix of both).

System Testing: Testing the complete system. Acceptance Testing: Users test to make sure it's ready.

🇵🇰 Roman Urdu Summary:
Software ki testing alag-alag levels par hoti hai: Unit Testing (code ke chote-chote hisson ko alag-alag), Integration Testing (chote hisson ko jod kar), System Testing (poore system ko), Acceptance Testing (users ka test).

6.4 Black Box vs. White Box Testing

Black Box Testing: Testing without knowing how the code works inside. You just give inputs and check outputs. Tests from a user's perspective.

White Box Testing: Testing with knowledge of how the code works inside. You can see and test the internal logic. Tests from a developer's perspective.

🇵🇰 Roman Urdu Summary:
Black Box Testing: Software ko bahar se test karna, uske andar ke code ko jaane bagair. White Box Testing: Software ke andar ke code ko jaan kar test karna.

6.5 Cyclomatic Complexity

Cyclomatic Complexity is a number that tells us how complicated a piece of code is. A higher number means the code is more complex and harder to test.

Formula: V(G) = E - N + 2P (E = connections, N = steps, P = separate parts)

Meaning: 1 = simple, 2-4 = easy, 5-7 = medium, 8-10 = hard, >10 = very hard (needs rewriting).

🇵🇰 Roman Urdu Summary:
Cyclomatic Complexity ek number hai jo batata hai ke code kitna complex hai. Zyada number matlab zyada complex code aur usko test karna mushkil. Yeh humein code ke alag-alag paths ki tadad batata hai.

Test Your Knowledge - Testing

1. Which testing level focuses on individual modules?
A) System Testing
B) Unit Testing
C) Acceptance Testing
D) Integration Testing
Answer: B - Unit Testing focuses on testing individual components in isolation.
2. Cyclomatic Complexity is a measure of:
A) Code size
B) Logical complexity
C) Execution time
D) Memory usage
Answer: B - Cyclomatic Complexity measures the number of linearly independent paths.
3. Which testing approach tests without knowing internal code?
A) White Box Testing
B) Black Box Testing
C) Unit Testing
D) Integration Testing
Answer: B - Black Box Testing tests based on inputs/outputs without knowing internal code.

Final Exam - 25 Comprehensive MCQs

Instructions

This section contains 25 multiple-choice questions covering all topics. Try to answer all questions without referring back to the content sections. This will help you see how well you understand the material.

1. What is the primary goal of Requirements Engineering?
A) To write code for the system
B) To establish clear understanding of what the software should do
C) To test the software
D) To deploy the application
Answer: B
2. Which of the following is NOT a characteristic of a good SRS?
A) Completeness
B) Ambiguity
C) Verifiability
D) Traceability
Answer: B - SRS should be clear and unambiguous, not ambiguous.
3. Validation ensures we are building the _____ product?
A) right
B) correct
C) best
D) fast
Answer: A - Validation checks if we're building the right product (right one).
4. Which metric is language-independent?
A) Lines of Code (LOC)
B) Function Points (FP)
C) Cyclomatic Complexity
D) Execution Time
Answer: B - Function Points measure functionality independent of programming language.
5. Product metrics are used to evaluate:
A) The development process
B) The software product itself
C) The project schedule
D) The team performance
Answer: B - Product metrics measure characteristics of the software product.
6. What is the main disadvantage of LOC metrics?
A) It is easy to measure
B) It does not account for code quality
C) It is widely used
D) It is accurate
Answer: B - LOC does not measure code quality and encourages writing more code.
7. In Pipe-and-Filter architecture, what do filters do?
A) Store data
B) Process and transform data
C) Transmit data
D) Validate data
Answer: B - Filters are processing components that transform data in the pipeline.
8. Which architecture style has no central server?
A) Client-Server
B) Peer-to-Peer
C) Repository
D) Layering
Answer: B - P2P has no central server; each node is both client and server.
9. What does low coupling mean?
A) Modules are highly dependent
B) Modules are independent
C) Modules share data
D) Modules are tightly connected
Answer: B - Low coupling means modules are independent and have minimal interdependence.
10. High cohesion means:
A) Elements have no relationship
B) Elements work toward a common purpose
C) Elements are scattered
D) Elements are independent
Answer: B - High cohesion means elements work together for a common purpose.
11. What is ROI?
A) Rate of Interest
B) Return on Investment
C) Risk of Implementation
D) Reliable Output Index
Answer: B - ROI measures the profitability of an investment.
12. The PERT formula for 3-point estimation is:
A) E = (O + M + P) / 3
B) E = (O + 4M + P) / 6
C) E = (O + 2M + P) / 4
D) E = O + M + P
Answer: B - The PERT formula is E = (O + 4M + P) / 6.
13. Which COCOMO mode is for large, complex projects?
A) Organic
B) Semi-detached
C) Embedded
D) Basic
Answer: C - Embedded mode is for large, complex projects (300+ KLOC).
14. In COCOMO I, the effort formula is:
A) E = KLOC / a
B) E = a × (KLOC)^b
C) E = a + b × KLOC
D) E = KLOC^a / b
Answer: B - The COCOMO I effort formula is E = a × (KLOC)^b.
15. What is the primary objective of Unit Testing?
A) Test the entire system
B) Test individual components in isolation
C) Test user acceptance
D) Test performance
Answer: B - Unit testing focuses on testing individual components in isolation.
16. Integration Testing focuses on:
A) Individual modules
B) Combined modules and their interfaces
C) User requirements
D) System performance
Answer: B - Integration testing focuses on combined modules and their interfaces.
17. The Big Bang integration approach:
A) Integrates modules gradually from top-down
B) Integrates modules gradually from bottom-up
C) Integrates all modules at once
D) Integrates modules in random order
Answer: C - Big Bang integration integrates all modules at once.
18. Black Box Testing is based on:
A) Internal code structure
B) Inputs and expected outputs
C) Code paths
D) Algorithm complexity
Answer: B - Black Box testing is based on inputs and expected outputs without knowing internal code.
19. Cyclomatic Complexity measures:
A) Code size
B) Number of linearly independent paths
C) Execution time
D) Memory usage
Answer: B - Cyclomatic Complexity measures the number of linearly independent paths.
20. The formula for Cyclomatic Complexity is:
A) V(G) = E - N + 2P
B) V(G) = E + N - 2P
C) V(G) = E / N + P
D) V(G) = E × N - P
Answer: A - The formula is V(G) = E - N + 2P.
21. Defect Removal Efficiency measures:
A) The number of defects found
B) The percentage of defects removed before release
C) The cost of fixing defects
D) The time to fix defects
Answer: B - DRE measures the percentage of defects found and fixed before release.
22. Which architecture style is best for data-intensive applications?
A) Pipe-and-Filter
B) Client-Server
C) Repository
D) Peer-to-Peer
Answer: C - Repository architecture is good for data-intensive applications.
23. The Payback Period is calculated as:
A) Initial Investment / Average Annual Benefit
B) Average Annual Benefit / Initial Investment
C) Initial Investment × Average Annual Benefit
D) Initial Investment - Average Annual Benefit
Answer: A - Payback Period = Initial Investment / Average Annual Benefit.
24. Which testing approach requires knowledge of code structure?
A) Black Box Testing
B) White Box Testing
C) Acceptance Testing
D) System Testing
Answer: B - White Box Testing requires knowledge of internal code structure.
25. Tradeoff Analysis is used to:
A) Write code faster
B) Compare design alternatives and select the best one
C) Test the software
D) Estimate project cost
Answer: B - Tradeoff Analysis compares design alternatives to select the best solution.

Exam Tips

Remember to review all topics thoroughly before taking the final exam. Focus on understanding concepts rather than memorizing definitions. Practice with the MCQs provided in each section to reinforce your learning. Good luck with your exam!