Question 1(a) [3 marks]#
Give IEEE definition of software. Write one example of each for application and system software.
Answer:
IEEE Definition: Software is a collection of computer programs, procedures, rules, and associated documentation and data.
Examples:
| Software Type | Example | Purpose |
|---|---|---|
| Application Software | Microsoft Word | Word processing and document creation |
| System Software | Windows 10 | Operating system managing hardware resources |
- Application software: Programs designed for end-users to accomplish specific tasks
- System software: Programs that manage and operate computer hardware
Mnemonic: “Apps help Users, Systems help Hardware”
Question 1(b) [4 marks]#
Write a short note on data dictionary.
Answer:
Data dictionary is a centralized repository containing definitions and characteristics of data elements used in a system.
Components Table:
| Component | Description |
|---|---|
| Data Name | Unique identifier for data element |
| Aliases | Alternative names used |
| Description | Purpose and meaning |
| Data Type | Format (integer, string, etc.) |
| Length | Size constraints |
| Values | Valid range or set |
- Purpose: Ensures consistency in data usage across development team
- Benefits: Reduces ambiguity, improves communication, standardizes data definitions
- Usage: Referenced during system design and database creation
Mnemonic: “Dictionary Defines Data Clearly”
Question 1(c) [7 marks]#
Explain prototype model with figure.
Answer:
Prototype model is an iterative approach where a working model is built early to understand requirements better.
Diagram:
graph LR
A[Requirement Gathering] --> B[Quick Design]
B --> C[Build Prototype]
C --> D[User Evaluation]
D --> E{User Satisfied?}
E -->|No| F[Refine Requirements]
F --> B
E -->|Yes| G[Final System Development]
G --> H[Testing & Maintenance]
Characteristics:
| Phase | Activity | Output |
|---|---|---|
| Quick Design | Basic architecture | Initial design |
| Prototype Build | Working model | Testable system |
| User Evaluation | Feedback collection | Requirements refinement |
- Advantages: Early user feedback, reduced development risk, better requirement understanding
- Disadvantages: May lead to inadequate analysis, customer expects prototype as final product
- Best for: Projects with unclear requirements
Mnemonic: “Prototype Proves Possibilities”
Question 1(c) OR [7 marks]#
Explain RAD model with advantages and disadvantages.
Answer:
RAD (Rapid Application Development) emphasizes quick development through prototyping and iterative development.
RAD Phases:
graph LR
A[Business Modeling] --> B[Data Modeling]
B --> C[Process Modeling]
C --> D[Application Generation]
D --> E[Testing & Turnover]
Advantages vs Disadvantages:
| Advantages | Disadvantages |
|---|---|
| Faster development | Requires skilled developers |
| Early user involvement | Not suitable for large projects |
| Reduced costs | Requires user commitment |
| Better quality | Technical risks if not managed |
- Key feature: Uses automated tools and 4GL programming
- Timeline: Typically 60-90 days for development
- Team: Small, experienced development teams
Mnemonic: “RAD Rapidly Accelerates Development”
Question 2(a) [3 marks]#
Give the full form of following: SQA, FTR, RAD, BVA, GUI, DFD
Answer:
| Abbreviation | Full Form |
|---|---|
| SQA | Software Quality Assurance |
| FTR | Formal Technical Review |
| RAD | Rapid Application Development |
| BVA | Boundary Value Analysis |
| GUI | Graphical User Interface |
| DFD | Data Flow Diagram |
Mnemonic: “Software Quality And Formal Technical Reviews Rapidly Analyze Development, Boundary Value Analysis Guides User Interface, Data Flow Diagrams”
Question 2(b) [4 marks]#
Define agile methodology. Discuss agile principles.
Answer:
Definition: Agile is an iterative software development approach emphasizing collaboration, flexibility, and rapid delivery of working software.
Core Agile Principles:
| Principle | Description |
|---|---|
| Individuals over processes | People and communication are priority |
| Working software over documentation | Functional software is primary measure |
| Customer collaboration | Continuous customer involvement |
| Responding to change | Adaptability over rigid plans |
- Iteration length: Typically 2-4 weeks (sprints)
- Delivery: Frequent working software releases
- Team structure: Cross-functional, self-organizing teams
Mnemonic: “Agile Adapts And Advances”
Question 2(c) [7 marks]#
Explain XP model with its advantages and disadvantages.
Answer:
XP (Extreme Programming) is an agile methodology emphasizing engineering practices and customer satisfaction.
XP Practices:
mindmap
root((XP Practices))
Planning Game
Small Releases
Pair Programming
Test-Driven Development
Continuous Integration
Refactoring
Simple Design
Collective Code Ownership
Advantages and Disadvantages:
| Advantages | Disadvantages |
|---|---|
| High code quality | Requires experienced programmers |
| Rapid feedback | Customer must be available |
| Reduced bugs | Code-focused, less documentation |
| Flexibility | Difficult to estimate costs |
- Key practice: Pair programming ensures code quality
- Testing: Test-first approach with automated testing
- Customer role: On-site customer provides continuous feedback
Mnemonic: “eXtreme Programming eXcels through Practices”
Question 2(a) OR [3 marks]#
Define black box testing. Give at least two names of black box testing method.
Answer:
Definition: Black box testing examines software functionality without knowledge of internal code structure, focusing on input-output behavior.
Black Box Testing Methods:
| Method | Description |
|---|---|
| Equivalence Partitioning | Divides input into valid/invalid classes |
| Boundary Value Analysis | Tests values at input boundaries |
- Approach: Tests based on requirements and specifications
- Tester knowledge: No internal code knowledge required
- Focus: External behavior and functionality
Mnemonic: “Black Box Behavior Based”
Question 2(b) OR [4 marks]#
Give the full form of CLI. Explain CLI in brief.
Answer:
CLI: Command Line Interface
CLI Characteristics:
| Aspect | Description |
|---|---|
| Input method | Text commands typed by user |
| Output | Text-based responses |
| Navigation | Commands for file/directory operations |
| Efficiency | Faster for experienced users |
- Advantages: Fast execution, less memory usage, scriptable
- Disadvantages: Requires learning commands, not user-friendly for beginners
- Examples: Windows Command Prompt, Linux Terminal, DOS
Mnemonic: “Commands Lead Interaction”
Question 2(c) OR [7 marks]#
Explain waterfall model with neat figure.
Answer:
Waterfall model is a linear sequential approach where each phase must be completed before moving to the next.
Waterfall Model Diagram:
graph LR
A[Requirement Analysis] --> B[System Design]
B --> C[Implementation]
C --> D[Integration & Testing]
D --> E[Deployment]
E --> F[Maintenance]
style A fill:#e1f5fe
style B fill:#f3e5f5
style C fill:#fff3e0
style D fill:#f1f8e9
style E fill:#fce4ec
style F fill:#fff8e1
Phase Details:
| Phase | Activities | Deliverables |
|---|---|---|
| Requirements | Gather and document needs | SRS document |
| Design | System architecture | Design documents |
| Implementation | Code development | Source code |
| Testing | Verify functionality | Test reports |
| Deployment | System installation | Working system |
| Maintenance | Bug fixes, updates | Updated system |
- Advantages: Simple, easy to manage, well-documented
- Disadvantages: Inflexible, late testing, difficult to accommodate changes
Mnemonic: “Water Always Flows Downward”
Question 3(a) [3 marks]#
Give one word answer:
Answer:
| Question | Answer |
|---|---|
| Lowest cohesion is | Coincidental |
| Highest coupling is | Content |
| Slack time of critical activity is | Zero |
Mnemonic: “Coincidental Cohesion, Content Coupling, Critical Zero”
Question 3(b) [4 marks]#
Explain classification of coupling.
Answer:
Coupling measures interdependence between modules. Lower coupling is better for maintainability.
Coupling Types (Best to Worst):
| Type | Description | Example |
|---|---|---|
| Data | Parameters passed | Method calls with parameters |
| Stamp | Data structure passed | Passing objects/records |
| Control | Control information passed | Flags/switches passed |
| External | External data reference | Global variables |
| Common | Shared data area | Common memory blocks |
| Content | Direct access to internals | Modifying another module’s data |
- Best practice: Aim for data coupling
- Avoid: Content and common coupling
- Design goal: Minimize dependencies between modules
Mnemonic: “Data Stamps Control External Common Content”
Question 3(c) [7 marks]#
Define following terms (don’t just give the full form):
Answer:
| Term | Definition |
|---|---|
| UI | User Interface - the means by which users interact with software systems |
| SE | Software Engineering - systematic approach to software development using engineering principles |
| PMC | Project Management and Control - planning, monitoring, and controlling software projects |
| SDLC | Software Development Life Cycle - phases involved in software development from conception to maintenance |
| Verification | Process of checking if software meets specified requirements and design |
| Validation | Process of checking if software meets user needs and intended purpose |
| SRS | Software Requirements Specification - detailed document describing software functionality and constraints |
- Verification: “Are we building the product right?”
- Validation: “Are we building the right product?”
- Key difference: Verification checks specifications, Validation checks user satisfaction
Mnemonic: “Users Interact, Software Engineers Plan, Managing Cycles, Specifications Define, Verification checks Requirements, Validation checks Satisfaction, Requirements Specify Software”
Question 3(a) OR [3 marks]#
Explain menu based UI with advantages and disadvantages.
Answer:
Menu-based UI presents options in hierarchical menus for user selection.
Advantages vs Disadvantages:
| Advantages | Disadvantages |
|---|---|
| Easy to learn | Slower for experts |
| Reduces errors | Limited flexibility |
| Self-explanatory | Screen space consumption |
- Structure: Hierarchical organization of options
- Navigation: Point-and-click or keyboard shortcuts
- Best for: Applications with well-defined functions
Mnemonic: “Menus Make Choices Clear”
Question 3(b) OR [4 marks]#
Explain classification of cohesion.
Answer:
Cohesion measures how closely related elements within a module are. Higher cohesion is better.
Cohesion Types (Best to Worst):
| Type | Description |
|---|---|
| Functional | Single, well-defined task |
| Sequential | Output of one element feeds next |
| Communicational | Elements work on same data |
| Procedural | Elements follow execution sequence |
| Temporal | Elements executed at same time |
| Logical | Elements perform similar functions |
| Coincidental | Elements randomly grouped |
- Goal: Achieve functional cohesion
- Design principle: Each module should have single responsibility
- Measurement: Higher cohesion = better design
Mnemonic: “Functional Sequences Communicate Procedures Temporally through Logical Coincidence”
Question 3(c) OR [7 marks]#
Define risk. Explain risk management.
Answer:
Risk Definition: Potential problem that may occur during software development, causing negative impact on project success.
Risk Management Process:
graph LR
A[Risk Identification] --> B[Risk Assessment]
B --> C[Risk Prioritization]
C --> D[Risk Mitigation]
D --> E[Risk Monitoring]
E --> A
Risk Management Activities:
| Activity | Description | Output |
|---|---|---|
| Identification | Find potential problems | Risk list |
| Assessment | Analyze probability and impact | Risk analysis |
| Prioritization | Rank risks by importance | Priority matrix |
| Mitigation | Plan risk responses | Mitigation strategies |
| Monitoring | Track risk status | Updated risk status |
- Risk types: Technical, Project, Business risks
- Strategies: Avoid, Transfer, Mitigate, Accept
- Tools: Risk matrices, probability-impact charts
Mnemonic: “Risk Requires Careful Planning”
Question 4(a) [3 marks]#
Define: Error, Failure, Test case
Answer:
| Term | Definition |
|---|---|
| Error | Human mistake made during software development process |
| Failure | Deviation of software behavior from expected results |
| Test case | Set of conditions to verify specific functionality or system requirement |
- Relationship: Error leads to defect, defect causes failure
- Error source: Developer mistakes, misunderstanding requirements
- Test case components: Input, expected output, execution steps
Mnemonic: “Errors Cause Failures, Tests Catch Problems”
Question 4(b) [4 marks]#
Identify any six functional requirements of ATM system.
Answer:
ATM System Functional Requirements:
| Requirement | Description |
|---|---|
| User Authentication | PIN verification for account access |
| Balance Inquiry | Display current account balance |
| Cash Withdrawal | Dispense requested cash amount |
| Fund Transfer | Transfer money between accounts |
| Transaction History | Show recent transaction records |
| PIN Change | Allow users to modify PIN |
- Security: All transactions require authentication
- Validation: Check sufficient balance before withdrawal
- Logging: Record all transactions for audit
Mnemonic: “ATMs Authenticate, Balance, Cash, Transfer, History, PIN”
Question 4(c) [7 marks]#
State the use of activity network diagram. Develop activity network diagram for the following system and find the critical path for the same.
Answer:
Activity Network Diagram Uses:
- Project scheduling: Determine project timeline
- Critical path identification: Find longest path determining minimum project duration
- Resource planning: Optimize resource allocation
Activity Network Diagram:
Critical Path Analysis:
| Path | Activities | Duration | Critical? |
|---|---|---|---|
| A-C-E-G-H | A→C→E→G→H | 2+2+4+5+2 = 15 | No |
| B-C-E-G-H | B→C→E→G→H | 3+2+4+5+2 = 16 | Yes |
| A-C-D-G-H | A→C→D→G→H | 2+2+4+5+2 = 15 | No |
Critical Path: B→C→E→G→H (16 days) Project Duration: 16 days
Mnemonic: “Networks Navigate Project Paths”
Question 4(a) OR [3 marks]#
Explain any three requirement gathering activities.
Answer:
Requirement Gathering Activities:
| Activity | Description | Output |
|---|---|---|
| Stakeholder Interviews | Direct discussion with users and clients | Interview notes, requirements list |
| Questionnaires | Structured questions for large user groups | Survey responses, statistical data |
| Document Analysis | Review existing system documentation | Current system understanding |
- Purpose: Understand user needs and system expectations
- Participants: Users, customers, domain experts, developers
- Documentation: All findings recorded in SRS document
Mnemonic: “Interviews, Questions, Documents Gather Requirements”
Question 4(b) OR [4 marks]#
Develop use case diagram for Bank ATM system.
Answer:
ATM Use Case Diagram:
graph TB
Customer((Customer))
Admin((Admin))
Bank[Bank System]
Customer --> UC1[Check Balance]
Customer --> UC2[Withdraw Cash]
Customer --> UC3[Transfer Funds]
Customer --> UC4[Change PIN]
Customer --> UC5[Print Receipt]
Admin --> UC6[Load Cash]
Admin --> UC7[View Logs]
Admin --> UC8[Maintenance]
UC1 -.-> Bank
UC2 -.-> Bank
UC3 -.-> Bank
UC4 -.-> Bank
Use Case Details:
| Actor | Use Cases |
|---|---|
| Customer | Check Balance, Withdraw Cash, Transfer Funds, Change PIN |
| Admin | Load Cash, View Logs, System Maintenance |
| Bank System | Validate accounts, Process transactions |
Mnemonic: “Customers Use ATMs, Admins Maintain Systems”
Question 4(c) OR [7 marks]#
Draw the figure of spiral model. Explain it in brief.
Answer:
Spiral Model Diagram:
graph TB
subgraph "Spiral Model"
A[Planning] --> B[Risk Analysis]
B --> C[Engineering]
C --> D[Customer Evaluation]
D --> A
A1[Plan 1] --> B1[Risk 1]
B1 --> C1[Code 1]
C1 --> D1[Test 1]
D1 --> A2[Plan 2]
A2 --> B2[Risk 2]
B2 --> C2[Code 2]
C2 --> D2[Test 2]
end
Spiral Model Characteristics:
| Quadrant | Activity | Purpose |
|---|---|---|
| Planning | Define objectives, alternatives | Set goals for iteration |
| Risk Analysis | Identify and resolve risks | Minimize project risks |
| Engineering | Develop and test product | Create working software |
| Evaluation | Customer assessment | Get user feedback |
- Key feature: Risk-driven approach with iterative development
- Best for: Large, complex, high-risk projects
- Advantages: Risk management, flexible, incremental development
- Disadvantages: Complex management, expensive, requires risk expertise
Mnemonic: “Spirals Plan, Risk, Engineer, Evaluate”
Question 5(a) [3 marks]#
State TRUE or FALSE for the following.
Answer:
| Statement | Answer | Explanation |
|---|---|---|
| Activity network diagram used to determine critical path | TRUE | Primary purpose of activity networks |
| In CPM, the shortest path is the critical path | FALSE | Longest path is critical path |
| Risk avoidance is the best technique to solve risks | FALSE | Best technique depends on risk type |
- Critical path: Longest duration path in project network
- CPM: Critical Path Method identifies project bottlenecks
- Risk strategies: Avoid, Transfer, Mitigate, Accept (choice depends on context)
Mnemonic: “True Networks, False Shortest, False Best”
Question 5(b) [4 marks]#
Identify the differences between traditional model approach and agile approach. (at least 4 differences)
Answer:
Traditional vs Agile Comparison:
| Aspect | Traditional | Agile |
|---|---|---|
| Planning | Extensive upfront planning | Adaptive planning |
| Documentation | Heavy documentation | Minimal documentation |
| Customer involvement | Limited to requirements phase | Continuous involvement |
| Change handling | Difficult and expensive | Embraces change |
| Delivery | Single final delivery | Frequent incremental delivery |
| Process | Process-driven | People-driven |
- Traditional: Predictive, sequential approach
- Agile: Adaptive, iterative approach
- Flexibility: Agile more responsive to changing requirements
Mnemonic: “Traditional Plans Heavy, Agile Adapts Light”
Question 5(c) [7 marks]#
Define unit testing. Draw the figure of it. Explain the process of unit testing.
Answer:
Unit Testing Definition: Testing individual software components or modules in isolation to verify they function correctly according to design specifications.
Unit Testing Process:
graph LR
A[Select Unit] --> B[Design Test Cases]
B --> C[Set Up Test Environment]
C --> D[Execute Tests]
D --> E[Record Results]
E --> F{All Tests Pass?}
F -->|No| G[Debug and Fix]
G --> D
F -->|Yes| H[Unit Approved]
Unit Testing Process Steps:
| Step | Activity | Purpose |
|---|---|---|
| Test Planning | Identify units to test | Define testing scope |
| Test Design | Create test cases | Cover all code paths |
| Test Setup | Prepare test environment | Isolate unit under test |
| Test Execution | Run test cases | Verify unit behavior |
| Result Analysis | Evaluate outcomes | Identify defects |
| Defect Fixing | Correct found issues | Ensure unit quality |
- Benefits: Early defect detection, easier debugging, improved code quality
- Tools: JUnit, NUnit, automated testing frameworks
- Coverage: Aim for high code coverage (statements, branches, paths)
Mnemonic: “Units Test Individual Components Thoroughly”
Question 5(a) OR [3 marks]#
Give the full form of the following.
Answer:
| Abbreviation | Full Form |
|---|---|
| AOA | Activity On Arrow |
| PERT | Program Evaluation and Review Technique |
| EVA | Earned Value Analysis |
| CPM | Critical Path Method |
| WBS | Work Breakdown Structure |
| PMC | Project Management and Control |
Mnemonic: “Activities On Arrows, Programs Evaluate Review Techniques, Earned Values Analyzed, Critical Paths Managed, Work Broken Structured, Projects Managed Controlled”
Question 5(b) OR [4 marks]#
Explain code inspection.
Answer:
Code inspection is a systematic examination of source code by team members to identify defects and ensure quality standards.
Code Inspection Process:
| Phase | Activity | Participants |
|---|---|---|
| Planning | Schedule inspection meeting | Moderator |
| Preparation | Review code individually | All inspectors |
| Inspection Meeting | Discuss findings | Team members |
| Rework | Fix identified issues | Author |
| Follow-up | Verify corrections | Moderator |
- Benefits: Early defect detection, knowledge sharing, improved code quality
- Roles: Author, Moderator, Reviewers, Recorder
- Focus areas: Logic errors, coding standards, maintainability
Mnemonic: “Inspections Improve Code Quality”
Question 5(c) OR [7 marks]#
Define white box testing method. Explain different white box testing methods.
Answer:
White Box Testing Definition: Testing method that examines internal code structure, logic paths, and implementation details to ensure thorough coverage.
White Box Testing Methods:
| Method | Description | Coverage Focus |
|---|---|---|
| Statement Coverage | Execute every statement | All code lines |
| Branch Coverage | Test all decision outcomes | If-else conditions |
| Path Coverage | Execute all possible paths | Complete execution flows |
| Condition Coverage | Test all condition combinations | Boolean expressions |
Testing Techniques:
mindmap
root((White Box Testing))
Statement Testing
Line Coverage
Code Execution
Branch Testing
Decision Points
True/False Paths
Path Testing
All Routes
Loop Testing
Condition Testing
Boolean Logic
Multiple Conditions
Coverage Analysis:
| Technique | Formula | Purpose |
|---|---|---|
| Statement | Executed statements / Total statements | Ensure all code runs |
| Branch | Tested branches / Total branches | Cover all decisions |
| Path | Tested paths / Total paths | Complete flow coverage |
- Tools: Code coverage analyzers, debugging tools
- Advantages: Thorough testing, identifies dead code, ensures quality
- Disadvantages: Requires code knowledge, time-consuming, may miss requirement gaps
Mnemonic: “White Box Sees Inside Code Structure”

