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) - Winter 2024 Solution

·
Study-Material Solutions Software-Development 4331604 2024 Winter
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]
#

What is Scrum model? Write about it.

Answer:

Scrum is an agile framework for managing software development projects through iterative and incremental practices.

AspectDescription
Framework TypeAgile methodology
Sprint Duration2-4 weeks typically
Team Size5-9 members
Key CeremoniesDaily standups, Sprint planning, Sprint review, Retrospective

Key Features:

  • Product Owner: Defines requirements and priorities
  • Scrum Master: Facilitates process and removes obstacles
  • Development Team: Cross-functional team building the product

Mnemonic: “SPIR” - Sprint, Product owner, Incremental delivery, Review


Question 1(b) [4 marks]
#

Define Software and Explain Software Characteristics.

Answer:

Software Definition: A collection of computer programs, procedures, and documentation that performs tasks on a computer system.

CharacteristicDescription
IntangibleCannot be touched physically
No Physical WearDoesn’t deteriorate with time
Custom BuiltDeveloped for specific requirements
ExpensiveHigh development and maintenance costs

Key Points:

  • Logical Product: Made of instructions and data
  • Engineered: Follows systematic development process
  • Complex: Handles multiple interconnected functions
  • Maintainable: Can be modified and updated

Mnemonic: “IELM” - Intangible, Engineered, Logical, Maintainable


Question 1(c) [7 marks]
#

Explain Waterfall Model with diagram.

Answer:

The Waterfall Model is a linear sequential software development approach where each phase must be completed before the next begins.

flowchart TD
    A[Requirements Analysis] --> B[System Design]
    B --> C[Implementation]
    C --> D[Testing]
    D --> E[Deployment]
    E --> F[Maintenance]
    
    style A fill:#e1f5fe
    style B fill:#f3e5f5
    style C fill:#e8f5e8
    style D fill:#fff3e0
    style E fill:#fce4ec
    style F fill:#f1f8e9
PhaseActivitiesOutput
RequirementsGather and document needsSRS Document
DesignSystem architecture planningDesign specs
ImplementationActual codingSource code
TestingVerification and validationTest reports
DeploymentInstallation at client siteWorking system
MaintenanceBug fixes and updatesUpdated system

Advantages:

  • Simple to understand and implement
  • Well-documented phases
  • Easy project management with clear milestones

Disadvantages:

  • No flexibility for requirement changes
  • Late testing discovery of issues
  • Not suitable for complex projects

Mnemonic: “RSITDM” - Requirements, System design, Implementation, Testing, Deployment, Maintenance


Question 1(c) OR [7 marks]
#

Explain Spiral Model with diagram.

Answer:

The Spiral Model combines iterative development with systematic risk assessment, emphasizing risk analysis in each iteration.

graph TD
    A[Planning] --> B[Risk Analysis]
    B --> C[Engineering]
    C --> D[Customer Evaluation]
    D --> A
    
    E[Risk Assessment] -.-> B
    F[Prototype Development] -.-> C
    G[Customer Feedback] -.-> D
    
    style A fill:#e3f2fd
    style B fill:#ffebee
    style C fill:#e8f5e8
    style D fill:#fff8e1
QuadrantActivityPurpose
PlanningRequirement gatheringDefine objectives
Risk AnalysisIdentify and resolve risksMinimize uncertainties
EngineeringDevelopment and testingBuild working software
EvaluationCustomer assessmentGet feedback for next iteration

Key Features:

  • Risk-driven approach with early risk identification
  • Iterative development with customer involvement
  • Prototyping in each spiral
  • Suitable for large and complex projects

Advantages:

  • Early risk detection and mitigation
  • Customer involvement throughout development
  • Flexible to accommodate changes

Disadvantages:

  • Complex management due to risk analysis
  • Expensive for small projects
  • Requires expertise in risk assessment

Mnemonic: “PRICE” - Planning, Risk analysis, Iterative, Customer evaluation, Engineering


Question 2(a) [3 marks]
#

In which situation prototype model is used?

Answer:

The Prototype Model is used when requirements are unclear or when demonstrating feasibility is crucial.

SituationApplication
Unclear RequirementsWhen user needs are not well-defined
New TechnologyTesting feasibility of new tools/platforms
User InterfaceDesigning complex UI/UX systems
High Risk ProjectsReducing uncertainties early

Specific Use Cases:

  • Web applications with complex user interactions
  • Real-time systems requiring performance validation
  • AI/ML projects with experimental algorithms

Mnemonic: “UNIT” - Unclear requirements, New technology, Interface design, Testing feasibility


Question 2(b) [4 marks]
#

Explain requirement gathering in detail.

Answer:

Requirement Gathering is the process of collecting, analyzing, and documenting software requirements from stakeholders.

TechniqueDescriptionWhen to Use
InterviewsOne-on-one discussionsDetailed requirements
QuestionnairesStructured surveysLarge user groups
ObservationWatching current processesUnderstanding workflows
WorkshopsGroup sessionsCollaborative requirements

Process Steps:

  • Stakeholder Identification: Find all relevant parties
  • Information Collection: Use various gathering techniques
  • Analysis: Prioritize and categorize requirements
  • Documentation: Create formal requirement specifications

Challenges:

  • Changing requirements during development
  • Communication gaps between stakeholders
  • Incomplete information from users

Mnemonic: “IQOW” - Interviews, Questionnaires, Observation, Workshops


Question 2(c) [7 marks]
#

Discuss the responsibilities of software project manager.

Answer:

A Software Project Manager oversees the entire software development lifecycle ensuring successful project delivery.

Responsibility AreaKey TasksSkills Required
PlanningProject scheduling, resource allocationStrategic thinking
Team ManagementTeam coordination, motivationLeadership
Risk ManagementRisk identification, mitigation strategiesProblem-solving
CommunicationStakeholder coordination, reportingCommunication skills
Quality AssuranceProcess compliance, deliverable qualityAttention to detail

Detailed Responsibilities:

Project Planning:

  • Work Breakdown Structure creation
  • Timeline estimation and scheduling
  • Resource allocation and budget management

Team Leadership:

  • Team building and motivation
  • Conflict resolution between team members
  • Performance monitoring and feedback

Stakeholder Management:

  • Client communication and expectation management
  • Progress reporting to senior management
  • Change request handling and approval

Risk and Quality Management:

  • Risk assessment and contingency planning
  • Quality standards enforcement
  • Process improvement implementation

Essential Skills:

  • Technical knowledge of software development
  • Project management methodologies (Agile, Waterfall)
  • Communication skills for diverse stakeholders
  • Problem-solving and decision-making abilities

Mnemonic: “PLACE” - Planning, Leadership, Assessment, Communication, Execution


Question 2(a) OR [3 marks]
#

Difference between GANTT chart and PERT chart.

Answer:

AspectGANTT ChartPERT Chart
PurposeVisual timeline of tasksNetwork analysis of dependencies
FormatHorizontal bar chartNetwork diagram with nodes
Time FocusShows duration and datesShows critical path and slack time
ComplexitySimple to understandMore complex analysis
Best ForProject schedulingTime optimization

Key Differences:

  • GANTT: Shows when tasks happen
  • PERT: Shows task relationships and critical path

Mnemonic: “GT vs PT” - Gantt Timeline vs PERT dependencies


Question 2(b) OR [4 marks]
#

Give the Full Form of: RAD, SDLC, XP model and SRS.

Answer:

AcronymFull FormDescription
RADRapid Application DevelopmentFast prototyping methodology
SDLCSoftware Development Life CycleComplete development process
XPExtreme ProgrammingAgile development methodology
SRSSoftware Requirement SpecificationFormal requirement document

Brief Explanations:

  • RAD: Focuses on rapid prototyping and iterative development
  • SDLC: Systematic approach to software development phases
  • XP: Agile methodology emphasizing coding practices
  • SRS: Detailed documentation of functional and non-functional requirements

Mnemonic: “RSXS” - RAD, SDLC, XP, SRS


Question 2(c) OR [7 marks]
#

Explain WBS in Detail.

Answer:

Work Breakdown Structure (WBS) is a hierarchical decomposition of project work into smaller, manageable components.

graph TD
    A[Software Project] --> B[Analysis Phase]
    A --> C[Design Phase]
    A --> D[Implementation Phase]
    A --> E[Testing Phase]
    
    B --> B1[Requirement Gathering]
    B --> B2[SRS Documentation]
    
    C --> C1[System Design]
    C --> C2[Database Design]
    C --> C3[UI Design]
    
    D --> D1[Module Development]
    D --> D2[Code Review]
    D --> D3[Integration]
    
    E --> E1[Unit Testing]
    E --> E2[System Testing]
    E --> E3[User Acceptance Testing]
WBS LevelDescriptionExample
Level 1Major project phasesAnalysis, Design, Implementation
Level 2Major deliverablesSRS, Design docs, Code modules
Level 3Work packagesSpecific tasks and activities
Level 4Individual activitiesDetailed task breakdown

Benefits of WBS:

  • Clear project scope definition
  • Better estimation of time and resources
  • Improved task assignment and accountability
  • Enhanced progress tracking and control

WBS Creation Process:

  • Identify major deliverables from project scope
  • Decompose deliverables into smaller components
  • Continue breakdown until work packages are manageable
  • Assign responsibilities for each work package

Key Principles:

  • 100% Rule: WBS includes all project work
  • Mutually Exclusive: No overlap between components
  • Manageable Size: Work packages should be 8-80 hours

Mnemonic: “DEBT” - Decompose, Estimate, Breakdown, Track


Question 3(a) [3 marks]
#

Draw the diagram of Incremental Model.

Answer:

The Incremental Model develops software in increments, with each increment adding functionality to the previous versions.

graph TD
    A[Requirements Analysis] --> B[System Design]
    B --> C1[Increment 1]
    B --> C2[Increment 2]
    B --> C3[Increment 3]
    
    C1 --> D1[Design → Code → Test]
    C2 --> D2[Design → Code → Test]
    C3 --> D3[Design → Code → Test]
    
    D1 --> E1[Release 1]
    D2 --> E2[Release 2]
    D3 --> E3[Release 3]
    
    E1 --> F[Final Product]
    E2 --> F
    E3 --> F
    
    style A fill:#e3f2fd
    style B fill:#f3e5f5
    style C1 fill:#e8f5e8
    style C2 fill:#fff3e0
    style C3 fill:#fce4ec

Key Features:

  • Core functionality delivered first
  • Additional features added incrementally
  • Working software available early

Mnemonic: “IRA” - Incremental, Release, Add features


Question 3(b) [4 marks]
#

Difference between functional and non-functional requirements

Answer:

AspectFunctional RequirementsNon-Functional Requirements
DefinitionWhat the system should doHow the system should perform
FocusSystem behavior and featuresSystem quality attributes
ExamplesLogin, data processing, reportsPerformance, security, usability
TestingFunctional testingPerformance, security testing
DocumentationUse cases, user storiesQuality metrics, constraints

Detailed Comparison:

Functional Requirements:

  • User authentication and authorization
  • Data processing and calculations
  • Report generation and export features
  • Business logic implementation

Non-Functional Requirements:

  • Performance: Response time, throughput
  • Security: Data encryption, access control
  • Usability: User interface design, accessibility
  • Reliability: System availability, fault tolerance

Examples for Library System:

  • Functional: Book search, issue/return books, fine calculation
  • Non-Functional: Search results in <2 seconds, 99.9% uptime, SSL encryption

Mnemonic: “FW vs NH” - Functional What vs Non-functional How


Question 3(c) [7 marks]
#

Explain DFD with example.

Answer:

Data Flow Diagram (DFD) is a graphical representation showing data flow through a system using processes, data stores, external entities, and data flows.

DFD Symbols:

SymbolNamePurpose
Circle/OvalProcessData transformation
RectangleExternal EntityData source/destination
Open RectangleData StoreData storage
ArrowData FlowData movement direction

Example: Library Management System

flowchart TD
    A[Student] -->|Book Request| B((Search Books))
    B -->|Book Details| A
    B -->|Query| C[(Book Database)]
    C -->|Book Info| B
    
    A -->|Issue Request| D((Issue Book))
    D -->|Issue Details| E[(Issue Records)]
    D -->|Confirmation| A
    
    F[Librarian] -->|Book Return| G((Return Book))
    G -->|Update Status| C
    G -->|Update Records| E
    G -->|Receipt| F

DFD Levels:

Context Diagram (Level 0):

  • Single process representing entire system
  • External entities and major data flows
  • High-level overview of system boundaries

Level 1 DFD:

  • Major processes of the system
  • Data stores and their interactions
  • Detailed data flows between processes

Level 2 and beyond:

  • Decomposition of complex processes
  • More detailed data transformations
  • Lower-level process specifications

DFD Rules:

  • Process naming: Use verb + object (e.g., “Validate User”)
  • Data flow naming: Use noun phrases (e.g., “User Details”)
  • Balancing: Input/output must match between levels
  • No direct connections between external entities

Benefits:

  • Clear communication with stakeholders
  • System boundary identification
  • Process analysis and optimization
  • Documentation for system design

Mnemonic: “PEDS” - Process, External entity, Data store, Data flow


Question 3(a) OR [3 marks]
#

Write classification of design activities.

Answer:

Design Activities are classified based on their scope and purpose in software development.

ClassificationActivitiesPurpose
System DesignArchitecture, modules, interfacesHigh-level structure
Detailed DesignAlgorithms, data structuresImplementation details
Interface DesignUI/UX, API specificationsUser interaction
Database DesignSchema, relationships, optimizationData management

Key Design Activities:

  • Architectural Design: Overall system structure
  • Component Design: Individual module specifications
  • Data Design: Database and file structures

Mnemonic: “ACID” - Architectural, Component, Interface, Data design


Question 3(b) OR [4 marks]
#

Explain characteristics of good SRS.

Answer:

A good SRS (Software Requirement Specification) document should possess specific characteristics for effective communication and development.

CharacteristicDescriptionBenefit
CompleteAll requirements includedNo missing functionality
ConsistentNo contradictory requirementsClear understanding
UnambiguousSingle interpretation possibleReduced confusion
VerifiableRequirements can be testedQuality assurance
ModifiableEasy to update and maintainAdaptability
TraceableRequirements can be trackedChange management

Detailed Characteristics:

Completeness:

  • All functional requirements specified
  • All non-functional requirements included
  • All interfaces and constraints documented

Consistency:

  • No conflicting requirements
  • Uniform terminology throughout document
  • Consistent formatting and structure

Verifiability:

  • Testable requirements with clear criteria
  • Measurable quality attributes
  • Objective success criteria defined

Mnemonic: “CCUMVT” - Complete, Consistent, Unambiguous, Modifiable, Verifiable, Traceable


Question 3(c) OR [7 marks]
#

Explain White box Testing.

Answer:

White Box Testing is a testing method that examines the internal structure, code, and logic of software applications.

AspectDescription
Also Known AsStructural testing, Glass box testing, Clear box testing
Access LevelFull access to source code and internal structure
FocusCode coverage, logic paths, internal data structures
Tester KnowledgeProgramming knowledge required

White Box Testing Techniques:

graph TD
    A[White Box Testing] --> B[Statement Coverage]
    A --> C[Branch Coverage]
    A --> D[Path Coverage]
    A --> E[Condition Coverage]
    
    B --> B1[Execute every statement]
    C --> C1[Test all decision points]
    D --> D1[Test all possible paths]
    E --> E1[Test all logical conditions]

Coverage Types:

Coverage TypeFormulaDescription
Statement Coverage(Executed statements / Total statements) × 100%Tests every line of code
Branch Coverage(Executed branches / Total branches) × 100%Tests all decision outcomes
Path Coverage(Executed paths / Total paths) × 100%Tests all execution paths
Condition Coverage(Tested conditions / Total conditions) × 100%Tests all logical conditions

Advantages:

  • Thorough testing of code logic
  • Early defect detection in development
  • Code optimization opportunities identification
  • Complete code coverage possible

Disadvantages:

  • Expensive and time-consuming process
  • Requires programming skills from testers
  • May miss requirement-related defects
  • Complex for large applications

Tools Used:

  • Code coverage tools (JaCoCo, gcov)
  • Static analysis tools (SonarQube)
  • Unit testing frameworks (JUnit, NUnit)

Example Test Cases:

// Function to test
function calculateGrade(marks) {
    if (marks >= 90) return 'A';
    else if (marks >= 80) return 'B';
    else if (marks >= 70) return 'C';
    else return 'F';
}

// White box test cases for 100% branch coverage
// Test 1: marks = 95 (A grade path)
// Test 2: marks = 85 (B grade path)  
// Test 3: marks = 75 (C grade path)
// Test 4: marks = 65 (F grade path)

Mnemonic: “SBPC” - Statement, Branch, Path, Condition coverage


Question 4(a) [3 marks]
#

Importance of RAD model.

Answer:

RAD (Rapid Application Development) model emphasizes quick development through prototyping and iterative design.

ImportanceBenefitApplication
Fast DevelopmentReduced time-to-marketBusiness applications
User InvolvementBetter requirement understandingInteractive systems
Prototype-basedEarly feedback and validationUI-intensive applications
Component ReuseCost reduction and efficiencyEnterprise applications

Key Benefits:

  • Quick delivery of working prototypes
  • Reduced development time and costs
  • High user satisfaction through involvement
  • Flexible to changes during development

When to Use RAD:

  • Well-defined business requirements
  • Experienced development team available
  • Modular system architecture possible

Mnemonic: “FUPR” - Fast, User involvement, Prototype-based, Reusable components


Question 4(b) [4 marks]
#

Explain code inspection.

Answer:

Code Inspection is a systematic examination of source code to identify defects, improve quality, and ensure compliance with standards.

TypeDescriptionParticipantsDuration
Formal InspectionStructured process with defined roles3-6 people2-4 hours
WalkthroughAuthor-led review session2-7 people1-2 hours
Peer ReviewInformal colleague review2-3 people30-60 minutes
Tool-based ReviewAutomated code analysisIndividualVaries

Code Inspection Process:

  • Planning: Select code, assign roles, schedule meeting
  • Overview: Author explains code purpose and design
  • Preparation: Reviewers study code individually
  • Inspection Meeting: Systematic defect identification
  • Rework: Author fixes identified issues
  • Follow-up: Verify defect resolution

Benefits:

  • Early defect detection before testing
  • Knowledge sharing among team members
  • Code quality improvement and standardization
  • Reduced maintenance costs

Mnemonic: “FWPT” - Formal, Walkthrough, Peer review, Tool-based


Question 4(c) [7 marks]
#

Explain cohesion with its classification.

Answer:

Cohesion measures how closely related and focused the responsibilities of a single module are. Higher cohesion indicates better module design.

Cohesion Types (Ranked from Best to Worst):

TypeDescriptionExampleStrength
FunctionalSingle, well-defined taskCalculate tax amountHighest
SequentialOutput of one element feeds nextRead→Process→Write dataHigh
CommunicationalElements operate on same dataUpdate customer recordHigh
ProceduralElements follow execution sequenceInitialize→Process→CleanupMedium
TemporalElements executed at same timeSystem startup routinesMedium
LogicalSimilar logical functions groupedAll input/output operationsLow
CoincidentalNo meaningful relationshipRandom utility functionsLowest

Detailed Classification:

graph TD
    A[Cohesion Types] --> B[Functional - Best]
    A --> C[Sequential]
    A --> D[Communicational]
    A --> E[Procedural]
    A --> F[Temporal]
    A --> G[Logical]
    A --> H[Coincidental - Worst]
    
    style B fill:#4caf50
    style C fill:#8bc34a
    style D fill:#cddc39
    style E fill:#ffeb3b
    style F fill:#ff9800
    style G fill:#ff5722
    style H fill:#f44336

Functional Cohesion (Best):

  • Single responsibility principle
  • Example: calculateInterest() - only calculates interest
  • Benefits: Easy to understand, test, and maintain

Sequential Cohesion:

  • Data flows from one element to next
  • Example: readFile() → parseData() → generateReport()
  • Good design for processing pipelines

Communicational Cohesion:

  • Same data structure manipulation
  • Example: Module updating all fields of customer record
  • Reasonable design for data-centric operations

Procedural Cohesion:

  • Control flow relationship
  • Example: Initialization sequence in specific order
  • Acceptable for procedural operations

Temporal Cohesion:

  • Time-based relationship
  • Example: System startup or shutdown routines
  • Moderate quality design

Logical Cohesion:

  • Similar functions grouped together
  • Example: All mathematical functions in one module
  • Poor design - difficult to maintain

Coincidental Cohesion (Worst):

  • No logical relationship between elements
  • Example: Miscellaneous utility functions
  • Avoid this - creates maintenance nightmares

Benefits of High Cohesion:

  • Easier maintenance and debugging
  • Better reusability of modules
  • Improved testability and reliability
  • Clearer code understanding

How to Achieve High Cohesion:

  • Single Responsibility Principle: One reason to change
  • Clear module purpose: Well-defined functionality
  • Minimal interfaces: Reduce external dependencies
  • Logical grouping: Related functions together

Mnemonic: “FSCPTLC” - Functional, Sequential, Communicational, Procedural, Temporal, Logical, Coincidental


Question 4(a) OR [3 marks]
#

Software doesn’t wear out.

Answer:

Software doesn’t wear out means software doesn’t deteriorate physically like hardware components do over time.

AspectHardwareSoftware
Physical DegradationComponents wear outNo physical degradation
Age EffectPerformance decreasesPerformance remains constant
Failure PatternIncreasing failure rateConstant failure rate
MaintenanceReplace worn partsFix logical errors only

Key Points:

  • No mechanical parts to wear out
  • Logical errors don’t increase with time
  • Performance degradation due to environment changes, not aging
  • Failures occur due to design flaws, not wear

Why This Matters:

  • Different maintenance approach needed
  • Focus on updates rather than replacement
  • Longevity planning differs from hardware

Mnemonic: “NLPF” - No physical parts, Logical errors, Performance constant, Failures from design


Question 4(b) OR [4 marks]
#

Explain use-case diagram.

Answer:

Use-case Diagram is a UML behavioral diagram showing system functionality from user’s perspective through interactions between actors and use cases.

ComponentSymbolDescription
ActorStick figureExternal entity interacting with system
Use CaseOvalSystem function or service
System BoundaryRectangleSystem scope definition
RelationshipsLines/ArrowsAssociations between components

Use-case Diagram Elements:

graph LR
    subgraph "Library Management System"
        UC1((Search Books))
        UC2((Borrow Book))
        UC3((Return Book))
        UC4((Manage Catalog))
        UC5((Generate Reports))
    end
    
    A1[Student] --> UC1
    A1 --> UC2
    A1 --> UC3
    
    A2[Librarian] --> UC4
    A2 --> UC5
    A2 --> UC1
    
    UC2 -.-> UC1
    UC3 -.-> UC1

Relationship Types:

  • Association: Actor participates in use case
  • Include: Use case always includes another use case
  • Extend: Use case conditionally extends another
  • Generalization: Inheritance between actors/use cases

Benefits:

  • Clear system scope definition
  • User requirements visualization
  • Communication tool with stakeholders
  • Test case derivation basis

Mnemonic: “AUSB” - Actor, Use case, System boundary, Relationships


Question 4(c) OR [7 marks]
#

Explain Black box Testing.

Answer:

Black Box Testing is a testing method that examines software functionality without knowledge of internal code structure or implementation details.

AspectDescription
Also Known AsFunctional testing, Behavioral testing, Specification-based testing
Access LevelNo access to source code or internal structure
FocusInput-output behavior, functional requirements
Tester KnowledgeDomain knowledge required, not programming

Black Box Testing Techniques:

graph TD
    A[Black Box Testing] --> B[Equivalence Partitioning]
    A --> C[Boundary Value Analysis]
    A --> D[Decision Table Testing]
    A --> E[State Transition Testing]
    
    B --> B1[Valid/Invalid input classes]
    C --> C1[Test boundary conditions]
    D --> D1[Complex business rules]
    E --> E1[State-dependent behavior]

Testing Techniques:

TechniqueDescriptionExample
Equivalence PartitioningDivide inputs into valid/invalid groupsAge: 0-17, 18-60, 60+
Boundary Value AnalysisTest at boundaries of input rangesTest at 17, 18, 60, 61
Decision TableTest combinations of conditionsLogin with valid/invalid user/password
State TransitionTest state changesATM states: Idle→Card inserted→PIN entry

Test Case Design Example:

Function: Login validation
Inputs: Username, Password
Valid equivalence classes:
- Username: 5-20 characters, alphanumeric
- Password: 8-15 characters, special chars allowed

Invalid equivalence classes:
- Username: <5 or >20 characters, special chars
- Password: <8 or >15 characters, spaces

Boundary values to test:
- Username: 4, 5, 20, 21
- Password: 7, 8, 15, 16

Advantages:

  • No programming knowledge required for testers
  • User perspective testing approach
  • Independent verification of requirements
  • Effective for large applications

Disadvantages:

  • Limited code coverage visibility
  • Cannot identify unused code paths
  • Difficult to design test cases without specifications
  • May miss logical errors in code

Types of Black Box Testing:

  • Functional Testing: Feature verification
  • Integration Testing: Module interaction testing
  • System Testing: Complete system validation
  • Acceptance Testing: User requirement verification

Tools Used:

  • Test management tools (TestRail, Zephyr)
  • Automation tools (Selenium, QTP)
  • Defect tracking tools (Jira, Bugzilla)

When to Use:

  • Requirements-based testing
  • User acceptance testing
  • System integration testing
  • Regression testing after changes

Mnemonic: “EBDS” - Equivalence, Boundary, Decision table, State transition


Question 5(a) [3 marks]
#

Difference between verification and validation.

Answer:

AspectVerificationValidation
Definition“Are we building the product right?”“Are we building the right product?”
FocusProcess complianceProduct correctness
WhenDuring developmentAfter development
MethodReviews, inspections, walkthroughsTesting with actual data
CostLower cost of defect detectionHigher cost of defect detection

Key Differences:

  • Verification: Checks against specifications
  • Validation: Checks against user needs
  • Verification: Static testing methods
  • Validation: Dynamic testing methods

Examples:

  • Verification: Code review, design review, SRS review
  • Validation: Unit testing, integration testing, system testing

Mnemonic: “VR vs VT” - Verification Reviews vs Validation Testing


Question 5(b) [4 marks]
#

Explain SRS.

Answer:

SRS (Software Requirement Specification) is a detailed document describing the functional and non-functional requirements of a software system.

ComponentDescriptionPurpose
IntroductionSystem overview and scopeContext setting
Functional RequirementsWhat system should doFeature specification
Non-functional RequirementsHow system should performQuality attributes
ConstraintsLimitations and restrictionsBoundary definition

SRS Structure:

  • System Purpose: Why the system is needed
  • System Scope: What the system will and won’t do
  • Definitions: Technical terms and acronyms
  • User Requirements: High-level user needs
  • System Requirements: Detailed technical specifications

Importance of SRS:

  • Communication tool between stakeholders
  • Baseline for testing and validation
  • Contract basis between client and developer
  • Change management reference document

Users of SRS:

  • Developers: Implementation guidance
  • Testers: Test case creation
  • Project Managers: Planning and tracking
  • Clients: Requirement verification

Mnemonic: “IFNC” - Introduction, Functional, Non-functional, Constraints


Question 5(c) [7 marks]
#

Explain Risk Management.

Answer:

Risk Management is the systematic process of identifying, analyzing, and responding to project risks to minimize their impact on project success.

Risk Management Process:

flowchart TD
    A[Risk Identification] --> B[Risk Analysis]
    B --> C[Risk Assessment]
    C --> D[Risk Mitigation]
    D --> E[Risk Monitoring]
    E --> A
    
    style A fill:#ffebee
    style B fill:#e8f5e8
    style C fill:#fff3e0
    style D fill:#e3f2fd
    style E fill:#f3e5f5
PhaseActivitiesOutput
IdentificationBrainstorming, checklists, expert judgmentRisk register
AnalysisProbability and impact assessmentRisk matrix
AssessmentRisk prioritization and rankingRisk priority list
MitigationResponse strategy developmentMitigation plans
MonitoringTrack risks and mitigation effectivenessStatus reports

Risk Categories:

Project Risks:

  • Schedule delays due to resource unavailability
  • Budget overruns from scope changes
  • Team turnover affecting productivity
  • Communication gaps between stakeholders

Technical Risks:

  • Technology complexity exceeding team skills
  • Integration challenges with existing systems
  • Performance issues under load conditions
  • Security vulnerabilities in design

Business Risks:

  • Changing requirements from market conditions
  • Competition releasing similar products
  • Regulatory changes affecting compliance
  • Stakeholder conflicts on priorities

Risk Response Strategies:

StrategyDescriptionWhen to UseExample
AcceptAcknowledge risk, no actionLow impact risksMinor UI changes
AvoidEliminate risk sourceHigh impact, avoidableChange technology
MitigateReduce probability/impactManageable risksAdditional testing
TransferShift risk to third partySpecialized risksInsurance, outsourcing

Risk Assessment Matrix:

Probability/ImpactLowMediumHigh
HighMediumHighCritical
MediumLowMediumHigh
LowVery LowLowMedium

Risk Mitigation Techniques:

  • Prototyping to reduce technical uncertainty
  • Staff training to address skill gaps
  • Regular reviews to catch issues early
  • Contingency planning for critical scenarios

Benefits of Risk Management:

  • Proactive problem prevention
  • Better decision making with risk awareness
  • Improved project success rates
  • Stakeholder confidence in project delivery

Risk Monitoring Activities:

  • Regular risk reviews and updates
  • Risk trigger monitoring for early warning
  • Mitigation plan progress tracking
  • New risk identification as project evolves

Tools for Risk Management:

  • Risk registers and databases
  • Risk assessment matrices
  • Monte Carlo simulation for quantitative analysis
  • Expert judgment and historical data

Key Success Factors:

  • Management commitment to risk processes
  • Team awareness and participation
  • Regular communication about risks
  • Integration with project management processes

Mnemonic: “IATMM” - Identify, Analyze, Assess, Treat, Monitor risks


Question 5(a) OR [3 marks]
#

List out any functional requirements for Hostel management system.

Answer:

Functional Requirements for Hostel Management System define what the system should do to manage hostel operations effectively.

ModuleFunctional Requirements
Student ManagementRegister students, assign rooms, maintain profiles
Room ManagementRoom allocation, availability tracking, maintenance
Fee ManagementFee calculation, payment processing, receipt generation
Visitor ManagementVisitor registration, entry/exit tracking, approval

Detailed Functional Requirements:

Student Module:

  • Student registration with personal details
  • Room assignment based on availability
  • Student profile management and updates

Administrative Module:

  • Staff management and role assignment
  • Report generation for occupancy and finances
  • Complaint management and resolution tracking

Security Module:

  • Access control for different user types
  • Visitor logging and approval system
  • Emergency contact management

Mnemonic: “SRFV” - Student, Room, Fee, Visitor management


Question 5(b) OR [4 marks]
#

Explain Agile process.

Answer:

Agile Process is an iterative and incremental software development approach emphasizing collaboration, flexibility, and customer satisfaction.

Agile PrincipleDescriptionBenefit
Customer CollaborationContinuous customer involvementBetter requirement understanding
Working SoftwareDeliver functional software frequentlyEarly value delivery
Responding to ChangeAdapt to changing requirementsMarket responsiveness
Individuals and InteractionsPeople over processes and toolsBetter team dynamics

Agile Values:

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

Agile Practices:

  • Short iterations (1-4 weeks)
  • Daily standups for team coordination
  • Sprint planning and review meetings
  • Continuous integration and testing

Benefits:

  • Faster delivery of working software
  • Better quality through continuous testing
  • Improved stakeholder satisfaction
  • Flexibility to handle changes

Mnemonic: “CWRI” - Customer collaboration, Working software, Responding to change, Individuals


Question 5(c) OR [7 marks]
#

Explain Software Engineering - A layered approach

Answer:

Software Engineering - A Layered Approach represents software engineering as a structured methodology with multiple interconnected layers, each building upon the foundation of lower layers.

Layered Architecture:

graph TD
    A[Quality Focus] --> B[Process Layer]
    B --> C[Methods Layer]
    C --> D[Tools Layer]
    
    style A fill:#4caf50
    style B fill:#2196f3
    style C fill:#ff9800
    style D fill:#9c27b0
LayerDescriptionPurposeExamples
Quality FocusFoundation emphasizing qualityEnsures customer satisfactionQuality standards, metrics
ProcessFramework for software developmentProvides structure and controlSDLC models, project management
MethodsTechnical approaches and techniquesGuides development activitiesAnalysis, design, testing methods
ToolsAutomated support for methodsIncreases productivityIDEs, testing tools, CASE tools

Detailed Layer Analysis:

Quality Focus (Foundation Layer):

  • Bedrock of software engineering approach
  • Commitment to quality in all activities
  • Customer satisfaction as primary goal
  • Continuous improvement mindset
  • Quality characteristics: Correctness, reliability, efficiency, maintainability

Process Layer:

  • Defines framework for effective delivery
  • Establishes context for technical methods
  • Key elements: Communication, planning, modeling, construction, deployment
  • Process models: Waterfall, Agile, Spiral, Incremental
  • Management activities: Project planning, tracking, risk management

Methods Layer:

  • Technical knowledge for building software
  • Encompasses broad array of tasks
  • Communication methods: Requirement elicitation, analysis
  • Planning methods: Project estimation, scheduling
  • Modeling methods: Analysis and design techniques
  • Construction methods: Coding standards, testing strategies
  • Deployment methods: Delivery, support, feedback

Tools Layer:

  • Automated or semi-automated support
  • Increases efficiency and reduces errors
  • Tool categories:
    • Development environments: IDEs, compilers
    • Analysis and design tools: UML tools, CASE tools
    • Testing tools: Unit testing, automation frameworks
    • Project management tools: Scheduling, tracking software

Interactions Between Layers:

Quality ↔ Process:

  • Quality focus drives process selection
  • Process ensures quality delivery

Process ↔ Methods:

  • Process provides context for methods
  • Methods implement process activities

Methods ↔ Tools:

  • Methods define what needs to be done
  • Tools provide how to do it efficiently

Benefits of Layered Approach:

  • Systematic methodology for software development
  • Scalability from small to large projects
  • Flexibility to adapt tools and methods
  • Quality assurance at every level
  • Risk reduction through structured approach

Implementation Strategy:

  • Start with quality focus establishment
  • Select appropriate process for project context
  • Choose methods matching process requirements
  • Integrate tools supporting selected methods
  • Continuous evaluation and improvement

Key Success Factors:

  • Management commitment to quality
  • Team training on methods and tools
  • Process adherence and discipline
  • Tool integration and standardization
  • Continuous improvement culture

Real-world Application:

  • Large organizations: Complete layer implementation
  • Small teams: Simplified but consistent approach
  • Project-specific: Tailored layer selection
  • Industry standards: Compliance with quality frameworks

Mnemonic: “QPMT” - Quality focus, Process, Methods, Tools (from bottom to top)

Related

Fundamentals of Software Development (4331604) - Summer 2024 Solution
Study-Material Solutions Software-Development 4331604 2024 Summer
Fundamentals of Software Development (4331604) - Winter 2023 Solution
Study-Material Solutions Software-Development 4331604 2023 Winter
Database Management System (1333204) - Winter 2024 Solution
11 mins
Study-Material Solutions Database 1333204 2024 Winter
Principles of Electronic Communication (4331104) - Winter 2024 Solution
Study-Material Solutions Communication 4331104 2024 Winter
Data Structure and Application (1333203) - Winter 2024 Solution
12 mins
Study-Material Solutions Data-Structure 1333203 2024 Winter
Database Management (4331603) - Winter 2024 Solution
Study-Material Solutions Database 4331603 2024 Winter