Capitulo 14 - UML - Casos de Uso e Diagramas de Classes

Embed Size (px)

Citation preview

  • UMLhttp://www.uml.org/#UML2.0Aula de Luiz Eduardo Guarino de Vasconcelos

  • Objetivos Histria Tecnologia OO UML Pacotes Diagrama de Classe

    Atributos Mtodos Visibilidade

  • Histria

    60, 70 COBOL, FORTRAN, C Mtodos de Anlise e Projeto Estruturado

    80 incio 90s Smalltalk, ADA, C++, Object Pascal Gerao dos mtodos OO

    90: Incio de atrao por OO Java, UML, Unified Process Proliferao de Mtodos de Desenvolvimento OO

  • Tecnologia OO

    Mais do que um Modo de Programar Modo de pensar abstrato sobre um domnio de

    problemas usa conceitos do mundo real ao invs de

    conceitos computacionais Baseada em construes chamadas objetos,

    proporciona um paradigma evolucionrio para: criar modelos do mundo real em computador usar estes modelos para simular o mundo real

    Transio difcil para algumas pessoas

  • Como surgiu OO?

    94: Parceria de metodologistas: Booch (Booch Method) e Rumbaugh (OMT) Busca de Unified Method (UM)

    95: Rational compra Objective Systems de Jacobson (Objectory OOSE) parceria Booch/Rumbaugh estendida com

    Jacobson Unified Modeling Language (UML) ao invs de

    UM) 98: Reengenharia de livros, mtodos e cases

    OO para incluir UML

  • O que UML?

    um padro aberto verso 1.1 aprovada pelo OMG (Object

    Management Group) em Novembro de 1997 verso 1.3 aprovada em Junho de 1999 1.4, 2.0, 2.2 (2009), 2.4 (Mar 2011)

    Suporta todo o ciclo de vida do software modelagem do negcio (processos e objetos do

    negcio) modelagem de requisitos alocados ao software modelagem da soluo de software

  • Parceiros da UML

    Rational Software Corporation

    HewlettPackard Ilogix IBM ICON Computing Intellicorp MCI Systemhouse

    Microsoft ObjecTime Oracle Platinum Technology Taskon Texas

    Instruments/SterlingSoftware

    Unisys

  • Modelos e Diagramas Modelos

    Diagramas de Casos de Uso Diagramas de Classes Diagramas de Objetos Diagramas de Componentes Diagramas de Distribuio Diagramas de Sequncia Diagramas de Colaborao Diagramas de Estados Diagramas de Atividades http://www.omg.org/technology/documents/modeling_spec_catalog.htm#UML

  • UMLDIAGRAMA DE CASODE USOAula de Luiz Eduardo Guarino de Vasconcelos

  • Diagramas de Caso de Uso

    Facilitam o entendimento de um sistema mostrando a sua viso externa

    So usados para modelar o contexto de um sistema, subsistema ou classe

    Uma das maneiras mais comuns de documentar os requisitos do sistema (as funcionalidades)Delimitam o SistemaDefinem a funcionalidade do sistema

    Representa os requisitos funcionais do sistema

  • Utilidade dos Casos de Uso

    Equipe de clientes (validao) aprovam o que o sistema dever fazer entendem o que o sistema dever fazer

    Equipe de desenvolvedores Ponto de partida para refinar requisitos de

    software. Podem seguir um desenvolvimento dirigido a

    casos de uso. Designer (projetista): encontrar classes Testadores: usam como base para casos de

    teste

  • AtoresExemplos Constituem as entidades do ambiente do

    sistema So pessoas ou outros subsistemas que

    interagem com o sistema em desenvolvimento Cargos (Empregado, Cliente, Gerente, Almoxarife,

    Vendedor, etc); Organizaes (Empresa Fornecedora, Agncia de

    Impostos, Administradora de Cartes, etc); Outros sistemas (Sistema de Cobrana, Sistema de

    Estoque de Produtos, etc). Equipamentos (Leitora de Cdigo de Barras,

    Sensor, etc.)

  • Atores

    Um ator algum ou algum outro sistema que deve interagir com o sistema em desenvolvimento

  • Especializao

    possvel definir tipos gerais de atores e especializ-los usando o relacionamento de especializao

  • Encontrando Atores Podem ser identificados pelas seguintes questes:

    Quem usar a funcionalidade principal do sistema (atores primrios)?

    Quem precisar do auxlio do sistema para fazer suas tarefas dirias?

    Quem precisar manter, administrar, conservar o sistema funcionando (atores secundrios)?

    Que dispositivos de hardware o sistema precisa para funcionar? Com que outros sistemas o sistema precisa interagir? Quem ou o que tem interesse nos resultados que o sistema

    produz? No considere apenas os usurios que usam o sistema

    diretamente, mas todos os outros que precisam dos servios do sistema

  • Casos de Uso

    Atores so examinados para determinar as suas necessidades (funcionalidades) Gerente de Campanha - adiciona um novo cliente Funcionrio de Contato - Altera um contato do

    cliente Contador - Registra o pagamento do cliente

  • Casos de UsoDefinio Uma unidade coerente de funcionalidade

    provida por um classificador (um sistema, subsistema ou classe) manifestado por uma sequncia de mensagens trocadas entre o sistema e um ou mais usurios externos (representados como atores), junto com as aes executadas pelo sistema.

  • Casos de UsoDescrio UC Pode ser numa forma resumida ou numa

    forma mais detalhada na qual a interao entre o ator e o caso de uso descrita passo a passo.

    Descreve interaes assim como o usurio v, e no uma definio de processos internos do sistema ou algum tipo de especificao de programa. Sob ponto de vista do ator.

    Um documento com o fluxo de eventos criado para cada caso de uso

  • Exemplo de descrio contnua Este caso de uso inicia quando o Cliente chega

    ao caixa eletrnico e insere seu carto. O Sistema requisita a senha do Cliente. Aps o Cliente fornecer sua senha e esta ser validada, o Sistema exibe as opes de operaes possveis. O Cliente opta por realizar um saque. Ento o Sistema requisita o total a ser sacado. O Cliente fornece o valor que deseja sacar. O Sistema fornece a quantia desejada e imprime o recibo para o Cliente. O Cliente retira a quantia e o recibo, e o caso de uso termina.

  • Exemplo de descrio numerada 1) Cliente insere seu carto no caixa eletrnico. 2) Sistema apresenta solicitao de senha. 3) Cliente digita senha. 4) Sistema valida a senha e exibe menu de operaes

    disponveis. 5) Cliente indica que deseja realizar um saque. 6) Sistema requisita o valor da quantia a ser sacada. 7) Cliente fornece o valor da quantia que deseja sacar. 8) Sistema fornece a quantia desejada e imprime o

    recibo para o Cliente 9) Cliente retira a quantia e o recibo, e o caso de uso

    termina.

  • Exemplo de descrio tabular

  • Caso de Uso detalhadoContedo Nome Descrio Identificador Importncia Sumrio Fluxo Principal Fluxos

    Alternativos Fluxos de

    Exceo

    Ps-condies Ator Primrio Atores Secundrios Pr-condies Regras do Negcio Histrico Notas de

    Implementao

  • Exemplo - Descrio TextualCSU001 Atualizar informaes do Professor

  • Caso de Uso detalhadoDicas para documentar Comece o nome do caso de uso com um verbo no

    infinitivo. O nome deve representar o que o UC faz. Tente descrever os passos sempre na forma sujeito +

    predicado. Ou seja, deixe explcito quem o agente da ao

    No descreva como o sistema realiza internamente um passo de um caso de uso.

    Foque no objetivo desse ator. Exemplos: Registrar Pedido, Abrir Ordem de Produo, Manter Referncia, Alugar Filme...

    Tente manter a descrio de cada caso de uso no nvel mais simples possvel...

  • Diagrama de Caso de Uso Uma associao entre um ator e um use case indica

    que h uma comunicao, possivelmente com envio e recepo de mensagens

    So criados para visualizar as relaes entre os atores e os Casos de Uso

    Permite dar uma viso global e de alto nvel do sistema.

  • Exemplo 1

  • Exemplo 2

  • Exerccio 1

    O sistema para a Locadora de Veculos consiste na automatizao do processo de locao e gerenciamento de veculos (areos, terrestres e martimos), bem como do controle de itens que podem ser adicionados ao aluguel, tais como combustvel, seguro (danos materiais) e condutor do veculo. O sistema deve permitir que consultas sejam realizadas. Tudo isto deve estar disponvel ao gerente. O sistema deve emitir diversos tipos de relatrios, possibilitando um melhor gerenciamento dos aluguis. O administrador da empresa deve ter acesso a tudo disponvel ao gerente e aos relatrios. Os usurios podem se cadastrar no site, realizar consultas a veculos disponveis, realizar reservas e entrar em contato com a Locadora.

  • Os problemas a serem solucionados compreendem a correta venda de bilhetes, gerao de relatrios de estatsticas e de receita (total da venda dos bilhetes). Deve permitir a criao de promoes para determinados dias e sesses. Deve permitir, para determinados usurios, a realizao de incluso, alterao e excluso de preos, filmes em cada sala, perodo de validade dos preos, horrios de sesses e outros. O software precisa prover o controle de permisses para os diversos tipos de usurios (gerentes, etc). Deve permitir a busca por filmes de maneira on-line por vrios atributos diferentes, tais como nome, atores, palavras-chave dentre outros.

    Exerccio 2

  • Encontrando Casos de Uso

    Faa as seguintes perguntas para cada atorQue funes o ator requer do sistema? O que

    o ator precisa fazer?O ator precisa ler, criar, destruir, modificar, ou

    armazenar alguns tipos de informaes no sistema?

    O ator tem que ser notificado sobre eventos no sistema? Ou o ator precisa notificar o sistema sobre alguma coisa? O que estes eventos representam em termos de funcionalidade?

  • Encontrando Casos de Uso

    Faa as seguintes perguntas para cada ator (cont.)O trabalho dirio do ator poderia ser

    simplificado ou feito com mais eficincia atravs de novas funes no sistema? Quais?

    Sem considerar os atores atuaisQuais entradas/sadas o sistema precisa ? De

    onde as entradas vm e para onde as sadas vo?

    Quais so os maiores problemas com a implementao atual do sistema?

  • Organizando Casos de Uso

    Generalizao Incluso Extenso

  • Caso de UsoGeneralizao Relaciona um Use Case especializado a um

    mais geral . O UC filho: Herda os atributos, operaes e sequncias de

    comportamento dos pais Pode adicionar e redefinir o comportamento do pai Pode substituir o pai em qualquer lugar que ele

    aparece Os UCs Checar password e Scan de retina

    ambos servem para validar o usurio. Identificar um use case abstrato Validar usurio

    para realizar esta validao.

  • Caso de UsoGeneralizao

  • Caso de UsoIncluso O use case base incorpora explicitamente o

    comportamento de outro use case no local especificado na base.

    O use case includo nunca estar sozinho, somente ser instanciado de um use case base que o incluir.

    Usado para evitar a descrio do mesmo fluxo de eventos vrias vezes.

  • Caso de UsoIncluso

  • Caso de UsoIncluso

    Use Case: Sesso de ATM

    Mostre anncio do dia Include Identificar

    Cliente Include Validar Conta Imprimir cabealho do

    recibo Log out

    UC Incluso: Identificar Cliente

    Pegue o nome do cliente Include Verificar Identidade if falha de verificao then

    abort a sesso Else obtenha nmero da

    conta do cliente UC Incluso: Validar Conta Estabelea conexo com

    banco de dados de contas Obtenha status e limite da

    conta

  • Caso de UsoExtenso Usado para:

    Para modelar partes opcionais de use cases

    Para modelar cursos alternativos e/ou complexos que raramente ocorrem (e.g. Entrega Urgente)

  • Caso de UsoExtenso

    Use Case Fazer Pedido Fluxo principal de eventos:

    include (Validar usurio). Receber do usurio os itens

    do pedido (set prioridade). Submeter o pedido para

    processamento.

  • Documentao Associada O modelo de casos de uso exige do desenvolvedor o

    entendimento de como os agentes externos interagem com o sistema.

    MCU corresponde somente aos requisitos funcionais. Outros tipos de requisitos (desempenho, interface,

    segurana, regras do negcio, etc.) tambm devem ser identificados e modelados.

    Esses outros requisitos fazem parte da documentao associada ao MCU.

    Dois itens importantes dessa documentao associada so o modelo de regras do negcio e os requisitos de desempenho

  • Exemplos de Regras de Negcio O valor total de um pedido igual soma dos

    totais dos itens do pedido acrescido de 10% de taxa de entrega.

    Um professor s pode estar lecionando disciplinas para as quais esteja habilitado.

    Um cliente de uma das agncias do banco no pode retirar mais do que R$ 1.000 por dia de sua conta. Aps as 18:00h, esse limite cai para R$ 100,00.

    Os pedidos para um cliente especial devem ser pagos antecipadamente.

  • Regras do Negcio

    Possvel formato para documentao de uma regra de negcio no MRN.

  • Requisitos de Desempenho

    Conexo de casos de uso a requisitos de desempenho.

  • Modelando o DCU

    Em sistemas complexos, representar todos UCsdo sistema em um nico DCU talvez o torne um tanto ilegvel.

    Alternativa: criar vrios diagramas (de acordo com as necessidades de visualizao) e agrup-los em pacotes. Todos os casos de uso para um ator; Todos os casos de uso a serem implementados em

    um ciclo de desenvolvimento. Todos os casos de uso de uma rea (departamento,

    seo) especfica da empresa.

  • Modelando o DCU

  • Modelando o Contexto do Sistema Identifique os atores que cercam o sistema ? Quais grupos precisam de ajuda do sistema

    para executarem suas tarefas ? Quais os grupos necessrios para executar

    as funes do sistema ? Quais grupos interagem com hardware

    externo ou outros sistemas de software ? Quais grupos executam funes

    secundrias de administrao e manuteno

  • Modelando o Contexto do Sistema ? Organize os atores que so similares em

    uma hierarquia de generalizao / especializao.

    ? Use os atores no diagrama de use cases e especifique os caminhos de comunicao entre atores e use cases do sistema.

  • Modelando Requisitos do Sistema Estabelea o contexto do sistema atravs da

    identificao dos atores que o cercam Para cada ator, considere o comportamento que eles

    esperam e requerem que o sistema produza D um nome aos comportamentos comuns (Caso de

    Uso) Fatore comportamentos comuns em novos use cases

    que sero usados por outros Fatore comportamento variante em novos use cases

    que estendem a fluxo principal de eventos Modele os use cases, atores e seus relacionamentos

    atravs de diagramas de use case

  • Resumo da Notao

  • Exerccio 1

    O sistema para a Locadora de Veculos consiste na automatizao do processo de locao e gerenciamento de veculos (areos, terrestres e martimos), bem como do controle de itens que podem ser adicionados ao aluguel, tais como combustvel, seguro (danos materiais) e condutor do veculo. O sistema deve permitir que consultas sejam realizadas. Tudo isto deve estar disponvel ao gerente. O sistema deve emitir diversos tipos de relatrios, possibilitando um melhor gerenciamento dos aluguis. O administrador da empresa deve ter acesso a tudo disponvel ao gerente e aos relatrios. Os usurios podem se cadastrar no site, realizar consultas a veculos disponveis, realizar reservas e entrar em contato com a Locadora.

  • Os problemas a serem solucionados compreendem a correta venda de bilhetes, gerao de relatrios de estatsticas e de receita (total da venda dos bilhetes). Deve permitir a criao de promoes para determinados dias e sesses. Deve permitir, para determinados usurios, a realizao de incluso, alterao e excluso de preos, filmes em cada sala, perodo de validade dos preos, horrios de sesses e outros. O software precisa prover o controle de permisses para os diversos tipos de usurios (gerentes, etc). Deve permitir a busca por filmes de maneira on-line por vrios atributos diferentes, tais como nome, atores, palavras-chave dentre outros.

    Exerccio 2

  • Exerccio 1

    Construa um modelo de casos de uso para a seguinte situao fictcia: "Estamos criando um servio de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Alguns volumes so considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor".

  • Exerccio 2

    Uma loja de Cds possui discos para venda e locao. Um cliente pode comprar ou locar uma quantidade ilimitada de discos. Para locar obrigatrio que o cliente esteja cadastrado na loja. A loja possui um funcionrio cuja funo atender os clientes durante a venda e locao dos discos. Suas principais tarefas so: conferir o pagamento efetuado pelos clientes; emitir recibo de venda(emisso obrigatria) e locao (emisso obrigatria); ao final do dia, anotar em uma caderneta o valor de cada venda.

  • Exerccio 3

    O vendedor de uma loja de eletrodomsticos, ao efetuar uma venda, encaminha o cliente para o caixa para a realizao do pagamento do eletrodomstico adquirido. Independentemente da forma de pagamento, o caixa deve verificar, se o cliente no consta do SPC. Aps ter recebido o pagamento do cliente, o caixa deve emitir a nota fiscal ao consumidor. efetuada a baixa no estoque ao final do dia. No final do ms o vendedor deve emitir um relatrio de vendas realizadas para o gerente da loja .

  • Exerccio 4 Uma prefeitura municipal, atravs do Secretrio Municipal de

    Sade, cadastra todos os mdicos que se dispe a trabalhar no servio pblico de sade do municpio. A prefeitura possui diversas unidades de atendimento (hospitais, postos de sade, ambulatrios mdicos, etc) e o Secretrio Municipal de Sade tambm mantm o cadastro destas unidades. Os cidados que desejam ter acesso ao atendimento do sistema pblico do municpio so cadastrados, pelos funcionrios das unidades de atendimento, previamente ou no momento de algum atendimento. O cidado pode agendar consultas mdicas em qualquer unidade de atendimento, atravs dos funcionrios da unidade de atendimento. Mensalmente, o Secretrio Municipal de Sade estabelece uma escala de mdicos para cada unidade de atendimento. A qualquer momento, o Secretrio Municipal de Sade pode extrair relatrios com indicadores do funcionamento do sistema. Diariamente, os funcionrios das unidades de atendimento listam as consultas mdicas agendadas para cada mdico, para acompanhamento.

  • Exerccio 5 Uma empresa de organizao de eventos gerencia seus

    compromissos da forma descrita a seguir. Os clientes so cadastrados pelos representantes da empresa, juntamente com o evento que deseja que seja organizado. Se um cliente j existir no momento de cadastrar um evento, verificado se seus dados esto atualizados e, se no estiver, as alteraes de cadastro so realizadas. Uma vez definido o evento, inicia-se um processo de divulgao do evento, pelo representante da empresa, aos potenciais participantes do evento, atravs de mala direta, utilizando-se um banco de dados. A qualquer momento,orepresentante da empresa pode acrescentar nomes neste banco de dados. O representante da empresa tambm pode emitir relatrios de providncias a serem tomadas, a medida em que se aproxima o evento. Aps a realizao do evento, o representante faz o balano, para sua apurao de custos e lucro.

  • UMLDIAGRAMA DE CLASSEAula de Luiz Eduardo Guarino de Vasconcelos

  • Diagrama de Classe

    Um diagrama de classes serve para modelar o vocabulrio de um sistema, do ponto de vista do utilizador/problema ou do implementador/soluo Ponto de vista do utilizador/problema na fase

    de captura e anlise de requisitos, em paralelo com a identificao dos casos de utilizao

    Vocabulrio do implementador/soluo na fase de projeto

    Construdo e refinado ao longo das vrias fases do desenvolvimento do software

  • Objetivos Tambm serve para:

    Especificar colaboraes (no mbito de um caso de utilizao ou mecanismo)

    Especificar esquemas lgicos de bases de dados Especificar vises (estrutura de dados de

    formulrios, relatrios, etc.) Modelos de objetos de domnio, negcio,

    anlise e design

  • Pacotes

    Organiza as classes de objetos em grupos. Melhorar a organizao do sistema

    subsistemas Estrutura hieraquicamente o projeto Estrutura fisica dos arquivos do projeto Nomenclatura

    MinsculoEndereos de web

  • Pacotes

    br.edu.fatec.academico

    br.com.uol.internet

    org.kernel.drives

  • Pacotes

    br.edu.fatec.academico

    graduacao posgraduacao

  • Mundo Real x Computacional

    No desenvolvimento de software orientado por objetos, procura-se imitar no computador o mundo real visto como um conjunto de objetos que interagem entre si

    Muitos objetos computacionais so imagens de objetos do mundo real

    Exemplos de objetos do mundo real:o Sr. Jooa aula de ES no dia 11/10/2000 s 11 horas

  • Objetos Um objeto algo com fronteiras bem definidas, relevante para o

    problema em causa, com estado, modelado por valores de atributos (tamanho, forma, peso, etc.) e por ligaes que num dado momento tem com outros objetos

    Comportamento um objeto exibe comportamentos invocveis (por resposta a

    chamadas de operaes) ou reativos (por resposta a eventos) Identidade

    no espao: possvel distinguir dois objetos mesmo que tenham o mesmo estado

    no tempo: possvel saber que se trata do mesmo objeto mesmo que o seu estado mude

  • Classes

    Uma classe um descritor de um conjunto de objetos que partilham as mesmas propriedades (semntica, atributos, operaes e relaes)

    Um objeto de uma classe uma instncia da classe

    A extenso de uma classe o conjunto de instncias da classe

  • Classes

    Em UML, uma classe representada por um retngulo com o nome da classe

    Habitualmente escreve-se o nome da classe no singular (nome de uma instncia), com a 1 letra em maiscula

    Aluno Triangulo

    Disciplina Equacao2Grau

    ItemAgenda

  • Atributos O estado de um objeto dados por valores de atributos (e

    por ligaes que tem com outros objetos) Todos os objetos de uma classe so caracterizadas pelos

    mesmos atributos (ou variveis de instncia) o mesmo atributo pode ter valores diferentes de objeto

    para objeto Atributos so definidos ao nvel da classe, enquanto que os

    valores dos atributos so definidos ao nvel do objeto Exemplos:

    uma pessoa (classe) tem os atributos nome, data de nascimento e peso

    Joo (objeto) uma pessoa com nome Joo Silva, data de nascimento 18/3/1973 e peso 68 Kg

  • Atributos Atributos so listados num compartimento de atributos

    (opcional) a seguir ao compartimento com o nome da classe

    Uma classe no deve ter dois atributos com o mesmo nome

    Os nomes dos tipos no esto pr-definidos em UML, podendo-se usar os da linguagem de implementao

    Pessoanome: stringaltura: intpeso: double = 75

    compartimento de atributos

    nome do atributo tipo de dados valor inicial por default

    classe

  • Exemplo

    Nome do atributo em minsculo e a primeira letra da concatenao de palavra em maiscula

    Expressao2Grau

    a: doubleb: doublec: double

    TrianguloladoA: doubleladoB: doubleladoC: doubleanguloAB: doubleanguloBC: doubleanguloCA: double

  • Atributos estticos

    Atributo esttico: tem um nico valor para todas as instncias (objetos) da classe valor est definido ao nvel da classe e no ao

    nvel das instncias Sublinha o atributo esttico

    Provainicio: Datetermino: Datenota: Real

  • Operaes (Mtodos) Comportamento invocvel de objetos

    modelado por operaes uma operao algo que se pode pedir para

    fazer a um objeto de uma classe objetos da mesma classe tm as mesmas

    operaes Operaes so definidos ao nvel da classe,

    enquanto que a invocao de uma operao definida ao nvel do objeto

  • Operaes (Mtodos) Princpio do encapsulamento: acesso

    e alterao do estado interno do objeto (valores de atributos e ligaes) controlado por operaes (Padro POJO - POCO)

    Nas classes que representam objetos do mundo real mais comum definir responsabilidades em vez de operaes

    Nome do atributo em minsculo e a primeira letra da concatenao de palavra em maiscula

    Mtodo Construtor e Destrutor

    Pessoanome: stringendereco: string

    Pessoa() getNome(): stringsetNome (v:string): voidgetEndereco(): stringsetEndereco(v:string): void~Pessoa()

  • Exemplo

    CirculocentroX: doublecentroY: doubleraio: doublegetCentroX(): doublesetCentroX (v:double): voidgetCentroY(): doublesetCentroY (v:double): voidgetRaio(): doublesetRaio(v:double): voidarea(): doubleperimetro(): double

    Alunonome: stringprova: doubletrabalho: doublegetNome(): stringsetNome (v:string): voidgetProva(): doublesetProva (v:double): voidgetTrabalho(): doublesetTrabalho(v:double): voidmedia(): doubleaprovado(): boolean

  • Mtodos estticos

    Operao esttica: no invocada para um objeto especfico da classe

    No tem uma instncia da classe para invocar o mtodo.

    Sublinha o mtodo estticoTriangulo

    ladoA: doubleladoB: doubleladoC: doublehipPitagoras(catA: double, catB: double): double

  • Visibilidade de atributos e operaes Princpio do encapsulamento: esconder todos

    os detalhes de implementao que no interessam aos clientes (utilizadores) da classe permite alterar representao do estado sem afetar

    clientes permite validar alteraes de estado

    Visibilidade+ (public) : visvel por todos- (private) : visvel s por operaes da prpria classe# (protected): visvel por operaes da prpria classe e

    descendentes (subclasses)

  • Exemplo

    Circulo-centroX: double-centroY: double-raio: double+getCentroX(): double+setCentroX (v:double): void+getCentroY(): double+setCentroY (v:double): void+getRaio(): double+setRaio(v:double): void+area(): double+perimetro(): double

    Aluno-nome: string-prova: double-trabalho: double+getNome(): string+setNome (v:string): void+getProva(): double+setProva (v:double): void+getTrabalho(): double+setTrabalho(v:double): void+media(): double+aprovado(): boolean

  • UMLDIAGRAMA DE CLASSERELACIONAMENTOAula de Luiz Eduardo Guarino de Vasconcelos

  • Objetivos Generalizao Associao Agregao Composio Dependncia

  • Generalizao Relao semntica is a ( um / uma)

    um aluno uma pessoa Relao de herana nas propriedades

    A subclasse herda as propriedades (atributos, operaes e relaes) da superclasse, podendo acrescentar outras

    Pessoa

    Aluno

    generalizao

    super-clase

    especializao

    sub-classe

  • As 3 facetas da generalizao Substitutabilidade

    onde se espera um objeto da superclasse pode-se passar um objeto duma subclasse

    Herana de interface a subclasse herda as assinaturas (e significados) das

    operaes da superclasse Herana ou overriding de implementao

    a subclasse pode herdar as implementaes das operaes da superclasse, mas tambm pode ter novas implementaes de algumas dessas operaes

    quando em UML se repete numa subclasse a assinatura de uma operao da superclasse, quer dizer que tem uma nova implementao na subclasse

  • Hierarquia das classes

    Na super classe da hierarquia colocam-se as propriedades que so comuns a todas as suas subclasses

    Evita-se redundncia, promove-se reutilizao!Poligono

    centroX: intcentroY: int

    Triangulobase: intaltura: int

    Quadradolado: int

    PoligonocentroX: intcentroY: int

    Triangulobase: intaltura: int

    Quadradolado: int

  • Herana simples / mltipla

    Herana Simples quando uma subclasse possui apenas uma superclasse

    Herana Mltipla quando uma subclasse possui mais de uma superclasse

    Pessoa

    Aluno Professor

    AlunoFuncionario

    Aluno Funcionario

    simples mltipla

  • Classes e operaes abstratas Classe abstrata: classe que no pode ter instncias

    diretas. As instncias somente pelas subclasses concretas

    Operao abstrata: operao com implementao a definir nas subclasses. Uma classe com operaes abstratas tem de ser abstrata

    Notao : nome em itlico

    PoligonocentroX: intcentroY: intarea(): double

    Triangulobase: intaltura: intarea(): double

    Quadradolado: intarea(): double

  • Associao Uma associao uma relao entre objetos das

    classes participantes (um objeto de cada classe em cada ligao)

    Essa ligao uma instncia de uma associao Implementado atravs de uma referncia entre os

    objetos relacionados Pode haver mais do que uma associao (com nomes

    diferentes) entre o mesmo par de classes Papis nos extremos da associao podem ter

    indicao de visibilidade (pblica, privada, etc.)Participante-1 Participante-2

    Papel-1 Papel-2

    Cardinal-2Nome da associaoCardinal-1

  • Nome da Associao

    A indicao do nome opcional O nome indicado no meio da linha que une

    as classes participantes Pode-se indicar o sentido em que se l o

    nome da associaoEmpresa Pessoa

    Pessoa Carro

    empregador empregado

    pessoa carros

    1 *

    Trabalha para

    Emprega

    comprado

    compra

  • Multiplicidade de Associaes

  • Acesso a Multiplicidade

    Departamento

    -nome: string-sigla: string+getNome(): string+setNome (v:string): void+getSigla(): string+setSigla (v:string): void+addFunc(v:Funcionario):bool+iteratorFunc():Iterator+removeFunc(idx:int): Funcionario+sizeOfFunc(): int

    Funcionario

    -nome: string-rg: string+getNome(): string+setNome (v:string): void+getRg(): string+setRg(v:string): void+getDepartamento(): Departamento+setDepartamento(v:Departamento): void

    func

    1 *dep

  • Associao reflexiva

    Pode- se associar uma classe com ela prpria (em papis diferentes)

    Pessoapai me

    filho

    filho

    0..1*

    *

    1

  • Associaes bidirecionais /unidirecional As associaes so classificadas quanto

    navegabilidade em: Bidirecional ambos objetos possuem

    referncia. Unidirecional deve ser armazenada em

    uma varivel de instncia na classe de origem da associao e seu tipo deve ser a classe de destino.

    Classe 1 Classe 2bidirecional

    Classe 3 Classe 4unidirecional

  • Exemplosbidirecional

    unidirecional

    Alunonome: stringendereco: string

    Disciplinanome: stringsigla: string

    alunos disciplinas* *

    Clientenome: stringendereco: string

    Fitatitulo: stringgenero: string

    clientes fitas* *

    A classe Cliente recebe a Lista de Fitas e a classe Fita no recebe nada

  • Agregao Associao com o significado contm ( constitudo por)

    / faz parte de (part of) Relao de incluso nas instncias das classes Hierarquias de objetos. Exemplo: Casa

    Cmodo

    Uma casa contm vrios cmodosUm cmodo faz parte de uma casa

    *

    1

    Quando a Casa for eliminada, os cmodos tambm devem ser eliminados atravs da classe Casa

  • Exemplosbidirecional

    unidirecional

    Institutonome: stringendereco: string

    Departamentonome: stringsigla: string

    instituto departamentos

    1 *

    Horta local: string

    Legumenome: stringpeso: double

    horta legumes* *

    Quando Instituto for eliminado, os Departamentos tambm devem ser eliminados atravs da classe Instituto. O mesmo vale para a relao Horta e Legume abaixo

  • Composio

    Forma mais forte de agregao aplicvel quando: existe um forte grau de pertence das partes ao

    todo cada parte s pode fazer parte de um todo o topo e as partes tm tempo de vida coincidente,

    ou, pelo menos, as partes nascem e morrem dentro de um todo

    a eliminao do todo propaga-se para as partes, em cascata

    Notao: losango cheio A Classe com a agregao cria, acessa e

  • Exemplosbidirecional

    unidirecional

    Carroplaca: stringmodelo: string

    Motorserie: intpotencia: double

    carro motor

    1 1

    Livrotitulo: string

    Capitulotitulo: stringgenero: string

    livro capitulos

    1 *

    Classe Carro cria Motor no construtor, destri Motor no destrutor e acessa Motor no programa principal via um Mtodo na classe Carro

  • Dependncia Relao de uso entre dois elementos (classes,

    componentes, etc.), em que uma mudana na especificao do elemento usado pode afetar o elemento utilizador

    Exemplo tpico: classe1 que depende de outra classe2 porque usa operaes ou definies da classe2

    teis para gesto de dependncias Construtor alterado. Ex.: Cliente s pode existir se

    Servidor existir. Assim, Cliente recebe Servidor no construtor alterado

    Cliente Servidor

  • Exemplos

    Para que um Estado exista necessrio que um Pas exista antes, desta forma, Estado deve receber no construtor a instncia de Pais.

    Funcionario Departamento

    Estado Pais