Sono un novizio di Object-Oriented Designing e ho letto alcuni libri OOD & tutorial di recente. Ora sto pianificando di implementare un lettore video (basato su API multimediali esistenti, AVFoundation o MediaPlayer ecc. per mettere in pratica ciò che ho imparato.
L'idea è che, dato un file video, aprirlo attraverso alcuni media api, e poi alimentare ogni frame in OpenGL per applicare alcune trasformazioni di warping e infine renderlo tramite OpenGL.
Cambiare ogni fotogramma è l'obiettivo principale della scrittura di questo video player, dal momento che posso applicare solo trasformazioni lineari a un livello / superficie di visualizzazione predefinito con l'api esistente (la deformazione è una trasformazione non lineare)
Ma sono bloccato all'inizio, lo scenario dei casi d'uso è relativamente semplice:
- L'utente richiede di aprire un file video
- L'utente riproduce il video
Secondo il libro Applying UML and Patterns
, dovrei estrarre i modelli di dominio dal caso d'uso e quei modelli di dominio ispireranno la progettazione di modelli software (classi). Ma posso vedere solo due modelli di dominio dal caso d'uso VideoPlayer
e VideoFile
. E la loro associazione potrebbe assomigliare a questo:
,-------------. plays ,----------.
| VideoPlayer | ------------> | VideoFile|
'-------------' '----------'
Ma il design attuale di VideoPlayer è molto più complesso per istinto, e non riesco a vedere alcun indizio del precedente lavoro di scrittura di casi d'uso ed estrazione di modelli di dominio.
Penso che il problema più probabile sia che ho scritto il caso d'uso in modo errato: troppo generico. Ma non posso davvero pensare a qualsiasi cosa a grana fine che dovrebbe essere nel caso d'uso e nel frattempo conferma la percentuale di guida Write use cases from the user's perspective
.