DESENVOLVIMENTO DE
SISTEMAS
EMBARCADOS

Discentes: Alexandre Augusto Giron
Paulo Roberto de Oliveira

Mestrado em
Ciência da
computação
AGENDA
 Introdução
 Requisitos do desenvolvimento de Sistemas Embarcados
 Metodologias de desenvolvimento
 Baseada no ciclo de vida
 Baseada em níveis de abstração
 Projeto baseado em plataformas






Comparativo/Observações sobre as metodologias
Ferramentas de apoio ao desenvolvimento
Conclusões
Referências

2
INTRODUÇÃO
 O que são sistemas embarcados?
 “Sistemas computacionais que processam informação e são
incorporados em um produto maior” (MARVEDEL, 2006)

 Vários exemplos no cotidiano

3
INTRODUÇÃO
 Várias são as aplicações dos sistemas embarcados
 Entretanto, o desenvolvimento desses sistemas possui
diversos requisitos
 Metodologias e ferramentas de apoio ao desenvolvimento
podem ser utilizadas

4
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS
 Sistemas embarcados possuem particularidades que os
diferem do desenvolvimento de software
 Não é uma tarefa simples
 Alguns requisitos são normalmente necessários para o
desenvolvimento de sistemas embarcados

5
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - DISSIPAÇÃO E
CONSUMO DE POTÊNCIA
 Aspecto de grande importância
 Fonte de energia
 Baterias móveis

 Precisam ser recarregadas
 Consumo x Realimentação
 Menor consumo

 Menor frequência de realimentação

 Exemplos
 Telefones celulares
 VANT (Veículo Aéreo Não Tripulado)
6
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - DESEMPENHO
 Tempo de execução das instruções
 Aspecto importante na maioria dos sistemas
 Sistemas embarcados
 Fator ainda mais importante
 Memória
 Processamento

 Cada vez mais necessitam de maior quantidade de recursos
 Câmera fotográfica digital
 Smartphone

7
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – PRAZO PARA
PROCESSOS
 Muitos processos são executados a todo instante
 Dados de entrada via teclado
 Sinais de áudio e vídeo
 Atualização da tela

 Prazo de término
 Produção de resultados
 Também conhecido como requisito de tempo real
 Soft real time
 Habilidade do sistema de respeitar prazos
 Otimizar algumas aplicações
 Utilizado em sistemas onde o tempo de resposta não é crítico

 Hard real time
 Garantir que os prazos serão atendidos
 Utilizado em sistemas críticos
 Usina nuclear
8
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - INTERFACES DE
USUÁRIO
 Interação do usuário com o sistema
 Entrada de dados
 Teclado
 Voz
 Outras

 Usabilidade
 Design
 Aceitação comercial

9
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - TAMANHO
 Espaço físico necessário
 Design
 Exemplo: Tendência do tamanho dos celulares

 Quantidade de memória RAM ( kB) e flash (MB ou GB)
 Tamanho do software
 Exemplo: Arduíno

 Número de milhões de portas lógicas
 Maior o número de portas lógicas

 Maior o custo do produto final
10
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - CUSTO DE
ENGENHARIA





Etapas de desenvolvimento do sistema
Debugging
Testes
Estes gastos não são recorrentes

11
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - CUSTO DE
PRODUÇÃO
 Gasto obtido em cada unidade do sistema embarcado
 Visão de um gestor da empresa

12
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - FLEXIBILIDADE
 Aspectos que não aumentam o custo de engenharia
 Versão original do produto
 Alteração de características
 Objetivo principal do sistema não se altera
 Funcionalidades adicionais

 Exemplo: Micro-ondas

13
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - PROTOTIPAÇÃO
 Tempo de desenvolvimento gasto até a criação do protótipo
 Hábil para a realização de testes de suas funcionalidades

 Pode ser medida em:
 Dias
 Meses

14
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - TEMPO DE
DESENVOLVIMENTO
 Consumo de tempo
 Processo de engenharia

 Construção do protótipo

15
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - TEMPO DE
COMÉRCIO
 Consumo de tempo
 Inicia-se após após a criação do protótipo
 Até que o produto esteja disponível no mercado

16
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - SISTEMA DE
SEGURANÇA DO USUÁRIO
 Deve ser realizada uma análise
 Desde uma falha do sistema ou queda acidental
 Até questões relacionadas a sua utilização

 Exemplo
 Capacidade de bloqueio de um telefone celular na ocorrência de um
roubo
 Correto funcionamento do sistema de freios de um carro

 Grande importância quando se trata de sistemas embarcados
críticos

17
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - MANUTENÇÃO
 Aspecto importante, onde se refere a:
 Instabilidade
 Extensões do sistema

 Três tipos de manutenção em sistemas embarcados
 Software
 Ajuste de uma funcionalidade para atender melhor as expectativas do
cliente

 Dados
 Download de vídeos, papéis de parede e músicas em um smartphone

 Hardware
 Extensões
 Cartão de memória adicional

 Manutenção
 Ocorrência de falhas no dispositivo

18
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS
 Ciclo de vida de sistemas embarcados
 Níveis de abstração
 Projeto baseado em plataformas

19
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS

20
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
 Especificação do produto
 Levar em consideração aspectos de outras áreas além da ciência da
computação
 Gestão e marketing






Desenvolver um produto que atenda as expectativas do usuário
Necessário um time de pesquisa de clientes
Análise de requisitos
Pesquisar um preço aceitável para o produto

21
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
 Partição entre hardware e sof tware
 Problema de decidibilidade
 Hardware
 Software

 Exemplo
 Primeiros processadores x86 (80286, 80386)
 Unidade de cálculo de ponto flutuante

 Características conflitantes na partição






Preço do produto
Alto desempenho
Padronização
Mercado competitivo
Patente

 Escolha do processador pode ser um fator de impacto no projeto
 Alterar as ferramentas que serão utilizadas
22
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
 Iteração e implementação
 Divergências entre hardware e software que devem ser solucionadas
 Quebra de blocos maiores em blocos menores
 Visualizar melhor limitações que possam existir

 Modelagem de desempenho (Processador e memória)
 Ferramentas baseadas em simulação
 Benchmarks
 Computadores single-board
 Microprocessador utilizado no projeto real

 Ambiente de desenvolvimento, testes e debugging até o término do
modelo real

23
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
 Projeto detalhado de hardware e sof tware
 Também conhecido como co-verificação
 Hardware pode ser representador por linguagens de descrição
 Verilog
 VHDL

 Plataforma de hardware virtual
 Desenvolvimento de código
 Tempo gasto é o mínimo possível
 Software do projeto real

 Testes de interface entre hardware e software são realizados apenas
no projeto real de hardware completamente desenvolvido

24
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
 Integração entre hardware e sof tware
 Ponto importante
 Gerência de complexidade
 Entendimento do time de software fornecida pelo time de hardware

 Debugging não é uma tarefa complexa
 Conexão com um computador através de uma interface de comunicação
 Outros casos pode se tornar quase impossível (Velocidade)

 Em alguns casos é possível integrar um S.O ao hardware
 Bugs podem continuar existindo
 Sistema executado em velocidade máxima de processamento

25
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
 Testes do produto e atualizações
 Processo importante
 Scanner
 Gerador de energia nuclear

 Mais do que garantir que um sistema não falhará em um momento
crítico
 Verificar se o sistema está próximo de suas condições ideais
 Grandes empresas possuem um time apenas para testes

26
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
 Consumo de tempo para se resolver um problema em cada
fase do projeto

27
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
 Manutenção e aperfeiçoamento de produtos existentes
 Na maioria das empresas, são mantidos e atualizados sistemas
embarcados
 Problema
 Grande parte do time não está no projeto desde o início
 Necessitam de experiência, habilidades e conhecimentos prévios

 Ferramentas específicas são utilizadas
 Muitas vezes, estas são muito poderosas
 Até demais
 Questões de tempo

 Fase bastante importante para os clientes

28
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – NÍVEIS DE
ABSTRAÇÃO
 Metodologia baseada em Níveis de Abstração
 Foi proposta por Wolf (WOLF, 2001)
 Guia o desenvolvimento através de etapas de diferentes níveis
de abstração

29
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – NÍVEIS DE
ABSTRAÇÃO





Etapa de Requisitos
Visa a realizar o levantamento de requisitos
Etapa inicial no desenvolvimento
Fornece um modelo para captura de requisitos de forma
textual
 Documento contendo: nome, objetivo, entradas e saídas, funções,
Performance/desempenho, custo de fabricação, consumo de
potência, tamanho físico e peso
 Auxilia no entendimento do sistema
 Outros modelos podem ser usados

30
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – NÍVEIS DE
ABSTRAÇÃO
 Etapa de Especificação
 Segunda etapa
 Enfoque nos requisitos (de forma mais precisa que a etapa
anterior)
 Objetivos:
 Deve garantir que os requisitos sejam bem especificados para guiar
o desenvolvimento do sistema
 UML pode ser utilizada neste processo
 SysML frequentemente utilizada no contexto dos sistemas
embarcados

31
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – NÍVEIS DE
ABSTRAÇÃO
 Etapa de Arquitetura
 Define como será construído o sistema
 Etapa que realiza o projeto da arquitetura em termos de
hardware e sof tware
 Diagrama de blocos pode ser utilizado nesta etapa

 Durante essa etapa deve-se levar em consideração os
requisitos funcionais e não funcionais

32
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – NÍVEIS DE
ABSTRAÇÃO
 Etapa de constituição por Componentes
 Estruturar o sistema em componentes de hardware e sof tware
 Objetivos
 Fornecer a conformidade com o projeto da arquitetura e com os
requisitos
 Desenvolver componentes com atenção na integração dos mesmos e
na integração do sistema como um todo
 Favorecer o reuso dos componentes desenvolvidos (“Desenvolver
para o reuso”) e então diminuir tempo de projeto

 Processo de desenvolvimento de componentes estruturado
em:
 IP Component Provider
 IP Component Consumer
33
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – NÍVEIS DE
ABSTRAÇÃO
 Processo de desenvolvimento de componentes estruturado
em:
 IP Component Provider: Criação, classificação para o reuso
 IP Component Consumer: Validar e integrar componentes

34
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – NÍVEIS DE
ABSTRAÇÃO
 Etapa de Integração do Sistema
 Última etapa no desenvolvimento
 Normalmente é complexa
 Necessita de integração otimizada para evitar desperdício de
recursos
 Testes de integração devem ser realizados

 Etapa também define o lançamento do produto

35
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – PROJETO BASEADO
EM PLATAFORMAS
 Metodologia de Projeto baseado em Plataformas
 Define o fluxo do desenvolvimento do sistema sobre uma
plataforma base (genérica)
 Escolha da plataforma: considerar requisitos e projetos anteriores
 Desenvolvimento do sistema sobre a plataforma escolhida
 Testes para adaptação e lançamento do produto

36
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – PROJETO BASEADO
EM PLATAFORMAS
 Metodologia de Projeto baseado em Plataformas
 Tende a agilizar o desenvolvimento
 Projetos anteriores
 Adaptação de produtos lançados de acordo com as necessidades do
domínio específico

 Considera custos de engenharia e de produção
 Não começar um desenvolvimento “do zero”

37
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – COMPARATIVO
ENTRE METODOLOGIAS
 Metodologia baseada no ciclo de vida de sistemas
embarcados

X
 Metodologia baseada em níveis de abstração

38
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – COMPARATIVO
ENTRE METODOLOGIAS
 Metodologia do ciclo de vida divide explicitamente o
desenvolvimento hardware/software; enquanto que a baseada
em níveis dá ênfase na montagem de componentes
 M. do Ciclo de vida define fases para o desenvolvimento; de
forma análoga, a M. em Níveis define etapas através dos
níveis de abstração;
 Ambas possuem enfoque à integração do sistema
(hardware/software) definindo etapas explícitas.
Ciclo de Vida: fase 5
Níveis de Abstração : último
nível

39
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – COMPARATIVO
ENTRE METODOLOGIAS
 Especificação de Requisitos: M. baseada em níveis
 Fornece um modelo de formulário de requisitos
 Define duas etapas para levantamento e especificação dos
requisitos: Forte atenção aos requisitos do sistema
 Dessa forma, a metodologia considera que somente com um
entendimento claro dos requisitos se torna possível o
desenvolvimento do sistema

40
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – COMPARATIVO
ENTRE METODOLOGIAS
 A metodologia baseada no ciclo de vida define uma fase
específica aos testes e outra à manutenção do sistema.
 Por outro lado, a M. baseada em níveis não define uma etapa
específica,
 mas engloba os testes e manutenção no nível de integração do
sistema

41
OBSERVAÇÕES SOBRE O PROJETO BASEADO
EM PLATAFORMAS
 Metodologia de projeto baseado em plataformas permite:
 Agilidade na entrega/desenvolvimento: desenvolvimento sobre
plataforma base (genérica)
 Evita o “desenvolvimento from the scratch” (ou “do zero”)
 Redução de custos: reutilizar projetos anteriores, apenas adaptando os às novas necessidades

42
FERRAMENTAS DE APOIO
 Hardware
 Sof tware
 Linguagens

43
FERRAMENTAS DE APOIO
 Hardware
 Placas de desenvolvimento para desenvolvimento de
protótipos
 Conectores de acesso serial, USB, rede
 Medição de consumo de potência

44
FERRAMENTAS DE APOIO
 Hardware

45
FERRAMENTAS DE APOIO
 Sof tware

 Recursos:
 Explorador de
Projetos
 Debugging
 Análise de
desempenho
 ....
46
FERRAMENTAS DE APOIO
 Linguagens
 De descrição de Hardware
 De Modelagem

 SysML: linguagem gráfica de modelagem
 Classificada como um perfil da UML
 Suporta análise, especificação, projeto, verificação e validação
 Voltada a modelagem de sistemas complexos (compostos de
hardware, software, dados, pessoal, procedimentos, instalações,
sistemas naturais...)

47
FERRAMENTAS DE APOIO
 SysML

48
FERRAMENTAS DE APOIO
 Linguagens de descrição de hardware
 Verilog
 VHDL

49
CONCLUSÕES
 O desenvolvimento de Sistemas Embarcados é complexo
 Metodologias específicas podem auxiliar no desenvolvimento
 Mas independentemente de metodologia utilizada, o
desenvolvimento de sistemas embarcados requer
 Atenção aos requisitos: consumo de potência, desempenho, custo...
 Integração otimizada hardware/software
 Utilização de ferramentas de apoio

50
DÚVIDAS?

 Obrigado pela atenção

51
REFERÊNCIAS
 P. MARVEDEL. Embedded System Design. Netherland:
Springer, 2006. ISBN 978-0-387-29237-3.
 J. ENGBLOM. Embedded Systems Computer Architecture.
Uppsala University. Extended Abstract, ESSES, 2003.
 VHDL (2002). “IEEE Standard VHDL Language Reference
Manual. IEEE Standard No. 1076-2002”. IEEE, 2002.
 Verilog (1995). “IEEE Standard Hardware Description
Language Based on Verilog Hardware Description Language.
IEEE Standard No. 1364-1995”. IEEE, 1995.
 A . S. BERGER, “Embedded System Design: An Introduction to
Processes, Tools, and Techniques”. CMP Books, 2002 .

52
REFERÊNCIAS
 F. WAGNER and L. CARRO, “Sistemas Computacionais
Embarcados”. XXII Jornadas de Atualização em Informática.
Campinas: UNICAMP, 2003, v. 1 , p. 45-94.
 K. KEUTZER, et al. System Level Design: Orthogonalization of
Concerns and Platform-Based Design. IEEE Transactions on
Computer- Aided Design of Circuits and Systems, New York, v.
19, n. 12, p. 1523-1543, Dec. 2000.
 W. WOLF. Computers as Components - Principles of Embedded
Computing System Design. Morgan Kaufmann Publishers, San
Francisco, 1 edition, 2001 .

53
REFERÊNCIAS
 T. SIMUNIC, L. BENINI, A. ACQUAVIVA , P. GLYNN and G. DE
MICHELI, “Dynamic Voltage Scaling and Power Management for
Portable Systems”. In: Annual ACM IEEE Design Automation
Conference. June, 2001 , Las Vegas.
 BeagleBoard.org. BeagleBoard-xM Rev C System Reference
Manual. Richardson, TX,2010.
 Texas Instruments, Inc. Code Composer Studio (CCStudio)
Integrated Development Environment (IDE) v5. Dallas, TX, 2009 .
 FRIEDENTHAL, S.; MOORE, A.; STEINER, R. A. Practical Guide to
SysML: Systems Model. Morgan Kaufmann OMG Press, 2008.
560p.
 R. F. da SILVA, ”SymPLES: uma abordagem de desenvolvimento
de linha de produto para sistemas embarcados baseada em
SysML”, Dissertação de Mestrado - Universidade Estadual de
Maringá (UEM), 2012.
54

Desenvolvimento de sistemas embarcados

  • 1.
    DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Discentes: AlexandreAugusto Giron Paulo Roberto de Oliveira Mestrado em Ciência da computação
  • 2.
    AGENDA  Introdução  Requisitosdo desenvolvimento de Sistemas Embarcados  Metodologias de desenvolvimento  Baseada no ciclo de vida  Baseada em níveis de abstração  Projeto baseado em plataformas     Comparativo/Observações sobre as metodologias Ferramentas de apoio ao desenvolvimento Conclusões Referências 2
  • 3.
    INTRODUÇÃO  O quesão sistemas embarcados?  “Sistemas computacionais que processam informação e são incorporados em um produto maior” (MARVEDEL, 2006)  Vários exemplos no cotidiano 3
  • 4.
    INTRODUÇÃO  Várias sãoas aplicações dos sistemas embarcados  Entretanto, o desenvolvimento desses sistemas possui diversos requisitos  Metodologias e ferramentas de apoio ao desenvolvimento podem ser utilizadas 4
  • 5.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS  Sistemas embarcados possuem particularidades que os diferem do desenvolvimento de software  Não é uma tarefa simples  Alguns requisitos são normalmente necessários para o desenvolvimento de sistemas embarcados 5
  • 6.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS - DISSIPAÇÃO E CONSUMO DE POTÊNCIA  Aspecto de grande importância  Fonte de energia  Baterias móveis  Precisam ser recarregadas  Consumo x Realimentação  Menor consumo  Menor frequência de realimentação  Exemplos  Telefones celulares  VANT (Veículo Aéreo Não Tripulado) 6
  • 7.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS - DESEMPENHO  Tempo de execução das instruções  Aspecto importante na maioria dos sistemas  Sistemas embarcados  Fator ainda mais importante  Memória  Processamento  Cada vez mais necessitam de maior quantidade de recursos  Câmera fotográfica digital  Smartphone 7
  • 8.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS – PRAZO PARA PROCESSOS  Muitos processos são executados a todo instante  Dados de entrada via teclado  Sinais de áudio e vídeo  Atualização da tela  Prazo de término  Produção de resultados  Também conhecido como requisito de tempo real  Soft real time  Habilidade do sistema de respeitar prazos  Otimizar algumas aplicações  Utilizado em sistemas onde o tempo de resposta não é crítico  Hard real time  Garantir que os prazos serão atendidos  Utilizado em sistemas críticos  Usina nuclear 8
  • 9.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS - INTERFACES DE USUÁRIO  Interação do usuário com o sistema  Entrada de dados  Teclado  Voz  Outras  Usabilidade  Design  Aceitação comercial 9
  • 10.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS - TAMANHO  Espaço físico necessário  Design  Exemplo: Tendência do tamanho dos celulares  Quantidade de memória RAM ( kB) e flash (MB ou GB)  Tamanho do software  Exemplo: Arduíno  Número de milhões de portas lógicas  Maior o número de portas lógicas  Maior o custo do produto final 10
  • 11.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS - CUSTO DE ENGENHARIA     Etapas de desenvolvimento do sistema Debugging Testes Estes gastos não são recorrentes 11
  • 12.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS - CUSTO DE PRODUÇÃO  Gasto obtido em cada unidade do sistema embarcado  Visão de um gestor da empresa 12
  • 13.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS - FLEXIBILIDADE  Aspectos que não aumentam o custo de engenharia  Versão original do produto  Alteração de características  Objetivo principal do sistema não se altera  Funcionalidades adicionais  Exemplo: Micro-ondas 13
  • 14.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS - PROTOTIPAÇÃO  Tempo de desenvolvimento gasto até a criação do protótipo  Hábil para a realização de testes de suas funcionalidades  Pode ser medida em:  Dias  Meses 14
  • 15.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS - TEMPO DE DESENVOLVIMENTO  Consumo de tempo  Processo de engenharia  Construção do protótipo 15
  • 16.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS - TEMPO DE COMÉRCIO  Consumo de tempo  Inicia-se após após a criação do protótipo  Até que o produto esteja disponível no mercado 16
  • 17.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS - SISTEMA DE SEGURANÇA DO USUÁRIO  Deve ser realizada uma análise  Desde uma falha do sistema ou queda acidental  Até questões relacionadas a sua utilização  Exemplo  Capacidade de bloqueio de um telefone celular na ocorrência de um roubo  Correto funcionamento do sistema de freios de um carro  Grande importância quando se trata de sistemas embarcados críticos 17
  • 18.
    REQUISITOS DO DESENVOLVIMENTODE SISTEMAS EMBARCADOS - MANUTENÇÃO  Aspecto importante, onde se refere a:  Instabilidade  Extensões do sistema  Três tipos de manutenção em sistemas embarcados  Software  Ajuste de uma funcionalidade para atender melhor as expectativas do cliente  Dados  Download de vídeos, papéis de parede e músicas em um smartphone  Hardware  Extensões  Cartão de memória adicional  Manutenção  Ocorrência de falhas no dispositivo 18
  • 19.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS  Ciclo de vida de sistemas embarcados  Níveis de abstração  Projeto baseado em plataformas 19
  • 20.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – CICLO DE VIDA DE SISTEMAS EMBARCADOS 20
  • 21.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – CICLO DE VIDA DE SISTEMAS EMBARCADOS  Especificação do produto  Levar em consideração aspectos de outras áreas além da ciência da computação  Gestão e marketing     Desenvolver um produto que atenda as expectativas do usuário Necessário um time de pesquisa de clientes Análise de requisitos Pesquisar um preço aceitável para o produto 21
  • 22.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – CICLO DE VIDA DE SISTEMAS EMBARCADOS  Partição entre hardware e sof tware  Problema de decidibilidade  Hardware  Software  Exemplo  Primeiros processadores x86 (80286, 80386)  Unidade de cálculo de ponto flutuante  Características conflitantes na partição      Preço do produto Alto desempenho Padronização Mercado competitivo Patente  Escolha do processador pode ser um fator de impacto no projeto  Alterar as ferramentas que serão utilizadas 22
  • 23.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – CICLO DE VIDA DE SISTEMAS EMBARCADOS  Iteração e implementação  Divergências entre hardware e software que devem ser solucionadas  Quebra de blocos maiores em blocos menores  Visualizar melhor limitações que possam existir  Modelagem de desempenho (Processador e memória)  Ferramentas baseadas em simulação  Benchmarks  Computadores single-board  Microprocessador utilizado no projeto real  Ambiente de desenvolvimento, testes e debugging até o término do modelo real 23
  • 24.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – CICLO DE VIDA DE SISTEMAS EMBARCADOS  Projeto detalhado de hardware e sof tware  Também conhecido como co-verificação  Hardware pode ser representador por linguagens de descrição  Verilog  VHDL  Plataforma de hardware virtual  Desenvolvimento de código  Tempo gasto é o mínimo possível  Software do projeto real  Testes de interface entre hardware e software são realizados apenas no projeto real de hardware completamente desenvolvido 24
  • 25.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – CICLO DE VIDA DE SISTEMAS EMBARCADOS  Integração entre hardware e sof tware  Ponto importante  Gerência de complexidade  Entendimento do time de software fornecida pelo time de hardware  Debugging não é uma tarefa complexa  Conexão com um computador através de uma interface de comunicação  Outros casos pode se tornar quase impossível (Velocidade)  Em alguns casos é possível integrar um S.O ao hardware  Bugs podem continuar existindo  Sistema executado em velocidade máxima de processamento 25
  • 26.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – CICLO DE VIDA DE SISTEMAS EMBARCADOS  Testes do produto e atualizações  Processo importante  Scanner  Gerador de energia nuclear  Mais do que garantir que um sistema não falhará em um momento crítico  Verificar se o sistema está próximo de suas condições ideais  Grandes empresas possuem um time apenas para testes 26
  • 27.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – CICLO DE VIDA DE SISTEMAS EMBARCADOS  Consumo de tempo para se resolver um problema em cada fase do projeto 27
  • 28.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – CICLO DE VIDA DE SISTEMAS EMBARCADOS  Manutenção e aperfeiçoamento de produtos existentes  Na maioria das empresas, são mantidos e atualizados sistemas embarcados  Problema  Grande parte do time não está no projeto desde o início  Necessitam de experiência, habilidades e conhecimentos prévios  Ferramentas específicas são utilizadas  Muitas vezes, estas são muito poderosas  Até demais  Questões de tempo  Fase bastante importante para os clientes 28
  • 29.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – NÍVEIS DE ABSTRAÇÃO  Metodologia baseada em Níveis de Abstração  Foi proposta por Wolf (WOLF, 2001)  Guia o desenvolvimento através de etapas de diferentes níveis de abstração 29
  • 30.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – NÍVEIS DE ABSTRAÇÃO     Etapa de Requisitos Visa a realizar o levantamento de requisitos Etapa inicial no desenvolvimento Fornece um modelo para captura de requisitos de forma textual  Documento contendo: nome, objetivo, entradas e saídas, funções, Performance/desempenho, custo de fabricação, consumo de potência, tamanho físico e peso  Auxilia no entendimento do sistema  Outros modelos podem ser usados 30
  • 31.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – NÍVEIS DE ABSTRAÇÃO  Etapa de Especificação  Segunda etapa  Enfoque nos requisitos (de forma mais precisa que a etapa anterior)  Objetivos:  Deve garantir que os requisitos sejam bem especificados para guiar o desenvolvimento do sistema  UML pode ser utilizada neste processo  SysML frequentemente utilizada no contexto dos sistemas embarcados 31
  • 32.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – NÍVEIS DE ABSTRAÇÃO  Etapa de Arquitetura  Define como será construído o sistema  Etapa que realiza o projeto da arquitetura em termos de hardware e sof tware  Diagrama de blocos pode ser utilizado nesta etapa  Durante essa etapa deve-se levar em consideração os requisitos funcionais e não funcionais 32
  • 33.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – NÍVEIS DE ABSTRAÇÃO  Etapa de constituição por Componentes  Estruturar o sistema em componentes de hardware e sof tware  Objetivos  Fornecer a conformidade com o projeto da arquitetura e com os requisitos  Desenvolver componentes com atenção na integração dos mesmos e na integração do sistema como um todo  Favorecer o reuso dos componentes desenvolvidos (“Desenvolver para o reuso”) e então diminuir tempo de projeto  Processo de desenvolvimento de componentes estruturado em:  IP Component Provider  IP Component Consumer 33
  • 34.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – NÍVEIS DE ABSTRAÇÃO  Processo de desenvolvimento de componentes estruturado em:  IP Component Provider: Criação, classificação para o reuso  IP Component Consumer: Validar e integrar componentes 34
  • 35.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – NÍVEIS DE ABSTRAÇÃO  Etapa de Integração do Sistema  Última etapa no desenvolvimento  Normalmente é complexa  Necessita de integração otimizada para evitar desperdício de recursos  Testes de integração devem ser realizados  Etapa também define o lançamento do produto 35
  • 36.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – PROJETO BASEADO EM PLATAFORMAS  Metodologia de Projeto baseado em Plataformas  Define o fluxo do desenvolvimento do sistema sobre uma plataforma base (genérica)  Escolha da plataforma: considerar requisitos e projetos anteriores  Desenvolvimento do sistema sobre a plataforma escolhida  Testes para adaptação e lançamento do produto 36
  • 37.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – PROJETO BASEADO EM PLATAFORMAS  Metodologia de Projeto baseado em Plataformas  Tende a agilizar o desenvolvimento  Projetos anteriores  Adaptação de produtos lançados de acordo com as necessidades do domínio específico  Considera custos de engenharia e de produção  Não começar um desenvolvimento “do zero” 37
  • 38.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – COMPARATIVO ENTRE METODOLOGIAS  Metodologia baseada no ciclo de vida de sistemas embarcados X  Metodologia baseada em níveis de abstração 38
  • 39.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – COMPARATIVO ENTRE METODOLOGIAS  Metodologia do ciclo de vida divide explicitamente o desenvolvimento hardware/software; enquanto que a baseada em níveis dá ênfase na montagem de componentes  M. do Ciclo de vida define fases para o desenvolvimento; de forma análoga, a M. em Níveis define etapas através dos níveis de abstração;  Ambas possuem enfoque à integração do sistema (hardware/software) definindo etapas explícitas. Ciclo de Vida: fase 5 Níveis de Abstração : último nível 39
  • 40.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – COMPARATIVO ENTRE METODOLOGIAS  Especificação de Requisitos: M. baseada em níveis  Fornece um modelo de formulário de requisitos  Define duas etapas para levantamento e especificação dos requisitos: Forte atenção aos requisitos do sistema  Dessa forma, a metodologia considera que somente com um entendimento claro dos requisitos se torna possível o desenvolvimento do sistema 40
  • 41.
    METODOLOGIA DE DESENVOLVIMENTODE SISTEMAS EMBARCADOS – COMPARATIVO ENTRE METODOLOGIAS  A metodologia baseada no ciclo de vida define uma fase específica aos testes e outra à manutenção do sistema.  Por outro lado, a M. baseada em níveis não define uma etapa específica,  mas engloba os testes e manutenção no nível de integração do sistema 41
  • 42.
    OBSERVAÇÕES SOBRE OPROJETO BASEADO EM PLATAFORMAS  Metodologia de projeto baseado em plataformas permite:  Agilidade na entrega/desenvolvimento: desenvolvimento sobre plataforma base (genérica)  Evita o “desenvolvimento from the scratch” (ou “do zero”)  Redução de custos: reutilizar projetos anteriores, apenas adaptando os às novas necessidades 42
  • 43.
    FERRAMENTAS DE APOIO Hardware  Sof tware  Linguagens 43
  • 44.
    FERRAMENTAS DE APOIO Hardware  Placas de desenvolvimento para desenvolvimento de protótipos  Conectores de acesso serial, USB, rede  Medição de consumo de potência 44
  • 45.
  • 46.
    FERRAMENTAS DE APOIO Sof tware  Recursos:  Explorador de Projetos  Debugging  Análise de desempenho  .... 46
  • 47.
    FERRAMENTAS DE APOIO Linguagens  De descrição de Hardware  De Modelagem  SysML: linguagem gráfica de modelagem  Classificada como um perfil da UML  Suporta análise, especificação, projeto, verificação e validação  Voltada a modelagem de sistemas complexos (compostos de hardware, software, dados, pessoal, procedimentos, instalações, sistemas naturais...) 47
  • 48.
  • 49.
    FERRAMENTAS DE APOIO Linguagens de descrição de hardware  Verilog  VHDL 49
  • 50.
    CONCLUSÕES  O desenvolvimentode Sistemas Embarcados é complexo  Metodologias específicas podem auxiliar no desenvolvimento  Mas independentemente de metodologia utilizada, o desenvolvimento de sistemas embarcados requer  Atenção aos requisitos: consumo de potência, desempenho, custo...  Integração otimizada hardware/software  Utilização de ferramentas de apoio 50
  • 51.
  • 52.
    REFERÊNCIAS  P. MARVEDEL.Embedded System Design. Netherland: Springer, 2006. ISBN 978-0-387-29237-3.  J. ENGBLOM. Embedded Systems Computer Architecture. Uppsala University. Extended Abstract, ESSES, 2003.  VHDL (2002). “IEEE Standard VHDL Language Reference Manual. IEEE Standard No. 1076-2002”. IEEE, 2002.  Verilog (1995). “IEEE Standard Hardware Description Language Based on Verilog Hardware Description Language. IEEE Standard No. 1364-1995”. IEEE, 1995.  A . S. BERGER, “Embedded System Design: An Introduction to Processes, Tools, and Techniques”. CMP Books, 2002 . 52
  • 53.
    REFERÊNCIAS  F. WAGNERand L. CARRO, “Sistemas Computacionais Embarcados”. XXII Jornadas de Atualização em Informática. Campinas: UNICAMP, 2003, v. 1 , p. 45-94.  K. KEUTZER, et al. System Level Design: Orthogonalization of Concerns and Platform-Based Design. IEEE Transactions on Computer- Aided Design of Circuits and Systems, New York, v. 19, n. 12, p. 1523-1543, Dec. 2000.  W. WOLF. Computers as Components - Principles of Embedded Computing System Design. Morgan Kaufmann Publishers, San Francisco, 1 edition, 2001 . 53
  • 54.
    REFERÊNCIAS  T. SIMUNIC,L. BENINI, A. ACQUAVIVA , P. GLYNN and G. DE MICHELI, “Dynamic Voltage Scaling and Power Management for Portable Systems”. In: Annual ACM IEEE Design Automation Conference. June, 2001 , Las Vegas.  BeagleBoard.org. BeagleBoard-xM Rev C System Reference Manual. Richardson, TX,2010.  Texas Instruments, Inc. Code Composer Studio (CCStudio) Integrated Development Environment (IDE) v5. Dallas, TX, 2009 .  FRIEDENTHAL, S.; MOORE, A.; STEINER, R. A. Practical Guide to SysML: Systems Model. Morgan Kaufmann OMG Press, 2008. 560p.  R. F. da SILVA, ”SymPLES: uma abordagem de desenvolvimento de linha de produto para sistemas embarcados baseada em SysML”, Dissertação de Mestrado - Universidade Estadual de Maringá (UEM), 2012. 54