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:
- Determine a formula - The system must determine a particular formula to compute.
- Calculate a result - The system must calculate the result of a formula.
- Present results - The system must present the results of the calculation to the user.
System Design:
- Calculation Software Application - This application performs the requirements specified above.
Calculation Application Software Requirements:
- Manage valid formula list - The application must allow users to manage the list of valid formulas to choose from.
- Print - The application must print results to the console.
- Collect User Input - The application must collect input from the user via the console.
- Perform Calculations - The application must perform the calculation of the selected formula.
Calculation Application Software Design:
- Formula List Controller - The purpose of the formula list controller is to allow the available formulas to be changed and queried.
- Print Wrapper - The purpose of the print wrapper is to encapsule the printing to the console.
- User Input Controller - The purpose of the user input controller is to encapsulate the user input procedures.
- 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!