Escolar Documentos
Profissional Documentos
Cultura Documentos
LAVRAS
MINAS GERAIS BRASIL
2008
LUS PAULO ALVES MAGALHES
rea de Concentrao:
Engenharia de Software
Orientador:
Dr. Heitor Augustus Xavier Costa
LAVRAS
MINAS GERAIS BRASIL
2008
Ficha Catalogrfica preparada pela Diviso de Processo Tcnico da Biblioteca
Central da UFLA
Magalhes, Lus Paulo Alves
Aprovada em 17/11/2008
LAVRAS
MINAS GERAIS BRASIL
iii
Mas aqueles que esperam no Senhor renovam as suas foras. Voam bem alto como guias;
correm e no ficam exaustos, andam e no se cansam Is.40:31
A Deus, minha me Marta, ao meu pai Elodes, ao meu irmo Grson e ao meu tio Wellington
dedico este trabalho, atribuindo-lhes significativos e insubstituveis lugares em meu corao e
expressando a minha imensa gratido por todo amor, cuidado, companheirismo e contribuio
para a minha formao. Vocs so muito especiais para mim!
iv
AGRADECIMENTOS
v
SUMRIO
Lista de Figuras
Lista de Tabelas
1 INTRODUO ........................................................................................ 2
1.1 Motivao ............................................................................................................. 2
1.2 Objetivo ................................................................................................................ 4
1.3 Metodologia de Desenvolvimento ....................................................................... 4
1.3.1 Tipo da Pesquisa ........................................................................................................ 4
1.3.2 Procedimentos Metodolgicos ................................................................................. 4
1.4 Estrutura da Monografia .................................................................................... 5
6 USABILIDADE ...................................................................................... 35
6.1 Consideraes Iniciais ....................................................................................... 35
6.2 Conceitos............................................................................................................. 35
6.3 Sub-Caractersticas de Usabilidade da Norma ISO/IEC 9126 ...................... 37
vi
6.4 Testes de Usabilidade ........................................................................................ 37
6.5 Consideraes Finais ......................................................................................... 38
vii
LISTA DE FIGURAS
Figura 3-1 Relao entre Nvel de Abstrao, Interatividade e Completude (Fonte:
Harandi; Ning (1990)) ....................................................................................................... 16
Figura 4-2 Ordem das Tarefas Prescritas pelo Fusion-RE/I (Fonte: Feltrim (1999))
............................................................................................................................................. 23
viii
Figura 7-9 Descrio de Operao Criar Fazenda do SisGAGRO ........................ 46
ix
LISTA DE TABELAS
Tabela 7-1 Lista de Procedimentos de Implementao de Insumos e Smen ........... 48
x
Estudo sobre Engenharia Reversa e Avaliao da Usabilidade
de Ferramentas CASE para Engenharia Reversa de Software
RESUMO
The growth of the software market has leading to an increasing use of development
techniques, which are, sometimes, informal ones. The maintenance of such software is
problematic, since its documentation rarely reflects the implemented code. In this context
Reverse Engineering of Software can help by means of recovering the project information
lost or not generated during the development phase and documenting the current software
state. The difficulties begin to exist when the systems have problems such as: i) difficulty
on understanding the rules of business, ii) problems in the code structuring; and iii)
ignorance of the reasons that led to certain decisions. The purpose of this work is to study
and analyze the usability of CASE tools to perform reverse engineering software. For this
reason, some reverse engineering techniques were researched and studied, as well as
automated tools that support these techniques. Moreover, these tools were used in an actual
software to guide the analysis.
No contexto de software, que precisa ser alterado para que seu tempo de vida til na
organizao em que est implantado seja estendido, h vrias tecnologias que podem ser
usadas. Para isso, h a necessidade dos mantenedores1 terem pleno conhecimento da
funcionalidade do software. Isso pode no ser trivial, uma vez que a documentao
existente do software raramente consistente com a sua funcionalidade atual; isso quando
esta documentao existe [Costa, 2005].
Assim sendo, uma das tcnicas empregadas a engenharia reversa que consiste em
realizar um processo de exame e de compreenso do software existente, para recapturar ou
recriar o projeto (design) e decifrar os requisitos atualmente implementados, apresentando-
os em nvel ou grau mais alto de abstrao e no envolvendo mudanas no software ou
criao de software [Costa; Sanches, 1996].
1.1 Motivao
1
Pessoas responsveis pela tarefa de manuteno.
2
problemtica, uma vez que a documentao associada ao software, na maioria das vezes,
no est de acordo com o seu cdigo-fonte. Nessas condies, diante da necessidade de
manuteno, o desenvolvedor encontra uma documentao informal e incompleta, muitas
vezes no refletindo o software existente.
Segundo ACM SIGHI (1992), uma interface bem definida entre o usurio e a
ferramenta CASE fundamental para que as suas funes sejam exploradas com
facilidade. A interatividade, conceito abordado com mais detalhes no captulo de
3
engenharia reversa, extremamente importante quando se insere uma ferramenta no
contexto da engenharia reversa. medida que o nvel de abstrao aumenta, caso a
interatividade seja expressiva, a completude e o entendimento do software estaro
comprometidos. Desta forma, a manuteno do software ser rdua.
1.2 Objetivo
A anlise da usabilidade foi realizada sob a luz da norma ISO/IEC 9126 [ISO/IEC
9126-1, 2001], que apresenta a definio da caracterstica de usabilidade. O foco da anlise
foi em quatro de suas sub-catactersticas: i) inteligibilidade; ii) apreensibilidade; iii)
operacionalidade; e iv) atratividade.
4
Os primeiros esforos deste trabalho foram estudar o conceito, a histria e a
importncia da engenharia reversa. A busca da origem do termo, a histria e a
aplicabilidade da engenharia reversa nas reas industriais e comerciais a contextualizou na
manuteno de software. A importncia da engenharia reversa para os engenheiros de
software foi apresentada, diante da necessidade de fazer manuteno do software.
Foi feita uma anlise de ferramentas CASE de engenharia reversa. Baseado nas
informaes obtidas na anlise de estrutura e no funcionamento do software, algumas
ferramentas CASE que realizam a engenharia reversa foram apresentadas e brevemente
demonstradas.
Realizou-se um estudo de caso sobre um software real. Este estudo de caso foi
realizado, aplicando tcnicas de engenharia reversa sobre o software, buscando identificar
e justificar qual a melhor tcnica a ser utilizada.
5
O captulo 6 apresenta breve reviso de literatura sobre usabilidade.
6
2 REENGENHARIA DE SOFTWARE
2.1 Consideraes Iniciais
Neste contexto, a reengenharia vem como pea fundamental para contornar esse
problema, mais especificamente uma de suas atividades, a engenharia reversa. Segundo
Schneider (2001), a reengenharia o exame de um software para reconstitu-lo em uma
forma nova e a implementao subseqente dessa nova forma.
8
2.3 Atividades
9
dissecada e os modelos de dados necessrios so definidos. A reestruturao de dados
realiza a atualizao dos dados em uma nova arquitetura ou estrutura seguindo os
princpios mais atuais, porm conservando a mesma funcionalidade;
Engenharia Avante (Forward Engineering). Esta atividade parte de uma abstrao de
alto nvel de implementao lgica independente para a implementao fsica do
software. Uma seqncia de requisitos de projeto para implementao seguida. A
engenharia avante no apenas recupera informao de projeto de software existente,
mas usa essa informao para alter-lo ou reconstitu-lo em um esforo para
aperfeioar sua qualidade global.
10
3 ENGENHARIA REVERSA DE SOFTWARE
3.1 Consideraes Iniciais
3.2 Conceitos
12
compreenso antes de reorganizar sua estrutura. Contudo, a engenharia reversa no precisa
ser sempre seguida da reengenharia [Sommerville, 2001]:
O projeto e a especificao de um software existente podem passar por engenharia
reversa, de modo que sirvam como entrada especificao de requisitos, para a
substituio desse software;
Como alternativa, o projeto e a especificao podem passar por engenharia reversa, de
modo que estejam disponveis para ajudar na manuteno do software. Com essas
informaes adicionais, pode no ser necessrio fazer a reengenharia do cdigo-fonte.
13
entendimento o software [Lucas et al., 2005]. No entendimento do cdigo-fonte,
tambm denominado recuperao de projeto, o conhecimento do domnio das
informaes externas e dedues adicionado s observaes feitas sobre o software,
examinando-o, de modo a obter informaes com nvel mais alto de abstrao.
Sintetizando, devem ser produzidas as informaes necessrias para entender o que,
como e por que o software faz [Biggerstaff, 1989].
Existem vrias formas de representar o software que podem ser extradas do cdigo-
fonte. Algumas so de mais alto nvel, como modelos de fluxo de dados e de controle.
Conforme Pressman (2001), o nvel de abstrao de um processo de engenharia reversa e
as ferramentas usadas para execut-lo referem-se sofisticao da informao de projeto.
Os nveis de abstrao, na viso deste autor, so:
Representaes do projeto procedimental (abstrao de baixo nvel);
Informao do software e da estrutura de dados (nvel de abstrao mais alto);
Modelos de fluxo de dados e de controle (nvel de abstrao relativamente alto);
Modelos entidade-relacionamento (alto nvel de abstrao).
14
engenharia reversa e com base nos diferentes nveis e graus de abstrao, o software pode
ser visualizado de diferentes maneiras [Harandi; Ning, 1990]:
Nvel implementacional: compreende a abstrao das caractersticas da linguagem de
programao e as caractersticas especficas da implementao;
Nvel estrutural: detalhes da linguagem de programao so abstrados para revelar sua
estrutura a partir de diferentes perspectivas. O resultado uma representao explcita
das dependncias entre os componentes do software;
Nvel funcional: abrange a abstrao da funo de um componente. Essa viso
relaciona partes do software s suas funes, revelando as relaes lgicas entre elas;
Nvel de domnio: abstrai o contexto no qual o software est operando.
Existe uma diferena bsica entre nvel de abstrao e grau de abstrao. O nvel de
abstrao inerente a cada estgio do software. Nos estgios iniciais do ciclo de vida, as
informaes possuem alto nvel de abstrao; nos estgios finais, as informaes possuem
baixo nvel de abstrao. Cada fase no processo de desenvolvimento de software um
refinamento do nvel de abstrao do software. Quanto mais alto for o nvel de abstrao,
mais fcil ser entender o software como um todo, pois o nvel de abstrao diz respeito a
estgios iniciais do ciclo de vida e fornece uma viso global do software. A Figura 3-1
ilustra a relao entre nvel de abstrao e o processo de desenvolvimento de software. O
grau de abstrao, por sua vez, diz respeito quo fcil entender/abstrair o software e
est relacionado a uma mesma atividade no seu ciclo de vida. Informaes em uma forma
mais global possuem alto grau de abstrao e, em uma forma mais detalhada, informaes
possuem baixo grau de abstrao. Em outras palavras, o grau de abstrao est relacionado
ao nvel de detalhe das informaes [Penteado, 1999].
15
processo de desenvolvimento conceitua os nveis de abstrao. Nos estgios iniciais do
software, requisitos de alto nvel so planejados e definidos, quando comparados prpria
implementao.
3.4 Redocumentao
16
adicionais do cdigo-fonte, geralmente grficas, tem o objetivo de recriar a documentao
que existiu ou que deveria ter existido do software [Feltrim, 1999]. A redocumentao,
conhecida como visualizao de cdigo, a criao ou a reviso de uma representao da
abstrao semntica do software.
A redocumentao pode ser vista como uma parte da engenharia reversa, mas de
forma mais simplificada. A redocumentao envolve a anlise esttica do cdigo-fonte
para a produo de uma documentao, sendo examinados o uso de variveis, as chamadas
de componentes, os caminhos de controle, o tamanho do componente, os parmetros de
chamada, os caminhos de teste e alternativas que ajudem no entendimento do que/como o
cdigo-fonte realiza [Pfleeger, 2001]. A redocumentao no busca recuperar modelos de
projeto de forma automtica ou semi-automtica, diferentemente da engenharia reversa.
17
Anquetil; Oliveira (2002) dividem o processo de redocumentao em trs grandes
fases e estas divididas em atividades:
Fase de Preparao: consiste no levantamento das informaes sobre o software a ser
documentado. A partir dos dados coletados, feito o planejamento do que ser
documentado. Essa fase composta de duas atividades: i) Inventariar o Software; e ii)
Auditar o Software;
Fase de Planejamento: consiste no planejamento do que ser redocumentado, indicao
de quem far a documentao e definio do cronograma para as atividades a serem
realizadas. Esta fase composta por uma atividade: i) Planejar a Redocumentao;
Fase de Redocumentao: consiste na redocumentao propriamente dita. Esta fase
composta de quatro atividades: i) Definir Viso de Alto Nvel; ii) Gerar Referncias
Cruzadas; iii) Definir Subsistemas; e iv) Gerar Documentao de Baixo Nvel.
18
informaes externas para identificar abstraes de alto nvel no software, alm daquelas
obtidas diretamente pelo exame do software.
19
4 TCNICAS DE ENGENHARIA REVERSA
4.1 Consideraes Iniciais
A seo 4.2 apresenta breve descrio de Fusion/RE. A seo 4.3 apresenta breve
descrio da anlise de estruturas do cdigo-fonte. A seo 4.4 apresenta breve descrio
da anlise de estruturas do banco de dados.
4.2 Fusion/RE
21
usurios podem ser teis, pois, muitas vezes, informaes importantes podem
no estar documentada. Tendo reunido esta documentao, ela deve ser
analisada para identificar informaes relacionadas aos requisitos do software,
ao projeto arquitetural, de dados e procedimental, ao ambiente onde o
software executado, organizao dos arquivos em disco, etc;
Recuperar modelo de anlise do software: aps obter as informaes sobre o
software, a tarefa de recuperar informaes da fase de anlise iniciada. As
informaes recuperadas so obtidas, investigando a interface do software.
Segundo Costa (1997), a tarefa de recuperao do modelo de anlise
compreende a elaborao dos trs modelos da fase de anlise do Fusion-RE/I:
i) de ciclo de vida; ii) de operaes; e iii) de objetos. Pressupe-se que essa
tarefa exija grande esforo, em funo da complexidade do software;
Recuperao de Vises Estruturais (Etapa 2). Nesta etapa, o cdigo-fonte do software
legado usado para identificar procedimentos que implementam as operaes do
software discriminadas na etapa anterior. As atividades a serem realizadas so:
Elaborar quadro de procedimentos de implementao: o objetivo identificar
cada procedimento, sua funcionalidade e a seqncia de chamadas desse
procedimento. Para tal, dois quadros so utilizados: i) quadro de chamadas
para cada arquivo de cdigo-fonte do software; e ii) quadro geral de
procedimentos;
Elaborar quadro das operaes procedimentos de implementao: os
procedimentos que implementam as operaes da interface so identificados e,
de acordo com a sua funcionalidade, eles so alocados interface ou a um dos
temas definidos anteriormente. Em seguida, so identificados os links entre os
documentos da primeira etapa do mtodo com os respectivos cdigos-fonte
que os implementam. Nas primeiras colunas do quadro, so colocadas as
opes do menu e as operaes de cada opo (descrio da interface). Na
prxima coluna, so colocados os procedimentos que implementam cada
operao, de acordo com a hierarquia de chamadas descrita no quadro de
chamadas. As prximas colunas do quadro so usadas para alocar os
procedimentos interface ou a um dos temas definidos. Assim, tem-se uma
coluna para interface e uma para cada tema definido. O nvel de profundidade
22
com que os procedimentos so detalhados nesse quadro depende do interesse
em questo.
Figura 4-2 Ordem das Tarefas Prescritas pelo Fusion-RE/I (Fonte: Feltrim (1999))
23
usurio para navegao pela estrutura e para anlise das classes que compe o projeto
[Dantas Filho et. al., 2000].
H vrios motivos para fazer a engenharia reversa de banco dados, entre elas: i)
recuperar a descrio do contedo do banco dados perdida ao longo do tempo, em
decorrncia das modificaes para implementar mudanas necessrias; ii) passar de um
sistema gerenciador de banco dados (SGBD) de um fornecedor para outro; iii) mudar a
arquitetura do banco dados centralizada para cliente/servidor; iv) implementar interface de
banco dados mais inteligente para o usurio; e v) integrar os bancos dados isolados.
Talvez essa seja uma das tcnicas mais difundidas e usadas de engenharia reversa.
A maior necessidade de alterao de software legado diz respeito forma como os dados
so armazenados. Logo, necessrio extrair os seus modelos conceituais dos dados para
que eles possam ser acomodados aos novos paradigmas de gerenciamento de banco de
dados [Schneider, 2001].
24
Determinao de objetos de banco de dados especficos da plataforma, como tabelas,
chaves primrias, ndices e cdigo de banco de dados, nos quais se deseja realizar a
engenharia reversa;
Extrao, anlise e validao do esquema em um diagrama de modelo de banco de
dados que pode ser revisado e modificado.
25
5 FERRAMENTAS CASE DE ENGENHARIA REVERSA
5.1 Consideraes Iniciais
A seo 5.2 apresenta breve descrio das ferramentas CASE selecionadas para
realizar a engenharia reversa do software construindo a sua modelagem usando UML. A
seo 5.3 apresenta breve descrio das ferramentas CASE selecionadas para realizar a
engenharia reversa do banco de dados.
5.2 Modelagem do Cdigo-Fonte
27
Figura 5-1 Exibio de Diagrama de Classes na ArgoUML
28
NetBeans
A IDE NetBeans [Netbeans, 2008] (Figura 5-3) um ambiente de desenvolvimento
multiplataforma que auxilia programadores a escrever, compilar, debugging e instalar
aplicaes, sendo arquitetada em forma de uma estrutura reusvel visando simplificar o
desenvolvimento e aumentar a produtividade. Alm disso, ela possibilita reverter o
cdigo-fonte de um software Java em um projeto UML [UMLNetbeans, 2008]. Ela
considerada apropriada para gerao de documentos a partir da engenharia reversa.
No foram detectados problemas relevantes. Pontos positivos se destacaram: i) sadas
claras e cones intuitivos para o usurio so amplamente usados; ii) linguagem do
usurio usada; iii) usurios experientes tm apoio; iii) situaes comuns so
consistentes, ou seja, usurio no demanda tempo para adivinhar se diferentes palavras
ou aes possuem a mesma semntica; e iv) rea de trabalho dos diagramas flexvel;
29
retrabalh-los e aproveitar as boas solues de projeto existentes. Alm disso, ela tem
simplicidade de uso e interface simples e coerente com o usurio. As linguagens de
programao disponveis so Visual Basic, Delphi, C++ e Java.
30
simples e rpido. Os scripts podem ser gerados para vrios SGDBs: IBM DB2,
Interbase, Oracle, MySQL e SQL Server. Isso possvel mediante o uso de database
platform definitions, que podem ser criadas e redefinidas pelo usurio. Algumas de
suas principais caractersticas so: i) criao de scripts de DDL para vrias
plataformas; ii) importao da estrutura de um banco de dados existente; iii) facilidade
para gerar scripts; iv) gerao de scripts de atualizao para os objetos de um projeto; e
v) simplicidade da visualizao da estrutura de um banco de dados;
31
de chave estrangeira; ii) presena do Query Editor mostrando resultados de query em
tabela ou em texto; e iii) converso de um SGBD para outro;
32
Figura 5-7 Modelagem do Banco de Dados Usando a DBVisualizer
33
5.4 Consideraes Finais
34
6 USABILIDADE
6.1 Consideraes Iniciais
6.2 Conceitos
O termo usabilidade foi definido na norma ISO/IEC 9126 [ISO/IEC 9126-1, 2001],
sobre qualidade de software, como um conjunto de atributos de software relacionado ao
esforo necessrio para seu uso e para o julgamento individual de tal uso por determinado
conjunto de usurios.
36
6.3 Sub-Caractersticas de Usabilidade da Norma ISO/IEC 9126
Operacionalidade
Inteligibilidade
Atratividade
Usabilidade
Apreensibilidade Conformidade
2
Segundo Iida (1997, p. 1) apud Royas; Marziale (2001), ergonomia o estudo do relacionamento entre o
homem e o seu trabalho, equipamento e ambiente, e particularmente a aplicao dos conhecimentos de
anatomia, fisiologia e psicologia na soluo dos problemas surgidos desse relacionamento.
37
Avaliao Heurstica;
Critrios Ergonmicos;
Inspeo Baseada em Padres, Guias de Estilo ou Guias de Recomendaes;
Inspeo por Checklists;
Percurso (ou Inspeo) Cognitivo;
Teste Emprico com Usurios;
Entrevistas e Questionrios.
De acordo com Cybis; Bertiol (2007), algumas tcnicas de avaliao para testes de
usabilidade podem incluir uma lista de mtodos que direciona os esforos dos usurios em
realizar uma variedade de tarefas em um prottipo ou sistema. Enquanto o usurio realiza
estas tarefas, ele observado por inspetores que coletam dados referentes aos processos de
interao. Os dados coletados consistem em: i) erros cometidos pelo usurio; ii) quando e
onde eles confundem-se ou frustram-se; iii) rapidez com que o usurio realiza a tarefa; iv)
se os usurios obtm sucesso na realizao da tarefa; e v) satisfao do usurio com a
experincia.
38
7 USO DAS FERRAMENTAS CASE
7.1 Consideraes Iniciais
A seo 7.2 apresenta o software escolhido para ser usado no estudo de caso,
descrevendo algumas de suas caractersticas e relatando seu estado atual. A seo 7.3
apresenta o uso da anlise de estruturas do cdigo-fonte. A seo 7.4 apresenta o uso da
anlise de estruturas de banco de dados. A seo 7.5 apresenta o uso de Fusion/RE.
7.2 O Software
39
A ferramenta CASE de engenharia reversa escolhida para automatizar o processo de
gerao da documentao do cdigo-fonte foi IDE Netbeans. Esta ferramenta CASE foi
apresentada na seo 5.2 e gera diagramas UML. Por motivos do volume da documentao
e de ser basicamente manuteno de cadastros, decidiu-se escolher apenas uma funo
(Manter Cadastro de Animal) e explor-la.
40
ferramenta CASE capaz de criar diagramas de entidade-relacionamento e realizar
engenharia reversa de banco de dados existente.
41
Figura 7-3 Diagrama de Estados do SisGAGRO
42
Figura 7-5 Modelo do Banco de Dados do SisGAGRO
7.5 Fusion-RE/I
43
Depois de iniciado o desenvolvimento do software, algumas dvidas foram sanadas
com o dono da empresa. Cabe salientar que o desenvolvedor foi funcionrio da empresa
por algum tempo (aproximadamente 4 anos); assim sendo, ele tem bom conhecimento das
regras de negcio da empresa. Por este motivo, no houve necessidade de muitas reunies.
44
ter acesso (apenas leitura); iv) valores que a operao pode modificar; v) lista de eventos
que pode ser enviada a agentes (entidades ativas que interagem com o software) pela
operao; vi) pr-condies; e vii) ps-condies, relacionando o estado do software antes
da operao e o estado do software posterior efetivao da operao.
45
sendo composta por classes, relacionamentos entre classes, atributos de classes e de
relacionamentos, agregaes, especializaes e generalizaes [Coleman et al., 1996]. A
Figura 7-10 mostra um Diagrama de Classes representando o modelo de objetos.
Conforme sugerido por Feltrim (1999) e baseados nos estudos realizados sobre
Fusion-RE/I e UML, foi elaborada uma proposta para a representao das informaes da
fase de anlise recuperadas pelo uso de Fusion-RE/I usando UML. O Fusion-RE/I se difere
do Fusion/RE porque leva produo das vises do software sob o paradigma de
orientao a objetos, ao contrrio do segundo, que uma estratgia de engenharia reversa
para mudana de paradigma do software legado procedural para o padro orientado a
objetos. O objetivo dessa proposta foi encontrar as correspondncias entre as duas
notaes, de forma que a informao contida nos modelos de anlise de Fusion-RE/I
pudesse ser representada adequadamente em UML. A Figura 7-11 mostra resumidamente
quais elementos de UML foram usados para representar os modelos de anlise de Fusion-
RE/I.
46
7.5.2 Etapa 2 Recuperao de Vises Estruturais
47
quadro no necessita de uma representao especfica em UML. A Tabela 7-1 apresenta a
lista de procedimentos de Insumos e de Smen do SisGAGRO.
48
elementos de UML podem ser usados para a representao das vises estruturais de
Fusion-RE/I.
7.6 Resultados
49
Para o software em questo, o uso de Fusion-RE/I menos apropriado, em vista de
sua robustez e da relativa simplicidade do software avaliado. A segunda tcnica se torna
intil quando o relacionamento das tabelas no banco de dados substitudo pela
implementao deste relacionamento no cdigo-fonte do software. Desta forma, a tcnica
mais apropriada para explorar no software a primeira tcnica. Ela relativamente simples
em aplicar e atende s necessidades atuais. A presena da implementao do
relacionamento das tabelas em nvel de aplicao, ou seja, no cdigo-fonte, valoriza o seu
uso, visto que o seu foco o cdigo-fonte.
Neste captulo, foi realizado o estudo de caso de cada tcnica de engenharia reversa
do sistema SisGAGRO. O uso das tcnicas foi apoiado pelas ferramentas CASE para a
execuo da tarefa, uma vez que sem o seu uso, a engenharia reversa seria rdua.
Alm disso, foi discutido o porqu de escolher UML para a representao dos
modelos recuperados pelo uso de Fusion-RE/I. Com o estudo de caso, foi possvel chegar
concluso de que as tcnicas anlise de estruturas do cdigo-fonte e anlise de estruturas
do banco de dados so simples, ao passo que Fusion-RE/I mais robusta, mais completa e
mais complexa.
50
8 ANLISE COMPARATIVA DA CARACTERSTICA DE
QUALIDADE DE USABILIDADE DAS FERRAMENTAS CASE
8.1 Consideraes Iniciais
A seo 8.2 define alguns critrios de avaliao das ferramentas CASE. A seo 8.3
apresenta o resultado da avaliao das ferramentas CASE segundo os critrios definidos.
Foi realizada uma avaliao das oito ferramentas CASE de engenharia reversa. Para
cada ferramenta CASE, as sub-caractersticas inteligibilidade, apreensibilidade,
operacionalidade e atratividade foram consideradas. Foram elaboradas algumas perguntas
(critrios) baseadas nos trabalhos de Vilella (2003), Filgueiras (2003), Winckler; Pimenta
(2008), Pagliuso (2004), Nielsen (1993) e Bevan (1998). A Tabela 8-1, a Tabela 8-2, a
Tabela 8-3 e a Tabela 8-4 apresentam 20 perguntas, divididas em 4 grupos de 5 perguntas,
representando as quatro sub-caractersticas de usabilidade abordadas. Associada a cada
pergunta, existe uma justificativa, caracterizando a relevncia do seu uso.
3
Baseada em Maral; Beren (2005), Vilella (2003), Filgueiras (2003) Pimenta (2008), Pagliuso (2004).
4
Retirada de Nielsen (1993)
52
Tabela 8-3 Perguntas e Justificativas para a Sub-caracterstica Apreensibilidade5
Pergunta Justificativa
importante a sugesto de funes
A ferramenta CASE sugere novas funes, relacionadas funo usada. possvel
isto , medida que usada, possvel que uma funo sugerida seja a prxima a
1
perceber a quantidade de recursos que ela ser usada. A sua sugesto facilita uso da
oferece? ferramenta CASE, diminui o tempo e
proporciona satisfao ao usurio.
Recursos para facilitar a apreenso do Sees de ajuda e FAQs6 disponveis e
2 funcionamento da aplicao so facilmente facilmente identificveis colaboram para
Apreensibilidade
5
Baseada em Maral; Beren (2005), Vilella (2003), Filgueiras (2003) Pimenta (2008), Pagliuso (2004)
6
Frequently Asked Questions
7
Baseada em Maral; Beren (2005), Vilella (2003), Filgueiras (2003) Pimenta (2008), Pagliuso (2004)
53
Tabela 8-5 Resultado da Avaliao da Usabilidade das Ferramentas CASE
Engenharia Reversa do Cdigo-Fonte Engenharia Reversa do Banco de Dados
Critrios ArgoUML WithClass Umbrello NetBeans DBWrench DBVisualizer DBConstructor SQuirreL
1 1 1 1 2 2 1 1 1
Inteligibilidade
2 2 2 2 2 2 2 1 2
3 2 2 2 2 2 2 2 2
4 1 2 2 2 1 2 1 1
5 1 1 1 2 2 1 1 2
Sub-total 7 8 8 10 9 8 6 8
Apreensibilidade
1 1 1 2 2 2 1 1 1
2 1 1 1 2 1 1 1 1
3 0 1 1 2 2 1 2 1
4 1 1 2 2 2 2 1 2
5 0 2 1 2 1 1 1 1
53
Sub-total 3 6 7 10 8 6 6 6
Operacionalidade
1 1 2 2 2 2 2 2 1
2 1 1 1 1 1 1 1 1
3 2 2 1 2 2 2 2 2
4 1 1 1 1 1 1 1 1
5 2 2 2 2 2 2 2 2
Sub-total 7 8 7 8 8 8 8 7
1 1 1 1 2 1 1 1 1
Atratividade
2 1 2 2 2 2 1 2 2
3 2 1 2 1 2 2 2 1
4 1 2 1 2 2 2 2 2
5 2 1 2 2 1 1 1 1
Sub-total 7 7 8 9 8 7 8 7
Total 24 29 30 37 33 29 28 28
Para uma anlie pouco mais criteriosa, foram escolhidos cinco resultados de cada
categoria das Ferramentas CASE (Engenharia Reversa do Cdigo-Fonte e Engenharia
Reversa do Banco de Dados) realizada uma reflexo. Priorizou-se a escolha de resultados
com maior discrepncia para esta reflexo ser mais significativa, isto , que abordasse
pontos mais crticos. A Tabela 8-6 e a Tabela 8-7 apresentam o comentriodos resutados
obtidos na avaliao das Ferramentas CASE.
55
8.4 Consideraes Finais
56
9 CONSIDERAES FINAIS
A seo 9.1 apresenta uma breve concluso da relevncia do trabalho. A seo 9.2
apresenta as contribuies do trabalho. A seo 9.3 faz uma sntese dos trabalhos que
podem ser desenvolvidos com base nesta pesquisa, objetivando a sua continuidade.
9.1 Concluses
9.2 Contribuies
57
permite identificar pontos fracos e pontos fortes de cada ferramenta CASE, fundamentais
no momento da escolha de uma ferramenta CASE para realizar engenharia reversa.
A anlise das ferramentas CASE permite verificar qual tem maior grau de
usabilidad. O conjunto de perguntas elaborado com base em alguns artigos, livros e na
norma ISO/IEC 9126-1, que tratam da usabilidade de uma software, facilita a avaliao das
ferramentas CASE.
58
Analisar as ferramentas CASE abordadas neste trabalho segundo a qualidade e
confiabilidade do resultado gerado outra sugesto de trabalhos futuros. No se justifica
utilizar uma ferramenta que seja fcil de usar e no gere resultados vlidos. A verificao
destes resultados to quanto ou mais importante que a usabilidade da ferramenta.
Por fim, pode-se avaliar estas ferramentas CASE segundo as demais caractersticas
de qualidade apresentadas na norma ISO/IEC 9126.
59
REFERNCIAS BIBLIOGRFICAS
ACM SIGCHI. Curricula for Human-Computer Interaction. Tehnical Report. NY:
ACM. 1992 Disponvel em: <http://www.acm.org/sigchi.>
Benedusi, P.; Cimitile, A.; Carlini, U. Reverse Engineering Processes, Design Document
Production, and Structure Charts. Journal Systems and Software. v. 19. p. 225-
245. 1992.
Bevan, N. Usability Issues in Web Site Design. Proceedings of UPA'98. Washington DC.
p. 22-26. Disponvel em: <http://www.usability.serco.com/papers/usweb98.pdf>.
Acesso em: Fevereiro 2008.
Biggerstaff, T. Design recovery for maintenance and reuse. IEEE Software, 22(7):36.49,
July 1989.
Booch, G.; Rumbaugh, J; Jacobson, I. UML Guia do Usurio. Editora Campus, 2000,
Rio de Janeiro.
60
<ftp://ftp.icmc.usp.br/pub/BIBLIOTECA/rel_tec/RT_045.pdf>. Acesso em: Outubro
2008.
ISO 9241-11: Ergonomic requirements for office work with visual display terminals
(VDTs). Part 11 Guidelines for specifying and measuring usability. Gnve:
International Organisation for Standardisation. 1997.
61
Jesus, E. S. Engenharia Reversa de Sistemas Legados Usando Transformaes.
Dissertao de Mestrado. Universidade Federal de So Carlos. 2000.
Lucas, F. R.; Muoz, H. J.; Santana, M.; Neto, M. Lrio Uma Ferramenta para
Criao de Diagramas de Seqncia Utilizando Engenharia Reversa.
Salvador/BA. Faculdade Ruy Barbosa de Cincia da Computao, 2005.
Mayhew, D.J. The usability engineering lifecycle: a practitioner's handbbok for user
interface design. San Francisco: Morgan Kaufmann. 1999.
62
Oman, Paul W.; Cook, Curtis R. The book paradigm for improved maintenance. IEEE
Software, v. 7, n. 1, p. 39-45, jan. 1990
Peres, D. R.; Alvaro, A; Fontanette, V.; Garcia, V. C.; Prado, A. C.; Braga, R. T. V. TB-
REPP - Padres de Processo para a Engenharia Reversa baseado em
Transformaes. Universidade Federal de So Carlos, 2003.
Pfleeger, S. L. Software Engineering: Theory and Practice. 2ed. Prentice Hall, 2001.
63
<http://www.inf.ufsc.br/~sbes99/anais/Sessao-Ferramenta-Completo/12-
fastcase.pdf> Acesso em: Maio 2008
Veronese, G.; Correa, A.; Werner C.; Netto, F. J. ARES: Uma Ferramenta de
Engenharia Reversa Java-UML. COOPE/UFRJ, Programa de Engenharia de
Sistema e Computao. IM-DCC/UFRJ. 2002. XVI Simpsio Brasileiro de
Engenharia de Software.
Voxxel. With Class uma ferramenta CASE para uso pessoal. Developers Magazine,
Ano 2, 1998.
64