<< Chapter < Page Chapter >> Page >

Adicionalmente, a manutenção do sistema é facilitadade uma forma análoga ao seu entendimento.Se algum requisito é atendido insatisfatoriamente, por meio da arquitetura é possíveldescobrir quais elementos do sistema estão envolvidos na insatisfaçãodesses requisitos. Da mesma maneira, a arquitetura possibilita descobrirquais requisitos serão afetados por um dado elemento arquiteturalcaso esse sofra uma mudança ou manutenção.

Se uma modificação na camada de apresentação sópode ser feita se a camada de persistência também formodificada, isso pode significar que a decisão arquiteturaldo [link] não está sendo seguida corretamente. Portanto, o requisito de manutenibilidadetambém não está sendo atendido corretamente e essa divergênciada arquitetura deve ser corrigida o quanto antes.

Evolução

Devido às suas características, se torna fácil perceber que o registrodas decisões arquiteturais na forma de um documento – o documento arquitetural– agrega valor ao ciclo de vida do software, uma vez que facilitao processo de rastreamento de requisitos. Adicionalmente, se algum tipo deregistro histórico das decisões arquiteturais existir, o processode rastreamento pode também ser realizado para as diversas versõesdo sistema, facilitando assim o entendimento da evolução do mesmo.

Além de descreverem estruturas arquiteturais, as decisõestambém descrevem princípios que conduzirão a evolução do sistema.Isso significa que uma decisão não necessariamente descreverámódulos, classes, ou serviços, mas também poderá descrever regrasque deverão ser seguidas ao longo do desenvolvimento do sistema.A seguir, citamos e exemplificamos alguns tipos de regras a seremdescritas pelas decisões arquiteturais.

  • Regras para adição de funcionalidade ao sistema.

    Uma nova funcionalidade do SASF não poderá adicionaruma carga maior que mil requisições por segundo ao banco de dados de usuários,considerando a média atual de dez mil usuários simultâneosno sistema.

    Uma nova funcionalidade deum editor de imagens só será adicionada implementandoo ponto de extensão ProcessImagePlugin . Esse ponto de extensãopermite obter a imagem que está aberta no workspacedo usuário e seus atributos, além de permitir a exibiçãode uma caixa de diálogo que permitirá ao usuárioentrar com parâmetros que servirão para a execuçãodo plug-in . O retorno dessa nova funcionalidadesempre será uma imagem (processada ou não). Anova funcionalidade, para ser adicionada, deve conterum arquivo de configuração em texto sem formataçãoque conterá o atributo extension-class que indicará o caminho para a classe da nova funcionalidadeque implementa ProcessImagePlugin .

    Uma nova funcionalidade do sistema de edição detexto não poderá modificar a GUI de forma que adicione mais do que um botão na áreade trabalho em sua configuração padrão.

  • Regras para remoção ou desativação de funcionalidades,seja durante o desenvolvimento, implantação, ou execução dosistema.

    No SASF, a remoção de um serviçodo módulo responsável pelo streaming para outros dispositivos será feita em duas etapas.Na primeira etapa, o serviço será marcado como deprecated , retornando assim, alémda resposta padrão, uma flag avisando que na próxima versão ele será descontinuado.Será ainda disponibilizada uma solução que contornea ausência desse serviço (serviços alternativos,por exemplo). Na segunda etapa, que deverá acontecerno mínimo 1 mês depois da primeira etapa, o serviçoserá desativado, retornando uma mensagem padrão deerro avisando que o serviço deixou de existir.

    Caso o consumo de recursos computacionaisdo SASF ultrapasse 80% do total, alguns de seusserviços podem ser completamente ou parcialmente desativados.Um serviço que pode ser desativado temporariamentesem que os usuários percebam é o motor de sugestão defilmes. Como cada usuário está acostumado a ter sualista de sugestões atualizada apenas “de tempos em tempos”,mas não tem certeza qual é o real intervalo entrecada atualização, se dada atualização demorar algunsminutos ou horas a mais para acontecer, dificilmenteo atraso será notado. Em casos extremos, devidoao seu grande consumo de recursos, o serviço de streaming de vídeo também pode ser desativado. No entanto,essa decisão deve também levar em conta o alto graude insatisfação de usuários que causará e que, fatalmente,poderá ser convertida em perda de faturamento. Umaalternativa é desativar a transmissão de vídeopara apenas algumas opções de resolução. Assim, ograu de insatisfação será menor, uma vez que apenasuma parte dos usuários não será atendida peloserviço de streaming .

  • Regras para modificação ou manutenção de funcionalidades.

    Não haverá modificação do Web Service que realiza busca e aluguelde filmes no SASF que é disponibilizado para usopor serviços externos. Se for realmente necessáriaa modificação, dois Web Services ficarão disponíveis: o antigo,completamente suportado, e o novo, que passará aser adotado por novos sistemas a partir da data de seulançamento. O antigo só será desativado depoisda adoção do novo serviço ser feita por todos os serviços externos.

  • Regras de atendimento a atributos de qualidade.

    No [link] , a disponibilidade de partedas funcionalidades, i.e., construção da lista desugestões de filmes ou transmissão de vídeos,é mais importante do que a indisponibilidade detodas as funções: caso o uso dos recursos computacionaisalcance 100%, usuários começarão a não ser atendidosde forma descontrolada. Assim, prefere-se que umamenor parte dos usuários não seja atendida, apenasos que desejam assistir a filmes em alta definição,do que a maior parte, que são os que desejam alugarfilmes ou assisti-los em definição padrão.

    A disponibilização de uma nova funcionalidade noSASF será feita em etapas para 10%, 25%, 50%, 100%desses usuários. Dessa maneira, será possívelavaliar o comportamento da nova função no sistemasob carga real. Além disso, a desativação da funcionalidadepoderá ser feita através de uma flag de controle, permitindo o retorno às funcionalidadesanteriores do sistema emcaso de sobrecarga dos recursos por parte da novafuncionalidade.

    Antes da implantação de uma novaversão de um serviço de infraestrutura, digamos,um novo banco de dados, a carga gerada pelos usuáriosda versão antiga será espelhada para a nova versão. Assim,será possível avaliar seu comportamento com uma cargareal e, portanto, saber o que esperar quando onovo banco de dados substituir a versão em produção.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Arquitetura de software. OpenStax CNX. Jan 05, 2010 Download for free at http://cnx.org/content/col10722/1.9
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Arquitetura de software' conversation and receive update notifications?

Ask