Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * Modelagem de Sistemas Prof. Valentino D´Ambrosi Jr. Seção 2 * * Nossas aulas Seção 1 - 29/01/2014 Seção 2 - 05/02/2014 Seção 3 - 12/02/2014 – ED1 Seção 4 - 19/02/2014 Seção 5 - 21/02/2014 – N1 Seção 6 - 26/02/2014 –ED2 Seção 7 - 05/03/2014 Seção 8 – 12/03/2014 – N2 Seção 9 - 14/03/2014 – ED3 Seção 10 - 26/03/2014 – U2 * * ESTUDO DIRIGIDO Seção 2 - ED = ED1+ED2+ED3 * * Orientação a Objetos - Conceitos * * UML – Classes * * Classes Classe = é a descrição de um conjunto de objetos que compartilham os mesmos atributos, operações e relacionamentos. Representada por uma caixa com no máximo 3 divisões: * * Classes - Conceitos Cada classe deve ter um nome que seja único, não pode existir outra classe com o mesmo nome. O nome de uma classe deve ser um substantivo. O nome de uma classe pode ser composto por mais de uma palavra. A primeira letra de cada palavra do nome de uma classe deve ser em letra maiúscula. Exemplos: “Carro” ou “ContaBancária” * * Classes - Atributos Uma classe pode ter quantos atributos forem necessários ou até mesmo nenhum atributo. Representa alguma propriedade da classe que está sendo modelada. Atributo é uma abstração do tipo de dados ou estados que os objetos da classe podem ter. O nome de um atributo deve ser um substantivo. A primeira letra de cada palavra, exceto da primeira palavra, deve ser em maiúscula. Exemplos: marca, dataNascimento. * * Classes - Atributos Pode ser indicado o tipo de cada atributo e até mesmo o valor inicial dos atributos. Sintaxe: [visibilidade] nomeAtributo [:tipo] [= valor inicial] Valores de Visibilidade: + public (visível por todas as classes) # protected (visível na classe e na subclasse) - private (visível apenas na classe). * * Classes - Atributos Exemplo: * * Classes - Operações Operação é uma abstração do comportamentode um objeto. Uma classe pode ter qualquer número deoperações e até mesmo nenhum. O nome de uma operação é um verbo ou uma locução verbal. O primeiro caracter de cada palavra do nome de uma operação deve ser maiúsculo, exceto da primeira palavra. Exemplos: mover(), estáVazio() * * Classes - Operações Podemos definir o tipo de retorno de uma operação (método). Podemos definir o tipo e o nome de cada parâmetro de um método. Sintaxe: [visibilidade] nomeMetodo [(parametro1:tipo, parametron : tipo)] [:tipo de retorno] Valores de Visibilidade: + public (visível por todas as classes) # protected (visível na classe e na subclasse) - private (visível apenas na classe). * * Classes - Operações Exemplo: * * Classes - Organização Quando representamos uma classe não é preciso exibir todos os atributos e todas as operações. Não é adequado exibir tudo. Exibimos somente o conjunto de atributos e operações que sejam relevantes para uma determinada visão. Para deixar claro que existem mais atributos e operações do que os mostrados termine cada lista com reticências (…). * * Classes - Técnicas de Modelagem Identifique os itens que os usuários ou os implementadores usam para descrever o problema ou a solução. Utilize a análise baseada em casos de uso para ajudar a descobrir as classes possíveis. Forneça os atributos e métodos necessários para a execução correta da responsabilidade de cada classe. * * Classes - Técnicas de Modelagem Exemplo: conjunto de classes modeladas para um sistema de vendas de varejo. * * Classes - Relacionamentos * * Classes - Relacionamentos É uma conexão entre classes. É representado graficamente como um caminho, com um tipo diferente de linha para cada tipo de relacionamento. Tipos: Dependência Generalização\Especialização Associação Agregação * * Relacionamentos - Dependência Relacionamento de utilização. Determinando que uma classeA utiliza informações e serviços de outra classeB. O inverso pode não ser verdade. Representada graficamente com linhas tracejadas apontando a classe da qual a outra depende. Usada quando uma classe depende de outra. * * Relacionamentos - Dependência Exemplo: * * Relacionamentos Generalização\Especialização Relacionamento entre classes gerais (classes mães) e classes mais específicas (classes filha). Generalização significa que a classe filha é substituível por uma declaração da classe mãe. A classe filha herda métodos e atributos da classe mãe. As classes filhas normalmente tem mais atributos e métodos que a classe mãe. * * Relacionamentos Generalização\Especialização Polimorfismo = a operação de uma classe filha, com a mesma assinatura de uma operação da classe mãe, prevalecerá. Mesma assinatura = métodos com mesmo nome e mesmos parâmetros. A relação de um classe filha com apenas uma classe mãe é chamada de herança. A relação de de uma classe filha com mais de uma classe mãe é chamada de herança múltipla. * * Relacionamentos Generalização\Especialização Generalização e especialização são dois pontos de vista do mesmo relacionamento. Se a classe A é uma generalização da classe B, então B é uma especialização de A. Termos utilizados: Classe mãe pode ser chamada de superclasse, supertipo ou classe base. Classe filha pode ser chamada de subclasse, subtipo ou classe herdeira. * * Relacionamentos Generalização\Especialização Classes representam um conjunto de objetos que partilham um conjunto comum de propriedades (atributos e métodos). Alguns objetos bastante semelhantes a outros podem possuir propriedades especificas. Exemplo:Pessoa, PessoaFísica e PessoaJurídica. * * Relacionamentos Generalização\Especialização Exemplo: * * Relacionamentos - Associação Responsável por conectar duas classes. Com uma associação você é capaz de navegar de um objeto de uma classe até o objeto de outra classe e vice-versa. Você pode ter uma conexão da classe A com a própria classe A. Isso significa vínculos entre objetos da mesma classe. * * Relacionamentos - Associação Associação entre duas classes é associação binária. Representada graficamente com uma linha sólida. Uma associação pode ter um nome (bastante comum). * * Relacionamentos - Associação Exemplo: * * Relacionamentos - Associação As classes em uma associação possuem papéis específicos. É possível, mas não obrigatório, nomear o papel de cada extremidade. * * Associação - Multiplicidade Associações permitem representar a informação dos limites superior e inferior da quantidade de objetos aos quais o outro pode estar associado. Cada associação possui uma multiplicidade. * * Associação - Multiplicidade Exemplo: * * Associação - Multiplicidade Intervalo específico: o x e o y devem ser substituídos pelos valores do limite inferior e superior. Pode também ser uma lista de intervalos: 1, 3,5…9, 11. * * Relacionamentos - Agregação Em uma associação as classes estão no mesmo nível. Agregação é um relacionamento “todo/parte”. Onde uma classe representa • o “todo” e a outra classe representa a “parte”. Um objeto do “todo” tem um objeto da “parte”. É um tipo especial de associação. * * Relacionamentos - Agregação Exemplo: * * Modelagem de Dependências - Exercício Crie uma dependência apontando, a partir da classe que executa a operação, a classe utilizada como parâmetro nessa operação. Exemplo: * * Modelagem de Herança Exercício Em um conjunto de classes procure responsabilidades, atributos e métodos que sejam comuns a duas ou mais classes. Coloque as responsabilidades, atributos e métodos comuns em uma classe mais geral Exemplo: * * Modelagem de Associação Exercício Para cada par de classes, caso seja necessário navegar entre elas, especifique uma associação. Para cada associação especifique uma multiplicidade. Especifique os nomes dos papéis se ajudar a entender o modelo. Se uma das classes de uma associação pertencer a outra utilize agregação. * * Modelagem de Associação Exemplo: * * Identificação de Classes Em 1983 Russel Abbott propôs a seguinte técnica para identificação de classes: Reunir diversas fontes de informações do sistema a ser modelado: documento de requisitos, modelos de negócios, conhecimento sobre o domínio etc. Nesses documentos destacar substantivos e adjetivos. Sinônimos são removidos. * * Identificação de Classes Cada termo que sobrar é classificado em uma das 3 situações: O termo se torna uma classe (classe candidata). O termo se torna um atributo. O termo não tem relevância alguma ao problema a ser modelado. Em seguida destacamos os verbos da documentação. Verbos com sentido de “ação” (calcular, confirmar, comprar, etc) são métodos em potencial. * * Identificação de Classes Verbos com sentido de “ter” são agregações em potencial. Os verbos que sobrarem são associações em potencial. Resumo: * * UML – Diagrama de Classes * * Diagrama de Classes É o diagrama encontrado com maior frequência nos modelos de sistemas orientados a objetos. Modelagem do vocabulário do sistema. São importantes para • especificação, documentação e visualização do sistema. * * Diagrama de Classes Exemplo: * * Exercícios Desenhe um diagrama de classes com relacionamentos, nomes de papéis e multiplicidades para as seguintes situações: Uma Pessoa pode ser casada com outra Pessoa. Uma Peça é composta de diversas outras Peças. * * Contato valentino.junior@gmail.com Obrigado pela atenção de todos(as). @ *
Compartilhar