Zusammenfassung der Ressource
Unidade 1 - Arquitetura de
Software
- Definições
- Perry e Wolf
Anmerkungen:
- Arquitetura = elementos, organização e decisões.
Onde: arquitetura de software consiste em um conjunto de elementos que possuem alguma organização.
Os elementos e sua organização são definidos por decisões tomadas para satisfazer objetivos e restrições.
- Bass
Anmerkungen:
- A arquitetura de um programa ou de sistemas computacionais é a estrutura ou estruturas do sistema, a qual é composta de elementos de software, as propriedades externamente visíveis desses elementos, e
os relacionamentos entre eles
- ISO/IEEE 1471-2000
Anmerkungen:
- Arquitetura é a organização fundamental de um sistema, representada por seus componentes, seus
relacionamentos com o ambiente, e pelos princípios que conduzem seu design e evolução
- É diferente de Design de
Software
Anmerkungen:
- O contraste entre design e arquitetura é justamente a forma de como se vê o sistema, como a
implementação pode ser interpretada. Enquanto a arquitetura observa o todo, o design se encarrega de
observar a interação entre as partes.
- Possui
- Componentes
Anmerkungen:
- Todo grande sistema é inicialmente pensado em pequenas partes (subsistemas), cada uma com sua
funcionalidade e independente das demais. Essas partes são o que chamamos de componentes.
- Cada componente tem sua funcionalidade independente dos demais e que cada um deles não precisa saber como é o funcionamento dos outros (isso é o que pode ser chamado de encapsulamento).
- Conectores
- Configurações e padrões
arquiteturais
- Estilos de arquitetura
Anmerkungen:
- Um estilo arquitetural estabelece uma estrutura para todos os componentes do sistema, ou seja, ele impõe uma transformação ao projeto do sistema por completo
- Camadas
Anmerkungen:
- São definidas várias camadas onde cada uma delas é responsável por realizar operações diferentes.
- Centralizada em dados
Anmerkungen:
- O centro dessa arquitetura é formado por um repositório de dados (banco de dados e arquivo são exemplos de repositórios). Os componentes fazem o acesso ao repositório para realização de operações como atualização, inserção, modificação ou exclusão de dados.
- Chamadas e retornos
Anmerkungen:
- Permite a obtenção de uma estrutura de sistema na qual é mais fácil de ampliar e fazer modificações.
Esse estilo possui vários subestilos, entre eles:
- Orientada a objetos
Anmerkungen:
- Os componentes nesse caso são objetos do sistema. Estes são formados encapsulando dados e os métodos de acesso para a manipulação desses dados. Toda a comunicação é feita através da troca de
mensagens por meio da chamada de métodos.
- Padrões de arquitetura
Anmerkungen:
- Um padrão de arquitetura
impõe transformações no projeto de arquitetura. Para ficar mais claro a diferença, o padrão difere do
estilo em alguns pontos, tais como: (i) O padrão foca numa parte da arquitetura ao invés de toda ela; (ii) Um padrão dita as regras na arquitetura, descrevendo como o software vai manipular alguma
característica de sua funcionalidade no quesito de infraestrutura.
- Controle de Acesso
Anmerkungen:
- Em um banco de dados é possível dizer qual usuário tem determinados privilégios como consulta ou modificação de dados, por exemplo. Na informática essa é uma das muitas situações em que se pode definir o que o usuário está, ou não, habilitado para ver e fazer. Isto é o que chamamos de controle de acesso
- Concorrência
Anmerkungen:
- Observando a computação atualmente notamos que os computadores deixaram de ser monotarefas faz
tempo! Isto graças a evoluções de hardware (processadores) e software. Hoje muitos sistemas precisam lidar com o que chamamos de paralelismo, que nada mais é que execução de tarefas “em paralelo”.
- Persistência
Anmerkungen:
- Persistência consiste basicamente no armazenamento de dados. Contudo, os dados só devem ser persistidos se sobreviverem após a execução do processo que o criou.
- Distribuição
Anmerkungen:
- Uma boa parte dos sistemas em operação atualmente funciona de forma distribuída. Na verdade, interagimos com sistemas sem ao menos saber em que parte do mundo estão as máquinas que os abriga.
O padrão de distribuição trata de como é feita a comunicação entre os sistemas ou os componentes nos sistemas em um ambiente distribuído.