desenvolvimento de sistemas embarcados
DESCRIPTION
Uma introdução ao desenvolvimento de sistemas embarcados, mostrando (e comparando) metodologias e ferramentas disponíveis para uso.TRANSCRIPT
Mestrado em
Ciência da
computação
DESENVOLVIMENTO DE
SISTEMAS
EMBARCADOS
Discentes: Alexandre Augusto Giron
Paulo Roberto de Oliveira
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
AGENDA
2
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
INTRODUÇÃO
3
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
INTRODUÇÃO
4
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
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS
5
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 - DISSIPAÇÃO E
CONSUMO DE POTÊNCIA
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 - DESEMPENHO
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 – PRAZO PARA
PROCESSOS
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 - INTERFACES DE
USUÁRIO
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 - TAMANHO
Etapas de desenvolvimento do sistema
Debugging
Testes
Estes gastos não são recorrentes
11
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - CUSTO DE
ENGENHARIA
Gasto obtido em cada unidade do sistema embarcado
Visão de um gestor da empresa
12
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - CUSTO DE
PRODUÇÃO
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 - FLEXIBILIDADE
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 - PROTOTIPAÇÃO
Consumo de tempo
Processo de engenharia
Construção do protótipo
15
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - TEMPO DE
DESENVOLVIMENTO
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 - TEMPO DE
COMÉRCIO
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 - SISTEMA DE
SEGURANÇA DO USUÁRIO
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
REQUISITOS DO DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS - MANUTENÇÃO
Ciclo de vida de sistemas embarcados
Níveis de abstração
Projeto baseado em plataformas
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS
19
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
21
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
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
22
Partição entre hardware e software
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
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
23
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
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
24
Projeto detalhado de hardware e software
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
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
25
Integração entre hardware e software
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
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
26
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
Consumo de tempo para se resolver um problema em cada
fase do projeto
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
27
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – CICLO DE VIDA DE
SISTEMAS EMBARCADOS
28
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
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 software
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 software
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 – NÍVEIS DE
ABSTRAÇÃO
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 – PROJETO BASEADO
EM PLATAFORMAS
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
METODOLOGIA DE DESENVOLVIMENTO DE
SISTEMAS EMBARCADOS – COMPARATIVO
ENTRE METODOLOGIAS
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
OBSERVAÇÕES SOBRE O PROJETO BASEADO
EM PLATAFORMAS
Hardware
Placas de desenvolvimento para desenvolvimento de
protótipos
Conectores de acesso serial, USB, rede
Medição de consumo de potência
FERRAMENTAS DE APOIO
44
Software
Recursos:
Explorador de
Projetos
Debugging
Análise de
desempenho
....
FERRAMENTAS DE APOIO
46
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...)
FERRAMENTAS DE APOIO
47
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
CONCLUSÕES
50
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 .
REFERÊNCIAS
52
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.
REFERÊNCIAS
53
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 l inha de produto para sistemas embarcados baseada em SysML”, Dissertação de Mestrado - Universidade Estadual de Maringá (UEM), 2012.
REFERÊNCIAS
54