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

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

Explain software engineering layered approach.

Answer:

Software engineering follows a layered approach with four fundamental layers working together to create quality software products.

Table: Software Engineering Layered Approach

LayerDescriptionPurpose
Quality FocusFoundation layer emphasizing continuous improvementEnsures defect-free products
ProcessDefines framework of activities and tasksProvides systematic development approach
MethodsTechnical procedures for analysis, design, coding, testingOffers “how-to” guidance
ToolsAutomated support for process and methodsProvides efficiency and consistency
  • Quality Focus: Forms the foundation ensuring customer satisfaction
  • Process Layer: Defines workflow and project management activities
  • Methods Layer: Provides technical approach for each development phase
  • Tools Layer: Supports automation and integration

Mnemonic: “Quality Processes Make Tools” - Remember the four layers from bottom to top.


Question 1(b) [4 marks]
#

Explain Iterative waterfall model.

Answer:

The Iterative Waterfall Model combines the structured approach of waterfall with feedback loops for improvement and error correction.

graph TD
    A[Requirements Analysis] --> B[System Design]
    B --> C[Implementation]
    C --> D[Integration & Testing]
    D --> E[Deployment]
    E --> F[Maintenance]
    B -.->|Feedback| A
    C -.->|Feedback| B
    D -.->|Feedback| C
    E -.->|Feedback| D
    F -.->|Feedback| E

Key Features:

  • Sequential phases: Each phase completed before next begins
  • Feedback loops: Allow return to previous phases for corrections
  • Documentation driven: Heavy emphasis on documentation at each phase
  • Error correction: Issues identified in later phases can be fixed

Mnemonic: “Water Falls Back Up” - Sequential flow with upward feedback capability.


Question 1(c) [7 marks]
#

Explain Agile Model and Agile Principles.

Answer:

Agile is an iterative software development methodology emphasizing collaboration, customer feedback, and rapid delivery of working software.

Table: Agile Values vs Traditional Approach

Agile ValuesTraditional Approach
Individuals and interactionsProcesses and tools
Working softwareComprehensive documentation
Customer collaborationContract negotiation
Responding to changeFollowing a plan

Core Agile Principles:

  • Customer satisfaction: Deliver valuable software early and continuously
  • Welcome change: Embrace changing requirements even late in development
  • Frequent delivery: Deliver working software frequently (weeks rather than months)
  • Collaboration: Business people and developers work together daily
  • Motivated individuals: Build projects around motivated people
  • Face-to-face conversation: Most efficient method of communication
  • Working software: Primary measure of progress
  • Sustainable development: Maintain constant pace indefinitely
  • Technical excellence: Continuous attention to good design
  • Simplicity: Art of maximizing work not done
  • Self-organizing teams: Best requirements emerge from self-organizing teams
  • Regular reflection: Team reflects and adjusts behavior regularly

Diagram: Agile Development Cycle

graph LR
    A[Planning] --> B[Design]
    B --> C[Coding]
    C --> D[Testing]
    D --> E[Review]
    E --> A
    E --> F[Release]

Mnemonic: “Customer Change Frequently Collaborates” - Core agile principles focus.


Question 1(c OR) [7 marks]
#

Write a short note on Scrum.

Answer:

Scrum is an agile framework for managing software development with emphasis on team collaboration and iterative progress.

Table: Scrum Roles and Responsibilities

RoleResponsibilitiesKey Activities
Product OwnerDefines product features and prioritiesManages product backlog
Scrum MasterFacilitates process and removes obstaclesConducts ceremonies
Development TeamCreates working softwareSelf-organizing and cross-functional

Scrum Events:

  • Sprint: 1-4 week iteration producing potentially shippable product
  • Sprint Planning: Team plans work for upcoming sprint
  • Daily Scrum: 15-minute daily synchronization meeting
  • Sprint Review: Demonstrate completed work to stakeholders
  • Sprint Retrospective: Team reflects on process improvements

Scrum Artifacts:

  • Product Backlog: Prioritized list of features
  • Sprint Backlog: Items selected for current sprint
  • Increment: Working product at sprint end

Diagram: Scrum Process Flow

graph TD
    A[Product Backlog] --> B[Sprint Planning]
    B --> C[Sprint Backlog]
    C --> D[Daily Scrum]
    D --> E[Sprint Review]
    E --> F[Sprint Retrospective]
    F --> B
    E --> G[Product Increment]

Mnemonic: “Product Sprints Daily Reviews” - Key scrum elements sequence.


Question 2(a) [3 marks]
#

If you have to develop a word processing software product, what process models will you choose? Justify your answer.

Answer:

For word processing software development, I would choose the Incremental Model as the most suitable process model.

Justification:

  • Complex functionality: Word processors have numerous features (editing, formatting, spell-check) that can be developed incrementally
  • User feedback: Early increments allow user testing and feedback incorporation
  • Risk management: Core features delivered first, advanced features added later
  • Market advantage: Basic version can be released early to gain market presence

Development Increments:

  1. Increment 1: Basic text editing and file operations
  2. Increment 2: Formatting and font management
  3. Increment 3: Advanced features (spell-check, templates)

Mnemonic: “Word Processing Increments User Feedback” - Incremental approach suits complex software.


Question 2(b) [4 marks]
#

Explain characteristics of good SRS.

Answer:

A good Software Requirements Specification (SRS) document must possess specific characteristics to ensure successful software development.

Table: Characteristics of Good SRS

CharacteristicDescriptionImportance
CompleteContains all necessary requirementsPrevents scope creep
ConsistentNo conflicting requirementsAvoids implementation confusion
UnambiguousClear and precise languageSingle interpretation possible
VerifiableRequirements can be testedEnables validation
ModifiableEasy to change and maintainSupports requirement evolution
TraceableRequirements linked to sourcesImpact analysis possible

Additional Characteristics:

  • Feasible: Technically and economically achievable
  • Necessary: Each requirement serves a purpose
  • Prioritized: Requirements ranked by importance
  • Testable: Specific criteria for verification

Mnemonic: “Complete Consistent Unambiguous Verifiable” - Core SRS quality attributes.


Question 2(c) [7 marks]
#

Explain functional and non-functional requirements for an ATM software.

Answer:

ATM software requirements are categorized into functional (what system does) and non-functional (how system performs) requirements.

Table: ATM Functional Requirements

FunctionDescriptionExample
AuthenticationUser login and verificationPIN validation, card reading
Account OperationsBasic banking transactionsBalance inquiry, cash withdrawal
Transaction ProcessingMoney transfer and depositsAccount-to-account transfer
Receipt GenerationTransaction documentationPrint transaction receipts
Session ManagementUser session controlTimeout, logout functionality

Table: ATM Non-Functional Requirements

CategoryRequirementSpecification
PerformanceResponse timeMaximum 3 seconds per transaction
SecurityData protection256-bit encryption for all data
ReliabilitySystem availability99.9% uptime requirement
UsabilityUser interfaceSimple interface for all age groups
ScalabilityLoad handlingSupport 1000 concurrent users

Functional Requirements Details:

  • Cash Withdrawal: Dispense cash after successful authentication
  • Balance Inquiry: Display current account balance
  • PIN Change: Allow users to update their PIN
  • Mini Statement: Provide last 10 transactions

Non-Functional Requirements Details:

  • Security: Multi-factor authentication, transaction logging
  • Performance: Fast transaction processing, minimal wait time
  • Availability: 24/7 operation with minimal downtime
  • Maintainability: Easy software updates and hardware maintenance

Mnemonic: “Functions Work, Quality Matters” - Functional vs non-functional distinction.


Question 2(a OR) [3 marks]
#

Explain Incremental Model with diagram.

Answer:

The Incremental Model develops software in small, manageable portions called increments, with each increment adding new functionality to the existing system.

Diagram: Incremental Model

graph TD
    A[Requirements] --> B[Increment 1]
    A --> C[Increment 2]
    A --> D[Increment 3]
    
    B --> B1[Analysis]
    B1 --> B2[Design]
    B2 --> B3[Code]
    B3 --> B4[Test]
    B4 --> B5[Release 1]
    
    C --> C1[Analysis]
    C1 --> C2[Design]
    C2 --> C3[Code]
    C3 --> C4[Test]
    C4 --> C5[Release 2]
    
    D --> D1[Analysis]
    D1 --> D2[Design]
    D2 --> D3[Code]
    D3 --> D4[Test]
    D4 --> D5[Final Release]

Key Features:

  • Parallel development: Multiple increments developed simultaneously
  • Early delivery: Working software available after first increment
  • Risk reduction: Core functionality delivered first

Mnemonic: “Increments Build Upon Previous” - Each increment adds to existing functionality.


Question 2(b OR) [4 marks]
#

Differentiate between functional and non-functional requirements.

Answer:

Table: Functional vs Non-Functional Requirements

AspectFunctional RequirementsNon-Functional Requirements
DefinitionWhat the system doesHow the system performs
FocusSystem behavior and featuresSystem quality attributes
TestingBlack-box testingPerformance and stress testing
DocumentationUse cases, user storiesQuality metrics, constraints
ExamplesLogin, search, calculateSpeed, security, usability
VerificationFunctional testingNon-functional testing
Change ImpactFeature modificationPerformance tuning
User VisibilityDirectly visible to usersIndirectly experienced

Functional Requirements Characteristics:

  • Behavior-focused: Define system actions and responses
  • Feature-specific: Each requirement describes a specific capability
  • User-driven: Based on user needs and business processes

Non-Functional Requirements Characteristics:

  • Quality-focused: Define performance and quality standards
  • System-wide: Apply to entire system rather than specific features
  • Constraint-driven: Set limits and boundaries for system operation

Mnemonic: “Functions Do, Quality Shows” - Functional requirements define actions, non-functional define quality.


Question 2(c OR) [7 marks]
#

Write a short note on Requirements Analysis.

Answer:

Requirements Analysis is the process of studying user needs and defining system requirements to understand what the software system should accomplish.

Table: Requirements Analysis Process

PhaseActivitiesDeliverables
ElicitationGather requirements from stakeholdersRequirement lists, interviews
AnalysisStudy and understand requirementsRequirement models, prototypes
SpecificationDocument requirements formallySRS document, use cases
ValidationVerify requirements correctnessValidated requirements

Requirements Elicitation Techniques:

  • Interviews: One-on-one discussions with stakeholders
  • Questionnaires: Structured surveys for large user groups
  • Observation: Studying current work processes
  • Workshops: Group sessions for requirement gathering
  • Prototyping: Building preliminary versions for feedback

Analysis Activities:

  • Requirement prioritization: Ranking requirements by importance
  • Feasibility study: Assessing technical and economic viability
  • Conflict resolution: Resolving contradictory requirements
  • Requirement modeling: Creating visual representations

Validation Techniques:

  • Requirement reviews: Formal examination of documented requirements
  • Prototyping: Building models to validate understanding
  • Test case generation: Creating tests from requirements

Challenges in Requirements Analysis:

  • Changing requirements: Stakeholder needs evolve over time
  • Communication gaps: Misunderstanding between users and developers
  • Incomplete requirements: Missing or vague specifications
  • Conflicting stakeholder needs: Different user groups have different priorities

Mnemonic: “Every Analysis Specification Validates” - Key phases of requirements analysis.


Question 3(a) [3 marks]
#

Explain Gantt Chart.

Answer:

A Gantt Chart is a visual project management tool that displays project tasks against a timeline, showing task duration, dependencies, and progress.

Table: Gantt Chart Components

ComponentDescriptionPurpose
TasksProject activities listed verticallyShows work breakdown
TimelineHorizontal time scaleDisplays project duration
BarsHorizontal bars showing task durationVisual task representation
DependenciesLines connecting related tasksShows task relationships
MilestonesKey project checkpointsMarks important events

Diagram: Sample Gantt Chart

TRDCTaeeoesqsdskuiitigniNrngnaegmmeentsWeek1Week2Week3Week4

Benefits:

  • Visual clarity: Easy to understand project timeline
  • Progress tracking: Shows completed vs remaining work
  • Resource planning: Helps allocate resources effectively

Mnemonic: “Gantt Graphs Timeline Tasks” - Visual timeline representation of project tasks.


Question 3(b) [4 marks]
#

Write in brief: Responsibilities and skills of software project manager.

Answer:

A software project manager oversees the entire software development lifecycle, ensuring projects are completed on time, within budget, and meet quality standards.

Table: Project Manager Responsibilities

CategoryResponsibilitiesKey Activities
PlanningProject scope and timeline definitionWBS creation, scheduling
Resource ManagementTeam allocation and coordinationStaff assignment, skill matching
Risk ManagementIdentify and mitigate project risksRisk assessment, contingency planning
CommunicationStakeholder coordinationStatus reporting, meetings
Quality AssuranceEnsure deliverable qualityReview processes, standards

Essential Skills:

  • Technical skills: Understanding of software development processes
  • Leadership skills: Team motivation and guidance
  • Communication skills: Effective stakeholder interaction
  • Problem-solving skills: Quick issue resolution
  • Time management: Efficient task prioritization

Key Responsibilities:

  • Project planning: Define scope, timeline, and resources
  • Team coordination: Manage development team activities
  • Stakeholder management: Maintain client and sponsor relationships
  • Risk mitigation: Identify and address potential problems

Mnemonic: “Managers Plan Resources Risks Communication” - Core responsibilities of project managers.


Question 3(c) [7 marks]
#

Write a short note on Risk Management.

Answer:

Risk Management is the systematic process of identifying, analyzing, and responding to project risks that could impact software development success.

Table: Risk Management Process

PhaseActivitiesTechniquesOutcomes
Risk IdentificationFind potential risksBrainstorming, checklistsRisk register
Risk AnalysisAssess probability and impactRisk matrices, scoringPrioritized risks
Risk PlanningDevelop response strategiesMitigation, avoidanceRisk response plans
Risk MonitoringTrack and control risksRegular reviewsUpdated risk status

Types of Software Project Risks:

Technical Risks:

  • Technology uncertainty: New or unproven technologies
  • Performance issues: System not meeting performance requirements
  • Integration problems: Difficulty combining system components

Project Risks:

  • Schedule delays: Tasks taking longer than estimated
  • Resource constraints: Insufficient staff or budget
  • Scope creep: Uncontrolled requirement changes

Business Risks:

  • Market changes: Shifting business requirements
  • Competition: Competitive products affecting project value
  • Regulatory changes: New compliance requirements

Risk Response Strategies:

  • Risk Avoidance: Eliminate risk by changing project approach
  • Risk Mitigation: Reduce probability or impact of risk
  • Risk Transfer: Shift risk to third party (insurance, outsourcing)
  • Risk Acceptance: Accept risk and develop contingency plans

Risk Monitoring Techniques:

  • Regular risk reviews: Periodic assessment of risk status
  • Risk metrics: Quantitative measures of risk exposure
  • Early warning indicators: Signals of emerging risks

Mnemonic: “Identify Analyze Plan Monitor” - Four phases of risk management process.


Question 3(a OR) [3 marks]
#

Explain WBS with example.

Answer:

Work Breakdown Structure (WBS) is a hierarchical decomposition of project work into smaller, manageable components that can be easily estimated, assigned, and tracked.

Diagram: WBS Example for E-commerce Website

graph TD
    A[E-commerce Website] --> B[Frontend Development]
    A --> C[Backend Development]
    A --> D[Testing]
    A --> E[Deployment]
    
    B --> B1[User Interface]
    B --> B2[Shopping Cart]
    B --> B3[Payment Gateway]
    
    C --> C1[Database Design]
    C --> C2[User Management]
    C --> C3[Order Processing]
    
    D --> D1[Unit Testing]
    D --> D2[Integration Testing]
    D --> D3[User Acceptance Testing]

WBS Characteristics:

  • Hierarchical structure: Top-down breakdown of project scope
  • 100% rule: WBS includes 100% of work defined by project scope
  • Mutually exclusive: No overlap between WBS elements

Mnemonic: “Work Breaks Small” - Breaking work into smaller manageable pieces.


Question 3(b OR) [4 marks]
#

Explain Project monitoring and control.

Answer:

Project monitoring and control involves tracking project progress, comparing actual performance against planned performance, and taking corrective actions when necessary.

Table: Monitoring and Control Activities

ActivityDescriptionTools/Techniques
Progress TrackingMonitor task completionGantt charts, dashboards
Performance MeasurementCompare actual vs plannedEarned value analysis
Quality ControlEnsure deliverable qualityReviews, testing
Risk MonitoringTrack identified risksRisk registers, reports
Change ControlManage scope changesChange request process

Key Monitoring Metrics:

  • Schedule performance: Tasks completed on time
  • Cost performance: Budget utilization and variance
  • Quality metrics: Defect rates, customer satisfaction
  • Resource utilization: Team productivity and efficiency

Control Actions:

  • Corrective actions: Address performance deviations
  • Preventive actions: Avoid potential problems
  • Change management: Handle scope modifications

Mnemonic: “Monitor Progress Performance Quality” - Key areas of project monitoring.


Question 3(c OR) [7 marks]
#

Explain Critical Path Method (CPM) with a suitable example.

Answer:

Critical Path Method (CPM) is a project management technique that identifies the longest sequence of dependent tasks and determines the minimum project completion time.

Table: Sample Project Tasks

TaskDuration (Days)Predecessors
A - Requirements5-
B - Design8A
C - Database Setup6A
D - Frontend Coding10B
E - Backend Coding12B, C
F - Integration4D, E
G - Testing6F

Diagram: CPM Network

graph LR
    A[A:5] --> B[B:8]
    A --> C[C:6]
    B --> D[D:10]
    B --> E[E:12]
    C --> E
    D --> F[F:4]
    E --> F
    F --> G[G:6]

Critical Path Calculation:

  • Path 1: A → B → D → F → G = 5 + 8 + 10 + 4 + 6 = 33 days
  • Path 2: A → B → E → F → G = 5 + 8 + 12 + 4 + 6 = 35 days (Critical Path)
  • Path 3: A → C → E → F → G = 5 + 6 + 12 + 4 + 6 = 33 days

CPM Benefits:

  • Project duration: Determines minimum completion time
  • Critical activities: Identifies tasks that cannot be delayed
  • Float calculation: Shows available slack time for non-critical tasks
  • Resource optimization: Helps allocate resources efficiently

CPM Steps:

  1. Activity identification: List all project activities
  2. Dependency mapping: Determine task relationships
  3. Duration estimation: Estimate time for each activity
  4. Network construction: Create project network diagram
  5. Critical path calculation: Find longest path through network

Float Types:

  • Total Float: Maximum delay without affecting project completion
  • Free Float: Delay without affecting successor activities
  • Independent Float: Delay without affecting predecessors or successors

Mnemonic: “Critical Paths Minimize Project Duration” - CPM finds longest path determining minimum time.


Question 4(a) [3 marks]
#

Write a note on classification of design activities.

Answer:

Software design activities are systematically classified to organize the design process and ensure comprehensive system development.

Table: Classification of Design Activities

ClassificationActivitiesFocus Area
Architectural DesignSystem structure, componentsHigh-level organization
Interface DesignUser interface, system interfacesInteraction design
Component DesignModule details, algorithmsLow-level implementation
Data DesignDatabase, data structuresData organization

Design Activity Levels:

  • System Level: Overall system architecture and major components
  • Subsystem Level: Individual subsystem design and interfaces
  • Component Level: Detailed module design and algorithms

Design Approaches:

  • Top-down design: Start with high-level and decompose
  • Bottom-up design: Build from individual components upward

Mnemonic: “Architects Interface Components Data” - Four main design activity classifications.


Question 4(b) [4 marks]
#

Define Coupling. Explain its classification.

Answer:

Coupling refers to the degree of interdependence between software modules. Lower coupling indicates better software design with more maintainable and flexible code.

Table: Types of Coupling (Loosest to Tightest)

Coupling TypeDescriptionExample
Data CouplingModules communicate through parametersFunction calls with simple parameters
Stamp CouplingModules share composite data structurePassing record/structure as parameter
Control CouplingOne module controls another’s executionPassing control flags
External CouplingModules depend on external formatShared file format or protocol
Common CouplingModules share global dataGlobal variables access
Content CouplingOne module modifies another’s dataDirect access to another module’s data

Coupling Characteristics:

  • Data coupling: Best type - minimal interdependence
  • Stamp coupling: Acceptable - shared data structures
  • Control coupling: Moderate - control information passed
  • Content coupling: Worst type - high interdependence

Benefits of Loose Coupling:

  • Maintainability: Easier to modify individual modules
  • Reusability: Modules can be used in different contexts
  • Testability: Modules can be tested independently

Mnemonic: “Data Stamp Control External Common Content” - Coupling types from loose to tight.


Question 4(c) [7 marks]
#

Draw a use case diagram for online shopping web application.

Answer:

A use case diagram shows the functional requirements of an online shopping system by illustrating actors and their interactions with the system.

Diagram: Online Shopping Use Case Diagram

graph TD
    Customer((Customer))
    Admin((Admin))
    PaymentSystem((Payment System))
    
    Customer --> UC1[Browse Products]
    Customer --> UC2[Search Products]
    Customer --> UC3[Add to Cart]
    Customer --> UC4[View Cart]
    Customer --> UC5[Checkout]
    Customer --> UC6[Make Payment]
    Customer --> UC7[Track Order]
    Customer --> UC8[Register Account]
    Customer --> UC9[Login/Logout]
    Customer --> UC10[View Order History]
    
    Admin --> UC11[Manage Products]
    Admin --> UC12[Manage Categories]
    Admin --> UC13[Process Orders]
    Admin --> UC14[Generate Reports]
    Admin --> UC15[Manage Users]
    
    UC6 --> PaymentSystem
    
    UC5 -.->|includes| UC3
    UC5 -.->|includes| UC6
    UC11 -.->|extends| UC16[Update Inventory]

Key Use Cases Explained:

Customer Use Cases:

  • Browse Products: View available products by category
  • Search Products: Find specific products using keywords
  • Shopping Cart: Add, remove, and modify cart items
  • Checkout Process: Complete purchase with shipping details
  • Payment Processing: Handle secure payment transactions
  • Order Management: Track orders and view purchase history

Admin Use Cases:

  • Product Management: Add, edit, delete products and categories
  • Order Processing: Manage order fulfillment and shipping
  • User Management: Handle customer accounts and permissions
  • Reporting: Generate sales and inventory reports

System Relationships:

  • Include: Mandatory sub-use cases (checkout includes payment)
  • Extend: Optional extensions (inventory update extends product management)
  • Inheritance: Specialized actor behaviors

Actors:

  • Primary Actors: Customer, Admin (initiate use cases)
  • Secondary Actors: Payment System (respond to system requests)

Mnemonic: “Customers Browse Buy, Admins Manage Monitor” - Core use case categories.


Question 4(a OR) [3 marks]
#

Explain the characteristics of good UI.

Answer:

Good User Interface (UI) design ensures effective user interaction with software systems through intuitive and user-friendly design principles.

Table: Characteristics of Good UI

CharacteristicDescriptionExample
ConsistencyUniform design across applicationSame button styles throughout
SimplicityEasy to understand and useMinimal, clean interface
VisibilityImportant elements clearly visibleKey actions prominently displayed
FeedbackSystem responds to user actionsProgress bars, confirmations
Error PreventionPrevents user mistakesInput validation, confirmations
FlexibilityAccommodates different user needsCustomizable interfaces

UI Design Principles:

  • User-centered: Design focused on user needs and goals
  • Accessibility: Usable by people with different abilities
  • Efficiency: Minimizes steps to complete tasks

Mnemonic: “Consistent Simple Visible Feedback” - Core UI design characteristics.


Question 4(b OR) [4 marks]
#

Define Cohesion. Explain its classification.

Answer:

Cohesion refers to how closely related and focused the responsibilities of a single module are. High cohesion indicates well-designed modules with related functionality.

Table: Types of Cohesion (Weakest to Strongest)

Cohesion TypeDescriptionExample
CoincidentalElements grouped arbitrarilyUtility module with unrelated functions
LogicalElements perform similar logical functionsAll input/output operations
TemporalElements executed at same timeSystem initialization module
ProceduralElements follow specific sequenceSequential processing steps
CommunicationalElements operate on same dataModule processing same record
SequentialOutput of one element is input to nextData transformation pipeline
FunctionalAll elements contribute to single taskCalculate employee salary

Cohesion Characteristics:

  • Functional cohesion: Best type - single, well-defined purpose
  • Sequential cohesion: Good - data flows through module
  • Communicational cohesion: Acceptable - operates on same data
  • Coincidental cohesion: Worst type - no logical relationship

Benefits of High Cohesion:

  • Maintainability: Easier to understand and modify
  • Reliability: Less likely to have errors
  • Reusability: Single-purpose modules more reusable

Mnemonic: “Coincidental Logical Temporal Procedural Communicational Sequential Functional” - Cohesion types from weak to strong.


Question 4(c OR) [7 marks]
#

Draw context diagram for library system.

Answer:

A context diagram shows the library system as a single process with its external entities and data flows, providing a high-level view of system boundaries.

Diagram: Library System Context Diagram

graph TD
    Student((Student))
    Librarian((Librarian))
    Administrator((Administrator))
    Publisher((Publisher))
    
    LibrarySystem[Library Management System]
    
    Student -->|Book Request| LibrarySystem
    Student -->|Return Request| LibrarySystem
    LibrarySystem -->|Book Details| Student
    LibrarySystem -->|Due Date Notice| Student
    
    Librarian -->|Issue/Return Books| LibrarySystem
    Librarian -->|Search Books| LibrarySystem
    LibrarySystem -->|Book Status| Librarian
    LibrarySystem -->|Member Details| Librarian
    
    Administrator -->|Add/Remove Books| LibrarySystem
    Administrator -->|Manage Members| LibrarySystem
    LibrarySystem -->|System Reports| Administrator
    LibrarySystem -->|Overdue Reports| Administrator
    
    Publisher -->|Book Catalog| LibrarySystem
    LibrarySystem -->|Purchase Orders| Publisher

External Entities:

Student (Library Member):

  • Inputs: Book search requests, reservation requests, return notifications
  • Outputs: Book availability information, due dates, fine details

Librarian:

  • Inputs: Book issue/return transactions, member verification
  • Outputs: Book status updates, member information, transaction confirmations

Administrator:

  • Inputs: New book additions, member management, system configuration
  • Outputs: System reports, statistics, overdue notifications

Publisher/Supplier:

  • Inputs: Book catalogs, availability updates
  • Outputs: Purchase orders, procurement requests

Data Flows:

  • Book Information: Details about books, availability, location
  • Member Data: Student/faculty information, borrowing history
  • Transaction Records: Issue/return details, fine calculations
  • Reports: Usage statistics, overdue lists, inventory reports

System Boundary: The context diagram clearly defines what is inside the library system (book management, member management, transaction processing) and what is outside (external entities like students, staff, and suppliers).

Key Data Stores (Internal to System):

  • Book catalog database
  • Member information database
  • Transaction history database
  • Fine and payment records

Mnemonic: “Students Librarians Admins Publishers” - Four main external entities interacting with library system.


Question 5(a) [3 marks]
#

Differentiate verification and validation.

Answer:

Verification and validation are two complementary quality assurance processes that ensure software meets requirements and user needs.

Table: Verification vs Validation

AspectVerificationValidation
QuestionAre we building the product right?Are we building the right product?
FocusProcess and standards complianceProduct meets user needs
WhenThroughout developmentAfter product completion
MethodsReviews, inspections, walkthroughsTesting, user acceptance
CostLower cost of defect detectionHigher cost but essential
ObjectiveEnsure conformance to specificationsEnsure fitness for use

Verification Activities:

  • Code reviews: Checking code against coding standards
  • Design reviews: Ensuring design meets requirements
  • Document reviews: Verifying documentation completeness

Validation Activities:

  • System testing: Testing complete integrated system
  • User acceptance testing: End-user validation of functionality
  • Performance testing: Validating system performance requirements

Mnemonic: “Verification Verifies Process, Validation Validates Product” - Key distinction between the two.


Question 5(b) [4 marks]
#

Explain Code Review.

Answer:

Code Review is a systematic examination of source code by developers other than the author to identify defects, improve code quality, and ensure adherence to coding standards.

Table: Types of Code Review

TypeDescriptionParticipantsFormality
Code WalkthroughAuthor explains code to reviewersAuthor + 2-3 reviewersInformal
Code InspectionFormal systematic examinationModerator, author, reviewersFormal
Peer ReviewColleague reviews code changes1-2 peer developersSemi-formal
Tool-Assisted ReviewAutomated tools assist reviewAuthor + automated toolsVariable

Code Review Process:

  1. Preparation: Author prepares code and documentation
  2. Review Meeting: Team examines code systematically
  3. Defect Logging: Issues and improvements documented
  4. Follow-up: Author addresses identified issues
  5. Re-review: Verification of fixes if necessary

Review Criteria:

  • Functionality: Code performs intended operations correctly
  • Standards Compliance: Follows coding conventions and guidelines
  • Maintainability: Code is readable and well-documented
  • Performance: Efficient algorithms and resource usage

Benefits:

  • Defect Detection: Early identification of bugs and issues
  • Knowledge Sharing: Team learns from each other’s code
  • Quality Improvement: Consistent coding standards across team

Mnemonic: “Reviews Reveal Errors Early” - Code reviews catch defects before testing.


Question 5(c) [7 marks]
#

Write a short note on White Box Testing.

Answer:

White Box Testing is a software testing technique that examines the internal structure, design, and coding of an application to verify input-output flow and improve design and usability.

Table: White Box Testing Techniques

TechniqueDescriptionCoverage Criteria
Statement CoverageExecute every statementAll statements executed at least once
Branch CoverageTest all decision pointsAll branches (true/false) covered
Path CoverageTest all possible pathsAll independent paths executed
Condition CoverageTest all conditionsAll boolean conditions tested

White Box Testing Process:

graph LR
    A[Code Analysis] --> B[Test Case Design]
    B --> C[Test Execution]
    C --> D[Coverage Analysis]
    D --> E[Report Generation]

Coverage Types Explained:

Statement Coverage:

  • Ensures every line of code is executed at least once
  • Formula: (Statements Executed / Total Statements) × 100
  • Minimum level of testing required

Branch Coverage:

  • Tests all decision points (if-else, switch-case)
  • Ensures both true and false conditions are tested
  • More thorough than statement coverage

Path Coverage:

  • Tests all possible execution paths through code
  • Most comprehensive but often impractical for complex programs
  • Uses cyclomatic complexity to determine paths

Condition Coverage:

  • Tests all boolean sub-expressions individually
  • Ensures each condition evaluates to both true and false
  • Important for complex conditional statements

White Box Testing Tools:

  • Static Analysis Tools: Examine code without execution
  • Dynamic Analysis Tools: Monitor code during execution
  • Coverage Tools: Measure test coverage percentage
  • Profiling Tools: Analyze performance characteristics

Advantages:

  • Thorough Testing: Examines all code paths and logic
  • Early Defect Detection: Finds errors during development
  • Optimization: Identifies unused code and inefficiencies
  • Security Testing: Reveals potential security vulnerabilities

Disadvantages:

  • Time Consuming: Requires detailed code knowledge
  • Expensive: Needs skilled testers familiar with code
  • Limited Scope: May miss integration and system-level issues
  • Maintenance: Test cases need updates with code changes

White Box vs Black Box:

  • White Box: Internal structure focus, code-based testing
  • Black Box: Functional behavior focus, specification-based testing
  • Complementary: Both approaches needed for comprehensive testing

Test Case Design Guidelines:

  • Boundary Testing: Test edge cases and limits
  • Loop Testing: Verify loop conditions and iterations
  • Data Flow Testing: Follow variable definitions and usage
  • Control Flow Testing: Test decision logic and branches

Mnemonic: “White Box Sees Inside Structure” - Internal code structure testing approach.


Question 5(a OR) [3 marks]
#

List out various coding standards and guidelines.

Answer:

Coding standards and guidelines ensure consistent, readable, and maintainable code across development teams and projects.

Table: Coding Standards Categories

CategoryStandardsExamples
Naming ConventionsVariable, function, class namingcamelCase, PascalCase
Code StructureIndentation, spacing, brackets4-space indentation
DocumentationComments, function headersInline comments, API docs
Error HandlingException handling, loggingTry-catch blocks

Common Coding Guidelines:

  • Meaningful names: Use descriptive variable and function names
  • Consistent indentation: Use consistent spacing (2 or 4 spaces)
  • Comment code: Explain complex logic and business rules
  • Function size: Keep functions small and focused
  • Error handling: Implement proper exception handling

Language-Specific Standards:

  • Java: Oracle Java Code Conventions
  • Python: PEP 8 Style Guide
  • JavaScript: Airbnb JavaScript Style Guide
  • C++: Google C++ Style Guide

Mnemonic: “Names Structure Documentation Errors” - Four main coding standard categories.


Question 5(b OR) [4 marks]
#

Explain Test cases and Test suite with example.

Answer:

Test cases are specific conditions under which a tester determines whether a software application is working correctly, while a test suite is a collection of related test cases.

Table: Test Case vs Test Suite

AspectTest CaseTest Suite
DefinitionSingle test scenarioCollection of test cases
ScopeSpecific functionalityRelated functionalities
ExecutionIndividual testGroup execution
ManagementSingle test managementBatch management

Test Case Components:

  • Test Case ID: Unique identifier (TC_001)
  • Test Description: What is being tested
  • Preconditions: Setup requirements
  • Test Steps: Step-by-step procedure
  • Expected Result: Expected outcome
  • Actual Result: Observed outcome
  • Status: Pass/Fail/Blocked

Example Test Case:

Test Case ID: TC_LOGIN_001
Description: Verify user login with valid credentials
Preconditions: User account exists in system
Test Steps:
1. Navigate to login page
2. Enter valid username
3. Enter valid password
4. Click Login button
Expected Result: User redirected to dashboard
Actual Result: [To be filled during execution]
Status: [Pass/Fail]

Test Suite Example:

  • Login Test Suite: Contains all login-related test cases
    • TC_LOGIN_001: Valid login
    • TC_LOGIN_002: Invalid username
    • TC_LOGIN_003: Invalid password
    • TC_LOGIN_004: Empty fields

Mnemonic: “Cases Test Functions, Suites Group Cases” - Individual vs collection relationship.


Question 5(c OR) [7 marks]
#

Write a short note on Black Box Testing.

Answer:

Black Box Testing is a software testing method that examines functionality without knowledge of internal code structure, focusing on input-output behavior and requirement compliance.

Table: Black Box Testing Techniques

TechniqueDescriptionApplication
Equivalence PartitioningDivide inputs into equivalent groupsInput validation testing
Boundary Value AnalysisTest edge values and boundariesRange and limit testing
Decision Table TestingTest combinations of conditionsComplex business logic
State Transition TestingTest state changesWorkflow and status testing
Use Case TestingTest user scenariosEnd-to-end functionality

Black Box Testing Process:

graph LR
    A[Requirement Analysis] --> B[Test Case Design]
    B --> C[Test Data Preparation]
    C --> D[Test Execution]
    D --> E[Result Analysis]

Testing Techniques Explained:

Equivalence Partitioning:

  • Divides input domain into classes of equivalent data
  • One test case from each partition represents entire class
  • Reduces number of test cases while maintaining coverage
  • Example: Age input (0-17: Minor, 18-65: Adult, 65+: Senior)

Boundary Value Analysis:

  • Tests values at boundaries of equivalence partitions
  • Focuses on edge cases where errors commonly occur
  • Tests minimum, maximum, and just inside/outside boundaries
  • Example: For range 1-100, test: 0, 1, 2, 99, 100, 101

Decision Table Testing:

  • Represents complex business rules in tabular format
  • Shows all possible combinations of conditions and actions
  • Ensures complete coverage of business logic scenarios
  • Useful for systems with multiple interacting conditions

State Transition Testing:

  • Models system behavior as states and transitions
  • Tests valid and invalid state changes
  • Verifies system handles state transitions correctly
  • Example: Order states (Pending → Processing → Shipped → Delivered)

Use Case Testing:

  • Based on user scenarios and use cases
  • Tests complete business workflows end-to-end
  • Focuses on user perspective and real-world usage
  • Validates system meets user requirements

Black Box Testing Levels:

  • Unit Testing: Individual component functionality
  • Integration Testing: Component interaction testing
  • System Testing: Complete system functionality
  • Acceptance Testing: User requirement validation

Advantages:

  • User Perspective: Tests from end-user viewpoint
  • No Code Knowledge: Testers don’t need programming skills
  • Unbiased Testing: Not influenced by code implementation
  • Early Testing: Can start with requirements specification

Disadvantages:

  • Limited Coverage: May miss internal logic errors
  • Inefficient: Difficult to identify all possible inputs
  • Redundant Testing: May duplicate test scenarios
  • Blind Testing: Cannot target specific code areas

Test Data Design:

  • Valid Inputs: Test normal operational conditions
  • Invalid Inputs: Test error handling capabilities
  • Edge Cases: Test boundary conditions and limits
  • Stress Inputs: Test system under extreme conditions

Black Box vs White Box Comparison:

  • Black Box: External behavior, specification-based
  • White Box: Internal structure, code-based
  • Gray Box: Combination of both approaches
  • Complementary: Both needed for thorough testing

Mnemonic: “Black Box Behavior Based” - Focus on external functionality without internal knowledge.

Related

Database Management System (1333204) - Summer 2024 Solution
20 mins
Study-Material Solutions Database 1333204 2024 Summer
Introduction To IT Systems (4311602) - Summer 2024 Solution
Study-Material Solutions It-Systems 4311602 2024 Summer
Principles of Electronic Communication (4331104) - Summer 2024 Solution
Study-Material Solutions Electronic-Communication 4331104 2024 Summer
Computer Networking (4343202) - Summer 2024 Solution
23 mins
Study-Material Solutions Computer-Networking 4343202 2024 Summer
Elements of Electrical & Electronics Engineering (1313202) - Summer 2024 Solution
23 mins
Study-Material Solutions Electrical-Engineering Electronics-Engineering 1313202 2024 Summer
Object Oriented Programming with Java (4341602) - Summer 2024 Solution
Study-Material Solutions Java Oop 4341602 2024 Summer