0
0
Software Engineeringknowledge~30 mins

Functional vs non-functional requirements in Software Engineering - Hands-On Comparison

Choose your learning style9 modes available
Understanding Functional vs Non-Functional Requirements
📖 Scenario: You are part of a software development team planning a new mobile app for a local library. To make sure the app meets users' needs, you need to clearly list what the app should do and how well it should perform.
🎯 Goal: Build a clear list that separates functional requirements (what the app must do) from non-functional requirements (how the app should behave or perform).
📋 What You'll Learn
Create a dictionary called functional_requirements with exactly these entries: 'User login': 'Allow users to log in with email and password', 'Search books': 'Enable searching books by title, author, or ISBN', 'Borrow books': 'Allow users to borrow available books'
Create a dictionary called non_functional_requirements with exactly these entries: 'Performance': 'App should load pages within 2 seconds', 'Security': 'User data must be encrypted', 'Usability': 'App must be easy to navigate for all ages'
Create a list called all_requirements that combines the keys from both dictionaries in this order: functional requirements first, then non-functional requirements
Add a final statement as a string variable called summary that explains the difference between functional and non-functional requirements in one clear sentence
💡 Why This Matters
🌍 Real World
Software teams use functional and non-functional requirements to plan and build software that meets user needs and quality standards.
💼 Career
Understanding these requirements is essential for roles like business analysts, project managers, and software developers to ensure successful software delivery.
Progress0 / 4 steps
1
Create functional requirements dictionary
Create a dictionary called functional_requirements with these exact entries: 'User login': 'Allow users to log in with email and password', 'Search books': 'Enable searching books by title, author, or ISBN', and 'Borrow books': 'Allow users to borrow available books'.
Software Engineering
Need a hint?

Use curly braces {} to create a dictionary with the exact keys and values given.

2
Create non-functional requirements dictionary
Create a dictionary called non_functional_requirements with these exact entries: 'Performance': 'App should load pages within 2 seconds', 'Security': 'User data must be encrypted', and 'Usability': 'App must be easy to navigate for all ages'.
Software Engineering
Need a hint?

Use a dictionary just like in Step 1, but with the new keys and values.

3
Combine requirement keys into a list
Create a list called all_requirements that contains all keys from functional_requirements first, followed by all keys from non_functional_requirements, preserving their order.
Software Engineering
Need a hint?

Use list() and .keys() to get keys from each dictionary, then add them together.

4
Add summary explaining the difference
Create a string variable called summary that explains the difference between functional and non-functional requirements in one clear sentence. For example, say that functional requirements describe what the system should do, while non-functional requirements describe how the system should perform or behave.
Software Engineering
Need a hint?

Write a clear sentence as a string assigned to summary.