Preview only show first 10 pages with watermark. For full document please download

Análise Por Pontos De Função Auxiliada Por Redes Neurais Artificiais

O artigo apresenta um modelo que relaciona diretamente os atributos básicos dos softwares, definidos pelo método de Análise por Pontos de Função. Bem básico.

   EMBED


Share

Transcript

http://www.serpro.gov.br/publicacao/tematec/publicacao/tematec/2003/ttec66 Destaques do Governo Análise por Pontos de Função Auxiliada por Redes Neurais Artificiais Tema 165 - ANO IX - Nº 65 - 2003 José Raimundo Fonseca Buscando superar algumas das dificuldades de avaliação e estimação de métricas de softwares, este artigo apresenta um modelo que relaciona diretamente os atributos básicos dos softwares, definidos pelo método de Análise por Pontos de Função, e métricas relativas ao seu processo de desenvolvimento. Para tanto é utilizada uma Rede Neural Artificial de arquitetura feed forward, treinada a partir do algoritmo back propagation. 1. INTRODUÇÃO A Engenharia de Software objetiva o estabelecimento de princípios que possibilitem o econômico, confiável e eficiente processamento (desenvolvimento ou manutenção) de softwares, baseando-se em técnicas que garantam pré-estabelecidos aspectos de qualidade e produtividade (Pressman, 1995). Para tanto, métricas de softwares devem ser utilizadas na condução de melhor compreensão dos fatores do processo, subsidiando a tomada de decisão. A Análise por Pontos de Função (FPA) é um método de medição do tamanho de softwares, criado por Alan Albrecht, que tenta relacionar a complexidade inerente ao processamento com as funcionalidades solicitadas/oferecidas ao usuário através do software. É utilizada como fator de normalização, variável dependente em modelos de estimação, unidade de conversão entre diferentes métricas (Lokan, 1999). Entretanto, várias alternativas a esse modelo (MKII, Feature Points, FFP, FFPA, ...) vêm sendo oferecidas, pois FPA: • é adequada a somente parte do domínio dos softwares, os Sistemas Gerenciais de Informação (St-Pierre et alli, 1997; Oligny et alli, 1999); • é composto por várias escalas implícitas de transformação, sendo, algumas, matematicamente inválidas (Abran, 1994); • tem comprometida sua uniformidade quando usa as Características Gerais dos Sistemas (CGS) como ajuste de complexidade, sem, no entanto, incrementar a qualidade dessa métrica (Vandorem, 2000; Lokan, 1999) 2. MODELO USADO POR FPA No processo de medição FPA, definido pelo IFPUG versão 4.1 (SUNAT, 2000), deve-se inicialmente identificar o tipo de contagem, isto é, se é relativa ao dimensionamento de um projeto de desenvolvimento de um novo software; ou à manutenção de um software; ou ainda, à medição de uma aplicação já existente. Figura 1 - Fronteiras da aplicação. São definidas, então, as fronteiras (Figura 1) da aplicação, a partir de onde o processo de contagem se divide em duas tarefas: a medição dos aspectos específicos da aplicação e a medição do grau de influência dos aspectos gerais do sistema sobre a aplicação. 1/5 http://www.serpro.gov.br/publicacao/tematec/publicacao/tematec/2003/ttec66 FPA baseia-se em que os softwares constituem-se de funções compostas de unidades lógicas chamadas atributos básicos (características específicas dos softwares): • itens de dados- data element type; • registros lógicos - record element type; e • arquivos referenciados - file type referenced. Figura 2 - Processo de contagem FPA. Como se verifica na Figura 2, de acordo com as quantidades desses atributos, cada função, segundo seu tipo t, é classificada quanto a sua complexidade g a qual é atribuído um peso w (KOKOL, 2000). Os pesos das funções classificadas são acumulados por uma grandeza adimensional q chamada pontos de função não ajustados. Obtida a contagem q, deve-se avaliar a influência das CGS sobre o tamanho final do software. Cada um de quatorze indicadores é pontuado (gi) em uma escala numérica inteira de zero a cinco e acumulado no fator de ajuste Fa. Finalmente, utilizando-se a Equação 1, obtém-se o tamanho em pontos de função ajustados Pfa para a aplicação ou projeto em avaliação. (Eq.1) Pfa = wf(y).(0,65 + 0,001. gi) O objetivo deste ajuste de complexidade é aumentar o relacionamento entre a medida e estimadores de esforço, tentando capturar características não observadas pelos pontos de função não ajustados. No entanto, este objetivo não é atingido, pois, baseando-se em modelos de regressão, Abran (1996) mostra que sua utilização não incrementa positivamente o relacionamento mencionado. 3. REDES NEURAIS ARTIFICIAIS Rede Neural Artificial (RNA) é um conjunto interconectado de unidades computacionais simples, chamados neurônios artificiais, processado paralelamente, cujo objetivo é realizar o mapeamento de padrões de entrada para a saída através de um prévio treinamento (Shaw & Simões, 1999). Inicialmente, as conexões da rede, representadas por uma matriz de pesos sinápticos, fornecem um comportamento aleatório. Para que possa ser utilizada de forma útil, a RNA passa por uma fase de treinamento, primeira parte do processo de mapeamento. A matriz modifica-se tal que consiga reproduzir as ações desejadas, passando assim para a segunda fase do processo: a estimação. Na fase de estimação é quando a rede reage aos estímulos de entrada conforme os limites de desempenho determinados por sua arquitetura, treinamento e qualidade de informações. A disposição, em que o conjunto de neurônios artificiais, componentes da rede neural, é projetada, define a estrutura de funcionamento da rede, isto é sua arquitetura. Na arquitetura feed forward os neurônios da rede são dispostos em uma ou mais camadas que se projetam, total ou parcialmente, uma sobre a outra, unicamente, no sentido da entrada para a saída. Quando existem três ou mais camadas, a primeira é chamada de camada de entrada, a última de camada de saída e as centrais de camadas ocultas. No treinamento, a RNA "aprende" a relacionar dois distintos conjuntos de informações (entrada e saída). O aprendizado utilizado nesta fase pode ser definido como um processo pelo qual os parâmetros livres de uma rede neural são adaptados através de um processo de estimulação pelo ambiente no qual a rede esta inserida. O tipo 2/5 http://www.serpro.gov.br/publicacao/tematec/publicacao/tematec/2003/ttec66 de aprendizagem é determinado pela maneira pela qual a modificação dos parâmetros ocorre (Haykin, 2001). Quando a aprendizagem utiliza um professor, que fornece a ação ótima a ser realizada pela rede, ela é dita supervisionada. Neste tipo de aprendizado, o conhecimento é representado por um conjunto de padrões entradasaída, onde a rede tenta fazer com que a diferença entre sua estimativa e sua saída (erro) esteja dentro de um patamar predefinido. O outro tipo de treinamento é aquele em que os parâmetros livres da rede são ajustados através de um algoritmo de aprendizagem não-supervisionada. Neste tipo de aprendizagem, não há a necessidade de um professor. É utilizada a competição entre os neurônios de saída, buscando a melhor representação do padrão na entrada (Rich & Knight, 1993). Back propagation é a técnica específica de implementação do algoritmo de aprendizado supervisionado mais utilizada. Ela se baseia em regra de aprendizagem por correção de erro, uma generalização do algoritmo do mínimo quadrado médio. Este algoritmo consiste de uma fase de propagação, em que um padrão é aplicado à entrada e transmitido através de todos os pesos sinápticos (fixos) da rede até a sua saída, e em uma fase de retropropagação, em que a diferença entre a saída produzida e a saída desejada é propagada no sentido inverso, tal que os pesos sinápticos sejam alterados em toda a rede, proporcionalmente a este, tornando o comportamento da rede mais próximo do almejado. 4. FPA AUXILIADA POR RNA Albran e Robillard (1996) realizaram um estudo empírico de FPA através de análises estatísticas de um conjunto de dados contendo vinte e um projetos, em cujos fatores de influência sobre a produtividade foram considerados homogêneos, isto é, todos os componentes do processo mantiveram-se invariáveis durante a produção dos vários projetos. A partir daí, propuseram dez modelos baseados em atributos básicos e em componentes complexos do programa. Os melhores resultados obtidos foram: em um modelo com 10 variáveis, onde se consideraram os atributos básicos; e em um modelo com 5 variáveis, onde se consideraram os valores em pontos de função relativos a cada grupo de funções. Considerando o mesmo conjunto de projetos utilizados em tais modelos, implementou-se um modelo que objetiva capturar diretamente a relação existente entre os atributos básicos do software e seus correspondentes: tempo de produção e tamanho funcional do software. A Figura 3 permite visualizar um diagrama que descreve o modelo proposto. Ela retrata uma RNA feed forward treinada com algoritmo back propagation, composta por três camadas: entrada - para 10 (dez) variáveis; oculta com 20 (vinte) neurônios; e saída - para 02 (duas) variáveis. Suas ligações (parâmetros livres) foram ajustadas pelos reais valores dos tempos despendidos (dado em dias) na construção e integração das funções componentes do software e dos respectivos pontos de função associados. Figura 3 - Modelo baseado em RNA. Cada tipo de função componente (entradas, saídas, consultas, arquivos, interfaces) foi caracterizado por suas quantidades totais de atributos básicos, definidas pela metodologia de Albrecht, como seguem descritas: • Camada de entrada: Xe - número de itens de dados da função de entrada externa; Ye - número de arquivos referenciados da função entrada externa; Xs - número de itens de dados da função de saída externa; Ys - número de arquivos referenciados da função entrada externa; Xp - número de itens de dados da função de consulta 3/5 http://www.serpro.gov.br/publicacao/tematec/publicacao/tematec/2003/ttec66 (entrada); Yp - número de arquivos referenciados da função consulta (entrada); Xr - número de itens de dados da função de consulta (saída); Yr - número de arquivos referenciados da função consulta (saída); Xa - número de itens de dados da função arquivo lógico interno; Ya - número de registros lógicos da função arquivo lógico interno; Xi - número de itens de dados da função arquivo de interface externa; e Yi - número de registros lógicos da função arquivo de interface externa; • Camada de saída: t - tempo de desenvolvimento, medido em dias; q - tamanho do software, dados em pontos de função não ajustados.Com a RNA descrita, realizou-se treinamento e teste a partir de um conjunto de dados contendo 100% dos projetos mencionados (Albran & Robillard, 1996). Constatou-se que os projetos, identificados por IDAP: 4, 6, 28, 29 e 44 forneceram desvios-padrão muito acima da média do conjunto. Este problema pode ter sido causado por alguma variação elevada nas características de algum componente do processo produtivo. Excluindo-se os projetos supracitados, foram criados outros dois conjuntos de dados: um para treinamento e outro para testes, contendo desta vez, 50% dos projetos cada um. Realizadas 50.000 interações, com tolerância máxima admitida de 1.0E-4, para treinamento, e fator de aprendizagem 0.8, obtiveram-se os seguintes valores de erro para a estimação do tempo de desenvolvimento por RNA: Medidas de dispersão da RNA (t): Erro médio percentual = -21,42; Desvio padrão do erro = 17,55. Usando o mesmo conjunto de variáveis de entrada, o modelo de Abran & Robillard (1996) com 10 variáveis fornece estimativas para o tempo de desenvolvimento com o desempenho abaixo mostrado: Medidas de dispersão da Regressão (t): Erro médio percentual = 20,31; Desvio padrão do erro = 18,59. Como se vê, os valores fornecidos pelo modelo implementado são bem próximos dos obtidos (Figura 4) pela utilização do modelo de regressão estatística, utilizado por Abran & Robillard, mesmo sendo utilizados poucos dados no treinamento de RNA. 5. Conclusão FPA se baseia na visão de utilidade funcional a partir da visão do usuário, sendo independente da tecnologia utilizada na implementação do software. Mas, a utilização de CGS a torna dependente de uma visão especialista do sistema onde o software em avaliação residirá. Isto introduz na métrica uma subjetividade não condizente com uma unidade de medida. Além disso, em seu processo de contagem sua flexibilidade é comprometida, pois a alta granulosidade da métrica leva à redução no domínio de sua aplicabilidade. Sendo assim, propõe-se um mapeamento direto dos atributos básicos de FPA para métricas de software desejadas. Baseando-se em um conjunto homogêneo de projetos disponibilizados na literatura, foi treinada uma RNA que forneceu resultados de estimativas de tempo de desenvolvimento de softwares cujas medidas de dispersão se colocaram muito próximas das fornecidas por modelos baseados em regressão estatística. 4/5 http://www.serpro.gov.br/publicacao/tematec/publicacao/tematec/2003/ttec66 Pode-se aumentar o grau de precisão do processo de estimação através da utilização de um conjunto maior de padrões no treinamento da rede. No entanto, o modelo matemático implícito (característica intrínseca da RNA) continuará sendo um problema. Porém, o modelo proposto torna menos subjetivo o processo de estimação. Deve-se observar ainda que os valores obtidos no treinamento realizado com a RNA são concernentes ao ciclo de desenvolvimento como um todo. Desta maneira, poder-se-ia utilizar dados relativos a cada fase do desenvolvimento, o que poderia gerar estimativas mais precisas. Sobre o Autor do Trabalho José Raimundo Fonseca Graduado em Engenharia Elétrica e mestrando em Ciência da Computação pela UFMA. Embora seja Administrador de Redes no Serpro (desde 1998(, pesquisa aplicações de ferramentas de Inteligência Artificial a diversas áreas, como é o caso deste trabalho. 5/5