Skip to main content

Unit 3

ePortfolio Activities

Assignment

Discuss which UML models are most applicable at different stages of the Software Development Life Cycle.

Making reference to ‘The Unified Modeling Language Reference Manual Second Edition’, use the State Machine Diagram in Figures 3-7 in Chapter 21 to design a similar model for a washing machine.

The Unified Modeling Language (UML) offers a wide range of tools for describing software products at different levels of detail throughout the development lifecycle. The word “unified” in its name reflects this flexibility and broad applicability (Rumbaugh, Jacobson and Booch, 2005).

However, this universal and rich nature of UML tends to be one its main drawbacks in practice. Surveys show that UML isn’t widely adopted in the industry due to factors such as added complexity, difficulties in keeping models up to date, and the need to introduce new concepts or philosophies into existing workflows (Petre, 2013; Júnior, Farias and Silva, 2021).

One way to address these challenges is to selectively use the parts of it that provide value without introducing unnecessary complications. For instance, participants of Petre’s (2013) study reported using UML as a “thought tool” for prototyping ideas or as a means of communication with the different audiences, with the necessary adjustments depending on the context.

Using UML in a more lightweight, flexible way without adhering to the strict rules of component use can still be effective. Some diagrams may be particularly useful in specific stages of development.

For example, a simplified component diagram can help during the solution design by visualizing the system parts and the connections between them. Later, it can also serve as a part of the system documentation. Similarly, a use case diagram might help understand the different endpoints the system should provide.

When it comes to the development stage, the rough class structure can be described using a class diagram. However, as the exact composition and structure of classes in a solution might differ depending on the developers’ preferences and the selected programming language and frameworks, it only makes little sense to implement a class diagram in detail. Instead, a comprehensive class diagram can be generated from the source code after implementation. Integrated development environments such as IntelliJ IDEA offer functionality for this purpose (JetBrains, 2024).

Likewise, activity diagrams can be useful on the early stages of algorithm design to give a high-level overview of logic and flow. However, after the algorithm is implemented, keeping the diagram up to date might prove unnecessarily difficult and time-consuming, especially that a well-composed piece of software provides the same information and does not have any added costs for support.

In summary, while UML as a comprehensive modeling solution hasn’t gained wide traction in the industry due to its complexity, select parts of it might add value at different stages of the software development process.

References

JetBrains (2024) UML class diagrams | IntelliJ IDEA, IntelliJ IDEA Help. Available at: https://www.jetbrains.com/help/idea/class-diagram.html (Accessed: 11 March 2025).

Júnior, E., Farias, K. and Silva, B. (2021) ‘A Survey on the Use of UML in the Brazilian Industry’, in Brazilian Symposium on Software Engineering. SBES ’21: Brazilian Symposium on Software Engineering, Joinville Brazil: ACM, pp. 275–284. Available at: https://doi.org/10.1145/3474624.3474632.

Petre, M. (2013) ‘UML in practice’, in 2013 35th International Conference on Software Engineering (ICSE). 2013 35th International Conference on Software Engineering (ICSE), pp. 722–731. Available at: https://doi.org/10.1109/ICSE.2013.6606618.

Rumbaugh, J., Jacobson, I. and Booch, G. (2005) The unified modeling language reference manual. 2nd ed. Boston: Addison-Wesley (The Addison-Wesley object technology series).