Buscar

PROJETO DE ARQUITETURA_resenha

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

PROJETO DE ARQUITETURA
Arquitetura do sistema que explica o estágio inicial do desenvolvimento requerendo um certo tipo de análise. Tendo como grande efeito sobre o sistema, as decisões de projeto de arquitetura atendem os requisitos críticos do sistema, tais como;
Desempenho
Confiabilidade de Manutenção
Facilidade de Manutenção
Reuso em Larga Escala
Sendo uma descrição simplificada e administrável de como um sistema esta organizado e de como os componentes operam, a Arquitetura de Sistema é muitas vezes o mesmo requisito que pode apoiar o reuso de software em larga escada conforme será exposta mais a diante nesta resenha.
Baseado na teoria de Hofmeister et al. (Holfmeister, et al., 2000) a arquitetura de sistema pode afetar o desempenho, como também facilitar a distribuição e manutenção de um sistema (Bosch, 2000). O tipo e estrutura escolhidos para a aplicação, poderá depender dos Requisitos Não Funcionais do sistema.
Desempenho
Caso seja um requisito crítico, o processo de arquitetura deverá ser projetado localizando tais operações por entre alguns subsistemas, com pouca comunicação quanto possível entre eles, significando a usabilidade de componentes de alta granularidade em detrimento dos de baixa granularidade diminuindo as comunicações entre os processos.
PROTEÇÃO
Sendo um requisito crítico, deverá se fazer uso de uma estrutura de camadas com estes itens mais críticos protegidos por camadas internas e com alto nível de validação de proteção.
Segurança
Caso seja um requisito critico, sua estrutura deve ser projetada emmodo que suas relações estejam localizadas num único subsistema ou em pequenos números de subsistemas, oferecendo o serviço de Proteção Relacionados.
Disponibilidade
Sendo um requisito critico, deverá ser projetada de modo que componentes redundantes sejam inclusos possibilitando a substituição e atualização desses componentes sem que o sistema seja interrompido.
Facilidade de Manutenção
Se a facilidade de manutenção for um requisito critico, a arquitetura devera ser projetada utilizando componentes de baixa granularidade e autocontidos, para que possam ser modificados. Deve-se evitar Estruturas Compartilhadas e criação de dados, sendo ambos separados.
Conflitos poderão existir entre estas arquiteturas. Exemplo;
Se o uso de componentes de Alta Granularidade for utilizada com componentes de Baixa Granularidade, e ambos forem requisitos de sistema importantes, alguma solução deverá ser encontrada para burlar este caso.
A casos em que ocorrerá a existência de uma sobreposição entre os processos de Engenharia de Requisitos, e Projetos de Arquitetura. Porem a especificação de um sistema nunca deverá se unir a informações de Projeto. Levando em conta que isso é irreal exceto para sistemas de pequeno porte. Sua decomposição se faz necessário para estruturar e organizar a especificação existente.
Subsistema é decomposição abstrata de um sistema com componentes de Alta Granularidade, onde cada um poderá ser um sistema substancial e independente. Os Diagramas de Blocos frequentemente são utilizados para descrever subsistemas onde cada Caixa doDiagrama representara um subsistema. Dentro de cada caixa existira uma caixa indicando que o subsistema foi propriamente decomposto em subsistemas.
Abaixo segue um modelo abstrato de arquitetura para um sistema robotizado de empacotamento. Nele será exibido os subsistemas que precisam ser envolvidos. 
Este será representado na figura 1.
Figura 1 – Diagrama de Blocos de um sistema de controle robotizado de empacotamento.
DECISÕES DE PROJETO DE ARQUITETURA
Processo criativo que tenta estabelecer uma organização de sistema que atende os requisitos funcionais e não funcionais. Sendo este um processo criativo, é drasticamente diferenciado dependendo Do tipo de sistema. Assim se faz útil pensar no Projeto de Arquitetura sob a perspectiva de decisão ao invés de Atividade. Neste processo os arquitetos do sistema necessitam tomar varias decisões fundamentais que afetam o sistema e seu processo de desenvolvimento, baseando em seu conhecimento e experiência, será preciso pensar nas seguintes questões:
1. Existe uma arquitetura genérica de aplicação que funcione como um modelo para o sistema que será projetado?
2. Como o sistema será distribuído ao longo dos processadores?
3. Qual o estilo de arquitetura é apropriado para o sistema?
4. Qual será a abordagem fundamental para estruturar o sistema?
5. Como as unidades estruturais de um sistema é decomposto em módulos?
6. Qual estratégia será adotada para controlar as operações das unidades no sistema?
7. Como o projeto será avaliado?
8. Como a arquitetura do sistema deve ser documentada?No entendimento de mesmo o sistema sendo único, é utilizado o mesmo domínios de outras aplicações , mudando geralmente as suas variantes. Ao projetar a arquitetura do sistema é preciso saber o que ao sistema e as classes têm em comum e analisar o seu reuso.
Para que haja a boa arquitetura é preciso estabelecer qual o tipo de distribuição será utilizada, pois se for para um sistema embutido ou computadores pessoais, geralmente utilizam um processadores, ao contrario de sistema distribuídos que o sistema é distribuídos em vários computadores. Essa decisão é muito importante pois afeta o desempenho e a confiabilidade do sistema.
Ao escolher a arquitetura é preciso se basear na padrão e estilo de como o sistema será utilizado. Para a escolha de um padrão de arquitetura é preciso conhecer algumas , sendo as mais conhecida a cliente –servidor e em camadas. Sendo assim você toma as decisões de como deve ser o controle dos componentes.
Conforme a relação entre os requisitos e a sua arquitetura é preciso depender :
Desempenho: Se a parte critica for o desempenho é preciso localizar as operações criticas dentro de uma pequena quantia de componentes , se eles não forem distribuídos.Ou utilizar a tecnologia run-time, que permite a utilização de execução de diferentes processadores.
Proteção: se a parte critica for a proteção , o aconselhável é utilizar a distribuição em camadas.
Segurança: Se a parte critica for a segurança, deve se utilizar as partes de segurança em poucos componentes. Pois isso reduz os custos e validações de segurança.Disponibilidade: Se a disponibilidade for um requisito critico, deve se fazer uma arquitetura que suporte eventuais mudanças , sem o interrompimento do sistema.
Manutenção: Se a manutenção for um requisito critico, a arquitetura deve separar os dados dos consumidores e dos geradores de dados, evitando também o compartilhamento de dados.
Com isso, existe uma grande diferenças entre o uso de componente de grande e pequeno porte, o de grande porte melhora o desempenho, o de pequeno porte é traz uma boa manutentabilidade.
VISÕES DA ARQUITETURA
A arquitetura de um sistema podem ser usada para melhor discutir os requisitos do software, e também usado para a sua documentação. É impossível mostrar todas as visões em um único diagrama, pois as diferentes informações são uteis para documentação e projeto .
No modelo 4+1 de arquitetura de software existem quatro visões fundamentais, que são:
A visão logica: mostra as abstrações do sistema , como os objetos. 
A visão de processo: mostra como é julgado as característica não funcionais de desempenho e disponibilidade 
A visão de desenvolvimento: é utilizada para gerentes de software e programadores que querem ver como que esta a distribuição de software que é implementada por um único desenvolvedor ou equipe.
Uma visão física: é muito útil para engenheiros de software que estão querendo implantar o sistema, ela mostra os hardwares e como os componentes de software são distribuídos entre os processadores.
Segundo Hofmeist(2000) a visão conceitual , ajuda no decomposição de requisitos de alto nivelemespecificações mais detalhadas, ajudando a tomar decisões sobre componentes reusados, são usadas para tomada de decisões de arquitetura.
Os usuários de métodos ágeis alegam que, na maior parte do tempo a documentaçãodetalhada de projeto, não é usada. E desenvolve-la seria um desperdício de tempo e dinheiro.
Dependendo do projeto realmente não vale a pena utilizar essas quatro visões, e sim usar aquelas que são uteis.
PADRÕES DE ARQUITETURA
A ideia de usar padrões para simplificar o compartilhamento de conhecimento, nos trouxe outros tipos de padrões, entre eles o padrões para projeto organizacional, padrões de usabilidade, interação e gerenciamento de configurações.
O padrão de uma arquitetura é uma descrição abstrata detalhada , de boas praticas, que são testada e bem sucedidas em sistemas anteriores. Podendo ter as informações sobre seus pontos fortes e fracos.
O padrão MVC (Modelo – Visão - Controlador), base de gerenciamento de projetos web. A sua estilização possui um nome, descrição breve e um exemplo do tipo de sistema.
ARQUITETURA EM CAMADAS
A separação e organização são fundamentais para essa arquitetura, pois fica fácil a localização. Essa arquitetura também é mutável e portável, na interface por exemplo , é possível substituir sua camada por outra equivalente, sendo que se houver alteração na interface , só a camada adjacente sofre essas alterações. 
Em um exemplo utilizado pelo autor, é utilizada uma arquitetura com quatro camadas. A camada mais baixa inclui software de apoio ao sistema – geralmente, apoio de banco de dadose de sistema operacional.
A próxima camada é a camada de aplicação, que inclui os componentes relacionados com a funcionalidade da aplicação e os componentes utilitários que são usados por outros componentes da aplicação.
A terceira camada esta preocupada com o gerenciamento de interfaces de usuários e fornecimento de autenticação e autorização de usuários, com a camada superior fornecendo recursos de interface com o usuário.
REPOSITÓRIO
Nos sistema de grande quantidade de dados, esse tipo de arquitetura é ideal, pois é adequada para aplicações que os dados são gerados, por um componente e usado por outro.
A maneira eficiente de constituir um repositório de compartilhamento de grandes dados é organizar suas ferramentas, de modo que não precise transmitir dados explicitamente de outro. Se o esquema não for adequado, ficará muito difícil de operar os componentes, ou até mesmo impossível adicionar novos componentes. 
Uma abordagem alternativa seria um sistema de inteligência artificial, que utiliza um modelo de quadro negro que aciona os componentes do modelo quando dados específicos se tornam disponíveis. Isso é apropriado quando a forma de repositório de dados não tão bem estruturada.
Para decidir qual ferramenta utilizar é preciso ter analisado os dados.
CLIENTE-SERVIDOR
Em uma arquitetura cliente- servidor, o cliente que no caso é usuário solicita serviços ao seu respectivo servidor.
Os principais componentes desse modelo são:
Um conjunto de servidores que oferecem serviços a outros componentes. Entre os variado tipos deservidores, os mais utilizados são servidores de aplicação, servidores de impressoras, servidores de arquivo.
Um conjunto de usuários que podem utilizar os serviços do servidor. Geralmente um servidor pode fornecer aos usuários varias instâncias de programa para serem executados por usuários diferentes.
Uma rede que permite o acesso aos clientes. A maioria dos sistemas cliente-servidor, é implementados como sistemas distribuídos, conectados através de protocolos de internet.
Geralmente a arquitetura Cliente–Servidor é arquitetada em sistemas distribuídos, mas o modelo lógico de serviços pode ser implementado em apenas um servidor. Um servidor pode ser alterado sem afetar outras partes do sistema.
Para os clientes utilizarem os servidores é preciso ele localizar o nome do servidor que ele precise. Esse acesso é feito através do protocolo ‘http’, sendo que a resposta ao cliente volte após a autenticar do cliente .
A grande vantagem de se utilizar a arquitetura cliente- servidor e de ser baseada em sistemas distribuídos. Uma vez que precise de alguma alteração ou até mesmo de mais um servidor, isso não implicaria em ter que parar todo o processo para essas alterações.
DUTO E FILTRO
Essa arquitetura é um modelo de organização em tempo de execução de um sistema no qual processa as entradas produzindo as saídas. Os dados fluem um dos outros e transformam-se enquanto estão se movendo. Essas transformações podem ser sequência ou paralelas.
O nome duto e filtro vêm do Unix. Podendo ser combinados por comando Unix, usando dutos e recursos decontrole shell do Unix. A arquitetura de um sistema embutido pode também ser organizada como um duto de processo, com cada processo em execução concorrente.
Ao escrever os modelo de duto e filtro, logo se nota o quanto é difícil trabalhar com as interfaces de entradas e saídas, pois se baseiam em eventos.
APLICAÇÕES
Sistemas de aplicações geralmente necessitam das mesmas funcionalidades quando são do mesmo gênero.
Essas semelhanças levaram ao desenvolvimento de arquiteturas de software que descrevem a estrutura e organização dos diferentes tipos de sistemas de software. 
Em um sistema de tempo real, pode existir modelos genéricos de arquiteturas de diferentes sistemas.
Em novos desenvolvimento a reimplantação de da arquitetura de aplicação não é obrigatória, vemos muitas empresas que não precisarão reimplantar as arquiteturas de aplicações, como exemplo a Oracle e SAP. 
É possível utilizar os modelos de arquitetura de aplicações:
Como ponto de partida para o processo de projetos de arquitetura . Ao inicial seu projeto , e não saber necessariamente as especificações , é possível utilizar um genérico , como sendo um bom ponto de partida.
Como um checklist de projeto. Ao realizar um projeto de um sistema, é possível comparar com uma arquitetura genérica.
Como forma de organizar o trabalho da equipe de desenvolvimento. A arquitetura de aplicações identificam as característica estáveis , podendo desenvolver outras em paralelos.
Como uma forma de avaliar os componentes para reuso. Se você tem componentes que possam ser reusados você podecomparar com as estruturas genéricas para ver se existem componentes comparáveis na aplicação.
Como um vocabulário para falar sobre os tipos de aplicações. Ao discutir ou especificar uma tipo de aplicação, é possível usar os conceitos de identificadores na arquitetura genérica
As vezes muitos tipos de aplicações aparentemente parecem muito diferentes um dos outros, mas geralmente são muito parecidos, utilizando uma arquitetura abstrata. Segue dois tipos de arquitetura de dois tipos de aplicações:
Aplicações de processamento de transações. São aplicações que centram suas informações em um banco de dados. Elas são organizadas de modo que as alterações feitas não interferem nas outras, deixando sua integridade mantida. Exemplo desse modelo: sistemas bancários interativos, sistemas de comércios e sistema de informação.
Sistemas de processamento de linguagens. São sistemas que expressam as intenções dos usuários em uma linguagem formal. Os mais conhecidos sistemas de processamento de linguagens são os compiladores, que sua função é tornar a linguagem de alto nível para linguagem de maquina, e linguagem de banco de dados.
SISTEMAS DE PROCESSAMENTO DE TRANSAÇÕES
Os Sistemas de processamento de transações são projetados para processar os comando que um usuário solicitou a um banco de dados. Uma transação só é realizada se todas as suas operações foram afetadas, tornando assim um banco mais seguro.
Um exemplo de uma transação é um pedido de um cliente para retirar dinheiro de uma conta bancaria usando um ATM.
Trata-se de obter detalhes da conta docliente, verificando o saldo e modificando – o com a retirada de uma quantia, e enviar comando ao ATM para a entrega do dinheiro. Até que essas etapas sejam concluídas, a transação é incompleta e o banco de dados de contas do cliente não é alterado.
As transações, geralmente são interativas e assíncronas onde os sistemas de processamento de transação podem ser organizados com uma arquitetura de duto e filtro comcomponentes de sistema responsável pela entradas, processamento e saídas.
SISTEMAS DE INFORMAÇÃO
Um sistema de informação permite acesso controlado a uma base de informações. Entretanto cada camada do modelo oferece apoio a comunicação de usuários e recuperação e acesso a informação:
A camada superior é responsável pela implementação da interface de usuário 
A segunda camada é apresentada através de um browser, nela vai existir formulários e componentes de gerenciamento de menu, que vai apresentar as informações a usuários , além dos componentes de validação.
A terceira camada define a funcionalidade do sistema, a sua segurança,e também o fluxo de dados e seus relatórios.
A camada mais baixa fornece um sistema gerenciador de banco de dados que utiliza transações e repositório persistente de dados.
Um grande exemplo de sistema de informação é um sistema de comercio eletrônico que o cliente faz suas compras de vários objetos em transações separadas e logo em seguida pagar por todo em uma única transação.
De acordo com a arquitetura Cliente-Servidor, multicamadas em um sistema possuem:
Servidor Web é responsável por todasas comunicações de usuários, com a interface de usuário implementada usando um browser.
Servidor de aplicação é responsável por implementar a lógica especifica da aplicação.
Servidor de banco de dados realiza as alterações no banco de dados.
Ao usar vários servidores tem um bom ganho de desempenho, e conforme for aumentando a demanda é possível aumentar os servidores por camadas.
SISTEMAS DE PROCESSAMENTO DE LINGUAGENS
Os Sistemas de Processamento de Linguagens possuem a responsabilidade de executar o código resultante, porem pegando o código de alto nível ou artificial e passando para linguagem de maquina.
Os compiladores que utilizam a o sistema de processamento de linguagens possuem as seguintes características:
Um analisador léxico, que toma os tokens da linguagem de entrada e os converte em um formato interno.
Uma tabela de símbolos que contenha informações sobre variáveis, nome de classe, e nome de objetos usados no texto que está sendo traduzido.
Um analisador sintático, que verifique a sintaxe dos códigos.
Uma arvore de sintaxe, que é uma estrutura interna que represente um programa a ser compilado.
Um analisador semântico, que usa informações da arvore de sintaxe e a tabela de símbolos, para verifica sua correção semântica.
Um gerador de código que transita na arvore de sintaxe, gera códigos de maquina abstratos.
Os compiladores com o auxilio de repositório e um modelo de duto e filtro pode ser implementado. E como esse modelo de duto e filtro são eficazes em ambientes em lotes, não necessita da interação do usuário.

Outros materiais