UML is a language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. UML supports the typical software modeling problems. However, due to the diversity of software development domains, there may be occasions when the model will require elements or notations not provided by standard UML. This project proposes the definition of new UML profiles. Among different types of applications that these new UML profiles will support, are those based on agent technology and aspectoriented software development.