• Nenhum resultado encontrado

Ferramentas para Automatização de Métricas de Software

CAPÍTULO 5 TRABALHOS RELACIONADOS

5.3 Ferramentas para Automatização de Métricas de Software

Pontos por Função e Pontos de Casos de Uso têm sido propostos para estimar desenvolvimentos de software em várias organizações. Com isso, várias ferramentas que dão suporte a eles foram desenvolvidas para suprir essa demanda [Kusumoto et al., 2004].

Esta seção comenta algumas ferramentas disponíveis no mercado para a medida de tamanho de software usando a técnica Pontos de Caso de Uso e Pontos por Função. Procurou-se identificar as funcionalidades oferecidas por essas ferramentas e até que ponto elas automatizam o processo de medida de tamanho de software.

Contudo, dentre as ferramentas pesquisadas, o que mais se encontrou foram ferramentas que usam a métrica de tamanho de software, que foi calculada de forma semi-automática, para calcular as estimativas de esforço e tempo de desenvolvimento.

Diz-se semi-automática a forma do cálculo da métrica, pois esta não é baseada em algum modelo formal de descrição de requisitos do software através do qual a ferramenta possa fazer a leitura em busca de dados como complexidade de Casos de Uso ou número de arquivos internos (ALIs) e, automaticamente, determinar a medida. Em outras palavras,

sempre que alguma dessas ferramentas calcula alguma métrica de tamanho é porque o usuário teve antes que analisar o software e informar seus dados de complexidade, número de arquivos, etc., para a ferramenta aplicar uma fórmula simples e chegar ao valor da métrica.

1. Construx Estimate

Construx Estimate é uma ferramenta desenvolvida pela Construx Software Builders que

ajuda a melhorar a qualidade da métrica do tamanho do software [Construx, 2005]. Ela utiliza as técnicas de estimativa COCOMOII. A Tabela 11 mostra as funcionalidades providas por essa ferramenta.

Tabela 11 – Principais funcionalidades da ferramenta Construx Estimate [Construx, 2005].

Funcionalidade Descrição Calibração através de dados históricos Através dessa funcionalidade o usuário

pode calibrar a ferramenta com dados da sua própria base histórica.

Dados da indústria Caso o usuário ainda não tenha uma base histórica de dados, a ferramenta oferece uma proveniente de diferentes tipos de projeto da indústria de software.

Estimativas através da interface gráfica A ferramenta possibilita a estimativa de software, ainda nas fases iniciais do projeto, baseando-se na contagem das caixas de diálogos, relatórios, saídas gráficas e etc.

Pontos por Função e linhas de código Para o cálculo do esforço e elaboração de cronogramas, esta ferramenta permite a entrada direta da contagem de Pontos por Função e/ou linhas de código.

Como se pode perceber pela Tabela 11, a Construx Estimate não faz a análise de um modelo para a geração da estimativa. A estimativa é baseada na interface gráfica, o que faz necessária a construção de um protótipo, mesmo que em papel (mock-up), para a geração das estimativas. Uma vantagem dessa ferramenta é que ela traz uma base de dados histórica, já pronta, para usuários novos na tarefa de estimativa de software, que ainda não possuem o próprio histórico.

2. Cost Xpert 3.3 – Software Cost Estimation and Project Planning

Essa ferramenta foi desenvolvida pela empresa Cost Xpert Group Incorporated e estima tamanho de software utilizando vários tipos de modelos diferentes para calcular essa métrica

e ainda disponibiliza o modelo COCOMO com a opção de vários tipos de ciclo de vida de desenvolvimento para o cálculo de esforço e custos [Costxpert, 2005]. A Tabela 12 traz algumas das funcionalidades desse software.

Tabela 12 – Principais funcionalidades da ferramenta Cost Xpert [Costxpert, 2005].

Funcionalidade Descrição Cálculo da estimativa de custo e esforço Esta ferramenta faz o cálculo da estimativa

de custo e esforço através do modelo COCOMO que tem a opção de trabalhar com os mais variados tipos de ciclo de desenvolvimento de software.

Medida do tamanho do software O Cost Xpert é capaz de calcular a métrica do tamanho do software através de várias técnicas como SLOC, Feature Points,

Internet Points, Domino Points, Pontos de

Caso de Uso, Pontos por Função entre outros.

Distribuição dos custos do sistema Após o cálculo do esforço a ferramenta é capaz de distribuir os custos de desenvolvimento entre as diferentes fases do projeto como Análise, Projeto, Implementação entre outros.

3. COSMOS – The Software Cost Modeling System

O COSMOS é uma ferramenta de cálculo de tamanho, esforço e cronograma de software desenvolvido pela East Tennessee State University. Essa é a única ferramenta que combina três técnicas: Pontos por Função, COCOMO e o modelo Putman proposto por Lawrence Putnam [Cosmos, 2005]. A Tabela 13 mostra as principais características desse software. Tabela 13 – Principais funcionalidades da ferramenta COSMOS [Cosmos, 2005].

Funcionalidade Descrição Cálculo da estimativa de custo Esta ferramenta faz o cálculo da estimativa

de custo e esforço através do modelo COCOMO, Rayleigh e Pontos por Função. Medida do tamanho do software O COSMOS é capaz de realizar o cálculo

da métrica do tamanho do software através do uso de Pontos por Função.

Cálculo da complexidade do sistema A complexidade do sistema é calculada através do fator de ajuste técnico do Pontos por Função.

Cálculo da métrica SLOC – Linhas de código fonte

Faz o cálculo de SLOC através da métrica Pontos por Função e da linguagem que será usada para a implementação do software.

4. EEUC – Estimate Easy Use Case

O EEUC é uma ferramenta de medida de tamanho e estimativa de custo de software, desenvolvida pela empresa Duvessa Software, que realiza as medidas nas fases iniciais do projeto através da técnica Pontos de Caso de Uso [EEUC, 2005]. A Tabela 14 mostra algumas das funcionalidades apresentadas pela ferramenta EEUC.

Tabela 14 – Principais funcionalidades da ferramenta EEUC [EEUC, 2005].

Funcionalidade Descrição Cálculo da estimativa de custo Este cálculo é realizado com base no

COCOMO II.

Medida do tamanho do software O tamanho do software é medido através dos Pontos de Caso de Uso.

Cálculo da complexidade do sistema A complexidade do sistema é calculada através do fator de complexidade técnica e do fator ambiental provenientes dos Pontos de Caso de Uso

Elaboração de cenários comparativos É possível a elaboração de cenários através dos quais o usuário pode alterar atores e/ou Casos de Uso e verificar o impacto disto nas estimativas de software. Importação de Casos de Uso e atores de

outras ferramentas

Pode-se realizar a importação das informações de Casos de Uso e atores de outros software como Rational Rose, Rational XDE e outros.

A Tabela 15 resume as funcionalidades das ferramentas apresentadas nesse trabalho.

Tabela 15 – Resumo das funcionalidades das ferramentas analisadas

Funcionalidade Ferramentas

Calibração da ferramenta por meio de dados históricos

1

Base de dados histórica com dados da indústria já cadastrados na ferramenta.

1

Estimativa utilizando a interface gráfica do software

1

PF ou SLOC 1,2,3

Cálculo de estimativa de custo e esforço 1,2,3,4 Outras métricas além de PF, PCU e SLOC 2

Distribuição dos custos do projeto entre as fases do ciclo de vida do desenvolvimento

2

PCU 2,4 Cálculo da complexidade do software 3,4

Elaboração de cenários comparativos 4 Coleta automática das informações 0

Outras ferramentas, menos expressivas para este trabalho, foram analisadas, algumas delas estão abaixo relacionadas:

• ACEIT – Automated Cost Estimating Integrated Tools: Framework de ferramentas desenvolvida através de um projeto patrocinado pelo Governo norte americano que visa a reportar estimativas de desenvolvimento de projeto de software [Aceit, 2005].

• PRICE Cost Models – Esta ferramenta desenvolvida pela Price System LLC traz o histórico de centenas de projetos de software com os seus respectivos custos de desenvolvimento, além de estimar projetos de desenvolvimento de hardware através de metodologias desenvolvidas pelo departamento de defesa dos Estados Unidos [Price, 2005].

• CoStar Software Estimation Tool – Esta é uma ferramenta desenvolvida pela Softstar com o intuito de estimar duração, esforço e custo de projetos de software através do uso do COCOMO II [Costar, 2005].

Conforme observado nesta seção, o cálculo da métrica de tamanho de software feita pelos software acima descritos não é totalmente automático, ou seja, o usuário sempre tem que dar informações como as complexidades de atores e Casos de Uso para o cálculo dos Pontos de Caso de Uso, ou então prover informações sobre a complexidade das Entradas Externas, Saídas Externas, Consultas Externas, Arquivos Lógicos Internos e Interface Lógica Externa para o cálculo dos Pontos por Função.

Das ferramentas analisadas, algumas se propõem a fazer algum tipo de medida de tamanho de software, já outras simplesmente realizam a estimativa do custo ou cronograma baseada em informações de métricas de tamanho de software que o usuário insere, ou seja, não há

nenhuma automatização da métrica de tamanho de software, há simplesmente um cálculo da estimativa de esforço baseado em métricas que o usuário já deve possuir inicialmente.

Assim sendo, dentro do conjunto de ferramentas pesquisadas, não existe nenhuma que aceite como entrada um modelo de requisitos bem formatado, como um Modelo de Casos de Uso ou algum outro tipo de diagrama e, através dele gere, automaticamente, algum tipo de métrica de tamanho de software como SLOC, Pontos de Caso de Uso ou Pontos por Função. O ambiente COCAR desenvolvido neste trabalho foi especificado com o objetivo de cobrir as restrições apresentadas pelas ferramentas analisadas no que tange a disponibilizar uma forma semi-automática e padronizada de inserir requisitos/casos de uso no sistema para o cálculo dos Pontos de Caso de Uso.

5.4 Considerações Finais

Apresentaram-se neste capítulo alguns trabalhos teóricos relacionados com estimativa de tamanho de software principalmente com a utilização da técnica PCU, isso, pois esta técnica é a base para a implementação da parte de estimativa de tamanho de software do ambiente COCAR que foi o objetivo principal desta dissertação de mestrado.

Além dos trabalhos teóricos também foram apresentadas as principais ferramentas acadêmicas ou do mercado de desenvolvimento de software que, de certa forma, automatizam o cálculo da métrica de tamanho de software, sendo importante o entendimento das principais funcionalidades dessas ferramentas buscando sempre o benchmarking (processo contínuo de comparação de produto, serviço e práticas) com objetivo de identificar os requisitos que este tipo de ferramenta deve conter.

Conhecendo o que o mercado acadêmico/profissional estuda e espera de uma ferramenta de estimativa de tamanho de software, no próximo capítulo será apresentado o Ambiente COCAR, mostrando detalhes de funcionalidade e implementação da ferramenta.