UML 2 - Uma Abordagem Prática - 3ª Edição
Descrição do livro
A UML – Unified Modeling Language ou Linguagem de Modelagem Unificada – é uma linguagem utilizada para modelar softwares baseados no paradigma de orientação a objetos, aplicada principalmente durante as fases de análise de requisitos e projeto de software. Essa linguagem consagrou-se como a linguagem-padrão de modelagem adotada internacionalmente pela indústria de Engenharia de Software, havendo um amplo mercado para profissionais que a dominem.
Este livro procura ensinar ao leitor, por meio de exemplos práticos, como modelar softwares por meio da UML. A linguagem é ensinada mediante a apresentação de seus muitos diagramas, detalhando o propósito e a aplicação de cada um deles, bem como os elementos que os compõem, suas funções e como podem ser aplicados. A obra enfatiza ainda a importância da UML para a Engenharia de Software, além de abordar o paradigma de orientação a objetos, um conceito imprescindível para a compreensão correta da linguagem. Além disso, o livro demonstra também como mapear classes em tabelas de banco de dados relacionais, enfocando a questão de persistência.
A obra contém diversos estudos de caso modelados como exemplos ao longo dos capítulos, além de um estudo de caso maior no final do livro, em que um sistema é analisado e modelado, com a ilustração completa de todos os diagramas referentes ao software. O livro apresenta também vários exercícios para avaliar e consolidar os conhecimentos adquiridos pelo leitor, com as respectivas soluções ao final do capítulo onde foram propostos.
A obra pode ser utilizada tanto por professores e alunos universitários de cursos da área de Computação quanto por profissionais da área de Engenharia e Desenvolvimento de Software.
Ver menos ▲Sumário
Sumário
- Sobre o autor
- Prefácio
- Capítulo 1 ■ Introdução à UML
- 1.1 Breve Histórico da UML
- 1.2 Por que Modelar Software?
- 1.2.1 Modelo de Software – Uma Definição
- 1.2.2 Elicitação e Análise de Requisitos
- 1.2.3 Prototipação
- 1.2.4 Prazos e Custos
- 1.2.5 Projeto
- 1.2.6 Manutenção
- 1.2.7 Documentação Histórica
- 1.3 Por que Tantos Diagramas?
- 1.4 Rápido Resumo dos Diagramas da UML
- 1.4.1 Diagrama de Casos de Uso
- 1.4.2 Diagrama de Classes
- 1.4.3 Diagrama de Objetos
- 1.4.4 Diagrama de Pacotes
- 1.4.5 Diagrama de Sequência
- 1.4.6 Diagrama de Comunicação
- 1.4.7 Diagrama de Máquina de Estados
- 1.4.8 Diagrama de Atividade
- 1.4.9 Diagrama de Visão Geral de Interação
- 1.4.10 Diagrama de Componentes
- 1.4.11 Diagrama de Implantação
- 1.4.12 Diagrama de Estrutura Composta
- 1.4.13 Diagrama de Tempo ou de Temporização
- 1.4.14 Diagrama de Perfil
- 1.4.15 Síntese Geral dos Diagramas
- 1.5 Ferramentas CASE Baseadas na Linguagem UML
- Capítulo 2 ■ Orientação a Objetos
- 2.1 Classificação, Abstração e Instanciação
- 2.2 Classes de Objetos
- 2.3 Atributos ou Propriedades
- 2.4 Operações, Métodos ou Comportamentos
- 2.5 Visibilidade
- 2.6 Herança
- 2.6.1 Herança Múltipla
- 2.7 Polimorfismo
- Capítulo 3 ■ Diagrama de Casos de Uso
- 3.1 Atores
- 3.2 Como Identificar os Atores?
- 3.3 Casos de Uso
- 3.4 Documentação de Casos de Uso
- 3.5 Como Identificar os Casos de Uso?
- 3.6 Associações
- 3.7 Generalização/Especialização
- 3.8 Inclusão
- 3.9 Extensão
- 3.10 Restrições em Associações de Extensão
- 3.11 Pontos de Extensão
- 3.12 Multiplicidade no Diagrama de Casos de Uso
- 3.13 Estereótipos
- 3.14 Fronteira de Sistema
- 3.15 Exemplo de Diagrama de Casos de Uso – Sistema de Controle Bancário
- 3.16 Documentação do Diagrama de Casos de Uso do Sistema de Controle Bancário
- 3.16.1 Atores que Interagem com o Sistema
- 3.16.2 Documentação do Caso de Uso Abrir Conta Especial
- 3.16.3 Documentação do Caso de Uso Abrir Conta Poupança
- 3.16.4 Documentação do Caso de Uso Gerenciar Clientes
- 3.16.5 Documentação do Caso de Uso Realizar Depósito
- 3.16.6 Documentação do Caso de Uso Emitir Saldo
- 3.16.7 Documentação do Caso de Uso Emitir Extrato
- 3.16.8 Documentação do Caso de Uso Realizar Saque
- 3.16.9 Documentação do Caso de Uso Registrar Movimento
- 3.17 Exemplo de Diagrama de Casos de Uso – Sistema de Telefone Celular
- 3.17.1 Documentação do Caso de Uso Realizar Ligação
- 3.18 Exemplo de Diagrama de Casos de Uso – Sistema de Biblioteca
- 3.18.1 Documentação do Caso de Uso Locar Exemplares
- 3.19 Exemplo de Diagrama de Casos de Uso – Sistema de Clínica Veterinária
- 3.19.1 Documentação do Caso de Uso Atender à Consulta
- 3.20 Exemplo de Diagrama de Casos de Uso – Sistema de Controle de Advocacia
- 3.20.1 Documentação do Caso de Uso Gerenciar Processos
- 3.21 Exercícios Propostos
- 3.21.1 Sistema de Controle de Cinema
- 3.21.2 Sistema de Controle de Clube Social
- 3.21.3 Sistema de Locação de Veículos
- 3.21.4 Sistema para Controle de Leilão Via Internet
- 3.21.5 Sistema de Controle de Hotelaria
- 3.21.6 Sistema de Controle de Imobiliária
- 3.22 Resolução dos Exercícios
- 3.22.1 Resolução do Exercício Sistema de Controle de Cinema
- 3.22.2 Resolução do Exercício Sistema de Controle de Clube Social
- 3.22.3 Resolução do Exercício Sistema de Locação de Veículos
- 3.22.4 Resolução do Exercício Sistema para Controle de Leilão Via Internet
- 3.22.5 Resolução do Exercício Sistema de Controle de Hotelaria
- 3.22.6 Resolução do Exercício Sistema de Controle de Imobiliária
- Capítulo 4 ■ Diagrama de Classes
- 4.1 Atributos e Métodos
- 4.2 Relacionamentos ou Associações
- 4.2.1 Associação Unária ou Reflexiva
- 4.2.2 Associação Binária
- 4.2.3 Associação Ternária ou N-ária
- 4.2.4 Agregação
- 4.2.5 Composição
- 4.2.6 Generalização/Especialização
- 4.2.7 Classe Associativa
- 4.2.8 Associação Qualificada
- 4.2.9 Dependência
- 4.2.10 Realização
- 4.3 Portas
- 4.4 Interfaces
- 4.4.1 Interfaces Fornecidas
- 4.4.2 .Interfaces Requeridas
- 4.5 Restrições
- 4.5.1 .Restrições em OCL (Object Constraint Language)
- 4.6 Estereótipos do Diagrama de Classes
- 4.6.1 Estereótipo <<enumeration>>
- 4.6.2 Estereótipos para Projeto Navegacional
- 4.6.3 Estereótipo <<boundary>>
- 4.6.4 Estereótipo <<control>>
- 4.6.5 Estereótipo <<entity>>
- 4.7 Exemplo de Diagrama de Classes (Modelo Conceitual) – Sistema de Controle Bancário
- 4.8 Como Identificar Classes
- 4.9 Exemplo de Modelo de Domínio
- 4.10 Exemplo de Diagrama de Classes – Sistema de Telefone Celular
- 4.11 Exemplo de Diagrama de Classes – Sistema de Biblioteca
- 4.12 Exemplo de Diagrama de Classes – Sistema de Clínica Veterinária
- 4.13 Exemplo de Diagrama de Classes – Sistema de Controle de Advocacia
- 4.14 Persistência
- 4.15 Mapeamento de Classes em Tabelas
- 4.15.1 Estereótipo Table
- 4.15.2 Associações e Chaves Estrangeiras
- 4.16 Padrão Repository
- 4.17 Padrão DAO (Data Access Object)
- 4.18 Exercícios Propostos
- 4.18.1 Sistema de Controle de Cinema
- 4.18.2 Sistema de Controle de Clube Social
- 4.18.3 Sistema de Locação de Veículos
- 4.18.4 Sistema para Controle de Leilão Via Internet
- 4.18.5 Sistema de Controle de Hotelaria
- 4.18.6 Sistema de Controle de Imobiliária
- 4.19 Solução dos Exercícios
- 4.19.1 Sistema de Controle de Cinema
- 4.19.2 Sistema de Controle de Clube Social
- 4.19.3 Sistema de Locação de Veículos
- 4.19.4 Sistema para Controle de Leilão Via Internet
- 4.19.5 Sistema de Controle de Hotelaria
- 4.19.6 Sistema de Controle de Imobiliária
- Capítulo 5 ■ Diagrama de Objetos
- 5.1 Objeto
- 5.2 Vínculos
- 5.3 Dependência com Estereótipo <<instanceOf>>
- 5.4 Exemplo de Diagrama de Objetos
- Capítulo 6 ■ Diagrama de Pacotes
- 6.1 Pacotes
- 6.2 Dependência
- 6.3 Pacotes Contendo Pacotes
- 6.4 Estereótipos Aplicados a Pacotes
- 6.5 Representação de Camadas do Modelo por Meio de Pacotes
- Capítulo 7 ■ Diagrama de Sequência
- 7.1 Atores
- 7.2 Lifelines
- 7.3 Mensagens ou Estímulos
- 7.3.1 Mensagens entre Atores
- 7.3.2 Mensagens entre Lifelines
- 7.3.3 Mensagens de Retorno
- 7.3.4 Mensagens Construtoras
- 7.3.5 Mensagens Destrutoras
- 7.3.6 Autochamadas ou Autodelegações
- 7.3.7 Mensagens Assíncronas
- 7.3.8 Restrição de Duração
- 7.3.9 Mensagens Perdidas e Mensagens Encontradas
- 7.4 Portas
- 7.5 Fragmentos de Interação
- 7.6 Usos de Interação (Ocorrências de Interação antes da UML 2.1.1)
- 7.7 Portões (Gates)
- 7.8 Fragmentos Combinados e Operadores de Interação
- 7.9 Invariante de Estado (StateInvariant)
- 7.10 Exemplos de Diagramas de Sequência para o Sistema de Controle Bancário
- 7.10.1 Processo de Abertura de Conta Comum – Modelo Preliminar
- 7.10.2 Processo de Abertura de Conta Comum – Modelo Detalhado
- 7.10.3 Processo de Realizar Depósito
- 7.10.4 Processo de Emissão de Extrato
- 7.11 Padrões Repository e DAO
- Celular
- Biblioteca
- Clínica Veterinária
- ma de Controle de Advocacia
- 7.16 Exercícios Propostos
- 7.16.1 Sistema de Controle de Cinema – Processo de Venda de Ingressos
- 7.16.2 Sistema de Controle de Clube Social – Processo de Pagamento de Mensalidade
- 7.16.3 Sistema de Locação de Veículos – Processo de Locação de Veículo
- 7.16.4 Sistema para Controle de Leilão Via Internet – Processo de Realizar Leilão
- 7.16.5 Sistema de Controle de Hotelaria – Processo de Pagamento de Diárias
- 7.16.6 Sistema de Controle de Imobiliária – Processo de Venda de Imóvel
- 7.17 Solução dos Exercícios
- 7.17.1 Sistema de Controle de Cinema – Processo de Venda de Ingressos
- 7.17.2 Sistema de Controle de Clube Social – Processo de Pagamento de Mensalidade
- 7.17.3 Sistema de Locação de Veículos – Processo de Locação de Veículo
- 7.17.4 Sistema para Controle de Leilão Via Internet – Processo de Realizar Leilão
- 7.17.5 Sistema de Controle de Hotelaria – Processo de Pagamento de Diárias
- 7.17.6 Sistema de Controle de Imobiliária
- Capítulo 8 ■ Diagrama de Comunicação
- 8.1 Lifelines
- 8.2 Vínculos
- 8.3 Mensagens
- 8.4 Atores
- 8.5 Autochamada
- 8.6 Exemplo de diagrama de comunicação – Processo de Emissão de Saldo
- 8.7 Condições de Guarda e Iterações
- 8.8 Exercícios Propostos
- 8.9 Solução dos Exercícios
- 8.9.1 Sistema de Controle de Cinema – Processo de Venda de Ingressos
- 8.9.2 Sistema de Controle de Clube Social – Processo de Pagamento de Mensalidade
- 8.9.3 Sistema de Locação de Veículos – Processo de Locação de Veículo
- 8.9.4 Sistema para Controle de Leilão Via Internet – Processo de Realizar Leilão
- 8.9.5 Sistema de Controle de Imobiliária – Processo de Venda de Imóvel
- Capítulo 9 ■ Diagrama de Máquina de Estados
- 9.1 Estado
- 9.1.1 Estado Simples
- 9.2 Transições
- 9.3 Estado Inicial
- 9.4 Estado Final
- 9.5 Exemplo de Diagrama de Máquina de Estados – Processo de Emissão de Saldo
- 9.6 Atividades internas
- 9.7 Transições Internas
- 9.8 Autotransições
- 9.9 Pseudoestado de Escolha
- 9.10 Barra de Bifurcação/União
- 9.11 Estados Compostos
- 9.12 Pseudoestado de História
- 9.13 Estados Compostos Ortogonais
- 9.14 Estado de Sincronismo
- 9.15 Estado de Submáquina
- 9.16 Pseudoestado de Junção
- 9.17 Pseudoestado de Ponto de Entrada e Pseudoestado de Ponto de Saída
- 9.18 Pseudoestado de Término
- 9.19 Exemplo de Diagrama de Máquina de Estados – Emitir Extrato
- 9.20 Exemplo de Diagrama de Máquina de Estados – Realizar Depósito
- 9.21 Exemplo de Diagrama de Máquina de Estados – Realizar Saque
- 9.22 Exemplo de Diagrama de Máquina de Estados – Encerrar Conta
- 9.23 Exercícios Propostos
- 9.23.1 Sistema de Controle de Cinema – Processo de Venda de Ingressos
- 9.23.2 Sistema de Controle de Clube Social – Processo de Pagamento de Mensalidade
- 9.23.3 Sistema de Locação de Veículos – Processo de Locação de Veículo
- 9.23.4 Sistema para Controle de Leilão Via Internet – Processo de Realizar Leilão
- 9.23.5 Sistema de Controle de Hotelaria – Processo de Pagamento de Diárias
- 9.23.6 Sistema de Controle de Imobiliária – Processo de Venda de Imóvel
- 9.24 Solução dos Exercícios
- 9.24.1 Sistema de Controle de Cinema – Processo de Venda de Ingressos
- 9.24.2 Sistema de Controle de Clube Social – Processo de Pagamento de Mensalidade
- 9.24.3 Sistema de Locação de Veículos – Processo de Locação de Veículo
- 9.24.4 Sistema para Controle de Leilão Via Internet – Processo de Realizar Leilão
- 9.24.5 Sistema de Controle de Hotelaria – Processo de Pagamento de Diárias
- 9.24.6 Sistema de Controle de Imobiliária – Processo de Venda de Imóvel
- Capítulo 10 ■ Diagrama de Atividade
- 10.1 Atividade
- 10.2 Nó de Ação
- 10.3 Fluxo de Controle
- 10.4 Nó Inicial
- 10.5 Nó de Final de Atividade
- 10.6 Nó de Decisão
- 10.7 Exemplo Simples de Diagrama de Atividade
- 10.8 Nó de Bifurcação/União
- 10.9 Final de Fluxo
- 10.10 Fluxo de Objetos
- 10.11 Nó de Objeto
- 10.12 Alfinetes (Pins)
- 10.13 Nó de Parâmetro de Atividade
- 10.14 Nó de Buffer Central
- 10.15 Nó de Repositório de Dados (Data Store Node)
- 10.16 Exceções
- 10.17 Ação de Envio de Sinal (Ação de Objeto de Envio na versão 2.0)
- 10.18 Ação de Evento de Aceitação
- 10.19 Ação de Evento de Tempo de Aceitação
- 10.20 Ação de Chamada de Comportamento
- 10.21 Ação de Chamada de Operação
- 10.22 Partição de Atividade
- 10.23 Região de Atividade Interrompível
- 10.24 Nó de Atividade Estruturada
- 10.24.1 Nós Condicionais
- 10.24.2 Nós de Laço
- 10.25 Região de Expansão
- 10.26 Conectores
- 10.27 Exemplo de Diagrama de Atividade – Emitir Extrato
- 10.28 Exemplo de Diagrama de Atividade – Realizar Depósito
- 10.29 Exemplo de Diagrama de Atividade – Realizar Saque
- 10.30 Exercícios Propostos
- 10.30.1 Sistema de Controle de Cinema – Processo de Venda de Ingressos
- 10.30.2 Sistema de Controle de Clube Social – Processo de Pagamento de Mensalidade
- 10.30.3 Sistema de Locação de Veículos – Processo de Locação de Veículo
- 10.30.4 Sistema para Controle de Leilão Via Internet – Processo de Realizar Leilão
- 10.30.5 Sistema de Controle de Hotelaria – Processo de Pagamento de Diárias
- 10.30.6 Sistema de Controle de Imobiliária – Processo de Venda de Imóvel
- 10.31 Solução dos Exercícios
- 10.31.1 Sistema de Controle de Cinema – Processo de Venda de Ingressos
- 10.31.2 Sistema de Controle de Clube Social – Processo de Pagamento de Mensalidade
- 10.31.3 Sistema de Locação de Veículos – Processo de Locação de Veículo
- 10.31.4 Sistema para Controle de Leilão Via Internet – Processo de Realizar Leilão
- 10.31.5 Sistema de Controle de Hotelaria – Processo de Pagamento de Diárias
- 10.31.6 Sistema de Controle de Imobiliária – Processo de Venda de Imóvel
- Capítulo 11 ■ Diagrama de Visão Geral de Interação
- Sistema de Livraria Digital
- 11.2 Exercícios Propostos
- 11.2.1 Sistema de Controle de Clube Social – Processo Geral de Associação
- 11.2.2 Sistema de Controle de Hotel – Processo Geral de Encerramento de Estada
- 11.3 Solução dos Exercícios
- 11.3.1 Sistema de Controle de Clube Social – Processo Geral de Associação
- 11.3.2 Sistema de Controle de Hotel – Processo Geral de Encerramento de Estada
- Capítulo 12 ■ Diagrama de Componentes
- 12.1 Componente
- 12.2 Interfaces Fornecidas e Requeridas
- 12.3 Classes e Componentes Internos
- 12.3.1 Portas
- 12.4 Exemplo de Diagrama de Componentes – Sistema de Controle Bancário
- 12.5 Exercícios Propostos
- 12.5.1 Sistema de Controle de Cinema
- 12.5.2 Sistema de Controle de Clube Social
- 12.5.3 Sistema de Locação de Veículos
- 12.5.4 Sistema para Controle de Leilão Via Internet
- 12.5.5 Sistema de Controle de Hotelaria
- 12.5.6 Sistema de Controle de Imobiliária
- 12.6 Solução dos Exercícios
- 12.6.1 Sistema de Controle de Cinema
- 12.6.2 Sistema de Controle de Clube Social
- 12.6.3 Sistema de Locação de Veículos
- 12.6.4 Sistema para Controle de Leilão Via Internet
- 12.6.5 Sistema de Controle de Hotelaria
- 12.6.6 Sistema de Controle de Imobiliária
- Capítulo 13 ■ Diagrama de Implantação
- 13.1 Nós
- 13.2 Estereótipos
- 13.3 Associações
- 13.4 Exemplo de Diagrama de Implantação
- 13.5 Artefatos
- 13.6 Especificação de Implantação
- 13.7 Exemplo de Diagrama de Implantação contendo Artefatos
- 13.8 Nós Contendo Pacotes
- 13.9 Exercícios Propostos
- 13.9.1 Sistema para Controle de Leilão Via Internet
- 13.10 Solução dos Exercícios
- 13.10.1 Sistema para Controle de Leilão Via Internet
- Capítulo 14 ■ Diagrama de Estrutura Composta
- 14.1 Colaborações
- 14.2 Papéis
- 14.3 Ocorrência de Colaboração
- 14.4 Portas
- 14.5 Propriedades e Partes
- Capítulo 15 ■ Diagrama de Tempo ou de Temporização
- Capítulo 16 ■ Diagrama de Perfil
- 16.1 Conceitos Básicos: Modelos, Metamodelos e Metaclasses
- 16.1.1 Metaclasse Classifier
- 16.1.2 Metaclasse BehavioredClassifier
- 16.1.3 Metaclasse NameSpace
- 16.1.4 Metaclasse NamedElement
- 16.1.5 Metaclasse DirectedRelationship
- 16.1.6 Metaclasse Constraint
- 16.1.7 Metaclasse RedefinableElement
- 16.2 Criação de Perfis
- 16.3 Estereótipos
- 16.4 Extensão
- Capítulo 17 ■ Estudo de Caso – Sistema de Pizzaria Online – PizzaNet
- 17.1 Descrição do Problema
- 17.2 Solução do Problema
- 17.2.1 Diagramas de Casos de Uso
- 17.2.2 Documentação dos Diagramas de Casos de Uso da PizzaNet
- 17.2.3 Diagrama de Classes – Modelo de Domínio
- 17.2.4 Diagrama de Objetos
- 17.2.5 Diagrama de Pacotes da PizzaNet
- 17.2.6 Diagramas de Sequência da PizzaNet
- 17.2.7 Diagrama de Comunicação Escolher Pizza
- 17.2.8 Diagramas de Máquinas de Estados da PizzaNet
- 17.2.9 Diagramas de Atividade da PizzaNet
- 17.2.10 Diagrama de Visão Geral de Interação – Realizar Pedido
- 17.2.11 Diagrama de Componentes da PizzaNet
- 17.2.12 Diagrama de Implantação da PizzaNet
- Capítulo 18 ■ A UML 2.5
- 18.1 Áreas Semânticas
- 18.2 Conceitos Básicos: Modelos, Metamodelos e Metaclasses
- 18.3 Estrutura Comum
- 18.3.1 Raiz (Root)
- 18.3.1.1 Metaclasse Element
- 18.3.1.2 Metaclasse Comment
- 18.3.1.3 Metaclasse Relationship
- 18.4 Metaclasses Utilizadas para a Modelagem de Classes
- 18.4.1 Metaclasse Classifier
- 18.4.2 Metaclasse StructuredClassifier
- 18.4.3 Metaclasse EncapsulatedClassifier
- 18.4.4 Metaclasse BehavioredClassifier
- 18.4.5 Metaclasse StructuralFeature
- 18.4.6 Metaclasse BehavioralFeature
- 18.4.7 Metaclasse Property
- 18.4.8 Metaclasse Operation
- 18.4.9 Metaclasse Reception
- 18.4.10 Metaclasse Extension
Livros relacionados
Recursos
Opinião dos leitores
Reane F G
Já estou usando o livro em minhas disciplinas.
Cleber A F
Excelente livro. Muito boa escrita e as análises são excelentes.


