51
Renata Araujo UNI Projeto e Construção de Aplicações com Ambientes de Programa 200 Unified Modeling Language

Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

Embed Size (px)

Citation preview

Page 1: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

Renata Araujo

UNIRIOProjeto e Construção de Aplicações com Ambientes de Programação

2002.1

Unified Modeling Language

Page 2: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

2

Introdução

UML é uma linguagem para Especificar Visualizar Construir

.... Artefato de sistemas de software

Oferece uma notação para a modelagem de sistemas seguindo os conceitos da orientação a objetos.

Page 3: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

3

Introdução

A UML tem sido encarada como um padrão. Inicialmente, um esforço de integração dos principais

autores de métodos OO: Ivar Jacobson, Grady Booch e Jim Rumbaugh

A partir de 1997, foi submetida como candidata a padrão à OMG (Object Management Group)

www.omg.org

A UML é uma linguagem para modelagem; ela não guia o desenvolvedor em como fazer a análise e projeto orientado a

objetos, ou qual processo de desenvolvimento deve ser seguido

A UML é uma linguagem para modelagem; ela não guia o desenvolvedor em como fazer a análise e projeto orientado a

objetos, ou qual processo de desenvolvimento deve ser seguido

Page 4: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

4

Diagramas da UML

Visão Externa Diagrama de Casos de Uso

Visão Estrutural (Estática) Diagrama de Classes

Visão Comportamental (Dinâmica) Diagrama de Estado Diagrama de Atividade

Visão de Interação Diagrama de Sequência Diagrama de Colaboração

Visão da Arquitetura (Implementação) Diagrama de Componentes Diagrama de Implantação Diagrama de Pacotes

Page 5: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

5

Diagramas de Caso de Uso

Especificam a visão externa do sistema Descrevem como o sistema é percebido por seus

usuários Descrevem as interações entre os usuários e o

sistema

Consulta de saldo

Ator

Solicitação de extrato

Interações

Page 6: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

6

Diagramas de Classe

Descrevem a parte estática do sistema, ignorando seu processamento

Apresentam Classes (objetos) Atributos Relacionamentos

Herança Agregação Associação

Serviços

Page 7: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

7

Diagramas de Estado

Apresentam as sequências de estados que um objeto assume em sua existência em resposta a estímulos recebidos

Complemento das descrições estáticas de classes

Relacionam os possíveis estados que os objetos de uma classe podem ter e quais os eventos que causam mudanças em seu estado.

Pedido Registrado

Pedido em Análise

Pedido para análise requisitado

Pedido enviado

Pedido em Aprovação

Pedido para aprovação

Aprovação emitida

Pedido Aprovado

Pedido será atendido

Classe Pedido

Page 8: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

8

Diagramas de Sequência

Apresentam a interação entre os objetos no decorrer do tempo

Mostra a sequência de mensagens entre objetos

Vendedor

Janela Pedido Nota Fiscal Fatura Cliente

1: situação financeira do cliente 2: obter pedidos

(cliente)

3: obter notas fiscais (pedido)

4: obter faturas vencidas (nota fiscal)

5: obter faturas a vencer (nota fiscal)

6: obter limite de crédito (cliente)

Page 9: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

9

Diagrama de Classes

Passos para confecção

Identificação de Classes

Identificação de relacionamentos

Definição de atributos

Definição de serviços

Page 10: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

10

Identificação de Classes

O domínio do problema Um determinado domínio de problemas inclui informações

relativas ao mundo real

Os requisitos da aplicação Considerados os objetivos da aplicação a ser construída,

apenas um subconjunto dessas informações necessita ser representado

Page 11: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

11

Identificação de Classes

Cliente Nome Endereço Altura Peso Idade Sexo Renda Mensal Cor dos Cabelos Número de Dependentes ...

Cliente Nome Endereço Idade Sexo Renda Mensal Número de Dependentes

No mundo real Em uma dada aplicação/sistema

Page 12: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

12

Identificação de Classes

No mundo real Numa aplicação/sistema

Cliente

Endereço

Carro Dependentes

Time

Nome

Cliente

Nome

Endereço

Page 13: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

13

Identificação de Classes

O que procurar? Objetos

Ex. Pessoas, clientes, turmas, cursos, produtos etc. Agentes

Ex. cliente, atendente etc. Unidades organizacionais

Ex. local para entrega, setor etc. Eventos

Reclamação do cliente, pedido pago etc.

“Quaisquer conceitos que serão armazenados e “lembrados” pelo sistema.”

Page 14: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

14

Identificação de Classes

O que Considerar? Armazenamento necessário

O sistema precisará armazenar informações sobre os objetos desta classe?

Mais de um objeto em uma classe É possível identificar facilmente os objetos desta classe? Evite classes que representem um só objeto

Atributos sempre aplicáveis Todos os atributos identificados para a classe são aplicáveis a

todas as suas instâncias?

Page 15: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

15

Identificação de Classes

Notação de classe

Nome da Classe

<lista de atributos>

<Lista de serviços/operações>

Page 16: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

16

Identificação de Classes

Recomendações Nomenclatura de classes

Nome da classe deve descrever claramente o conceito representado

Uso de termos de conhecimento de todos Evitar abreviaturas Estabelecimento de padrões para nomeação de classes Evitar ambigüidades (dupla interpretação)

Uso Fast CasePrática

Page 17: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

17

Definição de Atributos

Objetivo Identificar e formalizar a definição dos atributos de cada

classe presente no diagrama de classes

O que considerar? Necessidade do sistema em armazenar as características das

instâncias das classes

Page 18: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

18

Definição de Atributos

Representação gráfica

Nome da Classe

<lista de atributos>

<Lista de serviços/operações>

Page 19: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

19

Definição de Atributos

Notação de atributos

Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade}

Visibilidade: Critério de acesso ao atributo Opcional

+ visibilidade pública (default) Atributo pode ser acessado por todos, inclusive por serviços de outras classes

# visibilidade protegida Atributo é acessado apenas pelos serviços da própria classe ou por serviços de classes

dentro de um mesmo pacote

- visibilidade privada Atributo é acessado por operações da própria classe

Page 20: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

20

Definição de Atributos

Notação de atributos

Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade}

Visibilidade:

Aluno

+ Nome# Endereço- Créditos

Page 21: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

21

Definição de Atributos

Notação de atributos

Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade}

Nome do atributo Obrigatório!!!! Necessidade de padronização Clareza de significado Evitar abreviaturas

Aluno

+ Nome# EndereçoDoAluno- CréditosObtidos

Page 22: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

22

Definição de Atributos

Notação de atributos

Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade}

Tipo de Expressão Opcional Tipo de implementação do atributo

Inteiro String Real ... Aluno

+ Nome: string# EndereçoDoAluno: string- CréditosObtidos: int

Page 23: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

23

Definição de Atributos

Notação de atributos

Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade}

Valor Inicial Valor inicial do atributo Opcional

Aluno

+ Nome: string# EndereçoDoAluno: string- CréditosObtidos: int = 0

Page 24: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

24

Definição de Atributos

Notação de atributos

Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade}

Propriedade Opcional Maior detalhamento do atributo

Descrição Tipo

Estático Constante Variável

Domínio de Valores

Aluno

+ Nome: string# EndereçoDoAluno: string-CréditosObtidos: int = 0-NumMáximoDeCréditos: int = 70 {constant}

Page 25: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

25

Definição de Atributos

Notação de atributos Exemplo

Nome da Classe

AtributoAtributo:tipo do dadoAtributo:tipo do dado = valor inicial

Aluno

NomeEndereço:stringCréditos:inteiro = 0

Uso Fast CasePrática

Page 26: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

26

Definição de Serviços

Objetivo Identificar e formalizar a definição das operações de cada

classe presente no diagrama de classes

O que considerar? Necessidade de cada classe em realizar operações que

atendam às funcionalidades do sistema

Page 27: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

27

Definição de Serviços

Representação Gráfica

Nome da Classe

<lista de atributos>

<Lista de serviços/operações>

Page 28: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

28

Definição de Serviços

Notação de serviços

Visibilidade Nome do Serviço (Parâmetro): Expressão de Tipo de Retorno {Propriedade}

Visibilidade: Critério de acesso ao serviço Opcional

+ visibilidade pública (default) Serviço pode ser acessado por todos, inclusive por serviços de outras classes

# visibilidade protegida Serviço é acessado apenas pelos serviços da própria classe ou por serviços de classes

dentro de um mesmo pacote

- visibilidade privada Serviço é acessado por operações da própria classe

Page 29: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

29

Definição de Serviços

Notação de serviços

Visibilidade Nome do Serviço (Parâmetro): Expressão de Tipo de Retorno {Propriedade}

Visibilidade:

Aluno

NomeEndereçoCréditos

+ InformarNome( ):string# InformarEndereço( ):string- CancelarCréditos( códigoCadeira )

Page 30: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

30

Definição de Serviços

Notação de serviços

Visibilidade Nome do Serviço (Parâmetro): Expressão de Tipo de Retorno {Propriedade}

Nome do serviço Obrigatório!!!! Necessidade de padronização Clareza de significado Evitar abreviaturas

Aluno

NomeEndereçoCréditos

+ InformarNome( ):string# InformarEndereço( ):string- CancelarCréditos( códigoCadeira )

Page 31: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

31

Definição de Serviços

Notação de Serviços

Visibilidade Nome do Serviço (Parâmetro): Expressão de Tipo de Retorno {Propriedade}

Parâmetros Lista de valores utilizados pelo serviço

Aluno

NomeEndereçoCréditos

+ InformarNome( ):string# InformarEndereço( ):string-CancelarCréditos( códigoCadeira )-AtualizarCréditos( códigoCadeira, ano, número de Créditos )

Page 32: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

32

Definição de Serviços

Notação de serviços

Visibilidade Nome do Serviço (Parâmetro): Expressão de Tipo de Retorno {Propriedade}

Expressão de tipo de retorno Tipo do valor de retonor do serviço

Aluno

NomeEndereçoCréditos

+ InformarNome( ):string# InformarEndereço( ):string-CancelarCréditos( códigoCadeira )-AtualizarCréditos( códigoCadeira, ano, número de Créditos )

Page 33: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

33

Definição de Serviços

Notação de serviços

Visibilidade Nome do Serviço (Parâmetro): Expressão de Tipo de Retorno {Propriedade}

Propriedade Opcional Maior detalhamento do serviço

Classificação Construtor:

incializam/constroem instâncias da classe

Destrutor: destróem instâncias da classe

Modificador de atributos: modificam valores de atributos

Seletor de atributos: utilizam mas não modificam valores de atributos

Prés e pós condições Exceções Propriedades dependentes da

linguagem de programação

Aluno

NomeEndereçoCréditos

+ CriarAluno( nome ) { construtor }+ InformarNome( ):string# InformarEndereço( ):string-CancelarCréditos( códigoCadeira ) { modificador }-AtualizarCréditos( códigoCadeira, ano, número de Créditos )

Page 34: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

34

Definição de Serviços

Persistência Objetos Persistentes – armazenado no banco de dados Objetos transientes – em memória

Construtores e Destrutores Coleta automática de lixo

Serviços para acesso a atributos

Uso Fast CasePrática

Page 35: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

35

Identificação de Relacionamentos

Objetivo Identificar associações, agregações e relacionamentos de

generalização/ especialização (herança) entre classes

O que considerar? Necessidade do sistema em “lembrar” relacionamentos entre

as classes

O que procurar? Todos os relacionamentos entre instâncias de classes que

sejam relevantes para o sistema

Page 36: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

36

Identificação de Relacionamentos

Associação Relacionamentos simples entre instâncias de classes

Descrevem algum vínculo, relacionamento ou interdependência entre instâncias de classes

Page 37: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

37

Identificação de Relacionamentos

Associação - Representação Unária

Binária

Pessoa

Aluno

É pai de

0..*

1..2

Cadeira0..* Cursa

0..*

Page 38: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

38

Identificação de Relacionamentos

Associação - Representação N-ária

Avaliação

Funcionário Quesito

* *

Projeto

*

Page 39: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

39

Identificação de Relacionamentos

Agregação

Relacionamentos com uma semântica bem definida: a de composição

Relacionamentos que representem: montagens e suas partes

Ex. Um carro e suas partes

(motor, chassi, rodas …) recipientes e seus conteúdos

Ex. Vôo e passageiros conjuntos e seus membros

Ex. Turma e alunos

Page 40: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

40

Identificação de Relacionamentos

Agregação - notação

EmpresaDepartamento

“Todo”“Parte”

1..*

1

Page 41: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

41

Identificação de Relacionamentos

Herança O que procurar?

Diferenças e similaridades entre classes Várias classes com características comuns

Notação Veículo

Ano Cor

Carro Ônibus Caminhão

Ano Cor No de Assentos

Ano Cor Capacidade

Ano Cor No de Portas

Page 42: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

42

Generalização / Especialização

O que procurar? (cont.) Uma classe com atributos aplicáveis apenas a subconjuntos de suas

instâncias

Funcionário

NomeNascSalárioProjeto

Funcionário_Maria Nome = ‘Maria’ Nasc = ‘16/02/70’ Salário = 2500

Projeto = ‘’

Funcionário_João Nome = ‘João’ Nasc = ‘10/05/65’ Salário = 3000

Projeto = ‘Call Center’Gerente

Projeto

Page 43: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

43

Identificação de Relacionamentos

Nome/Semântica do relacionamento

Multiplicidade 1 somente um * muitos (zero ou mais) 0..* muitos (zero ou mais) 0..1 opcional (zero ou um) 1..* maior ou igual a um M..N sequência específica

Ex. 1..27 (de um a 27), 23..* (acima de 23)

Papéis Navegabilidade Restrições

Uso Fast CasePrática

Page 44: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

44

Diagramas de Estado

Objetos de uma classe possuem um “ciclo de vida” São gerados Assumem posições (estados) Dão origem a outros objetos Deixam de existir (são destruídos)

O estudo dos diferentes estados de um objeto de uma classe e das transições entre estes estados permite o levantamento de serviços adicionais a serem incorporados na classe

Page 45: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

45

Diagramas de Estado

Notação

Estado: condição ou situação durante a vida de um objeto no qual

satisfaz alguma condição, executa alguma atividade em resposta a um evento ou espera pela ocorrência de algum evento.

<nome do estado>

Início

Fim

Page 46: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

46

Diagramas de Estado

Notação

Evento: Ocorrência que deve ser reconhecida e gerar uma reação pelo

sistema em estudo. A ocorrência de um evento provoca a transição entre estados de

instâncias de alguma classe pertencente ao sistema

Estado 1

Estado 2

evento

Page 47: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

47

Diagramas de Estado

Exemplo – Classe PedidoDeCompra

Pedido Registrado

Envio de pedido

Pedido cancelado

Pedido em Análise

Requisição de análise de

pedido

Pedido Pendente

Pedido não pode ser atendido neste

momento Pedido já pode ser atendido

Pedido Aprovado

Pedido é aprovado

Pedido cancelado

Pedido cancelado

Pedido cancelado

Pedido Atendido

Atendimento a Pedido

Uso Fast CasePrática

Page 48: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

48

Diagramas de Sequência

Objetivo Identificar o envio de mensagens entre os objetos das

diversas classes do diagrama em resposta a cada caso de uso

Um diagrama de sequência mostra interações de objetos organizadas em uma sequência de tempo e de mensagens trocadas

Page 49: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

49

Diagrama de Sequência

um objeto

outro objeto

Tempo(top-down)

ativação

Linha de vida

criar

mensagem

retorno

excluir

Símbolo de exclusão

ator

(evento)

Page 50: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

50

Diagrama de Sequência

Vendedor

Janela Pedido Nota Fiscal Fatura Cliente

1: situação financeira do cliente 2: obter pedidos

(cliente)

3: obter notas fiscais (pedido)

4: obter faturas vencidas (nota fiscal)

5: obter faturas a vencer (nota fiscal)

6: obter limite de crédito (cliente)

Uso Fast CasePrática

Page 51: Renata Araujo UNIRIO Projeto e Construção de Aplicações com Ambientes de Programação 2002.1 Unified Modeling Language

51

Diagramas de Colaboração

Detalhamento da comunicação entre objetos para cumprir as tarefas solicitadas nos casos de uso.

Construção dos Diagramas de Colaboração da UML Descrevem os “algoritmos” ou operações a serem codificados na

fase seguinte de implementação

:POSTentrarItem(upc,qtd)

:Venda

1:[new venda] criar()3: criar ItemdeLinha(espec, qtd)

2: espec:=especificação (upc)

:Catálogode Produtos

:EspecificaçãodeProduto

2.1: espec:=enontrar (upc)

:LinhadeItemdeVenda

1.1: criar()

3.2: adicionar(lv)

:LinhadeItemdeVenda

3.1: criar(espec, qtd)