Modeling the behavior of a system under development has proven to be a very effective way to ensure that it will be constructed correctly. However, building up this model is a difficult task that requires a significant time investment in and a high level of expertise. Consequently, incremental approaches that construct a system model from partial behavioral descriptions have been widely adopted. The challenge in such approaches lies in finding both the adequate behavioral formalism that fits the needs of the analyst as well as a formal composition mechanism that facilitates the generation of the expected behavioral model and produces a verifiable model. Within this framework, use case approaches have been also accepted in industry because they make the process of requirement elicitation simpler. Their main shortcoming is their lack of formalization, which makes validation difficult. In this paper, we propose a formal approach for composing system behaviors where partial system behaviors are defined as finite state automata. Each automaton represents a use case that describes a certain system concern, hence the name use case automata (UCA). The composition of different UCAs could be performed with respect to a set of states or transitions specified by the analyst, using certain composition operators. Each of these operators has a precise semantics, which is defined by how the composition is performed. The formalization of use case composition is based on label matching between the UCAs to be composed. Our approach is fully automated and provides the advantage of generating a UCA that meets the intended behavior without unexpected scenarios. Finally, we present the UMACT tool, which implements our composition approach.