This document discusses the design of an ATM simulator software project. It outlines the iterative development process, including initial requirements gathering, use case modeling, class modeling, and state diagram design. The first iteration focuses on a basic ATM engine and console user interface that supports withdrawal and balance inquiry transactions. Subsequent iterations will enhance functionality and implement a graphical user interface.