Buscar

aula06

Prévia do material em texto

6ºAula
Ferramentas Case
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de: 
entender o conceito CASE e sua importância no desenvolvimento dos sistemas;
conhecer os tipos de ferramentas e o que cada uma delas executa;
decidir qual o tipo de ferramenta é mais adequada para cada necessidade de projeto.
Prezados(as) alunos(as),
Nesta aula, vamos conhecer as ferramentas que auxiliam 
os profissionais de informática nas etapas de análise e projeto 
do sistema de informação.
Bom Trabalho!
Bons estudos!
95
Análise de Sistemas I 40
Seções de estudo
1 - O conceito CASE
1 – O conceito CASE
2 – Tipos de ferramentas
Segundo Pressman (2006), 
[...] a engenharia de software abrange um 
conjunto de três elementos fundamentais - 
métodos, ferramentas e procedimentos – que 
possibilita ao gerente o controle do processo 
de desenvolvimento do software e oferece ao 
software de alta qualidade e produtivamente.
Existem ferramentas de engenharia de software que 
oferecem automatizam todo o processo de criação do software, 
e outras que oferecem apoio apenas em algumas fases. São 
as chamadas Ferramentas CASE (Computer-Aided Software 
Engineering).
Engenharia de Sistemas Auxiliada por Computador 
(CASE) é o conceito para o qual sistemas de software possam 
ser planejados da mesma forma que sistemas de hardware. 
CASE também é conhecido como Engenharia de Sistemas 
Assistida por Computador. 
O termo CASE foi criado no começo dos anos oitenta, 
quando a ideia 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.
Esse conceito surgiu com a programação estruturada, 
para a qual uma rigorosa disciplina é aplicada ao projeto de 
um simples programa que, então, é desenvolvido para uma 
forma estruturada, visando a todo ciclo de vida do software 
e ao desenvolvimento do sistema. Essa forma estruturada 
requer planejamento e consideração das interações e 
dependências do conjunto de aplicações em software como 
um todo, antes do desenvolvimento de partes mais discretas. 
As complicações de se estudar todas as interações e 
dependências levam ao desenvolvimento de ferramentas 
automatizadas que permitem aos desenvolvedores o 
gerenciamento e o uso das informações.
O mundo do processamento dos dados está em um 
estado contínuo de rápida evolução das capacidades de 
software e hardware. Muitas das ferramentas disponíveis hoje 
no mercado são projetadas para trabalhar com Bancos de 
Dados Relacionais, Distribuídos ou em Redes e linguagens 
de quarta geração. Contudo, existe um forte movimento em 
direção à implementação de ambientes orientados a objetos 
junto a ferramentas apropriadas, e essas ferramentas estão se 
expandindo rapidamente. Um exemplo delas é a ferramenta 
Rational Rose, mostrada na tela da figura 6.1.
Figura 6.1 – Tela da ferramenta CASE Rational Rose
Fonte: <http://vva.msco.mil/Ref_Docs/VVTools/vvtools.htm>.
96
41
2 - Tipos de ferramentas
Ferramentas CASE têm sido desenvolvidas para dar 
suporte a todos os estágios do ciclo de vida de um sistema de 
processamento de dados automatizado, desde a determinação 
dos requisitos iniciais até a manutenção dos sistemas 
operacionais para reengenharia de sistemas antigos. Muitas 
ferramentas podem ser usadas para múltiplos estágios do 
ciclo de vida. Mesmo que as ferramentas que abrangem todo 
o ciclo de vida sejam poucas, estas compreendem desde a 
análise inicial e projeto até a geração de código e reengenharia. 
As ferramentas fornecidas tipicamente têm uso em mais 
de uma fase do ciclo de vida. Um diagrama estruturado pode 
ser utilizado para determinar requisitos de dados iniciais ou 
para modelar requisitos para adições e revisões de um sistema 
existente. Um gerador de código pode ser utilizado para o 
desenvolvimento inicial do sistema ou para produzir módulos 
adicionais. Pacotes de software que contêm módulos para todas 
as fases da engenharia do sistema são chamados “Pacotes 
CASE Integrados”.
2.1
Modelos são descrições gráficas de informação e 
relacionamentos. Modelos Ambientais, algumas vezes, 
chamados diagramas de contexto, mostram o relacionamento 
de uma organização com o resto do mundo. Modelos 
Comportamentais mostram os relacionamentos entre partes 
da organização. Esses tipos de modelos são utilizados para 
capturar as preocupações Comportamentais de modo 
conciso e compreensivo visando a auxiliar no planejamento 
de atividades do sistema de informação.
2.2 - Ferramentas de Análise
Métodos analíticos automatizados têm sido desenvolvidos 
para uso no projeto de sistemas de software. Esses métodos 
podem ser utilizados para projetar novos sistemas e para 
análise de sistemas existentes, a fim de determinar requisitos 
para melhoramentos. Cada método, geralmente, possui 
suas próprias convenções para representações gráficas da 
informação e alguma diferenciação para análise dos dados. 
Vários métodos comerciais estão disponíveis; existem 
também métodos proprietários únicos desenvolvidos por 
algumas companhias. Modelos e Diagramas Estruturados são 
ferramentas comuns de análise. 
As diferenças e a notação em ambas as ferramentas de 
análise de dados devem ser observadas, quando comparamos 
informações ou diagramas preparados com diferentes 
pacotes. Um ponto crítico é que ferramentas CASE possuem 
diferentes níveis de verificação cruzada e execução de leis de 
integridade. Algumas ferramentas checam automaticamente a 
consistência de definições de dados em diferentes modelos e 
diagramas e também conferem a partir dos níveis mais altos 
aos níveis mais baixos dos diagramas. Outras possuem pouca 
checagem ou até mesmo nenhuma.
2.2.1 - Modelos
Os modelos ambientais e Comportamentais usados 
ao planejar atividades nos sistemas de informação também 
são úteis na fase de análise. Há ainda modelos exclusivos 
para essa fase de análise. Alguns mostram como itens de 
dados se relacionam num modelo lógico, ou como eles são 
implementados no banco de dados através de um modelo 
físico. Outros tentam representar o mundo real em um 
modelo de sistema. Alguns empregam métodos orientados a 
objetos.
Diagramas estruturados são descrições gráficas que 
enfocam os dados em vários aspectos. Três dos mais comuns 
são:
) são métodos 
de modelar o movimento dos dados de processo para processo. 
Um processo é uma atividade, automatizada ou não, que causa 
alguma mudança em um elemento de dados. Armazenamento 
de dados quando não está no processo ou se movendo através 
de processos também é relevante. Os processos são amplos 
no primeiro modelo como também os elementos de dados. 
Decomposições interativas dos processos e fluxos de dados 
eventualmente resultam em elementos de dados atômicos, os 
quais podem ser definidos e usados para encher o dicionário 
de dados. 
 são 
métodos de descrição de dados estáticos, unidades definidas 
que possuem qualidades distintas chamadas atributos e 
relacionamentos com outros itens de dados. A união de 
elementos de dados explicitamente definidos através de 
seus relacionamentos, como “parte de”, ou “composto de”, 
pode direcionar a precisas definições de elementos de dados. 
Essas definições, juntamente com os atributos, podem levar 
ao conteúdo do dicionário de dados com os valores dos 
elementos, bem como os relacionamentos, que permitem 
definições de grupos locais e chaves. Um método para o 
DER é o de , o principal desenvolvedor da análise 
DER. O CASE da Oracle e muitas outras ferramentas também 
oferecem análise DER. 
 são 
métodos de descrição de uma sequência de mudanças nos 
dados e os respectivos eventos que provocam tais mudanças. 
Esses modelos mostram estímulos (ou entradas) causando 
ação e resultando em uma resposta (saídas). Eles são 
importantes para modelar sistemas de tempo real, em que a 
sequência de eventos e o estado dos sistemas em determinado 
ponto são críticos. 
2.3 - Ferramentas de 
Desenvolvimento
As ferramentasdescritas neste tópico são capazes de 
variar níveis da criação de aplicações na base de dados e 
desenvolver definições identificadas na fase de análise. Elas 
podem fazer uso de interface gráfica (GUI – Graphic Interface 
Unit), linha de comando e tem as seguintes características:
processos em uma linguagem;
97
Análise de Sistemas I 42
e relacionamentos;
dicionários de dados. 
2.3.1 - Mudança nas Ferramentas 
de Gerência
Os gerentes de sistemas automatizados necessitam 
de ferramentas que facilitem a gerência e o controle nas 
modificações de hardware e software. Os sistemas desenvolvidos 
para computadores pessoais, para uso em rede local e em 
ambiente distribuído podem conduzir para o caos sem uma 
modificação rigorosa na gerência. 
Se as operações computacionais são operações de 
contrato, então, a questão de aprovação da gerência e 
agendamento da instalação das mudanças são críticas. Alguns 
pacotes CASE incluem ferramentas para gerenciar essas 
mudanças, particularmente quando o pacote inclui também 
ferramentas que geram código para aplicações. Mas, os 
pacotes CASE que visam à análise podem ter limitadas a sua 
capacidade de gerência.
Os planos de aquisição podem incluir configuração 
de gerenciamento pelos contratantes durante a fase de 
desenvolvimento. Os sistemas devem incluir ferramentas 
que facilitem o gerenciamento e o controle das mudanças no 
hardware e no software. Em grandes computadores (mainframes), 
o volume e a variedade nas mudanças de sistemas operacionais, 
assim como a atualização de hardware e de aplicações de 
software, podem rapidamente se tornar gerenciáveis.
As ferramentas de controle de mudanças podem ser 
adquiridas com diversos níveis de capacidade de adaptar 
diferentes ambientes. Os usuários que desenvolvem novos 
sistemas, envolvendo a segurança de humanos, por exemplo, 
irão requerer a mais rigorosa configuração de gerenciamento. 
Os usuários que modificam sistemas antigos devem ser 
mais interessados nas capacidades de comparação de código 
e associação de mudanças por outros módulos. Algumas 
funções que devem gerenciar seus dados prudentemente 
precisam ser capazes de:
marcos como a data em que o teste de mudança irá começar, 
a janela de teste, a data em que a instalação da mudança irá 
ser completada e a data em que as mudanças poderão ser 
retiradas, se falhar em modo de produção; 
gerenciamento requerido para cada item configurado; 
módulos de hardware e software afetados; 
originou, aprovações, testes, implementações e resultados; 
pelo parâmetro que as originou; 
log de mudanças feitas;
de origem para módulos executáveis;
origem para identificar mudanças. 
2.3.2 - Ferramentas de geração de 
código
Segundo Moreira e Mrack (2003), um gerador de código 
é uma ferramenta de auxílio ao processo de desenvolvimento 
de sistemas que atua na fase de implementação do projeto, 
gerando o código-fonte que seria criado pelo programador. 
De forma geral, esses geradores criam o código-fonte com 
base nas informações existentes no modelo de dados. Isso 
significa que os ganhos obtidos ficam restritos à interface de 
cadastro, listagens de registros ou telas de baixa complexidade 
(MOREIRA; MRACK, 2003).
Conforme citado em UFMG (2013), a geração de códigos 
é uma técnica de construir códigos utilizando programas, 
desde programas simples até programas complexos, que 
transformam modelos lógicos em aplicações completas 
(UFMG, 2013).
A geração automática de código tem sido uma 
técnica já bastante amadurecida nos últimos 
anos. Vários trabalhos foram desenvolvidos 
no sentido de produzir-se código de forma 
com um ganho de produtividade por parte 
do programador, que cada vez menos se vê 
obrigado a produzir código repetitivo e a 
desempenhar tarefas de reestruturação de 
forma quase mecânica (SANTOS, 2003).
Apesar de o código produzido ser correto, algumas 
características indesejáveis são geralmente encontradas nesse 
tipo de ferramenta:
um único sentido. Assim, uma vez que o modelo de dados é 
modificado, a geração deve ser reexecutada.
programador, essas alterações são perdidas e devem ser 
refeitas.
código produzido geralmente não está de acordo com o 
padrão de codificação da equipe de desenvolvimento.
consideração questões de desempenho, otimização, estrutura, 
integração com outros sistemas ou documentação.
1. Geradores Ativos: Geram códigos que não são 
modificados ou são modificados em locais especiais que 
são preservados quando o código é recriado. São rodados 
múltiplas vezes no mesmo código de saída conforme o 
desenho de entrada ou o gerador muda.
2. Geradores Passivos: Geram códigos uma vez, que 
podem ser modificados pelo desenvolvedor, apresentando 
um maior aumento de produtividade inicial.
2.4
Reengenharia é o conceito de ter aplicações já existentes 
e analisar sua lógica, seus processos e a manipulação de dados 
para criar novas aplicações que fazem o mesmo trabalho de 
forma mais eficiente. A ferramenta de reengenharia pode ser 
98
43
usada para analisar código de aplicações existentes procurando 
por trechos não utilizados, gargalos e erro lógico tal que o 
código possa ser modificado e reusado.
Engenharia reversa é o termo usado para descrever o 
uso de ferramentas que destroem os esquemas de banco de 
dados ou o código de aplicações em elementos lógicos para 
análise e conversão para outro esquema de banco de dados 
ou outra linguagem e que produzem novas documentações. 
Quando a engenharia reversa é citada como uma capacidade 
da ferramenta CASE, ela deve especificar um ambiente 
particular no qual é efetivo e o nível de automação que pode 
ser razoavelmente esperado.
Reengenharia e engenharia reversa são novos conceitos 
com pouca história disponível sobre as ferramentas que 
possuem essas capacidades. O principal destino para as 
ferramentas de reengenharia são as aplicações grandes que 
tem documentação inadequada e que não se aproximam 
facilmente do método analítico.
Engenharia reversa de programas existentes tem um 
amplo espaço futuro para desenvolvimento. Em muitas 
empresas de desenvolvimento, existe um grande problema 
em administrar a enorme quantidade de linhas de código 
dos sistemas que precisam sofrer manutenções periódicas, 
nelas não existem ferramentas de tecnologia pra administrar 
esse trabalho. Como vimos na Aula 5, mais de 60% do 
tempo das suas atividades de software é gasto na manutenção 
ou modificação dos sistemas existentes. Portanto, essas 
ferramentas podem ajudar, e muito, nessa fase de manutenção, 
quando precisarmos recriar um projeto de um sistema que 
não havia sido documentado nas suas fases iniciais. 
2.5 - Ferramentas de Gerência de 
Dados
Existem três níveis nos quais os dados podem ser 
gerenciados e que afetam a escolha da ferramenta apropriada. 
O primeiro nível é de trabalho do administrador de banco 
de dados (DBA – Data Base Administrator), que é responsável 
pela coleção de dados, suas definições, acessibilidade, 
gerenciamento físico e de integridade. A ferramenta para 
esse nível é o dicionário de dados, que é parte do pacote 
de gerenciamento de banco de dados pelo qual o DBA é 
responsável.
O segundo nível é o organizacional. Este, é o nível do 
administrador de dados (DA – Data Administrator) o qual é 
responsável pelos dados e por sua inteira organização. O DA 
é encarregado de ter uma visão das definições dos dados, 
acessibilidade, integridade e pode usar um dicionário de dados 
de plena organização que inclui informação de dicionário de 
dados individuais na organização.
O terceiro e mais abrangente nível é chamado de nível 
de repositório. Um 
repositório é um nível 
do Chief Information 
Officer (CIO) que deve 
ser responsável não apenas pela administração dos dados, 
mas também do negócio organizacional e do modelo de 
informação, do inventário das fontes de informação e de 
outras áreas declaradas como sendo parte do grupo de 
informações da organização da empresa. O repositório pode 
ser usado para gerenciar não apenas os dados, mastambém o 
ciclo de vida das atividades de desenvolvimento para os dados 
e aplicações, nos quais o repositório assegura descrições.
2.6 - Vantagens e desvantagens das 
ferramentas CASE
As Ferramentas CASE oferecem uma gama de vantagens 
que justificam a sua adoção por desenvolvedores de sistemas. 
Entre elas estão:
probabilidade de erros em todo o ciclo de produção do software, 
pois utilizam técnicas e metodologias específicas, gerando 
códigos previamente testados e aprovados, atualizando 
documentação, evitando duplicidade de dados, efetuando 
rotinas com precisão etc.
ao processo de desenvolvimento de software, uma vez que 
poupam trabalho braçal de codificação e reduzem o tempo 
gasto na fase de testes, pela falta ou inexpressividade dos erros. 
Por isso, a adoção de uma Ferramenta CASE não se justifica 
apenas pelo aumento da produtividade de novos softwares, mas 
também pela suavização do processo de manutenção.
complexidade dos sistemas a serem desenvolvidos, exige a 
necessidade de constante aprimoramento e sofisticação das 
metodologias, e como as Ferramentas CASE as utilizam 
como base, contribuem também para a popularização, melhor 
utilização e aprimoramento das mesmas.
de desenvolvimento são forçados a “falar a mesma língua”, ou 
seja, usar a mesma metodologia, o que possibilita uma maior 
interação e padronização do grupo.
e facilitam a manutenção de programas já existentes, 
principalmente através do uso da Engenharia Reversa e da 
constante atualização da documentação.
no tempo gasto para desenvolvimento dos softwares, com um 
maior controle de qualidade, aumentando satisfatoriamente a 
produtividade.
cumprimento do cronograma e maior qualidade do sistema 
apresentado, resultando na satisfação do cliente.
As desvantagens devem também ser citadas para avaliar a 
adoção ou não de Ferramentas CASE. Por isso, abaixo foram 
relacionadas algumas dessas desvantagens.
desenvolvedores normalmente desconhecem as metodologias 
de desenvolvimento e suas vantagens, e como para se usar 
uma Ferramenta CASE se faz necessário tal conhecimento, a 
empresa que não possui uma metodologia de desenvolvimento 
de software implantada, terá que dispor de tempo e recursos 
para treinamento em um método e na utilização da ferramenta. 
Devido a esse quadro, o crescimento dessa tecnologia é muito 
lento.
título de cargo dado ao responsável pela 
Tecnologia de Informação da empresa.
99
Análise de Sistemas I 44
A empresa terá que dispor de fundos para treinamento 
da equipe de desenvolvimento, tanto no que diz respeito à 
metodologia adotada pela ferramenta, como na utilização da 
própria ferramenta, para que todos possam tirar o máximo 
proveito de ambas.
utilizam um único método, pode ocorrer que não seja a adotada 
pela empresa, ou também, que o método da ferramenta não 
seja a melhor solução para o problema. Por isso, justifica-se 
a necessidade da escolha da Ferramenta CASE de acordo 
com o método já adotado - ou pelo menos conhecido - 
pelos desenvolvedores, evitando, assim, decepções com a 
ferramenta e desperdício de tempo com treinamentos.
CASE de primeira linha não possuem um preço muito 
acessível, deixando, assim, algumas empresas desestimuladas 
em sua adoção.
Retomando a aula
1 – O conceito CASE
As ferramentas CASE, que do Inglês significa Engenharia 
de Software Auxiliada por Computador, são usadas para 
automatizar o processo de desenvolvimento dos sistemas.
A utilização das ferramentas CASE é de extrema 
importância na geração da documentação dos sistemas, de 
forma padronizada e organizada, facilitando também na 
manutenção dos projetos dos sistemas, pois as alterações 
e correções podem ser todas feitas e acompanhadas no 
dicionário de dados gerados pelas ferramentas.
Existem diversas ferramentas disponíveis no mercado, 
algumas delas atendem várias fases do desenvolvimento dos 
sistemas, outras atendem fases específicas. As ferramentas 
podem ser classificadas por tipos: ferramentas de planejamento, 
ferramentas de análise, ferramentas de desenvolvimento, 
ferramentas de reengenharia e ferramentas de gerência de 
dados. Cada um desses tipos atende a determinadas etapas do 
processo de desenvolvimento.
PRESSMAN, Roger. Engenharia de Software. São Paulo-
SP: Makron Books, 2006. 
MOREIRA, Diego; MRACK, Marcelo. Sistemas 
dinâmicos baseados em metamodelos. Universidade de Santa Cruz 
do Sul, 2003.
SANTOS, Gustavo Alexandre dos. Geração automática de 
código a partir de casos de uso. UFPE, 2003.
Vale a pena ler
Vale a pena
________. Noções de ferramenta CASE. Disponível 
por www em: <http://nocoesengsw.blogspot.com.
br/2010/03/ferramentas-case.html>. Acesso em 
02/11/2013.
ALTO, Hélio Monte. Ferramentas CASE: análise e 
projeto de software. Disponível por www em: <http://
pt.slideshare.net/helioh6/ferramentas-case-fase-de-
anlise>. Acesso em 10/11/2013.
UFMG. Ambientes de desenvolvimento de software 
(ADS) & Ferramentas Case: importância e aplicações. 
Disponível por www em: <http://www.bibliotecadigital.
ufmg.br/dspace/handle/1843/BUOS-94MPEV>. Acesso 
em 08/11/2013.
Vale a pena acessar
Minhas 
100

Continue navegando