Diagnóstico do Uso de Ferramentas CASE: Uma
Investigação na cidade de Passo Fundo
Lis Ângela De Bortoli1, Jane Costi Colossi1 , Jones A. Garbin1, Juliane Foresti1
1
Curso de Ciência da Computação – Universidade de Passo Fundo (UPF)
Caixa Postal 611 – 99001-970 – Passo Fundo – RS – Brazil
{lis,grazziotin}@upf.br, [email protected], [email protected],
Abstract. This paper describes the main results provided by a search about the
use of CASE (Computer Aided Software Engineering) tools in Passo Fundo
city. The search was conducted through a virtual questionaire that was
applied to the organizations that work with software development.
Resumo. Este artigo descreve os principais resultados de pesquisa realizada
sobre o uso de ferramentas CASE (Computer Aided Software Engineering Engenharia de Software Apoiada por Computador) na comunidade de
desenvolvimento de software da cidade de Passo Fundo - RS. A pesquisa foi
realizada através de um questionário virtual elaborado e respondido pelo
público-alvo formado pelas empresas que desenvolvem software.
1. Introdução
Segundo Fiorini (1998), desenvolver software de qualidade assegurada, com
produtividade, dentro dos prazos estabelecidos e sem gastar mais recursos do que os
alocados tem sido o grande desafio da Engenharia de Software. Existem vários aspectos
a serem considerados para obter-se sucesso no desenvolvimento de um software, dentre
eles pode-se citar: o uso de metodologias adequadas, o estabelecimento de processos de
avaliação da qualidade do software, a interação com outras áreas do conhecimento, a
análise dos sistemas existentes para verificar o que causou seu sucesso ou fracasso e a
utilização de ferramentas de apoio que facilitem o trabalho.
Segundo Fisher (1990), o uso de ferramentas CASE reduz substancialmente, ou
elimina, inúmeros problemas de projeto e desenvolvimento inerentes aos projetos de
médio e grande porte, por meio da geração automática de grande parte do software com
base nos projetos especificados pelo seu engenheiro, o que acarreta em aumento na
qualidade do produto e na produtividade de desenvolvimento.
O objetivo principal da tecnologia CASE é separar o projeto do programa
aplicativo da implementação do código. Várias organizações e desenvolvedores já
reconhecem este planejamento básico de software há muito tempo.
Nos últimos anos, têm-se desenvolvido e apresentado diversas metodologias aos
desenvolvedores de software. Estas metodologias oferecem uma estrutura de projeto e
um conjunto de formalismos e normas em que se basear para a condução do trabalho de
desenvolvimento de software.
Embora imperfeitas e altamente dependentes da eficiência do profissional, estas
metodologias têm permitido aos desenvolvedores de software a construção de sistemas
complexos. Geralmente estas metodologias funcionam por meio da decomposição de
grandes sistemas de software em conjuntos de módulos menores, mais fáceis de lidar.
As interfaces entre esses módulos costumam ser bem projetadas pelo engenheiro de
software, permitindo aos programadores construir e testar independentemente os
módulos que lhes são atribuídos. Assim, durante os estágios finais do processo de
desenvolvimento do software, todos os módulos são reunidos e integrados para
formarem o programa final.
Em vários aspectos, as ferramentas CASE são um desenvolvimento direto das
metodologias feitas no papel. Atualmente, várias daquelas mesmas metodologias e
técnicas organizacionais estão sendo implementadas em forma de programas, em vez de
se confiar em que programadores e engenheiros de software pratiquem religiosamente as
metodologias. As ferramentas vieram para apoiar as metodologias, controlando o seu
uso e eliminando atividades manuais feitas pelos desenvolvedores, deixando-os mais
livres para tarefas que exigem mais criatividade. As ferramentas CASE aprimoram a
criatividade, pois possibilitam a construção de projetos mais elaborados em menos
tempo.
Para muitas organizações de desenvolvimento de software, as vantagens
qualitativas das ferramentas CASE têm um peso maior que as quantitativas. O tempo
gasto no desenvolvimento será quase sempre menor com o auxílio das ferramentas
CASE, mas talvez seu maior benefício tenha a forma de garantia, ou “consciência
tranqüila”, de que a tarefa está sendo executada devidamente, como foi programada e
segundo as especificações do usuário.
Este artigo está dividido da seguinte forma: a seção dois apresenta os principais
conceitos acerca da tecnologia CASE; na seção três a pesquisa realizada bem como os
principais aspectos da sua condução são apresentados; a seção 4 aborda os principais
resultados obtidos e, por fim, apresenta-se a conclusão e as referências bibliográficas
nas quais se embasou este trabalho.
2. Ferramentas CASE
Tecnologia CASE é o uso de apoio computacional para auxiliar no processo de
desenvolvimento de software. As ferramentas podem fornecer apoio para a maioria das
atividades executadas pelos engenheiros de software, como especificação de requisitos,
análise do sistema, projeto, documentação, programação e depuração.
As ferramentas CASE fornecem base para definir, projetar, construir, testar,
documentar e apoiar sistemas de informação e produtos de software. Também fornecem
mecanismos para avaliar as atividades realizadas no sistema de informação, definir
mudanças propostas, produzir e validar novos processos de informação e enfocar as
mudanças que podem aperfeiçoar o desempenho e a operação da organização.
Através do uso de ferramentas CASE é possível traduzir situações do mundo real
em modelos, processos e componentes.
Uma ferramenta CASE pode ser simples quando fornece suporte a uma atividade
da engenharia de software ou complexa quando apóia um ambiente completo que
envolve ferramentas, bancos de dados, pessoas, hardware, redes, sistemas operacionais,
padrões e uma infinidade de outros componentes.
As ferramentas CASE não são revolucionárias; são evolucionárias. A medida que
as metodologias evoluem para satisfazer as necessidades atuais, vão renascendo em
forma de software. Nenhuma ferramenta CASE pode realizar sozinha todo o trabalho
de especificação e projeto. Naturalmente, são necessárias diversas metodologias
complementares para se lidar com todas as facetas do desenvolvimento de um software,
desde o projeto estrutural até a especificação da interface com o usuário. Embora haja
uma tendência a combinar as metodologias complementares em “ambientes integrados
para as ferramentas” , a ferramenta universal ainda pertence ao futuro.
Segundo Fisher (1990), as ferramentas CASE devem satisfazer alguns critérios
básicos para fazerem parte da caixa de ferramentas dos desenvolvedores de software.
Isto é fundamental para que possam ser aceitas pelos métodos de desenvolvimentopadrão das organizações. As ferramentas CASE devem apresentar as seguintes
características:
• Fracionamento da complexidade: uma das metas principais da tecnologia CASE é
decompor os requisitos e os projetos em componentes manuseáveis. Sua função é
simplificar, explicar e reduzir;
• Adequação a um público diversificado: para as fases de requisitos e projeto do ciclo
de vida do software, as ferramentas CASE servem a diversos fins. Por um lado, sua
saída deve ser inteligível para os usuários finais e as organizações contratantes, que
pagam pelo desenvolvimento do software. Por outro lado, devem oferecer uma ajuda
valiosa aos próprios desenvolvedores; caso contrário é perda de tempo utilizá-las;
• Mais baratas que a construção em si: a utilização de uma ferramenta CASE deve
custar menos e ser mais eficaz a longo prazo do que a montagem de um sistema de
software pelos métodos tradicionais. As ferramentas CASE devem reduzir
substancialmente o empenho despendido em implementação e manutenção, oferecendo
especificações e projetos de qualidade superior;
• Quantitativas e verificáveis: as especificações e projetos gerados pelas ferramentas
CASE devem articular meticulosa e concisamente as características e os componentes
do software a ser construído. Cada exigência da implementação tem que ser verificável,
e pode se encontrada nos documentos gerados. Os critérios de desempenho, as
limitações e as condições de erro devem estar especificadas no projeto;
• De fácil manutenção: as especificações e projetos produzidos ou montados por uma
ferramenta CASE devem ser adaptáveis às modificações nas metas dos requisitos e dos
projetos. Quando um documento do projeto perde a sincronização com o código
subordinado, torna-se inútil, e pode até causar perda de tempo aos desenvolvedores em
futuros aperfeiçoamentos do software;
• Orientação gráfica: as boas ferramentas CASE apresentam informações visuais de
especificações e projeto. Tanto para os usuários finais como para os desenvolvedores, é
muito mais fácil compreender uma ilustração gráfica do que ler inúmeras páginas de
texto descritivo.
A seguir são apresentadas algumas vantagens das ferramentas CASE. Deve-se
perceber, entretanto, que grande parte do valor da engenharia de software auxiliada por
computador depende de como ela está integrada com a organização de desenvolvimento
de software.
• Especificações minuciosas de projeto: é muito difícil para um engenheiro de
software realizar manutenção de um grande sistema de software com uma
documentação incompleta, imprecisa, inexistente. Através do uso de ferramentas CASE
é possível ter documentação completa do projeto que está sendo desenvolvido;
• Especificações atuais do projeto: pior que as especificações de projeto incompletas
são as especificações que não foram atualizadas quando das modificações feitas no
código-fonte. As ferramentas CASE ajudam a manter uma sincronia com a
implementação do código;
•
Redução do tempo e custo de desenvolvimento;
•
Facilidade e redução de custos de manutenção;
•
Melhoram a qualidade do produto de software;
•
Fornecem base para a reusabilidade;
•
Algumas ferramentas permitem a realização de reengenharia/engenharia reversa;
•
Controle de uso da metodologia;
• Transferência harmoniosa de informações (modelos, programas, documentos,
dados);
• Aumento no controle do projeto, obtido por meio de um melhor planejamento,
monitoração e comunicação;
• Melhora na coordenação entre os membros de uma equipe que esteja trabalhando
num grande projeto de software;
•
Fornecem ambientes gráficos de fácil utilização;
•
Geração automática de código;
•
Aumento da produtividade.
No entanto, é importante ter clareza do que uma ferramenta CASE não faz:
•
pensar pelo engenheiro de software / analista de sistemas;
•
identificar os problemas dos sistemas;
•
detectar as necessidades do usuário;
•
gerenciar o processo de desenvolvimento;
•
interpretar diagramas.
3. A Pesquisa Realizada
O principal objetivo da realização da pesquisa foi verificar o uso de ferramentas CASE
pela comunidade de desenvolvimento de software da cidade de Passo Fundo.
Para centralizar os dados e divulgar o trabalho de pesquisa foi construída uma
página na Internet (inf.upf.tche.br/case). Nesta página encontram-se todos os dados
referentes à pesquisa, sendo alguns deles de acesso restrito à equipe.
Foi elaborada, através do banco de dados MySQL1 e da linguagem PHP2, uma
base de dados para o cadastramento de ferramentas CASE, para ter-se uma melhor
organização destes dados. Devido à diversidade de ferramentas identificadas, uma das
dificuldades enfrentadas foi a classificação destas. Não conseguiu-se utilizar nenhuma
classificação já existente na literatura, como por exemplo as propostas por Pressman
(1995) e Sommerville (2003). Foi necessário propor uma classificação própria,
mesclando-se as já existentes. No entanto, esta classificação não será exposta neste
artigo.
Após identificadas as ferramentas, partiu-se para a definição do público-alvo da
pesquisa. Em virtude do número significativamente grande de contatos obtidos,
diagnosticou-se que seria muito complicado o deslocamento da equipe para aplicar o
instrumento pessoalmente em cada empresa. Sendo assim, iniciou-se a discussão sobre
a elaboração de um questionário virtual para que as empresas pudessem responder a
pesquisa via Internet. Como o público alvo era empresas da área de informática,
acreditou-se que tivessem acesso a esta tecnologia. Esta premissa mostrou-se
verdadeira. Desta forma, elaborou-se o questionário virtual. Além da elaboração das
questões necessitou-se fazer toda a modelagem do banco de dados utilizando arquitetura
relacional. Após, foi construído o MER (Modelo Entidade Relacionamento)
correspondente, utilizando-se uma cópia de demonstração da ferramenta CASE Data
Architect3. O banco de dados utilizado também foi o MySQL. Concluída esta etapa
partiu-se para a programação, também através da linguagem PHP. Como o sistema
ficaria disponível na Internet teve-se toda uma preocupação com a segurança de acesso a
estas informações. Não poderia ser permitido que qualquer empresa respondesse ao
questionário, somente aquelas contatadas. Desta forma, um módulo de segurança foi
desenvolvido, para que cada empresa participante recebesse uma identificação e uma
senha próprias.
O questionário é composto de três partes: perfil da empresa, perfil técnico e uso de
ferramentas. Através das questões da primeira parte foram obtidas respostas quanto aos
dados cadastrais das empresas, tais como nome, endereço, ramo de atividade, tamanho,
número de funcionários (total e que atuam na área), número de profissionais com
formação superior na área, etc. Através das questões da segunda parte foram obtidas
respostas quanto aos tipos de sistemas desenvolvidos; sistemas operacionais, linguagens
de programação e banco de dados utilizados; configurações de hardware utilizadas, etc.
Finalmente, com as respostas da terceira parte, além de verificar quais as ferramentas
mais utilizadas, pudemos evidenciar o uso/não uso de ferramentas CASE, bem como os
motivos que levaram a adoção/não adoção destas ferramentas. Parte da tela do perfil da
empresa é apresentada na figura 1.
1
O MySQL é o banco de dados mais popular na categoria de software livre e é reconhecido pela sua
velocidade e confiabilidade.
2
O PHP (acrônimo de Hypertext Preprocessor) é uma linguagem de script amplamente usada que foi
projetada para desenvolvimento na WEB.
3
Ferramenta CASE para modelagem conceitual e física de banco de dados desenvolvida pela Sybase.
Figura 1. Tela do perfil da empresa
4. Resultados
Das 46 empresas contatadas 41 responderam ao questionário. Com base nas respostas
obteve-se os resultados apresentados a seguir. Nos itens 4.2, 4.3 e 4.5 foram permitidas
múltiplas respostas por empresa.
4.1. Quanto à categoria das empresas
Em termos de categoria as empresas distribuíram-se conforme a figura 2.
!
Figura 2. Categoria das empresas
4.2. Quanto aos tipos de sistemas desenvolvidos
Constatou-se que a principal área para a qual são desenvolvidos sistemas de software é o
comércio. A educação, a indústria e a saúde também obtiveram percentuais
significativos. Toda a distribuição pode ser visualizada na tabela 1.
4.3. Quanto ao ambiente de software
Quanto ao ambiente de software das empresas detectou-se que em termos de sistema
operacional a maioria utiliza o Windows e o Linux (95,12% e 58,53% respectivamente).
Outros sistemas operacionais mencionados foram o HP-UX (9,75%), o OS/2 (7,31%), o
AIX (2,43%) e Outros (14,63%).
Tabela 1. Tipos de sistemas desenvolvidos
Tipo de Sistema
Quantidade de Respostas
Freqüência (%)
Administração Comercial
26
63,21
Automação Comercial
17
41,46
Comércio Eletrônico
11
26,82
Administração Escolar
7
17,07
Educacionais
2
4,87
Administração Industrial
6
14,63
Automação Industrial
3
7,31
Administração Hospitalar
6
14,63
Aplicações Gráficas
2
4,87
Administração Pública
5
12,19
14
34,14
5
12,19
Software Livre
6
14,63
Sistemas Estatísticos
2
4,87
Simuladores
1
2,43
Sistemas para Web
Sistemas para Agronegócios
Sistemas de Apoio à Pesquisa
Outro
3
7,31
15
36,65
Em termos de Banco de Dados os mais utilizados são o MySQL (36,65%) e o
Interbase (34,14%). Além destes foram também mencionados Postgres e Paradox
(24,39%); Oracle (14,63%); Ingres (12,19%); Zim e DB2(4,87%); Informix e Progress
(2,43%); Nenhum (2,43%) e Outros (41,46%). Quanto à programação, utilizam
principalmente Delphi e PHP, ambas com 48,78%. Outras mencionadas foram ACCESS
e COBOL (24,39%); Java e Visual Basic (21,95%); Clipper (19,51%); ASP (14,63%); C
e FOXPRO (9,75%), Pascal e C++ (2,43%).
4.4. Quanto ao uso de ferramentas
A partir da investigação realizada detectou-se que a maioria das empresas que
desenvolvem software não utilizam a tecnologia CASE. O resultado pode ser
visualizado na figura 3.
" #
$%
&' (
" #
!
Figura 3. Uso de ferramentas
4.5. Quanto aos motivos da não utilização
Como a maioria das empresas não utiliza a tecnologia CASE buscou-se verificar os
motivos da não utilização. Destaca-se o custo como sendo o maior problema do uso das
ferramentas. Demonstra-se a distribuição dos motivos através da tabela 2.
Tabela 2. Motivos da não utilização
Motivo da não utilização
Custo
Quantidade de Respostas
Freqüência (%)
13
56,52
Não julga necessário
9
39,13
Falta de conhecimento sobre ferramentas existentes
8
34,78
Dificuldade de acesso (treinamento e suporte)
7
30,43
Baixa complexidade dos sistemas desenvolvidos
7
30,43
Não utilização de um método de desenvolvimento (MER, DFD, OO)
5
21,73
Falta de mão-de-obra qualificada para utilizar
4
17,39
Não conhece aplicabilidade para ferramentas
2
8,69
Equipamentos existentes não comportam
2
8,69
5. Conclusão
É consenso na literatura que o uso de ferramentas de apoio ao desenvolvimento de
software contribui de forma efetiva para a qualidade do produto final. Também
enfatiza-se que a produtividade da equipe de desenvolvimento aumenta
significativamente. No entanto, ao realizar pesquisa para verificar o uso de ferramentas
de apoio ao desenvolvimento, em empresas que desenvolvem software na cidade de
Passo Fundo, diagnosticou-se que mais da metade delas não utiliza a tecnologia.
O aspecto custo é o que mais contribui para a não utilização, talvez em
decorrência de que a maioria das empresas é de pequeno porte, conforme demonstrado
na figura 2. A falta de conhecimento sobre ferramentas existentes e o julgamento de que
não se faz necessário o uso da tecnologia também foram aspectos bastante mencionados,
como motivos da não utilização. Percebe-se, desta forma, que ainda existe uma falsa
idéia de que ferramentas CASE só podem ser utilizadas por empresas de grande porte e
no desenvolvimento de grandes aplicações. Com isso, faz-se necessário a criação de
uma cultura sobre o verdadeiro papel desta tecnologia. Ainda sobre o custo, no entanto,
seria interessante que as empresas que desenvolvem/fornecem a tecnologia tomassem
ciência desta experiência a fim de que possam viabilizar programas de incentivo à sua
aquisição. Ferramentas de código aberto seriam uma ótima alternativa neste caso.
Cabe também mencionar que entre as empresas que utilizam ferramentas CASE
para apoiar suas tarefas, o aumento da qualidade e da produtividade foram os principais
aspectos que as levaram a adotar a tecnologia, o que confirma o exposto na literatura.
É importante salientar que a maioria das empresas que não utiliza ferramentas
mostrou interesse na utilização e apontaram a produtividade, a padronização oferecida e
a documentação como os principais fatores que as levaria a adquirir a tecnologia.
Referências
Fiorini, S. T; Von Staa, A.; Baptista, R. M. (1998) “Engenharia de Software com CMM”. Rio
de Janeiro: Brasport. 346p.
Fisher, A. S. (1990) “CASE”. Rio de Janeiro: Campus.
Pressman,R.S.(1995) “Engenharia de Software”. São Paulo:Makron, McGrawHill, 1056p.
Sommerville, I. (2003) “Engenharia de Software”. São Paulo: Addison Wesley, 592p.
Download

Diagnóstico do Uso de Ferramentas CASE: Uma Investigação na