Tuttavia, ho avuto un professore o due che si sono scontrati con l'uso di UML rigoroso e formale, il più vicino possibile alle specifiche.
Chiedi al tuo professore quando è stata l'ultima volta che ha usato questo approccio su un sistema reale. Sul serio.
Cerco di essere il più formale possibile quando si tratta di UML, ma solo se / quando ha senso. Gli zeloti su entrambi i lati dello spettro (dai cowboy ai formalisti tesi) non riescono a capirlo.
Ci sono contesti in cui un approccio meno rigido (come quello che usi personalmente) è l'approccio migliore da seguire. Un buon esempio è per piccoli sistemi o modifiche, in cui i requisiti sono piccoli e non completamente definiti; il gruppo responsabile è efficiente ed efficace; è più importante tirarlo fuori che renderlo perfetto. Viene eseguito in modo iterativo e alcune carenze sono accettabili.
O forse ti trovi in una fase in cui stai facendo guestimation e sketch invece di una fase di modellazione formale completa. Questi sono esempi che verrebbero in mente.
Altre volte, è necessario un rigido approccio UML formale. Ad esempio, potresti essere vincolato contrattualmente; hai un numero molto elevato di sviluppatori in più team (possibilmente distribuito); la portata del progetto potrebbe essere tra anni; è un sistema molto grande (compresi componenti software e hardware); il costo del fallimento è elevato, ecc.
Altre volte , è necessario utilizzare qualcos'altro invece / oltre a UML (modelli formali matematici reali come reti di Petri, CSP o logica temporale). Esempio di questo sono sistemi in tempo reale, sistemi in cui i guasti sono catastrofici (dispositivi medici) o dove sei contrattualmente vincolato (.ie. come in Europa durante lo sviluppo di sistemi di trasporto.)
Tutto dipende dalle circostanze e da cosa ci aspettiamo di ottenere da ciascun approccio. Un professore che si attiene al rispetto della formalità è semplicemente essere un fanatico cieco. Il mondo dell'ingegneria non è una dicotomia nero-n-bianco, giusto / sbagliato. È un mondo di compromessi intelligenti.
Se sei abbastanza intelligente da utilizzare un modello informale e informale in un modo efficace e appropriato per svolgere il lavoro, allora così sia. Allo stesso modo, dovresti riconoscere quando NON usare un approccio informale e / o quando NON usare un approccio formale.
Detto questo, devi giocare a orecchi con i professori. Dai loro un osso in modo che ti dia un voto, e se ciò significa infine inchinarsi al loro mantra zelante, va bene. Sai cosa funziona per te e, si spera, saprai quando usare cosa e come nel mondo reale.