Aula 11
Modelagem da arquitetura
Alessandro Garcia
Danyllo Albuquerque
LES/DI/PUC-Rio
Março 2014
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
1
Especificação
• Objetivos dessa aula
– Apresentar principios de modelagem do sistema (requisitos,
módulos, arquitetura, conceitual e física)
• 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
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
2
Sumário
• Requistos
• Arquitetura de Sistema
• Modelo conceitual
• Linguagem de representação gráfica para modelos físicos
• Modelo físico
• Exemplos
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
3
Requisito
• O que é um REQUISITO?
– Em software: “É a CARACTERIZAÇÃO do que
o sistema deverá fazer.”
• Existem vários tipos de requisitos que devem
ser analisados…
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
4
Motivação
• Segundo Brooks*, a ER é a parte mais difícil da
construção de um software.
• Nenhuma outra parte do desenvolvimento causa
tantos danos se feita de forma errada.
• Nenhuma outra
corrigida.
parte é tão difícil
de
ser
*F. Brooks, No Silver Bullet: Essence and Accidents of Software Engineering, IEEE Computer, vol 20(4):10-19, april,1987.
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
5
Determina o sucesso…
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
6
Ou o fracasso…
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
7
Um pouco de humor…
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
8
Requisitos - Perspectiva Tecnológica
• Existem vários mecanismos de especificação:
– Linguagem natural;
– UML;
– Prototipação;
– Métodos formais, etc.
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
9
Tipos de requisitos
Funcionais - O que o sistema faz para satisfazer as
necessidades de seu usuário.
Não Funcionais - Atributos de qualidade que um
sistema deve possuir para satisfazer as necessidades de
seu usuário.
Restrições - Requisitos globais que o sistema deve
satisfazer, que servem para verificar a correção e a
adequação dos demais requisitos ( devem ser definidos
no início do processo de levantamento de requisitos ).
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
10
Tipos de requisitos - Exemplo
Funcionais
O elevador deve monitorar as chamadas dos passageiros em cada andar
Não Funcionais
O elevador não deve deslocar mais do que 500 kg de carga
Restrições
O Elevador deve minimizar seu custo de funcionamento
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
11
Exemplos de requisitos não funcionais
•Usabilidade (facilidade de uso pelos usuários)
•Confiança ( frequência e resistência a falhas, capacidade de
recuperação, predibilidade, precisão )
•Desempenho (capacidade, taxas em relação ao tempo, de precisão:
velocidade, disponibilidade, tempo de resposta, uso de memória )
•Suporte ( capacidade manter o sistema atualizado, em termos de
testes, manutenção, versões )
•Aparência ( estética, visual, design gráfico )
•Operacional ( o ambiente no qual será usado; ambiente operacional,
condições do usuário, sistemas relacionados)
•Segurança ( confidencialidade, integridade, disponibilidade )
•Cultura e Política ( costumes, preferências, hábitos dos usuários )
•Legal ( leis, regulamentações, normas existentes )
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
12
Jogo de Xadrez?
• Requisitos Funcionais / Não-Funcionais– Como Seria?
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
13
Jogo de Xadrez - RF
• Criar Tabuleiro - Cria um tabuleiro para o jogo de xadrez,
este tabuleiro é estruturado como uma lista de listas com
um total de 64 posições onde cada uma possui sua
respectiva lista de ameaçantes, lista de ameaçados, o tipo e
a cor de suas peças.
• Inserir Peça - Uma função que insere uma determinada
peca de tipo e cor especificadas pelo usuário em uma
determinada posição do tabuleiro.
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
14
Jogo de Xadrez - RF
• Mover Peça - Move uma peça de uma posição para outra,
seguindo as regras para movimentação de cada peça. Existe
um cuidado em movimentar peças para posições já
ocupadas, se as peças que ocupam a posição de destino
forem de cor diferente da peça que será movida, pode
ocorrer uma captura.
• Retirar Peça - Retira uma peça do tabuleiro a partir de uma
posição especificada pelo usuário.
• Obter Peça - Informa o tipo e a cor da peça de uma
determinada posição, seguindo as mesmas regras de tipo de
peça e cores válidas.
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
15
Jogo de Xadrez - RF
• Obter Lista Ameaçante - Retorna para o usuário a lista de
ameaçantes de uma determinada casa (posição) no
tabuleiro.
• Obter Lista Ameaçados - Retorna para o usuário a lista de
ameaçados de uma determinada casa (posição) no
tabuleiro.
• Destruir Tabuleiro - Desaloca os espaços que foram
utilizados pelo programa para que não haja vazamento de
memória.
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
16
Jogo de Xadrez - RF
• Devemos agrupar os requisitos do sistema de acordo com
os interesses das funcionalidades.
• A partir desta reunião dos RF podemos constituir os
módulos do sistema.
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
17
Jogo de Xadrez - RNF
• Robustez - Os dados de entrada serão validados, evitando
algumas situações de exceção, tal como o uso de
coordenadas inválidas ou peças com denominações
inválidas. No caso disto ocorrer aparece uma mensagem de
erro, permitindo nova entrada, sem interromper todo o
programa.
• Corretude - O uso do arcabouço de testes automáticos
permite o teste de uma série de condições normais de uso,
assim como condições de exceção, com o objetivo de testar
a corretude de várias partes do programa . Adicionalmente,
sempre é testado se existe memória suficiente para a
alocação das estruturas.
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
18
Jogo de Xadrez - RNF
• Reutilização - O aplicativo será feito em módulos, com
interfaces bem definidas. Isto permite que os módulos
possam ser posteriormente reutilizados. Um módulo de lista
genérico por exemplo pode ser reutilizado por outros
aplicativos.
• Manutebilidade - O uso de um programa em módulos facilita
a manutenção do aplicativo, pois geralmente fica fácil
determinar em que módulo está o erro, e o problema de
correção fica menor.
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
19
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
• Especificação de interfaces providas e requeridas
• Relações estruturais:
– associações entre interfaces: composição entre módulos
• Dependências entre:
– diferentes módulos
– módulos e suas interfaces, e
– entre interfaces
• Omissão de detalhes de implementação:
– ex. funções internas/auxiliares, estruturas de dados, etc...
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
20
Modelo de Componentes
IGet
Information
IRaising
Exception
IUpdate
Information
IInvocation
Handler
ICooperation
get and update
get
Concurrent
Exception
Handling
Action
get and update
invoke
handler
search
handler
arquivo *.c
Exception
Handling
Strategy
ISearch
arquivo *.h
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
21
Visão Expandida das Interfaces
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
22
Arquitetura de software - Definição
Representa a estrutura estática e comportamental de
um sistema, compreendendo os serviços do sistema,
realizados pelos componentes de software, que rodam
nos processadores disponíveis
Está associada a detalhes internos do software
na medida que esses detalhes manifestam-se
externamente
Não pode ser representada por um simples
diagrama: é multifacetada
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
23
Envolve os seguintes aspectos…
•Composição / Decomposição do Sistema ( Subsistemas / Módulos )
•Componentes e a Interação entre eles
•Níveis / Camadas e a Interação entre eles ( Ordem / Estrutura )
•Organização das partes físicas do software a serem implementadas
•Restrições do software ( naturais ou auto-impostas )
•Descrição geral do software
•Estrutura Estática / Dinâmica de um Sistema
•Estilo que orienta o desenvolvimento e a evolução do software
•Funcionalidade do software
•Outras considerações : reuso, desempenho, escalabilidade
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
24
Requisitos Vs Codigo
• A arquitetura do software desempenha
tipicamente um papel chave como uma ponte
entre requisitos e código.
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
25
Uma visão profissional…
Descrição explícita de requisitos funcionais e não-funcionais
Documentação das decisões de
projeto
Requisitos
Boas práticas de
projeto modular
Decisões relacionadas
as estratégias
organizacionais e do
implementar primeiro
Arquitetura
Código
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
26
Todo sistema tem arquitetura?
Todo sistema já criado
tem sua Arquitetura !!!
Ela existe independente do
seu conhecimento pelo
projetista de sistemas
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
27
Por quê usar arquitetura ?
1. Uma abordagem adhoc leva a sistemas difíceis de
mudar ou adaptar
2. Decomposição de sistemas em partes menores
torna o software mais fácil de entender,
administrar, desenvolver, manter
3. Auxilia
no
componentes
4. Auxilia desde
desempenho
desenvolvimento
o
início
na
baseado
administração
em
do
5. Leva a um reuso melhor
6. Influencia a segurança, a testabilidade,
manutenibilidade e a administração do sistema
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
a
28
Em resumo...
• Arquitetura é um conjunto dos módulos essenciais de um
sistema, suas interfaces, e as interdependências entre estes
– devendo satisfazer requisitos funcionais e não-funcionais
• 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
diagramas da linguagem UML
– arquitetura de software é o conjunto de módulos
(componentes), interfaces, e relacionamentos entre estes
módulos
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
29
Jogo de Xadrez?
• Modelagem da Arquitetura – Como Seria?
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
30
Jogo de Xadrez - Arquitetura
• Modelagem da Arquitetura – Como Seria?
?
?
?
?
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
31
Jogo de Xadrez - Arquitetura
• Modelagem da Arquitetura – Como Seria?
LISTA
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
32
Jogo de Xadrez - Arquitetura
• Modelagem da Arquitetura – Como Seria?
?
?
Quais funções em cada
módulo e interface?
?
?
?
LISTA
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
33
Jogo de Xadrez - Arquitetura
• Modelagem da Arquitetura – Visão das Interfaces
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
34
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:
• Xadrez: Tabuleiro, Peça, Jogo/Xadrez, Jogador, etc…
• Free Cell: Colunas_Livres, Colunas_Ordenadas, Baralho,
Embaralhamento, etc…
• Identificação das funções das interfaces
– São usualmente ‘verbos’:
• Xadrez: 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 descrobrir qual é a alocação mais apropriada?
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
35
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:
• Xadrez: Tabuleiro, Peça, Jogo/Xadrez, Jogador, etc…
• Free Cell: Colunas_Livres, Colunas_Ordenadas, Baralho,
Embaralhamento, etc…
• Identificação das funções das interfaces
(do… Tabuleiro)
– São usualmente ‘verbos’:
• Xadrez: 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)
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
36
Modelo conceitual
• Modelo conceitual
– descreve um conceito sem se preocupar com a forma de sua
implementação
• Exemplo
– um grafo dirigido é uma tupla < V , A , O > formada por
• um conjunto de vértices V,
• um conjunto de arestas dirigidas A e
• um conjunto de origens O  V.
– cada aresta a  A é um par < v1 , v2 > em que v1 , v2  V .
• a direção da aresta é de v1 para v2 .
– neste modelo conceitual, não temos detalhes de uma possível
implementação (modelo físico) de grafos dirigidos na linguagem C
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
37
Representação gráfica do exemplo conceitual
• Figuras (modelos) valem por mil palavras
– uma representação gráfica é muito melhor para a compreensão
humana
• para exemplos utilizam-se em geral representações (ad hoc) que
mais nos convierem
A
C
B
Origens
E
D
– em um modelo conceitual da arquitetura, também poderíamos
analisar propriedades de forma similar: p.e. dependências
entre módulos
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
38
Representação gráfica do exemplo conceitual
• Figuras (modelos) valem por mil palavras
– uma representação gráfica é muito melhor para a compreensão
humana
• para exemplos utilizam-se em geral representações (ad hoc) que
mais nos convierem
A
C É um modelo
de grafo
dirigido?
B
Origens
E
D
– em um modelo conceitual da arquitetura, também poderíamos
analisar propriedades de forma similar: p.e. dependências
entre módulos
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
39
Modelo conceitual baseado em classes
Origem
Origens
vértices
Vértice
Vértices
1..n
0..n
1
1
1
0..n
0..n
sucessores
predecessores
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
40
Modelo conceitual baseado em classes
Origens
vértices
Vértices
1
10..n
1
0..n
Problema: como representar
interfaces?
Mar 2014
0..n
sucessores
predecessores
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
41
UML (Unified Modelling Language)
• UML: foi desenvolvida para...
– modelagem orientada à objetos: classes, objetos, e diferentes
relacionamentos.
– modelagem conceitual: domínio da aplicação (“entidades do
mundo real”).
• Modelagem física com UML requer ligeiras adaptações
– utiliza-se notação semelhante.
• Um modelo físico de uma estrutura de dados descreve todas
as possíveis instâncias desse conceito em memória física.
• Um exemplo físico ilustra exatamente uma dessas possíveis
instâncias.
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
42
Jogo de Xadrez?
• Modelagem conceitual – Como Seria?
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
43
Jogo de Xadrez – Modelo Conceitual
Arquivos.h
Arquivos.c
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
44
Jogo de Xadrez – Modelo Conceitual
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
45
Do modelo conceitual para...
• ... modelo físico:
– É o resultado de uma transformação do modelo conceitual,
tornando-o realizável no meio físico alvo
– Estabelecem-se interdependências a serem realizadas no
meio físico escolhido, tais como:
• memória principal, determinada linguagem de programação, ou
determinado sistema de gerência de banco de dados
– Transformações devem preservar as características do modelo
conceitual
Origens
– Exemplo –
Grafo
direcionado
vértices
Vértices
1..n
assertivas
estruturais
1
0..n
1
1
0..n
0..n
sucessores
predecessores
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
46
Como implementar isso?
• Pode-se representar diretamente em memória uma relação
n para n, ou 1 para n?
– não, em memória temos somente ponteiros que são relações
0..1  { NULL , endereço }
– para representar um relação de n elementos precisamos de
alguma estrutura complementar, em geral uma lista
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
47
Linguagem de representação
• Estruturas de dados físicas podem ser modeladas usando uma
representação semelhante a dos diagramas de classes da UML2
– dois tipos básicos de relacionamentos
struct
relacionamento
tpPessoa
Tipo 1
Tipo 1 struct {
1
Nome
0..1
Tipo 2
Referência
tpPessoa Pessoa;
NometpCargo Cargo;
Nome
n
tpSalario Salario;
Tipo 2 } tpEmpregado
Tipo 2
Agregação
Tipo11
Tipo 1
Pessoa
tpCargo
tpEmpregado
Nome 2
Cargo
Tipo 2
Refinamento de
Salario
Nome 3
Tipo 3
tpSalario
Alternativa
nome da referência usado no Tipo 1
(outro exemplo: ponteiros)
• Tipo 1 e Tipo 2 são declarados como 1 ou mais elementos de
dados: ou seja, são estruturas (struct)
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
48
Linguagem de representação física
• Estruturas de dados físicas podem ser modeladas usando uma
representação semelhante a dos diagramas de classes da UML2
- dois tipos básicos de relacionamentos
struct
Tipo 1
Tipo 1
Tipo 1
Tipo 1
1
Nome
0..1
Tipo 2
Nome
n n
Tipo 2
Nome
Nome 2
Tipo 2
Tipopossibilidades:
2
Nome 3
Tipo 3
definido, exemplo: 20
Referência
Agregação
Refinamento
de
restrito,
exemplo:Alternativa
0..20
indefinido, exemplos: *
nome do elemento usado no Tipo 1
+ (1 ou mais)
3..*
• Tipo 1 e Tipo 2 são agregados de 1 ou mais elementos de dados:
ou seja, são estruturas (struct)
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
49
Linguagem de representação física
• Estruturas de dados físicas podem ser modeladas usando uma
representação semelhante a dos diagramas de classes da UML2
– dois tipos básicos de relacionamentos
Tipo 1
Nome
n
Tipo 2
Agregação
struct {
tpPessoa Pessoa;
char nomesCargos[10][X];
// X é o tam. max. de cada string
int valoresSalarios[10];
} tpEmpregado
Pessoa
tpEmpregado
valoresSalarios
tpPessoa
1..10
nomes
Cargos
1..10
char [X]
int
• Tipo 1 e Tipo 2 são agregados de 1 ou mais elementos de dados:
ou seja, são estruturas (struct) ou classes
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
50 /28
50
Outro Exemplo
• Modelando fisicamente a estrutura de uma Arvore
(ignorando a cabeça)
tgNoArvore
typedef struct tgNoArvore {
struct tgNoArvore * pNoEsq ;
/* Ponteiro para filho à esquerda
pNoEsq
tgNoArvore
tgNoArvore
pNoDir
struct tgNoArvore * pNoDir ;
/* Ponteiro para filho à direita
Valor
char
char Valor ;
/* Valor do nó */
} tpNoArvore ;
Mar 2014
Como simplificar
notação?
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
51
Outro Exemplo
• Modelando fisicamente a estrutura de uma Arvore
(ignorando a cabeça)
tgNoArvore
typedef struct tgNoArvore {
struct tgNoArvore * pNoEsq ;
/* Ponteiro para filho à esquerda
pNoEsq
tgNoArvore
tgNoArvore
pNoDir
struct tgNoArvore * pNoDir ;
/* Ponteiro para filho à direita
char Valor ;
/* Valor do nó */
Valor
char
forma concisa de representar um
tipo (struct)
} tpNoArvore ;
tgNoArvore
pEsq
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
Valor
pDir
52
Exemplo: Comparando Referência vs. Agregação
Modelo de árvore binária usando referências
forma concisa de representar um
tipo (struct)
tgNoArvore
pEsq
Valor
pDir
Modelo de árvore n-ária usando agregação
0..3
tgNoArvore
h
pEsq
Valor
pDir
0..3
d
c
Mar 2014
d
a
e
x
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
g
k
53
Se fossem modelar por completo...
... a estrutura de dados
ÁrvoreÁrvore:
pRaiz
pCorrente
Modelo de árvore binária
o que falta neste modelo?
Nó
pEsq
Valor
pDir
pEsq Valor pDir
Uso 1
Uso 2
Uso 3
Árvore 2
Árvore 1
a
c
pCorrente
d
b
c
a ( c *b )
Mar 2014
h
pCorrente
g
i
k
h ( d ( c nil ) *g ( i k ) )
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
54
Cabeça de estrutura
• Cada estrutura de dados deve poder ser tratada como se
fosse uma unidade
– independente da sua complexidade e da diversidade de
componentes
• Para tal pode-se utilizar uma cabeça de estrutura
– todas as referências para a estrutura referenciam a cabeça
– as referências internas à estrutura são desconhecidas ao cliente
• Vantagens
– melhor encapsulamento da estrutura
• a cabeça da estrutura passa a ser uma interface de acesso
• reduz o risco de uso acidental ou deliberadamente incorreto
– permite tratar estruturas vazias
– permite mover as estruturas na memória
• somente a cabeça precisa ficar fixa
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
55
Como representar cabeças de estruturas?
Árvore tgArvore
pRaiz pCorrente
cabeça de
estrutura
Nó
pEsq
Uso 1
Valor
Árvores
pDir
tgNoArvore
Uso 2
Uso 3
Árvore 2
Árvore 1
a
c
pCorrente
d
b
c
a ( c *b )
Mar 2014
h
pCorrente
g
i
k
h ( d ( c nil ) *g ( i k ) )
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
56
Jogo de Xadrez?
• Modelagem física – Como Seria?
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
57
Jogo de Xadrez – Modelagem Física
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
(Visão geral)
58
Jogo de Xadrez – Modelagem Física
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
59
Jogo de Xadrez – Modelagem Física
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
60
Andamento dos trabalhos
• Monitor -
2ª. Feira (1630 as 1730)
• [email protected][email protected]
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
61
Dúvidas?
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
62
Próximos encontros...
Mar 2014
Nr
Aula
Data
1
Teste automatizado – parte 1
Conceitos
12/03
2
Teste automatizado – parte 2
Uso e Instalação do arcabouço
17/03
3
Especificação de requisitos de
módulos e de funções
26/03
4
Métodos caixa-preta
de teste de módulos
26/05
5
Exercício
Métodos de teste caixa-preta
28/05
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
63
Fim...
Mar 2014
Danyllo Albuquerque- OPUS Group/LES/DI/PUC-Rio
64
Download

Aula 11 Modelagem da arquitetura - PUC-Rio