Dominio del problema
- I requisiti funzionali definiscono cosa fa un sistema.
- I requisiti non funzionali definiscono gli attributi di qualità di ciò che il sistema fa nel suo insieme. (prestazioni, sicurezza, affidabilità, volume, facilità d'uso, ecc.)
- I vincoli limitano lo spazio di progettazione, limitano i progettisti a determinati tipi di soluzioni.
Dominio della soluzione
- Progetta idee, definisce come lo fa il sistema
Ad esempio di un interesse delle parti interessate potrebbe essere il nostro obiettivo di aumentare le vendite, pertanto è necessario migliorare l'usabilità del nostro negozio online in modo tale che un maggior numero di clienti possa acquistare. (dominio problema)
Il design lo porta ulteriormente nel dominio della soluzione dicendo "quindi vogliamo offrire pagamenti con carta di credito in aggiunta all'opzione di pagamento anticipato".
Il mio problema è che la fase di transizione dall'obbligo alla progettazione sembra davvero vaga, quindi quando scrivo una specifica dei requisiti del software spesso mi confondo se ho incorporato o meno idee di progettazione nelle mie esigenze, che renderebbero errato il mio requisito .
Un altro problema è che spesso scrivo i requisiti funzionali come ciò che fa un sistema, e poi specificherò anche in quale arco di tempo deve essere fatto. Ma è corretto? È quindi un requisito ancora funzionale o non funzionale? È meglio separarlo in due requisiti distinti?
Ecco alcuni requisiti che ho scritto:
FR1 Registration of Organizer
FR1 describes the registration of an Organizer on CrowdFundum
- FR1.1 The system shall display a registration form on the website.
- FR1.2 The system shall require a Name, Username, Document number passport/ID card, Address, Zip code, City, Email address, Telephone number, Bank account, Captcha code on the registration form when a user registers.
- FR1.4 The system shall display an error message containing: “Registration could not be completed” to the subscriber within 1 seconds after the system check of the registration form was unsuccessful.
- FR1.5 The system shall send a verification email containing a verification link to the subscriber within 30 seconds after the system check of the registration form was successful.
- FR1.6 The system shall add the newly registered Organizer to the user base within 5 seconds after the verification link was accessed.
FR2 Organizer submits a Project
FR2 describes the submission of a Project by an Organizer on CrowdFundum
- FR2 The system shall display a submit Project form to the Organizer accounts on the website.< - FR2.3 The system shall check for completeness the Name of the Project, 1-3 Photo’s, Keywords of the Project, Punch line, Minimum and maximum amount of people, Funding threshold, One or more reward tiers, Schedule of when what will be organized, Budget plan, 300-800 Words of additional information about the Project, Contact details within 1 secondin after an Organizer submits the submit Project form. - FR2.8 The system shall add to the homepage in the new Projects category the Project link within 30 seconds after the system made a Project webpage
- FR2.9 The system shall include in the Project link for the homepage : Name of the Project, 1 Photo, Punch line within 30 seconds after the system made a Project webpage.
Domande:
FR 1.1 : ho incorporato qui un'idea di design, "il sistema deve avere un modulo di registrazione" essere un requisito funzionale migliore?
F1.2, 2.3 : non è singolare? Sarebbe meglio scrivere le condizioni per ciascuno dei propri requisiti separati
FR 1.4 : è un'idea progettuale? Si tratta di un requisito funzionale corretto o ho incorporato non funzionale (prestazioni) in esso? Sarebbe meglio se lo scrivessi in questo modo:
FR1 Il sistema mostrerà un messaggio di errore quando il controllo non ha esito positivo.
NFR: Il sistema risponderà ai controlli del modulo di registrazione non riusciti entro 1 secondi. Stessa domanda con FR 2.8 e 2.9.
FR2.3: Il sistema deve verificare la "completezza", qui la completezza è usata ambiguamente? Devo riformularlo?
FR1.2: Ho aggiunto che il sistema richiede un "codice Captcha": si tratta di un requisito funzionale o appartiene all'aspetto "sicurezza" di un non funzionale requisito.
Sto aspettando con impazienza la tua risposta. Grazie!