02_VisaoGeralUMLParte1

Embed Size (px)

Citation preview

  • 11

    Prof. Dr. Marcos [email protected]

    Classe

    Relacionamento

    Diagrama de Classe

    Pacote

    Diagrama de Pacote

    2

  • 23

    Classe uma descrio de um conjunto de objetos que

    compartilham os mesmos atributos, operaes,

    relacionamentos e semntica.

    Principal bloco de construo de um sistema orientado a objeto;

    Notao:

    Atributos

    Operaes

    Nome

    O nome da classe deve comear por letramaiscula.

    O nome do atributo deve iniciar porminsculo, porm o segundo nome deveser maisculo (camelCase).

    O nome da classe deve ser no singular.

    4

  • 35

    Nome

    Na prtica, os nomes das classes so substantivos ou expresses

    breves, definidos a partir do vocabulrio do sistema cuja

    modelagem est sendo feita.

    6

    Nome

  • 4 Um atributo uma propriedade nomeada de uma classe.

    Uma classe pode ter qualquer nmero de atributos ou mesmo

    nenhum atributo.

    7

    Atributos

    Exemplo:

    Todo funcionrio possui

    nome, data de nascimento,

    sexo

    Um objeto de uma classe

    poder ter valores especficos

    para cada um dos seus

    atributos.

    Uma operao a assinatura de uma implementao de um servio.

    Uma classe pode ter qualquer nmero de operaes ou at no ter nenhuma.

    Muitas vezes (mas nem sempre), a chamada a uma operao em determinado objeto altera os dados ou o estado do objeto.

    8

  • 5 As operaes podem ser representadas das seguintes formas: Somente o seu nome;

    Sua assinatura nome, tipo e valor padro dos parmetros e (no caso de funes) o tipo a ser retornado.

    9

    Na prtica, o nome de uma operao um verbo ou uma locuo verbal breve, representando algum comportamento da classe correspondente.

    Tipicamente, aparece com maisculo o primeiro caractere de cada palavra existente no nome da operao, exceto a primeira letra, como em mover e setaAlarme.

    Visibilidade uma propriedade cujo valor

    (public, protected, or private) denota como

    o elemento poder ser visto externamente: + public: significa que qualquer objeto que se relacione

    com a classe pode acessar os atributos ou operaes da

    classe.

    # protected: atributos e operaes de uma classe so

    acessveis apenas por ela mesma e suas subclasses.

    - private: atributos e operaes de uma classe so

    acessveis apenas pela prpria classe.

    10

  • 6 Concreta: pode ser instanciada

    Abstrata: no pode ser instanciada.

    11

    Classe Abstrata

    Toda classe deve representar uma abstrao

    conceitual do domnio do problema ou da soluo.

    Assim, uma classe bem estruturada deve:

    Ser uma abstrao de um conceito presente no domnio do

    problema ou da soluo;

    Ser fortemente coesa;

    Possuir baixo acoplamento;

    12

  • 7 Por exemplo, se o requisito : um sistema de reserva e

    venda de ingressos para apresentaes em diferentes teatros

    A tentativa de classes e atributos poderia ser: Sistema, ingresso,

    apresentao, teatro.

    13

    Por exemplo, se o requisito : um sistema de reserva e

    venda de ingressos para apresentaes em diferentes teatros

    A tentativa de classes e atributos poderia ser: Reservar ingressos,

    vender ingressos

    14

  • 8 Especifica como as classes se relacionam;

    Podem ser de trs tipos: Dependncia: relao usa. Generalizao: relaciona classes generalizadas

    com suas especializaes. Associao: representa relao estrutural entre

    duas classes. Associao simples. Agregao: faz parte. Composio: membro de.

    15

    Relacionamento: um tipo de.

    16

    Classe Base

    Generalizao

    Classes Folha

  • 9 Uma associao uma conexo semntica bidirecional entre

    classes.

    Indica que existe uma ligao entre objetos das classes

    associadas.

    A notao UML de uma associao mostrada como uma

    linha conectando classes associadas.

    Exemplo : Vendedor vende Produto.

    17

    Vendedor ProdutoVende

    Navegao Considerando uma associao simples entre duas classes,

    como Livro e Biblioteca, possvel navegar de objetos de um tipo at objetos de outro tipo. A menos que seja especificado o contrrio, a navegao bidirecional.

    Para indicar a direo da navegao, podemos incluir setas indicando a direo a ser seguida.

    18

  • 10

    19

    Associao

    Generalizao

    uma forma especializada de associao, na qual uma classe faz parte da outra.

    A notao UML de uma agregao uma associao com um diamante prximo a classe que representa o agregador (todo).

    20

  • 11

    Um tipo de associao que representa a relao todo-parte.

    Utilizado quando: As partes so parte do agregador;

    Ou o agregador formado de partes;

    21

    um tipo forte de agregao. Se o objeto agregador

    for destrudo, suas partes tambm o sero.

    O objeto parte s existe para compor o agregador. membro de.

    22

  • 12

    Exemplos:

    23

    Embora a multiplicidade seja especificada para classes, ela define a quantidade de objetos que participam de um relacionamento.

    24

  • 13

    Mltiplos objetos pertencentes mesma classe podem

    precisar comunicar-se uns com os outros. Isso mostrado no

    diagrama de classe como uma associao ou agregao

    reflexiva.

    Exemplo: Disciplinas de um curso de graduao, algumas

    delas necessitam de pr-requisitos para serem cursadas.

    25

    So conceitos que so relacionados com

    associaes.

    So representados como classes ligadas a

    associaes atravs de linhas pontilhadas.

    Exemplo:

    26

  • 14

    27

    28

  • 15

    Coleo de operaes que especificam os servios de umaclasse ou componente.

    Descreve os comportamentos que podem ser acessadosexternamente.

    similar a uma classe entretanto,

    No possui estado;

    Os mtodos no esto implementados.

    Declarando a interface, voc pode estabelecer o comportamento desejado de uma abstrao independente de qualquer implementao desta interface.

    29

    Notao Uma interface representada graficamente como

    um crculo.

    30

    ISensor IValidao IBusca

    Na prtica, os nomes das interfaces so curtos ou expresses nominais definidas a partir do vocabulrio do sistema que est sendo modelado.

    Para diferenciar Interface e uma classe podemos utilizar a letra I antes do nome de cada Interface.

  • 16

    Quando visualizamos a interface como um crculo, suprimimos a

    exibio das operaes, caso seja necessrio, podemos

    representar a interface como uma classe estereotipada(*), listando

    as suas operaes no compartimento apropriado.

    31

    ITrataURL

    abreConexao ( )

    analisaURL ( )

    setaURL ( )

    32

    Realizao (ou

    implementao) da

    Interface

  • 17

    33

    Pacote um mecanismo cujo objetivo organizar

    elementos de modelagem em grupos.

    Visualizar, especificar, construir e documentar sistemas grandes

    envolve a manipulao de uma grande nmero de classes,

    interfaces, componentes....

    Utilizado para:

    Organizar elementos de modelagem;

    Manter elementos com afinidade semntica prximos;

    Pacotes bem estruturados so fracamente acoplados e fortemente

    coesos.

    Produto Servico

    Cliente

    34

    Nome

    Dependncia

    Pacote

  • 18

    Utilizado para quebrar um sistema em

    pequenos pedaos mostrando a dependncia

    entre classes dos diferentes pacotes.

    Uma dependncia existe entre dois elementos

    se modificaes na definio de um elemento

    pode provocar modificaes no outro

    Dependncias possveis entre duas classes:

    uma classe envia uma mensagem para outra

    uma classe possui outra como parte de seus dados

    uma classe menciona outra como um parmetro para uma

    operao

    35

    O Modelo do Domnio do Sistema omite as classes de suporte.

    Modelo do Sistema o diagrama de classes de baixo nvel. Alm do modelo do domnio do sistema, composto tambm por: Classes de interface com o usurio;

    Classes arquiteturais; ...

    36

  • 19

    Exemplo: Identifique um primeiro conjunto de

    classes; Adicione atributos e comportamentos; Encontre generalizaes; Adicione associaes;

    Reveja o modelo construdo adicionando ou removendo classes, atributos, associaes ou generalizaes.

    37

    38

  • 20

    Descrio do Contexto:

    Uma locadora de veculos deseja um sistema para facilitar o atendimento a seus

    clientes. O processo de aluguel de carros atual confuso e est gerando

    insatisfao entre os clientes. A locadora composta basicamente pelos seus

    funcionrios e carros para aluguel. Os funcionrios so identificados por cpf,

    nome, endereo, telefone. J os carros esto divididos em diversos tipos:

    popular, luxo, utilitrio, etc. As informaes importantes sobre os carros a

    serem armazenadas so: cdigo (chapa do carro), tipo, modelo, ano, cor,

    chassis, km e valor do aluguel (dirias e semanais).

    Os funcionrios sero responsveis pelo cadastro dos clientes e dos carros

    adquiridos pela locadora, por efetuar o aluguel de um carro para o cliente e

    dar baixa no aluguel. Existem clientes especiais e clientes comuns. Os

    especiais possuem uma taxa de desconto e um valor de quilometragem extra

    para seus aluguis. Qualquer cliente identificado por rg, nome, cpf,

    telefone, endereo, cidade.

    39

    Desta forma, o cliente poder solicitar o aluguel de carros a um funcionrio da

    locadora. Os tpicos abaixo descrevem as funcionalidades do sistema.

    Alugar Carro: cliente deve solicitar ao funcionrio o aluguel do carro. O

    sistema verifica se o carro solicitado pelo cliente est disponvel. Caso

    esteja, o processo de locao concludo e o carro passa a estar

    indisponvel. A data de aluguel deve ser guardada para calculo do valor do

    aluguel na devoluo.

    Dar Baixa: cliente faz devoluo do carro para o funcionrio e solicita nota

    fiscal (recibo) com a quilometragem percorrida e o valor do aluguel. O

    funcionrio coloca o status do carro novamente como disponvel, solicita

    ao sistema para calcular o valor a ser pago e emite o recibo para o cliente.

    Cadastrar Cliente: cliente solicita ao funcionrio que o cadastre na

    locadora. O funcionrio recebe os dados e cadastra-o.

    Cadastrar Carro: funcionrio cadastra o carro adquirido.

    40

  • 21

    Identifique um primeiro conjunto de classes;

    Adicione atributos e comportamentos;

    Encontre generalizaes;

    Adicione associaes;

    Reveja o modelo construdo adicionando ou removendo classes, atributos, associaes ou generalizaes

    41

    42

  • 22

    43

    cliente nome cpf telefone endereo Locadora Veculo sistema carros popular luxo utilitrios Modelo tipo Ano Contato Status recibo cor codigo

    chassis quilometragem valor do aluguel diria valor do aluguel semanal clientes especiais clientes comuns taxa de desconto valor de quilometragem Aluguel Data de aluguel nota fiscal quilometragem percorrida valor do aluguel funcionrio cdigo nome endereo telefone cidade

    44

    Classes Candidatas Locadora Veculo Cliente Clientes Especial Clientes Comum Sistema Carros Popular Luxo Utilitrios Funcionrio Aluguel

    Atributos nome cpf telefone endereo Modelo

    tipo Ano Contato Status quilometragem percorrida valor do aluguel cor codigo chassis quilometragem valor do aluguel diria valor do aluguel semanal taxa de desconto valor de quilometragem Data de aluguel

    Informao Estranha Nota fiscal

    Redundncia Recibo

  • 23

    45

    Classes Candidatas Locadora Cliente Clientes Especial Clientes Comum Carro Popular Luxo Utilitrios Funcionrio Aluguel

    Atributos nome cpf telefone endereo Modelo tipo Ano

    Contato Status quilometragem percorrida valor do aluguel cor codigo chassis quilometragem valor do aluguel diria valor do aluguel semanal taxa de desconto valor de quilometragem Data de aluguel

    Informao Estranha Nota fiscal Sistema

    Redundncia Recibo Veculo

    Locadora

    46

  • 24

    47

    Alugar

    Emitir nota fiscal

    Calcular preo

    Cadastrar carro

    Cadastrar cliente

    Alterar Disponibilidade

    Verificar Disponibilidade

    Pegar o valor do aluguel do carro

    Pegar a data do aluguel

    Pega valor de desconto do cliente

    Pega valor de quilometragem extra

    Confirmar Aluguel

    48

  • 25

    Locadora

    49

    50

  • 26

    51

    52

  • 27

    53

    54

  • 28

    55

    Uma associao existe se uma classe:

    Possui;

    Controla;

    Est conectada para;

    Est relacionada para;

    parte de;

    Tem como parte;

    membro de;

    Tem como membro.

    alguma outra classe no modelo.

    Especifique a multiplicidade.

    56

  • 29

    57

    58

  • 30

    59

    60

    Prof. Dr. Marcos [email protected]

  • 31

    61

    Modelagem Comportamental Cenrio

    Diagramas de Interao

    Diagrama de Seqncia

    Diagrama de Colaborao (ou Comunicao)

    62

    Definio

    Um cenrio um caminho entre os fluxos de um caso de uso

    Um caso de uso uma coleo de cenrios

    Um cenrio uma instncia de um caso de uso

    Casos de uso so compostos de um fluxo principal e sub-

    fluxos

    Sub-fluxos tambm podem se ramificar em sub-fluxos

    As ramificaes de fluxos e sub-fluxos formam uma rvore

    Um cenrio um caminho da raiz at um n folha da rvore

    de fluxos e sub-fluxos de um caso de uso

  • 32

    63

    64

    Um cenrio um caminho da raiz at uma folha da rvore de ramificaes de um use case.

  • 33

    65

    No desenvolvimento de um sistema, o

    analista usualmente comea sua

    investigao pelos cenrios primrios (fluxo

    principal dos casos de uso);

    Cenrios secundrios so progressivamente

    agregados.

    66

    Esses diagramas representam mensagens trocadasentre objetos para a execuo de cenrios doscasos de uso do sistema. Tipicamente, cada diagrama de interao est relacionado a

    um cenrio do caso de uso.

    A construo desses diagramas uma consolidaodo entendimento dos aspectos dinmicos dosistema.

  • 34

    67

    : lender : librarian

    : index : assitant

    1: BookRequest

    2: look up

    3: 4: get

    5:

    6:

    Interaes podem ser modeladas de duas maneiras:

    (1) enfatizando a colaborao dos objetos;

    (2) enfatizando a seqncia das mensagens enviadas;

    (1) (2)

    68

    Os objetos so organizados horizontalmente no diagrama.

    Um objeto representado como uma caixa no topo de uma linha vertical tracejada (linha de vida do objeto).

    O autor que inicia a interao geralmente colocado na esquerda superior do diagrama.

    A dimenso vertical representa o tempo.

  • 35

    69

    O princpio bsico da interao entre objetos o conceito de

    mensagem.

    O fato de um objeto precisar de ajuda indica a necessidade de este enviar mensagens.

    Na construo de diagramas de interao, mensagens de um

    objeto a outro implicam em operaes que classes devem ter.

    Uma mensagem implica na existncia de uma

    operao no objeto receptor. A resposta do objeto

    receptor ao recebimento de uma mensagem a

    execuo da operao correspondente.

    70

    umUsurio: Usurio

    validar(in id : String, in senha : String) : bool

    loginsenha

    Usurio

    validar(id, senha)

    : ControladorAcesso

    Mensagens so representadas por setas entre as caixas de ativao.

  • 36

    71

    Tipos de mensagem definidos pela UML: mensagem simples: utilizada quando a natureza da mensagem

    no relevante. mensagem sncrona: indica que o objeto remetente espera que

    o objeto receptor processe a mensagem antes de recomear o seu processamento.

    mensagem assncrona: objeto remetente no espera a resposta para prosseguir com o seu processamento.

    mensagem de retorno: indica o trmino de uma operao.

    Simples

    Sncrona

    Assncrona

    Retorno

    72

    Objeto1 Objeto2 Objeto3

    mensagem1

    mensagem2

    Atormensagem0

    mensagem3

    Classe

    Ator Objeto

    Foco decontrole

    Mensagem

    Classe

    Linha devida

    : : :

  • 37

    Duas formas de mostrar o valor de retorno de uma

    mensagem

    74

    Objeto1 Objeto2

    Objeto3

    1*[i := 1..2]: m1()

    1.1: criar()

    1.2 *[i:=1..3]: r := r + m2()

    destruir()

    [r == 3]: m3()

    [r < 3]: m4()

    Iterao

    Guarda

    Mensagemreflexiva Mensagem

    de retorno

    Destruio

    Mensagemassncrona

    Mensagemsimples

    m5() Mensagemsncrona

    : :

    :

  • 38

    75

    76

    Loops

  • 39

    77

    78

  • 40

    79

    80

  • 41

    81

    Usando uma notao explcita

    82

    Usando uma notao implcita

  • 42

    83

    84

    Utilizar: Diagrama de casos de uso e, principalmente, sua

    descrio (cenrios);

    Diagrama de classes caso j tenha sido projetado.

  • 43

    85

    Fornece cenrios

    Modelo de

    Casos de Uso

    Modelo de Interaes

    (diagramas de colaborao ou de sequncia)

    Fornece objetos

    Valida responsabilidades

    e fornece detalhes sobre objetos

    Valida as interaes

    Modelo de Classes

    86

    Um objeto representado como uma caixa.

    Linhas representam os relacionamentos entre os objetos.

    Setas indicam as mensagens envidas.

    A seqncia de mensagens indicada atravs de numerao das mensagens.

    Dar nfase maneira como os objetos esto estaticamente conectados!!!

    : lender : librarian

    : index : assitant

    1: BookRequest

    2: look up

    3: 4: get

    5:

    6:

  • 44

    87

    Diagrama de Seqncia

    Diagrama de Colaborao

    Correspondente

    88

    Diagramas de Seqncia Foco na ordem em que os objetos interagem. So mais facilmente extrados a partir da

    descrio dos casos de uso. Desta forma, utilizar diagramas de seqncia

    uma escolha natural quando voc est construindo diagramas de interao a partir de casos de uso.

    til para verificao da descrio dos casos de uso.

    til para verificao dos diagramas de classe.

  • 45

    89

    Diagramas de Colaborao Pode ser visto como uma projeo do diagrama de

    classes

    Desta forma, pode ser escolhido caso os diagramas de interao sejam construdos a partir do diagrama de classes.

    til para validao dos diagramas de classe.

    90

  • 46

    91

    Descrio dos Requisitos:

    Uma locadora de veculos deseja um sistema para facilitar o atendimento a seus

    clientes. O processo de aluguel de carros atual confuso e est gerando

    insatisfao entre os clientes. A locadora composta basicamente pelos seus

    funcionrios e carros para aluguel. Os funcionrios so identificados por cpf,

    nome, endereo, telefone. J os carros esto divididos em diversos tipos:

    popular, luxo, utilitrio, etc. As informaes importantes sobre os carros a

    serem armazenadas so: cdigo (chapa do carro), tipo, modelo, ano, cor,

    chassis, km e valor do aluguel (dirias e semanais).

    Os funcionrios sero responsveis pelo cadastro dos clientes e dos carros

    adquiridos pela locadora, por efetuar o aluguel de um carro para o cliente e

    dar baixa no aluguel. Existem clientes especiais e clientes comuns. Os

    especiais possuem uma taxa de desconto e um valor de quilometragem extra

    para seus aluguis. Qualquer cliente identificado por rg, nome, cpf,

    telefone, endereo, cidade.

    92

    Desta forma, o cliente poder solicitar o aluguel de carros a um funcionrio da

    locadora. Os tpicos abaixo descrevem as funcionalidades do sistema.

    Alugar Carro: cliente deve solicitar ao funcionrio o aluguel do carro. O

    sistema verifica se o carro solicitado pelo cliente est disponvel. Caso

    esteja, o processo de locao concludo e o carro passa a estar

    indisponvel. A data de aluguel deve ser guardada para calculo do valor do

    aluguel na devoluo.

    Dar Baixa: cliente faz devoluo do carro para o funcionrio e solicita nota

    fiscal (recibo) com a quilometragem percorrida e o valor do aluguel. O

    funcionrio coloca o status do carro novamente como disponvel, solicita

    ao sistema para calcular o valor a ser pago e emite o recibo para o cliente.

    Cadastrar Cliente: cliente solicita ao funcionrio que o cadastre na

    locadora. O funcionrio recebe os dados e cadastra-o.

    Cadastrar Carro: funcionrio cadastra o carro adquirido.

  • 47

    93

    Utilizar: Diagrama de casos de uso e, principalmente, sua

    descrio;

    Diagrama de classes caso j tenha sido projetado.

    94

  • 48

    95

    96

    Nome do Caso de Uso: _Efetuar Aluguel ____________________________________

    Ator: _Funcionrio ______________________________________________________

    Comeo: _Funcionrio inicia o processo de locao ____________________________

    Funcionrio Sistema

    Iniciar aluguel

    Verificar disponibilidade do carro

    Confirmar Aluguel

    Alterar disponibilidade do carro

  • 49

    97

    98

    Nome do Caso de Uso: _Cadastrar Cliente ___________________________

    Ator: _Funcionrio_______________________________________________________

    Comeo: _Funcionrio insere os dados do cliente ______________________________

    Funcionrio Sistema

    Digita os dados do cliente

    Cadastra cliente

  • 50

    99

    10

    0

    Nome do Caso de Uso: _Cadastrar Carro ___________________________________

    Ator: _Funcionrio_______________________________________________________

    Comeo: _Funcionrio insere dados do carro _________________________________

    Funcionrio Sistema

    Digita dados do carro

    Cadastra carro

  • 51

    101

    10

    2

    Nome do Caso de Uso: _Encerrar Aluguel Cliente Comum ______________________

    Ator: _Funcionrio_______________________________________________________

    Comeo: _Funcionrio solicita emisso de Nota Fiscal __________________________

    Funcionrio Sistema

    Solicita Nota Fiscal

    Pega o valor do aluguel do carro

    Pega a data do aluguel

    Calcula Preo

    Altera Disponibilidade do Carro

  • 52

    103

    10

    4

    Funcionrio Sistema

    Solicita Nota Fiscal

    Pega valor de desconto do cliente

    Pega valor de quilometragem extra

    Pega o valor do aluguel do carro

    Pega a data do aluguel

    Calcula Preo

    Altera Disponibilidade do Carro

    Nome do Caso de Uso: _Encerrar Aluguel Cliente Especial______________________

    Ator: _Funcionrio_______________________________________________________

    Comeo: _Funcionrio solicita emisso de Nota Fiscal __________________________

  • 53

    105

    106