The last time we talked about identifying the problem and then ponder about different alternative solutions which can be implemented to solve the problem. This process in technical terms is called - expanding the solution space. Once we obtain a sizable population of solutions, we start applying different constraints to converge onto a single, most optimal solution. If you aren’t exactly catching up with what I am saying, feel free to check the last article focussing on initial system design. Believe me, it’s kinda hard to catch up systems theory at the begingging, but once you get used to it, you will start unravelling newer domains yourselves!
Cool, back to what we were talking, we now have an expanded design space, we now wish to converge to a single solution. For instance, take the passenger and goods transport system to be implemented in a city. The city baosts a large coastline and has an intricate network of rivulets, banks and canals. Lets assume that the city spans about 25 square kilometres. It measures about 5 kilometres in length as well as breadth (just assume). Hence the largest distance any passenger/cargo might want to travel is about 7~8 kms. (Pythagoras theorem, the diagonal is the largest in length in a square, :P). Let’s assume that the local government wants to achieve rapid transport and wants even the farthest passengers reach their destinations within an hour or so.
Now, that you have all this information, what mode of transport would you choose? Would you opt for constructing a network of ley lines and railcars, would it be a street car/bus system, or would it be waterways? Each one offers some advantages plus some drawbacks. If you choose to implement the waterways, you don’t need to construct additional infrastructure expcet the docsk, because rivers are natural highways. However, ships and ferries are way slower than buses/railways. If you opt railways/street cars, you have a chalk out a plan to construct a detailed network of rail linec across the city, which will increase the project cost and delivery times.
It’s upto you to decide. Let’s assume you were the in-charge of executing this project, what would you choose? Think upon it, take your time, you don’t need to answer it right away, read through and then you can come back to this question. Now, you must be surprised to know, what we did above was penning down the requirements for the system.
So, requirements can be practically defined as, “the constraints which compress the solution space and help the designer converge onto a single solution” (although, this definition is not the standard one, this is how I remember what requirements are. If you want the standard one, you can check the INCOSE documents, however, the above will intuitively help you understand things. After all, I don’t want to thump another standard systems theory resource on y’all, because there already exist a lot of them, written by authors way better in understanding and experience (more than my age perhaps! :P) of systems). There are different kinds of requirements and are primarily classified into functional and performance requirements based on their nature.
In the example above, the requirement “transport passengers and goods” is a functional requirement, because it dictates what function/purpose should the system perform/satisfy. Whereas “maximum travel time shouls be less than an hour” is a performance requirement, since it dictates the system has to be fast enough so that the largest distance should be covered in under an hour.
Lets consider an example, the system under consideration is an Autonomous surveillance system for International Borders. You can see how requirements can be tabulated systematically, there might be some abbreviations which you can’t make sense of, but for now, I only want y’all to know how requirements can be formulated.
Requirement ID | Requirement from | Requirement on | Detailed description of Requirement | Subsystem responsible to monitor this requirement | Methodology to track/achieve this requirement | Permissible Override | Type |
---|---|---|---|---|---|---|---|
MR_01 | Indian Army | System | Objects with cross section greater than or equal to 0.01 sq m should be identified (with a probability of correct identification to be around 3 sigma) | Instrumentation, Electrical, Software, Mechanical | No | P | |
SYS_01_01 | System | Propulsion, Flight Control, Electrical | UAV should be flown at altitudes (x metres) / speeds (y metres/sec) such that the images/videos can be captured with required details (resolution) | Propulsion, Flight Control, Electrical, Instrumentation | Selection and design of PCBs and other electronic components should be done such that compatibility is ensured | F | |
SYS_01_02 | System | Electrical | Should develop auxiliary modules (hardware) to support the onboard sensors and implement encryption (for image transmission) /decryption(for telecommand reception) algorithms | Electrical | Selection and design of PCBs and other electronic components should be done such that compatibility is ensured | F |
The ‘SMART’ mnemonic accurately describes what criteria can be followed for good requirement formulation.
Requirements can also be classified on the basis of the owner, as in the entity which imposes the requirement on the system or the subsystem. They can be stakeholder requirements, system, subsystem and component level requirements to be precise. We will cover all of this in the next issue. Hope that y’all got a gist of what requirements are fundamentally.