























Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
O desenvolvimento de uma ferramenta case (computer aided software engineering) para verificação de consistência de estruturas de bases de dados oracle. O trabalho aborda a história e benefícios de ferramentas case, a implementação de um protótipo para verificação de estruturas de bases de dados oracle, e as conclusões do estudo. O documento também apresenta uma visão geral dos diferentes tipos de ferramentas case existentes.
O que você vai aprender
Tipologia: Manuais, Projetos, Pesquisas
1 / 31
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Itatiba – São Paulo – Brasil
Novembro de 2004
ii
Prof Ms. José Aparecido Carrilho
USF – Universidade São Francisco – Itatiba – SP.
iv
Prof Ms. José Aparecido Carrilho
USF – Universidade São Francisco – Itatiba – SP.
Prof Ms. Alencar de Melo Junior
USF – Universidade São Francisco – Itatiba – SP.
Prof Ms. Thales Coelho Borges Lima
USF – Universidade São Francisco – Itatiba – SP.
v
Agradeço primeiramente ao Professor José Aparecido Carrilho, meu orientador, que acreditou
em mim e incentivou-me para a conclusão deste trabalho, face aos inúmeros percalços do
trajeto.
Agradeço também ao Professor Alencar de Melo Júnior, um companheiro de percurso e de
discussões profícuas, dentro e fora do contexto deste trabalho, agraciando-me incontáveis
vezes com sua paciência, conhecimento e amizade.
Alguns experimentos e vários “entendimentos” não teriam sido possíveis sem a colaboração
de Fernando Davanço, Fábio Nascimbeni Lopes e Gladston José de Oliveira.
Eu agradeço fraternalmente a todos.
vii
CASE Computer Aided Software Engineering
ADS Ambiente de Desenvolvimento de Software
DFD Diagrama de Fluxo de Dados
E-R Entidade – Relacionamento
I-CASE Integrated Computer Aided Software Engineering
SCM Software Configuration Management
PRO Prototipação
SIM Simulação
viii
Figura 2- 1 – Blocos Construtivos de CASE............................................................................ 4
Figura 2- 2 – Classificação de Ferramentas CASE................................................................. 6
Figura 2- 3 – Exemplos de Arquitetura de Ferramentas CASE.......................................... 10
Figura 3 - 1 – Telas dos aplicativos SQL Explorer e SQL Monitor atuando
concorrentemente.................................................................................................................... 12
Figura 3- 2 – Tela do Gerador de arquivos binários ............................................................ 13
Figura 3- 3 – Tela principal do “DBComparer” ................................................................... 14
Figura 3- 4 – Mensagem exibida após o término da verificação ......................................... 14
Figura 3- 5 – Tela principal do “DBComparer” com o Log de resultado .......................... 15
x
O objetivo deste trabalho é a implementação de um protótipo de Ferramenta CASE ( Computer
Aided Software Engineering ) direcionada a utilização de usuários finais, para a realização da árdua
tarefa de verificar a consistência da estrutura de base de dados Oracle, aproveitando para embasar a
realização de um estudo sobre os diversos tipos de Ferramentas CASE existentes atualmente no
mercado. Para isto a mesma foi dividida em duas partes. A primeira parte constitui um estudo sobre
Ferramentas CASE, na qual estão descritos não apenas os diversos tipos de Ferramentas existentes,
mas inclusive fatores como: definição, ambientes CASE, vantagens e desvantagens em sua utilização e
arquitetura. Esta parte terá a função de demonstrar a deficiência de Ferramentas CASE para usuários
finais existente no mercado atual. A segunda parte envolve a familiarização com a linguagem de
programação escolhida (Delphi 5) e com os aplicativos SQL Explorer e SQL Monitor, além da
realização de um estudo na arquitetura no banco de dados Oracle para a definição de uma forma de se
obter os dados referentes às estruturas das base de dados Oracle.
PALAVRAS-CHAVE: CASE, FERRAMENTA, BASE DE DADOS
The objective of this work is the implementation an archetype of CASE Toll ( Computer Aided
Software Engineering ) directed the use final users, for the accomplishment of the arduous task to
verify the consistency the structure database Oracle, using to advantage to base the accomplishment of
a study on the diverse types of CASE Tools currently existing in the market. For this the same one was
divided in two parts. The first part constitutes a study on CASE Tools, in which is described not only
the diverse types of existing Tools, but also factors as: definition, CASE environments, advantages
and disadvantages in its use and architecture. This part will have the function to demonstrate the
deficiency of CASE Tools for final users existing in the current market. The second part involves the
familiarization with the chosen programming language (Delphi 5) and with applicatory SQL Explorer
and SQL Monitor, beyond the accomplishment of a study in the architecture in the database Oracle for
the definition a form if getting the referring data to the structures the database Oracle.
KEY WORDS: CASE, TOOL, DATABASE
1
Desde 1955, engenheiros mecânicos e elétricos trabalhavam com ferramentas manuais
rudimentares como: livros, tabelas, réguas de cálculos, calculadoras mecânicas, lápis,
pranchetas e outros objetos que possibilitavam que um engenheiro criasse modelos do produto
a ser projetado.
Uma década se passou e este mesmo grupo de engenheiros começou a experimentar a
engenharia baseada em computador, surgiam os montadores e compiladores. A partir daí, a
primeira geração de Engenharia de Software Auxiliada por Computador, ou seja, de
ferramentas conhecidas atualmente como Ferramentas CASE foi sendo desenvolvida,
surgiram os dicionários de dados (1960), os editores textuais (1970) e os editores gráficos
A segunda geração iniciou-se a partir de 1980, através de ferramentas para
documentação e diagramação, sendo seguida pelo surgimento de ferramentas de verificação
de análise e projeto, ferramentas de geração automática de código a partir do projeto e
ferramentas de automação do projeto. Apenas nos anos 90, com a terceira geração de
Ferramentas CASE, desenvolveram-se ferramentas com assistência inteligente, recurso para
reutilização e engenharia reversa.
Atualmente, os engenheiros de software dispõem de um número maior e mais variado
de ferramentas no mercado, que trazem benefícios ao processo de desenvolvimento de
produtos de software, a saber: encoraja um ambiente interativo, reduz custos de manutenção,
melhora a qualidade do produto de software, agiliza o processo de desenvolvimento, aumenta
a produtividade.
Toda ferramenta ou método que auxilie num processo de construção lógica ou física,
documentação ou teste pode ser considerada uma Ferramenta CASE.
A dissertação presente tem como foco o desenvolvimento de um protótipo de
Ferramenta CASE voltada a utilização de usuários finais, apresentado na seção sete, para a
verificação de estruturas de base de dados e a partir desta verificação detectar erros com maior
eficácia e eficiência. Aproveita-se também para realizar um estudo sobre os diversos tipos de
Ferramentas CASE encontradas atualmente no mercado, ressaltando a deficiência no mercado
de Ferramentas CASE para usuários finais.
3
Atualmente, a palavra ferramenta está muita associada à idéia de ferramenta de
software ou ferramenta automatizada, que é um software feito para auxiliar em alguma tarefa.
A Ferramenta CASE é a solução que mais tem causado revolução hoje em dia nos
ADS's ( Ambiente de Desenvolvimento de Software ), com ela é possível baixar em muito o
tempo total de desenvolvimento de software. Sua presença tornou-se vital para o bom
funcionamento de um ADS, auxiliando em todo o ciclo de desenvolvimento (Gerência,
Análise, Projeto, Implementação e Teste), além de exercer uma grande importância para a
manutenção do software.
Esta importância também pode estar associada ao apoio realizado pelas Ferramentas
CASE às metodologias e métodos que vão surgindo. Sem ferramentas, uma metodologia ou
método não terá boa aceitação no mercado, isto ocorreu com diagramas como o DFD
( Diagrama de Fluxo de Dados ) e o E-R ( Entidade – Relacionamento ), que só foram
amplamente utilizados quando surgiram as primeiras ferramentas para auxiliar na tarefa de
diagramação.
Em [YONEZAWA], o autor apresenta três tipos de ambientes CASE, a saber:
codificação, teste, depuração e manutenção do código do software;
tarefas de análise e de projetos de sistemas e são capazes de gerar código
automaticamente, a partir das especificações dadas;
CASE integradas, isto é, que se relacionam entre si (entradas e saídas) e que permitem
controlar a consistência dos dados quando uma metodologia é seguida. A idéia de
metodologia embutida no ambiente garante uma maior integração entre as
ferramentas, permitindo que as próprias ferramentas façam a verificação de
consistência dos dados gerados por elas.
4
Figura 2 - 1 – Blocos Construtivos de CASE.
Para [PRESSMAN95], a Figura 2-1 representa uma fundação abrangente para a
integração de Ferramentas CASE. No entanto, a maioria das Ferramentas CASE utilizadas
hoje não foi construída usando todos esses blocos construtivos. De fato, algumas Ferramentas
CASE permanecem como “soluções pontuais”. Isto é, uma ferramenta é usada para assistir
uma atividade específica de engenharia de software (por exemplo, modelagem de dados) mas
não se comunica indiretamente com outras ferramentas, não está ligada a uma base de dados
de projeto, não é parte de um I-CASE. Apesar dessa situação não ser ideal, uma Ferramenta
CASE pode ser usada bastante efetivamente, mesmo sendo uma solução pontual.
Ainda segundo [PRESSMAN95], dentre as vantagens na utilização das Ferramentas
CASE pode-se levar em consideração os seguintes itens, a saber:
probabilidade de erros, uma vez que podem ajudar no controle de consistência dos
dados em um ADS. Também proporcionam maior eficácia dos produtos, ao auxiliarem
as fases de Análise e Teste do produto pelo usuário;
as ferramentas contribuem para uma maior agilidade no desenvolvimento de software,
isto é, mais produtos em menos tempo;
tarefas cansativas para os desenvolvedores, tais como procurar informações e desenhar
símbolos de um diagrama, as quais são mais suscetíveis ao erro;
realizarem certas atividades pelas pessoas, estas ficam liberadas para outras tarefas,
Ferramentas CASE
Arcabouço de integração
Plataforma de hardware
Serviços de portabilidade
Sistema operacional
Arquitetura do ambiente
6
de um software, tais como suporte à documentação e gerenciamento de versões e
configurações;
software, tais como análise de requisitos e teste de software.
Figura 2 - 2 – Classificação de Ferramentas CASE.
Um outro tipo de taxonomia pode ser criado conforme o conjunto de serviços
principais que as Ferramentas CASE oferecem. Um serviço é uma ação efetuada pelo
computador que é de interesse do desenvolvedor [SCHEFSTRÖ E BROEK]. Uma proposta
de classificação é apresentada na tabela 2-1 [PRESSMAN92]. Através desta tabela podemos
observar o amplo espectro de Ferramentas CASE existentes, apesar de ser comum a referência
a Ferramentas CASE como ferramentas específicas para análise e projeto de software.
Tabela 2 - 1 – Classificação de Ferramentas CASE.
Atividades Exemplos de Ferramentas
Planejamento de Sistemas Gerenciais Foundation, Interactive Engineering
Workbench, Information Engineering
Facility;
Gerenciamento de Projetos SuperProject, Microsoft Project,
MacProject II, ESTIMATES;
Especificação de Requisitos CORE, RMS/PC, R-Trace;
Especificação Formal de Sistemas CADIZ, OBJ;
Documentação Interleaf, Page Maker (Aldus);
Comunicação Utilitários do Unix, Microsoft mail;
Controle de Qualidade Q/Auditor, Auditor;
Gerenciamento de Versões e Configurações SCCS do Unix, PVCS ;
Análise e Projeto de Software JSD, SADT, HOOD, PC Case, OMT;
Projeto e Desenvolvimento de Interfaces Interviews, Lucas Film;
Programação Turbo X’s, Anna.
7
Baseando-se agora em [PRESSMAN95], tem-se uma taxonomia de Ferramentas
CASE por função semelhante à descrita na tabela 2-1, a saber:
os requisitos de informação estratégica de uma organização, fornecem um
“metamodelo” a partir do qual são derivados sistemas de informação específicos. Em
vez de focalizar os requisitos de uma aplicação específica, a informação do negócio é
modelada à medida que se move entre as várias entidades organizacionais de uma
companhia. O objetivo principal das ferramentas dessa categoria é representar os
objetos de dados de negócio, seus relacionamentos e como esses objetos de dados
fluem entre as diferentes áreas de negócio, dentro de uma companhia;
Gerência de Projetos de Desenvolvimento de Software deve armazenar informações
sobre orçamento (custos e investimentos), cronogramas, atividades, recursos,
documentos e decisões. Deve oferecer recursos para que sejam feitos gráficos tais
como atividades X pessoal, atividades X recursos, pessoal X recursos ou deve ela
mesma gerar estes gráficos a partir de informações fornecidas pelo usuário. Quando
houver algum problema (por exemplo, atraso no cronograma ou gastos excedentes), a
ferramenta deve avisar o Gerente de Projeto e recalcular as conseqüências (o novo
prazo ou o aumento nos custos). Esta ferramenta também deve ser responsável pelo
armazenamento dos documentos do Projeto (tais como relatórios de
andamento/atividades, planos, atas de reuniões, etc). Outra tarefa importante é o
Controle de Versões, pois durante o desenvolvimento de software, são criadas várias
versões do sistema, sendo que cada versão é composta de versões de módulos. Então,
a ferramenta deve armazenar informações sobre quais módulos foram utilizados, onde
eles estão guardados, quem os fez e como eles foram integrados. Estas informações
serão importantes no caso de manutenção do sistema;
editoração eletrônica apóiam praticamente toda a engenharia de software. A maioria
das organizações de desenvolvimento de software gasta uma grande quantidade de
tempo desenvolvendo documentos e, em muitos casos, o processo de documentação
propriamente dito é bastante ineficiente. É comum uma organização de
desenvolvimento de software gastar 20% ou 30% de todo o esforço de
desenvolvimento de software em documentação. Por esta razão, as ferramentas de
documentação fornecem uma importante oportunidade para melhorar a produtividade;
9
engenheiro de software criar modelos do sistema a ser construído. Os modelos contêm
uma representação dos dados, funções e comportamento (em nível de análise) e
caracterizações do projeto de dados, arquitetural, em nível de componente e de
interface. Pela a realização de verificações de consistência e de variedades de modelos,
as ferramentas de análise e projeto fornecem aos engenheiros de software um certo
grau de discernimento na representação da análise e ajudam a eliminar erros, antes que
se propaguem para o projeto, ou pior, para a implementação propriamente dita;
projeto e implementação automática de interfaces. As mais simples geram a interface
(inclusive o código do programa) a partir de descrições feitas por um projetista. Outras
permitem a criação interativa da interface através de facilidades tais como: escolher
um elemento de interface (menu, botão, barras, etc), posicioná-lo na tela, associar a ele
uma rotina a ser chamada, alterar suas propriedades (cor, título, etc). As novas
linguagens de programação (por exemplo, Visual-Basic, Delphi e Borland C++) já
trazem embutidas estas tais ferramentas, imprescindíveis para um ambiente de
programação. Entretanto, estas ferramentas ainda devem ser aperfeiçoadas para
permitir a criação de interfaces avançadas, por exemplo, que utilizam recursos de
multimídia (sons, imagens estáticas e vídeos);
de software, a engenharia de qualidade de software define as seguintes categorias de
ferramentas de testes:
10.1 Aquisição de dados – ferramentas que adquirem dados a serem usados
durante o teste;
10.2 Medição estática – ferramentas que analisam o código-fonte sem executar
casos de teste;
10.3 Medição dinâmica – ferramentas que analisam o código-fonte durante a
execução;
10.4 Simulação – ferramentas que simulam funções de hardware e outros
dispositivos externos;
10.5 Gestão de testes – ferramentas que assistem o planejamento,
desenvolvimento e controle de testes;
10.6 Ferramentas de cruzamento funcional – ferramentas que cruzam as
fronteiras das categorias precedentes.
10
Deve-se levar em conta que muitas ferramentas de testes têm características que
abrangem duas ou mais destas categorias.
As Ferramentas CASE encontradas atualmente no mercado geralmente funcionam de
forma isolada. Estas utilizam formatos de dados proprietários, o que impede que ferramentas
façam uso dos dados produzidos uma das outras. Exemplos dos tipos de arquitetura existentes
são mostrados na Figura 2-3 [BROWN E FEILER].
Figura 2 - 3 – Exemplos de Arquitetura de Ferramentas CASE..
O exemplo 2-3a. mostra uma ferramenta filtro que recebe arquivo de dados como
entrada e transforma em arquivos de saída. Os arquivos trazem dentro de si o formato de
dados da ferramenta, que geralmente é de complexa compreensão. O exemplo 2-3b. mostra
uma ferramenta que utiliza um dicionário de dados para catalogar suas informações.
Finalmente, o exemplo 2-3c. ilustra uma ferramenta que utiliza um gerenciador de banco de
dados para armazenamento de suas informações.
Banco de Dados
Ferramentas
com Banco de Dados
Ferramentas
Filtro
Fontes
Dados Derivados
Ferramentas
com Dicionário de
Dados
Dicionário de Dados
a)
b)
c)