Ferramentas CASE

 

Ferramentas CASE (do inglês Computer Aided Software Engineering – Engenharia de Software Auxiliada por Computador) é uma classificação que abrange todas 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 desenvolvimento de software.

Embora possamos ter ferramentas como geradores de código, geradores de documentação (phpDoc) e testes automatizados como JUnit, alguns autores consideram:  “Um dos componentes indispensáveis de uma ferramenta CASE é a modelagem visual, ou seja, a possibilidade de representar, através de modelos gráficos, o que está sendo definido. No nosso caso, análise orientada a objetos através da UML.” – Modelagem Visual com Rational Rose 2000 e UML de Terry Quatrani.

Temos três categorias de ferramentas que são:

·         Lower CASE – ferramentas de codificação (Back-end): Dão apoio à parte física, isto é, a codificação, testes e manutenção da aplicação.

·         Upper CASE – ferramentas de análise, projeto e implementação (Front-End): apoiam as etapas iniciais de criação dos sistemas: as fases de planejamento, análise e projeto do programa ou aplicação.

·         Integrated CASE (I-CASE): ferramentas de união de Upper e Lower CASE: Classifica os produtos que cobrem todo o ciclo de vida do software, desde os requisitos do sistema até o controle final da qualidade.

As ferramentas CASE ainda podem ser classificadas como:

·         Horizontais:Oferecem serviços utilizados durante todo o processo de software;

·         Verticais:as que são utilizadas em fases específicas do processo de software.

E, classificadas pelos serviços que oferecem:

·         Documentação;

·         Planejamento e Gerenciamento de Projetos;

·         Especificações Formais;

·         Comunicação;

·         Análise e Projeto de software;

·         Projeto e Desenvolvimento de Interfaces;

·         Programação;

·         Gerenciamento de Configuração;

·         Controle de Qualidade;

Quanto a Taxonomia elas são classificadas como:

·         Ferramentas de Engenharia da Informação;

·         Ferramentas de Gerenciamento e Modelagem de Processo;

·         Ferramentas de Planejamento de Projeto;

·         Ferramentas de Análise de Risco;

·         Ferramentas de Gerenciamento de Projeto;

·         Ferramentas de Auditoria de Requisitos (Tracing);

·         Ferramentas de Gerenciamento e Métricas;

·         Ferramentas de Documentação;

·         Ferramentas de Controle da Qualidade;

·         Ferramentas de Gerenciamento de Banco de Dados;

·         Ferramentas de Gerenciamento de Configuração de Software;

·         Ferramentas de Desenvolvimento e Projeto de Interface;

·         Ferramentas de Prototipagem;

·         Ferramentas de Programação;

·         Ferramentas de Integração e Teste;

·         Ferramentas de Gerenciamento de Testes;

·         Ferramentas de Reengenharia.

Vantagens de se utilizar uma ferramenta CASE:

·         Qualidade no produto final;

·         Produtividade aumentada;

·         Ajuda a tomar decisões mais rápidas;

·         Menor quantidade de códigos de programação (escrita pelo programador), uma vez que o código aumenta, mas é escrito pela própria ferramenta – geração de código automatizada;

·         Melhoria e redução de custos na manutenção.

Algumas desvantagens:

·         Incompatibilidade de ferramentas;

·         Treinamento para utilização;

·         Custo alto para aquisição do software;

·         Custo alto da licença do software.

Ferramentas CASE de Modelagem

As ferramentas CASE surgiram para facilitar a criação dos modelos, as mais avançadas permitem a geração de uma parte do código-fontedo software a partir do modelo e até a geração do banco de dados a partir do modelo de entidade relacionamento. O principal objetivo é facilitar o projeto de banco de dados, possibilitando especificar a estrutura geral do banco de dados. Funcionam para modelos conceituais relacionais, objetos-relacionais ou orientado à objetos. Os bancos de dados são modelados através de Entidade Relacionamento. O principal objetivo é facilitar o projeto de banco de dados, possibilitando especificar a estrutura geral do banco de dados. Um dos componentes indispensáveis de uma ferramenta CASE é a modelagem visual, ou seja, a possibilidade de representar, através de modelos gráficos, o que esta sendo definido.

Modelagem de dados é uma descrição dos tipos de informação que estão armazenadas em um banco de dados. Dentre as técnicas utilizadas para construção dos modelos utiliza se “linguagem de modelagem de dados”, que podem ser gráficas ou textuais.


 

Bibliografia

Questões

·         Engenharia de Software:

o   Ferramentas CASE;

Resolução de Questões de Concursos Anteriores

TRE-SP – Técnico Judiciário – 2012 – FCC

Analise o texto:

 

É uma ferramenta de desenvolvimento de software baseada em conhecimento, da empresa Artech. Com ela o desenvolvedor especifica suas aplicações em alto nível (majoritariamente de forma declarativa), a partir do qual se gera código para múltiplos ambientes permitindo gerar e manter de forma automática aplicações em múltiplas linguagens e para diferentes plataformas.

 

Nessa ferramenta podem-se criar modelos que se preservam ao longo do tempo (bancos de conhecimento) e que são utilizados para gerar e manter as aplicações. Permite projetar, criar e manter o banco de dados (estrutura e conteúdo) e os programas de forma automática. Cada protótipo pode ser uma aplicação que equivale à aplicação de produção. Proporciona independência de plataforma e arquitetura.

 

A ferramenta descrita no texto é

 

a) JCompany.

b) GeneXus.

c) uniPaaS.

d) iBOLT.

e) ERWin.

RESPOSTA: B

JCompany: O jCompany Developer Suite é um conjunto de elementos Java EE  especialmente escrito para otimizar o esforço de criação e manutenção, que vão de sistemas de suporte a processos de negócio. Seu principal diferencial é a solução de produtividade completa para desenvolvimento corporativo em Java EE, cujo principal componente é um framework de integração, responsável por reutilizar, integrar e especializar dezenas de outros com base em bibliotecas open source, tais como JSF/Apache Trinidad, JBoss Seam, JPA/Hibernate, Eclipse  BIRT, Struts, Tiles e DOJO, definindo uma arquitetura MVC rica, que disponibiliza diversos padrões reutilizáveis em alto nível.

Além do framework de integração, a suíte inclui ferramentas completas de apoio ao desenvolvimento com base em diversos plug-ins próprios de geração de código e de terceiros, aprovados para o Eclipse. Inclui também utilitários próprios de construção e liberação de executáveis, baseados em Maven, profiling, geração de DDL, e para outras situações de desenvolvimento. São inúmeros os benefícios que a adoção do jCompany traz às organizações que precisam desenvolver sistemas de informação para suporte aos seus processos de negócio em plataforma Web, de forma rápida, padronizada e segura, sobretudo quanto aos aspectos de escalabilidade – tolerância ao crescimento do número de usuários simultâneos– e proteção contra invasões inadvertidas. Um guia prático dessa ferramenta é o livro “Tirando o Máximo do Java EE 5 Open Source” que inclui teoria aplicada às áreas de Arquitetura de Software, Orientação a Objetos e Design Patterns para Java EE 5 e práticas corporativas em dezenas de produtos open source.

O jCompany integra, ainda, o Powerlogic jALM (Java EE Application Lifecycle Management), a solução mais aberta e abrangente para Gerenciamento do Ciclo de Vida de Aplicações, por serem capazes de automatizar em alto nível e ainda proverem rastreamento chave entre informações normalmente desconexas, tais como projetos, requisitos, modelos UML e os artefatos reais liberados nas aplicações. As suítes de ALM são hoje objetos de desejo das áreas de TI, caminho inexorável para uma manufatura enxuta e com baixas não-conformidades. Dentre suas funcionalidades, estão Gerência de Projetos, Modelagem UML, Desenvolvimento Java EE, Automação de Testes, Segurança, Monitoria em Produção, Portal Corporativo, Relatórios AD-HOC e Contact-Center/Help-Desk – atualizações e suporte on-line integrados, por um valor insuperável.

GeneXus: é uma ferramenta de desenvolvimento de software baseada em conhecimento, orientada principalmente para aplicações corporativas, para web, plataformas Windows (GUI) e Plataformas móveis. O desenvolvedor especifica suas aplicações em alto nível (majoritariamente de forma declarativa), a partir do qual se gera código para múltiplos ambientes. GeneXus inclui um módulo de normalização, que cria e mantém uma estrutura de banco de dados (SGBD) ótima, baseada no modelo de dados não normalizado definido pelo usuário, uma linguagem declarativa (baseada em regras) e uma linguagem procedural simples e poderosa.

uniPaaS: O uniPaaS é uma poderosa plataforma que simplifica e acelera o processo de construção e implantação de aplicações corporativas. uniPaaS pode ser utilizada para compilar e deploy aplicações completas, cliente, mobile, Software-as-a-Service (SaaS), nuvem, desktop e rich internet applications (RIA).

iBOLT: é um pacote de integração corporativa e de processo que é projetada para integrar diversas aplicações e prover uma visão sincronizada e em tempo real dos dados de uma empresa.

ERWin: O CA ERwin Data Modeler, antigamente designado por AllFusion ERwin Data Modeler e normalmente referido apenas por ERwin (ou “É Ruim”) é uma ferramenta de software utilizada para a modelação de sistemas de informação. Pertence ao conjunto de programas de apoio ao desenvolvimento de software normalmente designados por Ferramentas CASE. Através desta ferramenta, o desenvolvedor de um sistema de informação pode especificar os dados envolvidos, as suas relações e os requisitos de análise. A ferramenta permite depois a criação da bases de dados e dos mecanismos de sincronização de dados necessários, bem como o processo inverso ([Engenharia reversa]).

MPE-AP – Técnico Ministerial – 2012 – FCC

Em relação às funcionalidades oferecidas por ferramentas CASE (Computer-Aided Software Engineering), é possível dizer que são utilizadas para a

 

I. uniformização do processo de desenvolvimento e das atividades realizadas.

 

II. reutilização de vários artefatos ao longo dos projetos, permitindo o aumento da produtividade.

 

III. automação de atividades, destacando-se a geração de código e de documentação.

 

IV. modelagem de processos de negócio.

 

Está correto o que consta em

 

a) I, II, III e IV.

b) I, II e IV, apenas.

c) III e IV, apenas.

d) II, III e IV, apenas.

e) I, II e III, apenas.

RESPOSTA: A

MPE-PE – Técnico Ministerial – 2012 – FCC

Uma primeira classificação das ferramentas CASE pode ser efetuada com base nas fases do processo de desenvolvimento às quais as ferramentas se aplicam. As ferramentas Upper-Case são aplicações

 

a) que se especializaram no suporte ao trabalho em equipe, e implementam funcionalidades de gestão de versões (como CVS, Subversion, etc.).

 

b) utilizadas na fase de implementação (ferramentas de desenho técnico, de edição e compilação de código e de testes).

 

c) que compreendem apenas ferramentas para a definição de regras de testes e a geração de scripts para posterior execução de testes.

 

d) que se especializaram na fase de concepção do software (ferramentas de análise e especificação e/ou modelagem de requisitos).

 

e) cuja principal funcionalidade se destina a facilitar as tarefas de gestão e coordenação dos projetos, como o planejamento e estimativa de tempos, custos e recursos.

RESPOSTA: D

TRE-AP – Técnico Judiciário – 2011 – FCC

No processo de adoção de ferramentas CASE é INCORRETO afirmar que ele deve

 

a) prover um nível apropriado de suporte tecnológico para os processos de desenvolvimento e manutenção de software.

 

b) solucionar problemas no processo de desenvolvimento de software.

 

c) impactar positivamente sobre produtividade, qualidade, padronização e documentação.

 

d) considerar as ferramentas com as quais a nova ferramenta pode ser integrada.

 

e) considerar a adequação necessária para a ferramenta de modo a satisfazer as convenções e procedimentos da organização.

RESPOSTA: B

Ferramentas CASE auxiliam, não solucionam!

No início, pensava-se que as ferramentas CASE não demorariam a substituir todo ou pelo menos grande parte do trabalho humano, reduzindo imensamente os custos de produção de software. Porém, grande parte do desenvolvimento de software não é um processo rígido, mas sim um processo criativo, totalmente dependente da inteligência humana. Infelizmente, a inteligência artificial não conseguiu alcançar esse nível.

É exatamente o que pensa Sommerville ao afirmar que os “sistemas CASE existentes automatizam as atividades rotineiras, mas as tentativas de aproveitar a tecnologia de inteligência artificial para apoiar o projeto não foram bem-sucedidas.” E esse é um dos motivos que limita o uso das ferramentas CASE.

Conforme destacado, as ferramentas CASE são utilizadas para automatizar atividades rotineiras. Entre elas, podemos citar:

 – o desenvolvimento de diagramas para especificar o sistema;

 – a criação de protótipos para auxiliar o processo de elicitação e análise de requisitos;

 – a programação do sistema propriamente dita, onde o sistema é codificado através do uso de uma linguagem de programação.

Analisando a questão, a única alternativa incorreta é a letra b, pois a solução de problemas de desenvolvimento de software depende diretamente do esforço humano, não sendo isso competência das ferramentas CASE.

TRE-RS – Técnico Judiciário – 2010 – FCC

NÃO constitui uma vantagem do uso de ferramentas CASE:

 

a) Agilizar o tempo para tomada de decisão.

b) Menor quantidade de códigos de programação.

c) Melhoria e redução de custos na manutenção.

d) Treinamento para utilização.

e) Ganho de produtividade.

RESPOSTA: D

Apesar do código ser maior, este é feito de forma automatizada. Então, para o usuário realmente a uma menor quantidade de códigos de programação.

Treinamento para a utilização não é uma vantagem, mas um ônus.

DPE-SP – Agente da Defensoria – 2010 – FCC

No contexto de ferramentas CASE, considere:

 

I. A refatoração é o processo de modificar um sistema de software para melhorar a estrutura interna do código sem alterar seu comportamento externo.

 

II. Tecnologia CASE pode ser tão simples quanto uma ferramenta singular que suporte uma atividade específica do processo, ou tão complexa quanto um ambiente que inclui ferramentas, pessoas, hardware, rede, sistemas operacionais, padrões, etc.

 

III. A técnica é projetada para ser usada diretamente com as linguagens de quarta geração ou geradores de código, de forma que é evitada, na maioria das vezes, a lenta codificação manual em linguagem de geração anterior.

 

IV. Front End ou Lower CASE são ferramentas que apóiam as etapas de codificação, testes e manutenção da aplicação.

 

É correto o que se afirma APENAS em:

 

a) I e II.

b) II, III e IV.

c) I, II e III.

d) II e III.

e) III e IV.

RESPOSTA: C

TRE-AM – Técnico Judiciário – 2010 – FCC

Ferramentas CASE é uma classificação que abrange todas ferramentas baseada em computadores que auxiliam atividades de engenharia de software, desde análise de requisitos e modelagem até programação e testes. Nesse contexto, é correto afirmar que

 

a) a maior quantidade de códigos de programação é compensada pela melhoria e redução de custos na manutenção.

 

b) as ferramentas de codificação são classificadas na categoria Upper Case.

 

c) as ferramentas de análise, projeto e implementação estão classificadas na categoria Integrated Case.

 

d) geralmente dispensam capacitação especifica dos recursos da empresa.

 

e) um dos componentes indispensáveis de uma ferramenta CASE é a modelagem visual, ou seja, a possibilidade de representar, através de modelos gráficos, o que está sendo definido.

RESPOSTA: E

MEC – Arquiteto de Software – 2009 – FGV

As ferramentas CASE (Computer Aided Software Engineering) automatizam tarefas que compõem o processo de desenvolvimento de software.

 

A respeito das ferramentas CASE, analise as afirmativas a seguir.

 

I. Um dos componentes indispensáveis de uma ferramenta

CASE é a modelagem visual.

 

II. As ferramentas se dividem em três categorias: Lower, Upper e Integrated.

 

III. Entre as vantagens da utilização das ferramentas CASE, tem-se produtividade, compatibilidade de ferramentas e menor quantidade de códigos de programação.

 

Assinale:

 

(A) se somente a afirmativa I estiver correta.

(B) se somente as afirmativas I e II estiverem corretas.

(C) se somente as afirmativas I e III estiverem corretas.

(D) se somente as afirmativas II e III estiverem corretas.

(E) se todas as afirmativas estiverem corretas.

RESPOSTA: A (Mudada por recurso, resposta original era B)

A alternativa I está incorreta, o JUnit, e phpDoc são ferramentas que automatizam etapas da engenharia de software. Porém encontrei este texto de onde se basearam para elaborar a questão, como ninguém entrou com recurso a afirmação permaneceu como correta:  “Um dos componentes indispensáveis de uma ferramenta CASE é a modelagem visual, ou seja, a possibilidade de representar, através de modelos gráficos, o que está sendo definido. No nosso caso, análise orientada a objetos através da UML.” – Modelagem Visual com Rational Rose 2000 e UML de Terry Quatrani.

O único motivo para que a alternativa II tenha sido considerada incorreta, é o fato do nome incompleto das categorias. Talvez tenha sido anulada por recurso. O nome das categorias não são Lower, Upper e Integrated. São Lower Case, Upper Case, e Integrated Case. Porém, algumas pessoas acham que esta questão está incorreta, pois oficialmente não há categorização (Segundo o pessoal da TIMaster), eu discordo. O pessoal que elabora as questões não tem conhecimento do assunto, eles não iam inventar este termo, o texto que eles leram para elaborar a questão tinha estas categorizações, mas provavelmente eles copiaram o nome incompleto e a alternativa foi modificada posteriormente devido a recurso.

A terceira alternativa está incorreta pois “Incompatibilidade de ferramentas” é uma das desvantagens das Ferramentas Case.

TJ-PA – Analista Judiciário – 2009 – FCC

Considere:

 

I. Desenvolvimento dos modelos gráficos de um sistema.

 

II. Compreensão de um projeto por intermédio do uso de um dicionário de dados.

 

III. Debugging do programa por meio do fornecimento de informações sobre um programa em execução.

 

Exemplifica atividade que pode ser automatizada com o uso de CASE, o que consta em

 

a) I, apenas.

b) II, apenas.

c) I e II, apenas.

d) III, apenas.

e) I, II e III.

RESPOSTA: E

Lembrando de ferramentas CASE Incluem:

·         Editores de diagramas

·         Dicionário de dados

·         Compiladores

·         Debuggers

·         Ferramentas de construção de sistemas

TCE-AL – Analista de Sistemas – 2008 – FCC

Um gerente de projetos solicita a imediata aquisição de ferramentas de apoio ao processo de software do tipo UPPER CASE. Com tal decisão, entre outros objetivos, ele busca

 

a) “abrir” o código executável para engenharia reversa.

b) controlar as alterações nos programas no nível de linha de código.

c) implementar o debug de programa.

d) apoiar a elaboração do código fonte.

e) apoiar a elaboração do projeto.

RESPOSTA: E

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Sair da versão mobile