A tarefa de desenvolver aplicações ubíquas nos modelos tradicionais de programação torna-se um desafio pois a maioria desses modelos baseia-se em premissas estáticas de arquitetura, dados, aplicação e sistemas operacionais. Por isso o presente trabalho propõe o \textit{Ubiquitous Oriented Programming} (abreviadamente UOP), um modelo de programação orientado ao desenvolvimento de sistemas ubíquos. O UOP utiliza os conceitos de serviços e da programação orientada a objetos, integrando-os com requisitos necessários em aplicações ubíquas como compartilhamento de informações contextuais, sensibilidade ao contexto, adaptação ao contexto, mobilidade de código e concorrência. O ambiente do UOP é composto por uma linguagem de programação (UbiL), um compilador (UbiC) e por uma máquina virtual (UbiVM) que suporta a execução das aplicações desenvolvidas em UbiL. O modelo foi avaliado de forma experimental, onde uma aplicação foi criada e então simulada através de um cenário de comércio ubíquo. Através desse experimento concluiu-se que o UOP facilitou o desenvolvimento dessa aplicação.