(For more backstory/explanation, see my previous question.)I'm a middle school student working on a very, very informal project; my problem statement is as follows:There is no way for theoreticians, researchers, and students in the field of quantum computing to simulate and test complex, large quantum circuits in an intuitive, efficient way without creating the code for the application themselves. A web application that works in popular browsers with an simple interface that could accurately produce results on the outcomes of quantum algorithms, error correction codes, entanglement, decoherence, and the other aspects of both an ideal and realistic interface would allow professionals and students alike to test their ideas and get a better understanding of the field of quantum computing.So, as I am working through the book Code Complete, the next step was to list requirements. As I've never done this before and it is such an informal project, I am unsure if the requirements list I came up with is any good, or if there are improvements that should be made to it. So here's the list:Takes in as input starting state of the qubits, each gate to be applied to which qubit, how many qubits should be used, and what implementation of quantum computing they'd like to test in (for decoherence time estimates).Outputs should be current state of every qubit and probability of |0> and |1> state for every qubit.Outputs should be given on the website and downloadable along with inputs in a text file. State of qubits should be a vector, probability should be a number from 0 to 1, gates should be one of several commonly used gates or the custom gate option.Inputs for gates should be one of several buttons (pressed).Inputs for state and number of qubits should be integer input.Once user inputs data and presses the button to compute, it should not take very long to produce the answer (e.g., one minute max for 5 qubit calculations is one benchmark).Should be a website interface, with input blanks based on previous user input, i.e., create an account to save your simulations (takes in email and password), then a tab to look at previous text files from simulations and a tab to create a new simulation. Then, the user would input the number of qubits and starting state of qubits, click next and it will have you list gates for 1st qubit, click done, 2nd qubit, etc. If the option inputted is custom gate, a blank pops up where you can fill in the necessary data for the gate. When done, it transitions to a calculating style screen, and then gives the result and text file to download, with an option to save and an option to start over (last option available throughout).The safety of the user's email, password, and text files must be high, as there could be important/confidential research-related information stored there.Place on site to report bugs and request improvements.Has common quantum gates available and a custom gate option.Simulates decoherence, entanglement, and other common features of quantum computing.Allows choice between ideal (no decoherence) and non-ideal (decoherence) quantum computer.Generalizable to large numbers of qubits (runs as efficiently as possible). Documentation on-site for users.Accurate results (basic cases, at minimum, checked against accepted results.Option to make text files public/private and a location to access public simulations?
One-person, informal project - creating good requirements
design;requirements;software;code complete
Takes in as input starting state of the qubits, each gate to be applied to which qubit, how many qubits should be used, and what implementation of quantum computing they'd like to test in (for decoherence time estimates).Outputs should be current state of every qubit and probability of |0> and |1> state for every qubit.Outputs should be given on the website and downloadable along with inputs in a text file. The ones above seem reasonable and testableState of qubits should be a vector, probability should be a number from 0 to 1, gates should be one of several commonly used gates or the custom gate option.Huh? How does this allow me to tell if a bad kind of gate was used?  List or cite your definition of commonly used gates.Inputs for gates should be one of several buttons (pressed).So, gate input can only ever be buttons? One of which buttons?Inputs for state and number of qubits should be integer input.You remembered that -1 is an integer right?Once user inputs data and presses the button to compute, it should not take very long to produce the answer (e.g., one minute max for 5 qubit calculations is one benchmark).Sounds like this was meant to be a performance requirement but it's turned into a requirement to have a performance requirement.  If you want 5 qubits calculations to take 1 minute then just say that.Should be a website interface, with input blanks based on previous user input, i.e., create an account to save your simulations (takes in email and password), then a tab to look at previous text files from simulations and a tab to create a new simulation. Then, the user would input the number of qubits and starting state of qubits, click next and it will have you list gates for 1st qubit, click done, 2nd qubit, etc. If the option inputted is custom gate, a blank pops up where you can fill in the necessary data for the gate. When done, it transitions to a calculating style screen, and then gives the result and text file to download, with an option to save and an option to start over (last option available throughout).This is a use case not a requirement.  The safety of the user's email, password, and text files must be high, as there could be important/confidential research-related information stored there.High? Please define high.Place on site to report bugs and request improvements.Does this just mean it's deployed so people can use it?Has common quantum gates available and a custom gate option.Again, define common quantum gates.Simulates decoherence, entanglement, and other common features of quantum computing.Here we need objective examples of what this can do when these features are working.Allows choice between ideal (no decoherence) and non-ideal (decoherence) quantum computer.This is fineGeneralizable to large numbers of qubits (runs as efficiently as possible). What is large? Everything runs as efficiently as possible until something better comes along.  This is an attempt at a performance requirement that in the end doesn't demand anything.Documentation on-site for users.A popup that says ask a friend fulfills this requirement. Accurate results (basic cases, at minimum, checked against accepted results.This would work if the cases and accepted results were included or cited.Option to make text files public/private and a location to access public simulations?This seems to be two requirements smushed into one.Requirements are not a wish list. They are not a set of value statements.  They should not be fuzzy.  Each should clearly define when a feature is completed or not.