Mentre scrivo progetti personali oltre che sul posto di lavoro, spesso faccio fatica a proseguire nell'attuale compito perché o mi blocco su ciò che stavo pensando o non ho pensato a tutti i casi limite che potrebbero sorgere in futuro . Stavo pensando a cosa succederebbe se prima di codificare qualcosa facessi un po 'di brain storming e scrivessi una serie di passaggi come faccio nei problemi dell'algoritmo.
So che è noto come "Casi d'uso", ma penso che riuscirò a seguire davvero da vicino se comincio a leggere tutti i libri su di esso, voglio qualcosa di semplice ma solido per almeno il mio progetto personale. Ho fatto alcuni compiti e mentre scrivevo un semplice progetto di giocattolo, ho pensato di scrivere un caso d'uso che è fondamentalmente il modo in cui l'utente interagirebbe con il sistema.
Ecco qui:
"""
Design a question and answer system which allows
user to see optional hints to each question and
let him assign score to each question answered.
The order of the question next time would depend
on the current scores.
UseCase:
1. User sees a welcome message and avalilable topics
2. User chooses the topic
3. A new session is started for the user
4. User sees a question on the selected topic
4.1 User asks for hint by pressing '/h'
4.2 User sees a hint
4.2.1 User presses '/h', Repeat step 4.2
4.2.2 User presses 'return' GOTO step 5
5. User is prompted to answer the question
6. User answers the question, presses 'return'
7. User sees the answer
8. User is prompted to give a score [1, 3]
7. Repeat steps 4-8 until there are no more questions
8. User sees the summary of questions and scores
9. User is asked if it needs to start another session
9.1 User enters 'Y', Repeat steps 1-9
9.2 User receives a goodbye message
10. End
Requirements:
1. The user can choose topic
2. An user can see all its previous sessions
3. The user can stop and resume a session
4. The system should be designed in such a way that
the order of the questions changes based on the
user's last score for each question
"""
Ho bisogno di sapere se ci sono dettagli irrilevanti / ridondanti che possono essere evitati e se ci sono dettagli che possono essere aggiunti?
Questo approccio corretto alla risoluzione dei problemi in generale?
Ho intenzione di leggere di più sulla progettazione di casi d'uso tramite libri standard sull'argomento, ma penso che sia una buona strategia per imparare qualcosa di nuovo prima di immergerti nei dettagli.