Consider all the different sorts of demands you compose - Use Cases, Business Rules, Security, Database, Performance, Usability, Reliability, Regulatory, shall requirements. Good demands are well-defined. How can you find if your demands are well defined?
We often hear that good demands are testable. This agency you have got some precise, unambiguous manner of determining if the demand have been met or not.
Of course, you can only define a diagnostic test for a demand if the demand is well-defined! So we are back to making certain that the demand is well-defined.
One attack is to utilize critical thinking.
Here is an illustration of a requirement:
"The system shall be easy to use."
Think critically about this requirement. Are this a good, well-defined requirement? How will you prove this requirement?
Think about that for a moment.
You can see that this sort of demand is not subject to in its current form.
First of all, a system that is easy for a individual who have used computing machines for 10 years, may not be easy for person new to computers. Are the system easy for person with Windows experience, or easy for person with Linux/Unix experience? What makes "easy" mean? Bashes it intend easy to learn, or easy to utilize after you have got learned it? Are it easy because everything is bill of fare driven, or because everything is hot-key driven? Are it easy because it is like another popular software system product? Are is easy because specific undertakings can be completed in a specific amount of time? Are it easy for comptrollers to utilize because it is like other accounting systems? Are it easy for the general populace to utilize because the interface is presented as a checkbook?
To do this demand well-defined, you have got to define who is using the system, and what that sort of individual intends by easy.
Often early in a project, the demands will not be well defined. And that is all right at that phase of the project. But you can not bring forth codification that rans into the users demands if the demands are not clear and precise. The easiest manner to do certain the demands are clear adequate to bring forth codification from, is to inquire "How will I prove or verify this requirement?"
For usage cases, many companies diagnostic test the stipulations and postconditions and not the individual stairway of the usage case. They see the individual stairway to be guidelines to how the usage lawsuit will work, not necessarily the existent precise steps. Other companies handle every measure as a precise requirement. So the degree of preciseness of the stairway of your usage lawsuit will change depending on how the usage lawsuit will be tested.
You might acquire the thought that you necessitate to work closely with whoever is testing the codification for the project. That is correct! Requirements and the diagnostic tests for the demands are closely related. They are so closely related, that some companies will inquire the barium to compose the demands and diagnostic diagnostic test the completed product.
Some undertakings will begin by having person compose the test lawsuits first, then person will bring forth the user requirements. This is called test-first design and is a very powerful technique for producing exactly the merchandise the users want.
I cognize of one very big successful company that makes not maintain the undertaking demands once the diagnostic tests for the undertaking are written. They see the demands and the diagnostic diagnostic tests to capture the same information, so they throw away the demands once all the tests for the undertaking are written.
So test-first design is an attack to making the demands clear, precise, and testable. Test-first design is a big portion of the XP process, though is can be used with any process.
Of course, this presumes that the users cognize what they want! And that is often portion of the problem. That Pbs to another technique for software system undertakings - iterative development. The whole point of this technique is to work out the job that the users make not cognize what they want.
You will compose some demands for the project, the demands that look to be the best defined. Then make codification for those requirements, show it to the users, and inquire if this is what they wanted. Typically some of it volition be what the users desire and some will not.
You will have got meetings with your users to find what to repair in the current product, and elicit another set of relatively well-defined requirements. Then construct another version of the merchandise and show it to the users again.
Iterative development presumes that some of the demands are not clear, precise, and testable, and that they will not be until the users have got seen the merchandise and interacted with it.
Some iterative development procedures are Rational Incorporate Process, Agile, and XP.
You can utilize techniques such as as critical thinking, test-first design, and iterative development to better the preciseness of your requirements, which will take in bend to software system that rans into the demands of the users. Now it is your turn. How do you make certain your demands are well-defined?
Even if you are not responsible for the diagnostic test lawsuits for the requirements, seek authorship some diagnostic tests for your demands to see if the demands are well-defined.
No comments:
Post a Comment