-
Hi, I am at the requirements elicitation stage, where I have walls of text in free form, that I want to split into sentences, or even more granular propositions, and map later Another problem I encounter: sometimes requirements are multiplying, for example if feature A, B and C should work in platform X, Y, Z: how to make sure that all combination of AX AY AZ BX BY BZ CY CX CZ are represented? What if more dimensions are involved? Best, |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
Hey @MartyLake, these are great questions, and I am running out of time to catch up with writing a solid answer. I will get back to this thread within a few days. |
Beta Was this translation helpful? Give feedback.
-
Hi, I don't know if my answer is good enough and if it is too long or it is too short 😄
To my knowledge, there is no clear method for writing requirements, it is still like art in 2023 :), especially if your questions are taken broadly, out of a specific industry's context and best practice or a type of software project. Here are two guidelines that could give you some guidance:
To your specific question:
A general answer is that I am not aware of how to harness this kind of multiplication using a requirements tool alone. StrictDoc doesn't allow handling such a "combinatorial" requirements writing. Depending on your problem type, sometimes you could work around the multiplication by modelling your requirement as a table with parameters and values and then writing a test case for each row. Sometimes you may find a clever way to partition your requirements problem, such that the multiplication is avoided, but you and your colleagues can still master the complexity. To make a general statement: I wish if StrictDoc provided capabilities for dealing with the multiplication out of the box. At the moment, I don't have a clear solution that could be implemented. Here's some real-world example of what exists, if the topic of embedded C language requirements is not too far from you. One example I know of can be found here: https://docs.rtems.org/branches/master/eng/req/howto.html#action-requirements, where the behavior of C functions was specified as a combinatorial set of input parameters and then expected values. There the EARS syntax was followed and each function was decomposed to a set of requirements each following:
Splitting each precondition into its own field and writing a custom Python toolchain that assembles the precondition resulted in a very robust coverage of all statements needed for the verification of C functions. I wish I could give you a better answer, but it should give you some start into the Art 😄 One very good heuristic is that the requirements that you write should be clear and useful. It should be practical to read, manage, implement, verify them, etc. |
Beta Was this translation helpful? Give feedback.
Hi, I don't know if my answer is good enough and if it is too long or it is too short 😄
To my knowledge, there is no clear method for writing requirements, it is still like art in 2023 :), especially if yo…