• Sonuç bulunamadı

Eleştirel Düşünme ile İlgili Yurt İçinde Yapılan Çalışmalar

2.3. İlgili Araştırmalar

2.3.1. Eleştirel Düşünme ile İlgili Yurt İçinde Yapılan Çalışmalar

A análise de desempenho é o tipo mais empregado de avaliação quantitativa de sistemas. Ela se relaciona à descrição, à análise e à otimização do comportamento dinâmico e dependente de tempo dos sistemas [HHK02].

A análise de desempenho nos permite lidar com problemas frequentemente encontrados em sistemas computacionais. Jain [Jai91] agrupa esses problemas nos seguintes tópicos: a comparação de sistemas, a identificação de gargalos, a caracterização de cargas de trabalho, a configuração de sistemas e a previsão de desempenho.

Existem três abordagens para a avaliação de desempenho discutidas na literatura da área. Cada uma dessas abordagens possui vantagens e desvantagens. Para escolher a abordagem mais apropriada para um caso específico, é importante considerarmos os recursos disponíveis para a análise do problema e o nível desejado de exatidão dos resultados. Essas abordagens são:

2.2 AVALIAÇÃO DE DESEMPENHO DE SISTEMAS 19 • modelagem analítica – utiliza modelos matemáticos para descrever e analisar numerica- mente determinados aspectos de interesse em um sistema. Prós: ela pode ser preditiva e relativamente rápida, além de prover um boa indicação do impacto dos parâmetros no sistema. Contras: modelar todos os aspectos relevantes para se determinar o desempenho de um sistema pode não ser uma tarefa trivial; muitas das suposições e simplificações feitas na modelagem podem impactar negativamente o nível de precisão dos resultados da análise;

• simulação – também se baseia em um modelo, mas a solução do modelo nesse caso é dada por um programa que simula o comportamento modelado. Prós: ela pode ser preditiva e pode levar em consideração mais detalhes que os modelos analíticos. Contras: simulações são difíceis de serem validadas e muito custosas em termos de tempo de execução;

• medição – é feita sobre o sistema real, por meio de códigos-fonte instrumentados, soft- ware de medição dedicado, hardware de medição dedicado, ou ainda uma mistura dos anteriores. Prós: ela é potencialmente precisa. Contras: ela possui alto custo de imple- mentação; ela não pode ser usada em todas as fases do ciclo de vida de um sistema (já que depende de uma implementação); a seleção da carga de trabalho apropriada para avaliar o sistema pode ser uma tarefa complicada.

Neste trabalho de doutorado, empregamos técnicas de modelagem analítica para predizer o desempenho de processos de negócio. Nesse contexto, as principais ferramentas de modelagem são os processos estocásticos.

Um processo estocástico modela um sistema estocástico. Segundo Ross [Ros97], um pro- cesso estocástico “é uma família de variáveis aleatórias que descreve a evolução no tempo de algum processo (físico)”. Mais formalmente, um processo estocástico {Xt, t ∈ T } é uma

coleção em que, para todo t ∈ T , Xt is uma variável aleatória. Se t é interpretado como o

tempo, podemos considerar que Xt é o estado do processo no tempo t. Em um processo em tempo discreto, T é um conjunto enumerável, ao passo que em um processo em tempo contínuo, T é um intervalo de números reais.

As características de um processo estocástico dependem da classe de distribuições aleatórias incorporada na descrição do sistema. Quando variáveis aleatórias com distribuições arbitrárias são usadas no modelo, o processo estocástico subjacente frequentemente é intratável. Entre- tanto, vários trabalhos já estudaram e demonstraram a viabilidade do uso de modelos com distribuições exponenciais na avaliação de desempenho de sistemas. A partir desses modelos é possível se derivar uma Cadeia de Markov de Tempo Contínuo (CMTC) de maneira direta. Por essa razão, modelos com distribuições exponenciais são a base da maioria das metodologias de avaliação de desempenho existentes atualmente [Her98].

Um processo Markoviano (ou seja, um processo estocástico que possui uma CMTC sub- jacente) respeita a propriedade de Markov, também conhecida como propriedade da falta de

memória. A propriedade de Markov determina que o estado futuro de um processo depende somente do seu estado atual e é independente dos estados anteriores.

Como exemplos de técnicas de modelagem Markovianas empregadas na avaliação de desempenho de sistemas computacionais, podemos citar as Redes de Filas, as Redes de Petri Estocásticas e as Álgebras de Processos Estocásticas. Essas técnicas serão discutidas na Seção2.3. Uma descrição sucinta das propriedades dasCMTCs encontra-se no ApêndiceA.

A modelagem é apenas o primeiro passo envolvido na avaliação de desempenho via modelagem analítica. O passo seguinte, que resultará nos índices de desempenho de interesse, é a análise numérica do modelo. No caso dos formalismos Markovianos, existem duas categorias de análise que podem ser feitas sobre os modelos: análise em regime estacionário e análise transiente. A análise em regime estacionário nos dá a distribuição de probabilidades estacionária do sistema, ou seja, a fração do tempo que o sistema gasta em cada um dos seus estados quando ele atinge o equilíbrio. Contrariamente à análise em regime estacionário que está interessada no comportamento a longo prazo do sistema, a análise transiente investiga o comportamento transiente do processo, ou seja, ela é capaz de determinar o estado do sistema no final de um certo intervalo de tempo, o tempo entre a ocorrência de dois eventos, etc.

A análise de sistemas estocásticos pode ter em vista não somente propriedades quantitativas, mas também propriedades qualitativas [BK08]. Dado que esses sistemas possuem probabilida- des associadas aos seus estados, é possível usar essas probabilidades para verificar propriedades qualitativas como, por exemplo, as que declaram que um certo evento ocorre quase certamente (ou seja, ocorre com probabilidade próxima de 1) ou que o evento quase nunca ocorre (ou seja, ocorre com probabilidade próxima de 0).

2.2.1 Métricas de Desempenho para Processos de Negócio

De acordo com Jain [Jai91], quando um sistema realiza um serviço corretamente, o seu desempenho pode ser medido pelo tempo necessário para a realização do serviço, pela taxa na qual o serviço é realizado e pelos recursos consumidos na realização do serviço. Essas três “dimensões” do desempenho de um sistema são chamadas de responsividade, produtividade e utilização, respectivamente. As métricas comumente empregadas para medir essas dimensões são, respectivamente, o tempo de resposta, o rendimento e a utilização. A definição clássica de cada uma dessas métricas é a seguinte:

• tempo de resposta – é o intervalo de tempo entre o recebimento de uma requisição de usuário e o envio da resposta correspondente do sistema;

• rendimento – é a taxa (em requisições por unidade de tempo) na qual as requisições são servidas pelo sistema;

• utilização (de um recurso) – é a fração do tempo na qual o recurso está ocupado tratando de requisições.

2.3 AVALIAÇÃO DE DESEMPENHO DE SISTEMAS 21

Tabela 2.2: Métricas para a avaliação de desempenho de processos de negócio.

Alcance Métrica Significado

Processo

Tempo de Serviço Tempo necessário para a execução completa de uma instância do processo.

Rendimento Número de instâncias de processo completadas por unidade de tempo.

Tarefa

Tempo de Execução Tempo necessário para a execução da tarefa.

Tempo de Espera Tempo que a tarefa espera pela disponibilidade dos recursos necessários para a sua execução.

Rendimento Número de execuções da tarefa realizadas por uni- dade de tempo.

Recurso

Utilização Fração do tempo da execução do processo durante a qual o recurso está em uso.

Rendimento Número de unidades de trabalho realizadas pelo recurso por unidade de tempo.

Tamanho da Fila Número de tarefas que aguardam a disponibilidade do recurso.

Se considerarmos os elementos de um modelo de processo de negócio (como discutido na Seção2.1) e tomarmos como base essas três métricas comumente usadas, podemos definir três categorias diferentes de métricas que podem ser usadas na avaliação de desempenho de processos de negócio: métricas aplicadas sobre o processo como um todo, métricas aplicadas sobre as tarefas e métricas aplicadas sobre os recursos. A Tabela2.2define as métricas aplicadas a processos de negócio usadas neste trabalho.

Na avaliação de desempenho, frequentemente buscamos um único número que nos dê a ca- racterística chave de um conjunto de medidas. As três medidas mais popularmente empregadas para sintetizar uma amostra são a média, a mediana e a moda. Na Estatística, essas medidas são chamadas de índices de tendências centrais [Lil05].

Neste texto, sempre que nos referirmos a um índice de desempenho, estaremos nos referindo a um valor que sintetize uma das métricas definidas na Tabela2.2na análise de um processo de negócio.