Skip to main content
  1. Resources/
  2. Study Materials/
  3. Information Technology Engineering/
  4. IT Semester 3/
  5. Fundamentals Of Software Development (4331604)/

Fundamentals of Software Development (4331604) - Summer 2025 Solution

·
Study-Material Solutions Software-Development 4331604 2025 Summer
Milav Dabgar
Author
Milav Dabgar
Experienced lecturer in the electrical and electronic manufacturing industry. Skilled in Embedded Systems, Image Processing, Data Science, MATLAB, Python, STM32. Strong education professional with a Master’s degree in Communication Systems Engineering from L.D. College of Engineering - Ahmedabad.
Table of Contents

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 TypeExamplePurpose
Application SoftwareMicrosoft WordWord processing and document creation
System SoftwareWindows 10Operating 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:

ComponentDescription
Data NameUnique identifier for data element
AliasesAlternative names used
DescriptionPurpose and meaning
Data TypeFormat (integer, string, etc.)
LengthSize constraints
ValuesValid 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 TD
    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:

PhaseActivityOutput
Quick DesignBasic architectureInitial design
Prototype BuildWorking modelTestable system
User EvaluationFeedback collectionRequirements 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:

AdvantagesDisadvantages
Faster developmentRequires skilled developers
Early user involvementNot suitable for large projects
Reduced costsRequires user commitment
Better qualityTechnical 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:

AbbreviationFull Form
SQASoftware Quality Assurance
FTRFormal Technical Review
RADRapid Application Development
BVABoundary Value Analysis
GUIGraphical User Interface
DFDData 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:

PrincipleDescription
Individuals over processesPeople and communication are priority
Working software over documentationFunctional software is primary measure
Customer collaborationContinuous customer involvement
Responding to changeAdaptability 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:

AdvantagesDisadvantages
High code qualityRequires experienced programmers
Rapid feedbackCustomer must be available
Reduced bugsCode-focused, less documentation
FlexibilityDifficult 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:

MethodDescription
Equivalence PartitioningDivides input into valid/invalid classes
Boundary Value AnalysisTests 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:

AspectDescription
Input methodText commands typed by user
OutputText-based responses
NavigationCommands for file/directory operations
EfficiencyFaster 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 TD
    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:

PhaseActivitiesDeliverables
RequirementsGather and document needsSRS document
DesignSystem architectureDesign documents
ImplementationCode developmentSource code
TestingVerify functionalityTest reports
DeploymentSystem installationWorking system
MaintenanceBug fixes, updatesUpdated 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:

QuestionAnswer
Lowest cohesion isCoincidental
Highest coupling isContent
Slack time of critical activity isZero

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):

TypeDescriptionExample
DataParameters passedMethod calls with parameters
StampData structure passedPassing objects/records
ControlControl information passedFlags/switches passed
ExternalExternal data referenceGlobal variables
CommonShared data areaCommon memory blocks
ContentDirect access to internalsModifying 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:

TermDefinition
UIUser Interface - the means by which users interact with software systems
SESoftware Engineering - systematic approach to software development using engineering principles
PMCProject Management and Control - planning, monitoring, and controlling software projects
SDLCSoftware Development Life Cycle - phases involved in software development from conception to maintenance
VerificationProcess of checking if software meets specified requirements and design
ValidationProcess of checking if software meets user needs and intended purpose
SRSSoftware 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:

AdvantagesDisadvantages
Easy to learnSlower for experts
Reduces errorsLimited flexibility
Self-explanatoryScreen 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):

TypeDescription
FunctionalSingle, well-defined task
SequentialOutput of one element feeds next
CommunicationalElements work on same data
ProceduralElements follow execution sequence
TemporalElements executed at same time
LogicalElements perform similar functions
CoincidentalElements 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:

ActivityDescriptionOutput
IdentificationFind potential problemsRisk list
AssessmentAnalyze probability and impactRisk analysis
PrioritizationRank risks by importancePriority matrix
MitigationPlan risk responsesMitigation strategies
MonitoringTrack risk statusUpdated 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:

TermDefinition
ErrorHuman mistake made during software development process
FailureDeviation of software behavior from expected results
Test caseSet 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:

RequirementDescription
User AuthenticationPIN verification for account access
Balance InquiryDisplay current account balance
Cash WithdrawalDispense requested cash amount
Fund TransferTransfer money between accounts
Transaction HistoryShow recent transaction records
PIN ChangeAllow 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:

AB((23))C(2)E(4F)D((34))G(5)H(2)

Critical Path Analysis:

PathActivitiesDurationCritical?
A-C-E-G-HA→C→E→G→H2+2+4+5+2 = 15No
B-C-E-G-HB→C→E→G→H3+2+4+5+2 = 16Yes
A-C-D-G-HA→C→D→G→H2+2+4+5+2 = 15No

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:

ActivityDescriptionOutput
Stakeholder InterviewsDirect discussion with users and clientsInterview notes, requirements list
QuestionnairesStructured questions for large user groupsSurvey responses, statistical data
Document AnalysisReview existing system documentationCurrent 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:

ActorUse Cases
CustomerCheck Balance, Withdraw Cash, Transfer Funds, Change PIN
AdminLoad Cash, View Logs, System Maintenance
Bank SystemValidate 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:

QuadrantActivityPurpose
PlanningDefine objectives, alternativesSet goals for iteration
Risk AnalysisIdentify and resolve risksMinimize project risks
EngineeringDevelop and test productCreate working software
EvaluationCustomer assessmentGet 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:

StatementAnswerExplanation
Activity network diagram used to determine critical pathTRUEPrimary purpose of activity networks
In CPM, the shortest path is the critical pathFALSELongest path is critical path
Risk avoidance is the best technique to solve risksFALSEBest 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:

AspectTraditionalAgile
PlanningExtensive upfront planningAdaptive planning
DocumentationHeavy documentationMinimal documentation
Customer involvementLimited to requirements phaseContinuous involvement
Change handlingDifficult and expensiveEmbraces change
DeliverySingle final deliveryFrequent incremental delivery
ProcessProcess-drivenPeople-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 TD
    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:

StepActivityPurpose
Test PlanningIdentify units to testDefine testing scope
Test DesignCreate test casesCover all code paths
Test SetupPrepare test environmentIsolate unit under test
Test ExecutionRun test casesVerify unit behavior
Result AnalysisEvaluate outcomesIdentify defects
Defect FixingCorrect found issuesEnsure 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:

AbbreviationFull Form
AOAActivity On Arrow
PERTProgram Evaluation and Review Technique
EVAEarned Value Analysis
CPMCritical Path Method
WBSWork Breakdown Structure
PMCProject 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:

PhaseActivityParticipants
PlanningSchedule inspection meetingModerator
PreparationReview code individuallyAll inspectors
Inspection MeetingDiscuss findingsTeam members
ReworkFix identified issuesAuthor
Follow-upVerify correctionsModerator
  • 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:

MethodDescriptionCoverage Focus
Statement CoverageExecute every statementAll code lines
Branch CoverageTest all decision outcomesIf-else conditions
Path CoverageExecute all possible pathsComplete execution flows
Condition CoverageTest all condition combinationsBoolean 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:

TechniqueFormulaPurpose
StatementExecuted statements / Total statementsEnsure all code runs
BranchTested branches / Total branchesCover all decisions
PathTested paths / Total pathsComplete 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”

Related

Fundamentals of Software Development (4331604) - Summer 2024 Solution
Study-Material Solutions Software-Development 4331604 2024 Summer
Computer Networking (4343202) - Summer 2025 Solution
14 mins
Study-Material Solutions Networking 4343202 2025 Summer
Database Management System (1333204) - Summer 2025 Solution
17 mins
Study-Material Solutions Database 1333204 2025 Summer
Fundamentals of Machine Learning (4341603) - Summer 2025 Solution
Study-Material Solutions Machine-Learning 4341603 2025 Summer
Linear Integrated Circuit (4341105) - Summer 2025 Solution
16 mins
Study-Material Solutions Linear-Integrated-Circuit 4341105 2025 Summer
Principles of Electronic Communication (4331104) - Summer 2025 Complete Solution
Study-Material Solutions Electronic-Communication 4331104 2025 Summer