Este livro contém um guia prático para o desenvolvimento de sistemas de software orientados a objetos. O autor apresenta em uma linguagem simples os fundamentos da orientação a objetos. Fornece também uma descrição da utilização da UML em um processo de desenvolvimento incremental e iterativo. Os exercícios propostos ao final dos capítulos são importantes para o leitor fixar o conhecimento adquirido através da leitura do livro. Além disso, o material complementar disponível na Internet (no site da Editora) serve como uma fonte de estudo adicional e como fonte de referência para aprofundamento nos assuntos abordados. O livro aborda os seguintes tópicos, dentre outros: Desenvolvimento dirigido a casos de uso; Descrição da notação e semântica utilizadas nos diagramas da UML; Modelagem e utilização de regras do negócio durante o desenvolvimento; Identificação de classes dirigida a responsabilidades; Cartões CRC (classes-responsabilidades-colaboradores); Desenvolvimento baseado em componentes; Estratégias de persistência de objetos em um SGBD relacional; Aspectos de implementação de um modelo de objetos; Introdução aos padrões de análise e de projeto (design patterns). Este livro é destinado a estudantes de graduação e pós-graduação em computação ou em engenharia de software que estejam cursando uma disciplina introdutória de análise e projeto orientados a objetos. Ele pode ser também utilizado como guia por estudantes no desenvolvimento de seus projetos finais de curso. Profissionais que desenvolvem sistemas segundo outros paradigmas (que não o orientado a objetos) também podem encontrar neste livro uma boa iniciação aos conceitos da orientação a objetos e da sua aplicação à modelagem de sistemas de software. Em todos os casos, o livro pode servir como uma fonte de referência e de dicas práticas sobre a aplicação da UML e de outras técnicas no desenvolvimento de um sistema de software orientado a objetos. O conhecimento de alguma linguagem de programação orientada a objetos (e.g., Java, C#, C++ etc.) é desejável (mas não obrigatório) para o bom entendimento dos assuntos tratados neste livro. Mais especificamente, este livro fornece diversos exemplos de trechos de código fonte em linguagem Java. Entretanto, esses exemplos devem ser facilmente entendidos por profissionais familiarizados com outras linguagens orientadas a objetos.