desenvolvimento de sistemas embarcados

Click here to load reader

Post on 29-Jun-2015

2.317 views

Category:

Documents

1 download

Embed Size (px)

DESCRIPTION

Uma introdução ao desenvolvimento de sistemas embarcados, mostrando (e comparando) metodologias e ferramentas disponíveis para uso.

TRANSCRIPT

  • 1. DESENVOLVIMENTO DE SISTEMAS EMBARCADOSDiscentes: Alexandre Augusto Giron Paulo Roberto de OliveiraMestrado em Cincia da computao

2. AGENDA Introduo Requisitos do desenvolvimento de Sistemas Embarcados Metodologias de desenvolvimento Baseada no ciclo de vida Baseada em nveis de abstrao Projeto baseado em plataformas Comparativo/Observaes sobre as metodologias Ferramentas de apoio ao desenvolvimento Concluses Referncias2 3. INTRODUO O que so sistemas embarcados? Sistemas computacionais que processam informao e so incorporados em um produto maior (MARVEDEL, 2006) Vrios exemplos no cotidiano3 4. INTRODUO Vrias so as aplicaes dos sistemas embarcados Entretanto, o desenvolvimento desses sistemas possui diversos requisitos Metodologias e ferramentas de apoio ao desenvolvimento podem ser utilizadas4 5. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Sistemas embarcados possuem particularidades que os diferem do desenvolvimento de software No uma tarefa simples Alguns requisitos so normalmente necessrios para o desenvolvimento de sistemas embarcados5 6. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - DISSIPAO E CONSUMO DE POTNCIA Aspecto de grande importncia Fonte de energia Baterias mveis Precisam ser recarregadas Consumo x Realimentao Menor consumo Menor frequncia de realimentao Exemplos Telefones celulares VANT (Veculo Areo No Tripulado) 6 7. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - DESEMPENHO Tempo de execuo das instrues Aspecto importante na maioria dos sistemas Sistemas embarcados Fator ainda mais importante Memria Processamento Cada vez mais necessitam de maior quantidade de recursos Cmera fotogrfica digital Smartphone7 8. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS PRAZO PARA PROCESSOS Muitos processos so executados a todo instante Dados de entrada via teclado Sinais de udio e vdeo Atualizao da tela Prazo de trmino Produo de resultados Tambm conhecido como requisito de tempo real Soft real time Habilidade do sistema de respeitar prazos Otimizar algumas aplicaes Utilizado em sistemas onde o tempo de resposta no crtico Hard real time Garantir que os prazos sero atendidos Utilizado em sistemas crticos Usina nuclear 8 9. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - INTERFACES DE USURIO Interao do usurio com o sistema Entrada de dados Teclado Voz Outras Usabilidade Design Aceitao comercial9 10. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - TAMANHO Espao fsico necessrio Design Exemplo: Tendncia do tamanho dos celulares Quantidade de memria RAM ( kB) e flash (MB ou GB) Tamanho do software Exemplo: Arduno Nmero de milhes de portas lgicas Maior o nmero de portas lgicas Maior o custo do produto final 10 11. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - CUSTO DE ENGENHARIA Etapas de desenvolvimento do sistema Debugging Testes Estes gastos no so recorrentes11 12. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - CUSTO DE PRODUO Gasto obtido em cada unidade do sistema embarcado Viso de um gestor da empresa12 13. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - FLEXIBILIDADE Aspectos que no aumentam o custo de engenharia Verso original do produto Alterao de caractersticas Objetivo principal do sistema no se altera Funcionalidades adicionais Exemplo: Micro-ondas13 14. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - PROTOTIPAO Tempo de desenvolvimento gasto at a criao do prottipo Hbil para a realizao de testes de suas funcionalidades Pode ser medida em: Dias Meses14 15. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - TEMPO DE DESENVOLVIMENTO Consumo de tempo Processo de engenharia Construo do prottipo15 16. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - TEMPO DE COMRCIO Consumo de tempo Inicia-se aps aps a criao do prottipo At que o produto esteja disponvel no mercado16 17. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - SISTEMA DE SEGURANA DO USURIO Deve ser realizada uma anlise Desde uma falha do sistema ou queda acidental At questes relacionadas a sua utilizao Exemplo Capacidade de bloqueio de um telefone celular na ocorrncia de um roubo Correto funcionamento do sistema de freios de um carro Grande importncia quando se trata de sistemas embarcados crticos17 18. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - MANUTENO Aspecto importante, onde se refere a: Instabilidade Extenses do sistema Trs tipos de manuteno em sistemas embarcados Software Ajuste de uma funcionalidade para atender melhor as expectativas do cliente Dados Download de vdeos, papis de parede e msicas em um smartphone Hardware Extenses Carto de memria adicional Manuteno Ocorrncia de falhas no dispositivo18 19. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Ciclo de vida de sistemas embarcados Nveis de abstrao Projeto baseado em plataformas19 20. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS CICLO DE VIDA DE SISTEMAS EMBARCADOS20 21. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS CICLO DE VIDA DE SISTEMAS EMBARCADOS Especificao do produto Levar em considerao aspectos de outras reas alm da cincia da computao Gesto e marketing Desenvolver um produto que atenda as expectativas do usurio Necessrio um time de pesquisa de clientes Anlise de requisitos Pesquisar um preo aceitvel para o produto21 22. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS CICLO DE VIDA DE SISTEMAS EMBARCADOS Partio entre hardware e sof tware Problema de decidibilidade Hardware Software Exemplo Primeiros processadores x86 (80286, 80386) Unidade de clculo de ponto flutuante Caractersticas conflitantes na partio Preo do produto Alto desempenho Padronizao Mercado competitivo Patente Escolha do processador pode ser um fator de impacto no projeto Alterar as ferramentas que sero utilizadas 22 23. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS CICLO DE VIDA DE SISTEMAS EMBARCADOS Iterao e implementao Divergncias entre hardware e software que devem ser solucionadas Quebra de blocos maiores em blocos menores Visualizar melhor limitaes que possam existir Modelagem de desempenho (Processador e memria) Ferramentas baseadas em simulao Benchmarks Computadores single-board Microprocessador utilizado no projeto real Ambiente de desenvolvimento, testes e debugging at o trmino do modelo real23 24. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS CICLO DE VIDA DE SISTEMAS EMBARCADOS Projeto detalhado de hardware e sof tware Tambm conhecido como co-verificao Hardware pode ser representador por linguagens de descrio Verilog VHDL Plataforma de hardware virtual Desenvolvimento de cdigo Tempo gasto o mnimo possvel Software do projeto real Testes de interface entre hardware e software so realizados apenas no projeto real de hardware completamente desenvolvido24 25. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS CICLO DE VIDA DE SISTEMAS EMBARCADOS Integrao entre hardware e sof tware Ponto importante Gerncia de complexidade Entendimento do time de software fornecida pelo time de hardware Debugging no uma tarefa complexa Conexo com um computador atravs de uma interface de comunicao Outros casos pode se tornar quase impossvel (Velocidade) Em alguns casos possvel integrar um S.O ao hardware Bugs podem continuar existindo Sistema executado em velocidade mxima de processamento25 26. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS CICLO DE VIDA DE SISTEMAS EMBARCADOS Testes do produto e atualizaes Processo importante Scanner Gerador de energia nuclear Mais do que garantir que um sistema no falhar em um momento crtico Verificar se o sistema est prximo de suas condies ideais Grandes empresas possuem um time apenas para testes26 27. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS CICLO DE VIDA DE SISTEMAS EMBARCADOS Consumo de tempo para se resolver um problema em cada fase do projeto27 28. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS CICLO DE VIDA DE SISTEMAS EMBARCADOS Manuteno e aperfeioamento de produtos existentes Na maioria das empresas, so mantidos e atualizados sistemas embarcados Problema Grande parte do time no est no projeto desde o incio Necessitam de experincia, habilidades e conhecimentos prvios Ferramentas especficas so utilizadas Muitas vezes, estas so muito poderosas At demais Questes de tempo Fase bastante importante para os clientes28 29. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS NVEIS DE ABSTRAO Metodologia baseada em Nveis de Abstrao Foi proposta por Wolf (WOLF, 2001) Guia o desenvolvimento atravs de etapas de diferentes nveis de abstrao29 30. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS NVEIS DE ABSTRAO 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 sadas, funes, Performance/desempenho, custo de fabricao, consumo de potncia, tamanho fsico e peso Auxilia no entendimento do sistema Outros modelos podem ser usados30 31. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS NVEIS DE ABSTRAO Etapa de Especificao 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 embarcados31 32. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS NVEIS DE ABSTRAO Etapa de Arquitetura Define como ser construdo 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 considerao os requisitos funcionais e no funcionais32 33. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS NVEIS DE ABSTRAO