Professor : José Luiz Rodrigues Junior E-mail: [email protected] 1 UML-Unified Modeling Language Desenvolvimento Rational software Microsoft Hewlett-Packard Oracle Sterling Unisys IBM MCI José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-2 UML-Unified Modeling Language Influenciada por vários métodos de análise e projeto orientados a objetos Deriva particularmente de 3 notações: OOD (Projeto orientado a objetos) – Grady Booch OMT (Técnica de modelagem de objetos) - James Rumbaugh OOSE(Engenharia de software orientada a objetos) - Ivar Jacobson José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-3 Orientação a objetos Significa organizar o mundo real como uma coleção de objetos Alavancas Evolução Tecnológica Distribuição de Processamento Tecnologia Cliente-Servidor Internet Java Aplicações WEB José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-4 Objetos - Definição Objeto é uma entidade concreta, apesar da concepção ser abstrata Agrupamento de características e ações de uma entidade Características são representadas por atributos Ações são representadas por métodos Um conjunto de atributos e métodos, forma um objeto José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-5 Objetos - Definição Do ponto de vista da abstração, um objeto tenta não separar o que até então vinha sendo separado: Dados e funções. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-6 Objetos - Definição “um objeto é uma abstração de um conjunto de coisas do mundo real, sendo que: todas as coisas do mundo real em um conjunto as instâncias - têm as mesmas características. Todas as instâncias são sujeitas e em conformidade às mesmas regras” “...um objeto representa uma entidade, item ou unidade individual, identificável, sendo real ou abstrato, com regras bem definidas no domínio do problema." Grady Booch José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-7 Objetos - Exemplos Coisas tangíveis O Livro “Modelagem de Objetos”, uma cadeira, uma pessoa, etc. Incidente A copa do mundo de futebol (evento/ocorrência) Interação (transação/contrato) O débito de R$ 100,00 na conta x no dia 20/01/2000 Em um Sistema Universitário, João da Silva é um estudante-objeto; ele assiste a diversos seminários-objeto e está cursando uma graduação-objeto. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-8 Objetos - Características Um objeto possui três características básicas: Estado Comportamento Identidade José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-9 Finalidade da OO José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-10 Objetos - estado Entende-se como o seguinte conjunto: Os valores dos atributos e o status das operações que o objeto executou Obviamente, um método executado ou a mudança de valor de algum atributo automaticamente muda seu estado anterior José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-11 Objetos - estado Objetos têm consciência do seu passado Retém informações dentro de si mesmo por tempo indefinido, não “morrendo” quando termina a execução, ou seja, memoriza suas propriedades e valores associados. Essa característica chama-se “retenção de estado” José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-12 Objetos - estado Exemplo: CONTA CONTA CONTA João da Silva 12345-6 R$1500,00 Maria AParecida 98765-4 R$2800,00 Ana Maria Santos 91872-7 R$6000,00 Depositou R$ 800,00 Sacou R$ 70,00 Sacou R$ 365,60 CONTA José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-13 Objetos - comportamento Nenhum objeto existe isolado Ele interage com outros objetos, atuando sobre estes, ou sofrendo ação dos mesmos. O comportamento de um objeto é completamente definido pelas suas ações “Comportamento é como um objeto age e reage, nos termos das suas mudanças de estado e passagem de mensagens “ Grady Booch José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-14 Objetos – estado e comportamento operações/métodos/interface (público) dados/propriedades/atributos (privado) A estrutura de dados armazena o estado de um objeto (valores dos atributos). As operações definem o comportamento do objeto, que é a forma como um objeto age e reage em termos de mudanças de estado e respostas às operações que sabe executar Análise o projetos de sistemas orientados a objetos José Luiz Rodrigues Jr AOO-15 Objetos - comportamento Mensagem O comportamento de um objeto é função de seu estado, bem como das operações realizadas sobre ele, com certas operações tendo o efeito de alterar o estado do objeto Trata-se de uma operação que um objeto executa sobre outro para obter uma reação É o meio de comunicação entre objetos, isto é, é o estímulo para um determinado comportamento. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-16 Objetos - Mensagem Para que um objeto (chamado de emissor) envie uma mensagem para outro objeto (chamado alvo), deve-se conhecer três coisas: 1. O identificador do objeto alvo 2. O nome do método do objeto alvo que deseja executar 3. Quaisquer informações suplementares (argumentos) que o objeto alvo necessitará na execução de seu método José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-17 Objetos - operações Uma operação denota um serviço que uma classe oferece a seus clientes Pode-se executar quatro tipos de operações sobre um objeto : Modificadora Seletora Construtora Destruidora José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-18 Objetos - Identidade “Identidade é aquela propriedade de um objeto que o distingue de todos os outros objetos” Khoshafiam e Copeland José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-19 Objetos - Identidade Um identificador é anexado ao objeto no momento da criação do objeto O mesmo identificador permanece com o objeto por toda sua existência Dois objetos não podem ter o mesmo identificador José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-20 Modelo de objetos Diferentes metodologias, diferentes maneiras de resolver o problema Em orientação a objetos existe o conceito de “Modelo de objetos” Compõe-se de 4 elementos principais: Abstração Encapsulamento Modularidade Hierarquia José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-21 Abstração Elemento fundamental pelo qual se reconhece um objeto, seja ele um processo ou situação no mundo real “Uma Abstração denota as características essenciais de um objeto que o distinguem de todos os outros tipos de objetos e portanto definem nitidamente os limites conceituais relativos à perspectiva do observador.” Grady Booch José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-22 Abstração José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-23 Abstração Descreve as características visíveis do objeto Tem seu foco no comportamento observável do objeto Não descreve, entretanto: A sua implementação O seu funcionamento José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-24 Encapsulamento É o processo de esconder todos os detalhes de um objeto que não contribuem para suas características essenciais “Encapsulamento é o processo de identificação dos elementos de uma abstração que constituem sua estrutura e comportamento.” Grady Booch José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-25 Encapsulamento Técnica de proteger informações É a arte de esconder o que não é essencial Deve-se saber : O que o objeto produz O que o objeto necessita para produzir Ex.: Para dirigir é preciso saber que o carro produz movimento e precisa de gasolina para funcionar. Não é necessário saber como ele funciona José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-26 Encapsulamento José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-27 Encapsulamento A interface de um objeto declara todas as operações permitidas # Todo o acesso aos dados do objeto é feito através da chamada a uma operação da sua interface. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-28 Encapsulamento Benefícios Segurança Protege os atributos dos objetos de terem seus valores corrompidos por outros objetos. Independência “Escondendo” seus atributos, um objeto protege outros objetos de complicações de dependência de sua estrutura interna José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-29 Modularidade Divisão do sistema em componentes individuais Permite maior clareza e compreensão Identifica os limites do sistema O agrupamento de classes e objetos em módulos permite a montagem de uma estrutura lógica que produz a arquitetura do sistema José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-30 Modularidade “Modularidade é a propriedade de um sistema de ser decomposto em um conjunto de módulos coesivos e relacionalmente desprendidos.” Grady Booch José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-31 Modularidade José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-32 Hierarquia Um grupo de abstrações frequentemente forma uma hierarquia e com a identificação dessas hierarquias no projeto, pode-se simplificar o entendimento do problema. “Hierarquia é uma graduação ou ordenamento de abstrações “ Grady Booch José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-33 Hierarquia Abstrações formam uma hierarquia José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-34 Hierarquia-exemplo Um computador é feito de CPU, gabinete, teclado e outros dispositivos. A CPU, por sua vez (e aqui o que fazemos é diminuir o nível de abstração), é formada de portas lógicas; as portas lógicas, por sua vez, são formadas de transístores; estes, por sua vez, são formados de cristais, metais e substâncias químicas; estas por sua vez, formadas por moléculas, que são formadas por átomos, e assim em diante José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-35 Benefícios do modelo de objetos É adequado para sistemas que pretendem evoluir com o tempo, pois sua estrutura permite que se mude a implementação interna de um objeto sem ter que mudar todo o código que se situa acima deste É um modelo maleável, o que permite a inserção de novas características Princípios como “esconder informações” e “modularidade” permitem facilidade em sistemas que possuem manutenção constante José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-36 Classes Estrutura geral de onde os objetos podem derivar Cada objeto é uma linha de vida à parte e cada um possui um estado específico Um objeto é diferente do outro (Em seu conteúdo e estado) mesmo que a sua interface seja a mesma. “Uma classe é um grupo de objetos que compartilham uma estrutura comum e um comportamento comum” Grady Booch José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-37 Classes Existem vários tipos de objetos, portanto existem vários tipos de classes José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-38 Classes A classe representa um grupo de objetos com estrutura e comportamentos comuns José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-39 Classes Todos os objetos são instâncias de uma classe. Possibilita a reutilização de código Uma classe é representada conforme abaixo: CONTA CONTA Classe Titular Titular Número Número Saldo Saldo Atributos Depósito( ) Saque( ) Transf erância( ) Métodos José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-40 Classes e Objetos Classe é o que se projeta e programa Objeto é o que se cria durante o processamento José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-41 Classes - Visões A interface de uma classe provê a visão externa, e portanto, enfatiza a abstração enquanto esconde sua estrutura e segredos de seu comportamento A implementação de uma classe é sua visão interna, que engloba os segredos de seu comportamento José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-42 Classes - Visões A interface de uma classe divide-se em: Pública (Representada pelo símbolo “+”) Uma declaração que forma parte da interface de uma classe e é visível para todos os clientes que são habilitados para isto; Protegida (Representada pelo símbolo “#” Uma declaração que forma parte da interface de uma classe, mas não é visível para quaisquer outras classes, exceto suas subclasses; Privada (Representada pelo símbolo “-”) Uma declaração que forma parte da interface de uma classe, mas não é visível para quaisquer outras classes. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-43 Classes – Classificação e instanciação Classificação É a operação que divide em uma ou mais categorias (classes) indivíduos dentro de um domínio; Instanciação É a operação que evidencia um indivíduo (Objeto) que pertence a uma categoria. São operações opostas. Quando se une vários indivíduos em uma categoria, é uma classificação, mas quando se pega um único indivíduo da categoria, é uma instanciação. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-44 Classes – Classificação e instanciação José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-45 Classes – Generalização / Especialização Generalização Ato de definir-se uma Classe (supertipo) que irá conter as características e o comportamento que outras Classes possuem em comum Especialização Ato de definir-se uma Classe que além de herdar as características e o comportamento do Supertipo ainda possui outras características que são sua especialidade (somente ela tem) e, portanto, os demais subtipos não possuem José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-46 Classes – Generalização / Especialização José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-47 Classes – Generalização / especialização Observa características comuns para determinar uma classe mais abrangente gato leão Felinos tigre Mamíferos atleta professo r médico José Luiz Rodrigues Jr Pessoas Análise o projetos de sistemas orientados a objetos AOO-48 Classes – Generalização / especialização Uma Classe derivada herda a estrutura de dados e métodos de sua classe “base”, mas pode seletivamente: adicionar novos métodos estender a estrutura de dados redefinir a implementação de métodos já existentes Uma Classe “base” propicia a funcionalidade que é comum a todas as suas classes derivadas, enquanto que uma classe derivada proporciona a funcionalidade adicional que especializa seu comportamento. A Generalização é uma noção conceitual. Herança é a implementação de uma generalização. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-49 Classes - Herança Herança é o compartilhamento de atributos e operações entre classes com base em um relacionamento hierárquico Cada subclasse herda todas as propriedades da superclasse e acrescenta suas próprias e exclusivas características Permite a reutilização de especificações comuns José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-50 Classes - Herança Vamos supor que a engenharia genética conseguiu produzir o cruzamento de animais (classes) diferentes, como por exemplo, leões, girafas e cobras. Cada um deles possui sua características próprias (o leão possui juba, a girafa pintas, a cobra escamas, etc…) e algumas em comum (Leões e Girafas são mamíferos com quatro patas, etc…). Quais as características deste novo ser (ou classe) ? José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-51 Classes - Herança Pode-se criar uma nova classe com características das originais José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-52 Classes - Herança Veículo terrestre passageiros eixos partida() parada() Automóvel bagagem Caminhão carga A Classe “Automóvel” herda os atributos: passageiros e eixos; define um novo atributo: bagagem e redefine o método: partida(). A Classe “Caminhão” herda os atributos: passageiros e eixos e define um novo: carga. partida() José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-53 Classes – Herança “Um objeto tem parte de suas caracteristicas herdadas de classes superiores (como variáveis globais) ou outras classes (como uma passagem de parâmetro).” Grady Booch José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-54 Agregação – Estrutura todo-parte Propriedade de uma Classe formar suas instâncias a partir da reunião das características e do comportamento de outras instâncias da mesma Classe ou de Classes diferentes, sendo que os componentes têm existência independente em relação ao composto, ou seja, a eliminação do composto não afeta a existência dos elementos que o criaram. É uma associação entre um objeto e outros objetos que fizerem parte dele. Se A agrega B então B é parte de A; mas seus tempos de vida são independentes. Pedido Produto José Luiz Rodrigues Jr Cliente Análise o projetos de sistemas orientados a objetos AOO-55 Composição – Estrutura todo-parte Propriedade de uma Classe formar suas instâncias a partir da reunião das características e do comportamento de outras instâncias da mesma Classe ou de Classes diferentes, sendo que os componentes não têm existência indepedente em relação ao composto, ou seja, a eliminação do composto afeta a existência dos elementos que o criaram. Se A é composto de B então A controla o tempo de vida de B. Lâmpada Base José Luiz Rodrigues Jr Bulbo Análise o projetos de sistemas orientados a objetos Filamento AOO-56 Classes abstratas São Classes utilizadas apenas para organizar a estrutura, já que ela não será instanciada. Ela define um conjunto mínimo de atributos e métodos virtuais, que deverão ser implementados pelas SubClasses. Uma Classe abstrata sugere uma técnica de “design” e muitas vezes aumenta a clareza da modelagem Aluno Graduação José Luiz Rodrigues Jr Classe Abstrata Classes Concretas Análise o projetos de sistemas orientados a objetos Pós-Graduação AOO-57 Classes abstratas Uma Classe Abstrata é uma classe que: provê organização não possui instâncias possui uma ou mais operações abstratas possui subclasses que implementam estas operações Uma operação abstrata só determina a existência de um comportamento não definindo uma implementação José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-58 Classes - Relacionamentos Um relacionamento modela uma conexão física ou conceitual entre objetos Relacionamentos são bidirecionais Restringe o número de objetos que podem ser associados com outros objetos numa relação É denotada por um verbo Cliente 1 faz * Pedido Objetos da classe Cliente estão associados a Objetos da classe Pedido José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-59 Classes - Relacionamentos Exatamente 1 Gerente Opcional 0 ou 1 Empregado Opcional 1 ou muitos Departam. Maior ou igual a 0 Numericamente especificado José Luiz Rodrigues Jr Cliente Aluno 1 participa 1 1 participa 0..1 1 aloca 1..* 1 faz 1 empresta Análise o projetos de sistemas orientados a objetos * 0..5 Projeto Projeto Empregado Pedido Livro AOO-60 Polimorfismo No contexto OO, Polimorfismo significa que diferentes tipos de Objetos podem responder a uma mesma mensagem de maneiras diferentes Aplicação Financeira calcularSaldo() redefinição da operação de calcularSaldo (overriding) mesmo nome (calcularSaldo) para 3 funções (overloading) Renda Fixa calcularSaldo() José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos Poupança calcularSaldo() AOO-61 Polimorfismo Pode-se declarar funções e procedimentos com os mesmos nomes, enquanto suas chamadas possam a ser distintas pelos seus parâmetros de retorno, consistindo do número dos seus argumentos e dos seus tipos de valores de retorno José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-62 Operações Representa um tipo de reação a qual um Objeto está preparado para ter ao ser estimulado (comportamento). Existem alguns tipos de reações que uma Operação pode causar em um Objeto: Construtoras – geração de um novo Objeto da Classe (instanciação) Seletoras – recuperação do conteúdo dos atributos de um Objeto, sem alterá-los Modificadoras – alteração do valor dos atributos ou estado de um Objeto Destrutoras – eliminação de um objeto existente José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-63 Métodos Conjunto de instruções associado com a operação de uma classe, propiciando comportamento aos objetos da Classe Procedimento ou função associada com uma Classe Invocado somente por meio de passagem de mensagens por: Objetos de outras Classes Interface de usuário Lógica do programa Permite manipular os valores de atributos do objeto Métodos têm nome, representados por um verbo, que denotam o resultado esperado; podem ter parâmetros; cada parâmetro tem nome e tipo Ex.: alterarNome (cpf,nome) //normalmente primeira letra minúscula José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-64 Diagramas UML 1. Diagramas de casos de uso (casos + atores + relações) 2. Diagramas de seqüência (detalhamento - fase projeto) 3. Diagramas de colaboração (troca de mensagens entre objetos) 4. Diagramas de classes (classes + responsabilidades -- atributos, relacionamentos, métodos, cenários) 5. Diagramas de estados (ciclos de vida, comportamentos) 6. Diagrama de atividades (ordenamento dos casos de uso) 7. Diagrama de componentes (grupo de objetos divididos em nodos físicos) José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-65 Visão de casos de uso Descreve a funcionalidade que o sistema deve oferecer, do ponto de vista do mundo externo. O mundo externo é representado por um conjunto de atores ou atores externos que interagem com o sistema. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-66 Visão de casos de uso Os casos de uso são levantados a partir da idéia de necessidade do sistema, antes mesmo de se pensar numa arquitetura para o mesmo. Eles são a base do processo uma vez que dirigem o desenvolvimento das demais visões. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-67 Visão de casos de uso O objetivo final do sistema é oferecer a funcionalidade descrita pelos casos de uso. Sendo assim, a visão dos casos de uso é importante também na validação do sistema. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-68 Casos de uso - simbologia Caso de uso Ator nome Comunicação rótulo rótulo Interação bidirecional Unidirecional Relações <<include>> <<extend>> Uses – Passos comuns Extends – Passos adicionais Generalização/Especialização José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-69 Casos de uso - simbologia Símbolo de ator Nome do ator nome Propriedades Iniciador Tipo Usuário Sistema Descrição José Luiz Rodrigues Jr Um ator pode representar 1. Um papel que indica o que inicia o caso de uso, ou que recebe a informação 2. Outro sistema que fornece a informação requisitada, ou que recebe mensagens Análise o projetos de sistemas orientados a objetos AOO-70 Interações em casos de uso Comunicação: um Ator comunica-se com o Caso de Uso. Extensão: demonstra como o comportamento definido para o primeiro caso pode ser inserido no comportamento definido para o segundo. Sugere a existência de casos adicionais e alternativos Generalização: um caso de uso é uma especialização de outro, e herda características Uso ou inclusão: ocorre quando surge a divisão de um caso de uso mais complexo, que inclui outros mais simples, e a identificação de passos comuns, que podem ser reutilizados por outros casos de uso. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-71 Interações em casos de uso Venda Cliente <<extende>> <<inclui>> Pedir Produto José Luiz Rodrigues Jr Requisitar Catálogo Análise o projetos de sistemas orientados a objetos Generalização Venda c/ cartão AOO-72 Casos de uso <<include>> (<<uses>>) O tipo de generalização <<include>> ou <<uses>> é usado para descrever o comportamento comum entre dois ou mais use cases Utilizados para identificar comportamentos reutilizáveis pelas regras de negócio José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-73 Casos de uso –<<include>> A generalização <<uses>> indica que uma instância de RealizarPedido utiliza todos os comportamentos descritos por ValidarCliente. O comportamento descrito por ValidarCliente é obrigatório para o use case RealizarPedido. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-74 Casos de uso - <<Extend>> O tipo de generalização <<extend>> é usado para expressar comportamento opcional por um use case Utilizados para identificar comportamentos que podem ser reutilizados pelas regras de negócio José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-75 Casos de uso - <<Extend>> A generalização <<extends>> indica que o use case RealizarPedido pode utilizar o use case CadastrarCliente. O comportamento descrito por CadastrarCliente é opcional para o use case RealizarPedido. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-76 Diagrama de sequência (Interação) Um diagrama de sequência mostra a colaboração dinâmica entre os vários objetos de um sistema O mais importante aspecto deste diagrama é que a partir dele percebe-se a sequência de mensagens enviadas entre os objetos Mostra a interação entre os objetos, alguma coisa que acontecerá em um ponto específico da execução do sistema José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-77 Diagrama de sequência-Exemplo um funcionário a { b – a < 1 segundo } b { c – b < 10 segundos } c d { d – d’ < 5 segundos } d’ José Luiz Rodrigues Jr um telefone um cliente retira fone do gancho tom de discagem disca o número chamada sendo roteada chamando chamando voz do cliente atende chamada Análise o projetos de sistemas orientados a objetos AOO-78 Diagrama de colaboração (Interação) Mostra de maneira semelhante ao diagrama de sequência, a colaboração dinâmica entre os objetos Pode-se escolher entre utilizar o diagrama de colaboração ou o diagrama de sequência Se a ênfase do diagrama for o decorrer do tempo, é melhor escolher o diagrama de sequência Se a ênfase for o contexto do sistema, é melhor dar prioridade ao diagrama de colaboração José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-79 Diagrama de colaboração (Interação) 1: evento janela de entrada de pedido vendedor: pessoa 2: preparar() 3: preparar() um item do pedido um pedido 4: remover [verificação == verdadeiro] () 5: atualizarPedido() um item do estoque José Luiz Rodrigues Jr um item de entrega Análise o projetos de sistemas orientados a objetos AOO-80 Diagrama de classes Demonstra a estrutura estática das classes de um sistema onde estas representam as "coisas" que são gerenciadas pela aplicação modelada Classes podem se relacionar com outras através de diversas maneiras: Associação (conectadas entre si) Dependência (uma classe depende ou usa outra classe) Especialização (uma classe é uma especialização de outra classe) Pacotes (classes agrupadas por características similares). José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-81 Diagrama de classes - Exemplo Classes Relacionamento Pr é dio 1 possui Apar tam e nto * Cardinalidade José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-82 Diagrama de classes - Cardinalidade N 0...1 N...M * 1... José Luiz Rodrigues Jr * Exatamente N 0 ou 1 Entre N e M (Incluindo os extremos) Zero ou M uitos 1 ou muitos Análise o projetos de sistemas orientados a objetos AOO-83 Diagrama de estados Um diagrama de estado representa o ciclo de vida de um objeto. Para isso ele mostra os estados que um objeto pode ter e como os eventos afetam estes estados. Podem ser considerados eventos o recebimento de uma mensagem, uma condição que se tornou verdadeira ou a passagem de um período de tempo designado após um determinado evento. O objeto emite uma resposta a um estímulo(evento) recebido. Podem haver ações associadas às respostas. José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-84 Diagrama de estados - Evento Um evento é uma ocorrência que pode disparar uma transição do estado Cada nome de evento pode aparecer no máximo uma vez em um único estado José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-85 Diagrama de estados - Exemplo cancelamento de pedido solicitado Cancelando Pedido pedido enviado alteração de pedido solicitada Alterando Pedido Registrando Pedido pedido cancelado pedido requisitado para análise pedido requisitado para análise pedido será cancelado Analisando Pedido pedido para aprovação pedido já pode ser atendido Aprovando Pedido pedido não pode ser atendido no momento Colocando pedido em pendência José Luiz Rodrigues Jr pedido será atendido Atendendo pedido pedido atendido Análise o projetos de sistemas orientados a objetos AOO-86 Diagrama de atividade Captura ações e seus resultados Focaliza o trabalho executado na implementação de uma operação (método), e suas atividades numa instância de um objeto José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-87 Diagrama de atividade – Exemplo Selecionar local contratar arquiteto desenvolver plano orçar plano [rejeitado ] [senão] fazer trabalho no local fazer trabalho em outros setores Construir edificação José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-88 Diagrama de componentes Descreve os componentes de software e suas dependências entre si, representando a estrutura do código gerado Componentes são a implementação na arquitetura física dos conceitos e da funcionalidade definidos na arquitetura lógica (classes, objetos e seus relacionamentos) José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-89 Diagrama de componentes - Exemplo José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-90 Bibliografia MODELAGEM DE OBJETOS ATRAVÉS DA UML Furlan, José Davi Makron Books UML ESSENCIAL Um Breve Guia para a linguagem-padrão de modelagem de objetos Fowler, Martin e Scott, Kendall Bookman APPLYING UML AND PATTERNS An Introduction to Object-Oriented Analysis and Design Larman, Craig UML TOOLKIT Eriksson, Hans-Erik and Penker, Magnus FUNDAMENTOS DO DESENHO ORIENTADO A OBJETOS COM UML Page-Jones, Meilir Makron books José Luiz Rodrigues Jr Análise o projetos de sistemas orientados a objetos AOO-91