Pensamentos de JC Olamendy.
Usando os princípios Lean Startup e Software Architecture para mudar o mundo.
Tag Archives: Método de Análise de Tradeoff de Arquitetura.
Avalie a Arquitetura de Software usando o ATAM.
Por: Juan Carlos (John Charles) Olamendy Turruellas.
Introdução.
A base de qualquer sistema de software é a arquitetura. A arquitetura define a estrutura do sistema através de seus componentes subjacentes e sua relação, bem como as propriedades e comportamentos que estão expostos ao mundo externo. A arquitetura do software é formada basicamente por drivers de arquitetura: requisitos funcionais, requisitos não funcionais e restrições de negócios.
Como é muito importante definir uma arquitetura correta (a partir de uma lista de arquiteturas concorrentes) para executar um projeto bem-sucedido com um produto de software robusto, então nós (como arquiteto) precisamos validar em avançado se a nossa decisão arquitetônica estiver bem fundada para para mitigar os riscos. Quanto mais cedo encontramos um problema nas fases de design, melhor você é (menos custo para corrigir um erro), no entanto, a avaliação da arquitetura pode ser realizada em vários pontos durante o processo de desenvolvimento. Você avalia a arquitetura de software (decisões arquitetônicas) que será desenvolvida antes do projeto começar a fase de construção. Você também avalia a arquitetura de sistemas legados antes de executar modificações, portar, atualizar e integrar com outros sistemas. E, finalmente, você avalia a aquisição de sistemas de software para entender a arquitetura subjacente e o impacto na organização.
Hoje, temos vários métodos (aplicados a uma dúzia de arquiteturas de toda complexidade em uma ampla variedade de domínios) para avaliar a arquitetura do software de forma relativamente barata:
Esses métodos têm em comum que estão questionando técnicas que usam cenários e avaliação de atribuição de qualidade como a maneira de fazer perguntas de sondagem sobre como a arquitetura hipotética responde a esses cenários. Outras técnicas de questionamento incluem lista de verificação e questionários.
A avaliação da arquitetura produz um relatório de avaliação verificando se a arquitetura selecionada é "adequada" para o sistema de software e fornecendo a lista de riscos em decisões arquitetônicas para mitigar com análise e design, prototipagem, etc. Agora vamos explicar o conceito de "adequação" com alguns exemplos. Ao avaliar a arquitetura a partir de arquiteturas hipotéticas concorrentes, primeiro identificamos as metas mais importantes e, em seguida, destacamos as fraquezas e os pontos fortes de cada candidato. Depois que as decisões tornam o processo, podemos ter a arquitetura selecionada. Às vezes, a arquitetura selecionada é "adequada" para alguns objetivos e problemática para outros objetivos, neste caso, precisamos priorizar os objetivos comerciais e devemos incluir no relatório os pontos fracos e fortes da arquitetura. Às vezes, selecionamos a arquitetura adequada, e às vezes nenhuma das arquiteturas é selecionada, então melhoramos a arquitetura candidata mais aceitável ou projetamos uma nova arquitetura candidata. É notável dizer que essa compensação é inerente ao processo de design.
Agora vamos começar a falar sobre o Método de Análise da Estruturação da Arquitetura (ATAM), um dos métodos de decisão arquitetônica mais utilizados. A ATAM foi desenvolvida pelo Instituto de Engenharia de Software (SEI) na Universidade Carnegie Mellon. De acordo com a SEI, o objetivo da ATAM é avaliar as conseqüências das decisões arquitetônicas à luz dos requisitos de atributos de qualidade e objetivos de negócios, em inglês comum, significa descobrir riscos em que um atributo de interesse de qualidade é afetado por decisões arquitetônicas (um trade-off entre os atributos de qualidade), e assim podemos raciocinar sobre a estrutura do sistema e o raciocínio subjacente.
Um conceito importante relacionado a qualquer método de avaliação de arquitetura é o atributo de qualidade. Em suma, os requisitos funcionais especificam o que o software precisa fazer e os requisitos não funcionais (atributos de qualidade) especificam o quão bem deve ser feito. Os atributos de funcionalidade e qualidade são ortogonais. Em sistemas complexos, os atributos de qualidade nunca podem ser alcançados isoladamente. Para alcançar uma qualidade, a outra qualidade é afetada (por vezes, negativa e às vezes positiva), de modo que as decisões arquitetônicas são realmente um trade-off entre os atributos de qualidade para suportar os objetivos comerciais.
Podemos agrupar os atributos de qualidade em três categorias principais:
Perspectiva do usuário final: desempenho, disponibilidade, usabilidade e segurança Perspectiva técnica: modificabilidade, portabilidade, reutilização, testabilidade, interoperabilidade Perspectiva da comunidade empresarial: tempo de mercado, custo e benefícios, vida útil projetada, orçamento do projeto.
Para avaliar a arquitetura de software usando atributos de qualidade, precisamos caracterizá-los de maneira adequada usando o cenário de atributos de qualidade. Um cenário é uma breve declaração descrevendo uma interação de uma das partes interessadas com o sistema. Então, um cenário de atributo de qualidade é uma maneira de concretizar os atributos de qualidade.
Um cenário de atributo de qualidade é composto por seis partes:
Estímulo: os eventos que moldam a arquitetura do sistema Fonte do estímulo: a entidade que gera o estímulo (humano, sistema informático, etc.) Ambiente: o estímulo ocorre sob condições Artefato: algum artefato é estimulado Resposta: A resposta é a atividade realizada após a chegada do estímulo Medida de resposta: a resposta deve ser medida para que os requisitos sejam testados.
A figura a seguir mostra graficamente a relação entre as seis partes de cenários de atributos de qualidade.
Vamos entender os conceitos anteriores com um exemplo. Por exemplo, vamos analisar o atributo de qualidade de disponibilidade. A disponibilidade está preocupada com a falha do sistema. Ocorre uma falha no sistema quando o sistema não fornece mais um serviço. Uma maneira de medir a disponibilidade é através da probabilidade de estar operacional quando necessário, por exemplo, 99,9% de disponibilidade. Um cenário de atributo de qualidade para descrever este requisito é: Uma mensagem chega ao sistema para a funcionalidade XXX em condições normais e a resposta está disponível com a probabilidade de 98%.
Outro exemplo para o atributo de qualidade de desempenho. O desempenho está preocupado com o tempo de resposta. Um exemplo de um cenário de atributo de qualidade é: Uma mensagem de um sistema externo chega ao sistema para executar a funcionalidade YYY em condições normais e uma resposta é fornecida pelo menos em 8 segundos para ser considerada aceitável.
Agora que entendemos os conceitos relacionados aos atributos de qualidade, seguimos a falar sobre o método ATAM. Para executar corretamente o processo ATAM, precisamos que três grupos cooperem entre si:
Equipe de avaliação. Um grupo de arquitetos experientes (três a cinco pessoas). Tomadores de decisão do projeto. Pessoas com autoridade para fazer mudanças no projeto (gerente de projeto, cliente, gerente). Partes interessadas na arquitetura. Pessoas interessadas em uma boa arquitetura para fazer corretamente seu trabalho (desenvolvedores, testadores, integradores, mantenedores, engenheiros de desempenho e usuários)
A saída do método ATAM deve incluir pelo menos os seguintes artefatos:
A documentação da arquitetura selecionada. O objeto-chave para especificar a arquitetura é o SAD (Documento de Arquitetura de Software) Um relatório de avaliação que recapitula o método ATAM, capta a análise de cenário (requisitos de qualidade capturados sob a forma de cenários), explica as arquiteturas candidatas e a lógica subjacente na arquitetura processo de decisão para selecionar a arquitetura certa e um resumo de todo o trabalho realizado. Precisamos especificar as decisões arquitetônicas em termos dos requisitos de qualidade, ou seja, para cada cenário de qualidade, temos que especificar as estratégias para alcançá-lo. Também precisamos especificar os pontos de sensibilidade ou compensação, isto é, decisões que têm um efeito importante em um ou mais atributos de qualidade. Por exemplo, a decisão de proteger uma funcionalidade afeta o desempenho do sistema, portanto, há uma compensação entre segurança e desempenho. E, finalmente, precisamos especificar os riscos arquitetônicos, ou seja, efeitos indesejáveis quando tomamos decisões sobre atributos de qualidade. Depois, identificando os riscos, somos capazes de desenvolver o plano de mitigação subjacente.
Agora, vamos falar sobre as etapas para executar com sucesso o método ATAM. O método ATAM é baseado em quatro fases:
Fase 1 - Parceria e preparação. A equipe de avaliação, o cliente e os principais decisores do projeto se encontram para entender o método ATAM (objetivos, insumos, resultados, partes interessadas, etc.), drivers de negócios e as possíveis abordagens de arquitetura a serem avaliadas. Eles concordam com o relatório final a ser entregue, as formalidades (declaração de trabalho, acordo de não divulgação), documentação da arquitetura do sistema, expectativa de avaliação, etc. Esta fase pode durar algumas semanas. Fase 2 - Avaliação inicial e Fase 3 - Avaliação completa. Essas fases são para fins de avaliação. Até agora, a equipe de avaliação estudou as possíveis abordagens de arquitetura e eles têm uma boa visão sobre os drivers de negócios, negócios e objetivos do sistema, restrições, atributos de qualidade mais importantes. O cliente fornece informações relacionadas ao cenário empresarial e de qualidade. Com esta informação em mãos, a equipe de avaliação pode escolher a abordagem de arquitetura apropriada e produzir o relatório de avaliação. As duas fases consistem em nove etapas. Esta fase pode durar 3 ou 4 dias com o tempo decorrido de 2 a 3 semanas. Fase 4 - Um acompanhamento. Nesta fase, a equipe de avaliação escreve o relatório final. Os decisores-chave, juntamente com o arquiteto-chefe, concordam em parar, mudar ou reavaliar outras abordagens de arquitetura possíveis. É também um período de melhoria da avaliação para executar futuras avaliações de forma mais eficiente. Esta fase pode durar uma semana.
Agora vamos falar sobre as fases de avaliação (Fase 2 e Fase 3). Essas fases consistem em 9 etapas. Os passos 1 a 6 são realizados na fase 1 e os demais passos são realizados na fase 2 como mostrado na lista a seguir.
Fase 1 Apresentar o método ATAM Apresentar os drivers de negócios Apresentar a arquitetura Identificar abordagens arquitetônicas Gerar árvore de utilidade de atributo de qualidade Analisar abordagens arquitetônicas Fase 2 Fazer o brainstorming e priorizar cenários Analisar abordagens arquitetônicas Resultados atuais.
Agora vamos explicar em detalhes as fases de avaliação.
A equipe de avaliação apresenta uma visão geral do processo ATAM, como as etapas-chave, as técnicas (geração de árvore de utilidade, elicitação e análise de arquitetura, brainstorming de cenários) e saída (abordagens arquitetônicas, árvores de utilidade, cenários, riscos, pontos de sensibilidade).
Passo 2. Presente os drivers comerciais.
O stakeholder do projeto e a equipe de avaliação tentam entender o contexto do sistema e os principais motivadores de negócios que motivam seu desenvolvimento. O tomador de decisão do projeto apresenta o sistema do ponto de vista comercial, incluindo a seguinte informação:
Objetivos de negócios e contexto Principais interessados Requisitos funcionais de alto nível (descritos como casos de uso ou histórias de usuários) que afetam a arquitetura do sistema Atributos de qualidade mais importantes (descritos como cenários de qualidade) que afetam a arquitetura do sistema Restrições como técnicas, gerenciais, econômicas e político.
Passo 3. Arquitetura atual.
O arquiteto líder apresenta uma apresentação descrevendo a abordagem arquitetônica utilizada para atender aos requisitos e às restrições. Para descrever a arquitetura, é muito útil usar o modelo de arquitetura 4 + 1 desenvolvido por Kruchten. Este modelo de visão descreve a visão contextual (relacionamento com seres humanos e outros sistemas), a visão lógica (módulo, camadas, relacionamento), visão de processo (processo, threads, pipeline, sincronização, fluxo de dados, eventos) e exibição de implantação (CPU, armazenamento , dispositivos, rede). E, finalmente, precisamos descrever os riscos associados para atender aos requisitos arquitetônicos. Como regra geral, o arquiteto deve apresentar os pontos de vista mais importantes durante a criação da arquitetura.
Etapa 4. Identificar abordagens arquitetônicas.
A equipe de avaliação tenta identificar quais abordagens arquitetônicas principais são usadas para realizar os requisitos e restrições. Possíveis abordagens arquiteturais são: cliente-servidor, aplicativo de várias camadas, arquitetura orientada a serviços, aplicativo baseado em componente, publicação-assinatura, etc.
Nesta etapa, a equipe de avaliação analisa profundamente a arquitetura apresentada na etapa 3, e então tem uma boa idéia de quais padrões e abordagens o arquiteto usado na concepção do sistema.
Etapa 5. Gerar árvore de utilidade de atributo de qualidade.
Nesta etapa, a equipe de avaliação (junto com o tomador de decisão do projeto) identifica, prioriza e aprimora os objetivos de atribuição de qualidade mais importantes (expressos pelo cenário de qualidade), criando uma árvore de utilitários. O resultado é uma caracterização e uma priorização dos requisitos de atributo de qualidade, produzindo uma lista de cenários priorizados que informa à equipe de avaliação onde investigar as abordagens de arquitetura e descobrir os riscos. Então, podemos ter algo tangível para avaliar a arquitetura do sistema, pelo contrário, escolhemos os cenários um por um e avaliamos o quão bem a arquitetura responde a esse cenário.
Uma árvore de utilidade é uma abordagem de cima para baixo para caracterizar os requisitos de atribuição de qualidade, selecionando os objetivos de qualidade mais importantes para serem os nós de alto nível (desempenho, segurança, disponibilidade, modificabilidade, maintanibility) e as folhas da árvore são cenários de qualidade avaliados por importante (sucesso do sistema) e dificuldade (avaliação do arquiteto).
A árvore de utilitários começa com o utilitário como a raiz. Utilidade é uma expressão da correção do sistema. Os atributos de qualidade são os nós de segundo nível e são especificados na etapa 2. Os atributos de qualidade mais comuns são segurança, desempenho, disponibilidade, modificabilidade, maintanibilidade e usabilidade. Os nós de terceiro nível compreendem outros atributos de qualidade ou de qualidade ou cenários de atributos de qualidade suficientemente concretos para análise e priorização. Os cenários são as folhas da árvore, agrupadas pelo atributo de qualidade que expressam. Uma árvore de utilitários pode conter vários cenários em suas folhas, portanto, precisamos priorizar as folhas, atribuindo um valor como Alto, Médio e Baixo. Depois disso, os cenários são priorizados pela segunda vez associando o par de pedidos (mais importante, mais difícil) com os valores Alto, Médio e Baixo. Um exemplo de uma árvore de utilidade é mostrado na Figura 2.
Passo 6 - Analisar abordagens arquitetônicas.
Nesta etapa, a equipe de avaliação examina os cenários mais bem classificados um a tempo para entender como a arquitetura proposta é compatível com cada um, bem como para identificar e documentar as decisões de arquitetura e seus raciocínios, riscos, não riscos, pontos de sensibilidade e tradeoffs.
Você pode registrar esta informação usando o seguinte formulário mostrado na Figura 3, onde capturamos a análise da abordagem de arquitetura para um cenário.
Neste ponto, a fase 1 do processo de avaliação é finalizada. A equipe de avaliação começa a documentar os resumos em um período decorrido de uma ou duas semanas. Mais cenários podem ser analisados e podemos resolver questões.
Quando a equipe de avaliação e o tomador de decisão do projeto estão prontos para retomar o processo de avaliação, as partes interessadas estão reunidas e a fase 2 começa. O foco desta fase é suscitar os pontos de vista de várias partes interessadas para verificar os resultados da fase 1.
Passo 7 - Brainstorm e priorize os cenários.
Nesta etapa, as partes interessadas geram cenários usando um processo de brainstorming facilitado. Depois que os cenários são gerados, eles devem ser priorizados. Em primeiro lugar, as partes interessadas são convidadas a fundir cenários, eles pensam, representam o mesmo requisito de atribuição de qualidade. Depois disso, eles devem votar para esses cenários, eles pensam, são os mais importantes. Cada participante recebe uma série de votos iguais a 30% do número de cenários, arredondados. Por exemplo, se tivermos vinte cenários coletados, cada participante recebe seis votos. Cada parte interessada lança seus votos publicamente. Uma vez que os votos são computados, o líder de avaliação ordena os cenários por total de votos e estabelece um limite de linha para os cenários. Cenários acima da linha são usados para as próximas etapas. Por exemplo, a equipe deve considerar os cinco principais cenários.
A lista priorizada de cenários de brainstorming é comparada com aqueles na árvore de utilitários na etapa 5. Se eles concordarem, isso indica um alinhamento do que as partes interessadas desejam e o que a solução que o arquiteto está fornecendo. Se forem descobertos cenários adicionais, isso indica alguns riscos na arquitetura proposta. Assim, os novos cenários são adicionados à árvore de utilitários e a arquitetura é reavaliada contra eles.
Passo 8 - Analise abordagens arquitetônicas.
Nesta etapa, a equipe de avaliação orienta o arquiteto no processo de realização dos cenários mais bem classificados a partir do passo 7. O arquiteto identifica como as abordagens arquitetônicas são impactadas pelos cenários gerados na etapa anterior. Riscos, não riscos, pontos de sensibilidade e compensações continuam a ser identificados e as decisões arquitetônicas são especificadas.
E, finalmente, a informação gerada pelo processo ATAM precisa ser apresentada às partes interessadas. A equipe de avaliação pode escrever um relatório e apresentar as idéias com slides. O arquiteto principal deve informar o contexto e os drivers, os requisitos e os constrangimentos, bem como a documentação da arquitetura selecionada, o conjunto de cenários priorizados, a árvore de utilidade e os riscos descobertos, não riscos, pontos de sensibilidade e compensações.
Agora que você conhece esse importante método de análise para avaliar a arquitetura de software hipotética, é possível aplicá-lo ao seu próprio cenário de negócios.
Método de Análise de Desempenho da Arquitetura do Sistema.
O objetivo do método de análise de compensação de arquitetura de sistema (sistema ATAM) é a.
avaliar as conseqüências das decisões de arquitetura à luz dos requisitos de atributos de qualidade e metas de negócios e descobrir os riscos criados pelas decisões de arquitetura no sistema e nas arquiteturas de software dos sistemas.
Cenários derivados de threads de missão aumentados por atributo de qualidade, casos de uso de sistema, documentos arquitetônicos e desafios de arquitetura SoS (do MTW) formam a base para avaliação em um sistema ATAM. O sistema ATAM é uma variante da ATAM e aborda as seguintes áreas do sistema:
Noções e especificações da arquitetura do sistema & # 8211; diagramas de blocos funcionais, diagramas de controle de sistema e de fluxo de dados, diagramas elétricos, desenhos mecânicos, visualizações DoDAF e assim por diante Considerações de engenharia - estudos de simulação, desenvolvimento de protótipos e carga de trabalho do operador e estudos de estresse Importância dos atributos de qualidade - novos atributos de qualidade que servem de arquitetura de sistema drivers (robustez física, continuidade da fonte de energia e capacidade de campo) Abordagens arquitetônicas - novas abordagens arquitetônicas podem ser necessárias para suportar a consideração de engenharia adicional necessária para criar um sistema. (gerenciamento dinâmico de recursos, uso de conjuntos de ferramentas comuns de desenvolvimento)
Escopo - considerações adicionais para um sistema (logístico, elétrico, mecânico, armas, sistemas de sensores, etc.)
Existem três fases para um sistema ATAM:
uma. Determine se informações e conhecimentos suficientes (arquitetura.
documentação, arquitetos de sistemas relevantes,
threads de missão, casos de uso do sistema) está disponível.
b. Desenvolva cenários para uso durante a avaliação.
c. Identifique as partes interessadas para participar da Fase de Avaliação.
uma. Apresentar driver comercial e apresentações arquitetônicas e.
b. Avalie os cenários Pós-Avaliação.
uma. Equipe de avaliação analisa as informações recolhidas e desenvolve um conjunto.
de temas de risco arquitetônico, que são examinados com o sistema.
O sistema ATAM é um dos métodos utilizados no processo de desenvolvimento e análise de arquitetura SoS. Ele pode ser usado independentemente da Avaliação de Arquitetura SoS e do Workshop da Thread da Missão ou como seguimento.
Disponibilidade.
O sistema ATAM está pronto para usar. O SEI está atualmente procurando organizações que gostariam de incorporar o System ATAM como uma de suas práticas rotineiras de desenvolvimento de software. Se você quiser obter detalhes técnicos sobre o sistema ATAM ou se desejar agendar um, entre em contato usando o link na caixa Para mais informações na parte inferior desta página.
No comments:
Post a Comment