SlideShare uma empresa Scribd logo
1 de 54
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto WordLeinylson Fontinele
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAlberto Simões
 
Gerencia e Administração de Redes
Gerencia e Administração de RedesGerencia e Administração de Redes
Gerencia e Administração de RedesAllan Piter Pressi
 
Reengenharia de Software
Reengenharia de SoftwareReengenharia de Software
Reengenharia de SoftwareRafael Berto
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projetoejdn1
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLNatanael Simões
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL BásicoIgor Alves
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosUFPB
 
Aula 11 - Vetores unidimensionais - parte 1
Aula 11 - Vetores unidimensionais - parte 1Aula 11 - Vetores unidimensionais - parte 1
Aula 11 - Vetores unidimensionais - parte 1Pacc UAB
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggersDaniel Maia
 

Mais procurados (20)

Governança de TI - Aula01 Apresentação da disciplina
Governança de TI - Aula01 Apresentação da disciplinaGovernança de TI - Aula01 Apresentação da disciplina
Governança de TI - Aula01 Apresentação da disciplina
 
#4 Primeiros comandos no MongoDB
#4   Primeiros comandos no MongoDB#4   Primeiros comandos no MongoDB
#4 Primeiros comandos no MongoDB
 
SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Tic modulo-25
Tic modulo-25Tic modulo-25
Tic modulo-25
 
Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto Word
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
 
Excel basico
Excel basicoExcel basico
Excel basico
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Gerencia e Administração de Redes
Gerencia e Administração de RedesGerencia e Administração de Redes
Gerencia e Administração de Redes
 
Reengenharia de Software
Reengenharia de SoftwareReengenharia de Software
Reengenharia de Software
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UML
 
Docker para iniciantes
Docker para iniciantesDocker para iniciantes
Docker para iniciantes
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
 
ACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidosACII - SL07 - Introducao aos sistemas distribuidos
ACII - SL07 - Introducao aos sistemas distribuidos
 
Aula 11 - Vetores unidimensionais - parte 1
Aula 11 - Vetores unidimensionais - parte 1Aula 11 - Vetores unidimensionais - parte 1
Aula 11 - Vetores unidimensionais - parte 1
 
Comandos Linux Parte 1
Comandos Linux Parte 1Comandos Linux Parte 1
Comandos Linux Parte 1
 
Prática de laboratório utilizando views, stored procedures e triggers
Prática de laboratório   utilizando views, stored procedures e triggersPrática de laboratório   utilizando views, stored procedures e triggers
Prática de laboratório utilizando views, stored procedures e triggers
 

Destaque

Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosRodrigo Almeida
 
Sistema operacional embarcado
Sistema operacional embarcadoSistema operacional embarcado
Sistema operacional embarcadoJaime Teixeira
 
SACOMP2014_EMBINST_v5
SACOMP2014_EMBINST_v5SACOMP2014_EMBINST_v5
SACOMP2014_EMBINST_v5Ad Souza Jr
 
Validação de Transformações e Model-Driven Engineering (MDE)
Validação de Transformações e Model-Driven Engineering (MDE)Validação de Transformações e Model-Driven Engineering (MDE)
Validação de Transformações e Model-Driven Engineering (MDE)Alexandre Augusto Giron
 
Aula 00 qs - apresentação da disciplina
Aula 00   qs - apresentação da disciplinaAula 00   qs - apresentação da disciplina
Aula 00 qs - apresentação da disciplinaJunior Gomes
 
Aula 04 qs - sistemas embarcados
Aula 04   qs - sistemas embarcadosAula 04   qs - sistemas embarcados
Aula 04 qs - sistemas embarcadosJunior Gomes
 
Transformando apresentação em imagem
Transformando apresentação em imagemTransformando apresentação em imagem
Transformando apresentação em imagemzepauloufpa
 
Introducao eng software [modo de compatibilidade]
Introducao eng software [modo de compatibilidade]Introducao eng software [modo de compatibilidade]
Introducao eng software [modo de compatibilidade]Fernanda Ramos
 
Aula 06 qs - garantia da qualidade de sw
Aula 06   qs - garantia da qualidade de swAula 06   qs - garantia da qualidade de sw
Aula 06 qs - garantia da qualidade de swJunior Gomes
 
Aula 01 qs - 6 sigma
Aula 01   qs - 6 sigmaAula 01   qs - 6 sigma
Aula 01 qs - 6 sigmaJunior Gomes
 

Destaque (20)

Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcados
 
Sistema operacional embarcado
Sistema operacional embarcadoSistema operacional embarcado
Sistema operacional embarcado
 
SACOMP2014_EMBINST_v5
SACOMP2014_EMBINST_v5SACOMP2014_EMBINST_v5
SACOMP2014_EMBINST_v5
 
Aula 02 qs - 5 s
Aula 02   qs - 5 sAula 02   qs - 5 s
Aula 02 qs - 5 s
 
Validação de Transformações e Model-Driven Engineering (MDE)
Validação de Transformações e Model-Driven Engineering (MDE)Validação de Transformações e Model-Driven Engineering (MDE)
Validação de Transformações e Model-Driven Engineering (MDE)
 
Aula 00 qs - apresentação da disciplina
Aula 00   qs - apresentação da disciplinaAula 00   qs - apresentação da disciplina
Aula 00 qs - apresentação da disciplina
 
Aula 04 qs - sistemas embarcados
Aula 04   qs - sistemas embarcadosAula 04   qs - sistemas embarcados
Aula 04 qs - sistemas embarcados
 
Minicurso Linux
Minicurso Linux Minicurso Linux
Minicurso Linux
 
Transformando apresentação em imagem
Transformando apresentação em imagemTransformando apresentação em imagem
Transformando apresentação em imagem
 
Introducao eng software [modo de compatibilidade]
Introducao eng software [modo de compatibilidade]Introducao eng software [modo de compatibilidade]
Introducao eng software [modo de compatibilidade]
 
Sistema operacional embarcado
Sistema operacional embarcadoSistema operacional embarcado
Sistema operacional embarcado
 
Aula 06 qs - garantia da qualidade de sw
Aula 06   qs - garantia da qualidade de swAula 06   qs - garantia da qualidade de sw
Aula 06 qs - garantia da qualidade de sw
 
Aula 01 qs - 6 sigma
Aula 01   qs - 6 sigmaAula 01   qs - 6 sigma
Aula 01 qs - 6 sigma
 
Minicurso - Introdução ao Blender
Minicurso - Introdução ao BlenderMinicurso - Introdução ao Blender
Minicurso - Introdução ao Blender
 
Sistemas embarcados
Sistemas embarcadosSistemas embarcados
Sistemas embarcados
 
Estudos de Controle - Aula 11: Análise de Resposta Transitória e de Regime Es...
Estudos de Controle - Aula 11: Análise de Resposta Transitória e de Regime Es...Estudos de Controle - Aula 11: Análise de Resposta Transitória e de Regime Es...
Estudos de Controle - Aula 11: Análise de Resposta Transitória e de Regime Es...
 
Estudos de Controle - Aula 10: Análise de Resposta Transitória e de Regime Es...
Estudos de Controle - Aula 10: Análise de Resposta Transitória e de Regime Es...Estudos de Controle - Aula 10: Análise de Resposta Transitória e de Regime Es...
Estudos de Controle - Aula 10: Análise de Resposta Transitória e de Regime Es...
 
Estudos de Controle - Aula 9: Análise de Resposta Transitória e de Regime Est...
Estudos de Controle - Aula 9: Análise de Resposta Transitória e de Regime Est...Estudos de Controle - Aula 9: Análise de Resposta Transitória e de Regime Est...
Estudos de Controle - Aula 9: Análise de Resposta Transitória e de Regime Est...
 
Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM
Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COMTutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM
Tutorial: Instalação do Linaro Ubuntu na Gumstix Overo® Fire COM
 
Estudos de Controle - Aula 7: Análise de Resposta Transitória e de Regime Est...
Estudos de Controle - Aula 7: Análise de Resposta Transitória e de Regime Est...Estudos de Controle - Aula 7: Análise de Resposta Transitória e de Regime Est...
Estudos de Controle - Aula 7: Análise de Resposta Transitória e de Regime Est...
 

Semelhante a DESENVOLVIMENTO DE SISTEMAS EMBARCADOS

Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Erivelton Silva Rocha
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioAdriano Bertucci
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidaderzauza
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSFabrício Campos
 
Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Adriano Bertucci
 
Resumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software ModernaResumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software ModernaLucasBastos305659
 
Contr avali engenharia de software-introdução
Contr avali   engenharia de software-introduçãoContr avali   engenharia de software-introdução
Contr avali engenharia de software-introduçãoFelipe Lyra
 
Introdução aos Testes de Desempenho
Introdução aos Testes de DesempenhoIntrodução aos Testes de Desempenho
Introdução aos Testes de DesempenhoBase2 Tecnologia
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareEduardo Santos
 
Plano do projeto de software
Plano do projeto de softwarePlano do projeto de software
Plano do projeto de softwareDanilo Gois
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASOs Fantasmas !
 
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarUtilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarOpencadd Advanced Technology
 
aula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxaula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxMarcondesTiburcio
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Renato Groff
 

Semelhante a DESENVOLVIMENTO DE SISTEMAS EMBARCADOS (20)

Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual Studio
 
Analise sistemas 06
Analise sistemas 06Analise sistemas 06
Analise sistemas 06
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
Teste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATSTeste de Performance - 3º Encontro da ALATS
Teste de Performance - 3º Encontro da ALATS
 
Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?
 
Resumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software ModernaResumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software Moderna
 
Tees Final
Tees FinalTees Final
Tees Final
 
Contr avali engenharia de software-introdução
Contr avali   engenharia de software-introduçãoContr avali   engenharia de software-introdução
Contr avali engenharia de software-introdução
 
Introdução aos Testes de Desempenho
Introdução aos Testes de DesempenhoIntrodução aos Testes de Desempenho
Introdução aos Testes de Desempenho
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de Software
 
Plano do projeto de software
Plano do projeto de softwarePlano do projeto de software
Plano do projeto de software
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
 
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarUtilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
aula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxaula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptx
 
Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016Microserviços - Universidade Metodista - EETI 2016
Microserviços - Universidade Metodista - EETI 2016
 
Eng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de softwareEng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de software
 

DESENVOLVIMENTO DE SISTEMAS EMBARCADOS

  • 1. DESENVOLVIMENTO DE SISTEMAS EMBARCADOS Discentes: Alexandre Augusto Giron Paulo Roberto de Oliveira Mestrado em Ciência da computação
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - CUSTO DE ENGENHARIA     Etapas de desenvolvimento do sistema Debugging Testes Estes gastos não são recorrentes 11
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. REQUISITOS DO DESENVOLVIMENTO DE SISTEMAS EMBARCADOS - TEMPO DE DESENVOLVIMENTO  Consumo de tempo  Processo de engenharia  Construção do protótipo 15
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS  Ciclo de vida de sistemas embarcados  Níveis de abstração  Projeto baseado em plataformas 19
  • 20. METODOLOGIA DE DESENVOLVIMENTO DE SISTEMAS EMBARCADOS – CICLO DE VIDA DE SISTEMAS EMBARCADOS 20
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 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 projeto 27
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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
  • 41. 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
  • 42. 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
  • 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
  • 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
  • 49. FERRAMENTAS DE APOIO  Linguagens de descrição de hardware  Verilog  VHDL 49
  • 50. 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
  • 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. 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
  • 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