Qualidades Arquitecturas de Software Atributos de Qualidade Nenhuma qualidade pode ser maximizada num sistema sem sacrificar uma outra qualidade ou qualidades As qualidades devem ser consideradas em todas as fases do desenho mas algumas qualidades não são arquitecturais António Rito Silva [email protected] Facilidade de manutenção é Facilidade de uso não é Desempenho é, quanta comunicação é necessária entre componentes, e não é, algoritmos e a sua codificação Atributos de Qualidade Atributos de Qualidade Categorias de Qualidades Observáveis na execução 2 Como é que o sistema durante a execução satisfaz seus requisitos de comportamento? Fornece os resultados esperados? Fornece-os num período de tempo razoável? O sistema funciona como desejado quando ligado a outros sistemas? Qualidades Qualidades execução Qualidades Qualidades observáveis na execução não-observáveis na do negócio da arquitectura Não observáveis na execução É fácil integrar, testar e modificar o sistema? É caro de desenvolver? Qual é o limite de tempo para lançar no mercado? Atributos de Qualidade 3 Atributos de Qualidade 4 Observáveis na Execução Observáveis na Execução Desempenho – o tempo de resposta do sistema a um estímulo ou o número de eventos processados num dado intervalo de tempo Função da quantidade de comunicação e interacção entre componentes do sistema Possível de simular usando um modelo estocástico baseado em cenários previamente levantados Historicamente o desempenho tem sido o factor mais importante das arquitecturas mas actualmente outras qualidades são mais importantes Atributos de Qualidade 5 Um servidor de autenticação localizado entre os utilizadores externos e a parte do sistema que fornece serviços Monitores de rede para inspeccionar e criar diários da rede O sistema é localizado atrás de uma firewall através da qual todas as comunicações de e para o sistema passam por um proxy O sistema é construído em cima de um núcleo confiável que fornece serviços seguros Atributos de Qualidade 6 Observáveis na Execução Arquitecturas para segurança: Recusa de serviço – tentativa de impedir o sistema de fornecer serviços Fingir IP – tentativa de usar o IP de uma máquina creditada Atributos de Qualidade Observáveis na Execução Segurança – é a medida da capacidade do sistema resistir a tentativas não autorizadas de utilização ou negação de serviço ao mesmo tempo que presta serviços aos legítimos utilizadores Disponibilidade – mede a percentagem de tempo que o sistema está em cima e em execução 7 tempo médio para falhar/(tempo médio para falhar + tempo médio de reparação) relacionado com a fiabilidade – tempo médio para falhar Atributos de Qualidade 8 Observáveis na Execução Observáveis na Execução Arquitecturas para disponibilidade: O tempo médio para falhar é aumentado replicando elementos críticos de processamento e comunicação. O tempo médio para falhar é também aumentado através da separação de facetas que permite maior facilidade de integração e teste O tempo médio para reparação é reduzido desenhando componentes que são fáceis de modificar e desenhando uma interacção entre componentes que permite identificar comportamentos errados Atributos de Qualidade 9 Observáveis na Execução É ortogonal à estrutura, de facto, se a funcionalidade fosse a única qualidade os sistemas seriam monolíticos As arquitecturas de software constrangem a afectação de funcionalidade à estrutura quando outras qualidades são importantes Atributos de Qualidade Facilidade de aprendizagem Eficiência Facilidade de memorização Evitar erros Tratamento de erros Satisfação 10 Facilidade de modificação – é uma função da localidade das alterações A facilidade de modificação é fortemente arquitectural As alterações são classificadas em três tipos: Alcançar estas qualidades é um aspecto do detalhe da interacção com o utilizador e não é arquitectural Atributos de Qualidade Não-Observáveis na Execução Facilidade de utilização Funcionalidade – é a capacidade do sistema de funcionar para o que estava previsto 11 Modificação de um componente Modificação de vários componentes Modificação do estilo arquitectural Atributos de Qualidade 12 Não-Observáveis na Execução As modificações são por vezes consequência de alterações das necessidades de negócio Estender ou alterar funcionalidades Retirar funcionalidades não desejadas Adaptar a novos ambientes de operação Reestruturar 13 Não-Observáveis na Execução Reutilização – é a medida em que a estrutura do sistema ou alguns dos seus componentes podem ser reutilizados em aplicações futuras Está relacionado com a arquitectura de software na medida que as unidades de reutilização são os componentes da arquitectura e a sua capacidade de reutilização depende de quão forte é sua ligação com outros componentes Atributos de Qualidade Portabilidade – é a capacidade de o sistema executar sobre diferentes ambientes computacionais A facilidade de modificação é por vezes referida como facilidade de manutenção Atributos de Qualidade Não-Observáveis na Execução 15 Um sistema é portável na medida em que em que todas as assunções acerca de um particular ambiente computacional estão confinadas a um (ou poucos) componente Camada de portabilidade Atributos de Qualidade 14 Não-Observáveis na Execução Facilidade de integração – é a capacidade de fazer com que componentes desenvolvidos separadamente funcionem correctamente quando juntos Depende da complexidade externa dos componentes, os seus mecanismos de interacção e protocolos e da divisão de responsabilidades A interoperabilidade é uma forma de facilidade de integração – mede a capacidade de um sistema funcionar com outros sistemas Atributos de Qualidade 16 Não-Observáveis na Execução Facilidade de testar – refere a facilidade com que se consegue identificar as faltas através de testes Capacidade de observar os resultados Capacidade de controlar o estado interno dos componentes Depende de aspectos da arquitectura: Qualidades de Negócio Documentação da arquitectura Separação de facetas Encapsulamento da informação Atributos de Qualidade 17 Atributos de Qualidade Qualidades de Negócio 18 Qualidades da Arquitectura Mercado alvo – a portabilidade e a funcionalidade aumentam o mercado alvo, uma abordagem baseada em famílias de produtos também tem impacto no mercado alvo Rollout schedule – produto com uma funcionalidade base e muitas opções – flexibilidade e adaptação Utilização de sistemas legados – deve ter facilidade de integração Atributos de Qualidade Tempo para o mercado – comprar componentes, reutilizar de projectos anteriores, inserir componentes no sistema Custo – utilizar tecnologia que a organização conhece reduz o custo Tempo de vida do sistema – deve ter facilidade de manutenção e portabilidade 19 Integridade conceptual – a visão que unifica o sistema a todos os níveis e intervenientes Correcção e completude – permite que o sistema cumpra todos requisitos Facilidade de construção Atributos de Qualidade 20