Post on 05-Nov-2015
description
Software Architecture Conformance andRecovery
Ricardo Terra e Marco Tlio Valente
rterrabh [at] gmail.com mtov [at] dcc.ufmg.br
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 1 / 69
CV
Nome: Ricardo Terra
Email: rterrabh [at] gmail.com
www: ricardoterra.com.br
Twitter: rterrabh
Lattes: lattes.cnpq.br/ 0162081093970868
Ph.D. (UFMG/UWaterloo),Post-Ph.D. (INRIA/Universit Lille 1)
BackgroundAcadmico : UFLA (desde 2014), UFSJ (1 ano ), FUMEC (3 anos ), UNIPAC (1 ano ), FAMINAS (3 anos )
Profissional : DBA Eng. (1 ano ), Synos (2 anos ), Stefanini (1 ano )
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 2 / 69
Agenda
1 Introduo
2 Sistema Motivador
3 DSM
4 SCQL
5 RM
6 ACL
7 Outras Tcnicas
8 Consideraes Finais
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 3 / 69
Introduo
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 4 / 69
Introduo O que arquitetura?
Arquitetura um termo que admite mltiplas definies
Existem duas definies comumente encontradas:uma separao de alto nvel do sistema em suas partes
decises que so difceis de modificar
Assim, definiremos como:Um conjunto de decises de projeto que tem impacto emcada aspecto da construo e evoluo de sistemas. Issoinclui como sistemas so estruturados em componentes erestries sobre como tais componentes devem interagir.
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 5 / 69
Introduo Qual o papel de um arquiteto de software?
Muitos acreditam se tratar de um desenvolvedor snior,contudo conhecimento tcnico s uma de suashabilidades
Um bom arquiteto de software deve:Limitar as escolhas durante o desenvolvimento:
escolher um padro de como desenvolver aplicaes
definir/criar um framework para ser utilizado na aplicao
Indicar pontos potenciais de reutilizao:possuir uma viso abrangente do sistema e de seu contexto
adotar um design de componentizao
ter conhecimento de outras aplicaes na empresa
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 6 / 69
Introduo Qual o papel de um arquiteto de software?
Dentre suas atribuies, a necessidade de considerar aaplicao por um ngulo de viso mais abrangentecontempla:
Quebrar a complexidade do desenvolvimento deaplicaes em pedaos menores e mais gerenciveis
Definir as funes de cada componente
Definir as interaes e dependncias entre os componentes
Comunicar esses pontos aos desenvolvedores
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 7 / 69
Introduo Tipos de Arquitetura
Arquitetura ConcretaTambm conhecida como Arquitetura Implementada
a arquitetura que est representada no cdigo fonte
Arquitetura PlanejadaTambm conhecida como Arquitetura Documentada
a arquitetura definida nos modelos e documentosarquiteturais do sistema, conforme definies do arquiteto
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 8 / 69
Introduo Problemas Arquiteturais
Apesar de sua inquestionvel importncia, a arquiteturadocumentada de um sistema se disponvel geralmenteno reflete a sua implementao atual
Arquitetura Planejada 6= Arquitetura Concreta
Isso indica que existem decises implementadas no cdigofonte que violam a arquitetura planejada
A isso denomina-se desvio arquitetural
Desvios arquiteturais so comunsDevido ao desconhecimento por parte dos desenvolvedores,requisitos conflitantes, dificuldades tcnicas etc
Geralmente, no so capturados e resolvidos
Levando ao fenmeno conhecido como eroso arquitetural
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 9 / 69
Introduo Problemas Arquiteturais Desvio Arquitetural
Por exemplo, suponha um sistema organizado estritamenteem camadas
Mdulos: Mn, Mn1, , M0Comunicao: Mi utiliza servios de Mi1
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 10 / 69
Introduo Problemas Arquiteturais Eroso Arquitetural
Eroso arquitetural tende a crescer com o tempo
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 11 / 69
Introduo Problemas Arquiteturais
Eroso arquitetural indica que o sistema est sedegenerando
Isso faz com que os benefcios proporcionados por um bomprojeto arquitetural sejam anulados:
Manutenibilidade
Reusabilidade
Escalabilidade
Portabilidade
etc
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 12 / 69
Introduo Abordagens Arquiteturais
Recuperao Arquitetural consiste de um conjunto demtodos para extrao de informaes arquiteturais apartir de representaes de baixo nvel de um sistema desoftware, como o cdigo fonte
Conformao Arquitetural consiste no processo de verificarse uma representao de baixo nvel de um sistema desoftware como o cdigo fonte ou algo similar est emconformidade com sua arquitetura planejada
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 13 / 69
Introduo Padres de Projeto x Padres Arquiteturais
Padro de Projeto uma soluo para um problemarecorrente no desenvolvimento de sistemas. Consiste emuma descrio ou modelo de como resolver um problema.Normalmente, mostra relacionamentos e interaes entreclasses e objetos
Exemplo: Abstract Factory, Facade, Singleton etc
Padro Arquitetural tem um escopo mais amplo que umpadro de projeto. Eles so mais amplos, geralmentedescrevendo um padro global seguido por todo o sistema
Exemplo: MVC, Layers, Pipe etc
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 14 / 69
Sistema Motivador
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 15 / 69
Sistema Motivador
myAppointments um sistema simples de gerenciamento deinformaes pessoais implementado exclusivamente paraavaliao das solues de recuperao e conformaoarquitetural que sero tratadas neste mini-curso
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 16 / 69
Sistema Motivador Arquitetura
Padro arquitetural MVC
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 17 / 69
Sistema Motivador Arquitetura
Diviso clara entre objetos da Viso e do Modelo
Viso est associada a componentes GUI (Frames, Buttons,TextField etc)
Objetos do Modelo so completamente independentes dequalquer framework para construo de interfaces grficas
Interaes entre o Modelo e a Viso so mediadas porobjetos da camada de Controle
Modelo inclui:Objetos de Domnio (Domain Objects) que representamentidades, como Compromissos
Objetos de Acesso a Dados (Data Access Objects ou DAOs)que encapsulam o framework de persistncia subjacente
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 18 / 69
Sistema Motivador Restries Arquiteturais
RA1 Somente a camada de Viso deve utilizar AWT e Swing
RA2 Somente objetos DAO da camada de Modelo devem dependerde servios SQL
RA3 A camada de Viso somente depende dela mesma, das APIsAWT e Swing, da camada de Controle e de classes utilitrias. Isto, no acessam diretamente o Modelo
RA4 Objetos de Domnio no devem depender de DAOs nem dequalquer objeto das camadas de Viso ou de Controle
RA5 Classes DAO somente devem depender de Objetos de Domnio,de classes utilitrias e de servios SQL
RA6 Classes do pacote util no devem depender de nenhuma classeespecfica do sistema
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 19 / 69
Sistema Motivador Arquitetura Concreta
Esse sistema nos guiar no entendimento de algumastcnicas existentes para conformao e recuperaoarquitetural
Para cada tcnica, faremos recuperao de modelos econformao arquitetural, sempre levando emconsiderao as RAs descritas para o sistema
Assim, antes de estudarmos essas tcnicas, vamosbisbilhotar o cdigo fonte desse sistema
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 20 / 69
DSM
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 21 / 69
DSM Viso Geral
DSMs (Dependency Structure Matrixes) so matrizes deadjacncia utilizadas para representar dependncias entremdulos de um sistema
LDM (Lattix Dependency Manager), uma ferramenta paraconformao e gerenciamento arquitetural baseada noconceito de DSMs
LDM tambm suporta o conceito de regras de projeto(design rules), que podem ser utilizadas para definirdependncias que violam a arquitetura planejada de umsistema
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 22 / 69
DSM Viso Geral
Uma DSM uma matriz quadrada cujas linhas e colunasdenotam classes ou agrupamento de classes
Um x na linha referente classe A e na coluna referente classe B denota que a classe B depende da classe A, isto ,existem referncias explcitas em B para elementossintticos de A. Uma outra possibilidade representar naclula (A,B) o nmero de referncias que B contm para A
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 23 / 69
DSM LDM
DSMs foram inicialmente propostas por Baldwin e Clark parademonstrar a importncia de princpios de projeto modularna indstria de hardware
Aps isso, Sullivan et al. demostraram que o conceito deDSMs tambm pode ser utilizado no projeto de software
Neste mini-curso, sero utilizadas DSMs geradas pelaferramenta LDMa (Lattix Dependency Manager) 6.0.5
LDM uma ferramenta de conformao e visualizaoarquitetural que utiliza DSMs para representar e gerenciardependncias inter-classes em sistemas OO
aFerramenta disponvel em: http://www.lattix.com
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 24 / 69
DSM LDM Objetivos
LDM possui dois objetivos principais:revelar padres arquiteturais
detectar dependncias que indiquem violaes arquiteturais
Para esse propsito, LDM automaticamente extrai a DSM docdigo fonte de sistemas existentes utilizando tcnicas deanlise esttica
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 25 / 69
DSM LDM Algoritmo de Reordenao
Para auxiliar os arquitetos a descobrir e raciocionar sobreestilos arquiteturais, LDM implementa um algoritmo dereordenao (ou particionamento)
Esse algoritmo decide a ordem de apresentao das linhasem uma DSM, iniciando pelos pacotes que proveem menosservios e finalizando com os pacotes que so maisutilizados pelos outros pacotes
Esse algoritmo tambm agrupa pacotes que somutualmente dependentes
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 26 / 69
DSM LDM Conformao Arquitetural
LDM inclui uma linguagem simples para declarar regras deprojeto que devem ser seguidas pela implementao dosistema
Regras de projeto possuem duas formas:
A can-use B A cannot-use B
indicando que classes do conjunto A podem (ou no)depender das classes do conjunto B
Violaes em regras de projeto so visualmente exibidas naprpria DSM extrada, com o objetivo de alertar sobrepossveis eroses arquiteturais
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 27 / 69
DSM Prtica Screen shot
Figura : DSM do myAppointments
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 28 / 69
SCQL
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 29 / 69
SCQL Viso Geral
SCQL (Source Code Query Language) contemplalinguagens que realizam consultas a nvel de cdigo fonte
.QL uma linguagem de consulta em cdigo fonte queprov suporte a uma ampla gama de tarefas dedesenvolvimento de software
Tais como verificao de convenes de cdigo, procurapor erros, clculo de mtricas, deteco de oportunidadesde refatorao etc
Apesar de .QL automatizar vrias tarefas dedesenvolvimento, este mini-curso concentra-se na utilizaoda linguagem para gerar visualizaes da arquitetura epara detectar desvios arquiteturais
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 30 / 69
SCQL .QL
.QL inspirada na linguagem SQL, o que torna sua sintaxefamiliar para a maioria dos desenvolvedores
.QL inclui outras caractersticas que aumentam o seu poderde expresso para a consulta em cdigo fonte
engine Datalog, consultas recursivas em hierarquia deherana, chamada de mtodos etc
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 31 / 69
SCQL .QL
Conceitos de orientao a objetos tais como classes eherana podem ser usados para estender a linguagemcom novos predicados e construir bibliotecas
Para melhorar seu desempenho e escalabilidade, .QL utilizaum SGBD relacional para armazenar relaes entreelementos do cdigo fonte
Assim, consultas .QL so primeiramente traduzidas paraDatalog (otimizadas) e, em seguida, traduzidas para SQL
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 32 / 69
SCQL .QL
SemmleCode .QLa um plug-in para a IDE Eclipse quepermite a execuo de consultas .QL sobre sistemas Java
Foi utilizado o Semmlecode Professional Edition, verso 1.0
Basicamente, a ferramenta inclui um editor de consultascuja apresentao de seus resultados pode ser vista emforma de rvores, tabelas, grficos, grafos e warningsreportados pelo ambiente de desenvolvimento
Alm disso, conta com a definio de repositrios deconsultas para armazenar, por exemplo, consultasrealizadas frequentemente
aFerramenta disponvel em: http://semmle.com
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 33 / 69
SCQL .QL Prtica Consulta
Primeiramente, ser demonstrada uma consulta que retorna asdependncias entre os pacotes do sistema myAppointments eos pacotes AWT, Swing e SQL da API de Java:
1 from RefType r1 , RefType r22 where3 r1 . fromSource ( ) and depends( r1 , r2 ) and4 ( r2 . fromSource ( ) or isSwingApi ( r2 ) or i s Sq lAp i ( r2 ) )5 select r1 . getPackage ( ) , r2 . getPackage ( )
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 34 / 69
SCQL .QL Prtica Consulta
Predicados utilizado:
1 predicate isSwingApi ( RefType r ) {2 r . getPackage ( ) .getName( ) . matches( " java . awt " ) or3 r . getPackage ( ) .getName( ) . matches( " java . awt.% " ) or4 r . getPackage ( ) .getName( ) . matches( " javax . swing " ) or5 r . getPackage ( ) .getName( ) . matches( " javax . swing.% " )6 }7
8 predicate i sSq lApi ( RefType r ) {9 r . getPackage ( ) .getName( ) . matches( " java . sq l " ) or
10 r . getPackage ( ) .getName( ) . matches( " java . sq l .% " )11 }
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 35 / 69
SCQL .QL Prtica Resultado
Figura : Grafo do myAppointments
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 36 / 69
SCQL .QL Prtica Consulta
Utilizando classes, mtodos e predicados de .QL, foramdefinidas consultas para detectar violaes das restriesarquiteturais definidas para o sistema myAppointments. Porexemplo, a seguinte consulta verifica se a restrio arquiteturalRA1 seguida:
1 from RefType r1 , RefType r22 where3 r1 . fromSource ( )4 and not ( r1 . getPackage ( ) .getName( ) . matches( " myappointments . view " ) )5 and depends( r1 , r2 ) and isSwingApi ( r2 )6 select r1 as Tipo ,7 "RA1 violada : " + r1 . getQualifiedName ( )8 + " ut i l i zando " + r2 . getQualifiedName ( ) as Violacao
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 37 / 69
SCQL .QL Prtica Resultado
Figura : Exibio de uma violao
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 38 / 69
SCQL .QL Prtica Consulta
De maneira similar, a restrio RA3 definida como a seguir:
1 from RefType view , RefType re f2 where3 view . getPackage ( ) .getName( ) . matches( " myappointments . view " )4 and re f . fromSource ( )5 and not ( re f . getPackage ( ) .getName( ) . matches( " myappointments . view " ) )6 and not i s C o n t r o l l e r ( re f )7 and not i s U t i l ( re f )8 and depends( view , re f )9 select view as Tipo_Visao ,
10 "RA3 violada : " + view . getQualifiedName ( )11 + " ut i l i zando " + re f . getQualifiedName ( ) as Violacao
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 39 / 69
SCQL .QL Prtica Consulta
Nessa consulta so utilizados os predicados isController eisUtil, definidos como a seguir:
1 predicate i sCon t ro l le r ( RefType re f ) {2 re f . getASupertype ( ) . hasQualifiedName3 ( " myappointments . cont ro l le r " , " ICont ro l le r " )4 }5 predicate i s U t i l ( RefType re f ) {6 re f . getPackage ( ) .getName( ) . matches( " myappointments . u t i l " )7 }
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 40 / 69
RM
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 41 / 69
RM Viso Geral
Tcnicas baseadas em Modelos de Reflexo (ReflexionModels ou RM) comparam um modelo arquitetural (isto , aarquitetura planejada de um sistema) com o modelo decdigo fonte (isto , a arquitetura concreta desse sistema)
O resultado, chamado modelo de reflexo, destacarelaes convergentes, divergentes e ausentes entre os doismodelos
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 42 / 69
RM SAVE
SAVE (Software Architecture Visualization and Evaluation) uma ferramenta de conformao arquitetural centrada noconceito de modelo de reflexo de software proposto porMurphy et al.
Desenvolvida pelo Instituto Fraunhofer IESE
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 43 / 69
RM SAVE
Segundo essa abordagem, arquitetos devemprimeiramente definir um modelo de alto nvel querepresente a arquitetura planejada de um sistema
Esse modelo inclui os principais componentes do sistema e asrelaes entre eles (invocaes, instanciaes, herana etc)
Arquitetos tambm devem definir um mapeamento entre omodelo de cdigo fonte (arquitetura concreta) e aarquitetura planejada
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 44 / 69
RM SAVE
Uma ferramenta baseada em modelo de reflexo, como SAVE,classifica relaes entre componentes como:
Convergente: quando uma relao prescrita no modelo dealto nvel seguida pelo cdigo fonte
Divergente: quando uma relao no prescrita no modelode alto nvel existe no cdigo fonte
Ausente: quando uma relao prescrita no modelo de altonvel no existe no cdigo fonte
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 45 / 69
RM SAVE Funcionamento
1 Modelo de Alto NvelSo definidos os componentes de alto nvel e as comunicaesentre eles de acordo com a arquitetura planejada do sistema
2 Modelo de Cdigo Fonte extrado um modelo a partir do cdigo fonte do sistema
3 MapeamentoTarefa na qual os arquitetos devem manualmente associar cadacomponente de alto nvel aos seus componentescorrespondentes no modelo de cdigo fonte
4 Modelo de ReflexoA ferramenta compara os dois modelos e destaca as relaesausentes e divergentes
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 46 / 69
RM SAVE Prtica Screen shot
Figura : Modelo de Reflexo Computado para o myAppointments
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 47 / 69
ACL
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 48 / 69
ACL Viso Geral
ACL (Architectural Constraint Language) contemplasolues que garantem a conformao arquitetural de umsistema por meio de um conjunto de restries
Linguagem DCL (Dependency Constraint Language) visa restringiro espectro de dependncias aceitveis e inaceitveis emum sistema
O objetivo principal impedir a eroso arquitetural, isto ,que a arquitetura concreta (aquela presente no cdigofonte) viole a arquitetura planejada de um sistema
Por exemplo, violaes de camada, no utilizao depadres, m uso de frameworks etc
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 49 / 69
ACL DCL
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 50 / 69
ACL DCL Linguagem
Linguagem de domnio especfico, declarativa eestaticamente verificvel
Permite a definio de restries estruturais entre mdulos
Princpio de funcionamento:
Definem-se os mdulos
Definem-se as restries entre eles
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 51 / 69
ACL DCL Mdulos
Mdulos: conjunto de classes
pacotes, subtipos, expresses regulares etc
Exemplos:
1 module View : org . foo . view .2 module Remote: java . rmi . UnicastRemoteObject+
3 module Frame : " org . foo . [ azAZ09/.]Frame"
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 52 / 69
ACL DCL Restries
Restries para capturar divergncias e ausncias:
Exemplos:
1 only Factory cancreate Products2 U t i l canonlydepend U t i l , $java3 View cannothandle Model4 Products mustimplement java . io . S e r i a l i z a b l e
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 53 / 69
ACL DCL Ferramenta dclcheck
Ferramenta dclchecka
Verifica se o cdigo fonte respeita restries DCL
Plug-in para a IDE Eclipse
aFerramenta disponvel em: http://dcc.ufmg.br/terra/dcl
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 54 / 69
ACL DCL Prtica Screen shot
Figura : Violaes detectadas para o myAppointments
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 55 / 69
Outras Tcnicas
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 56 / 69
Outras Tcnicas
Existem uma srie de outras solues que lidam comconformao e recuperao arquitetural
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 57 / 69
Outras Tcnicas Architectural Constraint Languages (ACL)
Structural Constraint Language (SCL)
Linguagem lgica de primeira ordem que permite expressarintenses arquiteturais e de projeto
Restries definidas sobre a estrutura esttica de sistemasorientados a objetos
Especificaes SCL consistem em uma sequncia dedeclaraes e frmulas lgicas
LogEn
Linguagem lgica de domnio especfico
Permite expressar dependncias estruturais entre gruposlgicos de elementos do cdigo fonte, chamadosensembles
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 58 / 69
Outras Tcnicas Architectural Description Languages (ADL)
ADLsAlternativa para conformao arquitetural por construo
ADLs no se aplicam em sistemas existentes, pois soextenses de linguagens
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 59 / 69
Outras Tcnicas Architecture Analysis Tools
Structure101: definio de modelos em termos de camadase dependncias aceitveis entre componentes
Bahaus: RM com decomposio hierrquica
Sotograph: permite realizar consultas de conformaosobre dependncias do cdigo fonte que ficamarmazenadas em um repositrio
Klocwork Insight: prov suporte a visualizao arquiteturalem forma de grafos
JDepend: gera mtricas que podem ser utilizadas paramedir e controlar o processo de eroso arquitetural
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 60 / 69
Outras Tcnicas Abordagens Dinmicas
DiscoTectUtiliza observaes em tempo de execuo de sistemas paraconstruir uma viso arquitetural do sistema
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 61 / 69
Consideraes Finais
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 62 / 69
Consideraes Finais
O curso apresentou quatro solues distintas paraRecuperao e Conformao Arquitetural:
DSM: usando como exemplo a ferramenta LDM
SCQL: usando como exemplo a ferramenta .QL
RM: usando como exemplo a ferramenta SAVE
ACL: usando como exemplo a ferramenta DCL
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 63 / 69
Consideraes Finais DSM LDM
DSMs representam instrumento simples e poderoso paravisualizar e raciocionar sobre arquiteturas de software, pois:
DSMs so estruturas inerentemente hierrquicas, o que provescalabilidade
Possuem algoritmos de reordenao
Regras de Projeto (Design Rules) no so expressivasNo possuem expresses regulares ou subtipos
Limitao aos tipos de dependncia
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 64 / 69
Consideraes Finais SCQL .QL
.QL representa uma simples, mas poderosa linguagem deconsulta em cdigo fonte
Poder deve-se sua origem em Datalog
Simplicidade deve-se a sintaxe inspirada em SQL
Dificuldades para visualizar, navegar e raciocinar sobrerepresentaes arquiteturais
Mas, ser esse o foco?
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 65 / 69
Consideraes Finais RM SAVE
Possui um processo completo e bem definido paraverificao de conformao arquitetural
Controle sobre a granularidade e o nvel de abstrao doscomponentes
Mapeamento uma tarefa rdua e deve ser mantida
A computao do modelo de reflexo pode tomar tempoNo vivel ser continuamente aplicado
Mas, vivel antes de lanamento de verses, aps umainterao do desenvolvimento etc
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 66 / 69
Consideraes Finais ACL DCL
Restringe o espectro de dependncias que podem serestabelecidas em sistemas orientados a objetos
simples e auto-explicativa
Alto poder de expressoDefinio de mdulos: pacotes, subtipos, expressesregulares etc
Restries: Todos os tipos de restries
No prov mecanismos para raciocinar ou visualizar sobre aarquitetura
Foco na conformao arquitetural
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 67 / 69
Referncias
L. Passos; R. Terra; R. Diniz; M. T. Valente; N. Mendona. Static ArchitectureConformance Checking: An Illustrative Overview. IEEE Software, 2010
N. Sangal et al. Using dependency models to manage complex softwarearchitecture. OOPSLA, 2005
O. Moor et al. Keynote address: .ql for source code analysis. SCAM, 2007
J. Knodel et al. Static evaluation of software architectures. CSMR, 2006
G. Murphy; D. Notkin; K. Sullivan. Software reflexion models: Bridging thegap between source and high-level models. ACM SIGSOFT FSE, 1995
R. Terra; M. T. Valente. A dependency constraint language to manageobject-oriented software architectures. SPE, 2009
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 68 / 69
Obrigado!!!
Ricardo Terra (rterrabh [at] gmail.com) Software Architecture Setembro, 2011 69 / 69
IntroduoSistema MotivadorDSMSCQLRMACLOutras TcnicasConsideraes Finais