Skip to main content

Understanding Functional and Non-Functional Requirements Using the Human Body

 # Understanding Functional and Non-Functional Requirements Using the Human Body 

Hello, everyone!

Good morning! 

Today, let us understand functional and non-functional requirements. Based on my experience and understanding, I believe that many of the inventions we see in this world are inspired by nature. Nature has already created many wonderful things, and we are trying to recreate similar ideas using our own knowledge and capabilities. So, why don't we use nature to understand software concepts? Our human body is one of the wonders of nature. It performs so many activities, and different parts of our body work together to keep us alive. 

Let's take our human body as an example and understand functional and non-functional requirements in a simple way. Our human body has different parts, and each part performs its own activities. Today, we are going to look at four important parts of our body: 

1. Heart

2. Brain

3. Lungs

4. Kidneys 

Before going into the details, let us first understand what functional and non-functional requirements mean.

What is a functional requirement? 

A functional requirement describes what a system should do. In simple words, what are the activities or operations that the system needs to perform? 

What is a non-functional requirement? 

A non-functional requirement describes how well the system should perform those activities. It focuses on qualities such as performance, efficiency, and reliability. 

One thing to remember here is that our human body naturally performs different activities. We are using these activities as examples to understand software concepts. 

In software development, we gather requirements to identify what the system should do and how well it should perform. Now, let's start with our first example: the heart. 





## 1. Heart 

What are the activities performed by our heart? 

1. The heart pumps blood to the rest of the body.

2. It receives blood returning from the body.

3. It pumps oxygen-poor blood to the lungs for gas exchange.

4. It receives oxygen-rich blood from the lungs and pumps it to the body. 

These are the activities performed by our heart.

We can use them as examples to understand the functional operations of a software system. Now, let us look at the same heart from a different perspective. What about the quality with which the heart performs these activities? 

1. It continues pumping blood effectively over time.

2. During exercise, it increases its output to meet the muscles increased demand for oxygen.

3. It delivers sufficient blood flow to meet the body's needs.





 These examples help us understand concepts such as sustained performance, responsiveness, and efficiency. 

 Similarly, when developing a software application, we need to consider not only what operations the system should perform but also how well it should perform them. This is how we can understand the difference between functional and non-functional requirements using the heart as an example.

## 2. Brain 

Next, let us take our brain. Imagine that you are walking and suddenly see a chair in front of you. What happens? First, your brain receives visual information from your eyes. It processes the information, recognizes the object as a chair, and coordinates the actions required to sit on it. Our brain also helps us recall previously learned skills, memories, and familiar faces. These are some of the activities performed by our brain. We can use them to understand functional operations. 

Now, what about the quality attributes? 

1. **Latency:** When an object suddenly moves towards us, we need to react quickly.

2. **Accuracy:** We need to identify objects and interpret information correctly.

3. **Efficiency:** The brain processes information and coordinates actions without unnecessary effort.

4. **Safety:** Our movements and responses help us avoid preventable harm.




For example, consider a software application. It is not enough for the application to return the correct result. It should also respond within an acceptable time and perform its operations safely. These are some of the quality attributes that we consider when defining non-functional requirements.

## 3. Lungs 

Now, can we apply the same approach to our lungs? What are the main activities performed by our lungs? 

1. They allow air to enter and leave the respiratory system.

2. They help transfer oxygen from the air into the blood.

3. They help remove carbon dioxide from the blood through exhaled air. 

These are the activities performed by our lungs. We can use them as examples to understand functional operations. 

Now, let us look at the other side.

What qualities can we associate with the way our respiratory system performs these activities? 

1. During exercise, breathing becomes faster and deeper to meet the increased oxygen demand.

2. Breathing adjusts according to changes in physical activity.

3. The respiratory system provides sufficient oxygen and removes carbon dioxide according to the body's needs. 

These examples help us understand responsiveness, adaptability, and capacity.

Similarly, when we develop a software application, we need to consider how it behaves when the workload changes.


      


 For example, an application may work properly when a small number of users access it. But what happens when thousands of users access it at the same time? Will the application continue to respond within an acceptable time? Can it handle the increased workload? These are the types of questions we need to consider when defining non-functional requirements.

## 4. Kidneys 

Finally, let us take our kidneys. Our kidneys perform several important activities to maintain the body's internal balance.

What are some of the main activities performed by our kidneys? 

1. They filter the blood to remove waste products and excess substances.

2. They reabsorb essential nutrients, water, and electrolytes back into the blood.

3. They remove waste products and excess water through urine.

4. They help maintain the appropriate balance of fluids and electrolytes in the body.

These are the activities performed by our kidneys. We can use them as examples to understand functional operations.

Now, let us look at the quality attributes associated with these activities.

1. The kidneys perform filtration and reabsorption effectively.

2. They adjust the handling of water and electrolytes according to changes in the body's needs.

3. They sustain their essential functions over time. 


 


These examples help us understand efficiency, adaptability, and reliability.

In the same way, when developing software, we need to consider whether the system performs its operations efficiently, responds to changing conditions where necessary, and remains reliable over time. These expectations can be translated into appropriate non-functional requirements during software development.

## Conclusion 

So, we have now looked at four important parts of our human body: the heart, brain, lungs, and kidneys. 

We explored the activities performed by these organs and used them to understand functional and non-functional requirements.

Let us remember one important distinction. Our human body naturally performs different activities and operations. We use those activities as examples to understand software concepts. But when we develop a software application, we gather requirements to identify what the system should do and how well it should perform. 

Functional requirements describe what the system should do. Non-functional requirements describe the quality attributes and constraints that the system should satisfy.

So, the next time you design a software application, think about these two questions: What should my system do? And how well should my system do it? 

If you can answer these two questions clearly, you have taken an important first step towards designing a better software system. Thank you!

Comments

Popular posts from this blog

Artificial intelligence in Simple terms

What is meant by Artificial intelligence. Explain in detail.                                                           Humans are the intelligent creatures in the world and  humans has created lot of things in this world. For example, Machines,Software programs,Hardware and lot more.In 1956,Stanford researcher John McCarthy coined the term artificial intelligence.According to him,Artificial intelligence is field of computer science.            From the name one can understand that it is creating intelligence artificially. Humans has intelligence by natural. He/she will be able to understand things naturally. For example our eyes has the capability to see the objects around us .Our Ears is capable of hearing the sounds and our brain has the capability to think and act.    ...