38
1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia de Software e Rede de Computadores) Web Site: http://www.leserc.dee.ufma.br/ Contato: denivaldo.lopes AT dee.ufma.br

1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

Embed Size (px)

Citation preview

Page 1: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

1

Estudo de caso em UML

Denivaldo Lopes

Engineering for a better life

Laboratory of Software Engineering and Computer Network

LESERC(Laboratório de Engenharia de Software e Rede de Computadores)

Web Site: http://www.leserc.dee.ufma.br/Contato: denivaldo.lopes AT dee.ufma.br

Page 2: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

2

Sumário

Sistema de controle de acesso a um prédio Diagramas de caso de uso Diagrama de seqüência Diagramas de colaboração Diagrama de classe Diagrama de atividade Diagrama de implantação

Page 3: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

3

Abordagem

UML é uma linguagem de modelagem. UML não é um método de modelagem. UML não especifica uma abordagem de

modelagem, cada um é livre para escolher um processo.

Um método serve para canalizar e ordenar a criatividade de pessoas que são responsáveis pela modelagem de uma aplicação.

UML por si só não garante um resultado satisfatório de desenvolvimento do sistema.

Page 4: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

4

Abordagem

O valor não está no método, mas nas pessoas que se servem do método.

A abordagem que usaremos é seguinte:

Caso de usoArquitetura

Iterativo e Incremental

Grupo A

Processo genérico

Empresa B

<<dirigido por>> <<No transcorrer>><<Centrado na>>

Page 5: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

5

Determinação das necessidades

O contato com o contratante: as necessidades do sistema são determinadas à partir das informações recolhidas durante os encontros com os funcionários de informática e os futuros utilizadores do sistemas. Os usuários dizem o que querem Os prof. de informática levantam as

necessidades que os usuários desejam realizar. Evitar conversas sobre hardware e linguagens de

programação. Centrar a discussão no problema e na lógica do

negócio.

Page 6: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

6

Representação das necessidades

As necessidades podem ser expressas na forma de caso de uso

Conjunto de Necessidades

Utilizador A

Utilizador B

Utilizador C

Page 7: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

7

Análise do domínio

A modelagem através de caso de uso segue um critério de decomposição funcional.

Evite fazer a decomposição através da arquitetura do sistema, para não engessar o sistema.

Os aspectos estáticos devem ser expressos por diagramas de classe

Os aspectos dinâmicos devem ser expressos por diagramas de colaboração e atividade

Page 8: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

8

Controle de acesso de um prédio

O espaço a proteger é um prédio de dois níveis com uma área de 250 m2

O prédio é dividido em 4 zonas Compartimentos:

Salas de escritório Laboratórios Administração

Deve haver direitos de acesso Um administrador do sistema Guardas Usuários O sistema deve permitir semanas tipo

(configuração do acesso a salas em função do horário, dia da semana)

Page 9: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

9

Descrição do caso de uso

Representação das categorias de usuários

Supervisor Portador de cartão Guarda

Ator Caso de uso

Supervisor Configura o sistema

Guarda Usa o sistema

Usuário Validação de uma solicitação de acesso

Page 10: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

10

Caso de uso

supervisor configuração

Portador de cartão

Supervisão

Identificação Controle de acesso

Guarda

Page 11: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

11

Caso de uso: configuração

Identificação

:Supervisor :Sistema

Login(senha)

verificação

Autorização

Page 12: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

12

Caso de uso: configuração

Modificações das informações relativas a uma porta

:Supervisor:Sistema

Modificação de uma porta

Salvar informações

Lista de porta

Escolha de uma porta

Informações da porta

Modificação das informações

Informação da porta

Page 13: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

13

Caso de uso: configuração

Modificações das informações relativas a uma pessoa

:Supervisor :Sistema

Modificação de uma pessoa

Salvar informações

Lista de pessoas

Escolha de uma pessoa

Informações da pessoa

Modificação das informações

Informação da pessoa

Page 14: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

14

Caso de uso: configuração

Modificações das informações relativas a um grupo de pessoas

:Supervisor:Sistema

Modificação de um grupo de pessoas

Salvar informações

Lista de grupos

Escolha de um grupo de pessoas

Informações do grupo

Modificação das informações

Informações do grupo de pessoas

Page 15: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

15

Caso de uso: configuração

Modificações das informações relativas a um grupo de portas

:Supervisor:Sistema

Modificação de um grupo de portas

Salvar informações

Lista de grupos

Escolha de um grupo de pessoas

Informações do grupo

Modificação das informações

Informações do grupo de portas

Page 16: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

16

Caso de uso: configuração

Busca de uma pessoa em função do cartão

:Supervisor:Sistema

Busca de uma pessoa (cartão)

Informações das pessoas

Page 17: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

17

Caso de uso: configuração

Busca de portas autorizadas para uma pessoa

:Supervisor:Sistema

Busca de portas autorizadas

Lista de pessoas

Escolha de uma pessoa

Lista de portas

Escolha de uma porta

Informações da porta

Page 18: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

18

Caso de uso: configuração

Modificações de direitos de acesso de um grupo de pessoas

:Supervisor :Sistema

Escolha de um grupo de pessoas

Lista o grupo de pessoas

Informações de um grupo de pessoas

Escolha de um acesso a um grupo de portas

Informações sobre o acesso

Modificação do acesso de um grupo de pessoas

Modificações das informações

Informações sobre o acesso

Salvar informações

Page 19: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

19

Caso de uso: configuração

Modificações de um tipo de semana

:Supervisor:Sistema

Escolha de uma semana tipo

Lista de semanas tipo

Modificação de uma semana tipo

Modificações das informações

Salvar informações

Informações de uma semana tipo

Informações sobre a semana tipo

Page 20: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

20

Caso de uso: configuração

Busca dos direitos de acesso de uma pessoa por uma porta específica

:Supervisor:Sistema

Escolha de porta

Lista de portas

Busca de direitos de acesso de uma pessoa por uma porta

Escolha de pessoas

Lista de pessoas

Informações sobre o acesso

Page 21: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

21

:Guarda :Sistema

Login(senha)

verificação

Autorização

Caso de uso: supervisão

Identificação

O guarda utiliza a supervisão

Page 22: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

22

Caso de uso: supervisão

Relatório de eventos

:Guarda:Sistema

Lista de alarmes

Relatório de alarmes (período)

Page 23: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

23

Caso de uso: supervisão

Relatório de eventos

:Guarda:Sistema

Eventos

Relatório de eventos (período)

Page 24: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

24

Caso de uso: supervisão

Abertura manual de uma porta

:Guarda:Sistema

Lista de portas

Abertura manual de uma porta

Escolha de uma porta

Abertura da porta

Registro do evento

Page 25: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

25

Caso de uso: supervisão

Alarme de incêndio

:Guarda :Sistema

Abertura de todas as portas

Incêndio

Page 26: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

26

Caso de uso: controle de acesso

O portador de cartão utiliza o controle de acesso

:Portador de Cartão:Sistema

Verifica os direitos de acesso

Apresenta seu cartão

[direitos de acesso OK] Abertura de porta

Page 27: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

27

Resumo de Caso de usoCaso de uso Cenários principais

Configuração Identificação

Configuração Modificação de informações relativas a uma porta

Configuração Modificação de informações relativas a uma pessoa

Configuração Modificação de informações relativas a um grupo de pessoas

Configuração Procura de uma pessoa em função do cartão

Configuração Modificação de direitos de acesso de um grupo de pessoas sobre um grupo de portas

Configuração Modificação de uma semana tipo

Configuração Apresentação de direitos de acesso de uma pessoa por uma porta específica

Supervisão Identificação

Supervisão Relatório de eventos

Supervisão Detecção de alarmes

Supervisão Abertura manual de uma porta

Supervisão Incêndio

Controle de acesso Autorização de passagem

Page 28: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

28

Exercício

Propor diagramas de colaboração, diagramas de classe e diagrama de implantação

Page 29: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

29

Diagrama de colaboração referente a identificação

:Supervisor :Login

Supervisor:Pessoa

3:Verificar(senha)

2:senha=LerSenha()

1:nome=LerNome()

Login Pessoa

Diagrama de classe preliminar

Page 30: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

30

Diagrama de estado-transição

Espera nome

Espera senha

Nome lido

[nome e senha OK]

[nome e senha incorreto]

Page 31: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

31

Diagrama de colaboração referente a modificação das informações de uma porta

:Supervisorp:Porta

2:Ler()3:Escrever()

1:selecionar()

:Porta

Page 32: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

32

Pesquisa de portas habilitadas para uma pessoa específica

:Supervisor

:Porta

:Pessoa

p:Pessoa

:Grupo de Portas

g:Grupo de Portas

1:p=Selecionar()

1:[i=1...n] g=Selecionar()

3:Ler informações

Page 33: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

33

Modificação de direitos de acesso de um grupo de pessoas a um grupo de portas

1:gPessoas=Selecionar()

2:gPortas=Selecionar()

3:Lista de acesso

4: a=Acesso(gPortas)

5:Leitura()6:Salvar()

gPessoa:GrupoDePessoas

:GrupoDePessoas

:Acesso

a:Acesso

gPortas:GrupoDePortas

:GrupoDePortas

:Supervisor

Page 34: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

34

Controle de Acesso: autorização de passagem

:Portador de cartão

1:Acesso(num. de cartão)

2:p=selectionar(num. cartão)

:Porta

gPortas:GrupoDePortas

:Acesso

:GrupoDePessoas

cartão:Cartão

p:Pessoa

:Pessoa

3:ListarAcesso()

4:ListarAcessoNa(gPortas)5:Éválida

(Hora)

Page 35: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

35

Diagrama de classe (parcial)

Porta

Pessoa

Nome

GrupodePortasNome

Nome

GrupodePessoas

Cartão

Validade

NúmeroCartão

Acesso

Page 36: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

36

Arquitetura (Diagrama de Implantação)

<<processador>>

PC supervisor

<<processador>>

PC guarda

<<dispositivo>>

Leitor de cartões1 35 2

1

1 <<RS422>>

Page 37: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

37

Exposição do exercício feito pelos alunos

Page 38: 1 Estudo de caso em UML Denivaldo Lopes Engineering for a better life Laboratory of Software Engineering and Computer Network LESERC (Laboratório de Engenharia

38

Exercício

Propor o modelo UML de um sistema que gerencia a admissão de candidatos em um curso de pós-graduação.

Realizar em grupos de 3 pessoas.

Nota: A descrição do domínio deve ser pesquisada.