sistemas embarcados qualidade de • são sistemas...
TRANSCRIPT
Qualidade de
Software
Aula 04 - QS - Sistemas
Embarcados
Prof. Ms. Luiz Alberto
Contato: [email protected]
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Sistemas Embarcados
• São sistemas computacionais que estão inseridos em máquinas ou em sistemas maiores
• Embutidos em equipamentos eletrônicos:– telefones celulares, microondas, forno microondas,carros, automação
de escritório....
• Encontrado em quase todas as aplicações que necessitam de algum tipo de controle....
– 1 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Áreas de Aplicação
• produtos de consumo: – telefones celulares, pagers, câmaras digitais, aparelho
de DVD, vídeo games portáteis, calculadores, etc;
• eletrodomésticos: – forno de microondas, secretárias eletrônicas,
equipamentos de segurança, termostatos, máquinas de lavar e sistemas de iluminação;
– 2 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Áreas de Aplicação
• Automação de escritório: – copiadoras, impressoras e scanners;
• Automóveis: – controle de transmissão, injeção eletrônica,
suspensão ativa, freio ABS.
– 3 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Caracterização
• São usados para controlar sistemas de diferentes tipos: máquinas domésticas, fábricas, carros, jogos etc.
• O software é embutido no hardware do sistema e com ele interage
• O tempo de resposta o diferencia de outros sistemas.
• É tipo de sistema mais comum, com grande impacto econômico.
– 4 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Características
• Funcionalidade única, executada repetidamente• Entrada/Saída intensivo • Executa tarefas em paralelo• Restrições de projeto mais rígidas:
– Custo, tamanho, peso, desempenho, potência dissipada, etc.
• Tempo real: – O tempo para fornecer resultados é determinado pelo tempo que o
ambiente pode esperar.– Sistemas em que têm aspectos temporais na especificação.
• Sistemas reativos– Reagem continuamente a estímulos externos
– 5 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Arquitetura Básica
• Arquitetura de Hardware– Forte comunicação com o ambiente
– Forte restrição de recursos, tamanho, potência, peso...
• Arquitetura de Software– Tratamento rápido de interrupção
– Sistemas operacionais de tempo real
– Softwares eficientes em tamanho e desempenho
– 6 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Geralmente:
• O software que executa em um computador e controla outras máquinas é um sistema embarcado de tempo real.
• Recebe eventos (sinais) gerados pelo hardware e emite sinais de controle para o hardware em resposta a esses eventos.
• A resposta pode estar condicionada a restrições de tempo.
• Nem todo sistema embarcado é de tempo real e vice-versa.
– 7 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Engenharia de Sistemas Embarcados
• Deve considerar em detalhes o projeto e o desempenho do hardware do sistema.
• É preciso decidir que recursos deve ser implementado em software e que parte de hardware
• Custos e consumo de energia são críticos.
• É necessário decidir se serão usados processadores de prateleira ou se deverá ser projetado e construído um novo hardware.
– 8 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Projeto de Sistemas Embarcados • Um processo top down pode ser difícil de usar.
• Decisões de baixo nível relacionadas ao hardware precisam ser tomadas no início do projeto, o que diminui a flexibilidade do projeto.
• Os sistemas são geralmente reativos e baseados numa abordagem estímulo-resposta.
• O estímulo é uma entrada e deve produzir uma resposta, que é uma saída e geralmente é dirigido a atuadores
– 9 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Sistemas de tempo real
• As linguagens de programação precisam incluir recursos de baixo nível. Ex. C.
• Java vem sendo atualizada para incluir vários mecanismos que permitam o uso em sistemas de tempo real. – O mecanismo básico são as threads
– 10 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Projeto de Sistemas: Atividades Principais • Seleção da plataforma (Hardware e SO)
• Identificar os estímulos/respostas
• Analisar restrições temporais (timing) para cada estímulo (restrições de tempo)
• Alocar estímulo e processamento a processos concorrentes
• Projeto de processos (concorrentes), de acordo com a arquitetura do sistema.
– 11 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Projeto de Sistemas: Atividades Principais • Projetar os algoritmos para fazer o
processamento necessário
• Projeto de dados
• Programação de processo: projetar um sistema de alocação (scheduling) que permita atender às restrições temporais.
– 12 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Algumas considerações
• Coordenação de processos (semáforos, regiões críticas.
• Análises teóricas para avaliar se as restrições temporais serão atendidas. Isso pode ser difícil
• Linguagens OO podem não ser eficientes para implementar um STR.
– 13 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Algumas considerações
• Os processos podem executar com diferentes velocidades.
• Isso pode ser resolvido implementando trocas de informações por meio de “buffers” compartilhados e uso de exclusão mútua para controlar o acesso ao buffer.
– 14 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Modelagem de STR • A resposta aos estímulos muitas vezes
dependem do estado do sistema – uso de diagramas de estado
• UML: statecharts
• Um modelo de estado considera que em qualquer momento o sistema está em um dos vários estados possíveis. Os estímulos causam a transição para outros estados. – Exemplo: uma bomba de gasolina automática
– 15 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Modelagem de STR
– 16 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Sist. Operacional de Tempo Real
• Responsáveis pelo gerenciamento do processo e pela alocação de recursos (processador e memória).
• Muitos sistemas embutidos funcionam com um SOTR
• Os SOTR podem ser muito simples ou grandes e complexos.
• Em geral possuem: relógio de tempo real, tratador de interrupções, alocador (scheduler) gerenciador de recurso e despachador
– 17 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Exemplo: sistema de alarme contra roubos para edifícios comerciais • Sensores de movimento em salas (200)
• Sensores em janelas (50)
• Sensores de porta (30)
• Chama um telefone da polícia e sintetiza voz para indicar onde foi ativado o alarme
• liga alarme sonoro
• Acende luzes ao redor do sensor ativado
• Tem back-up de energia e monitora a queda de energia, mudando para a conjunto de baterias.
– 18 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Estímulos
• Há duas categorias: Falha de energia e alarme de intrusos
• Lista de estímulos-respostas – Interrupção por falha de energia (50ms)
– Alarme de porta (2/s)
– Alarme de janela (2/s)
– Detector de movimentos (2/s)
– Alarme sonoro (após 0.5s)
– Interruptor de luzes (após 0.5s)
– Comunicação (após 2s)
– Sintetizar voz (após 4s)
– 19 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Estímulos
– 20 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Metodologia de Projeto
• Principais diferenças entre o projeto de S.E. e projeto de aplicações para desktops– Requisitos não-funcionais são fundamentais: preço, tamanho, peso,
potência,...– Flexibilidade: plataforma não definida, vários tipos de S.O., controle total
da máquina.– Grande preocupação com previsibilidade no uso de recursos– Sistema muito restrito: eficiência no uso de recursos é fundamental
– 21 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Exemplo
• Projeto de um controle remoto de televisão (infra-vermelho)– Controle simples com 3 botões:
• Liga/desliga
• Seleção de canais
– Opera com bateria
– Deve ser leve
– Controla a televisão por infravermelho
– Protocolo de comunicação com a televisão• Proprietário
• Uso de ROM fornecida pelo cliente
– Satisfazer as especificações temporais fornecidas pelo cliente:• Código de assinatura
• Comando
– 22 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Exemplo: Definição do Hw e Sw
• Processador:– Microcontrolador de 8 bits
• Sistema Operacional:– Não há necessidade
• Linguagem de programação: – C
• Bibliotecas de software:– Nenhuma
• Componentes de Hardware:– Botões– LED infravermelho
– 23 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
• Como o sistema vai satisfazer requerimentos do usuário dadas as restrições de projeto– Revisar a análise– Especificar componentes de hardware– Definir Interface de hardware– Especificar subsistemas de software– Definir interfaces de software– Especificar processos de início e final– Especificar tratamento de erros– Verificar resultados da etapa de design
Requisitos do cliente
– 24 – Prof. Luiz Alberto -
Hardware
Algoritmo
Layout
Program Convolution
SEQ i=0 FOR 2
PAR
IF (x[i]>= 0 c:= x[i],
x[i]<0 c:= x[i]/2)
IF (x[i+1]>= 0 d:= x[i+1],
x[i+1]<0 d:= x[i+1]/2)
PAR j=0 FOR 4
e[j]:= x[f(i,j)]
PAR
w := k*e[i]
PAR j= 0 FOR 4
y[j] := y[j] + e[j]*(c+d)
Características
- alto desempenho- pequeno tamanho- alto custo- pouco flexível
Hardware
Alternativas de implementação
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Program Convolution
SEQ i=0 FOR 2
PAR
IF (x[i]>= 0 c:= x[i],
x[i]<0 c:= x[i]/2)
IF (x[i+1]>= 0 d:= x[i+1],
x[i+1]<0 d:= x[i+1]/2)
PAR j=0 FOR 4
e[j]:= x[f(i,j)]
PAR
w := k*e[i]
PAR j= 0 FOR 4
y[j] := y[j] + e[j]*(c+d)
SW
HW
HW
Microprocessador
Circuitos
específicos
Hardware/Software
Alternativas de implementação
– 26 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Linguagens Empregadas
• Segundo uma pesquisa
– 49% assembly– 33% C– 5% Basic– 3% Pascal– 9% outras linguagens
• A previsibilidade no uso de recursos e tempo de execução é fundamental para sistemas críticos
– 27 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Linguagens orientadas a objetos
• Linguagens orientadas a objeto– ciclo de desenvolvimento mais rápido
– melhores métodos de estruturação e modularização
– reutilização de objetos
– Java, não há um modelo definido para o escalonamento das threads. Inviabiliza tempo real
– 28 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
• C e Assembly– Excelente controle do hardware e do tempo de execução
– Alta performance
– Dificuldades no desenvolvimento
– Assembly:
• Difícil modularização e reutilização
Linguagens imperativas
– 29 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Sistemas Embarcados
• Desafios– Confiabilidade
– Robustez
– Performance
– Complexidade do sistema
– Gerenciamento de requisitos
– Otimização
– Gerenciamento de projetos global
– Verificação e ferramentas
– 30 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
O futuro dos sistemas embarcados - Automóveis
• Os carros hoje têm:– freios ABS (Anti-Break System),
– ignição eletrônica,
– injeção eletrônica,
– suspensão ativa,
– computador de bordo,
– painel digital (com conta-giros, velocímetro, marcador de combustível, etc),
– aparelho de som digital,
– ar-condicionado inteligente (que desliga se o motor for requisitado para umaultrapassagem, por exemplo),
– controle de tração,
– air-bag,
– alarme contra roubo,
– entre outros, e todos estes equipamentos são computadorizados.
– 31 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
O futuro dos sistemas embarcados - Automóveis
• Além disso, estuda-se o uso de carros autônomoscapazes de se auto-guiar, os quais aliados arodovias inteligentes que trocam informações entreos diversos carros, ajuda-os a controlar a distânciaentre eles e a velocidade, de modo a que secomportem efetivamente como um trem
– 32 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Conclusões
• Falhas em software embarcado são mais graves
• Mais software, mais sistemas, mais falhas
• Diversos desafios• Qualidade
• Escolha de métodos baseada no contexto• Riscos
• Oportunidades de pesquisa!
– 33 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Conclusões
• Sistemas de tempo real estão ligados a monitoramento e controle
• O tempo é fator crítico – Hard e soft real time
• Software envolvido neste sistema necessita características específicas – Ex: SO com suporte a multitarefa é necessário
• Projeto de Sistemas de Tempo real – Devem levar em conta as restrições de tempo
– Padrões Arquiteturais
– 34 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Exercício
1. Usando exemplos, explique por que, geralmente, os sistemas de tempo real precisam ser implementados usando processos concorrentes.
2. O que diferencia o projeto de Sistema Embarcados do projeto de aplicativos para computadores?
3. Mencione pelo menos 5 restrições de projeto comuns em Sistema Embarcados?
4. Quais as vantagens e desvantagens de usar Software e/ou Hardware para implementar um Sistema Embarcados?
5. O que vem mudando na forma de projetar Sistema Embarcados ao longo do tempo?
– 35 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Referência
• SOMMERVILLE, Ian. Engenharia de Software -Ed. Prentice Hall, 2019. 10ª Edição– Capitulo 21 – Engenharia de
Software de Tempo Real
– 36 – Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Referência
– 37 –
Prof. Luiz Alberto -Aula - QS - Sistemas Embarcados
Atividade em Equipe
• Objetivo: desenvolver um projeto de um sistema embarcado para permitir a compra de lojas em um shopping sem vendedores e caixa.
• Trabalho em dupla e deve ser apresentado na próxima aula
• Especificar:– Tipo de Sistema
– Principais requisitos de Software e Hardware
– Definição dos profissionais envolvidos
– Técnicas para garantir a qualidade
– Medidas de avaliação da Qualidade
– Prazo e custo estimado
– Definir como será garantido a disponibilidade, confiabilidade, proteção e segurança do sistema (escolher duas mais importantes)
• Apresentação: considerar que existem um grupo de investidores e vocês tentarão convencê-los a comprar o projeto
– 38 –