Ferramenta de apoio a reestrutura ção de c ódigo fonte em...

21
Ferramenta de apoio a Ferramenta de apoio a reestrutura reestrutura ç ç ão de c ão de c ó ó digo digo fonte em linguagem C++ fonte em linguagem C++ baseado em padrões de baseado em padrões de legibilidade legibilidade Denis Alberto Denis Alberto Dalmolin Dalmolin Orientador: Orientador: Everaldo Everaldo Artur Artur Grahl Grahl

Transcript of Ferramenta de apoio a reestrutura ção de c ódigo fonte em...

Page 1: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

Ferramenta de apoio a Ferramenta de apoio a reestruturareestrutura çção de cão de c óódigo digo fonte em linguagem C++ fonte em linguagem C++ baseado em padrões de baseado em padrões de

legibilidadelegibilidade

Denis AlbertoDenis Alberto DalmolinDalmolin

Orientador:Orientador: EveraldoEveraldo ArturArtur GrahlGrahl

Page 2: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

Roteiro de Roteiro de AApresentapresentaççãoão

�� IntroduIntroduççãoão

�� A Linguagem CA Linguagem C

�� Qualidade de SoftwareQualidade de Software

�� Padrões EstudadosPadrões Estudados

�� AnAnáálise do Programa Fontelise do Programa Fonte

�� DescriDescriçção ão do Softwaredo Software

�� Diagrama de Casos de UsoDiagrama de Casos de Uso

�� Diagrama de ClassesDiagrama de Classes

�� Diagrama de SeqDiagrama de Seqüüênciaência

�� DefiniDefiniçção do Softwareão do Software

�� AnAnáálises do Softwarelises do Software

�� Funcionamento do SoftwareFuncionamento do Software

�� ConclusãoConclusão

Page 3: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

IntroduIntroduççãoão

�� As empresas procuram aumentar a qualidade As empresas procuram aumentar a qualidade do softwaredo software

�� As empresas necessitam de padrões de As empresas necessitam de padrões de desenvolvimento do cdesenvolvimento do cóódigo fonte para agilizar e digo fonte para agilizar e reduzir custos com a manutenreduzir custos com a manutençção do software ão do software

�� Apesar de toda a flexibilidade da linguagem C e Apesar de toda a flexibilidade da linguagem C e C++, os programas podem se tornar C++, os programas podem se tornar desorganizados e difdesorganizados e difííceis de serem ceis de serem compreendidoscompreendidos

Page 4: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

Objetivo PrincipalObjetivo Principal

�� Especificar e implementar uma ferramenta Especificar e implementar uma ferramenta que apoie a reestruturaque apoie a reestruturaçção de cão de cóódigo fonte digo fonte escrito em linguagem C++ utilizando padrões escrito em linguagem C++ utilizando padrões de legibilidade. Estes padrões foram obtidos a de legibilidade. Estes padrões foram obtidos a partir de pesquisa bibliogrpartir de pesquisa bibliográáfica.fica.

Page 5: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

A Linguagem CA Linguagem C

�� Nos anos 70, a linguagem C foi inventada e Nos anos 70, a linguagem C foi inventada e implementada porimplementada por Dennis RitchieDennis Ritchie

�� Para resolver o problema do seu difPara resolver o problema do seu difíícil cil gerenciamento foi desenvolvido a linguagem C++gerenciamento foi desenvolvido a linguagem C++

�� Linguagem C++ possui suporte Linguagem C++ possui suporte àà programaprogramaçção ão orientada ao objetoorientada ao objeto

Page 6: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

Qualidade de SoftwareQualidade de Software

�� Nos primeiros anos da sua existência o Nos primeiros anos da sua existência o software era projetado sob medida software era projetado sob medida

�� Com o crescimento do tamanho e da Com o crescimento do tamanho e da complexidade dos programas, aumentou a complexidade dos programas, aumentou a existência de diversas propostas de mexistência de diversas propostas de méétodos todos para o desenvolvimento de programas com para o desenvolvimento de programas com elevado nelevado níível de qualidade vel de qualidade

�� A reestruturaA reestruturaçção do cão do cóódigodigo--fonte contribui fonte contribui para a melhoria da produtividade na para a melhoria da produtividade na manutenmanutençção de sistemas, consequentemente ão de sistemas, consequentemente aumentando a qualidade do softwareaumentando a qualidade do software

Page 7: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

PadrõesPadrões

�� Padrão de composiPadrão de composiçção de mão de móódulosdulos

–– como criar e declarar mcomo criar e declarar móódulos de definidulos de definiçção e de ão e de implementaimplementaçção em C e C++ão em C e C++

�� Padrão geralPadrão geral

–– como utilizar a linguagem padrão , fazer declaracomo utilizar a linguagem padrão , fazer declaraçções, ões, uso de expressões, comandos euso de expressões, comandos e sequênciasequência de de execuexecuçção de comandosão de comandos

�� Padrão de estiloPadrão de estilo

–– espaespaççamento da margem esquerda, estilo de amento da margem esquerda, estilo de declaradeclaraçções de variões de variááveis, estilo de expressões e veis, estilo de expressões e atribuiatribuiçções, estilo de blocos e estruturas de controleões, estilo de blocos e estruturas de controle

�� PPadrão paraadrão para aa escolhaescolha de de nomesnomes

–– trata sobre a estrutura gentrata sobre a estrutura genéérica do nomerica do nome de de varivariááveisveis

Page 8: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

AnAnáálise lise do do Programa FontePrograma Fonte

�� ParaPara o o desenvolvimento do software, seguiudesenvolvimento do software, seguiu--se a mesma linha da se a mesma linha da ananáálise lise de de ccóódigo feita digo feita por compiladorespor compiladores, , que que segue as segue as três fasestrês fases::

–– AnAnáálise linear: extrai os lise linear: extrai os tokenstokens

–– AnAnáálise hierlise hieráárquica: anrquica: anáálise dos lise dos tokenstokens

Page 9: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

DescriDescriçção do ão do SoftwareSoftware

�� Ferramentas utilizadasFerramentas utilizadas

–– Rational RoseRational Rose

–– Microsoft Visual C++ 6.0Microsoft Visual C++ 6.0

�� PrincipaPrincipall funfunçção ão do software do software éé efetuarefetuar a a reestruturareestruturaçção ão de de ccóódigodigo--fonte em fonte em C++C++

–– AnAnáálise que gera avisoslise que gera avisos

–– AnAnáálise que gera modificalise que gera modificaççõesões

Page 10: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

Diagrama Diagrama de de Casos Casos de de UsoUso

Page 11: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

Diagrama Diagrama de Classesde Classes

Page 12: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

Diagrama Diagrama de de SeqSeqüüênciaência

Page 13: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

DefiniDefiniççãoão do Softwaredo Software

Page 14: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

AnAnáálises do Softwarelises do Software�� gotogoto

�� operador ?operador ?

�� continuecontinue

�� friendfriend

�� mallocmalloc

�� reallocrealloc

�� freefree

�� case sem case sem breakbreak

�� switch switch sem sem defaultdefault

�� else else final em blocos final em blocos else ifelse if

�� bloco case grandebloco case grande

�� tamanho linhatamanho linha

�� usouso incremincrem. expressões. expressões

�� alinhamento do calinhamento do cóódigodigo

�� varivariáável linha individualvel linha individual

�� espaespaçço na declarao na declaraçção de ão de ponteirosponteiros

�� estrutura controle separar estrutura controle separar abertura da condiabertura da condiççãoão

�� colocar operadores lcolocar operadores lóógicos gicos em linhas separadasem linhas separadas

�� alinhar inalinhar iníício e fim blococio e fim bloco

�� condicondiçções devem ter inões devem ter iníício cio e fim de blocoe fim de bloco

�� ininíício e fim de bloco em cio e fim de bloco em linhas exclusivaslinhas exclusivas

Page 15: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

Funcionamento Funcionamento do Softwaredo Software

Page 16: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

Funcionamento Funcionamento do Softwaredo Software

Page 17: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

Funcionamento Funcionamento do Softwaredo Software

Page 18: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

Funcionamento Funcionamento do Softwaredo Software

Page 19: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

FF DDUU OON N .CC SSII OOOO FFNN TTAA WWMM AAEE RRNN EETT .OO .

Page 20: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

ConclusãoConclusão

�� Os padrões utilizados são de grande valia, pois tornam Os padrões utilizados são de grande valia, pois tornam o co cóódigo fonte mais legdigo fonte mais legíível, aumentando a qualidade do vel, aumentando a qualidade do software e consequentemente diminuindo os futuros software e consequentemente diminuindo os futuros custos com a manutencustos com a manutençção dos mesmosão dos mesmos

�� AA utilizautilizaçção deão de tokenstokens agilizou agilizou a a reestruturareestruturaççãoão

�� Os objetivos do trabalho foram alcanOs objetivos do trabalho foram alcanççados visto que a ados visto que a ferramenta permite analisar e reestruturar cferramenta permite analisar e reestruturar cóódigodigo--fonte fonte de programas feitos na linguagem C++, a partir de de programas feitos na linguagem C++, a partir de padrões de legibilidade estudados na bibliografiapadrões de legibilidade estudados na bibliografia

�� LimitaLimitaççõesões

–– o padrão para escolha de nomes e o padrão de o padrão para escolha de nomes e o padrão de composicomposiçção de mão de móódulos possuem regras e/ou dulos possuem regras e/ou recomendarecomendaçções que não puderam ser ões que não puderam ser implementadas. implementadas.

Page 21: Ferramenta de apoio a reestrutura ção de c ódigo fonte em ...dsc.inf.furb.br/arquivos/tccs/apresentacoes/2000-2denisalbertodal... · Qualidade de Software Nos primeiros anos da

DemonstraDemonstraçção do ão do SoftwareSoftware

�� Ferramenta de apoio a reestruturaFerramenta de apoio a reestruturaçção de ão de ccóódigo fonte em linguagem C++ baseado em digo fonte em linguagem C++ baseado em padrões de legibilidadepadrões de legibilidade