1

i'm trying to learn about requirements in software engineering. At the moment i have a example problem i'm running through, where i'm trying to develop a system that allows calculations. The goal of the excersise is to understand the basic general process of requirements and design.

The system has requirements and a design in terms hardware items and software items. Each software item has requirements and a design in terms of components/modules.

I'm confused about the relationship between the System Requirements and Software Requirements.

Here is what i have at the moment.

System Requirements:

  1. Determine a formula - The system must determine a particular formula to compute.
  2. Calculate a result - The system must calculate the result of a formula.
  3. Present results - The system must present the results of the calculation to the user.

System Design:

  1. Calculation Software Application - This application performs the requirements specified above.

Calculation Application Software Requirements:

  1. Manage valid formula list - The application must allow users to manage the list of valid formulas to choose from.
  2. Print - The application must print results to the console.
  3. Collect User Input - The application must collect input from the user via the console.
  4. Perform Calculations - The application must perform the calculation of the selected formula.

Calculation Application Software Design:

  1. Formula List Controller - The purpose of the formula list controller is to allow the available formulas to be changed and queried.
  2. Print Wrapper - The purpose of the print wrapper is to encapsule the printing to the console.
  3. User Input Controller - The purpose of the user input controller is to encapsulate the user input procedures.
  4. Calculation Module - The purpose of the calculation module is to calculate the result of the given formula.

My question is that should the requirements for the software are slightly different than the requirements for the system as a whole? and is this overal general process correct? CC is very welcome!

3

I think your example project is not really suitable for seeing the difference between system requirements and software requirements, as your project looks too much like a software-only project.

In a software-only project, there is not really a distinction between system and software requirements and you can use the terms almost interchangeably.

A better project would be one where there is some hardware development involved as well, so that you can see the software and the hardware parts both contributing to the same system requirement. An example of such a project could be a robot that can move forward and that can make turns.

Some system requirements could be:

  • The robot (the system) shall be able to move forward
  • The robot (the system) shall be able to turn to the left
  • ...

I will leave it up to you to sketch out what you need in terms of hardware and software to fulfill those requirements. When you have sketched out what the software needs to do, you also have (a first sketch of) your software requirements.

0

System requirements refers to the prerequisites in order to run a piece of software. For example, the system requirements for League of Legends might be Windows 10, 64 GB RAM, etc.

Software requirements refers to way the business (e.g. marketing or operations) communicates what they want to the development team. The development team frequently refers to the requirements when building the software; indeed, there are whole methodologies for deriving software design and test plans from the requirements (this is know as requirements traceability). Software requirements may include functional requirements (behavior) or to nonfunctional requirements a.k.a. NFRs (security, performance, etc.)

Sometimes there is a nonfunctional requirement for certain system requirements. For example, your marketing department might tell you that the new game you're creating must be capable of running on both Windows and Mac. That would be an example of a software requirement that dictates system requirements.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.