Http://gaph SDL Uma Linguagem de Especificação de Sistemas Luís Henrique Leal Ries...

Post on 18-Apr-2015

108 views 0 download

Transcript of Http://gaph SDL Uma Linguagem de Especificação de Sistemas Luís Henrique Leal Ries...

http://www.inf.pucrs.br/~gaph

SDLSDL

Uma Linguagem

de Especificação de Sistemas

Luís Henrique Leal Riesries@inf.pucrs.br

2

http://www.inf.pucrs.br/~gaph

SumárioSumário

• Introdução e HistóricoIntrodução e Histórico• Componentes (sistemas, blocos, processos)• MSC (Message Sequence Chart)• Editores SDL (Cinderella, Tau)• Co-Síntese (Archimate)• Comparações com outras linguagens• Conclusões

3

http://www.inf.pucrs.br/~gaph

IntroduçãoIntrodução

• Definição: É uma linguagem formal orientada a objetos que serve para especificar o comportamento de sistemas de tempo real.

• Vantagens: sintaxes gráficas (.GR) e textuais (.PR), definição de tipos de dados, reutilização do código, simulações em alto nível, geração de códigos em alto e baixo nível, concorrência, fácil especificação da comunicação de processos.

• Desvantagens: Dificuldade de criação, manipulação e visualização, quando a complexidade espacial for enorme para a representação gráfica.

4

http://www.inf.pucrs.br/~gaph

HistóricoHistórico

• 1972- Início da criação da linguagem pela CCITT (Comité Consultatif International Telegraphique e Telephonique).

• 1976 - especificação de um único processo

• 1982 - inter-comunicação de processos.

• 1988 - recebeu técnica de definição formal.

• 1992 - Adição de conceitos de Orientação a Objetos.

• 1996 - Revisão e clareza da linguagem.

• 2000 - Conceitos novos como utilização de UML.

5

http://www.inf.pucrs.br/~gaph

SumárioSumário

• Introdução e e Histórico

• Componentes(sistemas,blocos,processos)Componentes(sistemas,blocos,processos)• MSC (Message Sequence Chart)• Editores (Cinderella, Tau)• Co-Síntese (Archimate) • Comparações com outras linguagens• Conclusões

6

http://www.inf.pucrs.br/~gaph

ComponentesComponentes

• Estrutura: system, block, process e procedure.

• Dados: Tipos abstratos de dados, Pacotes.

• Comunicação: sinais e canais (rotas de sinais).

7

http://www.inf.pucrs.br/~gaph

Componentes - HierarquiaComponentes - Hierarquia

• Árvore hierárquica da estrutura de SDL

Procedure

System

Block

Process

Package

8

http://www.inf.pucrs.br/~gaph

Componentes - SystemComponentes - System

No sistema se insere a especificação do circuitoatravés dos blocos e da comunicação entre este

e com o ambiente.

9

http://www.inf.pucrs.br/~gaph

Componentes - BlocksComponentes - Blocks

A função do bloco é fazer a comunicação interna dos sinais.Os objetivos dos blocos são: reduzir a complexidade atravésda estruturação hierárquica e permitir a inserção de rotas de

sinais entre blocos e com outros níveis de hierarquia.

10

http://www.inf.pucrs.br/~gaph

Componentes - ProcessComponentes - Process

O processo especifica um comportamento concorrente do programa, ou seja, é nele que são descritos a recepçãoe envio de sinais e a relação e operações entre estes sinais.

11

http://www.inf.pucrs.br/~gaph

Componentes - Process (Comandos Internos)Componentes - Process (Comandos Internos)

Recebe sinais de dentro de um process

Envia sinais de dentro de um process

Comentário

Estado ou Próximo Estado

Texto ou especificação de sinais

Decisão

Salvar um sinal

Task - Utilizado para fazer cálculos, declarações

Start - Inicio do Process Stop - para a execução

12

http://www.inf.pucrs.br/~gaph

Componentes - ProcedureComponentes - Procedure

O procedimento é uma chamada de uma subrotinaque contém a descrição de uma função que será

utilizada em um processo.

13

http://www.inf.pucrs.br/~gaph

Componentes - Componentes - Package

A função do Package é permitir

que o projetista defina Procedures,

sinais, tipos de dados, variáveis, constantes, etc

Note que para usar um Package em um dos componentes precisa-se usar o “Use Package”

14

http://www.inf.pucrs.br/~gaph

Componentes - Sinais e Canais Componentes - Sinais e Canais (Comunicação) (Comunicação)

Canais - responsáveis pela comunicação dos sinais (enviar e/ou receber) entre dois ou mais processos, blocos ou sistemas.

15

http://www.inf.pucrs.br/~gaph

SumárioSumário

• Introdução e Histórico• Componentes (sistemas, blocos, processos)• MSC (Message Sequence Chart)MSC (Message Sequence Chart)• Editores (Cinderella, Tau) • Co-Síntese (Archimate) • Comparações com outras linguagens• Conclusões

16

http://www.inf.pucrs.br/~gaph

MSCMSC

• MSC (Message Sequence Chart Language) é uma forma gráfica que serve para representar os sinais enviados e recebidos pelos componentes (processos, blocos).

17

http://www.inf.pucrs.br/~gaph

SumárioSumário

• Introdução e Histórico• Componentes (sistemas, blocos, processos)• Formas MSC

• Editores (Cinderella, Tau) Editores (Cinderella, Tau) • Archimate - uma ferramenta de Co-Síntese• Comparações com outras linguagens• Conclusões

18

http://www.inf.pucrs.br/~gaph

EditoresEditores

• Estes editores são ferramentas utilizadas para a descrição gráfica e textual dos sistemas computacionais.

• Todas estas ferramentas permitem a simulação concorrente da especificação e permitem a visualização da mesma no formato MSC.

• São eles:– Tau SDL (Telelogic) – Cinderella SDL

19

http://www.inf.pucrs.br/~gaph

Editores - Tau SDL Editores - Tau SDL

Vantagens:• Mais conhecido e utilizado• Maior compatibilidade para a ferramenta de co-

síntese• Validator - uma simulação avançada e uma análise

da implementação• MSC de alto nível - MSC em forma de árvore• Gera uma representação UML do sistema

computacional

20

http://www.inf.pucrs.br/~gaph

Tau SDL - Ambiente de ediçãoTau SDL - Ambiente de edição

21

http://www.inf.pucrs.br/~gaph

Tau SDL - Simulador

22

http://www.inf.pucrs.br/~gaph

Tau SDL - Validator

23

http://www.inf.pucrs.br/~gaph

Editores - Cinderella SDL

Vantagens:• Mais facilidade de programação• Mais facilidade de simulação• Gera uma representação UML• Geração de arquivos para outros editores

24

http://www.inf.pucrs.br/~gaph

Cinderella SDL - Ambiente de Edição

25

http://www.inf.pucrs.br/~gaph

SumárioSumário

• Introdução e Histórico• Componentes (sistemas, blocos, processos)• Formas MSC• Editores (Cinderella, Tau)

• Co-Síntese (Archimate) Co-Síntese (Archimate) • Comparações com outras linguagens• Conclusões

26

http://www.inf.pucrs.br/~gaph

Co-Síntese - ArchimateCo-Síntese - Archimate

• Archimate é uma ferramenta de síntese específica para codesign, pois gera Hw e Sw a partir de uma especificação SDL.

• Gera arquivos C (C++), VHDL(Verilog). • Fornece ambiente de co-simulação• Não suporta todas as construções da linguagem

(ex. Save)

27

http://www.inf.pucrs.br/~gaph

Archimate - Ferramenta de SínteseArchimate - Ferramenta de Síntese

• Etapas da geração de Hw/Sw:

Descrição em alto nível (SDL)

Particionamento estrutural

Síntese da Comunicação

Síntese de HW Síntese de SW

Hardware Gerado Software GeradoInterface

28

http://www.inf.pucrs.br/~gaph

Archimate - Etapas da Geração de HW/SWArchimate - Etapas da Geração de HW/SW

• Especificação em alto nível (SDL)Especificação em alto nível (SDL) » código gerado e provavelmente testado• Particionamento estruturalParticionamento estrutural» redefine a estrutura do sistema, selecionando

manualmente quais serão os blocos em Hw e Sw• Síntese da comunicaçãoSíntese da comunicação» transforma canais abstratos para canais concretos que

implementam os protocolos especificados pelo projetista.

29

http://www.inf.pucrs.br/~gaph

Archimate - Síntese de HardwareArchimate - Síntese de Hardware

• Cria o clock e o reset

• Gera VHDL (ou Verilog)

• Síntese lógica e física

• Gera interface entre Hw e Sw

30

http://www.inf.pucrs.br/~gaph

Archimate - Síntese de SoftwareArchimate - Síntese de Software

• Gera um arquivo C/C++

• Compila-o

• Mapeia a síntese para um P Específico (IBM Power PC 603e, Motorola MC68040, Motorola M68000 e STMicroelectronics ST10)

31

http://www.inf.pucrs.br/~gaph

Archimate - Ambiente de SínteseArchimate - Ambiente de Síntese

• Bloco SW

• Blocos HW

• Bloco Clock

• Bloco compilado SW

32

http://www.inf.pucrs.br/~gaph

SumárioSumário

• Introdução e Histórico• Componentes (sistemas, blocos, processos)• Formas MSC• Editores (Cinderella, Tau) • Co-Síntese (Archimate)

• Comparações com outras linguagensComparações com outras linguagens• Conclusões

33

http://www.inf.pucrs.br/~gaph

SDL - Comparações com outras LinguagensSDL - Comparações com outras Linguagens

Características VHDL

VHDLCaracterísticas CSDL

Tipo de Especificação Idealizada para a Linguagem

Poder de Abstração

Facilidade de Alteração e Manutenção

Poder de Documentação

Público Alvo

Descrição de Sinais e Variáveis

Suporte à Concorrência

Descrição Hierárquica

Suporte à Descrição Síncrona

Suporte a Descrição de Sistemas de Telecomunicação em Baixo Nível

Suporte a Descrição de Sistemas de Telecomunicação Interativos

Sistemas Assíncronos

Alto

Média

Alto

PoucoSim

Alta

Baixo

Baixo

Excelente

Sim

Hardware

Médio

Média

Médio

Médio

Sim

Alta

Alto

Excelente

Baixo

Sim

Software

Médio

Variável*

Baixo

Muito

Não

Baixa

Alto

Alto

Médio

Não

* O nível pode ser alto (bons programadores) ou baixo (maus programadores)

34

http://www.inf.pucrs.br/~gaph

SumárioSumário

• Introdução e Histórico• Componentes (sistemas, blocos, processos)• Formas MSC• Editores (Cinderella, Tau) • Co-Síntese (Archimate) • Comparações com outras linguagens

• ConclusõesConclusões

35

http://www.inf.pucrs.br/~gaph

ConclusõesConclusões

• SDL é uma excelente linguagem para especificar a comunicação assíncrona entre processos

• Tem um grande potencial para a especificação completa de Sist. de Telecomunicações Interativos

• Possui boas e diferentes formas de representar sua linguagem

• É uma linguagem pouco usada atualmente, mas com grandes chances de entrar no mercado futuramente

• Existe incompatibilidade entre seus editores tanto na representação gráfica quanto na textual.