Há alguns anos não se fala mais em análise essencial ou estruturada, a não ser para manutenção de sistemas legados. Com o passar dos anos, entendeu-se que a orientação a objetos não era um modismo e sim o paradigma necessário para se acompanhar demandas modernas. Em meados da década de 90, Booch, Rumbaugh e Jacobson decidiram unificar seus métodos - os principais do mercado na época. Surgia a UML (Unified Modeling Language), uma linguagem de modelagem unificada, que em sua versão 1.1 trazia uma proposta inovadora de oferecer várias ferramentas, com as quais fosse possível construir sistemas de qualquer porte, adaptando-as a cada tipo de projeto. Ferramentas ofertadas sem que houvesse um processo único engessando o desenvolvimento. Cada equipe seria livre para associar a UML ao processo que melhor fosse compatível com sua empresa. Assim, a UML solidificou-se como uma linguagem independente de processo, utilizada para especificação, visualização, construção e documentação de artefatos de sistemas de software. Novas versões da UML trouxeram pequenas ou grandes melhorias, como a adoção de novos diagramas (as ferramentas da linguagem). Chegamos à versão 2.2, com quatorze diagramas, contra os nove da primeira versão (1.1) adotada pela OMG. Contudo, apesar do sucesso e de todos os benefícios da UML, há quem ainda tenha insegurança nessa mudança de paradigma. Da mesma forma, a passagem de um modelo construído em UML para uma linguagem de programação tem sido motivo de dúvidas para quem está iniciando seus estudos. Assim, este livro busca apresentar não só os conceitos da UML, como o mapeamento de seus modelos para linguagens de programação, com um enfoque acadêmico, possibilitando seu acompanhamento por meio de uma linguagem leve e direta, além dos vários exemplos desenvolvidos. Esta nova edição aborda: - os principais conceitos de orientação a objetos; - a estrutura da UML, por meio de seus elementos, relacionamentos e diagramas. Ao final de cada capítulo são apresentados exercícios com soluções (algumas comentadas); - a transformação de modelos criados em UML em códigos escritos nas duas principais linguagens OO do mercado: Java e Delphi; - diferenças entre as principais versões da UML (1.4, 2.0 e 2.2); - questões de concursos públicos. O livro é recomendado para analistas, gerentes e programadores que desejem iniciar ou aperfeiçoar seus conhecimentos em modelagem orientada a objetos, ou ainda pode ser utilizado como material de apoio para cursos de graduação, pós-graduação, extensão ou preparatório para concursos públicos.