However, I've had a professor or two
that harped on the use of strict,
formal UML, as close to the spec as
possible.
Chiedi al tuo professore quando è stata l'ultima volta che ha usato quell'approccio su un sistema reale. Scherzi a parte.
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 cowboys ai formalisti stremati) non riescono a capirlo.
Esistono 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, dove i requisiti sono piccoli e non completamente definiti; il gruppo responsabile è efficiente ed efficace; è più importante tirarlo fuori che farlo diventare perfetto. È fatto in modo iterativo e alcune deficienze sono accettabili.
O forse ti trovi in una fase in cui stai facendo guestimation e sketch in contrapposizione a una fase di modellazione formale completa. Questi sono esempi che verrebbero in mente.
In altri casi, è necessario un approccio UML formale rigido. Ad esempio, potresti essere vincolato contrattualmente; si dispone di un numero molto elevato di sviluppatori in più team (eventualmente distribuiti); la portata del progetto potrebbe essere in anni; è un sistema molto grande (inclusi componenti software e hardware); il costo del fallimento è alto, ecc.
Altre volte , devi usare qualcos'altro invece / oltre a UML (veri modelli matematici formali come reti di Petri, CSP o logica temporale). Esempio di questo sono i sistemi in tempo reale, sistemi in cui i guasti sono catastrofici (dispositivi medici) o in cui si è vincolati contrattualmente (come in Europa nello sviluppo di sistemi di trasporto).
Tutto dipende dalle circostanze e da ciò che ci aspettiamo di ottenere da ciascun approccio. Un professore che cerca di attenersi alla formalità è semplicemente essere un cieco zelante. Il mondo dell'ingegneria non è una dicotomia black-n-white, giusto / sbagliato. È un mondo di compromessi intelligenti.
Se sei abbastanza intelligente da usare un modello casuale e informale in modo efficace e appropriato per svolgere il lavoro, allora così sia. Per lo stesso motivo, ci si aspetta che tu riconosca quando NON utilizzare un approccio informale e / o quando NON per usarne uno formale.
Detto questo, devi giocare con le orecchie con i professori. Dai loro un osso in modo che ti diano un voto, e se questo significa finalmente inchinarsi al loro mantra di zeloti, va bene. Sai cosa funziona per te e, si spera, saprai quando usare cosa e come nel mondo reale.