A forma como a auto-adapta¸c˜ao deve ser concebida em um sistema de software de- pende de v´arios aspectos (e.g., necessidades dos usu´arios e caracter´ısticas do ambiente). A compreens˜ao do problema e a sele¸c˜ao de solu¸c˜oes adequadas requer modelos precisos para representar importantes aspectos do pr´oprio sistema, dos seus usu´arios e do seu ambiente (CHENG et al., 2009a). Embora na literatura sejam encontrados diversos re- latos sobre sistemas de software auto-adaptativo, Cheng et al. (2009a) argumentam que existe uma falta de consenso entre pesquisadores e pr´aticos em rela¸c˜ao aos pontos de va- ria¸c˜ao entre esses sistemas, referenciados como modelagem de dimens˜oes. Para lidar com essa quest˜ao, Andersson et al. (2009) prop˜oem uma classifica¸c˜ao para modelagem de dimens˜oes, onde cada dimens˜ao descreve um aspecto particular do sistema que ´e re- levante para a auto-adapta¸c˜ao. Essas dimens˜oes encontram-se divididas em 4 (quatro) grupos: (i) metas, que agrupa as dimens˜oes relacionadas com a auto-adaptabilidade das metas do sistema; (ii) mudan¸ca, que re´une as dimens˜oes relacionadas com as causas da auto-adapta¸c˜ao; (iii) mecanismos, que agrupa as dimens˜oes relacionadas com os meca- nismos empregados para atingir a auto-adapta¸c˜ao; e (iv) efeitos, que re´une as dimens˜oes associadas com os efeitos da auto-adapta¸c˜ao sobre o sistema.
Metas. As metas representam os objetivos que o sistema deve atingir. Elas po- dem estar associadas ao ciclo de vida do sistema ou a cen´arios que est˜ao relacionados com o sistema. Al´em disso, as metas podem estar relacionadas com aspectos de auto- adaptabilidade do pr´oprio sistema, do sistema de suporte (e.g., plataforma de middleware) ou da infraestrutura de suporte a execu¸c˜ao do sistema (e.g., dispositivos computacionais sensores e atuadores). Esse grupo engloba 5 (cinco) dimens˜oes: (i) evolu¸c˜ao, que est´a
relacionada com a possibilidade de mudan¸ca na quantidade e na semˆantica das metas durante a execu¸c˜ao do sistema; (ii) flexibilidade, que se preocupa em capturar o grau de flexibilidade das metas com rela¸c˜ao a forma como essas s˜ao expressas; (iii) dura¸c˜ao, que est´a interessada no per´ıodo de validade de uma meta durante o ciclo de vida do sistema; (iv) multiplicidade, que est´a relacionada com o n´umero de metas associadas `a aspectos de adaptabilidade do sistema; e (v) dependˆencia, que, no caso do sistema possuir mais de uma meta, essa dimens˜ao captura como essas metas est˜ao relacionadas entre si.
Mudan¸ca. As mudan¸cas s˜ao as causas da adapta¸c˜ao. Sempre que o contexto muda, o sistema deve decidir se precisa se adaptar. De forma pr´atica, o contexto ´e qualquer informa¸c˜ao que ´e computacionalmente acess´ıvel e sobre a qual varia¸c˜oes comportamentais do sistema s˜ao dependentes. Informa¸c˜oes sobre os atores (entidades que interagem com o sistema), o ambiente (partes do mundo externo com as quais o sistema interage) e o pr´oprio sistema podem ser vistos como parte do contexto. As varia¸c˜oes dependentes dos atores, do sistema ou do ambiente podem ocorrer de forma separada ou em uma ordem particular. Entender os aspectos relacionados `as mudan¸cas ´e importante para identificar a forma como o sistema deve reagir `a essas mudan¸cas em tempo de execu¸c˜ao. Esse grupo compreende 4 (quatro) dimens˜oes: (i) fonte, que busca identificar a origem (interna ou externa) das mudan¸cas; (ii) tipo, est´a relacionada com a natureza da mudan¸ca, podendo ser funcional, n˜ao funcional ou tecnol´ogica; (iii) frequˆencia, que est´a interessada em identificar com qual frequˆencia uma mudan¸ca em particular ocorre; e (iv) antecipa¸c˜ao, que est´a interessada em identificar se uma mudan¸ca pode ser prevista de forma antecipada.
Mecanismos. Esse grupo de 7 (sete) dimens˜oes busca compreender a rea¸c˜ao do sis- tema face `as mudan¸cas. Isso significa que essas dimens˜oes est˜ao relacionadas diretamente com processo de adapta¸c˜ao do sistema, s˜ao elas: (i) tipo, que identifica se a adapta¸c˜ao est´a relacionada com parˆametros dos componentes do sistema (adapta¸c˜ao param´etrica) ou com a estrutura do sistema (adapta¸c˜ao estrutural/composicional); (ii) autonomia, que busca identificar grau de interven¸c˜ao externa durante o processo de adapta¸c˜ao, o qual pode ser autˆonomo (totalmente autom´atico e sem aux´ılio externo) ou assistido (via inter- ven¸c˜ao humana ou de outros sistemas); (iii) organiza¸c˜ao, que identifica se a adapta¸c˜ao ´e conduzida por um ´unico componente (adapta¸c˜ao centralizada) ou por v´arios componentes de forma distribu´ıda (adapta¸c˜ao descentralizada); (iv) escopo, est´a relacionado com a de- termina¸c˜ao da abrangˆencia da adapta¸c˜ao, podendo ser classificada como adapta¸c˜ao local, caso ocorra de forma localizada, ou adapta¸c˜ao global, se envolve o sistema como um todo; (v) dura¸c˜ao, identifica o per´ıodo de tempo necess´ario a ser empregado na realiza¸c˜ao da adapta¸c˜ao; (vi) pontualidade, investiga se o per´ıodo de tempo necess´ario para executar
a adapta¸c˜ao pode ser assegurado; e (vii) desencadeamento, identifica se a mudan¸ca que inicia a adapta¸c˜ao ´e desencadeada por eventos (ou correla¸c˜ao de eventos) ou pelo tempo.
Efeitos. Esse grupo de dimens˜oes identificam o impacto da adapta¸c˜ao sobre o sistema. Enquanto os mecanismos de adapta¸c˜ao s˜ao propriedades relacionadas com a adapta¸c˜ao, as dimens˜oes deste grupo s˜ao propriedades relacionadas com o sistema onde a adapta¸c˜ao ocorre. As 4 (quatro) dimens˜oes que fazem parte deste grupo s˜ao: (i) criticidade, res- pons´avel por medir o impacto sobre o sistema nos casos em que a auto-adapta¸c˜ao falha; (ii) previsibilidade, identifica se as consequˆencias da auto-adapta¸c˜ao podem ser pre- vistas em termos de custo e tempo, assumindo um das duas formas: determin´ıstica ou n˜ao determin´ıstica; (iii) sobrecarga, investiga o impacto negativo da adapta¸c˜ao sobre o desempenho do sistema; e (iv) resiliˆencia, que est´a relacionada com a manuten¸c˜ao da entrega de servi¸co de forma confi´avel frente a situa¸c˜oes de mudan¸ca.