spider-cocomo: uma ferramenta de apoio ao cocomo … · spider-cocomo: uma ferramenta de apoio ao...

6

Click here to load reader

Upload: ngocong

Post on 20-Sep-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo … · Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo no Contexto da Melhoria do Processo de Software Kleverton Macedo 1, Sandro

Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo no Contexto da Melhoria do Processo de Software

Kleverton Macedo1, Sandro Ronaldo Bezerra Oliveira1

1Faculdade de Computação – Instituto de Ciências Exatas e Naturais (ICEN) Universidade Federal do Pará (UFPA), Rua Augusto Corrêa, 01, Belém-PA – Brasil

[email protected], [email protected]

Abstract. The Spider-CoCoMo is a free software tool that aims to help

estimate the cost, development time and number of people in software

development. This paper aims to introduce the tool in its main features

focusing.

Resumo. A Spider-CoCoMo é uma ferramenta de software livre que objetiva

auxiliar estimativas de custos, tempo de desenvolvimento e número de pessoas

em desenvolvimento de software. Este artigo tem o objetivo de apresentar a

ferramenta focando nas suas principais funcionalidades.

1. Introdução

Tentando evitar problemas clássicos no desenvolvimento de produtos de software, como

prazos extendidos, alto gasto dos recursos e abandono de projetos, empresas tem mudado sua tradição na forma de desenvolver seus produtos. É do conhecimento que um bom processo implantado é um bom indicativo de que a construção do produto não excederá os prazos dados aos clientes, bem como o custo pode ser bem controlado e ao final do projeto ter construído o que foi solicitado pelo cliente [Softex, 2009].

Nesse contexo, os modelos e normas de qualidades aparecem como um bom guia paras estas organizações, apresentando boas práticas no desenvolvimento de software a nível do seu processo de construção. Um dos processos mais importantes contidos nos modelos e normas é o processo Gerência de Projetos, onde é contido um conjunto de boas práticas para uma gerência eficaz de projetos de construção de software. Em particular, estimativas de tempo desenvolvimento, custo, esforço e número de pessoas envolvidas nas atividades para a construção do produto são muito importantes para um bom andamento do projeto até a sua conclusão, pois dão um ótimo controle ao longo do projeto.

Dessa forma, este artigo apresenta uma ferramenta, denominada Spider-CoCoMo, que auxilia projetos de software em suas estimativas, citadas anteriormente. Suas principais funcionalidades serão apresentadas, bem como um apanhado geral sobre o método CoCoMo, utilizado pela ferramenta para realizar estimativas, será descrito e como é possível atender um dos requeridos do processo Gerência de Projetos do programa MPS.BR [Softex, 2009] com a utilização da ferramenta.

2. CoCoMo – Constructive Cost Model

O CoCoMo - Constructive Cost Model [Boehm, 1981], é um método que busca medir esforço, prazo e tamanho de equipe para o desenvolvimento do software, desde que se tenha a dimensão do mesmo, através de um modelo de estimativa de tamanho de software, como FPA - Function Points Analysis e UCP - Use Case Points.

Page 2: Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo … · Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo no Contexto da Melhoria do Processo de Software Kleverton Macedo 1, Sandro

O modelo CoCoMo foi proposto por Boehm em 1981, tendo sido construído e calibrado inicialmente a partir de informação de um número considerável de projetos concluídos, em torno de 83. Afirma-se que a sua utilização tem permitido estimativas com um erro inferior a 20% em cerca de 70% dos projetos.

O CoCoMo considera três modos de desenvolvimento [Boehm, 1981]: Modo orgânico, aplicável a ambientes de desenvolvimento estáveis, com pouca inovação e a projetos com equipes de dimensão relativamente pequena; Modo semi-destacado, aplicável a projetos com características entre o modo orgânico e o embutido; e o Modo Encaixado, aplicável no desenvolvimento de sistemas complexos embutidos em hardware, com muita inovação, com restrições severas e/ou com requisitos muito voláteis.

Há ainda dois tipos de cálculos de CoCoMo [Boehm, 1981]: Modelo Básico - é um modelo estático de valor simples que computa o esforço do desenvolvimento de software como uma função do tamanho de programa expresso em linhas de código estimadas; e o Modelo Intermediário – trata-se da fase seguinte de sofisticação do modelo, que corresponde a considerar a influência de um conjunto de vários fatores, relativos ao sistema a produzir (produto) propriamente dito, ao suporte computacional (tecnologia utilizada), fator humano e organização do processo de desenvolvimento de software. A influência destes fatores, em número de 15 no modelo originalmente proposto, deve ser avaliada numa escala discreta e ponderada.

3. A Ferramenta

A Spider-CoCoMo é uma ferramenta oriunda das pesquisas do projeto SPIDER da Universidade Fereral do Pará [Oliveira, 2010]. Esse projeto tem como objetivo a construção de um suite de ferramentas livres para dar suporte à implementação do modelo de qualidade MPS.BR – Melhoria de Processo de Software Brasileiro [Softex, 2009]. A ferramenta, bem como o seu Manual de Usuário, encontram-se disponíveis no endereço http://www.spider.ufpa.br, acessando o menu “Downloads”.

Sua concepção foi dada pela necessidade de uma forma sistematizada e simples para realizar estimativas de projetos de software, pois a maioria das empresas utilizam planilhas eletrônicas e com as mesmas não é possível atender as necessidades dos gerentes por completo, tendo em vista que não é possível obter uma base histórica dos valores estimados nos projetos da organização.

O MPS.BR [Softex, 2009] é um programa que busca avaliar processos de desenvolvimento de software através de um conjunto de boas práticas. Esse modelo se divide em sete níveis de maturidade, partindo do nível G, o mais baixo, até o nível A, o mais alto. Na medida que se passa de um nível para o outro, o processo é entendido como mais maduro. Cada nível possui um conjunto de atividades, denominados processos. Por fim, cada proceso contido em um nível possui resultados esperados, que indicam que um determinado item do processo em questão foi alcançado. A avaliação se dá avaliando cada resultado esperado dos processos.

A Spider-CoCoMo está inserida no contexto do processo Gerência de Projetos, auxiliando nas estimativas de custo, prazos e número de pessoas. A ferramenta está indiretamente ligada com o resultado esperado GPR 2 e diretamente ligada com o GPR 4, dois dos resultados esperados deste processo.

Page 3: Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo … · Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo no Contexto da Melhoria do Processo de Software Kleverton Macedo 1, Sandro

O primeiro deles, o GPR 2, visa garantir que as tarefas e os produtos de trabalho sejam dimencionados utilizando métodos apropriados. A ferramenta necessita que este resultado esperado seja cumprido, pois ele serve de parâmetro para o cálculo do CoCoMo. Em particular para este resultado esperado, o projeto SPIDER possui duas ferramentas para medir tamanho de projeto baseado no método de análise de pontos por função e pontos por casos de uso, que são a Spider-APF e a Spider-UCP [Baldez, 2010]. Caso seja adotado qualquer outro tipo de método que não os citados anteriormente, pode ser inserido manualmente o valor na Spider-CoCoMo sem que haja perda nos valores estimados.

O segundo resultado esperado, o GPR 4, requer que o esforço e os custos sejam estimados. Esse resultado esperado é totalmente atendido com a utilização da Spider-CoCoMo, tanto nos níveis G e F, tendo em vista que o método CoCoMo é utilizado para estimativas, como dito anteriormente, como nos níveis superiores ao nível F, pois os valores estimados são armazenados em banco de dados, sendo feito um histórico dos mesmos. Este é o grande diferencial da Spider-CoCoMo sobre as planilhas eletrônicas.

3.1. Principais Funcionalidades

A Spider-CoCoMo possui três funcionalidades fundamentais e que servirão para evidenciar que o resultado esperado citado na seção anterior foi cumprido. A primeira delas é a de criação de projetos. Cada projeto da organização que necessita dos valores estimados deverão ser criados na ferramenta seguindo os parâmetros do método CoCoMo, a saber, orgânico, semi-destacado e encaixado. Depois de criado, o projeto aparecerá como um novo nó na árvore de projetos, como a Figura 1 indica.

Figura 1. Projetos na Spider-CoCoMo.

Outra funcionalidade, a mais importante da ferramenta, é a de cáculo do método CoCoMo. A ferramenta dá suporte aos dois tipos de cálculo do CoCoMo, básico e intermediário. O que diferencia um cálculo do outro é o parâmetro EAF, destacado de vermelho na Figura 2, que se referem aos fatores influentes nos valores estimados.

Nesse momento do cálculo é necessário o tamanho do projeto, podendo ser em pontos por função ou de casos de uso. O usuário pode optar por importar esse valor a partir da Spider-UCP ou Spider-APF, ou ainda informar o valor manualmente, caso utilize uma outra técnica de estimativas. É importante enfatizar que a Spider-CoCoMo não utiliza o serviço das duas ferramentas anteriores, e sim acessa a base de dados das mesmas. Para cada cálculo aplicado em um determinado projeto será criado um novo nó filho para o projeto, identificado pela data e hora do cálculo e o tipo de CoCoMo

Page 4: Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo … · Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo no Contexto da Melhoria do Processo de Software Kleverton Macedo 1, Sandro

aplicado. Os valores de esforço, tempo de desenvolvimento e número de pessoas estimados ficam sempre destacados de amarelo.

Figura 2. Cálculo de CoCoMo.

A terceira funcionalidade da ferramenta, que merece destaque, refere-se ao mecanismo para geração de relatórios. O programa MPS.BR requer que evidências de um resultado esperado sejam geradas para garantir o atendimento da boa prática, dessa forma os relatórios da Spider-CoCoMo servem de evidências que o GPR 4 está sendo efetivamente implementado pela organização. Há dois tipos de relatórios, um mostrando um gráfico de linha contendo a evolução do projeto a nível dos valores estimados, e um mostrando os dados de um cálculo, como os valores dos parâmetros utilizados e os relultados do cálculo. Esses relatórios estão respectivamente representados nas Figuras 3 e 4.

Figura 3. Relatório de Evolução

de Projeto.

Figura 4. Relatório do Cálculo.

Page 5: Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo … · Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo no Contexto da Melhoria do Processo de Software Kleverton Macedo 1, Sandro

Para enteder melhor o fluxo desde a criação do projeto até a realização de um cálculo de CoCoMo, as Figuras 5 e 6, representadas por um diagrama de atividades, mostra todo o fluxo respectivamente.

Figura 5. Diagrama de Atividades para Cadastrar Projeto.

Figura 6. Diagrama de Atividades para Realizar um Cálculo.

3.2. Arquitetura

A arquitetura da Spider-CoCoMo é bem simples, basicamente se divide em dois pacotes, o pacolte calculus e o pacote model. O pacote calculus é o responsável pelas rotinas de cálculos do CoCoMo. Ele possui três classes, a primeira delas é a classe abstrata Cocomo, que possui a implementação dos métodos para o cálculo do número de pessoas e do tempo de desenvolvimento, pois são comuns aos dois tipos de cálculo do CoCoMo. Possui ainda referência ao objeto CocomoParams, que são os parâmetros também comuns aos dois tipos de cálculo. As duas classes restantes são BasicCocomo e IntermediateCocomo, cada uma com as regras usadas para calcular esforço. Em particular, a classe IntermediateCocomo possui dependência para a classe do pacote de utilidades ValueChooser, que escolhe os valores corretos para efetuar o cálculo do EAF.

O pacote model possui as classes persistentes em banco de dados. Ao todo são quatro classes, que são: project, CocomoApplied, com os valores estimados de um determinado cálculo em um projeto; CocomoParams, como explicado anteriormente, são os parâmetros comuns aos dois tipos de cálculo; e IntermediateCocomoParams, que armazena os parâmetros para o CoCoMo intermediário. A visão arquitetural descrita é mostrada na Figura 7.

Page 6: Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo … · Spider-CoCoMo: Uma Ferramenta de Apoio ao CoCoMo no Contexto da Melhoria do Processo de Software Kleverton Macedo 1, Sandro

Figura 7. Arquitetura da Spider-CoCoMo.

4. Conclusões

Estimativas são boas práticas para um desenvolvimento de projetos de software. Com essa abordagem é possível evitar que projetos sejam entregues fora dos prazos ou abandonados no seu decorrer. É possível ter um controle maior sobre os gastos que o projeto necessita. Este artigo mostrou que é possível obter um bom conjunto de estimativas com a utilização da Spider-CoCoMo, tendo o ganho de atender ao resultado esperado GPR 4 do processo Gerência de projetos do MPS.BR, substituindo as tradicionais planilhas eletrônicas utilizadas pelas maiorias das empresas.

Como um guia, este projeto contou também com a construção de um manual de utilização da ferramenta. Nele consta todas as funcionalidades da ferramenta, provendo a possibilidade de uma organização suprir suas necessidades com relação à estimativas.

Atualmente a ferramenta encontra-se em implantação em uma instituição parceira do projeto SPIDER e, futuramente, resultados deste programa de melhoria organizacional serão coletados para caracterizar a efetividade de uso da ferramenta.

5. Agradecimentos O desenvolvimento deste trabalho foi apoiado financeiramente pelo PIBIC/UFPA/CNPq.

Referências

Baldez, G. P., Barbosa, S. O., Oliveira, S. R. B. (2010) “Apoios Sistêmicos à Estimativa de Projetos no Contexto da Qualidade de Software”. Anais da II Escola Regional de Informática – ERIN 2010. Manaus-AM.

Boehm, B. W. “Software Engineering Economics”. Prentice Hall, 1981.

Oliveira, S. R. B. et al (2010) “SPIDER: Uma Proposta de uma Solução Sistêmica de Apoio à Implementação do programa MPS.BR”. Anais do VIII Encontro Anual de Computação – ENACOMP 2010. Catalão.

Softex – Associação para Promoção da Excelência do Software Brasileiro (2009) “MPS.BR – Melhoria de Processo do Software Brasileiro – Guia Geral”.