Challenge: We do want to manage Status of model efficiently. Statuses will automatically changed whenever the data of model changed. However, we do want to define the condition for every status and the event allows statuses changed.
Have you ever heard "Software Architecture"? So what is this? Software Architecture is simply Architecture of Software. There are many things in a software. Architects need to examine what is the importance and balance all of those things.