27
Projetar Cápsulas Parte 1

Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Embed Size (px)

Citation preview

Page 1: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar Cápsulas Parte 1

Page 2: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 2

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Objetivos deste móduloApresentar os passos necessários para realizar a atividade projetar cápsulas e discutir seus artefatosApresentar notação de UML para representação de concorrência e tempo real

Page 3: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 3

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Projetista deBanco de Dados

Arquiteto de Software

Revisor de projeto

Projetar Casos de Uso

Projetar Subsistemas

Projetar Base de Dados

Analista deSistemas

Projetar Cápsulas

Projetar Cápsulas

Page 4: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 4

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Projetar Cápsulas

Analisar Casos de Uso

Revisar Projeto

Projetar Arquitetura

Projetista deBanco de Dados

Arquiteto de Software

Revisor de projeto

Projetar Casos de Uso

Projetar Subsistemas

Projetar Base de Dados

Analista deSistemas

decisões doarquiteto

<<subsystem>>

Projetar Cápsulas

Page 5: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 5

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

O que foi feito até agoraIdentificação das classes de análise, seus atributos, responsabilidades e relacionamentosMapeamento das classes de análise em elementos de projeto Identificação das oportunidades de reusoDefinição da organização do sistemaDefinição da distribuição do sistemaRefinamento das realizações dos casos de uso (substituição dos elementos de análise por elementos de projeto e persistência)Modelagem dos subsistemas

Page 6: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 6

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Objetivos desta atividadeDetalhar a estrutura e o comportamento das cápsulas identificadas no projetoDetalhar e especificar portas e protocolos Garantir que as cápsulas fornecem o comportamento necessário à realização dos casos de uso

Realizada para cada cápsula da iteração correnteTodas as cápsulas devem estar

projetadas até o final da fase de elaboração

Page 7: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 7

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Visão geral dos artefatos

Analista de Sistemas

Projetar Cápsulas

Projeto de Cápsulas

Modelo de Análise e Projeto

Requisitos Não

Funcionais

Page 8: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 8

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Passos para Projetar Cápsulas

• Definir diagrama de estados• Validar comportamento da cápsula• Definir diagrama de estrutura

Page 9: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 9

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Passo 1. Definir diagrama de

estadosDefinir o comportamento interno da cápsulaQuando utilizar? Para representar o comportamento interno

das cápsulas Para especificar restrição de ordem nos

sinais de um protocolo

Page 10: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 10

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Diagrama de estados x diagrama de interação

Diagrama de estados Comportamento interno de uma classe ou

cápsula (também de interfaces e protocolos)

Diagrama de interação Comportamento do caso de uso como uma

cooperação entre classes (cápsulas)

Page 11: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 11

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Maquina de EstadosMaquinas de estados são utilizadas para: Indicar qual será o comportamento dos

objetos de acordo com o seu estado Indicar seqüência de ações válidas

Saldo = 0

crédito

Saldo > 0

construtor

crédito debito

debito

Máquina de estados ilustrando o ciclo de

vida de um objeto Conta

Page 12: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 12

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Diagrama de Estados - InterfaceRelogio

Cápusla: InterfaceRelogio

AguardandoInterrupcao

Initial

gerarInterrupcao

Page 13: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 13

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Diagrama de Estados – ComunicacaoBovespa sem

ACKCápsula: ComunicacaoBovespa

AguardandoPeriodo

AguardandoDados

Initial

recebeuDadosiniciarAtualizacao

Page 14: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 14

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Diagrama de Estados – ComunicacaoOperadora

Cápsula: ComunicacaoBovespa

EsperancoSolicitacao

AguardandoDados

Initial

dadosCotacoes[count == 2]/ controlador.dadosCotacoes.send()

consultarCotacoes

dadosCotacoes[count < 2]

EntryAction: count = 0ExitAction: dadoCotacao =rtGetMsgData () buffer.add( dadoCotacao) count = count + 1

Page 15: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 15

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Diagrama de Estados – ComunicacaoBovespa com

ACK

AguardandoPeriodo AguardandoACK

AguardandoDados

Initial

iniciarAtualizacao

recebeuACKrecebeuDados

Cápsula: ComunicacaoBovespa

Page 16: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 16

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Exemplo: Produtor-Consumidor

Produtor

#/ timer+/ porta

produz(): Q

Consumidor

+/ porta~consome(q: Q)

Comunicacaoincomingoutgoing

envia(Q )

Esperando

transicão inicial

envio/ consome(q);

Consumidor

Produzindo

transicão inicial

timeout/ produz(); porta.envia.send(q);

Produtor

Page 17: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 17

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Diagramas de EstadosNotação

estado

transicão

estado

transicão final

transicão inicial

super-estado

transicão deorigem externa

auto-transicão

Principais elementos

sub-estado

sub-estado

Estado históriaH

Page 18: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 18

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Exemplo: Produtor-Consumido

estendidoProdutor

#/ timer+/ porta

produz(): Q

Consumidor

+/ porta~

consome(q: Q)

Comunicacao

Incomingligar() parar()

outgoingenvia(Q )

Produzindo

transicão inicial

timeout/ produz();porta.envia.send();

Produtor

Parado parar/ timer.cancel();ligar/

timer.informEvery(100);

LigandoProdutor

inicial Consumidor

Consumindo

timeout [s >= 20]/ timeout [s <= 20]/

envio [s < 50]/ buffer.add(q);

timeout [20 < s && s < 50]/ consumir (buffer.top());

timeout [s = 50]/ porta.parar.send();

H

20

50

Page 19: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 19

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Diagrama de EstadosEstados

Estado é uma condição de um objeto no qual este realiza alguma atividade ou espera por determinado evento.É composto de: Nome : Obrigatório

Ação de entrada (Entry action) Ação de saída (Exit action) Máquina de estados interna

Page 20: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 20

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Entry/Exit action

A

x/ execute();

C

B

y/ execute();

A

x

C

B

yEntryAction: Execute();

B

x/ execute();

A

C

y/ execute(); x y

ExitAction: Execute();

B

A

C

Page 21: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 21

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Diagrama de EstadosTransições

Transição é um relacionamento direcionado entre dois estados (origem e destino)É composta de: Nome : Obrigatório

Estado origem Evento de disparo : Obrigatório

Condição de guarda Ação Estado destino : Obrigatório

Page 22: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 22

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Diagrama de EstadosOrdem de Execução das Ações

Na seqüência t1, t5, t3 Ação de t1 Entry action do estado1 Ação de t2 (implícita) Entry action do estado1.1 Exit action do estado1 Ação de t5 Entry action do estado1 Ação de t2 (implícita) Entry action do estado1.1 Exit action do estado1.1 Ação de t3 Entry action do estado1.2

estado1.1

estado1.2

t2

t3

t4

t1

estado1t6

t5

Page 23: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 23

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Diagrama de EstadosEstados história

Permitem continuidade na execução de máquinas de estados internas a super-estadosExemplo: ...

1. t12. estado13. t24. estado25. t36. estado37. t6 8. estado3.19. t410. estado3.111. t712. estado3.213. t414. estado3.2

...

estado3.1

estado3.2

H

estadohistória

t6

t7

t8

estado1

t2

estado2

t1

estado3

t5

t4t3

Page 24: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 24

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Diagrama de Estados Passo-a-passo

Para cada cápsula: Defina estados

• Identifique os estados em que a cápsula pode existir• Organize o diagrama hierarquicamente

Defina transições entre estados• Identifique os eventos que disparam as transições• Verifique a existência de condições para o disparo

Associe ações (ainda em pseudo-código) às transições e aos eventos de chegada e saída dos estados

Atualizar os diagramas de seqüência inserindo estados locais entre mensagens e eventos

Page 25: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 25

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Diagramas de EstadosOrientações

Definição de Nomes dos estados devem estar no gerúndio representando intervalo

de tempo das transições devem representar condições ou ações

Número de estados Se houver mais de 5 a 7 estados, analise a utilização de sub-

estados favorecendo a compreensãoDisparo de transições Certifique-se de que apenas uma transição será disparada por

vez. Mais de uma transição habilitada torna a execução imprevisível.

AguardandoPeriodo

gerarInterrupcao

Page 26: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar cápsulas | 26

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Passo 2. Validar comportamento da

cápsulaRevisar o modelo simulando vários cenários Verificar: Nomes apropriados para estados e transições Seqüência de execução das ações Disparo das transições

• É sempre possível continuar a execução?• Cada evento dispara apenas uma transição?

Operações nas cápsulas• As cápsulas possuem as operações necessárias para

as responsabilidades definidas no diagrama de estados?

Page 27: Projetar Cápsulas Parte 1. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar cápsulas | 2 Objetivos deste módulo

Projetar Cápsulas Parte 1