• Nenhum resultado encontrado

Alessandro GarciaLES/DI/PUC-RioAbril de 2017Aula 10Arquitetura de Software e Exercício

N/A
N/A
Protected

Academic year: 2022

Share "Alessandro GarciaLES/DI/PUC-RioAbril de 2017Aula 10Arquitetura de Software e Exercício"

Copied!
25
0
0

Texto

(1)

Alessandro Garcia LES/DI/PUC-Rio

Abril de 2017

Aula 10

Arquitetura de Software

e Exercício

(2)

2 / 30 LES/DI/PU C-Rio

Não Esquecer...

• Preencher tabela de atividades ao longo do processo.

• NÃO DEIXE PARA ÚLTIMA HORA, POIS VOCÊ NÃO SE LEMBRARÁ DO QUE FEZ TAL DIA, TAL HORA.

• Com relatórios similares a esse você aprende a planejar o seu trabalho

• O relatório é INDIVIDUAL

(3)

3 / 30 LES/DI/PUC-Rio

Dicas para o Trabalho

• Não esqueça de rever cuidadosamente:

– critérios de avaliação

– procedimentos para entrega do trabalho

• Certifique-se que seu trabalho atende os seguintes pontos:

– estruturação: contém tanto o fonte dos módulos de implementação quanto módulos definição (interface)

• siga princípios de modularidade: interfaces simples e documentadas, ...

– obediência a padrões de programação

– não esqueçam de produzir arquivo LEIAME.TXT

• Ferramentas como gmake e batches de apoio deve ser

utilizados

(4)

Avisos e Lembretes

• T2 – entrega:

– prazo: 8/5 (segunda); até 7 da manhã do dia 9

• Prova P1:

– data: 10/5 (quarta)

• Lembrete – horário semanal da monitoria:

– 6ª. Feira, 13:00 - 15:00

• 9o. andar do prédio Padre Leonel Franca, sala à direita, após porta de vidro

4 /35 Alessandro Garcia © LES/DI/PUC-Rio

(5)

Set 2009 LES/DI/PUC-Rio 5 /36

Especificação

• Objetivos dessa aula

– Apresentar modelagem arquitetural

• 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

(6)

Set 2009 LES/DI/PUC-Rio 6 /36

Uma Visão Profissional

Documentação das decisões de projeto

Boas práticas de projeto modular

Decisões relacionadas as estratégias

organizacionais e do implementar primeiro

Requisitos

Código

Arquitetura

Descrição explícita de requisitos funcionais e não-funcionais

(7)

7 /36 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 lógico

(8)

Arquitetura de um sistema é...

• 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)

• permite ter uma visão global do programa com mínimo esforço

• 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

8 /35 Alessandro Garcia © LES/DI/PUC-Rio

(9)

Set 2009 LES/DI/PUC-Rio 9 /36

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

(10)

10 /36 LES/DI/PUC-Rio

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

arquivo *.h

arquivo *.c

(11)

11 /36 LES/DI/PUC-Rio

Visão Espandida das Interfaces

<<public interface>> <<public interface>>

(12)

Jogo de Damas?

• Modelagem da Arquitetura – Como Seria?

12 /36 LES/DI/PUC-Rio

? ?

?

? ?

?

(13)

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...

13 /36 LES/DI/PUC-Rio

(14)

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…

14 /36 LES/DI/PUC-Rio

(15)

Jogo de Damas?

• Modelagem da Arquitetura – Como Seria?

15 /36 LES/DI/PUC-Rio

? ?

?

Quais funções em cada módulo e interface?

? ?

(16)

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…

16 /36 LES/DI/PUC-Rio

(17)

Haviam outros módulos candidatos...

• ... A partir da descrição dos requisitos:

– Casa – Jogador – Dama

– PeçasEliminadas

• Como chegar a conclusão que não devem se tornar módulos, de fato?

Abr 2010 Alessandro Garcia © LES/DI/PUC-Rio 17 /35

(18)

Mas todos candidatos devem se tornar módulos?

• Não

• Outros Princípios de Modularização

– Acoplamento deve ser reduzido

• Alto acoplamento entre dois “módulos candidatos” é um indicador de que ambos deveriam consistir de um único módulo

Ex. Jogo de Damas: Tabuleiro (encapsula estrutura de dados que representa o Tabuleiro) e Casa (encapsula estrutura de dados que representa cada Casa)

– Coesão deve ser maximizada

• Se um subconjunto de funções não usam outras funções do mesmo módulo (baixa coesão):

então estas funções deveriam fazer parte de outro módulo X, caso estas invocarem funções de X com frequencia), ou,

caso contrário, estas funções deveriam fazer de um novo módulo

– Encapsulamento deve ser garantido

• um módulo não deve permitir que outros módulos tenham acesso a seus dados e funções internos

Abr 2010 Alessandro Garcia © LES/DI/PUC-Rio 18 /35

(19)

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)

19 /36 LES/DI/PUC-Rio

(do…

Tabuleiro)

(20)

Jogo de Damas

• Modelagem da Arquitetura – Visão das Interfaces

20 /36 LES/DI/PUC-Rio

(21)

Jogo de Damas?

• Modelagem da Arquitetura

21 /36 LES/DI/PUC-Rio

LISTA

(22)

Exercício: modelagem da arquitetura…

• … do programa FreeCell

– leve em consideração os módulos mencionados no enunciado do T2

• defina as funções das interfaces destes módulos

– defina outros módulos necessários

• A especificação dos requisitos será retornada

– alterar a especificação se necessário

– entregar a especificação de requisitos ao fim da aula

22 /35 Alessandro Garcia © LES/DI/PUC-Rio

(23)

Modelagem da Arquitetura

• Entrega do T2

– visão de módulos

– visão detalhada das interfaces

– espero que me enviem versão para receberem feedback

Abr 2010 Alessandro Garcia © LES/DI/PUC-Rio 23 /35

(24)

Avisos e Lembretes

• Saber escolher a melhor estrutura de dados é uma habilidade adquirida em outras disciplinas

– de fato, o uso de Listas pode não ser a estrutura mais adequada: número de casas é fixo

– porém... veremos que o uso de Listas pode facilitar a adição incremental de dados redundantes (instrumentação)

• objetivo: aumentar confiabilidade de um programa

– sempre use Lista ou ListaCircular; irá facilitar seu trabalho mais tarde

Abr 2010 Alessandro Garcia © LES/DI/PUC-Rio 24 /35

(25)

Alessandro Garcia LES/DI/PUC-Rio

Abril de 2017

Aula 10

Arquitetura de Software

Exercício

Referências

Documentos relacionados

Dentre essas respostas estão incluídas inflamação celular e produção de melanina, surgimento de amebócitos circulantes e antioxidantes (células do sistema imunológico e

a) Uma peça é retirada ao acaso. Qual a probabilidade da peça não ser defeituosa ?. b) Sorteam-se três peças desse lote (de 20 peças) ,

Desta forma, deve a ação ser julgada procedente, condenando-se a reclamada ao pagamento dos respectivos honorários no percentual de 30% sobre o valor total da

horizontalmente; ou 2 casas horizontalmente e, em seguida, 1 casa verticalmente. Uma peça pode pular outra peça, mas não pode sair do tabuleiro, e as peças não podem se

Assinale “Alterar Valores de Peças Já Cadastradas” para modificar as peças que você já enviou para o Portal Busca Peça Legal.. Clique em salvar

POWER &amp; UTILITIES FORUM.. • Aplicativo Operação Online em produção desde 4T2017 • Acesso:. • Todos os empregados: informações básicas • Perfil “técnico”:

O objetivo de um jogo é levar uma peça da casa inferior esquerda (casa (1, 1)) para a casa superior direita (casa (4, 4)), sendo que esta peça deve mover-se, de cada vez, para a

Con este libro, gañador do III Premio Martín Codax de poesía, Darío Xohán Cabana continúa explorando vieiros xa albiscados na súa obra, aínda que agora desde