Draw on the right, write (Umple) model code on the left. Analyse models and generate code. This tool stores your data in cookies and on a server. I understand. Click to learn about privacy. Download Donate For help: User manual Ask questions Report issue
// UML state diagram of a course selection // From Lethbridge and Laganiere, McGraw Hill, 2004 // Object Oriented Software Engineering, Practical Software Development Using UML and Java // https://www.site.uottawa.ca/school/research/lloseng/ // Note that it is left as an exercise to add a student requesting to drop the course // This version has nesting class CourseSection { status { Planned { cancel -> Cancelled; openRegistration -> NotEnoughStudents; } Open { cancel -> Cancelled; NotEnoughStudents { requestToRegister -> Open; closeRegistration -> Cancelled; classSizeExceedsMinimum -> EnoughStudents; } EnoughStudents { requestToRegister -> Open; closeRegistration -> Closed; classSizeExceedsMaximum -> Closed; } } Cancelled { } Closed { cancel -> Cancelled; } } }