Use Case and User Interface Patterns for Data Oriented Applications António Miguel Rosado da Cruz Escola Superior de Tecnologia e Gestão, Instituto Politécnico de Viana do Castelo, Av. do Atlântico, s/n, Viana do Castelo, Portugal miguel.cruz@estg.ipvc.pt Abstract. Use case driven software development starts, in general, with abstract problem domain descriptions of how the users see themselves using the system being developed, and involves a series of iterative refinement steps that incrementally add detail to the use case model, bringing those descriptions to the solution domain. Use cases involve interactions between human actors and the system state. These interactions are held within interaction spaces, which are modeled through a user interface model. Business applications are in general data-driven, comprising a set of typicall functions that the users can make on the system. When a use case driven approach is used to develop data- oriented applications those typical functions pop-up as use case patterns, and their interactions occur within a set of user interface patterns. This paper presents a set of use case patterns and the corresponding user interface patterns typically found in data-oriented business applications. For that, a user interface metamodel and corresponding concrete user interface modeling language are also proposed. Keywords. Use Case Model, Use Case Patterns, Interaction Modeling, User In- terface Model, User Interface Patterns, Model-driven development. 1 Introduction Use cases are present in most software projects, and evolve iteratively since the first analysis activities until the activities of design and coding. Use case driven software development encourages software engineers to follow an approach that is guided by the system functionality. This approach, typically starts with high-level problem do- main descriptions of how the users see themselves using the system being developed, and involves a series of iterative refinement steps that incrementally detail the use case model, bringing those descriptions to the solution domain [1]. These refinement steps comprise the simultaneous development of a domain model, which models the domain entities and the structural relations between them [2], and the model of the system state on which the system functionality will act upon. Such a process produces