CASE "Computer-Aided Software Engineering" ,a base para a reengenharia de negócios.

Autor: Belmiro do Nascimento João

Resumo:

Produtividade e Qualidade são questões atuais. A reengenharia exige mudanças radicais na organização, no entanto o desenvolvimento tradicional de sistemas é lento e rígido. As soluções existem. CASE vem de encontro a essas necessidades, sendo a automação da automação. São analisados os aspectos de sua categorização, seleção e implementação bem como aspectos da engenharia reversa, reusabilidade, repositórios e CASE corporativo bem como seus impactos.

Palavra-chave: CASE, reengenharia, produtividade, desenvolvimento de sistemas, metodologias, seleção, implementação, Engenharia Reversa, Repositórios

1. INTRODUÇÃO Este artigo é baseado na principal ferramenta para as modernas técnicas de reengenharia de negócios, onde a nível corporativo, podemos definir os modelos atuais da empresa e o reutilizá-lo em todos os novos sistemas ou processos da organização, com ganhos significativos de produtividade e abandono do antigo e podendo repensá-la à partir de um novo ponto de vista. Se você acredita que os complexos modelos organizacionais podem ser descritos com papel e lápis este artigo não o auxiliará em nada. A época favorece as discussões a respeito das mudanças qualitativas em todas as áreas do conhecimento humano. Palavras de ordem são, reengenharia, globalização, competitividade, qualidade total, produtividade. As empresas tornam-se flexíveis e ágeis, integrando a produção na estratégia dos negócios e permitindo mudanças rápidas no produto, atendendo às rápidas demandas do mercado. No entanto não é assim com o desenvolvimento de sistemas e temos que encontrar caminhos alternativos para essa crise.

1.1. Solucionando as crises do software. Um sentimento reinante nas empresas, é a sensação de que muito está sendo gasto em computação, e ainda assim, o resultado da área de processamento nunca é o mais adequado. Dentre os principais problemas, vistos pela administração e pelos usuários, temos: Os usuários não conseguem obter aplicações quando precisam. difícil, ou impossível, obter modificações que a administração precisa em tempo razoável. Os sistemas entregues dificilmente atendem às reais necessidades do negócio. Os sistemas custam muito mais para desenvolver e manter do que o previsto. O problema principal, está nos métodos de trabalho. O desenvolvimento de sistemas tradicional é lento e rígido. Seu uso existe nas empresas através de padrões e procedimentos, tais como abertura de uma ordem de serviço, estudos de tempos e custos de desenvolvimento, análise, programação, implementação e testes. De um modo geral, esses procedimentos não funcionam de modo adequado. As Soluções existem mas requerem novos softwares, novos procedimentos e novas estruturas gerenciais, muitas vezes entrando em choque com a própria Cultura da organização. A hora é de um rompimento com os antigos métodos, ainda mais que a revolução gerada pelos microcomputadores permite a automação das antigas metodologias e incentiva a criação de novas técnicas para a automação do desenvolvimento de software. No entanto, a maioria das empresas e dos profissionais de processamento de dados não acompanha a velocidade da proliferação dessas novas tecnologias. As ferramentas CASE, por serem um conjunto integrado de ferramentas que podem atuar em todas as fases de desenvolvimento de software, tem um impacto profundo, exigindo novas metodologias. Straub e Wetherbe (6), através dos resultados de um painel de especialistas, nos mostram as principais tecnologias que influenciarão as empresas nos anos 90, sendo CASE considerada como uma tecnologia de impacto indireto, do ponto de vista organizacional, mas afirmando-se que é importante e estará em crescimento acelerado nos anos 90. Afirmam também que o valor de CASE consite em "automatizar o projeto humano e codificá-lo", o que significa uma mudança fundamental no modo dos sistemas serem construídos. De outro modo os produtos CASE e as capacidades de Engenharia Reversa, terão um forte impacto nas profissões ligadas ao desenvolvimento de sistemas até meados da década de 90, sendo então, seus efeitos sentidos pela comunidade de usuários finais.

1.2. A motivação para produtividade e qualidade. Dentre as grandes questões em desenvolvimento de software hoje, destacam-se: melhor qualidade, maior produtividade, melhor gerenciamento e custos menores e a manutenabilidade.Simultaneamente a uma diminuição do custo dos equipamentos de processamento de dados e da sua disseminação nas áreas usuárias, tem crescido o interesse e o conhecimento por parte dos usuários da tecnologia e isso os torna mais exigentes. Requerem melhores informações gerenciais, automatizam processos, aumentando a produtividade.Tudo isso nos leva novamente à necessidade de novos métodos de trabalho, com novas tecnologias e softwares ou ferramentas, deixando os métodos artesanais de desenvolvimento de lado; A chave da produtividade é a automação, e isto nos leva a desenvolver softwares, como qualquer outro tipo de produto manufaturado.A manutenção tende a crescer à medida que cresce o número de programas e, imaginando-se um mercado de livre concorrência, onde os competidores travam uma luta sem fim, a tendência é de crescimento dos programas e, consequentemente, dos problemas de manutenção e novos "back-logs". É comum encontrarmos empresas onde o tempo total gasto com manutenção corresponde a 80% de todo o tempo gasto pelo pessoal de sistemas. No entanto, existem já ferramentas CASE e técnicas na qual muito do custo de manutenção pode ser evitado. difícil imaginar o que seria a área de sistemas, dentro de uma década, sem a utilização de novas técnicas; sómente com as metodologias convencionais, certamente seria o caos.A primitiva organização de Sistemas de Informação Gerencial não pode apropriar-se das vantagens de CASE e novas tecnologias de engenharia de software.CASE automatiza partes de uma ou mais metodologias de desenvolvimento de software. A metodologia é a base, a fundação, sendo CASE a automação da metodologia.

2. METODOLOGIA E CASE. A implementação de ferramentas CASE sem uma forte e fundamental metodologia , torna vulverável os seu sucesso sendo improvável obter os benefícios desejados.Uma escolha por metodologias pode revelar-se inapropriada para automação com ferramentas CASE, caso se escolha uma metodologia manual, o tédio envolvido pode desviar-se para a metodologia e conseqentemente para CASE.Por causa do refletido processo de automação inevitavelmente mudanças no processo, tecnologia CASE e metodologia são melhor implementados juntos.

2.1. Automação das metodologias As Metodologias, de um modo geral, estão ultrapassadas, por perpetuarem técnicas manuais do passado. Por outro lado a grande transformação pela qual passa a área de processamento de dados, nos faz pensar na automação das metodologias. Segundo MARTIN, em Manifesto, "deve-se procurar acima de tudo, numa metodologia, a automação", precisando automatizar o trabalho do analista e do programador o mais possivel, sendo que esta automação precisa ser do conhecimento dos usuários finais, e ser adaptável ao mercado de maneira flexível.

2.2. As metodologias mudam por causa de CASE Quando as pessoas usam o termo metodologia, eles podem estar se referindo às metodologias de análise e projeto ou às metodologias que suportem todo o desenvolvimento.As ferramentas de desenvolvimento de sistemas suportadas por computador poderão ser um fator de disciplina do trabalho, porque obrigam a seguir um roteiro pré-estabelecido, e com praticamente toda a documentação técnica gerada pela ferramenta. A linha mestra da análise orientada a processos e os métodos de projeto não foram alterados significativamente em dez anos. O diagrama de fluxo de dados, segundo Yourdon e as suas extensões para processos real-time, e os diagramas estruturais de PAGE-JONES são predominantes em análise estruturada e projeto estruturado.Por outro lado, os métodos orientados a dados estão mudando, com variações dos diagramas de entidades relacionadas de CHEN, que dominam o mundo de projetos de dados hoje.Os esforços para aumentar o rigor e a riqueza dessas técnicas de modelagem de dados e para se conseguir diagramas computaveis são base para algumas inovações. Uma coisa certa: Como a tecnologia CASE incrementa em poder e capacidade, metodologias complementares continuarão a se desenvolver rápidamente. Entretanto, programadores e analistas tradicionalmente treinados, provavelmente relutarão em absorver os novos métodos. Arquiteturas cliente/servidor e ambientes gráficos (GUI) tumultuam definitivamente esse cenário.O paradigma muda das metodologias estruturadas para as metodologias orientadas a objeto.

3. INTRODUÇÃO A CASE CASE é automação de software. A tecnologia CASE é talvez a mais profunda transformação ocorrida na comunidade de software. CASE é a automação da automação. Ele oferece uma resposta prática aos problemas de produtividade de software dos últimos vinte e cinco anos.A tecnologia CASE é uma combinação de ferramentas de software com metodologia. Deste modo, CASE é diferente das primeiras tecnologias de software, porque enfoca o problema da produtividade de software e não só nos problemas da implementação. O termo foi criado no começo dos anos oitenta, quando a idéia de que ferramentas gráficas, como a dos diagramas de fluxo de dados, os diagramas de entidades e relacionamentos e gráficos estruturais, poderiam ser úteis na análise e projeto de sistemas.Uma definição talvez mais simples e completa é a que nos é dada por McClure (5): "CASE é a automação do desenvolvimento de software". Nesta concepção CASE é uma nova abordagem para o ciclo de vida de software, que é baseada na automação. A idéia básica é que CASE proveria um conjunto integrado de Ferramentas de economia de trabalho,ligando e automatizando todas as fases do ciclo de vida de software. Isso evidencia que a tecnologia de ferramentas automáticas continuará avançando nos próximos 10 anos. Os ferramentais do analista em meados da década de 1990, certamente terão características sofisticadas de verificação de erro, tão bem como habilidade em gerar código e mesmo sugerem ( usando técnicas de inteligência artificial ) possibilidades de código reutilizável a partir de Bibliotecas de Software.Muitas ferramentas CASE incluem poderosos editores gráficos que implementam uma interface com o usuário transformando o desenvolvimento de software num processo visual.

3.1. CASE e o Ciclo de Vida CASE altera o ciclo de vida do sistema. Com CASE, o projetista do sistema pode focalizar mais o trabalho da análise e projeto e menos a codificação e teste. Programas codificados manualmente e alterados por geradores de código que automaticamente produzem código a partir das especificações do projeto. Especificações do projeto tomam a forma de diagramas estruturados, como DFD e DER, e modelos de protótipos. Como as especificações são armazenadas no repositório CASE, elas são automaticamente verificadas para a correção e referência cruzada com outro sistema de informação. Toda a informação do sistema é armazenada em repositório CASE onde ele pode ser automaticamente gerenciado e distribuído.Finalmente, CASE reduz o sério, e custoso, problema de manutenção de sistemas, pois as ferramentas CASE podem documentar, analisar e reestruturar os programas existentes agilizando o tempo de entrega para o mercado.

3.2. Categorização Há poucos anos atrás, dificilmente algum analista de sistemas teria ouvido o termo CASE. O mercado de ferramentas CASE tem um dos mais altos graus de crescimento das empresas que atuam no setor de desenvolvimento de softwares. Como o mercado nasce, a definição de CASE continua a mudar e não há um padrão definido para a sua categorização, no entanto os termos abaixo são os que melhor o identificam.a) Front End ou Upper CASE; são aquelas que apóiam as etapas iniciais de criação dos sistemas, são elas as fases de planejamento, análise e projeto do programa ou aplicação. b) Back End ou Lower CASE; são aquelas que dão apoio a parte física, isto é, a codificação testes e manutenção da aplicação, normalmente encontram se produtos de ambos os lados, mas o difícil é se obter uma compatibilidade entre ambas, isto é , conseguir com o auxilio de uma única ferramenta. c) 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. Outra classificação nos é dada segundo a fase do ciclo de vida que apoia: Planning Workstation, Analysis Workstation, Design Workstation, Ferramentas de programação.

3.3. Critério de seleção. Dentre os critérios para a seleção de ferramentas CASE , destacamos, segundo Gibson (1): a) a ferramenta é um DBMS ou um sistema de dicionário de software.b) Quais as direções para o futuro e funcionalidade da ferramenta. c) O fabricante da ferramenta tem uma filosofia de arquitetura aberta.d) A ferramenta produz software utilitário e procedimentos de leitura, bibliotecas de fontes e cria especificações de componentes CASE para sistemas existentes.e) A ferramenta tem uma interface efetiva com outras ferramentas.f) A ferramenta dispõe de metodologias gráficas, capazes de explodir os diagramas do projeto e especificações do dicionário, para um sistema de dimensões moderadas.g) O modelo de planejamento no componente de planejamento do CASE é compreensivamente abrangente ao nível de corporação e unidades funcionais, plano estratégico e de sistema.h) É provido de capacidade de Prototipação.i) É capaz de gerar automaticamente um escopo das especificações do projeto físico a partir das especificações do projeto.j) A ferramenta de projeto é provida de suporte a análise e documentação do projeto.k) A ferramenta tem capacidade de gerar automaticamente relatórios das especificações do projeto.l) O componente de desenvolvimento de baixo-nível provê métodos para convenincia e compreensiva customização do sistema gerado.m) A ferramenta permite a distribuição de responsabilidades pelo projeto e desenvolvimento.n) As ferramentas de projeto e desenvolvimento tem a capacidade de enviar porções do projeto e especificações do dicionário de desenvolvimento.o) Pode a ferramenta de interface do projeto e especificações de desenvolvimento para um DBMS funcional, ser usada para manter dados de uma companhia.p) Tem capacidade de processamento de texto.q) A ferramenta destaca o gerenciamento do projeto.r) É possível modificar o projeto CASE e ferramentas de desenvolvimento relativas ao ambiente interno da empresa ou metodologia existente.s) Pode a ferramenta gerar automaticamente projeto, operação e documentação para o usuário final.t) A ferramenta tem facilidades para manter o projeto tão bem quanto sistemas.u) Pode a ferramenta gerar programas para uma ampla faixa de sistemas.

3.4. Critérios para implementação Dentre os critérios para a implementação de ferramentas CASE , segundo Gibson (2): a) Estabelecimento e aplicação de critérios para avaliação das Ferramentas. b) Inclusão de um Treinamento extensivo.c) Seleção de um grupo experiente para Treinamento e acompanhamento durante a implementação.d) Formulação de um conjunto de Padrões e procedimentos.e) Grupo de Consultores customizando o Treinamento e Padrões de documentação e procedimentos.f) Seleção de um grupo experiente (Líderes de Projeto), como primeiro grupo a receber treinamento.g) Casa haja treinamento interno deve haver a inclusão de Trainees.h) Antes do início de um projeto, ter um grupo treinado.i) O projeto piloto deve ser relativamente simples, de 3 a 6 meses, para não haver desgaste.j) O grupo diretamente ligado ao piloto deve ser treinado por consultores.k) Apos o término do primeiro projeto, dever ser reavaliados e alterados os padrões e procedimentos da empresa de acordo com a experiência alcançada.l) Deverá ser feita uma reavaliação do treinamento após o primeiro projeto.

3.5. O papel da Gerência Quando se fala em implementação de CASE, o apoio da alta gerência é fundamental e, sem esse apoio, pode haver uma grande probabilidade de fracasso a curto prazo. O convencimento parte do princípio de que desenvolver sistemas de forma tradicional não é mais viável. Vários fatores devem ser considerados: a) Um extenso "back-log",isto é , aplicações pendentes de desenvolvimento.b) Uma comunidade de usuários mais exigente e que passa a questionar os custos de computação, os usuários se tornaram extremamente críticos principalmente com o tempo de desenvolvimento. Aqui uma questão é fundamental: o desenvolvimento de aplicativos não acompanhou o desenvolvimento de Hardware, e o CASE seria uma resposta nessa direção.c) O mercado é cada vez mais competitivo, o qual gera expectativas de resposta cada vez menor e desenvolvimentos simultaneos em novas tecnologias para se ganhar vantagem competitiva (Time-to-Market).A utilização de recursos financeiros representa um dos aspectos mais significativos na utilização de ferramentas CASE, sabendo-se de antemão que será necessário gastar recursos em metodologias, o que é apenas um compromisso. Treinamento adequado ao pessoal que desenvolve aplicações, mudanças organizacionais, que vem conjuntamente com as metodologias, dado que esta requer um rigor e disciplina para que os sistemas de informação trabalhem de forma conjunta.CASE realmente necessita ser adotado em um nível estratégico porque altera o ciclo de vida de desenvolvimento de software e muitas das práticas fundamentais de desenvolvimento de software.Watts Humphrey, em seu recente livro "Managing the Software Process", adverte: "Insanidade é o processo de repetir a mesma coisa, sempre e sempre,e aguardar resultados diferentes". Esta é uma referência a que as práticas de desenvolvimento não mudaram realmente nos últimos 20 anos.O pessoal de processamento de dados e os gerentes necessitam aceitar suas responsabilidades para o processo de desenvolvimento de software, seja que o processo pode e deve ser melhorado através de uma abordagem tradicional, sem o uso de ferramentas CASE ou outra tecnologia.

4. AVANÇOS FUTUROS EM CASE Passaremos a descrever algumas das principais caracteristicas das ferramentas CASE, que estão em evolução neste momento, como os repositórios e o conceito de reusabilidade de software.

4.1. CASE Corporativo. Ainda sobre o estudo de STRAUB e WETHERBE (6), o grande impacto organizacional de CASE será sentido quando este tiver o status de CASE Corporativo, fazendo com que os altos investimentos feitos tenham retorno, dentre as direções temos: visão estratégica da empresa, fixação de uma metodologia, utilização de métricas (p.ex.: APF), utilização do repositório corporativo, reengenharia e engenharia de reutilização.

4.2. Engenharia reversa Engenharia reversa de programas existentes, tem um amplo espaço futuro para desenvolvimento. A inabilidade para automatizar a manutenção dos milhões de linhas de código existentes é uma séria falha em tecnologia na maioria das empresas. Estimam que são gastos pelo menos 60 % das suas atividades de software na manutenção ou modificação dos sistemas existentes. Ferramentas de engenharia reversa de código procedural poder vir bem mais tarde. No inicio dos anos 90, ferramentas para auxiliar na compreensão do código existente através da conversão para a forma gráfica e editores inteligentes começam a aparecer, algumas ferramentas CASE poderão assistir o programador na edição de novo código a sistemas existentes.

4.3. Software Reusável Uma questão que domina o desenvolvimento de software na atualidade é o seu alto custo em relação ao do Hardware. Entre os fatores que contribuem para uma dramática redução no custo de software está a reusabilidade dos programas. A reusabilidade é um atributo ou qualidade de programas que podem ser usados em múltiplas aplicações. A reusabilidade pode ser obtida tanto com a geração automática de programas quanto manualmente, através de programação parametrizada. A reusabilidade é uma resposta importante aos problemas de produtividade de software. Possibilidades para reusabilidade de software incluem: código reusável, projetos, especificações formais, pacotes de software, protótipos e geradores de aplicação e sistemas de transformação. Ferramentas CASE jogam com uma importante regra, fazendo da reusabilidade uma estratégia prática de construção de sistemas. O repósitorio CASE forma um coração das necessidades das ferramentas CASE para reusabilidade.

4.4. Repositórios O repositório CASE é o mecanismo para armazenamento e organização de todas as informações concernentes ao sistema de software, incluindo planejamento, análise, projeto e construção. Alternativamente o repositório CASE é referenciado como um dicionário de dados, um banco de dados, um banco de dados orientado a objeto, uma base de conhecimento ou enciclopédia, dependendo de como o fornecedor de software o chame. É importante notar que o conceito de repositório transcende o conceito de um simples dicionário de dados , desde que o repositório armazena mais tipos de informações do sistema, os relacionamentos entre os vários componentes de informação e as regras para uso dos componentes ou seu processamento.

5. CONCLUSÃO As conclusões a seguir nos mostram um quadro referente à introdução de CASE (3): a) Falhas na formação que tem a maioria dos profissionais de desenvolvimento de sistemas, principalmente no que se refere a metodologias estruturadas.b) Deve ser incentivada a criação de pequenos planos pilotos para implantação de CASE, fortemente apoiados em metodologias. E aqui surgem os primeiros problemas referentes a falta de vivência dos profissionais com os "novos métodos", onde necessitam de treinamento sistemático para a sua assimilação e posterior utilização.c) O apoio da alta gerência passa a ter um papel fundamental na implementação de CASE, e neste caso, incluindo a "venda" da idéia para a alta direção da empresa, usuários e toda a gerência responsável por sistemas dentro da organização.d) As ferramentas CASE, estão apenas começando a se sedimentar no mercado, e normalmente a primeira ferramenta CASE implementada por uma organização de modo algum é a escolha definitiva e sim resultado de um plano de implementação conjunta de uma cultura voltada para metodologias estruturadas e da utilização de ferramentas.e) Empresas que não tem tradição em metodologias ou não tenham uma metodologia própria não se aventuram em metodologias novas ou pouco difundidas no mercado, deixando para aquelas que tem experiência a adoção de metodologias novas.f) Os aspectos de prototipação são encarados como importantes, assim com a adoção de bancos de dados relacionais em todos os novos projetos. h) Não há controles efetivos de custos de desenvolvimento de sistemas, e a sua utilização, quando existe, se resume a gerenciadores de projeto, não há a utilização de métricas para controle efetivo de projeto, custos, prazos, alocações de recursos, etc. i) Existe pouco esforço em termos de planejamento para a implementação de metodologias estruturadas e tampouco de ferramentas CASE na maioria das empresas, resultando as implementações existentes, próprias de poucas organizações que as estão desenvolvendo devido a necessidade crescente de redução de custos, ganhos de produtividade e credibilidade da área.j) A grande velocidade com que os recursos e técnicas computacionais evoluem. A falta de uma cultura de metodologias estruturadas, em todos os níveis. A falta de instrumentos adequados para o planejamento de informática.

Entre os benefícios podemos citar (4): a) Tornar a prática de técnicas estruturadas, existentes desde a década de 60 e 70 e simultaneamente estimular novas metodologias.b) Aplicar a Engenharia de Informações e a de software.c) Melhorar a qualidade de software através da verificação automatizada, eliminando a possibilidade de erros.d) Tornar prática a prototipação, acelerando o desenvolvimento de sistemas junto ao usuário.e) Simplificar a manutenção de programasf) Agilizar o processo de desenvolvimento.g) Liberar o analista de desenvolvimento para a parte criativa do desenvolvimento de software.h) Encorajar a evolução e desenvolvimento incremental.i) Deixar disponível o reuso de componentes de sistemas.j) Importância do aspecto da documentação de sistemas e diminuição de "Back-Log".k) Ainda não há confiança plena na tecnologia CASE atual e o caminho para a sua implementação dever ser acompanhado passo a passo juntamente com as metodologias, mas acredita-se nas suas possibilidades, principalmente após a segunda metade desta década.l) necessária a criação de uma base educacional para metodologias estruturadas incluindo a mudança de atitude do profissional de desenvolvimento de sistemas.m) Há um forte impacto na tecnologia com a implantação de CASE.n) Há resistência a mudanças na implantação de CASE: de um lado o pessoal técnico, que não está acostumado com especificações de sistemas, e da gerência, que não está acostumada a controlar projetos e utilizar metodologias estruturadas com consequente perda de prestígio e poder dentro da organização. o) Constitui a base da moderna reengenharia de processos, desde que trabalhado a nível corporativo.p) Permitir a construção de sistemas realmente inovadores atendendo aos processos de negócio básicos da organização e com máxima reação para o mercado.

6. REFERÊNCIAS BIBLIOGRÁFICAS

(1) GIBSON, Michael L., A Guide to Selecting CASE Tools, in Datamation, Julho 1988, p. 65 a 66.(2) GIBSON, Michael L., Implementing The Promise,in Datamation, Fevereiro 1989, p. 65 a 67(3) JOÃO, Belmiro N., A Introdução da Cultura CASE "Computer- Aided Software Engineering" no Brasil, dissertação de Mestrado, São Paulo, PUC/SP, 1992, 335p.(4) JOÃO, Belmiro N., Metodologias de Desenvolvimento de Sistemas, São Paulo, Ed. Érica, 1993, 155p.(5) McCLURE, Carma, CASE is Software Automation, New Jersey, Prentice-Hall,1989, 290p.(6) STRAUB, Detmar W.& WETHERBE, James, Information Technologies for the 1990s: An Organizational Impact Perspective, Communications of the ACM, Novembro 1989, p.1328 a 1339.

Publicado originalmente em: REVISTA TIBIRIÇÁ N. 25 Agosto/94, págs. 85 a 96, podendo ser reimpresso, observado os créditos e desde que citada a fonte

GEEK BRASIL - http:/www.geekbrasil.com.br

Comentários