ESPECIALIZAÇÃO EM GESTÃO DE TECNOLOGIAS DA INFORMAÇÃO Análise Orientada a Objetos AULA 03 Análise Orientada a Objetos; O Paradigma de Objetos; A UML. Prof. Sandrerley R. Pires Goiânia, agosto de 2003
Conceitos Fundamentais de Orientação a Objetos O Paradigma de Objetos... os modelos baseados em objetos correspondem mais aproximadamente ao mundo real e são, em conseqüência, mais adaptáveis às modificações (J. Rumbaugh)
Conceitos Fundamentais de Orientação a Objetos Rumbaugh, cap 01-04. Objeto: um conceito, uma abstração, algo com limites nítidos e significado em relação do problema em causa. Exemplo: João, Lassie, Processo nº 100, Janela da sala.
Conceitos Fundamentais de Orientação a Objetos Classe: Descreve um grupo de objetos com propriedades semelhantes, os mesmos comportamentos, os mesmos relacionamentos com outros objetos e mesma semântica. Exemplo: Pessoa, Cachorro, Processo, Janela.
Conceitos Fundamentais de Orientação a Objetos Atributo: é um valor, uma informação, uma característica específica que todos objetos de uma mesma classe terão. Um Atributo deve ser sempre um valor elementar, nunca outro objeto.
Conceitos Fundamentais de Orientação a Objetos Operações: ações exercidas por objetos de uma determinada classe. Notação padrão de uma classe: NOME CLASSE Atributo1 Atributo2 Atributo 3 Atributo4 Operação1( ) Operação2( ) Operação3( ) Operação4( )
Conceitos Fundamentais de Orientação a Objetos Ligações Descreve conexões físicas ou conceituais entre instâncias de objetos.
Conceitos Fundamentais de Orientação a Objetos Associação: indica uma relação entre classes, onde as classes participantes da associação se conhecem, podendo trocar mensagens entre si. Exemplo: multiplicidade Pessoa n trabalha_para 1 empregado empregador Empresa papéis
Associações O tipo mais comum de associação é apenas uma conexão entre classes. É representada por uma linha sólida entre duas classes. A associação possui um nome (junto à linha que representa a associação), normalmente um verbo, mas substantivos também são permitidos. Pode-se também colocar uma seta no final da associação indicando que esta só pode ser usada para o lado onde a seta aponta. Mas associações também podem possuir dois nomes, significando um nome para cada sentido da associação. Para expressar a multiplicidade entre os relacionamentos, um intervalo indica quantos objetos estão relacionados no link. O intervalo pode ser de zero para um (0..1), zero para vários (0..* ou apenas *), um para vários (1..*), dois (2), cinco para 11 (5..11) e assim por diante. É também possível expressar uma série de números como (1, 4, 6..12). Se não for descrita nenhuma multiplicidade, então é considerado o padrão de um para um (1..1 ou apenas 1).
Associação Recursiva É possível conectar uma classe a ela mesma através de uma associação e que ainda representa semanticamente a conexão entre dois objetos, mas os objetos conectados são da mesma classe. Uma associação deste tipo é chamada de associação recursiva
Associação ternária Mais de duas classes podem ser associadas entre si, a associação ternária associa três classes. Ela é mostrada como uma grade losango (diamante) e ainda suporta uma associação de classe ligada a ela, traçaria-se, então, uma linha tracejada a partir do losango para a classe onde seria feita a associação ternária.
Agregação A agregação é um caso particular da associação. A agregação indica que uma das classes do relacionamento é uma parte, ou está contida em outra classe. As palavras chaves usadas para identificar uma agregação são: "consiste em", "contém", "é parte de". É uma forma especializada de associação na qual um todo é relacionado com suas partes. Também conhecida como relação de conteúdo. É representada como uma linha de associação com um diamante junto à Classe agregadora. A multiplicidade é representada da mesma maneira que nas associações.
Conceitos Fundamentais de Orientação a Objetos Agregação: relacionamento parte-todo no qual os objetos que representam os componentes de alguma coisa, são associados a um objeto que representa a estrutura inteira. Exemplo: n n Documento Parágrafo Senteça
Conceitos Fundamentais de Orientação a Objetos Generalização: é o refinamento entre uma classe e uma ou mais versões refinadas dela. A classe que está em processo de refinamento é a superclasse e a classe refinada é a subclasse. Exemplo: Figura Cor Posição Exibir() Apagar Mover() Círculo Raio Exibir() Apagar() Quadrado Lado Exibir() Apagar()
Generalização Outros Textos A generalização é um relacionamento entre um elemento geral e um outro mais específico. O elemento mais específico possui todas as características do elemento geral e contém ainda mais particularidades. Um objeto mais específico pode ser usado como uma instância do elemento mais geral. A generalização, também chamada de herança, permite a criação de elementos especializados em outros. Existem alguns tipos de generalizações que variam em sua utilização a partir da situação. São elas: generalização normal e restrita. As generalizações restritas se dividem em generalização de sobreposição, disjuntiva, completa e incompleta.
Generalização Normal Uma classe pode ser tanto uma subclasse quanto uma superclasse, se ela estiver numa hierarquia de classes que é um gráfico onde as classes estão ligadas através de generalizações. A generalização normal é representada por uma linha entre as duas classes que fazem o relacionamento, sendo que se coloca uma seta no lado da linha onde se encontra a superclasse indicando a generalização.
Generalização Normal Na generalização normal a classe mais específica, chamada de subclasse, herda tudo da classe mais geral, chamada de superclasse. Os atributos, operações e todas as associações são herdados.
Generalização Restrita Uma restrição aplicada a uma generalização especifica informações mais precisas sobre como a generalização deve ser usada e estendida no futuro. As restrições a seguir definem as generalizações restritas com mais de uma subclasse: Generalizações de Sobreposição e Disjuntiva: Generalização de Generalizações de Sobreposição e Disjuntiva: Generalização de sobreposição significa que quando subclasses herdam de uma superclasse por sobreposição, novas subclasses destas podem herdar de mais de uma subclasse. A generalização disjuntiva é exatamente o contrário da sobreposição e a generalização é utilizada como padrão
Generalizações Completa e Incompleta Uma restrição simbolizando que uma generalização é completa significa que todas as subclasses já foram especificadas, e não existe mais possibilidade de outra generalização a partir daquele ponto. A generalização incompleta é exatamente o contrário da completa e é assumida como padrão da linguagem.
A UML 1. Histórico; 2. Diagrama de Caso de Uso; 3. Diagrama de Seqüência; 4. Criação do Diagrama de Classe; 5. Exercícios de Fixação.
Diagrama Caso de uso É um modelo usado para descrever os requisitos funcionais de um sistema. É composto por atores externos, caso de usos e interações entre eles. Os atores representam o papel de uma entidade externa ao sistema, enquanto o caso de uso representa a porção do sistema que irá interagir com o ator.
Diagrama Caso de Uso - Exemplo Consultar Cliente Marcar Consulta Recepcionista Cadastrar Cliente Listar Receita Verificar disponibilidade do Médico Consultar Anamnese Registrar Pagamento Listar Faturamento Diretoria Registrar Anamnese Cadastrar Médico Médico Registar Receita
Diagrama de Seqüência Mostra a colaboração dinâmica entre os vários objetos de um sistema visando atender um determinado cenário de um Caso de Uso. O mais importante aspecto deste diagrama é que a O mais importante aspecto deste diagrama é que a partir dele percebe-se quais são os possíveis objetos que comporão a solução do problema em questão, além da seqüência de mensagens enviadas entre estes objetos.
Cenário É um caminho específico dentro de um determinado Caso de Uso. Seja o exemplo: Caso de Uso: DRH Mantém Funcionário. Alguns Cenários Possíveis: DRH Inclui Funcionário; DRH Altera Funcionário; DRH Consulta Funcionário; DRH Inclui Funcionário em Duplicidade;
Diagrama de Seqüência - Exemplo : Secretária Marcar Consulta : Form Paciente : Paciente Médico : Médico Consultas : Consultas ObterDados() Consultar() Consultar() ConsultarDisponibilidade() Consultar() MarcarConsulta() Incluir()
Construção do Diagrama de Seqüência A partir do Diagrama de Caso de Uso construído para o sistema de Contas Correntes, construa os Diagramas de Seqüência para, pelo menos, quatro cenários.
Diagrama de Classes Mostra a estrutura estática das classes de um sistema, todos os relacionamentos entre as classes, bem como as estruturas internas das classes que são os atributos e operações.
Diagrama de Classes - Exemplo Cliente 1 possui 0..* Contrato de Aluguel 0..1 refere a Veículo Alugado 0..* 1 possui Tipos de Veículos Compahia de Aluguel de Veículos Caminhão Carro Sport Carro de Passeio
Construção de Diagrama de Classe A partir dos Diagramas de Seqüência construídos para o sistema de Contas Correntes construa o Diagrama de Classe.
Processo Orientado a Objetos Comentários a Respeito da Técnica; Um Processo Orientado a Objetos; Modelos Auxiliares da UML.
Um Processo para a Análise Orientada a Objetos; 1) Descrição Contextual; 2) Lista de Objetivos; 3) Diagrama de Casos de Uso; 4) Protótipos; 5) Definição de Cenários; 6) Definição de Classes Candidatas; 7) Diagramas de Seqüência; 8) Diagrama de Classe; 9) Refinamento do Diagrama de Classe.
Diagrama de Transição de Estado É um complemento para a descrição das classes. Este diagrama mostra todos os estados possíveis que objetos de uma classe podem se encontrar, além dos eventos do sistema que provocam tais mudanças.
Diagrama de Transição de Estado No Térreo subir (andar) Subindo Chegar no térreo Chegar no andar subir (andar) Indo para o térreo Descendo Chegar no andar Parado descer (andar) tempo de espera
Diagrama de Atividade Capturam ações e seus resultados. Ele pode ser utilizado para diferentes propósitos. Alguns deles: 1) Capturar os trabalhos que serão executados quando uma operação é disparada (ações); 2) Capturar o trabalho interno em um objeto; 3) Mostrar como um grupo de ações relacionadas podem ser executadas, e como elas vão afetar os objetos em torno delas.
Diagrama de Atividade - Exemplo Recebe Pedido de Consulta Verifica disponibilidade de médico Não tem Disponibilidade Tem Disponibilidade Informa Impossibilidade Marca a consulta
Modelagem de Objetos utilizando a UML Atividade - 01: Para o problema do aeroclube, disponível no TelEduc, desenvolver a modelagem de objetos, produzindo os seguintes diagramas: 1)Casos de Uso; 2)Seqüência; e 3)Classes. Primeira Avaliação. Desenvolver individualmente o exercício e entregá-lo, em papel, na próxima aula.
Modelagem de Objetos utilizando a UML Atividade - 02: Elaborar, para a próxima aula, uma questão para ser jogada em debate. Cada pergunta será direcionada a um aluno da turma e após a sua resposta o autor da pergunta também a responderá. Finalmente, os outros poderão também complementar as respostas dadas. A atuação global do aluno no debate determinará a sua avaliação. O questão deverá ser a respeito de um dos seguintes assuntos: a) A Análise de Sistemas; b) A Prática da Análise de Sistemas; c) Comparação das Técnicas de Análise de Sistemas; d) Tendências para a Atividade de Análise de Sistemas. Segunda Avaliação.
Sistema de Contas Correntes Atividade - 03: Um sistema bancário de Contas Correntes deve satisfazer aos seguintes requisitos: O cliente procura a Área de Atendimento da agência e esta abrirá a conta para ele. Após a abertura da conta o cliente poderá movimentá-la através de um terminal de auto-atendimento. Ele fará operações como: saques, depósitos e consulta de extrato. Os cheques emitidos pelos cliente o serão apresentados ao banco através da compensação do Banco do Brasil. A Gerência emitirá mensalmente um relatório com os melhores clientes da agência. A Gerência emitirá diariamente um relatório com os cheques devolvidos pela agência.
Modelagem de Objetos utilizando a UML FIM AULA 03