projeto de sistemas com uml - parte 2

37
#AnaliseDeSist emas Prof. Natanael Simões natanaelsimo es Projeto de Sistemas com UML Parte 2: Representação gráfica dos principais diagramas e exercícios práticos de diagramação

Upload: natanael-augusto-viana-simoes

Post on 06-Jun-2015

483 views

Category:

Documents


0 download

DESCRIPTION

Conceitos fundamentais de diagramas de caso de uso e de classe exemplificando passo a passo a elicitação dos requisitos e implementação

TRANSCRIPT

#AnaliseDeSistemas

Prof. Natanael Simões

natanaelsimoes

Projeto de Sistemas com UMLParte 2: Representação gráfica dos principais diagramas e exercícios práticos de diagramação

2

• Representa as funções globais de um sistema

• Notações gráficas:– Ator– Caso de uso– Relacionamento– Limite

Diagrama de Caso de Uso

3

• Representa um agente externo ao sistema– Pessoa– Dispositivo (Impressora, leitor)– Organização (IFRO, Prefeitura)– Departamento (Recursos Humanos, Financeiro)– Outro sistema (Webservice, DLL)

Ator

Ator

4

a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…”

b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…”

c) “… a secretária pode importar os Registros Acadêmicos do sistema administrativo, desde que informe o seu login e senha…”

Ator

5

d) Estamos criando um serviço de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Alguns volumes são considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor.

Ator

6

a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…”

b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…”

c) “… a secretária pode importar os Registros Acadêmicos do sistema administrativo, desde que informe o seu login e senha…”

Ator

7

d) Estamos criando um serviço de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Alguns volumes são considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor.

Ator

8

• Representa uma grande função do sistema

Caso de Uso

Gerar relatório

9

a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…”

b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…”

c) “… a secretária pode importar o Registro Acadêmico dados dos alunos do sistema administrativo, desde que informe o seu login e senha…”

Caso de Uso

10

d) Estamos criando um serviço de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Alguns volumes são considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor.

Caso de Uso

11

a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…”

b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…”

c) “… a secretária pode importar o Registro Acadêmico dados dos alunos do sistema administrativo, desde que informe o seu login e senha…”

Caso de Uso

12

d) Estamos criando um serviço de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Alguns volumes são considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor.

Caso de Uso

13

• Definem como atores e casos de uso se relacionam entre si

• Entre ator e caso de uso– Associação: O que o ator usa

Relacionamentos

Gerar relatório

Ator

14

Ator C

• Entre atores– Generalização ou Especialização: herança de

usos

Relacionamentos

Ator A Ator B

15

• Entre ator e casos de uso– Generalização ou Especialização: herança de

funções

Relacionamentos

Gerar relatório Imprimir

16

• Entre ator e casos de uso– Include: processamento obrigatório

Relacionamentos

Marcar consulta

Procurar registro do paciente

<<include>>

17

• Entre ator e casos de uso– Extend: processamento condicional

Relacionamentos

Verificar nível do

compartimento

Reabastecer compartimento

<<extend>>

18

• Conhecido como System Boundary• Delimita o sistema computacional

Limite

19

a) “… o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet…”

b) “… o caixa eletrônico permitirá ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta…”

c) “… a secretária pode importar o Registro Acadêmico dados dos alunos do sistema administrativo, desde que informe o seu login e senha…”

Diagramas !

20

d) Estamos criando um serviço de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Alguns volumes são considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor.

Diagramas !

21

• Conjunto de representações de estruturas de objetos do mundo real e suas relações

• Pré-requisito para os diagramas de:– Comunicação– Sequência– Estados

Diagrama de Classes

22

• Representação das características e comportamentos abstraídos de objetos em comum do mundo real

• Possui atributos, métodos e relacionamentos

Classe

<<class>>Cachorro

- Cor:string- Altura:double- Tamanho:double- Peso:double- Raça:string- Nome:string

+ EmitirSom():void+ Correr(int velocidade):void+ Comer(Comida c):void+ Comer(Objeto o):void

Identificação da classe

Atributos

Métodos

23

• <<class>>• <<entity>>• <<control>>• <<boundary>>• <<interface>>• <<abstract>>

Identificação da Classe

<<class>>Cachorro

Estereótipo

Nome

24

Interface x Abstrata

Herança múltipla

Interface Abstrata

Uma classe pode implementar diversas interfaces

Uma classe pode herdar  somente uma classe

25

Interface x Abstrata

Implementação padrão

Interface Abstrata

Uma interface não pode conter qualquer tipo de código, muito menos código padrão.

Uma classe abstrata pode fornecer código completo, código padrão ou ter apenas a declaração de seu esqueleto para ser posteriormente sobrescrita.

26

Interface x Abstrata

Homogeneidade

Interface Abstrata

Se todas as diversas implementações compartilham a assinatura do método então a interface funciona melhor.

Se as várias implementações são todas do tipo e compartilham um comportamento e status comum , então a classe abstrata funciona melhor.

27

Interface x Abstrata

Funcionalidades adicionais

Interface Abstrata

Se você incluir um novo método em uma interface você precisa ajustar todas as implementações da interface.

Se você incluir um novo método em uma classe abstrata você tem a opção de fornecer uma implementação padrão para ele.

28

[visibilidade] [nome] : [tipo]

• Visibilidade– Pública (+)– Protegida (#)– Privada (-)

• Nome do atributo• Tipo de dado

Atributos

- Cor:string- Altura:double- Tamanho:double- Peso:double- Raça:string- Nome:string

29

[visibilidade] [nome] ([tipo p1] [nome p1], [tipo p2] [nome p2]): [tipo]

• Visibilidade– Pública (+)– Protegida (#)– Privada (-)

• Nome do Método• Tipo e Nome de cada parâmetro• Tipo de retorno do método

Métodos

+ EmitirSom():void+ Correr(int velocidade):void+ Comer(Comida c):void+ Comer(Objeto o):void

30

• Herança

Relacionamentos entre classes

Cachorro

+ Pegar(Bolinha b):boolean+ Pegar(Graveto g): boolean+ EmitirSom():void+ Correr(int velocidade):void

Mamifero

- Cor:string- Altura:double- Tamanho:double- Peso:double- Raça:string- Nome:string

+ EmitirSom():void+ Correr(int velocidade):void+ Comer(Comida c):void

31

• Associação

Relacionamentos entre classes

FuncionárioEmpresa

32

• Multiplicidade

Relacionamentos entre classes

FuncionárioEmpresa

1 0 .. *

33

• Agregação

Relacionamentos entre classes

BA- b: B

1 1

34

• Agregação

Relacionamentos entre classes

public class A {    private B b;    public A( ){    }    public void setB( B b ){         this.b = b;    }    public B getB( ) {        return b;     }}

public class B {    public B( ){    }}

35

• Composição

Relacionamentos entre classes

BA- b: B

1 1

36

• Composição

Relacionamentos entre classes

public class A {    private B b;    public A( ){        b = new B();    }}

public class B {    public B( ){    }}

37

• Realização

Relacionamentos entre classes

MySQL

<<interface>>DB

+ AbrirConexao(string host, string usuario, string senha, string porta, string banco):boolean+ Executar(string query): boolean+ Selecionar(string query): Collection+ FecharConexao:void

PostgreSQL SQLServer