Alessandro Garcia LES/DI/PUC-Rio
Abril 2019
Aula 9
Modelagem da Arquitetura
Especificação
• Objetivos dessa aula
– Notação de modelagem da arquitetura
– Realizar exercício: definição da arquitetura do programa do jogo de ludo
• Referência básica:
– Capítulo 10 – Seção 8.3 – Capítulo 9.4 – Apêndice 2
• Slides adaptados de: Staa, A.v. Notas de Aula em Programação Modular; 2008.
• Referência complementar
– Silva, R.P.; UML2 em Modelagem Orientada a Objetos; Florianópolis, SC: Visual Books; 2007
Sumário
• Por que é importante definir arquitetura de um programa?
• Notação para arquitetura de software
– módulos, interfaces e dependências – definição das interfaces
• Como identificar módulos, interfaces e dependências?
3 /35 Alessandro Garcia © LES/DI/PUC-Rio
De requisitos a implementação
Requisitosdo Sistema
Arquiteturado Sistema
Desenvolvimento de cada Módulo
Validação dos Módulos Derivação de
Casos de Teste
• Dos requisitos em alto nível de abstração até…
• ... implementação e teste dos módulos do sistema
1. definição de todas as interfaces (*.h)
2. definição de todas as implementações (*.c) 1. Requisitos funcionais
2. Requisitos não-funcionais
modelo arquitetural
Arquitetura de um sistema é...
• um conjunto dos módulos essenciais de um sistema, suas interfaces, e as interdependências entre estes
– devendo satisfazer requisitos
• Como representar a arquitetura de sistemas?
– com modelos (representação visual)
• arquitetura poderia ser representada com um simples diagrama de retângulos e linhas, mas não permite representar interfaces
• Para modelos conceituais da arquitetura, utilizaremos um diagrama da linguagem UML
– diagrama de “componentes”
– módulos são representados como componentes neste diagrama
5 /35 Alessandro Garcia © LES/DI/PUC-Rio
Diagrama de módulos (componentes)
• Conjunto de módulos (componentes) de software e suas relações estruturais
• Definição lógica e independente de tecnologia
– Omissão de detalhes de implementação:
• ex. funções internas/auxiliares, estruturas de dados, etc...
• Especificação de interfaces providas e requeridas
• Dependências entre:
– diferentes módulos
– módulos e suas interfaces, e – entre interfaces
7 /36 LES/DI/PUC-Rio
Modelo de Módulos (Componentes)
Concurrent Exception
Handling Action
Exception
Exception Handling
Strategy ISearch
ICooperation
Handler
IInvocation
IRaising
IGet Information
IUpdate Information
get and update
get and update get
invoke handler
search handler
Modelo de Módulos (Componentes)
Concurrent Exception
Handling Action
Exception
Exception Handling
Strategy ISearch
ICooperation
Handler
IInvocation
IRaising
IGet Information
IUpdate Information
get and update
get and update get
invoke handler
search handler
arquivo *.h arquivo *.c
9 /36 LES/DI/PUC-Rio
Visão Expandida das Interfaces
Jogo de Damas?
• Modelagem da Arquitetura – Como Seria?
? ?
?
? ?
?
Jogo de Damas
• Requisitos Funcionais? Exemplos…
• partida é praticada entre duas pessoas, num tabuleiro de 8 x 8 casas alternadamente claras e escuras
• cada jogador possui 12 peças (pretas ou brancas) e tem como objetivo capturar ("comer") as peças do adversário
• ganha aquele que "comer" todas ou a maior quantidade de peças do adversário
• cada jogador movimenta uma peça por vez
• existem dois tipos de peças, a peça comum, que são as peças que os jogadores possuem no início do jogo e as damas
• se uma peça comum do jogador terminar uma rodada na última fileira de casas do lado oposto do tabuleiro, esta é substituída por uma dama
• etc...
11 /36 LES/DI/PUC-Rio
Como criar o modelo da arquitetura?
• Identifique nos requisitos os módulos do sistema
– São as abstrações principais
– São usualmente ‘substantivos’ nos requisitos:
• Damas: Tabuleiro, Peça, Partida/Damas, Jogador, etc…
Jogo de Damas?
• Modelagem da Arquitetura – Como Seria?
13 /36 LES/DI/PUC-Rio
LISTA
Jogo de Damas?
• Modelagem da Arquitetura – Como Seria?
? ?
?
Quais funções em cada módulo e interface?
? ?
Como criar o modelo da arquitetura?
• Identifique nos requisitos os módulos do sistema
– São as abstrações principais
– São usualmente ‘substantivos’ nos requisitos:
• Damas: Tabuleiro, Peça, Partida/Damas, Jogador, etc…
• Identificação das funções das interfaces
– São usualmente ‘verbos’:
• Damas: criar tabuleiro, inserir peça na casa, mover peça de casas, retirar peça da casa,….
obter cor da peça, obter status da peça, etc…
15 /36 LES/DI/PUC-Rio
Como criar o modelo da arquitetura?
• Identifique nos requisitos os módulos do sistema
– São as abstrações principais
– São usualmente ‘substantivos’ nos requisitos:
• Damas: Tabuleiro, Peça, Partida/Damas, Jogador, etc…
• Identificação das funções das interfaces
– São usualmente ‘verbos’:
• Damas: criar tabuleiro, destruir tabuleiro, inserir peça na casa, mover peça de casas, retirar peça da casa,….
obter cor da peça, obter status da peça, etc…
• Alocação de cada função para cada interface dos módulos
– Como descobrir qual é a alocação mais apropriada?
• As ações (funções) são sempre feitas sobre o sujeito/substantivo (candidato a módulo)
(do…
Tabuleiro)
Jogo de Damas
• Modelagem da Arquitetura – Visão das Interfaces
17 /36 LES/DI/PUC-Rio
Exercício – Modelagem da Arquitetura
• Entregue a especificação de requisitos no fim da aula
• Exercício – crie um modelo da arquitetura
– visão de módulos
– visão detalhada das interfaces
– necessário refinar especificação dos requisitos?
Modelo de Componentes
Concurrent Exception
Handling Action Exception
Exception Handling
Strategy ISearch
ICooperation
Handler IInvocation
IRaising
IGet Information
IUpdate Information
get and update
get and update get
invoke handler
search handler
Visão de Módulos
Visão de Interfaces
Exercício – Modelagem da Arquitetura
• Entregue a especificação de requisitos no fim da aula
• Exercício – crie um modelo da arquitetura
– visão de módulos
– visão detalhada das interfaces
– necessário refinar especificação dos requisitos?
Alessandro Garcia LES/DI/PUC-Rio
Abril 2019