Engenharia Guiada por
Modelos no1(co4)Projeto de1Sistemas Embarcados de1Tempo4Real
Marco1A.1Wehrmeister
IV1Escola1de1Sistemas Embarcados – ESSE120161 João Pessoa-– 01-de-Novembro de-2016
Federal-University-of-Technology-– Paraná
Sumário
! Introdução
◦ Revisão de-conceitos
◦ Motivação
! A-abordagem:-AMoDELRT
◦ Usando-a-UML-para-especificar-Sistemas-TempoL Real e-Embarcados
◦ Ferramentas-de-suporte:-geração-de-código-+- aspect weaver
! Resultados
! Considerações-finais
Introdução
Federal-University-of-Technology-– Paraná
Sistemas1de1Tempo4Real
! Na-computação1em1tempo4real,-a-correção de-um-sistema-não-depende somente-no- resultado1lógico da-computação,-mas- também-no-tempo em-que-os-resultados1são1 produzido1 (Stankovic,11988)
! O-que-isso-quer-dizer-realmente?
◦ Um-sistema-de-tempoLreal produz1resultados1 quase-instantaneamente (em-ns)?!?
◦ É-um-sistema-com1rápido1tempo1de1resposta1 (em-ms)?!?
4
Sistemas1de1Tempo4Real
! Em-um-Sistema1de1Tempo4Real,-sabeLse- precisamente as-propriedades-temporais1 envolvidas na-execução de-seus-serviços
◦ Tempo-do-pior1caso1de-execução1de1tarefas
◦ Período1de-ativação1de-tarefas-cíclicas
◦ Jitter:1variação1máxima-de-uma-propriedade1temporal
◦ Validade1temporal1de-um-dado/informação
◦ Atraso1máximo-tolerado
! Granularidade1do-tempo-DEPENDE dos-requisitos da-aplicação-de-tempoLreal
◦ Usualmente-de-minutos-(60s)-até-nanosegundos (10
L9s)
Sistemas1Embarcados
! Não1existe1definição1universalmente1aceita!
! Qualquer-dispositivo1eletrônico1que-inclui um- computador1programável1que-NÃO1é-destinado-a- ser-um-computador-de propósito1geral (Wolf,12000)
! Sistema1de1processamento1de1informações embutido em-produtos1 (Marwedel,12006)
◦ Carros,-telefonia,-máquinas-industriais,-eletrônicos,-etc.
Federal-University-of-Technology-– Paraná
Sistemas1Embarcados
! Sistema1computacional1desenvolvido-para- um-propósito1específico,-oferecendo-um- conjunto1limitado1de1serviços
! Forte-acoplamento-e-integração-entre-os- componentes-de-hardware e-de-software
! Geralmente,-opera-sobre-um-hardware1com1 recursos1limitados
◦ baixa-capacidade-de-processamento,-pouca- memória,-baixo-consumo-de-energia
7 Federal-University-of-Technology-– Paraná
Sistemas1Embarcados
! Sistema1computacional1desenvolvido-para- um-propósito1específico,-oferecendo-um- conjunto1limitado1de1serviços
! Forte-acoplamento-e-integração-entre-os- componentes-de-hardware e-de-software
! Geralmente,-opera-sobre-um-hardware1com1 recursos1limitados
◦ baixa-capacidade-de-processamento,-pouca- memória,-baixo-consumo-de-energia
8
Esta1apresentação aborda
Sistemas de Tempo-Real
Sistemas + Embarcados
Federal-University-of-Technology-– Paraná
Projeto1de1Sistemas1Embarcados1 de1Tempo4Real
Projeto de Sistema Embarcados
VHDL C/C++
1 .S a m p le 1S e n s o rs 2 .C o n tro l1m o v e m e n t 3 .A c tu a te 4 .P ro v id e 1m o v e m e n t1in fo rm a tio n 5 .P la y 1M o v ie s /M P 3 6 .G P S 1n a v ig a tio n 7 .Im a g e 1re c o g n itio n 8 .D riv e 4a s s is ta n c e 1s y s te m s 9 .S e lf4D ia g n o s e 1 0 . S e lf4R e p a ir 1 1 . R e c o n fig u ra tio n 1 2 . R e s p e c t1tim in g 1re q u ire m e n ts 1 3 . S a v e 1e n e rg y 1 4 . R e d u c e d 1s ize ...1m a n y 1o th e rs !!!
9 Federal-University-of-Technology-– Paraná
Projeto1de1Sistemas1Embarcados1 de1Tempo4Real
Projeto de Sistema Embarcados
VHDL C/C++
1 .S a m p le 1S e n s o rs 2 .C o n tro l1m o v e m e n t 3 .A c tu a te 4 .P ro v id e 1m o v e m e n t1in fo rm a tio n 5 .P la y 1M o v ie s /M P 3 6 .G P S 1n a v ig a tio n 7 .Im a g e 1re c o g n itio n 8 .D riv e 4a s s is ta n c e 1s y s te m s 9 .S e lf4D ia g n o s e 1 0 . S e lf4R e p a ir 1 1 . R e c o n fig u ra tio n 1 2 . R e s p e c t1tim in g 1re q u ire m e n ts 1 3 . S a v e 1e n e rg y 1 4 . R e d u c e d 1s ize ...1m a n y 1o th e rs !!!
Complexidade
10
Federal-University-of-Technology-– Paraná
(co4)Projeto dos1Componentes de1 Hardware1e1Software
! O-coLprojeto de-Hardware/Software-é-o- desenvolvimento1concorrente1dos- componentes-de-hardware e-software de- um-sistema-embarcado
◦ usualmente-aqueles-implementados-através de- um SystemLonLChip-(SoC)
! UsaLse-uma-especificação-de-altoLnível-(e.g.- modelo),-sobre-a-qual-são-feitas-simulações- ou-são-gerados-protótipos-ou-emuladores
11 Federal-University-of-Technology-– Paraná
Requisitos1Não4Funcionais
Non-Functional Requirements
Generic Specific
Embedded
AreaPower Consumption Total Energy Memory Allocation Time
Timing
Precision Deadline Period Cost
Jitter Tolerated Delay Laxity Release Time Start and End
Freshness Resolution Drift Activation Latency
Performance Response Time Throughtput Distribution
Task Alocation Hosts Communication Synchronization
12
Federal-University-of-Technology-– Paraná
Requisitos1Não4Funcionais
Non-Functional Requirements
Generic Specific
Embedded
AreaPower Consumption Total Energy Memory Allocation Time
Timing
Precision Deadline Period Cost
Jitter Tolerated Delay Laxity Release Time Start and End
Freshness Resolution Drift Activation Latency
Performance Response Time Throughtput Distribution
Task Alocation Hosts Communication Synchronization
Embedded
Real4time Distributed
13 Federal-University-of-Technology-– Paraná
[ ] l oop
<< SA resou rce>>
: Mo vemen tI nf ormat io n MR In fo
<< SA sch edR es> >
: Mo vemen tC on tr ol er movC t r l
: Ma inR ot or A ctu at or MR Act
<< NF R _D ist r ibu ti on >>
: S emap hor e se mMR I nf o
<< SA sch edu ler >>
<< NF R _Ti ming >>
: S che dul er sch ed
<< RTcl ock> >
<< NF R _Ti ming >>
: Ti me r f re qC trl
mrRo ta ti on 7:
mrPa ce 9:
2:
se tD el ay( de lay =15 ) 3:<< RTse t> >
<< RTst ar t >>4:st ar t ()
<< GRMa cqui re>>
ac qui re () 5:
ge tR ot ( ) 6:
ge tP ace () 8:
<< GRMrel eas e>>
rel ease () 10:
se tR ot at io n(newVal ue= new MR Ro ta ri on ) 36:
se tP ace (n ewVal ue= new MR Pa ce) 37:
ap ply Pa ra mete rs() 38:
w ai tF orTi me out ( ti mer=f r eqC t rl ) 40:
41:
run( ) 1:
[ ] l oop
Tratamento1de1RNF1em1 Abordagens1Tradicionais
14
Federal-University-of-Technology-– Paraná
[ ] l oop
<< SA resou rce>>
: Mo vemen tI nf ormat io n MR In fo
<< SA sch edR es> >
: Mo vemen tC on tr ol er movC t r l
: Ma inR ot or A ctu at or MR Act
<< NF R _D ist r ibu ti on >>
: S emap hor e se mMR I nf o
<< SA sch edu ler >>
<< NF R _Ti ming >>
: S che dul er sch ed
<< RTcl ock> >
<< NF R _Ti ming >>
: Ti me r f re qC trl
mrRo ta ti on 7:
mrPa ce 9:
2:
se tD el ay( de lay =15 ) 3:<< RTse t> >
<< RTst ar t >>4:st ar t ()
<< GRMa cqui re>>
ac qui re () 5:
ge tR ot ( ) 6:
ge tP ace () 8:
<< GRMrel eas e>>
rel ease () 10:
se tR ot at io n(newVal ue= new MR Ro ta ri on ) 36:
se tP ace (n ewVal ue= new MR Pa ce) 37:
ap ply Pa ra mete rs() 38:
w ai tF orTi me out ( ti mer=f r eqC t rl ) 40:
41:
run( ) 1:
[ ] l oop
Tratamento1de1RNF1em1 Abordagens1Tradicionais
public class MovementControl { ...
public void run { while (true) {
Timer period = new Timer(20);
...
mrRto = mrInfo.getRotation();
...
waitForTimeout(period);
} } ...
}
public class EnvironmentEncoder{
...
public void run { while (true) {
Timer period = new Timer(100);
...
waitForTimeout(period);
} } ...
}
public class MainRotorEncoder { ...
public void run { while (true) {
Timer period = new Timer(50);
...
mvInfo.setMRPace(pace.readSensor);
...
waitForTimeout(period);
} } ...
} public class BackRotorEncoder { ...
public void run { while (true) {
Timer period = new Timer(50);
...
mvInfo.setBRPace(pace.readSensor);
...
waitForTimeout(period);
}} ...
}
15 Federal-University-of-Technology-– Paraná
[ ] l oop
<< SA resou rce>>
: Mo vemen tI nf ormat io n MR In fo
<< SA sch edR es> >
: Mo vemen tC on tr ol er movC t r l
: Ma inR ot or A ctu at or MR Act
<< NF R _D ist r ibu ti on >>
: S emap hor e se mMR I nf o
<< SA sch edu ler >>
<< NF R _Ti ming >>
: S che dul er sch ed
<< RTcl ock> >
<< NF R _Ti ming >>
: Ti me r f re qC trl
mrRo ta ti on 7:
mrPa ce 9:
2:
se tD el ay( de lay =15 ) 3:<< RTse t> >
<< RTst ar t >>4:st ar t ()
<< GRMa cqui re>>
ac qui re () 5:
ge tR ot ( ) 6:
ge tP ace () 8:
<< GRMrel eas e>>
rel ease () 10:
se tR ot at io n(newVal ue= new MR Ro ta ri on ) 36:
se tP ace (n ewVal ue= new MR Pa ce) 37:
ap ply Pa ra mete rs() 38:
w ai tF orTi me out ( ti mer=f r eqC t rl ) 40:
41:
run( ) 1:
[ ] l oop
Tratamento1de1RNF1em1 Abordagens1Tradicionais
public class MovementControl { ...
public void run { while (true) {
Timer period = new Timer(20);
...
mrRto = mrInfo.getRotation();
...
waitForTimeout(period);
} } ...
}
public class EnvironmentEncoder{
...
public void run { while (true) {
Timer period = new Timer(100);
...
waitForTimeout(period);
} } ...
}
public class MainRotorEncoder { ...
public void run { while (true) {
Timer period = new Timer(50);
...
mvInfo.setMRPace(pace.readSensor);
...
waitForTimeout(period);
} } ...
} public class BackRotorEncoder { ...
public void run { while (true) {
Timer period = new Timer(50);
...
mvInfo.setBRPace(pace.readSensor);
...
waitForTimeout(period);
}} ...
}
Nas-abordagem-tradicionais,-o-tratamento-dos-RNF-é- disperso e-misturado em-vários1elementos1 diferentes1artefatos1(diagramas-ou-código fonte)
L Dificulta1o-reuso dos-artefatos
L Dificulta o-entendimento das-especificações-e- do-código-fonte
L Aumenta1o1custo1e1a1complexidade1do1projeto
16
<< SA resou rce>>
: Mo vemen tI nf ormat io n MR In fo
<< SA sch edR es> >
: Mo vemen tC on tr ol er movC t r l
: Ma inR ot or A ctu at or MR Act
<< SA sch edu ler >>
<< NF R _Ti ming >>
: S che dul er sch ed
mrRo ta ti on 7:
mrPa ce 9:
ge tR ot ( ) 6:
ge tP ace () 8:
se tR ot at io n(newVal ue= new MR Ro ta ri on ) 36:
se tP ace (n ewVal ue= new MR Pa ce) 37:
ap ply Pa ra mete rs() 38:
run( ) 1:
<<S Atr i gger>>
{ SAoccurr ence = (per iodi c, 15, m s)}
Separação1dos1Requisitos
<< SA resou rce>>
: Mo vemen tI nf ormat io n MR In fo
<< SA sch edR es> >
: Mo vemen tC on tr ol er movC t r l
: Ma inR ot or A ctu at or MR Act
<< SA sch edu ler >>
<< NF R _Ti ming >>
: S che dul er sch ed
mrRo ta ti on 7:
mrPa ce 9:
ge tR ot ( ) 6:
ge tP ace () 8:
se tR ot at io n(newVal ue= new MR Ro ta ri on ) 36:
se tP ace (n ewVal ue= new MR Pa ce) 37:
ap ply Pa ra mete rs() 38:
run( ) 1:
<<S Atr i gger>>
{ SAoccurr ence = (per iodi c, 15, m s)}
Separação1dos1Requisitos
: Mov movControl Scheduler
<<TimeEvent>>
run 1:
{ every = “(15, ms)” }
Federal-University-of-Technology-– Paraná
<< SA resou rce>>
: Mo vemen tI nf ormat io n MR In fo
<< SA sch edR es> >
: Mo vemen tC on tr ol er movC t r l
: Ma inR ot or A ctu at or MR Act
<< SA sch edu ler >>
<< NF R _Ti ming >>
: S che dul er sch ed
mrRo ta ti on 7:
mrPa ce 9:
ge tR ot ( ) 6:
ge tP ace () 8:
se tR ot at io n(newVal ue= new MR Ro ta ri on ) 36:
se tP ace (n ewVal ue= new MR Pa ce) 37:
ap ply Pa ra mete rs() 38:
run( ) 1:
<<S Atr i gger>>
{ SAoccurr ence = (per iodi c, 15, m s)}
Separação1dos1Requisitos
: Mov movControl Scheduler
<<TimeEvent>>
run 1:
{ every = “(15, ms)” }
Como-separar1o1tratamento1dos-requisitos- durante-todas1as-fases1do1projeto,-lidando-
adequadamente-com-o-aumento1da1 complexidade?
Engenharia1Guiada1por1Modelos +1Paradigma1Orientado1a1Aspectos
19
Antes1de1começar...
conceitos1básicos!!!
Engenharia1 Guiada1por1
Modelos
Federal-University-of-Technology-– Paraná
Engenharia1Guiada1por1Modelos1(MDE)
! MDE-promove-o-aumento1do1nível1de1 abstração no-desenvolvimento-do-projeto
◦ Das-linguagens-de-3ª geração-para-modelos
◦ Do-foco1do1projeto1muda:-da-escrita-de-código- para-a-criação1de1modelos
! Modelos são-considerados-os-artefatos1 mais1importantes no-projeto
◦ O1código1fonte1é1gerado1automaticamente1a1 partir1dos1modelos
22
Federal-University-of-Technology-– Paraná
MDE:1Uma1ponte1real
Source:1http://www.visitingdc.com/san4francisco/golden4gate4bridge4picture.asp 23 Federal-University-of-Technology-– Paraná
MDE:1Desenhos da1Ponte
Slide1source:1https://blog.itu.dk/SMDD4E2009/ 24
Federal-University-of-Technology-– Paraná
MDE:1Planta Baixa da1Ponte
Source:1http://www.ahs4inc.biz/open4spandrel/thomaston4drawing.html 25 Federal-University-of-Technology-– Paraná
MDE:1Maquete1da1Ponte
Slide1source:1https://blog.itu.dk/SMDD4E2009/ 26
Federal-University-of-Technology-– Paraná
MDE:1Modelos de1Simulação
Slide1source:1https://blog.itu.dk/SMDD4E2009/ 27 Federal-University-of-Technology-– Paraná
MDE:1Modelos Matemáticos
Slide1source:1https://blog.itu.dk/SMDD4E2009/ 28
E1para1o1Software?!?
Parte1de1um1Software
Federal-University-of-Technology-– Paraná
Modelo1Informal1do1Software
Slide1source:1https://blog.itu.dk/SMDD4E2009/ 31 Federal-University-of-Technology-– Paraná
UML1– Diagrama1de1Classes
32
Federal-University-of-Technology-– Paraná
UML1– Diagrama1de1Sequência
33 Federal-University-of-Technology-– Paraná
Engenharia1Guiada1por1Modelos1(MDE)
! Um-modelo é-a-abstração de-“alguma-coisa”
◦ Ex.:-sistema,-componente,-processo,-software,-etc.
! Apresenta-um1perspectiva1em1particular
◦ Ponto-de-vista-ou-visão-específica
! Tem-um-propósito1específico
34
Federal-University-of-Technology-– Paraná
Engenharia1Guiada1por1Modelos1(MDE)
! MDE se-baseia no-conceito-de-Plataforma
◦ Conjunto-de-subsistemas e-tecnologias
◦ Fornece-um-conjunto bem-definido-de-serviços
◦ Serviços-são-fornecidos-através-de-interfaces1 bem1definidas
! Uma-plataforma-é-algo-relativo...
◦ Mainframe/Desktop,-J2EE/.Net,-Java/C/Assembly,- RISC/CISC/VLIW,-Microcontrolador/DSP,-SystemLonL chip/NetworkLonLChip,-ASIP/FPGA,-etc.
35 Federal-University-of-Technology-– Paraná
Engenharia1Guiada1por1Modelos1(MDE)
! Modelo1Independente1de1Plataforma1(PIM)
◦ As-características-de-um-sistema-são-vistas-sem1 considerar1a1implementação em-qualquer- plataforma-alvo
! Modelo1Específico1de1Plataforma1(PSM)
◦ Um-sistema-é-visto-como-conceitos-e-serviços- fornecidos-por-uma-determinada1plataforma1alvo
◦ Combina o-PIM de-um-sistema-com-detalhes de- como esse-sistema-usará os-serviços fornecidos- pela-plataforma1alvo
36
Federal-University-of-Technology-– Paraná
O1que1é1a1UML?
! UML1=1Unified Modeling Language
! UML1é1uma1linguagem (notação-com-semântica- associada)-para:
◦ Visualizar,-Especificar,-Construir-e-Documentar
! UML1não1é1um1método1(ou1metodologia)
◦ Não-diz-quem-deve-fazer-o-quê,-quando-e-como
◦ UML-pode-ser-usado-segundo-diferentes-metodologias,- tais-como-RUP,-FDD-(Feature Driven Development),-etc.
! UML1não1é1uma1linguagem1de1programação
37 Federal-University-of-Technology-– Paraná
Por que usar UML?
! É-um-padrão1aberto1aceito-e-estabelecido-pela-comunidade
◦ versão-1.1-aprovada-pelo-OMG-(Object Management-Group)-em- Novembro-de-1997,-atualmente-versão-2.5-(UML2)-– 7941páginas
! Suporta-todo-o-ciclo-de-vida-do-software
◦ modelagem-do-negócio-(processos-e-objetos-de-negócio)-
◦ modelagem-de-requisitos-alocados-ao-software
◦ modelagem-da-solução-de-software
! Suporta1diversas1áreas1de1aplicação (pode-ser-estendida)
! É-baseada-na-experiência1e1necessidades da-comunidade- de-usuários-e-desenvolvedores-de-software
! É1suportada1por1muitas1ferramentas
38
Federal-University-of-Technology-– Paraná
Origens1da1UML
Booch
Booch methodMeyer
Before and afterconditions
Harel
StatechartsGamma, et al
Frameworks and patterns,HP Fusion
Operation descriptions and message numberingEmbley
Singleton classes and high-level viewWirfs-Brock
ResponsibilitiesOdell
Classification
Shlaer - Mellor
Object lifecycles
Rumbaugh
OMT
Jacobson
OOSE
39 Federal-University-of-Technology-– Paraná
Áreas Semânticas da1UML
40
Diagramas da1UML12.5 UML:1Modelos vs.1Diagramas
Use Case DiagramsUse Case
Diagrams Diagramas de Casos de Uso
Scenario DiagramsScenario
Diagrams Diagramas de
Colaboração
State DiagramsState
Diagrams Diagramas de Componentes
Component DiagramsComponent
Diagrams Diagramas de
Distribuição State DiagramsState
DiagramsDiagramas de Objetos
Scenario DiagramsScenario
Diagrams Diagramas de
Estados Use Case DiagramsUse Case
Diagrams Diagramas de
Sequência
State DiagramsState
Diagrams Diagramas de
Classes
Diagramas de Atividades
Modelos
Federal-University-of-Technology-– ParanáRoman,1Trask 4 Introduction to Model Driven Engineering using Eclipse1Frameworks1 43 Federal-University-of-Technology-– ParanáRoman,1Trask 4 Introduction to Model Driven Engineering using Eclipse1Frameworks1 44
Federal-University-of-Technology-– ParanáRoman,1Trask 4 Introduction to Model Driven Engineering using Eclipse1Frameworks1 45 Federal-University-of-Technology-– Paraná
MDE:1Camadas de1Modelagem
Instância(s) Modelo MetaLModelo
MetaLMeta- Modelo
Respeita1o Respeita1o
Respeita1o
Representado1por
M3 M2
M1
M0 Mundo1Real
Modelo1do1Mundo1Real Gramática1do1Modelo Especificação1da1Gramática
46
Federal-University-of-Technology-– Paraná
MDE:1Camadas1de1Modelagem
Instância(s) Modelo MetaLModelo
MetaLMeta- Modelo
Respeita1o Respeita1o
Respeita1o
Representado1por
M3 M2
M1 M0
DSML1 MOF
Roda-Traseira-Direita Roda-Dianteira-Esquerda
Roda-Dianteira-Direita
SensorRoda Controlador
UML DSML2
Respeita1o
Represented1by Respeita1o
Respeita1o Respeita1o
Estende
MDA
47 Federal-University-of-Technology-– Paraná
MDE:1Transformações1Entre1Modelos
! Converter-um-modelo-em-outro-modelo-do- mesmo-sistema:
◦ com-o-mesmo-nível-de-abstração/detalhamento
◦ para-um-modelo-mais-abstrato
◦ para-um-modelo-mais-detalhado PIM
PSM
Transformação
48
Federal-University-of-Technology-– Paraná
MDE:1Transformações1Entre1Modelos
M2 M1
Meta4Model da1UML
Meta4Model RT4Java
Anti4lock Bracking System
Modelo RT4Java
Modelo-Fonte MetaLModelo
Fonte Regras1das1
Transformações MetaLModelo- Alvo
Motor1de1
Transformação Modelo-Alvo
Respeita1ao Respeita1ao
Usa Usa
Executado1por
Entrada Saída
49 Federal-University-of-Technology-– Paraná
Eclipse1Modeling1Framework1(EMF)
! EMF-é-um-framework1de1 modelagem1baseada-no-Eclipse
! EMF-fornece-facilidades1para-adicionar-a-geração1 de1código em-ferramentas-e-também-outros- aplicativos,-baseandoLse-em-um-modelo1de1dados1 estruturado
! Ecore é1o1(meta4)modelo1chave1do1EMF e- permite-expressar-outros-modelos-através-de-suas- construções
◦ O-projeto-UML2 é-uma-implementação baseada-em-EMF do-meta4modelo1UML12.x1para-a-plataforma-Eclipse
50
Paradigma1 Orientado1a1
Aspectos
Federal-University-of-Technology-– Paraná
Desenvolvimento1de1Software1 Orientado1a1Aspectos1(AOSD)
! Paradigma-de-programação-que-aumenta1a1 modularidade1através-da-separação das- preocupações1transversais1(crosscutting concerns)
! “Preocupações-Transversais”?!?!?
◦ Partes de-um-sistema1que-depende1de1ou-afetam1 várias1outras1partes1deste-mesmo-sistema
" Não pode-ser-encapsulado em-uma-única1unidade1de1
modularização nas-abordagens-tradicionais
" Ex.:-Log-em-um-software,-controle-de-transações,-controle-de-acesso-
a-recursos-compartilhados,-etc.
52
AOSD:1Conceitos
! Aspecto
◦ Unidade1de1modularização que-lida-com-as- preocupações1transversais
" Adaptações:1alterações no-comportamento ou-na-estrutura do-
sistema-para-tratar as-preocupações1transversais
" Pointcuts:1especificam-as-relações entre-join4points e-as-
adaptações dos-aspectos
! Join4points
◦ Pontos1na1execução de-um-sistema-onde-os-aspectos- aplicam-suas-adaptações
" Chamadas-de-métodos,-execução-de-métodos,-acesso-de-
leitura/escrita-em-atributos
1.
public class HelloWorld {
2.
public void say(String message){
3.
System.out.println(message); }
4.
public void sayToPerson(String message, String name){
5.
System.out.println(name + ", " + message);}
6.
}
7.
public aspect MannersAspect {
8.pointcut callSayMessage() :
9.
call(public void HelloWorld.say*(..));
10.
before() : callSayMessage() {
11.System.out.println("Good day!");}
12.
after() : callSayMessage() {
13.
System.out.println("Thank you!");}
14.
}
AOSD:1Exemplo
Federal-University-of-Technology-– Paraná 1.
public class HelloWorld {
2.
public void say(String message){
3.
System.out.println(message); }
4.
public void sayToPerson(String message, String name){
5.
System.out.println(name + ", " + message);}
6.
}
7.
public aspect MannersAspect {
8.pointcut callSayMessage() :
9.
call(public void HelloWorld.say*(..));
10.
before() : callSayMessage() {
11.System.out.println("Good day!");}
12.
after() : callSayMessage() {
13.
System.out.println("Thank you!");}
14.
}
AOSD:1Exemplo
1.
public class HelloWorld {
2.public void say(String message){
3.
System.out.println("Good day!");
4.
System.out.println(message);
5.
System.out.println("Thank you!");
6.
}
7.
public void sayToPerson(String message, String name){
8.
System.out.println("Good day!");
9.
System.out.println(name + ", " + message);
10.
System.out.println("Thank you!");
11.
}
12.}
55
Retornando...
Federal-University-of-Technology-– Paraná
<< SA resou rce>>
: Mo vemen tI nf ormat io n MR In fo
<< SA sch edR es> >
: Mo vemen tC on tr ol er movC t r l
: Ma inR ot or A ctu at or MR Act
<< SA sch edu ler >>
<< NF R _Ti ming >>
: S che dul er sch ed
mrRo ta ti on 7:
mrPa ce 9:
ge tR ot ( ) 6:
ge tP ace () 8:
se tR ot at io n(newVal ue= new MR Ro ta ri on ) 36:
se tP ace (n ewVal ue= new MR Pa ce) 37:
ap ply Pa ra mete rs() 38:
run( ) 1:
<<S Atr i gger>>
{ SAoccurr ence = (per iodi c, 15, m s)}
Separação1dos1Requisitos
: Mov movControl Scheduler
<<TimeEvent>>
run 1:
{ every = “(15, ms)” }
Como-separar1o1tratamento1dos-requisitos- durante-todas1as-fases1do1projeto,-lidando-
adequadamente-com-o-aumento1da1 complexidade?
Engenharia1Guiada1por1Modelos +1Paradigma1Orientado1a1Aspectos
57 Federal-University-of-Technology-– Paraná
Estado1da1Arte:1Resumo1dos1 Problemas1Encontrados
! Uso-de-OO-no-projeto-de-Sist.-Embarcados-de-TempoLReal
◦ Vários-trabalhos,-nenhum1(???)1aborda1o1tratamento1de1RNF
! Uso-de-UML-para-modelar-Sist.-Embarcados-de-TempoLReal
◦ Comportamento é-descrito usando-linguagens de-ação-textuais
◦ Uso-de-perfis1proprietários1– MARTE-vem-sendo-bastante-utilizado
! Separação-do-tratamento-de-RF-e-RNF-em-fases-iniciais
◦ Falta1de1padrões1para-modelar-RF-e-RNF
◦ Poucos-trabalhos-abordam-a-sua-aplicação-no-projeto-de-SETR
◦ Faltam trabalhos-aplicando-aspectos1específicos1no-projeto-de-SETR
! Geração-de-código-a-partir-de-modelos-UML
◦ Não1consideram1RNF
◦ Informação1espalhada em-vários-diagramas-não é combinada
◦ Geração1de1código1limitada do-comportamento1do-SETR
58
Federal-University-of-Technology-– Paraná
MDE1no1(co4)Projeto1de1Sistemas1 Embarcados1de1Tempo4Real
! AspectLoriented ModelLDriven Engineering for-RealLTime- systems-(AMoDELRT)
◦ Combina conceitos-de-AOSD com-técnicas-de-MDE
◦ Segue-alguns-princípios-do-Projeto1Baseado1em1Plataformas1 (Platform0based Design)
! Foco-na-especificação1de1alto1nível do-SETR-– RTLUML
◦ UML anotados-com-estereótipos-do-perfil-MARTE
! Transição1suave1da1especificação1para1a1implementação
◦ Análise-de-Requisitos-(RT4FRIDA)
◦ Framework-de-Aspectos-(DERAF)
◦ Regras-de-Modelagem-+-Regras-de-Transformação-(DERCS)
◦ Verificação automatizada da-especificação (AT4U – casos-de-teste- sobre-o-modelo-UML)
◦ Ferramenta-para-geração-de-código-+-entrelaçamento-de-aspectos- (GenERTiCA)
59 Federal-University-of-Technology-– Paraná
MDE1no1(co4)Projeto1de1Sistemas1 Embarcados1de1Tempo4Real
! AspectLoriented ModelLDriven Engineering for-RealLTime- systems-(AMoDELRT)
◦ Combina conceitos-de-AOSD com-técnicas-de-MDE
◦ Segue-alguns-princípios-do-Projeto1Baseado1em1Plataformas1 (Platform0based Design)
! Foco-na-especificação1de1alto1nível do-SETR-– RTLUML
◦ UML anotados-com-estereótipos-do-perfil-MARTE
! Transição1suave1da1especificação1para1a1implementação
◦ Análise-de-Requisitos-(RT4FRIDA)
◦ Framework-de-Aspectos-(DERAF)
◦ Regras-de-Modelagem-+-Regras-de-Transformação-(DERCS)
◦ Verificação automatizada da-especificação (AT4U – casos-de-teste- sobre-o-modelo-UML)
◦ Ferramenta-para-geração-de-código-+-entrelaçamento-de-aspectos- (GenERTiCA)
60
Federal-University-of-Technology-– Paraná 61
Visão Geral da1AMoDE4RT
Libraries Mapping Rules
(XML)
Sw/Hw Platforms DERAF Aspects Implementation
(10)
RT-UML Specification
+ DERAF
(5)
RT-UML Model Transformation
(6)
DERCS Model
(7)
GenERTiCA Code Generation
+ Aspects Weaving
(9)
Generated Source Code (12)
Code Compilation
and Synthesis
(11)
Distributed Embedded Real-Time System Modeling
Requirements (4) (2)
Requirements Analysis
(1)
Simulation of Model Execution
and Testing
(8)
Aspects Framework
(DERAF)
(3)
Federal-University-of-Technology-– Paraná
Estudo1de1Caso:1Helicóptero1não4Tripulado
! Unmanned Aerial Vehicle (UAV)
◦ Voa1sem1piloto1a1bordo
! Várias-aplicações
◦ Resgate/Monitoramento
◦ Aplicações-Militares
◦ Vigilância,-etc. ! UAV1tem1vários1RNF
◦ Tempo/temporização
◦ Acesso1concorrente1a- recursos-compartilhado
◦ Várias-tarefas1executando- em1CPUs diferentes
◦ Recursos1limitados,-etc.
62
Federal-University-of-Technology-– Paraná
Especificação1do1Sistema
! Regras-de-modelagem-devem-ser-obedecidas
◦ Diagramas-UML versão-2.x
◦ Estereótipos-do-perfil-MARTE
" Time1
" General1Resource Modeling (GRM)
" Hardware1Resource Model (HW_General)1(HRM)
! Requisitos-Funcionais
◦ Estrutura:-Classest-Estruturas-compostat-e-de- Distribuição-(deployment)
◦ Comportamento:-Sequênciat-Atividadest-e- Estados
63 Federal-University-of-Technology-– Paraná
Estereótipos1do1perfil1MARTE
64
Sistema1de1Controle1de1Movemento:1
Diagrama1de1Casos1de1Uso Tratamento1dos1RF:1Especificação-da-
Estrutura com-Diagrama1de1Classes*
Federal-University-of-Technology-– Paraná
Tratamento1dos1RF:1Especificação-do- Comportamento-com-Diag.1de1Sequência*
*1Diagrama1do1modelo1do1UAV1a1nível1de1projeto 67 Federal-University-of-Technology-– Paraná
Especificação1dos1RNF
! Preocupações-Transversais
◦ Diagramas1de1casos1de1uso mostram-quais1 funcionalidades são-afetadas pelas- preocupações1transversais
68
Federal-University-of-Technology-– Paraná
Diagrama1de1Casos1de1uso:1 Preocupações Transversais
69 Federal-University-of-Technology-– Paraná
Especificação1dos1RNF
! Aspectos
◦ Aspects Crosscutting Overview1Diagram(ACOD)
" É-uma-especialização-do-diagrama-de-classes
" Mostra-aspectos1afetando1as1classes do-sistema
" Especifica-os-pointcuts relacionados-ao-aspectos
◦ Distributed Embedded Real4time1Aspects Framework (DERAF)
! Join Points
◦ Join Point1Designation Diagram (JPDD)
" Especializações-dos-diagramas-de-sequência-e-classes
◦ Descrevem-a-seleção dos-elementos que-serão-afetados pelas-adaptações-dos-aspectos
" Analogia:-comando-‘select’ do-SQL com-clausula-‘where’
70
Federal-University-of-Technology-– Paraná
Framework1de1Aspectos1para1 Níveis1mais1Altos1de1Abstração
! Distributed Embedded Real4time1Aspects Framework1(DERAF)
◦ Aspectos voltados-para o-domínio de-Sistemas- Embarcados-de-TempoLReal
◦ Regras-de-adaptação
" Adaptações1Estruturais1e1Comportamentais
" Seleção-dos-elementos-afetados:-Join Points e-Pointcuts
! Aspectos1abstratos1(semântica-em-alto-nível)
◦ Define-O1QUE1um-aspecto-deve-fazer-(i.e.- adaptações)
◦ NÃO define-COMO implementar
71 Federal-University-of-Technology-– Paraná
Framework1de1Aspectos1para1 Níveis1mais1Altos1de1Abstração
! DERAF é-usado-em-modelos-RT4UML e- também-na-geração1de1código
! Regras1de1mapeamento:-de-aspectos-do- DERAF-para-serviços-da-plataforma-alvo
◦ Já1foram1especificadas1regras1de1mapeamento1 para1plataformas1de1software1e,1inclusive,1 regras1de1DERAF1para1VHDL1(!!!)
72
Federal-University-of-Technology-– Paraná
<<Non-Functional>>
Embedded
<<Aspect>>
MemoryUsageMonitoring
<<Aspect>>
MemoryUsageControl
<<Aspect>>
HwAreaMonitoring
<<Aspect>>
EnergyMonitoring
<<Aspect>>
HwAreaControl
<<Aspect>>
EnergyControl
<<Non-Functional>>
Timing
<<Aspect>>
TimeBoundedActivity <<Aspect>>
SchedulingSupport
<<Aspect>>
TimingAttributes <<Aspect>>
PeriodicTiming
<<Non-Functional>>
Communication
<<Aspect>>
MessageCompression
<<Aspect>>
MessageIntegrity
<<Aspect>>
MessageAck
<<Non-Functional>>
TaskAllocation
<<Aspect>>
NodeStatusRetrieval
<<Aspect>>
TaskMigration
<<Non-Functional>>
Synchronization
<<Aspect>>
ConcurrentAccessControl
<<Aspect>>
MessageSynchronization
<<Non-Functional>>
Precision
<<Aspect>>
DataFreshness
<<Aspect>>
ToleratedDelay
<<Aspect>>
ClockDrift
<<Aspect>>
Jitter
<<use>>
<<use>>
<<use>>
<<use>>
<<use>>
<<use>>
<<use>>
<<use>> <<use>>
<<use>>
<<use>>
<<use>>
<<use>>
DERAF
73 Federal-University-of-Technology-– Paraná
<<Non-Functional>>
Embedded
<<Aspect>>
MemoryUsageMonitoring
<<Aspect>>
MemoryUsageControl
<<Aspect>>
HwAreaMonitoring
<<Aspect>>
EnergyMonitoring
<<Aspect>>
HwAreaControl
<<Aspect>>
EnergyControl
<<Non-Functional>>
Timing
<<Aspect>>
TimeBoundedActivity <<Aspect>>
SchedulingSupport
<<Aspect>>
TimingAttributes <<Aspect>>
PeriodicTiming
<<Non-Functional>>
Communication
<<Aspect>>
MessageCompression
<<Aspect>>
MessageIntegrity
<<Aspect>>
MessageAck
<<Non-Functional>>
TaskAllocation
<<Aspect>>
NodeStatusRetrieval
<<Aspect>>
TaskMigration
<<Non-Functional>>
Synchronization
<<Aspect>>
ConcurrentAccessControl
<<Aspect>>
MessageSynchronization
<<Non-Functional>>
Precision
<<Aspect>>
DataFreshness
<<Aspect>>
ToleratedDelay
<<Aspect>>
ClockDrift
<<Aspect>>
Jitter
<<use>>
<<use>>
<<use>>
<<use>>
<<use>>
<<use>>
<<use>>
<<use>> <<use>>
<<use>>
<<use>>
<<use>>
<<use>>
Embedded
Real4time Distributed
DERAF
74
Federal-University-of-Technology-– Paraná
Tratamento-dos-RNF:-Aspects Crosscutting Overview1Diagram (ACOD)
75 Federal-University-of-Technology-– Paraná
Tratamento-dos-RNF:-Aspects Crosscutting Overview1Diagram (ACOD)
Adaptações
Pointcuts Informação Transversal
76
Tratamento-dos-RNF:-Aspects1Crosscutting1 Overview1Diagram1(ACOD)
Join1Point
Posição1Relativa Pointcut
Adaptação
Ferramentas1de1Suporte1da1AMoDE4RT
! Apoio1de1ferramentas1CASE1é1essencial para-qualquer1 metodologia
◦ Principalmente,-as-que-seguem-a-MDE
◦ Reuso de-artefatos-previamente-criados-e-automação1das1tarefas do- projeto-diminui o-esforço necessário-para-completar o-projeto
! AT4U – Automated Testing for-UML
◦ Executa-automaticamente-um-conjunto-de-casos-testes-sobre-um- modelo-DERCS
◦ Nenhuma-implementação-(de-partes-do)-sistema-é-necessária-para- verificar-o-comportamento-funcional-do-sistema
! GenERTiCA:-Generation of Embedded RealLTime-Code based on Aspects
◦ Síntese-e-transformação-dos-modelos
◦ Geração-automática-de-código
◦ Entrelaçamento-de-aspectos-(Aspects Weaving)
Federal-University-of-Technology-– Paraná
p u b l i c c l a s s M o v e m e n t C o n t r o l e r e x t e n d s R e a l t i m e T h r e a d { . . .p r i v a t e s t a t i c R e l a t i v e T i m e _ P e r i o d
= n e w R e l a t i v e T i m e ( 0 , 0 , 0 ) ; p r i v a t e s t a t i c P e r i o d i c P a r a m e t e r s _ P e r i o d i c P a r a m s = n e w P e r i o d i c P a r a m e t e r s ( n u l l , n u l l , n u l l , n u l l , n u l l ) ; . . .p u b l i c v o i d r u n ( ) {
/ / V a r i a b l e s i n t n e w M R R o t a t i o n ; . . . / / A c t i o n s w h i l e ( i s R u n n i n g ( ) ) {
m r R o t a t i o n = M R I n f o . g e t R o t a t i o n ( ) ;
m r P a c e = M R I n f o . g e t P a c e ( ) ; . . . w a i t F o r N e x t P e r i o d ( ) ; } } . . . }
p u b l i c c l a s s M o v e m e n t C o n t r o l e r e x t e n d s R e a l t i m e T h r e a d { . . .p r i v a t e s t a t i c R e l a t i v e T i m e _ P e r i o d
= n e w R e l a t i v e T i m e ( 0 , 0 , 0 ) ; p r i v a t e s t a t i c P e r i o d i c P a r a m e t e r s _ P e r i o d i c P a r a m s = n e w P e r i o d i c P a r a m e t e r s ( n u l l , n u l l , n u l l , n u l l , n u l l ) ; . . .p u b l i c v o i d r u n ( ) {
/ / V a r i a b l e s i n t n e w M R R o t a t i o n ; . . . / / A c t i o n s w h i l e ( i s R u n n i n g ( ) ) {
m r R o t a t i o n = M R I n f o . g e t R o t a t i o n ( ) ;
m r P a c e = M R I n f o . g e t P a c e ( ) ; . . . w a i t F o r N e x t P e r i o d ( ) ; } } . . . }
p u b l i c c l a s s M o v e m e n t C o n t r o l e r e x t e n d s R e a l t i m e T h r e a d { . . .p r i v a t e s t a t i c R e l a t i v e T i m e _ P e r i o d
= n e w R e l a t i v e T i m e ( 0 , 0 , 0 ) ; p r i v a t e s t a t i c P e r i o d i c P a r a m e t e r s _ P e r i o d i c P a r a m s = n e w P e r i o d i c P a r a m e t e r s ( n u l l , n u l l , n u l l , n u l l , n u l l ) ; . . .p u b l i c v o i d r u n ( ) {
/ / V a r i a b l e s i n t n e w M R R o t a t i o n ; . . . / / A c t i o n s w h i l e ( i s R u n n i n g ( ) ) {
m r R o t a t i o n = M R I n f o . g e t R o t a t i o n ( ) ;
m r P a c e = M R I n f o . g e t P a c e ( ) ; . . . w a i t F o r N e x t P e r i o d ( ) ; } } . . . }
Entrelaçamento de-Aspectos
Code1Generation
+
Aspects1Weaving Transformation
Synthesis
DERCS
Source1 Code RTLUML
Diagrams RTLUML Diagrams
79
Mapping Rules (XML)
DERAF1Aspects Implementation
+
Federal-University-of-Technology-– Paraná
GenERTiCA:1Elementos-Principais
! “Síntese” do-modelo-UML
◦ Distributed Embedded Real4time1Compact Specification (DERCS)
◦ Modelo-Independente-de-Platforma (PIM)
" Estrutura-+-Comportamento-+-Tratamento-dos-RNF
◦ Adequado-para-geração1de1código1(completo)1e- outras1tarefas1que-exigem-“precisão”-na- semântica-da-especificação
! Regras1de1Mapeamento descritas-em-XML
◦ Scripts-para-a-geração-de-código
" Velocity Template Engine
80
Federal-University-of-Technology-– Paraná
DERCS:1Overview1dos1Pacotes
81 Federal-University-of-Technology-– Paraná
DERCS:1Overview1dos1Pacotes
BehavioralAdaptation StructuralAdaptation
<<enumeration>>
RelativePosition
MODIFY_STRUCTURE ADD_NEW_FEATURE AROUND BEFORE AFTER
AspectAdaptation NamedElement
Crosscutting Aspect
Crosscutting Information BaseElement
Pointcut Joinpoint
−StructuralAdaptations 0..*
1
−BehavioralAdaptations 0..*
1
−SelectedElements 0..*
1
−AffectedElement 1
0..*
−RelativePosition 1 1
−Crosscuting0..*
−Pointcuts 0..*
1
−AspectAdaptation 1 1
−CrosscutingInfo 1 0..*
1..*
Elementos1que1podem1
1ser1selecionados:
L Classes LAtributos L Métodos L Objetos L Nós
L Comportamentos LAções
82
Federal-University-of-Technology-– Paraná
Relembrando:1
Transformações1Entre1Modelos
Modelo-Fonte MetaLModelo
Fonte
M2 M1
Regras-das- Transformações
MetaLModelo- Alvo
Motor-de-
Transformação Modelo-Alvo
Respeita1ao Respeita1ao
Usa Usa
Executado1por
Entrada Saída
Meta4Modelo da1UML
Meta4Modelo DERCS
UAV UAV
UML para DERCS
83 Federal-University-of-Technology-– Paraná
Transformação1UML!DERCS:
Elementos1Estruturais
84
Federal-University-of-Technology-– Paraná
Transformação1UML!DERCS:
Elementos1Estruturais
85 Federal-University-of-Technology-– Paraná
Transformação1UML!DERCS:
Elementos1Comportamentais
86
Federal-University-of-Technology-– Paraná
Transformação1UML!DERCS:
Elementos1Comportamentais
87 Federal-University-of-Technology-– Paraná
Transformação UML4DERCS
88
Behavior-(loop)
CreateObjectAction (msg 3) Behavior-(branch)
SendMessageAction (msg 4) AssignmentAction (msg 5) SendMessageAction (msg 6) Behavior-(branch-alternative)
SendMessageAction (msg 7) AssignmentAction (msg 8) AssignmentAction (msg 9)---
(sched,-ctrl,-behav_run) (ctrl,-act,-behav_setActValue)
SendMessageAction (msg 2) Transformação
UML4DERCS
SendMessageAction (msg 2) SendMessageAction (msg 10) (sched,-ctrl,-behav_run)
(ctrl,-act,-behav_setActValue) (ctrl,-ctrl,-behav_processInfo) SendMessageAction (msg 10)--- Behavior-(branch)
SendMessageAction (msg 11) AssignmentAction (msg 12) SendMessageAction (msg 13) AssignmentAction (msg 14) Transformação
UML4DERCS
Federal-University-of-Technology-– Paraná
Transformações-Modelo-para-Texto
Modelo-Fonte MetaLModelo
Fonte
M2 M1
Regras-das-
Transformações MetaLModelo- Alvo
Motor-de-
Transformação Código Fonte
Respeita1ao Respeita1ao
Usa Usa
Executado1por
Entrada Saída
Meta4Modelo da1DERCS
Meta4Modelo PSM
UAV Implementação
do1UAV DERCS1para
PSM1(XML)
91 Federal-University-of-Technology-– Paraná
+-Entrelaçamento-de-Aspectos
! Regras-são-descritas-em-formato-XML
◦ Facilita1o1reuso das-regras-individuais
◦ Permite-a-criação1de1repositórios de-regras
! Cada-folha-na-árvore-XML-contem-scripts1concisos,1 e1com1objetivo1bem1delimitados
◦ Produzem-fragmentos1de1código1fonte
◦ Executam as-adaptações feitas-pelos-aspectos
! Implementação dos-aspectos1do1DERAF para-a- plataforma1alvo escolhida
92
Federal-University-of-Technology-– Paraná
Regras1de1Mapeamento:1 Organização-da-Árvore-XML
Software
Hardware
Classes
Interrupts
Idem-Software Platforms
Platform
1Platform
2Platform
nApplication
Platform-Configuration
Source-Options Primary-Elements
Behavior
Aspects
Software
Hardware Used services
Used components Essa-abordagem de-geração de-
código é flexível e-suporta diferentes tipos de1linguagens alvo tanto para-componentes de- software como para-hardware
93 Federal-University-of-Technology-– Paraná
Processo1de1Geração1do1Código
! Resumo:-Aplicar1as1regras de-mapeamento- em-cada1elemento do-metaLmodelo-DERCS
! Fragmentos (de-código-fonte)-gerados-são- combinados em-arquivos1de1código1fonte
! Aspectos-DERAF-(especificados-no-modelo)
◦ Adaptam/modificam-os-fragmentos1de1código1 gerados conforme-a-semântica-das-adaptações
◦ Adaptam/configuram os-serviços necessários- na-plataforma1alvo
94
Federal-University-of-Technology-– Paraná
Geração1do1Código1da1Aplicação
95 Federal-University-of-Technology-– Paraná
Is Class affected by any
Aspect?
Is it affected by model level aspect
adaptations?
Is it affected by model level aspect
adaptations?
Is it affected by model level aspect
adaptations?
Is it affected by model level aspect
adaptations?
Is there any Class to
analyse?
Search mapping rule that fits with the selected Class
Select next Message Is there
any Attibute to analyse?
Select next Attribute Is there any Message to
analyse?
Is it Aspect?
Select next Action
Is there any Action to
analyse?
Select next Class Combine source code fragments Generate source code file
Execute script
Execute script Search script
to execute Search script
to execute
Search script to execute Initialization
Apply adaptations
Apply
adaptations Apply
adaptations
Apply adaptations Apply adaptations Apply
adaptations Apply adaptations
Apply adaptations
No
No
No
Yes Yes
No No
No No
No
Yes Yes
No
No
Yes
Yes Yes
No
No Yes
Yes
Yes
Yes Yes
affected by any Is it
Aspect?
affected by any Execute script
Is it Aspect?
affected by any selected
96