• Nenhum resultado encontrado

5. A Solução: Info Cases

5.5 Análise da Solução

5.5.3 Análise Essencial: Uma Idéia Precursora

O modelo de info cases (MIC) proposto se baseia no particionamento da funcionalidade do sistema induzido pelos critérios apresentados na seção 5.2. A topologia do particionamento do sistema em processos, segundo esses critérios (Figura 5.1 − seção 5.2), é a mesma topologia que caracteriza o particionamento do sistema nas atividades essenciais da Análise Essencial (AE) de Sistemas (MCMENAMIM, PALMER, 1991). Nessa topologia, os processos só se comunicam através de uma memória compartilhada. Portanto, é interessante analisar qual seria a relação entre as duas abordagens (AE e o MIC).

Na AE, o particionamento é feito por eventos gerados pelo ambiente, fora do controle do sistema, dividindo o mesmo em atividades essenciais. Tais eventos podem ser de dois tipos: (1) eventos iniciados por entidades do ambiente (denominados eventos externos por MCMENAMIM et al. (1991, pp. 20), e eventos sinalizados por fluxos reais por MAFFEO (1992, pp. 182)); ou (2) eventos iniciados pela passagem do tempo (denominados eventos temporais por MCMENAMIM et al. (1991), e eventos sinalizados por fluxos virtuais por MAFFEO (1992)). Nesse particionamento, a cada evento corresponde uma atividade essencial que traduz a resposta do sistema, planejada para o evento. O conjunto das atividades essenciais são todas as tarefas que o sistema deve realizar, mesmo considerando a utilização de uma tecnologia perfeita38 para sua

implementação (MCMENAMIM, PALMER, 1991, pp. 23). As atividades essenciais se subdividem em atividades fundamentais, que são parte da finalidade do sistema, e em atividades custodiais, responsáveis por estabelecer e manter a memória essencial39 do

sistema.

O particionamento do sistema empregado na AE inspirou, inicialmente, a adoção do conceito de particionamento por eventos autônomos, e do ponto de vista da sua

38 Com tecnologia perfeita, um sistema teria um processador e um meio de armazenamento perfeitos

(MCMENAMIM, PALMER, 1991). Hoje, com a disseminação dos sistemas distribuídos, deveríamos acrescentar um canal de comunicação perfeito.

39 Dados armazenados, produzidos pelo sistema ou capturados do mundo exterior, necessários à

topologia, podem ser considerados equivalentes. Entretanto, existem outras características específicas de cada particionamento, que os diferenciam.

Os eventos autônomos da MIC são basicamente os eventos da AE. Ambos são gerados pelo ambiente do sistema modelado, e ambos pressupõem certa independência de ordem entre os eventos, embora na MIC essa independência seja especificada de uma forma mais precisa, a saber:

• AE: eventos diferentes podem ocorrer em qualquer seqüência (MCMENAMIM, PALMER, 1991, pp. 86);

• MIC: nenhuma suposição geral pode ser embutida no sistema sobre o evento que antecede a um evento autônomo.

A AE considera que a resposta do sistema a um evento deve deixar o sistema inativo. Na MIC, esse conceito ganha uma interpretação precisa e um significado especial: a resposta do sistema a um evento autônomo deve deixar o sistema em um estado estável, ou seja, um estado no qual inexiste qualquer necessidade de retorno (rollback) a um estado anterior, mesmo se nenhum outro evento ocorrer.

A introdução do conceito de estado estável possibilitou a transformação da MUC em um modelo integrado, capaz de capturar, além do comportamento externo já coberto pelo UC tradicional, elementos estruturais e de comportamento interno, e assim, permitir a definição de um conjunto de regras para derivar um MD como uma visão do modelo integrado. Na AE, tal expediente não existe.

Outra vantagem introduzida com a MIC é a sinergia entre os critérios de estados estáveis e de eventos autônomos. Enquanto o primeiro possibilita uma triagem dos estados considerados na modelagem de domínio (estados persistentes e estáveis), o segundo evita que alguns desses estados passem despercebidos devido a uma decomposição insuficiente do sistema nos seus UCs.

O MIC também introduz, através do critério de todo IC levar ao alcance de um objetivo de algum stakeholder, uma mudança no significado dos processos oriundos do particionamento do sistema. Eles deixam de ser meras atividades do sistema e passam a representar objetivos dos stakeholders. De cara, isso resulta em uma simplificação importante para a elicitação dos requisitos do sistema: os processos correspondentes às atividades custodiais são desconsiderados, pois não representam objetivos dos stakeholders. Essas atividades, embora importantes na análise de um sistema, não são

relevantes para a especificação dos seus requisitos. Além disso, conforme vimos na seção 5.4 (Derivação da Visão MD do Modelo Integrado), é possível determinar a informação a ser persistida, e o momento em que isso deve ocorrer, unicamente a partir dos processos elicitados segundo os critérios da MIC.

Portanto, vemos que o NIO (Nível Informacional de Objetivos − seção 5.2) não é exatamente o nível das atividades essenciais da AE, mas uma simplificação (abstração) deste. Essa simplificação é significativa, pois segundo a avaliação dos próprios criadores da AE, as atividades custodiais ocorrem muito mais freqüentemente do que as atividades fundamentais (puras) (MCMENAMIM, PALMER, 1991, pp. 83). Essa e outras diferenças entre o MIC e a AE (como por exemplo, a possibilidade de decompor as atividades essenciais) decorrem do escopo distinto de cada uma: o MIC proposto visa a modelagem de requisitos e a análise do sistema no nível do domínio de aplicação, enquanto a AE foca, principalmente, a análise do sistema nos níveis lógico e físico.

MCMENAMIM e PALMER (1991, pp. 85) apontam vantagens importantes para o particionamento que propõem:

• Fornece resultados razoavelmente uniformes, independentemente de quem particiona o sistema;

• Resulta em uma modelagem concisa (número relativamente pequeno de processos);

• A interface entre os processos tende a ser mínima; e

• Resulta em processos fiéis à essência do sistema (sem interdependência temporal artificial).

MAFFEO (1992, pp. 301) acrescenta ainda as seguintes vantagens desse particionamento:

• Minimiza os riscos de paralisia por análise, comum na estratégia de particionamento estritamente top-down;

• Facilita a manutenção do sistema;

• Favorece o reuso de modelos (reuso da essência de sistemas).

Pela relação acima identificada entre os particionamentos das duas abordagens (AE e MIC), acreditamos que as mesmas vantagens da AE podem ser esperadas, e mesmo potencializadas, no MIC proposto.