<p>Object-oriented development identifies classes and relationships in the problem domain and carries them seamlessly into design and implementation. Entity-life modeling extends this modeling idea into the time domain. ELM identifies sequences of event occurrences in the problem space called event threads, which form the basis for threads in software. ELM offers two modeling techniques. The basic technique mechanically finds event threads in the problem, while the pattern technique deals with concurrency patterns in the problem, such as users contending for resources. Such patterns are modeled by means of threads and synchronized objects in software. ELM supports the notion of a concurrency level, which indicates the number of threads that is, in a certain sense, optimal for a given problem.</p>