350 likes | 539 Views
SDL. Uma Linguagem de Especificação de Sistemas. Luís Henrique Leal Ries. ries@inf.pucrs.br. Sumário. Introduçã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
E N D
SDL Uma Linguagem de Especificação de Sistemas Luís Henrique Leal Ries ries@inf.pucrs.br
Sumário • Introduçã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
Introduçã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.
Histó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 - recebeuté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.
Sumário • Introdução e Histórico • Componentes(sistemas,blocos,processos) • MSC (Message Sequence Chart) • Editores (Cinderella, Tau) • Co-Síntese (Archimate) • Comparações com outras linguagens • Conclusões
Componentes • Estrutura: system, block, process e procedure. • Dados: Tipos abstratos de dados, Pacotes. • Comunicação: sinais e canais (rotas de sinais).
Componentes - Hierarquia • Árvore hierárquica da estrutura de SDL System Package Block Process Procedure
Componentes - System No sistema se insere a especificação do circuito através dos blocos e da comunicação entre este e com o ambiente.
Componentes - Blocks A função do bloco é fazer a comunicação interna dos sinais. Os objetivos dos blocos são: reduzir a complexidade através da estruturação hierárquica e permitir a inserção de rotas de sinais entre blocos e com outros níveis de hierarquia.
Componentes - Process O processo especifica um comportamento concorrente do programa, ou seja, é nele que são descritos a recepção e envio de sinais e a relação e operações entre estes sinais.
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 Stop - para a execução Start - Inicio do Process Texto ou especificação de sinais Task - Utilizado para fazer cálculos, declarações Decisão Salvar um sinal
Componentes - Procedure O procedimento é uma chamada de uma subrotina que contém a descrição de uma função que será utilizada em um processo.
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”
Componentes - Sinais e Canais (Comunicação) Canais - responsáveis pela comunicação dos sinais (enviar e/ou receber) entre dois ou mais processos, blocos ou sistemas.
Sumário • Introdução e Histórico • Componentes (sistemas, blocos, processos) • MSC (Message Sequence Chart) • Editores (Cinderella, Tau) • Co-Síntese (Archimate) • Comparações com outras linguagens • Conclusões
MSC (Message Sequence Chart Language) é uma forma gráfica que serve para representar os sinais enviados e recebidos pelos componentes (processos, blocos). MSC
Sumário • Introdução e Histórico • Componentes (sistemas, blocos, processos) • Formas MSC • Editores (Cinderella, Tau) • Archimate - uma ferramenta de Co-Síntese • Comparações com outras linguagens • Conclusões
Editores • 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
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
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
Sumá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ões
Co-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)
Síntese de SW Hardware Gerado Archimate - 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 Interface Software Gerado
Archimate - Etapas da Geração de HW/SW • Especificação em alto nível (SDL) • código gerado e provavelmente testado • Particionamento estrutural • redefine a estrutura do sistema, selecionando manualmente quais serão os blocos em Hw e Sw • Síntese da comunicação • transforma canais abstratos para canais concretos que implementam os protocolos especificados pelo projetista.
Archimate - 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
Archimate - Síntese de Software • Gera um arquivo C/C++ • Compila-o • Mapeia a síntese para um mP Específico (IBM Power PC 603e, Motorola MC68040, Motorola M68000 e STMicroelectronics ST10)
Bloco SW Blocos HW Bloco Clock Bloco compilado SW Archimate - Ambiente de Síntese
Sumá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ões
Características SDL VHDL C Tipo de Especificação Idealizada para a Linguagem Características Sistemas Assíncronos Hardware Software VHDL Poder de Abstração Alto Médio Médio Facilidade de Alteração e Manutenção Média Média Variável* Poder de Documentação Alto Médio Baixo Público Alvo Pouco Médio Muito Sim Descrição de Sinais e Variáveis Sim Não Suporte à Concorrência Sim Sim Não Descrição Hierárquica Alta Alta Baixa Suporte à Descrição Síncrona Baixo Alto Alto Suporte a Descrição de Sistemas de Telecomunicação em Baixo Nível Baixo Excelente Alto Suporte a Descrição de Sistemas de Telecomunicação Interativos Excelente Baixo Médio * O nível pode ser alto (bons programadores) ou baixo (maus programadores) SDL - Comparações com outras Linguagens
Sumá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ões
Conclusõ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.