State machine tutorial work would be here but I drew it all out on paper and, due to time constraints, never got around to Visio-ing them. My ‘workings’ posts are unoptimised and my team report features usage of most or all of the covered concepts.
Traditional SDLCs applicable to structured developments tend to not use UML. Instead, typically used are Data Flow diagrams (DFD) to define actor’s interactions with processes. UML is more flexible and better suited to OOP and DFD has simpler notation conventions.
Despite UML’s wide adoption, there are a few caveats:
- Not very useful in some contexts
- Highly customised, decreasing use+ conformity
- Has some diagram types related to it that are not acknowledged in official UML documentation
- Some missing conventions e.g. multiplicity of actors / use cases and final classifiers
- May be hard to understand, unreadable and complex
- Requires synchronisation as models should reflect the system, which may be changing
- Originally not designed to work well with ‘N-any’ relationships
Adoption of traditional UML use has been decreasing over the last two decades, due to its rigid and ‘exhaustive’ requirements, but is still prevalent in terms of its concepts being widely used and far rooting. Instead of traditional UML, design concepts today are mostly Agile and hybridised. UML still provides the fundamentals of systems modelling – the most used UML diagram is class concept.
Ultimately, choice of diagram convention depends on requirement but, in nearly all software developments that use diagrams, there is use of UML concepts. UML alone is not a development methodology; it is effectively a highly embedded modeling approach that is almost mandatory for object-oriented developments. Practically and pragmatically, UML is the standard way to model effectively in a collaborative context.
UML’s core conventions relate to the way diagrammatic models should be composed in a format capable of correctly reflecting the design of system’s, comprised of related objects acting under other conventions.
Most modeling conventions stem from the core concepts within UML, but that shouldn’t mean that only UML is deemed needed to fulfil a successful project. Other tools, techniques or methodologies are able to be used to provoke or aid use of UML, the core concepts of UML are most effective when used to support design and documentation under suited methodologies and approaches.