Módulo 8 – FERRAMENTAS CASE O significado da palavra CASE tem sofrido ao longo dos tempos várias interpretações, a mais utilizada é “COMPUTER AIDED SOFTWARE ENGINEERING” ou Engenharia de Software Auxiliada por Computador. Se analisarmos em um primeiro momento, observamos que o termo CASE não se refere diretamente a algum tipo de ferramenta, mas se observamos a expressão “auxiliada por computador”, chegamos a conclusão de que este auxílio só pode ser alcançado com a utilização de algum tipo de ferramenta. Segundo B. Terry “CASE designa um conjunto de ferramentas que auxilia um programador ou desenvolvedor de projetos durante uma ou mais fases no processo de desenvolvimento de software, onde é incluído também a sua manutenção”. Podemos definir o significado CASE como um conjunto de ferramentas e técnicas que auxiliam os desenvolvedores de software na construção de aplicativos, visando a diminuir o esforço e a complexidade, melhorar o controle do projeto, aplicar processos automatizados para que seja gerado um produto final de qualidade. Um dos principais objetivos a serem alcançados com a utilização das ferramentas CASE, é a implementação de um ambiente integrado que permita abordar desde a fase de concepção até a implementação, sendo muito importante para o desenvolvimento de sistemas de informação. Em alguns momentos, foram observados comprometimentos com a utilização de ferramentas CASE, pois em um dado momento pode existir a incapacidade de suportar de forma integrada, todas as atividades nas várias fases do processo, sobretudo, na geração automática de código. Algumas preocupações são reforçadas, principalmente por causa de alterações significativas que acontecem nos vários níveis tecnológicos envolvidos, métodos de análise e desenhos, modelagens de alto nível e a implementação do código. Alguns estudos não apresentam consistência nas vantagens de se utilizar estas ferramentas, pois se alguns apontam vantagens em sua utilização, outros chegam a conclusão que seus benefícios são difíceis de serem atingidos. 8.1 Evolução das ferramentas CASE Desde o início foi constatada a necessidade de se utilizar ferramentas para o auxílio no desenvolvimento de softwares. Citaremos abaixo, algumas fases em que as ferramentas de auxílio foram surgindo. Primeira fase: · · · Tradutores Compiladores Préprocessadores Segunda fase · · · · Editores de texto Debuggers Verificadores de código Software para controle de versão No início da década de 70 surgiu o sistema operacional Unix e seus respectivos aplicativos, que foram apontados como um dos primeiros conjuntos de ferramentas integradas de apoio ao desenvolvimento de software. No final da década de 80 surgiram as primeiras ferramentas de geração automática de código. Nos anos 90, muitas ferramentas CASE foram designadas como ferramentas RAD (Rapid Application Development), que aumentavam o ritmo de desenvolvimento dos aplicativos. Exemplos de ferramentas RAD: · · · · · Visual Basic Delphi PowerBuilder Oracle Designer Oracle Developer A introdução da orientação a objeto revolucionou o mercado, fazendo com que algumas ferramentas tradicionais incorporassem novas técnicas de modelagem, integrando com as abordagens estruturadas existentes. A UML assume papel de destaque neste contexto, crescendo a cada dia a nível denotação para modelagem. Hoje em dia, toda ferramenta incorpora suporte a UML. 8.2 Classificação das ferramentas CASE Ferramentas UPPERCASE: Aplicações que se especializam na fase de concepção do software, incluindo análise, especificação e modelagem de requisitos. Ferramentas LOWERCASE: Aplicações que são utilizadas na fase de implementação em que estão envolvidos os desenhos técnicos, compilação de código e os testes. Citaremos agora algumas ferramentas CASE em uma classificação mais detalhada: 1. Modelagem de processo de negócios: a. ARIS TOOLSET ( WWW.idsscheer.com ) b. MEGA SUITE ( WWW.mega.com ) c. PROVISION ( WWW.proformacomp.com ) 2. Modelagem de análise e desenho do sistema: a. b. c. d. e. ROSE ( www.rational.com ) PARADIGM PLUS ( WWW.cai.com ) GDPRO (WWW.advancedsw.com ) SYSTEM ARCHITECT ( WWW.popkin.com ) POWERDESIGNER ( WWW.sysbase.com ) 3. Programação de Aplicativos: a. VISUAL BASIC ( WWW.microsoft.com) b. DELPHI ( WWW.borland.com ) c. POWERBUILDER ( WWW.sysbase.com ) 4. Modelagem de banco de dados: a. SYSTEM ARCHITECT ( WWW.popkin.com ) b. ERWIN (WWW.cai.com ) c. POWERBUILDER ( WWW.sysbase.com ) 5. Teste a. SUITE TESTSTUDIO ( WWW.rational.com ) b. TESTWORKS ( WWW.soft.com ) 6. Gestão de Projetos: a. PROJECT ( WWW.microsoft.com ) b. JUGGLER ( WWW.cse.dcu.ie/catalyst ) 8.3 Funcionalidades das ferramentas CASE 8.3.1 Funcionalidades que são comuns a todas as ferramentas: · · · · Definição de grupos e perfis de utilizadores; Manter um registro de todas as alterações efetuadas; Suporte ao trabalho em equipe; Reutilizar artefatos de outros projetos já utilizados. 8.3.2 Funcionalidades específicas: · · · Possibilidade de representar fases, tarefas e atividades que são executadas ao código do projeto; Possibilidade de comparar os esforços planejados com os já realizados; Possibilidade de atribuir atividades e recursos, e analisar a alocação de cada recurso; · · Possibilidade de utilizar um histórico para elaborar um novo projeto; Possibilidade de analisar prazos e questões financeiras. Citamos algumas funcionalidades que são comum a todas as ferramentas, e algumas específicas, mas sabemos que as funcionalidades das ferramentas CASE não se resumem apenas a estas citadas. Observamos que algumas tendências nos últimos anos com as ferramentas CASE são idênticas as outras áreas dos sistemas de informação. A crescente utilização de linguagens orientadas a objeto e a utilização de ambientes de desenvolvimento, facilitam o crescimento do mercado de ferramentas de modelagem, onde a UML assume um papel de destaque neste crescimento.