• Nenhum resultado encontrado

3.3 Metamodelo para Configura¸c˜ao Arquitetural de Componentes

4.1.1 Requisitos para modelagem de arquiteturas de componentes

tes

Os requisitos para modelagem de arquiteturas de componentes definem o que deve ser representado em uma modelagem de uma arquitetura. Estes requisitos, seguindo o fra- mework proposto por Medvidovic et al., foram divididos em dois grupos: modelagem de componentes e conectores e modelagem de arquiteturas de componentes. Na modelagem de componentes e conectores s˜ao levados em considera¸c˜ao os requisitos para modelagem dos elementos que comp˜oem a arquitetura. Para a modelagem de arquiteturas de compo- nentes s˜ao compreendidos os requisitos que agem sobre a arquitetura de componentes de um sistema, criada a partir da conex˜ao entre os componentes e conectores arquiteturais.

Os requisitos identificados para a modelagem de componentes e conectores s˜ao: 1. Interfaces: conforme apresentado na Se¸c˜ao 1.1, as interfaces representam os pon-

tos de conex˜ao entre os componentes ou conectores arquiteturais e o ambiente ex- terno onde est˜ao inseridos. Estas interfaces foram mapeadas no metamodelo con- ceitual de especifica¸c˜ao de componentes atrav´es dos elementos ProvidedInterface,

RequiredInterface e Port.

2. Tipos: um tipo de componente ou conector representa uma classe de elementos arquiteturais que possuem determinadas caracter´ısticas em comum, conforme apre- sentado na Se¸c˜ao 2.1.1. Os tipos de componentes e conectores podem ser agrupados formando um estilo arquitetural. O metamodelo conceitual de estilos arquiteturais, apresentado na Se¸c˜ao 3.1.2, descreve os elementos necess´arios para a defini¸c˜ao de estilos arquiteturais e tipos de componentes e conectores.

3. Semˆantica: semˆanticas devem ser atribu´ıdas a componentes e conectores para acrescentar informa¸c˜oes referentes a seu comportamento. As interfaces acrescen- tam semˆantica aos componentes e conectores, por´em em um n´ıvel mais limitado. Semˆanticas de componentes ou conectores podem ser utilizadas para an´alises em arquiteturas, com o aux´ılio de ferramentas que interpretem estas semˆanticas e as avaliem. Em rela¸c˜ao ao metamodelo de arquitetura de software apresentado na Se¸c˜ao 3.1, informa¸c˜oes sobre semˆantica podem ser adicionadas a elementos da ar- quitetura (ArchitecturalElement) ou a tipos de elemento da arquitetura (Architec-

turalElementType).

4. Restri¸c˜oes: as restri¸c˜oes s˜ao regras impostas sobre os componentes e conectores arquiteturais. Qualquer viola¸c˜ao sobre estas regras leva a modelagem da arqui- tetura a um estado inconsistente. As restri¸c˜oes podem definir limita¸c˜oes sobre a estrutura e a semˆantica de elementos da arquitetura. Estas restri¸c˜ao foram de- finidas no metamodelo de estilos arquiteturais (Se¸c˜ao 3.1.2), atrav´es do elemento

ArchitecturalConstraint.

5. Propriedades N˜ao-Funcionais: para uma arquitetura deve ser poss´ıvel mode-

lar propriedades n˜ao-funcionais, tais como seguran¸ca e desempenho. Estas preo- cupa¸c˜oes em um n´ıvel maior de abstra¸c˜ao permitem an´alises pr´evias sobre a ar- quitetura do sistema. Assim como informa¸c˜oes sobre semˆantica, informa¸c˜oes sobre propriedades n˜ao-funcionais podem ser adicionadas a elementos (ArchitecturalEle-

ment) do metamodelo de arquitetura de software ou para tipos de elemento da

arquitetura (ArchitecturalElementType), apresentados na Se¸c˜ao 3.1.

Os requisitos identificados para a modelagem de arquiteturas de componentes s˜ao: 1. Facilidade de Entendimento: a arquitetura deve permitir que um sistema seja

visualizado em um n´ıvel maior de abstra¸c˜ao. Por este motivo, a configura¸c˜ao arqui- tetural deve ser apresentada de uma maneira em que possa ser facilmente entendida, preferencialmente com o aux´ılio de representa¸c˜oes gr´aficas (diagramas).

2. Decomposi¸c˜ao Hier´arquica: atrav´es da decomposi¸c˜ao hier´arquica uma arqui-

tetura pode ser descrita em diferentes n´ıveis de detalhamento. A decomposi¸c˜ao hier´arquica permite a defini¸c˜ao de arquiteturas internas a componentes ou conec- tores arquiteturais. Isto permite maior flexibilidade e poder para a modelagem das arquiteturas de componentes. O metamodelo de arquitetura de software, apre- sentado na Se¸c˜ao 3.1.1, apresenta este relacionamento de decomposi¸c˜ao hier´arquica atrav´es da arquitetura interna que um elemento arquitetural (ArchitecturalElement) pode possuir.

42Cap´ıtulo 4. Uma Infra-estrutura de Software para Apoiar a Constru¸c˜ao de Arquiteturas de Componentes

3. Escalabilidade: arquiteturas de software facilitam no tratamento da complexi- dade e do tamanho dos sistemas, pois descrevem estes sistemas em um n´ıvel mais alto de abstra¸c˜ao. Isto exige que configura¸c˜oes arquiteturais para sistemas gran- des e complexos, compostos por um n´umero elevado de componentes e conectores arquiteturais, possam ser descritas. A decomposi¸c˜ao hier´arquica de elementos da arquitetura tamb´em auxilia na escalabilidade da arquitetura de software.

4. Heterogeneidade: em uma arquitetura de software os componentes arquitetu- rais podem possuir diferentes caracter´ısticas, tais como: tamanho, protocolo de comunica¸c˜ao ou modelo e linguagem de implementa¸c˜ao utilizados. Estes diferentes aspectos devem ser representados nas modelagens das arquiteturas de software ba- seadas em componentes. Em rela¸c˜ao ao metamodelo apresentado na Se¸c˜ao 3.1.2, estas informa¸c˜oes podem ser adicionadas a tipos de elemento da arquitetura (Ar-

chitecturalElementType).

5. Restri¸c˜oes: restri¸c˜oes sobre configura¸c˜oes arquiteturais podem ser utilizadas para complementar as restri¸c˜oes definidas separadamente para componentes e conectores arquiteturais. As restri¸c˜oes sobre configura¸c˜oes arquiteturais definem regras a serem respeitadas quando os componentes e conectores s˜ao interligados. Estas restri¸c˜oes foram definidas no metamodelo de estilos arquiteturais (Se¸c˜ao 3.1.2), atrav´es do elemento ArchitecturalConstraint.

6. Propriedades N˜ao-Funcionais: al´em das propriedades n˜ao-funcionais descritas

para componentes e conectores, deve ser poss´ıvel definir propriedades n˜ao-funcionais no contexto de uma configura¸c˜ao arquitetural. Estas propriedades poder˜ao ser utili- zadas para an´alises pr´evias sobre a arquitetura de software, juntamente com as pro- priedades n˜ao-funcionais definidas para os componentes e conectores. Informa¸c˜oes sobre propriedades n˜ao-funcionais podem ser adicionadas a vis˜oes arquiteturais (Ar-

chitecturalView ) do metamodelo conceitual de arquitetura de software, apresentado

na Se¸c˜ao 3.1.1.