capítulo 6 design da arquitectura - di.ubi.ptsebastiao/ensino/ubi/2017-2018/es/teoricas/ch6... ·...
TRANSCRIPT
Capítulo 6 – Design da Arquitectura
Capítulo 6 Design da Arquitetura 12017/2018
Assuntos abordados
Decisões de design de arquitectura
Visões de arquitetura
Padrões de arquitetura
Arquiteturas de aplicativos
Capítulo 6 Design da Arquitetura 22017/2018
Design da arquitetura
A arquitetura está preocupada com a compreensão de
como um sistema de software deve ser organizado e de
projetar a estrutura geral do sistema.
A arquitetura é o elo crítico entre design e a engenharia
de requisitos, uma vez que identifica os principais
componentes estruturais de um sistema e as relações
entre eles.
O resultado do processo de arquitetura é um modelo de
arquitetura que descreve como o sistema está
organizado, como um conjunto de components se
comunicam.
Capítulo 6 Design da Arquitetura 32017/2018
Agilidade e arquitetura
É geralmente aceite que num estágio inicial de
processos ágeis, se projete uma arquitetura geral dos
sistemas.
Refazer a arquitetura do sistema é geralmente caro
porque afeta todos os componentes do sistema
Capítulo 6 Design da Arquitetura 42017/2018
Arquitetura de um sistema de controle do robô
de embalamento
Capítulo 6 Design da Arquitetura 52017/2018
Abstração
Uma pequena arquitetura está preocupada com a
arquitetura de programas individuais. A este nível,
estamos preocupados como um programa individual é
decomposto em componentes.
Uma grande arquitetura (completa) está preocupada
com a arquitetura de sistemas empresariais complexos
que incluem outros sistemas, programas e componentes
do programa. Estes sistemas empresariais estão
distribuídos por diferentes computadores, que podem
ser detidos e geridos por empresas diferentes.
Capítulo 6 Design da Arquitetura 62017/2018
Vantagens de uma arquitetura explícita
Comunicação entre as partes interessadas
A arquitetura pode ser usada como um foco de discussão pelosstakeholders do sistema.
Análise de sistema
Significa que se analisa se o sistema pode atender aos seusrequisitos não-funcionais.
Reutilização em grande escala
A arquitetura pode ser reutilizável em todo o sistema.
Capítulo 6 Design da Arquitetura 72017/2018
Representações da arquitetura
Simples, diagramas informais de blocos, mostram
entidades e relacionamentos, são o método mais
utilizado para documentar arquiteturas de software.
Mas estes têm sido criticados porque eles não têm
semântica, não mostram os tipos de relacionamentos
entre entidades, nem as propriedades são visíveis de
entidades na arquitetura.
Depende do uso dos modelos de arquitetura. Os
requisitos para o modelo de semântica depende de
como os modelos são utilizados.
Capítulo 6 Design da Arquitetura 82017/2018
Diagramas
Muito abstrato - não mostram a natureza dos
relacionamentos dos componentes, nem as
propriedades externas dos subsistemas.
No entanto, útil para a comunicação com as partes
interessadas e para o planeamento do projeto.
Capítulo 6 Design da Arquitetura 92017/2018
O uso de modelos de arquitetura
Como forma de facilitar a discussão sobre o projeto ou
sobre o sistema
Visão Alto nível da arquitetura de um sistema, é útil para a
comunicação com as partes interessadas do sistema e
planeamento do projeto, porque não é cheia de detalhes. As
partes interessadas podem-se relacionar e entender uma visão
abstrata do sistema. Eles podem, em seguida, discutir o sistema
como um todo, sem ser confundida por detalhe.
Como forma de documentar uma arquitetura que foi
projetada
O objectivo aqui é produzir um modelo completo do sistema que
mostra os diferentes componentes do sistema, as seus
interfaces e as suas ligações.
Capítulo 6 Design da Arquitetura 102017/2018
Decisões de design da arquitectura
Capítulo 6 Design da Arquitetura 112017/2018
Decisões de design da arquitetura
Arquitetura é um processo criativo, cada processo é
diferente dependendo do tipo de sistema que está a ser
desenvolvido.
No entanto, uma série de decisões comuns abrangem
todo o projeto e essas decisões afetam as
características não-funcionais do sistema.
Capítulo 6 Design da Arquitetura 122017/2018
Decisões de design da arquitectura
Capítulo 6 Design da Arquitetura 132017/2018
Arquitetura e caraterísticas do sistema
Desempenho
Localizar operações críticas e minimizar as comunicações.
Segurança
Use uma arquitetura em camadas com itens críticos nascamadas internas.
Localizar características críticas de segurança num pequenonúmero de subsistemas.
Disponibilidade
Incluir componentes e mecanismos redundantes de tolerância afalhas.
Manutenção
Componentes substituíveis.
Capítulo 6 Design da Arquitetura 152017/2018
Visões da arquitetura
Capítulo 6 Design da Arquitetura 162017/2018
Visões da arquitetura
Que pontos de vista ou perspectivas são úteis quando
se desenha e documenta a arquitetura de um sistema?
As notações devem ser usadas para descrever os
modelos de arquitetura?
Cada modelo de arquitetura mostra apenas uma visão
ou perspectiva do sistema.
Ele pode mostrar como um sistema é decomposto em módulos,
como os processos em tempo de execução interagem ou as
diferentes maneiras em que os componentes do sistema são
distribuídos através de uma rede. Tanto o design como a
documentação, geralmente precisam apresentar múltiplas
visões de arquitetura de software.
Capítulo 6 Design da Arquitetura 172017/2018
visões de arquitetura
Capítulo 6 Design da Arquitetura 182017/2018
4 + 1 vista do modelo de arquitectura de
software
Visão lógica, mostra as captações chaves no sistema de
objectos ou classes de objectos.
Visão de processo, mostra como, em tempo de
execução, o sistema é composto e interage com os
processos.
Visão de desenvolvimento, mostra como o software é
decomposto para o desenvolvimento.
Visão física, mostra o sistema de hardware e de
software, como os componentes são distribuídos.
Relacionadas com casos de uso ou cenários (+1)
Capítulo 6 Design da Arquitetura 192017/2018
Representação das visões de arquitetura
Algumas pessoas argumentam que a Unified Modeling
Language (UML) é uma notação apropriada para
descrever e documentar arquiteturas de sistema
Contudo a UML não inclui abstrações apropriadas para
a descrição do sistema de alto nível.
Linguagens de descrição de arquitetura (ADLs) foram
desenvolvidos, mas não são amplamente utilizadas.
Capítulo 6 Design da Arquitetura 202017/2018
Padrões de arquitetura
Capítulo 6 Design da Arquitetura 212017/2018
Padrões de arquitetura
Os padrões são um meio de representação, partilha e
reutilização de conhecimento.
Um padrão de arquitetura é uma descrição estilizada de
boas práticas de projeto, que tem sido experimentado e
testado em diferentes ambientes.
Padrões devem incluir informações sobre quando eles
são e quando não são úteis.
Padrões podem ser representados utilizando descrições
tabulares e gráficos.
Capítulo 6 Design da Arquitetura 222017/2018
Model-View-Controlle (MVC)
Nome MVC (Model-View-Controller)
Descrição Esta apresentação separa e interação a partir dos dados do sistema. O
sistema está estruturado em três componentes lógicos que interagem uns
com os outros. A componente Model gere os dados do sistema e operações
associadas sobre esses dados. A componente View define e gere como os
dados são apresentados ao utilizador. A componente controller controla a
interação do utilizador (por exemplo, cliques de rato, etc.) e passa essas
interações para a View e o Model.
Quando se deve usar Usado quando há várias maneiras de ver e interagir com os dados. Também
é usado quando os requisitos futuros de interação e apresentação de dados
são desconhecidos.
Vantagens Permite que os dados possam ser alterados independente da sua
representação e vice-versa. Suporta a apresentação dos mesmos dados de
maneiras diferentes, com as alterações feitas em uma representação
mostrados em todos eles.
Desvantagens Pode envolver código e código de complexidade adicional quando o modelo
de dados e interações são simples.
Capítulo 6 Design da Arquitetura 232017/2018
A organização do MVC
Capítulo 6 Design da Arquitetura 242017/2018
Arquitetura de aplicações Web usando o padrão
MVC
Capítulo 6 Design da Arquitetura 252017/2018
Arquitetura em camadas
Usado para modelar a interface de subsistemas.
Organiza o sistema num conjunto de camadas cada
uma das quais fornecem um conjunto de serviços.
Suporta o desenvolvimento incremental de subsistemas
em camadas diferentes. Quando uma camada de
interface muda, apenas a camada adjacente é afetada.
Capítulo 6 Design da Arquitetura 262017/2018
O padrão de arquitetura em camadas
Nome Layered da arquitetura
Descrição Organiza o sistema em camadas, com funcionalidades
relacionadas, associadas com cada camada. Uma camada
proporciona serviços para a camada acima, de modo que as
camadas de nível mais baixo representam serviços centrais que
são suscetíveis de serem usados em todo o sistema.
Quando se deve usar Utilizado na construção de novas instalações no topo dos
sistemas existentes; quando o desenvolvimento está espalhado
por várias equipas, com cada responsabilidade da equipe para
uma camada de funcionalidade; quando há uma exigência de
segurança multinível.
Vantagens Permite a substituição de camadas inteiras, desde que a
interface seja mantida. instalações redundantes (por exemplo, a
autenticação) podem ser fornecidas em cada camada para
aumentar a fiabilidade do sistema.
Desvantagens Na prática, proporciona uma clara separação entre as camadas,
é muitas vezes difícil uma camada de alto nível ter que interagir
diretamente com as camadas de nível mais baixo, em vez de
através da camada imediatamente abaixo dela. O desempenho
pode ser um problema devido a vários níveis de interpretação
de um pedido de serviço, uma vez que é processado em cada
camada.
Capítulo 6 Design da Arquitetura 272017/2018
A arquitetura em camadas
Capítulo 6 Design da Arquitetura 282017/2018
A arquitetura do sistema iLearn
Capítulo 6 Design da Arquitetura 292017/2018
Arquitetura Repositório
Subsistemas devem trocar dados. Isso pode ser feito deduas maneiras:
Os dados partilhados são mantidos numa base de dados centralou repositório e podem ser acedidos por todos os subsistemas;
Cada subsistema mantém a sua própria base de dados epassam os dados explicitamente para outras subsistemas.
Quando grandes quantidades de dados estão a serpartilhados, o modelo de repositório de partilha é maiscomumente utilizado, este é um mecanismo de partilhade dados eficiente.
Capítulo 6 Design da Arquitetura 302017/2018
O padrão Repository
Nome Repositório
Descrição Todos os dados do Sistema são geridos num repositório
central, que é acessível a todos os componentes do sistema.
Componentes não interagem diretamente, apenas através do
repositório.
Quando se deve
usar
Deve usar-se esse padrão quando se tem um sistema em que
grandes volumes de informação são gerados e têm de ser
armazenado por um longo período de tempo.
Vantagens Os componentes podem ser independente não precisam
saber da existência de outros componentes. As alterações
feitas por um componente pode ser propagada para todos os
componentes. Todos os dados podem ser geridos de forma
consistente (por exemplo, backups feitos ao mesmo tempo),
pois é tudo em um só lugar.
Desvantagens O repositório é um ponto único de falha, assim os problemas
no repositório afetam todo o sistema. Pode ser ineficiênte na
organização de toda a comunicação através do repositório.
Distribuindo o repositório através de vários computadores
pode ser difícil.
Capítulo 6 Design da Arquitetura 312017/2018
Uma arquitetura de repositório para um IDE
Capítulo 6 Design da Arquitetura 322017/2018
Arquitetura Cliente - Servidor
Modelo distribuído que mostra como os dados e oprocessamento é distribuído através de uma variedadede componentes.
Pode ser implementado num único computador.
Conjunto de servidores autônomos que prestamserviços específicos, tais como impressão, gestão dedados, etc.
Conjunto de clientes que solicitam estes serviços.
Rede que permite que os clientes acedam a servidores.
Capítulo 6 Design da Arquitetura 332017/2018
O padrão cliente-servidor
Nome Cliente-servidor
Descrição Numa arquitetura cliente-servidor, a funcionalidade do sistema é
organizada em serviços, com cada serviço entregue a partir de um
servidor. Os clientes são utilizadores destes serviços e os
servidores dão acesso a esses serviços.
Quando se deve
usar
Usado quando os dados de uma base de dados são partilhados e
têm de ser acedidos a partir de uma variedade de locais. Como os
servidores podem ser replicados, também pode ser utilizado
quando a carga de um sistema é variável.
Vantagens A principal vantagem deste modelo é que os servidores podem ser
distribuídos através de uma rede. Funcionalidade geral (por
exemplo, um serviço de impressão) pode estar disponível para
todos os clientes e não precisa ser implementado por todos os
serviços.
Desvantagens Cada serviço é um ponto único de falha, tão suscetível a ataques
de negação de serviço ou falha do servidor. O desempenho pode
ser imprevisível, pois depende da rede, bem como do sistema.
Pode haver problemas de gestão se os servidores são propriedade
de diferentes organizações.
Capítulo 6 Design da Arquitetura 342017/2018
A arquitetura cliente-servidor para uma
biblioteca de filmes
Capítulo 6 Design da Arquitetura 352017/2018
Arquiteturas de aplicativos
Capítulo 6 Design da Arquitetura 392017/2018
Arquiteturas de aplicativos
Sistemas de aplicação são projetados para atender a
uma necessidade organizacional.
Como as empresas têm muito em comum, os seus
sistemas de aplicação também tendem a ter uma
arquitetura comum que reflete os requisitos da
aplicação.
Uma arquitetura de aplicação é uma arquitetura para um
tipo de sistema de software que pode ser configurado e
adaptados para criar um sistema que satisfaça os
requisitos específicos.
Capítulo 6 Design da Arquitetura 402017/2018
Uso de arquiteturas de aplicativos
Como ponto de partida para o projeto de arquitetura.
Como uma lista de verificação de design.
Como uma forma de organizar o trabalho da equipa dedesenvolvimento.
Como um meio de avaliar os componentes parareutilização.
Como um vocabulário para “falar” sobre os diferentestipos de aplicação.
Capítulo 6 Design da Arquitetura 412017/2018
Exemplos de tipos de aplicação
Aplicações de processamento de dados
Aplicações de processamento de transações
Sistemas de processamento de eventos
Sistemas de processamento de linguagem
Capítulo 6 Design da Arquitetura 422017/2018
Exemplos Tipo de Aplicação
Duas arquiteturas de aplicativos genéricos amplamenteutilizados são os sistemas de processamento detransações e sistemas de processamento de linguagem.
Sistemas de processamento transação
sistemas de comércio eletrónico;
sistemas de reserva.
Sistemas de processamento de línguas
compiladores;
intérpretes de comando.
Capítulo 6 Design da Arquitetura 432017/2018
Sistemas de processamento de transações
Processo de pedidos de informação a partir de umabase de dados ou atualizações à base de dados.
Da perspetiva do utilizador uma transação é:
Qualquer sequência coerente de operações que satisfaz umameta;
Por exemplo – encontrar horário de voos de Londres para Paris.
Os utilizadores fazem pedidos assíncronos para oserviço que são então processados por um gestor detransações.
Capítulo 6 Design da Arquitetura 442017/2018
A estrutura de aplicações de processamento de
transacções
Capítulo 6 Design da Arquitetura 452017/2018
A arquitetura de um sistema ATM
Capítulo 6 Design da Arquitetura 462017/2018
Arquitetura de sistemas de informação
Sistemas de informação têm uma arquitetura genérica
que pode ser organizada como uma arquitetura em
camadas.
Estes são sistemas baseados em transações como a
interação com esses sistemas geralmente envolve
transações numa base de dados.
Camadas incluem:
A interface do utilizador
Comunicações do utilizador
Recuperação de informação
Base de dados do sistema
Capítulo 6 Design da Arquitetura 472017/2018
Arquitetura do sistema de informação em
camadas
Capítulo 6 Design da Arquitetura 482017/2018
A arquitetura do sistema Mentcare
Capítulo 6 Design da Arquitetura 492017/2018
Sistemas de informação baseados na web
Gestão de recursos de informação e sistemas de informação
são agora sistemas geralmente baseados na web onde as
interfaces de utilizador são implementadas usando um
navegador web.
Por exemplo, sistemas e-commerce são sistemas de gestão
de recursos baseados na Internet que aceitam encomendas
eletrónicas de bens ou serviços e, em seguida, providenciam
a entrega desses bens ou serviços ao cliente.
Um sistema e-commerce, a camada de aplicação específica
inclui funcionalidades adicionais apoiando um 'carrinho de
compras', na qual os utilizadores podem colocar um número
de itens em transações separadas, em seguida, pagar por
eles numa única transação.
Capítulo 6 Design da Arquitetura 502017/2018
Implementação do servidor
Estes sistemas são muitas vezes implementados como
cliente-servidor
O servidor web é responsável por todas as comunicações do
utilizador, com a interface de utilizador implementado usando
um navegador web;
O servidor de aplicação é responsável por implementar a lógica
específica do aplicativo, bem como armazenamento de
informações e pedidos de informações;
O servidor de base de dados move informações de e para a
base de dados e lida com a gestão de transações.
Capítulo 6 Design da Arquitetura 512017/2018
Sistemas de processamento de linguagem
Aceitar uma linguagem natural ou artificial como entrada e
gerar alguma outra representação dessa língua.
Pode incluir um intérprete para agir sobre as instruções na
língua que está a ser processada.
Usado em situações em que a maneira mais fácil de
resolver um problema é descrever um algoritmo ou
descrever os dados do sistema
Capítulo 6 Design da Arquitetura 522017/2018
A arquitetura de um sistema de processamento
de linguagem
Capítulo 6 Design da Arquitetura 532017/2018
Pontos chave
A arquitetura de software é uma descrição de como um sistema
de software é organizado.
Decisões de projeto de arquitetura incluem decisões sobre o tipo
de aplicação, a distribuição do sistema, os estilos de arquitetura
a serem usados.
Arquiteturas podem ser documentadas de várias perspectivas ou
pontos de vista diferentes, como uma visão conceitual, uma
visão lógica, uma visão de processo, e uma visão de
desenvolvimento.
Padrões arquitetônicos são um meio de reutilização de
conhecimento sobre arquiteturas de sistemas genéricos. Eles
descrevem a arquitetura, quando pode ser usado e descrevem
as suas vantagens e desvantagens.
Capítulo 6 Design da Arquitetura 582017/2018
Pontos chave
Todos os modelos de arquitecturas de sistemas de aplicação
ajudam a compreender e comparar aplicações, validar
projetos de sistemas de aplicação e avaliar componentes em
larga escala para reutilização.
Sistemas de processamento de transações são sistemas
interativos que permitem que informações numa base de
dados possa remotamente ser acessado e modificado pelos
utilizadores.
Sistemas de processamento de linguagem são usados para
traduzir textos de uma língua para outra e levar a cabo as
instruções especificadas no idioma de entrada. Eles incluem
um tradutor e uma máquina abstrata que executa a
linguagem gerada.
Capítulo 6 Design da Arquitetura 592017/2018