To explore this topic meaningfully, we must first grasp two foundational concepts. First, we need to separate an application from a system. A system contains and is composed of one or several applications. A system is a larger, more encompassing entity. Second, we need to understand what we mean by “state” in a software application....