190 likes | 346 Views
Modelagem OO com UML. Modelos. Maneira de projetar, comunicar, documentar, etc. S oluçõ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
E N D
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.)
UnifiedModelingLanguage • 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 Classe abstrata Herança Classe associativa Classe Atributo Métodos Agregação Associação Classe 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
Tipos de Modelagem Modelagem Conceitual com UML
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
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