Qualidade, Processos e Gestão
de Software Embarcado
Guilherme A. Dantas
Sistemas Embarcados
• Campo pouco explorado
• Crescimento
– Demanda
– Complexidade
• Visão geral, exploratória
• Apenas uma introdução!
Agenda
• Problemas e Desafios de Desenvolvimento de
Sistemas Embarcados
• Ciclos de Vida
• Métricas
• Certificação
• Modelo de Software Embarcado
• Agile x Embedded
• Caso: Intel Itanium
• Problem Conscious PM
• Conclusões
Sistemas Embarcados
• Larga escala
• Complexos
• Tempo real
• 80% da inovação no campo automotivo virá
de software
Sistemas Embarcados
• Como adaptar as técnicas existentes de
software para atender os desafios do mundo
físico?
Sistemas Embarcados
• Qualidade
– Plano e orçamento X Qualidade
– Sistemas complexos
• Disciplinas combinadas
– Problemas de comunicação!
Sistemas Embarcados
“Escrever código não é o problema.
Entender o problema é o problema.”
Sistemas Embarcados
• Pouco conhecimento do domínio da aplicação
– Aviação?
– Militar?
• Performance determinada pela profundidade do
entendimento da aplicação
– Programadores passam a entender o que faz sentido
– Ferramentas devem acomodar mudanças e suportar
representação de decisões incertas de design
Sistemas Embarcados
• Requisitos conflitantes
– Clientes não entendem a complexidade
– Regulamentações
– Necessidades e entendimento conflitantes
Sistemas Embarcados
• Comunicação e coordenação
– Comunicação extensiva
– Documentação
– Processo dialético
– Representação
– Fluxo de informação
Sistemas Embarcados
• Desafios
– Confiabilidade
– Robustez
– Performance
– Complexidade do sistema
– Gerenciamento de requisitos
– Otimização
– Gerenciamento de projetos global
– Verificação e ferramentas
Sistemas Embarcados
• Provavelmente continuará sendo um domínio
desafiador no futuro próximo
– Técnico
– Metodológico
Agenda
• Problemas e Desafios de Desenvolvimento de
Sistemas Embarcados
• Ciclos de Vida
• Métricas
• Certificação
• Modelo de Software Embarcado
• Agile x Embedded
• Caso: Intel Itanium
• Problem Conscious PM
• Conclusões
Ciclo de Vida 1
•
•
•
•
•
•
•
•
Capturar requisitos do usuário
Definição de contexto PIM
Especificação de requisitos PIM
Análise PIM
Design
Codificação e Integração
Testes
Deployment
Ciclo de Vida 2
•
•
•
•
Especificação de Requisitos de Sistema
Design de Arquitetura da Aplicação
Design da Arquitetura da Plataforma
Alocação/Configuração/Refinamento do
Sistema
• Avaliação de Qualidade
• Realização do Sistema (Implementação)
Ciclo de Vida 3
• DePES I e II
– 12 passos, documentos, UML
– Terminologia clara
– Modelagem de ambiente
– Foco na análise do problema
– Padrões, Modelos
– Descrição do processo
– Testes sistemáticos
Ciclo de Vida 3
• NÃO é um processo leve
• Modelagem do ambiente
• Análise nos primeiros estágios
• Design de hardware “congelado”
HW/SW Co-Design
Agenda
• Problemas e Desafios de Desenvolvimento de
Sistemas Embarcados
• Ciclos de Vida
• Métricas
• Certificação
• Modelo de Software Embarcado
• Agile x Embedded
• Caso: Intel Itanium
• Problem Conscious PM
• Conclusões
Métricas
Físicas
• Performance
• Memória
• Energia
• Potência
• Tamanho
• Peso
Código
• Acomplamento
• Coesão
• Reuso
• População (classe, etc.)
• Complexidade
Métricas
• Trade-off entre reusabilidade e otimização
• Métricas de qualidade de código destacam
qual solução é mais flexível, reusável e fácil de
manter
Métricas
• Classificação de Segurança
– A: Falha catastrófica
– B: Falha ameaçadora / muito grave
– C: Falha grave
– D: Falha leve
– E: Sem efeito
Agenda
• Problemas e Desafios de Desenvolvimento de
Sistemas Embarcados
• Ciclos de Vida
• Métricas
• Certificação
• Modelo de Software Embarcado
• Agile x Embedded
• Caso: Intel Itanium
• Problem Conscious PM
• Conclusões
Certificação
• Planejamento para aspectos de certificação do
software
• Verificação, CM, QA
• Código
– Cobertura de código em testes
– Rastreabilidade
Certificação
• Especificação formal
• Verificação de propriedades não funcionais
• Medição
• Avaliação de Processos
• Benchmarking
Agenda
• Problemas e Desafios de Desenvolvimento de
Sistemas Embarcados
• Ciclos de Vida
• Métricas
• Certificação
• Modelo de Software Embarcado
• Agile x Embedded
• Caso: Intel Itanium
• Problem Conscious PM
• Conclusões
Modelo de Software Embarcado
Modelos matemáticos
Modelo de Software Embarcado
Linguagens de Programação
• Abstrações de tempo e concorrência
Agenda
• Problemas e Desafios de Desenvolvimento de
Sistemas Embarcados
• Ciclos de Vida
• Métricas
• Certificação
• Modelo de Software Embarcado
• Agile x Embedded
• Caso: Intel Itanium
• Problem Conscious PM
• Conclusões
Agile x Embedded
• 7-10% das funcionalidades são
frequentemente usadas
• 60% raramente usadas
– Igualmente definidas, implementadas, verificadas,
testadas...
• 3G Network Spec -> 5000 Change Requests
• Overhead!
Agile x Embedded
• Software Process Improvement
– CMMI, Padrões, Modelos
– Tempo: 3-5 anos
– Custo: € 10-45k, por engenheiro
– Poucos estudos que comprovam ROI
– 70% dos projetos falham
Agile x Embedded
• Telecom, Automotive, Avionics, Consumer
Eletronics
– Não tem espaço para projetos de melhoria muito
longos
– Melhoria incremental não é suficiente para a
competição global
– Abordagem inovadora
Agile x Embedded
• Agile
– Forte para aplicações de negócio e web
– Projetos de puro software
– Pouco se sabe da aplicabilidade em campos mais
restritos
• Hardware-bound
Agile x Embedded
• Objetivos:
– Custo-benefício
– Qualidade
– Time-to-market
AGILE ITEA
• Agile Software Development of Embedded
Systems
• Práticas são aplicáveis, com forte adaptação
dependendo de:
– Questões de certificação
– Profunda dependência de hardware
– Cultura da companhia
AGILE ITEA
• Novos métodos para preencher as lacunas!
• Mobile-D: mobile sw development, team<20
• RaPiD7: documentação em formato de
workshop
• Post-iteration improvement approach
• EDDY-process model for mobile telecom
industry
AGILE ITEA
•
•
•
•
68 estudos
1800 engenheiros
17 companhias européias
2 anos e meio
• 73% dos casos considerados bem sucedidos!
– Sem detalhes dos casos falhos
AGILE ITEA
• Oportunidades de negócio
– Redução de custo
– Aumento na satisfação dos empregados
• Embedded Agile Institute (Europa)
– ...
Agenda
• Problemas e Desafios de Desenvolvimento de
Sistemas Embarcados
• Ciclos de Vida
• Métricas
• Certificação
• Modelo de Software Embarcado
• Agile x Embedded
• Caso: Intel Itanium
• Problem Conscious PM
• Conclusões
Intel Itanium
• Conhecimento muito especializado
• Background técnico
• Atitude em relação às mudanças
• Frustração com planejamento que não se
conseguia cumprir
– Culpa
– Ou perda de tempo
Intel Itanium
• Pouca cobertura de testes
• Mudanças feitas sem controle
– Sem suíte de regressão
• Manutenção de código fraca
– Otimização e complexidade além da conta
– Estilos de codificação inconsistentes
Intel Itanium
•
•
•
•
Scrum + XP
Experiência positiva
“People aspect of Agile”
Design de processadores
– Grande software em HDL
Intel Itanium
• Herança de Agile vem da manufatura
• Não há razão para que não possa ser aplicado
• Outros times dentro da Intel operam em um
modo mais ágil e parecem bem sucedidos!
Agenda
• Problemas e Desafios de Desenvolvimento de
Sistemas Embarcados
• Ciclos de Vida
• Métricas
• Certificação
• Modelo de Software Embarcado
• Agile x Embedded
• Caso: Intel Itanium
• Problem Conscious PM
• Conclusões
Problem Conscious PM
•
•
•
•
•
•
•
Objetivos obscuros
Overplanning ou Underplanning
Escassez de recursos ou competências
Underestimation
Phasing
Huge projects
Very huge projects...
Problem Conscious PM
• Nenhuma metodologia ou modelo trata
especificamente o desenvolvimento de
sistemas embarcados
• Adaptação!
– Sistemas críticos
– Time-to-market
Agenda
• Problemas e Desafios de Desenvolvimento de
Sistemas Embarcados
• Ciclos de Vida
• Métricas
• Certificação
• Modelo de Software Embarcado
• Agile x Embedded
• Caso: Intel Itanium
• Problem Conscious PM
• Conclusões
Conclusões
• Embedded Systems PM
– Planejar certificação
– Modelos para medir e avaliar software embarcado
– Definir critérios de qualidade prioritários
– Escolher processo baseado na criticidade do
projeto
• Agile ou não
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
• Agile para sistemas embarcados!
– Security, financial, logistics...
• Oportunidades de pesquisa!
Download

Qualidade, Processos e Gestão de Software Embarcado