Beruflich Dokumente
Kultur Dokumente
Introduo
Introduo
Acoplamento esttico-dinmico:
Alguns projetos de linguagens tornam mais difcil mover cdigo de estrutura esttica sem modificar a estrutura dinmica do programa.
Como e quanto o acoplamento esttico-dinmico em uma linguagem impacta na complexidade da remodularizao do programa? Foi feito uma srie de remodularizaes usando Java e SubjectJ.
3
Acoplamento esttico-dinmico
Acoplamento esttico-dinmico
Acoplamento esttico-dinmico
Acoplamento esttico-dinmico
Acoplamento esttico-dinmico
SubjectJ
SubjectJ
Projetada para ser muito parecida com Java, porm com menor acoplamento esttico-dinmico.
Programas Java devem ser programas SubjectJ vlidos. Suporte a IDE semelhante.
SubjectJ decompe Programas Java em unidades modulares chamadas Sujeitos. A sintaxe do Sujeito essencialmente a sintaxe de um programa Java com anotaes.
SubjectJ
11
SubjectJ
12
SubjectJ
13
SubjectJ
14
SubjectJ Tools
SubjectJ possui um conjunto de ferramentas com o intuito de editar, compilar e executar programas SubjectJ refatorados.
Compose Decompose Checker
15
SubjectJ
16
SubjectJ
17
SubjectJ
18
SubjectJ
19
Experimento
20
Experimento
21
Ameaas validade
22
Ameaas validade
Variveis do experimento so linguagens enquanto se deseja entender o acoplamento esttico-dinmico. SubjectJ diferir alm do acoplamento esttico-dinmico. Ferramentas de suporte a refatorao com suporte distintos para as linguagens. Bugs, tempo de refatorao podem no ser um indicadores de complexidade. Generalizao dos resultados pode ser invivel.
23
Ameaas validade
24
Resultados
25
Resultados
26
Introduo de Bugs
27
Bugs
28
Estratgias de Separao
29
Estratgias de Separao
SubjectJ
Mudanas na estrutura dinmica foram requeridas quando possua cdigo dentro de mtodos de interesse distinto do prprio mtodo.
Java
MVC. Mtodo esttico. Split Class em superclasse e subclasse. Estratgia Dual.
30
Estratgias de Separao
31
Suporte Refatorao
Nvel de suporte que pode ser alcanado por uma ferramenta de refatorao indiretamente afetado pelo nvel de acoplamento esttico-dinmico. Refatoraes podem requerer transformaes complexas, difceis de implementar. Eclipse IDE no suporta satisfatoriamente refatoraes. Ferramenta de refatorao so complementares a linguagens com menor acoplamento esttico-dinmico.
32
Concluso
33
Concluso
Como e quanto o acoplamento esttico-dinmico em uma linguagem impacta na complexidade da remodularizao do programa? Fornece resultados quantitativos para responder a questo. Sugerem que devido ao acoplamento esttico-dinmico a remodularizao Java demora mais tempo e insere mais bugs. Alto acoplamento esttico-dinmico em Java traz complexidade acidental. Estratgias de refatorao necessrias para remodularizar cdigos Java no so bem suportadas por ferramentas.
34
Thanks
vitormsales@dcc.ufmg.br
35
Bugs
36