Modelagem OO com UML
description
Transcript of Modelagem OO com UML
Modelagem OOcom UML
Modelos
• Maneira de projetar, comunicar, documentar, etc.– Soluções computacionais
• Diversos níveis:– Ontologias (modelos genéricos, de domínio)– Requisitos (foco em um problema)– Projeto/arquitetura (foco em uma solução)
• Essenciais para o desenvolvimento de software• Assim como o desenvolvimento, também
seguem os paradigmas (estruturado, OO, etc.)
Unified Modeling Language
• Padrão “de facto” para especificar, visualizar, documentar e construir artefatos de um sistema desenvolvido sob o paradigma Orientado a Objetos
• Nasceu na Rational Software, desde 1997 é um padrão da Object Management Group (OMG)
• Teve origem em três outros métodos– OMT– Método de Booch– Método de OOSE
Diagramas da UML
• Casos de uso• Classes• Objetos• Estruturas compostas• Sequências• Comunicação• Estados• Atividades
• Componentes• Implantação• Pacotes• Interface em geral• Tempo
Exemplo: Diagrama de Caso de Uso
• Modela as funcionalidades do sistema
• Capturas típicas interações com os usuários
• Usuários são atores• Atores e casos de uso são
associados• Cada caso é descrito em
detalhes separadamente
Exemplo: Diagrama de Classes
Herança
Agregação
Classe
Associação
Classe associativa
Classe abstrata
ClasseAtributoMétodos
Representa as Classes relevantes (abstração) para o domínio, problema ou solução
Exemplo: Diagrama de Estados
• Representa diferentes estados em que um objeto pode estar
• Foco em uma classe de objetos específica (exemplo, Pedido)
• Captura a dinâmica de um sistema, com foco numa classe
Exemplo: Diagrama de Sequencia• Captura a dinâmica de um sistema, com foco
numa classe• Foco em uma função específica
MODELAGEM CONCEITUAL COM UML
Tipos de Modelagem
Modelagem Estática e Dinâmica
• Modelagem Estática– Representação das classes, Herança, Separação em
subsistemas/módulos, pacotes, associações, papéis, classes associativas, relacionamentos recursisvos, associações n-árias, agregação e composição, atributos, especificação de objetos, atributos e hierarquias de classe
• Modelagem Dinâmica– Diagramas de estados, Diagramas de interação,
Diagrama de máquina de estados, Diagrama de sequência, Diagrama de colaboração,
Modelagem Estática
• Identificação das classes• Especificação das hierarquias de
generalização/especificação• Identificação de subsistemas• Identificação de atributos e associações
Modelagem Estática
• Representação em UML • Se estiver em itálico, a classe é abstrata
• Sintaxe atributos: <escopo> <nome> : <tipo> = <valor default>– Escopo: - privado; +público;
#protegido
• Sintaxe métodos: <escopo> <nome> (parâmetros): <tipo>– <parâmetros> = lista de pares
“nome : <tipo>”, separados por vírgula
Nome da Classe
<Lista de Atributos>
<Lista de métodos>
Modelagem Estática• Modelam relações “é um tipo de”• Subclasses devem suportar toda a funcionalidade das
superclasses• Funcionalidades comum a diversas classes devem estar o mais
alto possível na hierarquia• Classes abstratas não podem herdar de classes concretas
Modelagem Estática
• Projetos grandes podem conter centenas de classes e estruturas diversas
• Divisão de classes das classes em pacotes– Coleção de classes que colaboram entre si– Conjunto coeso de responsabilidades
• Vantagens– Facilita o entendimento para os leitores– Auxilia na organização de grupos de trabalho– Organiza a documentação– Facilita a manutenção
Modelagem Estática
• Pacotes– Organizam diversos tipos de elementos de
modelos, inclusive diagramas inteiros– Muito utilizados para organizar classes em
módulos– É possível representar a relação de dependência
entre pacotes
Modelagem Estática
• Relacionamento entre classes é representado por associações, composições e agregações
• Associações podem indicar cardinalidade
Modelagem Estática
• Adicionam um losango à sintaxe, na extremidade da classe que representa o todo
Modelagem Estática
• Atributos– Atributos são informações de estado (propriedades)
para os quais cada objeto em uma classe tem seu valor– Muito similares às associações
• Como atributos têm um tipo, podemos considerar que são associações com um tipo
• Para tipos primitivos definimos atributos, do contrário modelamos uma associação
• Em última instância, associações e atributos são implementados da mesma forma
• Atributos e associações definem uma classe
Modelagem Estática
• Atributos– Atributos são informações de estado (propriedades)
para os quais cada objeto em uma classe tem seu valor– Muito similares às associações
• Como atributos têm um tipo, podemos considerar que são associações com um tipo
• Para tipos primitivos definimos atributos, do contrário modelamos uma associação
• Em última instância, associações e atributos são implementados da mesma forma
• Atributos e associações definem uma classe