introduÇÃo ceÇa moraes cecamoraes@gmail.com uml 23/4/2015 1

Post on 07-Apr-2016

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

INTRODUÇÃOCEÇA MORAES

CECAMORAES@GMAIL.COM

UML

27/04/23

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

O que é um modelo?

27/04/23

3

O que é um modelo?

27/04/23

4

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

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

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

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

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

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

27/04/23

11

Casos de Uso

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

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

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

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

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

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

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

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

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

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

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]

Diagrama de Objetos

27/04/23

23

Diagrama de Objetos

27/04/23

24

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

Diagrama de Sequência

27/04/23

26

: ClienteAtor : TelaLogin : ControladorLogin : CadastroContas

efetuarLogin(login, senha)

efetuarLogin(login, senha)

existeConta(login, senha)

registraSessao(login)

Diagrama de Sequência

27/04/23

27

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

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>>

Diagrama de Colaboração

27/04/23

30

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

Diagrama de Estados

27/04/23

32

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

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

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

Diagrama de Componentes

27/04/23

36

FormCadastro.html

Cadastro.exe

Principal.html

FormEntrada.html

Autenticacao.exe

<<link>>

<<link>>Banco

Usuários

Senhas

Diagrama de Componentes

27/04/23

37

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

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

Diagrama de Implantação

27/04/23

40

27/04/2341

PERGUNTAS ???

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)

top related