42
INTRODUÇÃO CEÇA MORAES [email protected] UML 28/06/22 1

INTRODUÇÃO CEÇA MORAES [email protected] UML 23/4/2015 1

Embed Size (px)

Citation preview

Page 1: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

INTRODUÇÃOCEÇA MORAES

[email protected]

UML

27/04/23

1

Page 2: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

O que é um Modelo?

27/04/23

2

Construímos modelos para compreender melhor o sistema que estamos desenvolvendo

Um modelo é uma simplificação da realidade

Um modelo pode ser estrutural ou comportamental

Page 3: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

O que é um modelo?

27/04/23

3

Page 4: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

O que é um modelo?

27/04/23

4

Page 5: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Por que modelar software?

27/04/23

5

Ajuda a ter uma visão geral do sistema

Permite especificar a estrutura e o comportamento do sistema

Proporciona um guia para a construção do sistema

Documenta as decisões tomadas

Page 6: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

O que é a UML?

27/04/23

6Unified Modeling Language:

...uma linguagem gráfica para visualizar, especificar, construir e documentar os artefatos de um sistema de software.

...resultado da unificação das notações utilizadas nos métodos Booch, OMT (Object Modeling Technique) e OOSE (Object-Oriented Software Engineering).

...adotada por grande parte da indústria de software e por fornecedores de ferramentas CASE como linguagem padrão de modelagem.

…utilizada com qualquer processo de desenvolvimento

Page 7: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

UML

27/04/23

7

A UML é uma linguagem para visualização

No processo de desenvolvimento de sistemas de software, é quase impossível a visualização de toda a estrutura de um sistema sem o uso de modelos

A UML fornece os símbolos gráficos para a representação de artefatos de software.

Por trás de cada símbolo empregado na notação da UML, existe uma sintaxe e uma semântica bem-definidas.

Assim, o desenvolvedor pode usar a UML para escrever modelos, diminuindo a ambigüidade em sua interpretação

Page 8: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

UML

27/04/23

8

A UML é uma linguagem para construçãoOs modelos de UML podem ser diretamente

”traduzidos” para várias linguagens de programação É possível mapear os modelos da UML para linguagens

de programação tais como, Java, C++ e Visual Basic.

Realização de uma engenharia de produção: geração de código a partir de um modelo em UML

O processo inverso, a engenharia reversa, também é possível, com a reconstrução de um modelo a partir de sua implementação

Page 9: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

UML

27/04/23

9

A UML é uma linguagem para documentação Cada modelo criado é um artefato de software

Diagrama de Seqüência

: SIM : AnalisadorMatricula

2: adicionar(a,d )

1: submeterFormulario(f)0..*

1 autor

0..*

0..*

1 dono0..* 1usuario

0..*

usaUsuarioBlog

-email:String

+notificarExclusao:void

Conteudo

-dtCriacao:Date-texto:String-autor:UsuarioBlog

+Conteudo+exibirConteudo:void

Blog

-dtCriacao:Date-titulo:String-dono:UsuarioBlog-conteudos:Vector

+criarNota:void+exibirConteudo:void+comentar:void+lerComentarios:Vector+removerConteudo:void+lerNotas:Vector+Blog

Nota

-comentarios:Vector-attribute1:int

+comentar:void+lerComentarios:Vector+finalize:void

Comentario

+finalize:void

Diagrama de Classes

Diagrama de Casos de Uso

blogSystem

Criar Comentario

Ler Conteudo

Remover Conteudo Remover Nota

Remover Comentario

Criar Blog

Ler Comentario

Ler Nota

Criar Nota

Usuario

Dono do blog

<<include>> <<include>>

<<include>>

27/04/23

Page 10: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Linguagem de Diagramas

27/04/23

10

Diagramas de Classe

Diagramas de Colaboração

Diagramas de Seqüência

Diagramas de Estado

Diagramas de AtividadeDiagramas de Objetos

Diagrama de Deployment

Diagramas de Componentes

Diagrama de Casos de Uso

Modelos

Ponto de Vista Estático

Ponto de Vista Dinâmico

Page 11: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

27/04/23

11

Casos de Uso

Page 12: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Casos de Uso

27/04/23

12

Um caso de uso é uma seqüência de ações realizada por um sistema que produz um resultado de valor observável para determinado ator

Todos os casos de uso juntos devem descrever a funcionalidade completa do sistema (requisitos)

Atores são fundamentais para a descoberta dos casos de uso

Page 13: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Casos de Uso

Cenários para os requisitos

Detalhamento dos requisitos para implementação

Interação dos atores com o sistema

27/04/23

13

Page 14: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Casos de Uso

27/04/23

14

Este caso de uso é responsável por autenticar um usuário do sistema.

Pré-condição: nenhumaPós-condição: um usuário válido é logado e sua sessão é registrada no sistema.

Fluxo de eventos principal1. O cliente informa login e senha.2. O sistema verifica se o login e a senha são válidos (verifica-se se o login e senha pertencem a uma conta).3. O sistema registra o início de uma sessão de uso.

Fluxos secundários- No passo 2, se o login ou a senha forem inválidos, o sistema exibe uma mensagem e volta ao passo 1.

Descrição Narrativa

Page 15: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

CASO DE USO

ATOR

Diagrama de Casos de Uso

27/04/23

15

Estudante

Secretária

<<estende>> Solicitar histórico dosemestre atual

Solicitar histórico detodos os semestres

Solicitarhistórico

<<estende>>

Verificardependências

Matricularaluno<<inclui>>

ATOR

Page 16: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Atores – Especialização

27/04/23

16É possível definir

tipos gerais de atores e especializá-los usando o relacionamento de especialização

Cliente

ClienteEspecial

Page 17: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Atores – Especialização

27/04/23

17

Na generalização de ator o filho herda o papel que o pai pode desempenhar em um caso de uso

Facilita a leitura do modelo de caso de uso

Page 18: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Classes

27/04/23

18

Modelar o vocabulário de um sistema do ponto de vista do usuário/problema ou do desenvolvedor/solução Ponto de vista do usuário/problema – na fase de captura e

análise de requisitos, em paralelo com a identificação dos casos de uso

Vocabulário do desenvolvedor/solução – na fase de projeto (design)

Construído e refinado ao longo das várias fases do desenvolvimento do software

Page 19: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Classes

27/04/23

19

Também serve para: Especificar relacionamentos e colaborações

Especificar esquemas lógicos de bases de dados

Especificar visões (estrutura de dados de formulários, relatórios, etc.)

Modelos de objetos de domínio, negócio, análise e projeto

Base da implementação

Page 20: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Classes

27/04/23

20

+confirmar()+cancelar()-calcularTotal():CurrencygerarNovoCodigo: Integer

-codigo: Integer-dataRecebido-total: Currency

Pedido

#creditoPermitido: Currency#nivelCredibilidade()

-nome: String-endereco: String-dataPrimeiraCompra: Date-dataUltimaCompra: Date-totalComprado: Currency

Cliente

-quantidade: Integer-preco: Currency-emEstoque: Boolean

Item de PedidonomeContato: Stringtelefones[1..10]: StringCGC: StringFAX[1..3]: String

Cliente pessoa-jurídica

colocarListaNegra()

nome: StringCPF: StringnumCartaoCredito

Cliente pessoa-física

EmpregadoProduto

* representantede vendas

IPessoa

itens

0..* 1 faz

Page 21: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Objetos

27/04/23

21

Oferece uma visão estática das instâncias (objetos) das classes

Registrar os objetos e seus relacionamentos num determinado instante de tempo

Page 22: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Objetos

27/04/23

22

p2: Professormatricula: "205-6712-09"

nome: "Jaelson Castro"

p1: Professor

codCurso: "IF291"descrição: "MPS"codTurma: I7

: Curso

codCurso: "IF185"descrição: "AER"codTurma: I6

: Curso

matricula: "219846534"nome: "Nelson Mandella"

:aluno

matricula: "562746134"nome: "John Major"

:aluno

: Aluno

: Aluno

: Aluno

: Aluno

c1: Curso

c2: Curso

c3: Curso

Bill

: Aluno : Aluno

Lewinsky

-matrícula: String-nome: String

Professor-codDisciplina: String-descrição: String-codTurma: String

Curso

-matrícula: String-nome: String-período: Integer

Aluno

[0..10]

ministra

[1..5]*

[1..3]

Page 23: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Objetos

27/04/23

23

Page 24: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Objetos

27/04/23

24

Page 25: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Sequência

27/04/23

25

Exibe objetos e as mensagens trocadas entre eles ao longo do tempo

Retrata a ordenação temporal das mensagens

Descreve a maneira como os grupos de objetos colaboram em algum comportamento ao longo do tempo registra o comportamento de um único caso de

uso

Page 26: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Sequência

27/04/23

26

: ClienteAtor : TelaLogin : ControladorLogin : CadastroContas

efetuarLogin(login, senha)

efetuarLogin(login, senha)

existeConta(login, senha)

registraSessao(login)

Page 27: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Sequência

27/04/23

27

Page 28: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Colaboração

27/04/23

28

Ilustra o fluxo de troca de mensagens entre objetos

Mostram interação entre objetos sem (muita) preocupação com a seqüência das ações

São adequados para especificar um processo na lógica do programa

Page 29: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Colaboração

27/04/23

29Janela de entrada

de pedido

p: Pedido

: ItemPedido :ItemEs toque

:ItemRenov Es toque:ItemEntrega

1: preparar()

1.1: *[para c ada item do pedido] preparar( )

1.1.1 : emEs toque := v erif ic ar( )1.1.2 : [emEs toque] remov er( )

1.1.2.1: es toqueBaix o := v erif ic Es toqueBaixo()

1.1.2.2 [es toqueBaix o] <<c riar>>

1.1.3 : [emEstoque] <<c riar>>

Page 30: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Colaboração

27/04/23

30

Page 31: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Estados

27/04/23

31

Exibe os estados e as transições entre estes

Modela uma máquina de estados (seqüência do ciclo de vida de um objeto)

Especifica as seqüências de estados pelos quais um objeto passa durante seu tempo de vida em resposta a eventos

Page 32: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Estados

27/04/23

32

Page 33: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Atividades

27/04/23

33

É um tipo especial de gráfico de estados

Exibe o fluxo de atividades no sistemaAtividade: operação que resulta na

mudança de um estado do sistemaGeralmente é utilizado para modelar

uma função do sistema

Page 34: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Atividades

27/04/23

34

Procurar bebida

[achou café]

H

PessoaH

[sem café] [sem Coca]

[achou Coca]

Pegar latade Coca

Beber

Adicionar água àmáquina

Colocar caféno filtro

Colocar filtrona máquina

Ligar máquina

Filtrar café

Pegarxícara

Colocar café naxícara

Page 35: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Componentes

27/04/23

35

Exibe as organizações e as dependências de um conjunto de componentes de SW

Retrata uma visão estática da implementação do SOFTWARE

Relacionado com o diagrama de classes classes e interfaces são mapeadas

em componentes

Page 36: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Componentes

27/04/23

36

FormCadastro.html

Cadastro.exe

Principal.html

FormEntrada.html

Autenticacao.exe

<<link>>

<<link>>Banco

Usuários

Senhas

Page 37: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Componentes

27/04/23

37

Page 38: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Implantação

27/04/23

38

Exibe a configuração dos nós de processamento e dispositivos

Retrata uma visão estática da organização do hardware

Relacionado com o diagrama de componentes um nó inclui um ou mais componentes

Page 39: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Implantação

27/04/23

39

servidorWeb

Autenticação.exe

Cadastro.exe

servidorDeArquivos

FormCadastro.html

Principal.html

FormEntrada.html

servidorBancoDeDados

SGBD

O SGBD a serutilizado aindanão foi escolhido.

PC - G309

NestscapeCommunicator

5.0

Page 40: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Diagrama de Implantação

27/04/23

40

Page 41: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

27/04/2341

PERGUNTAS ???

Page 42: INTRODUÇÃO CEÇA MORAES CECAMORAES@GMAIL.COM UML 23/4/2015 1

Bibliografia

27/04/23

42

The Unified Modelling Language User Guide (Grady Booch)

The Unified Modelling Language Reference Manual (James Rumbaugh)

The Unified Software Development Process (Ivar Jacobson)

UML Distilled (Martin Fowler)