# Ferramenta CASE

Ferramentas CASE (do inglês Computer-Aided Software Engineering) é uma classificação que abrange todas as ferramentas baseadas em computadores que auxiliam atividades de engenharia de software, desde análise de requisitos e modelagem até programação e testes. Podem ser consideradas como ferramentas automatizadas que tem como objetivo auxiliar o desenvolvedor de sistemas em uma ou várias etapas do ciclo de vida do desenvolvimento de um software.

## Categorização

Não há um padrão definido para a categorização das CASE, no entanto os termos abaixo são os que melhor o identificam.
* Front End ou Upper CASE: apoia as etapas iniciais de criação dos sistemas: as fases de planejamento, análise e projeto do programa ou aplicação.
* Back End ou Lower CASE: dão apoio à parte física, isto é, a codificação, testes e manutenção da aplicação.
* I-CASE ou Integrated CASE: classifica os produtos que cobrem todo o ciclo de vida do software, desde os requisitos do sistema até o controle final da qualidade.
Os ambientes de desenvolvimento integrado (IDEs) têm maior destaque e suportam:
* Editor
* Compilador
* Debug
* Geração de código
* Ferramentas de modelagem
* Deploy
* Testes automatizados Yrla
* Refatoração

## Classificação
### Controle de Versão

    CVS, Subversion, Git, Mercurial, Bazaar, StarTeam Borland, Rational Clearcase, entre outros.

### Gerência de projetos

    Microsoft Project, dotProject, Xplanner, Google Code

### Edição

    Microsoft Word, JBuilder, Wiki, Open Office, Eclipse, NetBeans, Rational Rose, Astah, ArgoUML, Star UML

### Ferramentas de prototipagem

    Adobe PageMaker, NetBeans, JBuilder, Delphi,Visual Basic, Lazarus

### Suporte a programação

    Compiladores - JDK Banco de Dados – Oracle, MySQL, PostgreSQL Teste - JUnit Automação de tarefas - Apache Ant, Apache Maven

### Análise de programas

    Analisadores estáticos - HPROF

### Teste

    JUnit (unitários)

### Depuração

    Sistemas interativos de depuração

### Geração de código

    Transformica, Unitech CodeFSW, JEE Spider

### Documentação

    Editores de texto (Ex: Microsoft Word, OpenOffice) Geradores de documentos (Ex: Javadoc) Editores de texto colaborativo (Ex: wiki)

### Reengenharia

    Sistemas de reestruturação de programas

### Ferramentas Integradas

    Agrupam diversas funcionalidades

### Ferramentas de Métricas

    Costar, USC-COCOMO, Calico

### Ferramentas de Planejamento

    Foundation

## Objetivos

* Melhoria da qualidade de software
* Aumento da produtividade no processo de software

## Vantagens do uso de ferramentas CASE

* Qualidade no produto final
* Produtividade
* Agilizar o tempo para tomada de decisão
* Menor quantidade de códigos de programação
* Melhoria e redução de custos na manutenção
* Agilidade no retrabalho do software
* Maior facilidade para desenvolvimento

## Desvantagens do uso de ferramentas CASE

* Incompatibilidade de ferramentas
* Formação para utilização

## Seleção e avaliação de ferramentas CASE
### Avaliação

Processos nos quais vários aspectos de uma ferramenta CASE são medidos, considerando-se critérios definidos. Os resultados são armazenados para uso posterior. Avaliar ferramentas CASE é muito mais que simplesmente comparar preços e condições de pagamento.
Se não há familiaridade com nenhuma é preciso definir e estudar essa metodologia antes mesmo de comprar ferramentas. Uma forma bastante comum para o processo de avaliação é a utilização de questionários que buscam abranger todas as características de ferramentas CASE.

### Seleção

Processo nos quais os dados de uma ou mais avaliações de ferramentas são ponderados e comparados, considerando-se critérios definidos, para determinar se uma ou mais ferramentas podem ser recomendadas para a adoção.
A proposta do processo de seleção é identificar a ferramenta CASE mais adequada entre as candidatas e certificar-se que a ferramenta recomendada atende aos requisitos originais dos usuários.
Pode iniciar quando os relatórios de avaliação estiverem concluídos. Um algoritmo de seleção deve ser definido e aplicado aos resultados da avaliação.

## Norma ISO/IEC 14102

Esta norma trata da seleção e avaliação de ferramentas CASE, e cobre parcial ou todo o ciclo de vida da engenharia de software. Estabelece processos e atividades a serem aplicadas na avaliação de ferramentas e na seleção da ferramenta mais apropriada dentre diversas candidatas. Estes processos são genéricos e as organizações devem adaptá-los de acordo com suas necessidades.