Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários...

50
Unified Modelin g Languag e

Transcript of Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários...

Page 1: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

UnifiedModelingLanguage

Page 2: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Agenda

Software e modelagem; UML

Introdução;Diagramas;

Comentários finais;

Page 3: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Agenda

Software e modelagem; UML

Introdução;Diagramas;

Comentários finais;

Page 4: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Evolução do software

O surgimento de sistemas de software complexos resultou na necessidade de reavaliar a forma de desenvolver sistemas;

As técnicas tem evoluído de forma impressionante, notavelmente no que tange à modelagem de sistemas.

Page 5: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Novos requisitos de sistemas

Escalabilidade; Segurança; Robustez; De fácil manutenção; Reutilizável;

Como resolver isso...

Page 6: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Modelagem

Um modelo pode ser visto como uma representação idealizada de um sistema a ser construído;

Maquetes de edifícios e de aviões e plantas de circuitos eletrônicos são apenas alguns exemplos de modelos;

Uma simplificação da realidade que nos ajuda a entender um problema complexo;

Page 7: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Modelagem de software

A modelagem de sistemas de software consiste na utilização de notações gráficas e textuais com o objetivo de construir modelos que representam as partes essenciais de um sistema, considerando-se diversas perspectivas diferentes e complementares.

Page 8: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Para que modelar

Ajuda no gerenciamento da complexidade inerente ao desenvolvimento de software;

Ajuda na comunicação entre as pessoas envolvidas;

Ajuda na predição do comportamento futuro do sistema.

Page 9: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Evolução da modelagem

Na primeira metade da década de 90 surgiram várias propostas de técnicas para modelagem de sistemas;

Houve uma grande proliferação de propostas para modelagem de sistemas segundo o paradigma orientado a objetos;

Existiam diferentes notações gráficas para modelar uma mesma perspectiva de um sistema.

Page 10: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Necessidade de um padrão

Percebeu-se a necessidade de um padrão para a modelagem de sistemas, que fosse aceito e utilizado amplamente;

Surgiram esforços nesse sentido de padronização, sendo o principal liderado por James Rumbaugh, Grady Booch e Ivar Jacobson (Rational).

Page 11: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Agenda

Software e modelagem; UML

Introdução;Diagramas;

Comentários finais;

Page 12: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

UML...

Surge a UML em 1996 como a melhor candidata para ser a linguagem unificadora de notações;

Em 1997 a UML é aprovada como padrão pela OMG;

Desde então tem tido grande aceitação;

Atualmente na versão 2.0;

Page 13: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Características da UML

É uma linguagem visual; É independente de linguagem de

programação; É independente de processo de

desenvolvimento; Não é uma linguagem de programação; Não é uma metodologia.

Page 14: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Usos da UML

Visualização; Especificação; Documentação; Comunicação; Construção.

Page 15: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas Podem ser usados para... Mostrar os limites de um sistema e suas

funções; Representa a estrutura estática de um

sistema; Modelar o comportamento de objetos; Apresentar a implementação física e a

arquitetura de um sistema;

Page 16: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Elementos Essenciais Estruturais

Cliente<<entity>>

-razaoSocial: String-cpf: String

+getRazaoSocial()+setRazaoSocial(razaoSocial: String)

ClasseCliente

Objeto

Interface

Web Server

ocv.dll

Componente

Relacionamentos

IImprimivel

Page 17: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Elementos Essenciais Comportamentais

Operador

Programar produçãoConectando

Caso de uso

Ator

Estados Mensagens

Page 18: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Elementos Essenciais Extensão

{nome=J oão da SilvaCpf=12345678901}

Notas servem para adicionaralguma informação nos diagramas

Notas Tagged Values

Page 19: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Elementos Essenciais Agrupamento

Banco de Dados

Regras de negócio

Interface

Pacotes

Page 20: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Agenda

Software e modelagem; UML

Introdução;Diagramas;

Comentários finais;

Page 21: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagrama de Casos de UsoVisão Geral Descreve o que o

sistema faz do ponto de vista do observador externo;

Ajuda a esclarecer os requisitos do sistema;

Ajuda a dividir o desenvolvimento do sistema em tarefas;

Page 22: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagrama de Casos de Uso Caso de uso Representa as

diferentes funcionalidades que o sistema disponibiliza aos usuários.

Programar produção

Produzir pedido

Solicitar material

Page 23: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Caso de Uso Atores Diferentes usuários que

operam o sistema; Sistemas externos que

interagem com o sistema;

Gerente

Sistema de estoque

Operador

Page 24: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Caso de Uso Associação

Representa a comunicação entre o ator e o caso de uso;

Também existem associações entre casos de usos;

Gerar relatórios de serviços

Gerente

Page 25: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Caso de Uso Diagrama completo

Gerente

Sistema de estoque

Operador

Produzir pedido

Programar produção

Solicitar material

Gerar relatórios de serviços

Cenário do sistema para na produção

Page 26: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Classe Visão Geral Largamente utilizado; Descreve os diferentes

tipos de objeto e o relacionamentos entre eles.

Page 27: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Classe Classes Estereótipo; Atributos; Operações; Visibilidade; Tipo;

Pagamento<<entity>>

-quantia: Float

+getQuantia()

Pedido<<entity>>

-data: date-status: Integer-obs: String-valorTotal: Float

+calcImposto()+calcTotal()-calcSubTotal()+setCliente(cliente: Cliente)+inserirItem(item: ItemPedido)

Estereótipo

Nome

Atributos

Métodos

Page 28: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Classe Relacionamentos Associações

representam relações entre ocorrências de classes;

Cliente<<entity>>

-razaoSocial: String-cpf: String

+getRazaoSocial()+setRazaoSocial(razaoSocial: String)

0..*

1

Pedido<<entity>>

-data: date-status: Integer-obs: String-valorTotal: Float

+calcImposto()+calcTotal()-calcSubTotal()+setCliente(cliente: Cliente)+inserirItem(item: ItemPedido)

Page 29: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Classe Relacionamentos Multiplicidade; Navegabilidade;

Pagamento

-quantia

Cliente

-nome-cpf

Pedido

-data-status

+calcImposto()+calcTotal()

1..*

1 0..*

1

Page 30: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Classe Relacionamentos Agregação; Composição;

Computador

Monitor

TecladoCpu

ItemPedido<<entity>>

+qtd: Integer

+setQuantidade(qtd: Integer)+setProduto(produto: Produto)

1

1..*

Pedido<<entity>>

-data: date-status: Integer-obs: String-valorTotal: Float

+calcImposto()+calcTotal()-calcSubTotal()+setCliente(cliente: Cliente)+inserirItem(item: ItemPedido)

Page 31: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Classe Relacionamentos Generalização; Dependência;

Cheque

-banco

Cartao

+numero+tipo

Pagamento

-quantia

FormPedido<<boundary>>

+criarPedido()+gravarPedido()

Pedido<<entity>>

-data: date-status: Integer-obs: String-valorTotal: Float

+calcImposto()+calcTotal()-calcSubTotal()+setCliente(cliente: Cliente)+inserirItem(item: ItemPedido)

Page 32: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Classe Pacotes Agrupa classes

relacionadas;

Regras de negócio

Interface

Banco de Dados

Page 33: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Classe Diagrama completo

Cliente<<entity>>

-razaoSocial: String-cpf: String

+getRazaoSocial()+setRazaoSocial(razaoSocial: String)

Pedido<<entity>>

-data: date-status: Integer-obs: String-valorTotal: Float

+calcImposto()+calcTotal()-calcSubTotal()+setCliente(cliente: Cliente)+inserirItem(item: ItemPedido)

0..*1

Pagamento<<entity>>

-quantia: Float

+getQuantia()

Dinheiro<<entity>>

Cheque<<entity>>

-banco: Integer

Cartao<<entity>>

+numero: Integer+tipo: Integer

1..*1

ItemPedido<<entity>>

+qtd: Integer

+setQuantidade(qtd: Integer)+setProduto(produto: Produto)

1

1..*

FormPedido<<boundary>>

+criarPedido()+gravarPedido()

Produto<<entity>>

+descricao: String

1 0..*

Page 34: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagrama de Seqüência

Mostra um conjunto de objetos, seus relacionamentos e as mensagens que podem ser enviadas entre eles;

Diagrama de seqüência dá ênfase à seqüência de mensagens;

Page 35: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagrama de Seqüência Objetos Representa uma

instância de uma determinada classe;

: ItemPedido<<entity>>

Page 36: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagrama de Seqüência Mensagens Representa troca de

mensagens entre os objetos;

8 : setQuantidade()

10 : calcSubTotal()

Page 37: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagrama de Seqüência Fragmentos Servem para separar

blocos de mensagens condicionadas a teste ou laço;

Insere itenssd

Page 38: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagrama de Seqüência

Insere itens

: Pedido<<entity>>

: ItemPedido<<entity>>

: Atendente

: FormPedido<<boundary>>

1 : cria pedido()2 : create()

3 : informa cliente()4 : setCliente()

5 : informa item()6 : create()

7 : setProduto()

8 : setQuantidade()

9 : insereItem()

10 : calcSubTotal()

Insere quantos itens quiser

Diagrama de sequência referenteà inserção de pedidos

11 : Atualizar()

12 : finaliza edição()

Page 39: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagrama de estados

Exibe os possíveis estados de um objeto;

Exibe também as transições que causam a mudança de estado.

Page 40: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Classe Elementos básicos Estado inicial; Estado final; Estado intermediário;

A

B

State1

State3

State1

State3

Page 41: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Estados Diagrama completo

Rejeitando

Validando

Lendo usuário

Lendo Senha

Exibe mensagem de erro

Submete

Cursor para campo de senha

Cursor para campo de usuário

Capturando teclas ( exibir ponto )

Capturando teclas

Cursor inicia no campo do usuário

Submete

Tenta novamente ( limpa campos )

Cancelado

Inicia transação

Diagrama de estados - Acesso ao Sistema

Page 42: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Implantação Visão Geral Mostra a

configuração de software ou hardware;

Permite avaliar as diferentes situações de implantação do sistema.

Page 43: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Implantação Elementos básicos Componente; Nó.

servidor.exe

Servidor de aplicação

Page 44: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Diagramas de Implantação Diagrama completo

Servidor de aplicaçãoCliente Servidor de banco de dados

Cliente remoto Servidor Web

Diagrama de implantação

navegador autenticacao

aplicativo.exe servidor.exe SGBD

<<http>>

<<RMI>> <<odbc>>

<<jdbc>>

Page 45: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Agenda

Software e modelagem; UML

Introdução;Diagramas;

Comentários finais;

Page 46: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Design na metodologia hoje Exemplo do RUP

Page 47: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Quanto esforço empregar

Projeto; Equipe de trabalho; Complexidade; Automatismos possíveis;

Page 48: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Engenharia Reversa

Útil quando se quer trabalhar com sistemas sem documentação;

Nem sempre o resultado é satisfatório;

Page 49: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Ferramentas sugeridas

StarUML em www.staruml.com Poseidon em www.gentleware.com Umbrello em

http://uml.sourceforge.net/index.php Rational Rose em www.rational.com Dentre outras...

Page 50: Unified Modeling Language. Agenda Software e modelagem; UML Introdução; Diagramas; Comentários finais;

Fontes

OMG – www.omg.org UML – www.uml.org UML Essencial – Grady Booch, Ivar

Jacobson e James Rumbaugh