Davvero una buona domanda che affronta il cuore dei problemi UML: è semantica debole. La risposta alla tua domanda è quindi - potrebbe essere giusto, potrebbe essere sbagliato. UML imposta le regole notazionali e definisce solo la semantica degli elementi di base (ad es. "Una precondizione deve essere soddisfatta nell'ordine ...").
Potremmo anche andare oltre con precondizioni come "il sistema operativo dovrebbe essere configurato correttamente" o anche peggio - "il computer ha elettricità" ... Queste discussioni possono facilmente diventare filosofiche. :)
Nella mia esperienza c'è un modo per rendere efficienti i casi d'uso - costruire un altro modello UML, complementare, che sarebbe usato per formulare precondizioni, postcondizioni e persino usare scenari di casi (la stessa domanda che hai fatto per le condizioni preliminari può essere fatto anche per gli scenari - che è una corretta astrazione per uno scenario? O è "accendi il computer?" un passo valido in uno scenario?).
Per ottenere questo utilizzo normalmente utilizzo diagrammi concettuali di classe: modifico il mio dominio e quindi esprimo condizioni e scenari pre/post in termini di questi elementi (classi e relativi attributi) E UTILIZZO SOLO DI QUESTI ELEMENTI. Questo ha molto senso, soprattutto sapendo che le pre/post-condizioni interrogano lo stato del sistema, rispecchiato in modo pulito da oggetti/valori.
Tornando al tuo esempio, se ti chiedi quale sia il presupposto "il software deve essere installato", ti chiedi semplicemente "Ho davvero bisogno di una classe" Software "con un attributo" Installato "?"
Quindi molto probabilmente ti rendi conto che probabilmente non hai bisogno di questa condizione preliminare perché è semplicemente troppo "di basso livello" e fuori dall'ambito del mio dominio. Ora hai solo bisogno di definire il tuo dominio. :) Ecco un semplice esempio di una situazione simile, dimostrando l'idea (tenere presente che utilizzano modelli cassa e di classe sono disegnati diagrammi separate):
Questo metodo non solo rende più facile l'uso specificando casi, ma anche fare un modello di classe complementare che permetta la specificazione del dominio, l'identificazione delle regole di business e una prima astrazione della progettazione del sistema.
Buona fortuna e buon divertimento!
Grazie mille ! Questo risolve il mio problema! Il progetto per la scuola sta scrivendo casi d'uso ma per software già creato. Un po 'rovesciato ... ma è il concetto che dobbiamo capire. Ho scelto per il programma Ccleaner di Piriform. Ho già scritto un caso d'uso ... Il caso in cui l'utente prende l'azione di pulire l'hdd. Grazie per le foto e la spiegazione! fosa – Fosa