Scrittura di una specifica dei requisiti software

15

Ho alcune domande sulla scrittura di una specifica e sono:

  1. Quando scriviamo una specifica software, sotto l'argomento "Definizione dei requisiti utente", dobbiamo specificare solo "Funzioni" e "Vincoli"?

  2. "Interfaccia utente" rientra in "funzioni" o "vincoli"?

  3. Quali sono le principali aree chiave (requisiti) in cui è possibile suddividere un software (ad es. UI)?

posta Mafahir Fairoze 08.11.2010 - 18:51
fonte

4 risposte

16

Sebbene non sia un grande fan nel raccogliere in anticipo i requisiti tutti (poiché sono soggetti a così tanti cambiamenti nel corso di un progetto non banale), se si stanno scrivendo i documenti dei requisiti , il modello delle specifiche dei requisiti Volere è un'ottima guida.

Sebbene possa essere eccessivo per alcuni progetti, fornisce una lista di controllo su cose a cui pensare, anche se è solo per controllare mentalmente l'elenco che non è necessario quell'elemento per questo requisito.

Ecco un link per ulteriori informazioni sul modello:

link

Il modello stesso (e il libro Padroneggiare il processo dei requisiti - che in realtà è leggermente meno costoso del modello e contiene il testo completo del modello) contiene molte informazioni, esempi e consigli all'interno delle varie sezioni su cosa dovrebbe andare in ogni sezione.

Ecco un riassunto delle sezioni in esso contenute (citato dal link precedente):

  1. The Purpose of the Project

  2. The Stakeholders

  3. Mandated Constraints

  4. Naming Conventions and Definitions

  5. Relevant Facts and Assumptions

  6. The Scope of the Work

  7. Business Data Model and Data Dictionary

  8. The Scope of the Product

  9. Functional and Data Requirements

  10. Look and Feel Requirements

  11. Usability and Humanity Requirements

  12. Performance Requirements

  13. Operational and Environmental Requirements

  14. Maintainability and Support Requirements

  15. Security Requirements

  16. Cultural and Political Requirements

  17. Legal Requirements

  18. Open Issues

  19. Off-the-Shelf Solutions

  20. New Problems

  21. Tasks

  22. Migration to the New Product

  23. Risks

  24. Costs

  25. User Documentation and Training

  26. Waiting Room

  27. Ideas for Solutions

    
risposta data 08.11.2010 - 19:56
fonte
10

Raccomando di leggere Joel sul software. Non sono sicuro che risponda alle tue domande specifiche, ma ha una eccellente panoramica di cosa significa scrivere le specifiche funzionali :

The most important function of a spec is to design the program. Even if you are working on code all by yourself, and you write a spec solely for your own benefit, the act of writing the spec — describing how the program works in minute detail — will force you to actually design the program...

...when you design your product in a human language, it only takes a few minutes to try thinking about several possibilities, revising, and improving your design. Nobody feels bad when they delete a paragraph in a word processor. But when you design your product in a programming language, it takes weeks to do iterative designs. What’s worse, a programmer who’s just spend 2 weeks writing some code is going to be quite attached to that code, no matter how wrong it is...

...When you write a spec, you only have to communicate how the program is supposed to work once. Everybody on the team can just read the spec. The QA people read it so that they know how the program is supposed to work and they know what to test for. The marketing people use it to write their vague vaporware white papers to throw up on the web site about products that haven’t been created yet. The business development people misread it to spin weird fantasies about how the product will cure baldness and warts and stuff, but it gets investors, so that’s OK. The developers read it so that they know what code to write. The customers read it to make sure the developers are building a product that they would want to pay for. The technical writers read it and write a nice manual...

When you don’t have a spec, all this communication still happens, because it has to, but it happens ad hoc. The QA people fool around with the program willy-nilly, and when something looks odd, they go and interrupt the programmers yet again to ask them another stupid question about how the thing is supposed to work...

without a detailed spec, it’s impossible to make a schedule... In too many programming organizations, every time there’s a design debate, nobody ever manages to make a decision, usually for political reasons. So the programmers only work on uncontroversial stuff. As time goes on, all the hard decisions are pushed to the end... Writing a spec is a great way to nail down all those irritating design decisions, large and small, that get covered up if you don’t have a spec...

    
risposta data 08.11.2010 - 18:57
fonte
6

When we write a software specification, under the topic "User requirements definition" we have to specify the "Functions" and "Constraints" only ?

Un requisito è una combinazione di due cose ...

  1. Cosa fa la cosa. Requisito funzionale.
  2. Quanto bene lo fa. Requisito non funzionale o "Vincolo"

Does "User Interface" fall into "functions" or "constraints" ?

Direi che "Interfaccia utente" sarebbe una categoria di requisiti che hai identificato nella tua ultima domanda.

What are the major key areas (requirements) a software can be broken into (e.g. UI ) ?

Dipende dal software. È possibile raggruppare i requisiti in base a parti del sistema o raggrupparli in base al caso d'uso o ai requisiti aziendali che le funzioni stanno rispettando.

Ovviamente tutto questo è secondario rispetto al tuo obiettivo reale che è quello di determinare una descrizione chiara, non ambigua e testabile del sistema software.

    
risposta data 09.11.2010 - 03:59
fonte
4

Il requisito principale per un requisito è che sia verificabile. Se non riesci a capire come testare un requisito, le probabilità sono che non sarà implementato come previsto dallo scrittore.

Non ho mai visto un documento di requisiti limitato a funzioni e vincoli solo, ma posso vedere un certo valore nell'avere una struttura come questa - costringe lo scrittore a categorizzare i requisiti in "cose che il software deve fare", e "regole che il software deve seguire".

Penso che un'interfaccia utente abbia requisiti in entrambe le categorie

Vincoli:

  • "la schermata di avvio visualizza due pulsanti:" Start "e" Stop "
  • "Il carattere del display non deve essere inferiore a 10 punti."

Funzioni:

  • "Quando viene premuto il tasto Start , il software deve stabilire una connessione TCP / IP a WOPR "
risposta data 09.11.2010 - 01:47
fonte

Leggi altre domande sui tag