ferramenta de apoio a reestrutura ção de c ódigo fonte em...
TRANSCRIPT
![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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022052012/6028566e12172f11593ea6b2/html5/thumbnails/21.jpg)
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