Este livro apresenta um processo de modelagem orientada a objetos baseado na segunda versão de UML. Cada etapa é descrita em detalhes e ilustrada com exemplos. O processo parte da especificação de requisitos e vai até a geração do código da aplicação, passando pelo desenvolvimento do projeto em UML, claro, o que envolve a inclusão de aspectos referentes a especificidades tecnológicas. Faz parte do processo a verificação de consistência e de qualidade da modelagem produzida. A abordagem propostautiliza os treze diagramas da segunda versão de UML e foi desenvolvida com a preocupação de explorar ao máximo a expressividade da segunda versão desta linguagem de modelagem. Enfatiza-se como a prática de modelagem pode ajudar a desenvolver um sistema computacional bem estruturado e auxiliar na solução das melhores opções de projeto, algo muito diferente da geração burocrática de diagramas. Trata-se também a modelagem de software baseado em componentes com UML. Isso inclui o desenvolvimento decomponentes, bem como de artefatos de software como composições de componentes. Padrões e frameworks são introduzidos como alternativas de reuso de soluções previamente elaboradas. Recursos sintáticos de UML são usados para destacar a presença de padrões na especificação de projeto.