Anda di halaman 1dari 116

II Escola Regional de Informática – ERIN 2010

Aplicação de Software Embarcado com Metodologia Ágil

Experiência com Robôs


Móveis
Palestrante:
Walter Seiffert Simões
O que é Sistema
Embarcado?
O que é Sistema Embarcado?

Definição:

Sistema embarcado (ou embutido) é um


sistema microprocessado no qual o
computador é completamente encapsulado ou
dedicado ao dispositivo ou sistema que ele
controla.

Diferente de computadores de propósito geral,


como o computador pessoal, um sistema Fig.Parte interna de um roteador, exemplo de
embarcado realiza um conjunto de tarefas um sistema embarcado
predefinidas, geralmente com requisitos
específicos.
O que é Sistema Embarcado?

Definição:

Já que o sistema é dedicado a tarefas específicas, através de engenharia pode-se


otimizar o projeto reduzindo tamanho, recursos computacionais e custo do
produto.

Obs: “Colocar capacidade computacional dentro de um circuito


integrado, equipamento ou sistema”: São definições para um sistema
embarcado [1].

É importante ressaltar que um sistema como este deve ser mais do que um
simples computador, ou seja, é um sistema completo e independente, mas
desenvolvido para realizar apenas uma determinada tarefa.
O que é Sistema Embarcado?

Definição:

Exemplo: O forno microondas


é dotado de uma capacidade
computacional maior do que
tinha o computador de bordo
do projeto Apolo 13 [2].

Ao pressionarmos a tecla
PIPOCA, um sistema interno deve saber ajustar a potência correta, selecionar e
medir o tempo em que o forno deve ficar acionado e emitir um sinal quando a tarefa
for concluída.
O que é Sistema Embarcado?

Definição:

Para operar esta simples operação, o “cérebro” do forno deve receber sinais de
sensores (como o da porta, para saber se a mesma foi realmente fechada), fazer
o acionamento do equipamento de potência, calcular o tempo da operação,
acionar o motor que fará a rotação do prato, permitir que o usuário interrompa
a operação a qualquer momento, atualizar o display e medir quanto tempo se
passou desde o início da operação.

Diferente dos computadores que rodam sistemas operacionais e softwares para


as mais variadas aplicações, os sistemas embarcados são construídos para
executar uma tarefa prédeterminada.

Logo na maioria dos projetos para estes sistemas não há flexibilidade de


software ou hardware que lhes permita realizar outras tarefas que não sejam
aquelas para as quais foram desenhados e desenvolvidos.
O que é Sistema Embarcado?

Definição:

A única flexibilidade permitida


e desejada é no caso de um upgrade
de novas versões, fazendo com que
o sistema possa ser reprogramado
com correções ou novas funções que
o tornem melhor.

O telefone celular é um exemplo de


sistema embarcado que sofre vários upgrades e que já possui funções como
máquina fotográfica, agenda telefônica, agenda de compromissos, navegador para
internet, etc.
O que é Sistema Embarcado?

Definição:

Fig. Diagrama básico de um sistema embarcado dotado de um microcontrolador


monitorando o ambiente.
O que é Sistema Embarcado?

História:

Nos primeiros anos dos computadores digitais


na década de 1940, estes eram por vezes
dedicados a uma única tarefa mas não
podemos dizer que eram Embarcados por
serem grandes demais.

O conceito de controlador programável foi


desenvolvido algum tempo depois.
O que é Sistema Embarcado?

História:

O primeiro sistema embarcado reconhecido


foi o Apollo Guidance Computer,
desenvolvido por Charles Stark Draper no
MIT.

O computador de guia, que operava em


tempo real, era considerado o item mais
arriscado do projeto Apollo.

O uso de circuitos integrados monolíticos


para reduzir o tamanho e peso do
equipamento aumentou tal risco. Fig. O monitor e o teclado (DSKY) interface do
Apollo Guidance Computer montado no painel
de controle do módulo de comando, com o
diretor de vôo indicador de atitude (FDAI)
acima.
O que é Sistema Embarcado?

História:

O primeiro sistema embarcado de produção em massa foi o


computador guia do míssil nuclear LGM-30 Míssil
Minuteman, de 1961.

Características: possuía um disco rígido para a memória


principal.

Quando a segunda versão do míssil entrou em produção em


1966, o computador guia foi substituído por um novo, que
constituiu o primeiro uso em grande volume de circuitos
integrados.
O que é Sistema Embarcado?

História:

A tecnologia desse projeto reduziu o preço de circuitos integrados como o NAND


de mil para três dólares cada, permitindo seu uso em sistemas comerciais.

Em meados dos anos 80, vários componentes externos foram integrados no


mesmo chip do processador, o que resultou em circuitos integrados chamados
microcontroladores e na difusão dos sistemas embarcados.
O que é Sistema Embarcado?

História:

Com o custo de microcontroladores menor que um dólar, tornou-se viável


substituir componentes analógicos caros como potenciômetros, capacitores por
eletrônica digital controlada por microcontroladores.

No final dos anos 80, os sistemas embarcados já eram a norma ao invés da


exceção em dispositivos eletrônicos.
O que é Software
Embarcado?
O que é Software Embarcado?

Definição:

Um sistema é classificado como embarcado quando este é dedicado a uma única


tarefa e interage continuamente com o ambiente a sua volta por meio de sensores e
atuadores .

Este sistema exige uma interação contínua com o ambiente, e por isso, requer do
projetista um conhecimento em programação, sistemas digitais, noções de
controle de processos, sistemas de tempo real, tecnologias de aquisição de dados
(conversão analógico/digital e sensores) e de atuadores (conversão
digital/analógico, acionamento eletromecânico e PWM - Pulse Width
Modulation ), e cuidados especiais na eficiência de estruturação do projeto e do
código produzido.
O que é Software Embarcado?

Definição:

A denominação “embarcado” (do inglês Embedded Systems) vem do fato de que


estes sistemas são projetados geralmente para serem independentes de uma fonte
de energia fixa como uma tomada ou gerador.

Principais Características de Classificação:


• Capacidade computacional e;
• Sua independência de operação.

Outros aspectos relevantes dependem dos tipos de sistemas, modos de


funcionamento e itens desejados em aplicações embarcadas.
O que é Software Embarcado?

Definição:

Fig. Lógica de um sistema embarcado usando um microprocessador como unidade de


processamento.
O que é Software Embarcado?

Definição:

Todo sistema embarcado é composto por uma unidade de processamento, que é um


circuito integrado, fixado a uma placa de circuito impresso.

Possuem uma capacidade de processamento de informações vinda de um software


que está sendo processado internamente nessa unidade, logo o software está
embarcado na unidade de processamento.

Todo software embarcado é classificado de firmware [3].


O que é Software Embarcado?

Exemplos e Aplicações:

Os sistemas embarcados estão inseridos em milhares de dispositivos comuns


utilizados no dia a dia como em eletrodomésticos, aparelhos de áudio e vídeo,
celulares e outros .

A Seguir alguns exemplos de aplicações:


O que é Software Embarcado?

Exemplos e Aplicações:

1. Setor Automobilístico

Um veículo top de linha é um excelente exemplo de um complexo sistema


literalmente “embarcado”. Centenas de sensores fornecem informações sobre todo o
funcionamento do veículo.

Várias unidades de processamento independentes atuam em regiões diferentes e se


comunicam entre si, captando os sinais destes sensores e fazendo com que as ações
referentes a cada caso sejam tomadas.

A comunicação é feita através de redes, com o protocolo CAN, que se tornou padrão
para este tipo de aplicação.
O que é Software Embarcado?

Exemplos e Aplicações:

Fig. Sistemas embarcados em um veículo: Sensor de proximidade, ângulo e atuador para freios. Todos os
sistemas se comunicam entre si através de uma central para controle do diagnóstico do veículo.
O que é Software Embarcado?

Exemplos e Aplicações:

2. Aquisição de Dados – Data Logger

A aquisição de dados é um exemplo de aplicação mais utilizada em Sistemas


embarcados.

Consistem de sistemas que através de sensores (temperatura, umidade, pH e


outros) capturam as variáveis ambientes a serem analisadas e são gravadas em
memória para consultas posteriores.

O Sistema além de monitorar o ambiente, com adição de atuadores ao projeto, pode


ter a capacidade de controlar as variáveis ambiente com base em um critério
estabelecido pelo projetista do sistema.
O que é Software Embarcado?

Exemplos e Aplicações:

Fig. Data Logger para Temperatura do Ar.


O que é Software Embarcado?

Exemplos e Aplicações:

3. Propósito Geral

São as aplicações mais parecidas com os computadores de mesa, mas em


embalagens embarcadas.

Nelas costuma haver grande interação entre os usuários e o sistema, geralmente


através de terminais de vídeo ou monitores. Como exemplo tem-se os videogames,
os conversores de TV a cabo, caixas de banco.
O que é Software Embarcado?

Exemplos e Aplicações:

Fig. Nintendo Wii e sua grande interação com o usuário


O que é Software Embarcado?

Exemplos e Aplicações:

4. Sistemas de Controle

Controles em malha fechada com realimentação em tempo real. Geralmente são


aplicações mais robustas, com placas dedicadas e múltiplos sensores de entrada e
saída.

Muitas vezes fornecem pouca interação com o usuário, mostrando sinalizações


através de LEDs. Usados nos motores de automóveis, processos químicos, controle
de vôo, usinas nucleares, aplicações aeroespaciais e monitoramento e controle de
variáveis ambiente (temperatura, umidade, pH do ar).
O que é Software Embarcado?

Exemplos e Aplicações:

Fig. Sistema de Controle Industrial com Supervisório


O que é Software Embarcado?

Exemplos e Aplicações:

5. Processamento de Sinais

Onde envolve um grande volume de informação a ser processada em curto espaço


de tempo. Os sinais a serem tratados são digitalizados através de conversores
Analógico/Digital, processados e novamente convertidos em sinais analógicos por
conversores Digital/Analógico.

Casos de tratamento de áudio, filtros, modems, compressão de vídeo, radares e


sonares, etc. Existem os DSP (Digital Signal Processor – Processador Digital de
Sinais) os microcontroladores dotados deste recurso são os Blackfin da Analog
Devices e o DsPIC da Microchip.
O que é Software Embarcado?

Exemplos e Aplicações:

Fig. Ambiente de desenvolvimento DSP para o dsPIC.


O que é Software Embarcado?

Exemplos e Aplicações:

6. Comunicações, Redes e TV Digital

Chaveamento e distribuição de informações. Sistemas de telefonia e


telecomunicações e internet. Hub´s, Switch´s e Roteadores são dotados de
microprocessadores e de microcontroladores para controle digital de sinais.

Na TV Digital estes controladores digitais têm um núcleo para processamento


digital de sinais, instalado na antena (smart antennas) e no receptor da TV Digital,
com objetivo de selecionar o melhor foco do canal e eliminar sinais ruidosos.
O que é Software Embarcado?

Exemplos e Aplicações:

Fig. Roteador Cisco – Circuito composto por vários sistemas embarcados.


Método Tradicional
Método Tradicional

 PMBOK

 Definição:

O gerenciamento de projetos é a aplicação de conhecimento, habilidades,


ferramentas e técnicas às atividades do projeto a fim de atender aos seus
requisitos.

Estes processos são por natureza iterativos, devido à característica de elaboração


progressiva atribuída ao ciclo de vida dos projetos [PMI, 2004].
Método Tradicional

 PMBOK

 Processos:

Os cinco grupos de processos de


gerenciamento de projetos são:

 Iniciação
 Planejamento
 Execução
 Monitoramento e Controle
 Encerramento
Método Tradicional

 PMBOK

 Processos:

Processo é um conjunto de ações e atividades interrelacionadas que são


executadas para alcançar um objetivo. Cada processo é caracterizado por suas
entradas, as ferramentas e as técnicas que podem ser aplicadas, e as saídas
resultantes.
Método Tradicional

 PMBOK

 Áreas de Conhecimento:

As nove áreas de conhecimento


caracterizam os principais aspectos
envolvidos em um projeto e no seu
gerenciamento:

 Integração, Escopo, Tempo, Custos,


Qualidade, Recursos humanos,
Comunicações, Riscos, Aquisições.
Método Tradicional

 PMBOK

 Áreas de Conhecimento:

Escopo, Tempo, Custos e Qualidade são os principais determinantes para o


objetivo de um projeto: entregar um resultado de acordo com o escopo, no prazo e
no custo definidos, com qualidade adequada; em outras palavras, o que, quando,
quanto e como.

Recursos Humanos e Aquisições são os insumos para produzir o trabalho do


projeto.
Método Tradicional

 PMBOK

 Áreas de Conhecimento:

Comunicações e Riscos devem ser continuamente abordados para manter as


expectativas e as incertezas sob controle, assim como o projeto no rumo certo.

Integração abrange a orquestração de todos estes aspectos.

Um projeto consiste nisso: pessoas (e máquinas) que utilizam tempo, materiais e


dinheiro realizando trabalho para atingir determinado objetivo.
Método Tradicional

 PMBOK

 Áreas de Conhecimento:

Os grupos de processos de gerenciamento de projetos têm grande correspondência


com o conceito do Ciclo PDCA (Plan - Do - Check - Act):

•Planejar - Fazer - Verificar - Agir (corrigir e melhorar).

O grupo de Planejamento corresponde ao Planejar; Execução, ao Fazer; e


Monitoramento e controle englobam Verificar e Agir.

E como a natureza dos projetos é finita, o PMBOK ainda caracteriza os grupos de


processos que iniciam (Iniciação) e finalizam (Encerramento) um projeto.
Método Tradicional

 PMBOK

 Áreas de Conhecimento:

Além de conceituar os aspectos fundamentais do gerenciamento de projetos, de


forma a promover um vocabulário comum dentro dessa profissão, o Guia PMBOK
documenta (define e descreve) processos de gerenciamento de projetos e os
apresenta didaticamente, organizados em um capítulo por área de conhecimento.

Em cada processo, são abordados suas entradas e saídas, suas características, bem
como os artefatos, técnicas e ferramentas envolvidas.
Método Tradicional

 PMBOK

 Áreas de Conhecimento:

O excelente diagrama com um fluxo proposto por Mauro Sotille, disponível nas
seções de templates e artigos sobre Gerenciamento de Projetos do portal da
empresa PM Tech, relaciona:

•forma gráfica e sintética todos os 42 processos de gerenciamento de um


projeto descritos no PMBOK 4ª Edição;

• Indica também os cinco grupos em que os processos se distribuem e as


respectivas áreas de conhecimento associadas a cada um.
Método Tradicional

 PMBOK

 Áreas de Conhecimento:

Pelo diagrama é fácil perceber algumas características lógicas dos processos de


gerenciamento de um projeto:

 praticamente todas as áreas de conhecimento são abordadas nas atividades de


Planejamento (definir, estimar e planejar cada aspecto) e de Monitoramento e
Controle (controlar) — no PMBOK 4ª edição, o processo de Gerenciar a equipe
passou ao grupo de Execução, deixando apenas a área de RH sem processos no
grupo de Controle;
Método Tradicional

 PMBOK

 Áreas de Conhecimento:

 quanto a Execução, os aspectos envolvidos mais ativamente são a equipe (RH) e


as aquisições, as comunicações e a garantia da qualidade;

 a integração se faz presente em todos os momentos do projeto.


Método Tradicional

 PMBOK

 Áreas de Conhecimento:

 Na figura com as descrições, os grupos de processos representam os tipos de


atividades, as áreas de conhecimento caracterizam os assuntos, e seu
cruzamento induz, de forma bastante intuitiva, os respectivos verbos — definir,
planejar, estimar, gerenciar, monitorar, controlar, encerrar etc. — e substantivos
que descrevem os processos de gerenciamento relacionados.

 Isso mostra que os conceitos e melhores práticas que o PMBOK reúne, organiza
e formaliza estão naturalmente presentes na essência do gerenciamento de
qualquer bom projeto.
Método Tradicional

 PMBOK

 O Gerente de Projetos:

O trabalho do gerente de um projeto pode ser sintetizado em dois grandes


elementos:

 Planejar (antes) e Controlar (durante) as atividades do projeto e seu


gerenciamento, conforme se pode constatar pela concentração de processos de
gerenciamento de um projeto abrangendo todas os aspectos envolvidos.

 Comunicar: os gerentes de projetos passam a maior parte do seu tempo se


comunicando com os membros da equipe e outras partes interessadas do
projeto.
Método Tradicional

 PMBOK

 O Gerente de Projetos:

Os gerentes de projetos usam diversas habilidades interpessoais com frequência,


dentre as quais pode-se destacar:

 Liderança
 Solução de conflitos e problemas
 Negociação, influência e persuasão
 Organização e disciplina
 Decisão, iniciativa e proatividade
Método Tradicional

 PMBOK

 O Gerente de Projetos:

 Empreendedorismo
 Transparência, clareza e objetividade
 Eficácia

Mais que ser um facilitador, o gerente de projetos deve fazer a diferença no


andamento e no sucesso dos projetos.
Método Tradicional

 PMBOK

 Road Map do processo PMI :


Iniciação, Planejamento, Execução, Encerramento e Controle do projeto

 .
Método Tradicional

 PMBOK

 Gerência da especificação dos produtos (escopo) :


Normas ISO 9002 e CMM.
Indicadores.
Sensores e atuadores.

 .
Método Tradicional

 PMBOK

 Gerenciamento das tarefas (schedulle):


WBS Execução (tracking)
Gráfico de Gantt Milestones
Visualização (envisioning) Visão estatística (probabilidade)
Planejamento linear Visão determinística (realidade virtual e
realidade factual)
Planejamento em espiral PERT/CPM
 Assumindo
. compromissos: Linha de Agendamento de tarefas
Base (baseline)
Método Tradicional

 PMBOK

 Gerenciamento dos recursos e custos do projeto:


Dimensionamento de recursos. Balanceamento de projetos.
Apropriação de recursos. Refinamentos sucessivos.
Planejamento de recursos humanos. Administração de conflitos,
disponibilidade e carga de trabalho.
Planejamento de recursos materiais. Apropriação de custos e gestão de custos
baseado no ABC (Activity Based Cost).

 .
Método Tradicional

 PMBOK

 Ferramentas de suporte tecnológico - visão gera l:


BPPS (Business Project Planning System.
ERP (Enterprise Resource Planning).

 .
Método Tradicional

 PMBOK

 Sistema de Informações Gerenciais do Projet:


Comunicação
Relatórios Gerenciais

 .
Método Ágil
Método Ágil

 Scrum – A Ordem Nascida do Caos:

 Quantos projetos são entregues…

 Dentro do tempo prometido?

 Dentro das especificações esperadas?

 Dentro do orçamento previsto?

 Com a qualidade esperada?

 …?
Método Ágil

 Scrum – A Ordem Nascida do Caos:

 Perdendo no revezamento

O estilo de “corrida de revezamento” aplicado ao desenvolvimento de produtos


pode conflitar com os objetivos de velocidade e flexibilidade máximas.

Ao invés disto, um estilo holístico, onde a equipe busca, como em um jogo de


futebol, de forma integrada, chegar ao gol, com passes de bola, pode servir melhor
às atuais necessidades competitivas.

Adequado de “The New New Product Development Game”,


Hirotaka Takeuchi e Ikujiro Nonaka, Harvard Business Review,
January 1986.
Método Ágil

 Scrum – A Ordem Nascida do Caos:


 Revezamento
Método Ágil

 Scrum – A Ordem Nascida do Caos:

 Definição:

 É um processo ágil que permite manter o foco na entrega do maior valor de


negócio, no menor tempo possível.

 Permite a rápida e contínua inspeção do software em tempo de produção


(em intervalos de duas a quatro semanas).

 Neste período todos podem ver o real software em produção, decidindo se o


mesmo deve ser liberado ou continuar a ser aprimorado por mais um
“Sprint.”
Scrum – A Ordem Nascida do Caos

 Definição:

 O Scrum baseia-se no TRIANGULO DE FERRO:


Scrum – A Ordem Nascida do Caos

 Origens do Scrum:

The Mythical Man Month by Frederick Brooks, 1975.

 Quando um projeto está atrasado, adicionar pessoas ao projeto servirá apenas


para atrasá-lo ainda mais.

 Devemos considerar o tempo que perdemos em gestão e comunicação quando


temos pessoas demais trabalhando em um projeto.

 Ao calcular o tempo de desenvolvimento de qualquer coisa, temos que dobrá-


lo. O programador precisa de "tempo para pensar" além do "tempo para
programar"
Scrum – A Ordem Nascida do Caos

 Quem usa Scrum:

Microsoft Intuit
Yahoo Nielsen Media
Google First American Real Estate
Electronic Arts BMC Software
High Moon Studios Ipswitch
Lockheed Martin John Deere
Philips Lexis Nexis
Siemens Sabre
Nokia Salesforce.com
Capital One Time Warner
BBC Turner Broadcasting
Scrum – A Ordem Nascida do Caos

 Scrum Tem sido usado para:


Software comercial Video games
Desenvolvimento interno Sistemas para suporte à vida
Desenvolvimento contratado Sistemas para controle de
(terceirização) satélites
Projetos de preço fixo Websites
Aplicações Financeiras Software para handhelds
Aplicações certificadas pela Telefones celulares
ISO 9001
Sistemas embarcados Aplicações para redes
Desenvolvimento por hackers Aplicações de ISV
solitários (Independent Software
Vendors)
Scrum – A Ordem Nascida do Caos

 Características:

 Equipes que se auto-organizam


 O produto evolui em uma série de “Sprints” Mensais
 Os requerimentos são listados em um “Product Backlog”
 Não há prática de engenharia prescrita (o Scrum adequa-se a todas)
 Usa regras auto-generativas na criação de um ambiente ágil para a entrega
de projetos
 É um “processo” para “metodologias ágeis”
 Influenciou o Extreme Programming
Scrum – A Ordem Nascida do Caos

 Manifesto Ágil - Valores:


Scrum – A Ordem Nascida do Caos

 Nível de Ruído em um Projeto:

Fonte: Strategic Management And


Organizational Dynamics by Ralph
Stacey in Agile Software Development
With Scrum by Ken Schwaber and
Mike Beedle.
Scrum – A Ordem Nascida do Caos

 Partes do Scrum (Framework):


Scrum – A Ordem Nascida do Caos

 Dono do Produto:

 Define as funcionalidades do produto

 Decide datas de lançamento e conteúdo

 Responsável pela rentabilidade (ROI)

 Prioriza funcionalidades de acordo com o valor de mercado

 Ajusta funcionalidades e prioridades

 Aceita ou rejeita o resultado dos trabalhos


Scrum – A Ordem Nascida do Caos

 ScrumMaster:

 Representa a gerência para o projeto

 Responsável pela aplicação dos valores e práticas do Scrum

 Remove obstáculos

 Garante a plena funcionalidade e produtividade da equipe

 Garante a colaboração entre os diversos papéis e funções

 Escudo para interferências externas


Scrum – A Ordem Nascida do Caos

 Equipe:

 Entre 5 e 9 pessoas

 Multi-funcional
 Programadores, testadores, desenvolvedores de interfaces, etc.

 Tempo integral
 Raras exceções (Ex.: Administrador de Base de Dados)

 Auto-organizável

 Idealmente, sem títulos, ainda que possível

 Trocas só na mudança de Sprints


Scrum – A Ordem Nascida do Caos

 Partes do Scrum (Framework):


Scrum – A Ordem Nascida do Caos

 Cerimônia:

 Porcos e Galinhas

 Porcos entram com o toucinho


 Galinhas com o ovo
 Quem está comprometido e quem apenas
Scrum – A Ordem Nascida do Caos

 Planejamento do Sprint:
Scrum – A Ordem Nascida do Caos

 Cerimônia:

 A equipe seleciona itens do Product Backlog com os


quais compromete-se a concluir

 O Sprint Backlog é criado


 Tarefas identificadas e estimadas (1 a 16 horas)
 De forma colaborativa, não apenas feito pelo
ScrumMaster

 Planejamento de alto nível é considerado


Scrum – A Ordem Nascida do Caos

 Exemplo:
Scrum – A Ordem Nascida do Caos

 Scrum diário:

 Parâmetros
 Diário ( 15 minutos)

 Todos em pé!

 Não é para a resolver problemas


 Todo mundo é convidado
 Apenas os membros da equipe, ScrumMaster,

 dono do produto podem falar

 Ajuda a evitar reuniões adicionais desnecessárias


Scrum – A Ordem Nascida do Caos

 Scrum diário:

 São feitas três questões para todos:


Scrum – A Ordem Nascida do Caos

 Scrum diário:

 As respostas não são um “relatório” para o ScrumMaster


 Elas são COMPROMISSOS perante os pares
Scrum – A Ordem Nascida do Caos

 Revisão do Sprint:

 Equipe apresenta os resultados obtidos durante o Sprint

 Tipicamente, demonstração de novas

 funcionalidades ou sua arquitetura

 Informal
 2 horas de preparação, Sem slides

 Todo o time participa

 O mundo é convidado
Scrum – A Ordem Nascida do Caos

 Retrospectiva do Sprint:

 Periodicamente, observe o que funciona e o que não funciona

 Tipicamente de 15 a 30 minutos

 Feita após cada Sprint

 Toda a equipe participa


 ScrumMaster
 Dono do produto
 Membros da equipe
 Clientes e outros
Scrum – A Ordem Nascida do Caos

 Inicia, Pára, Continua:

 A equipe discute o que gostaria de:


Scrum – A Ordem Nascida do Caos

 Partes do Scrum (Framework):


Scrum – A Ordem Nascida do Caos

 Scrum em uma Imagem:

Fig. Scrum em uma imagem.


Disponível em: www.mountangoatsoftware.com/scrum
Scrum – A Ordem Nascida do Caos

 Product Backlogs:

 Os requerimentos

 Uma lista de todo o trabalho


desejado no projeto

 Idealmente, na forma em que cada


item tenha seu peso de acordo com
a vontade do cliente ou usuários

 Priorizado pelo dono do produto

 Repriorizado no início de cada


Sprint
Scrum – A Ordem Nascida do Caos

 Product Backlogs:

 Exemplo

Item do Backlog Estimativa


Permitir que o usuário faça reserva 3
Permitir que o usuário cancele a reserva 5
Permitir a troca de datas da reserva 3
Permitir que empregados do hotel gerem relatórios de 8
lucratividade
Melhorar manipulação de erros 8
… 30
… 50
Scrum – A Ordem Nascida do Caos

 Sprints:

 Projetos Scrum progridem em uma série de “sprints”


 Similar às iterações do XP

 Ocorre em um período de duas a quatro semanas

 Um período constante leva a um melhor “ritmo”

 O produto é projetado, codificado e testado durante o


sprint
Scrum – A Ordem Nascida do Caos

 Gerenciando o Sprint Backlog:

 Cada indivíduo escolhe o trabalho que fará


 Trabalhos nunca são atribuídos

 Atualização diária da estimativa do trabalho restante

 Qualquer membro da equipe pode adicionar, apagar ou mudar tarefas

 O trabalho aparece a partir do Sprint

 Se uma tarefa não é clara, defina-a como um item com uma quantidade maior
de tempo e subdivida-a depois

 Atualize as coisas a serem feitas na medida em que se tornam mais conhecidas


Scrum – A Ordem Nascida do Caos

 Sprint Backlog:

Tarefas Seg Ter Qua Qui Sex


Codificar interface de 8 4 8
usuário
Codificar regra de negócio 16 12 10 4
Testar 8 16 16 11 8
Escrever help online 12
Escrever a classe foo 8 8 8 8 8
Adicionar log de erros 8 4
Scrum – A Ordem Nascida do Caos

 Burndown Chart:
Scrum – A Ordem Nascida do Caos
Scrum – A Ordem Nascida do Caos

 Desenvolvimento Sequencial X Paralelo

Fonte: “The New New Product Development Game” by


Takeuchi and Nonaka. Harvard Business Review,
January 1986.
Scrum – A Ordem Nascida do Caos

 Nenhuma mudança durante o Sprint


Planeje a duração dos
sprints de acordo com o
máximo tempo com o qual
você pode se comprometer
a deixar as mudanças fora
deles (um mês ou menos).
Aplicação do
Método com
Software Embarcado
Aplicação do Método com Software Embarcado

 Problema
 Solução
 Resultados obtidos
Aplicação do Método com Software Embarcado

 Problema:

 Dentro da Programação da Feira Internacional da Amazônia – FIAM 2009, no


Seminário de Micro e Nano Tecnologia (Minapim) , foi proposta uma
competição de robótica, que foi realizada na SUFRAMA com as seguintes
regras:

 Construir um robô segue-linha.

 O robô deverá percorrer pistas diferentes (03) em arena 2,5 x 2,5m, sendo o
mesmo não poderá sair das delimitações.

 O robô não poderá receber qualquer ajuda externa.

 O vencedor será o que obtiver a menor média de tempo nos três dias de
competição.
Aplicação do Método com Software Embarcado

 Solução:

 Foi escolhido o kit Lego


MindStorms NXT

 Foi escolhida a linguagem Lejos


(Java para embarcar no Lego)
Aplicação do Método com Software Embarcado

 Sobre o KIT:

 LEGO Mindstorms NXT é uma linha do


brinquedo LEGO, lançada comercialmente
em 2006, voltada para a Educação
tecnológica.
Aplicação do Método com Software Embarcado

 Sobre o KIT:

 O Mindstorms NXT constitui-se num


equipamento com:

 Microprocessador de 32 bits com memória flash


 Software próprio (NXT para o Java e NXC para o
C);
 Sensor de Luz: Detecta diferentes cores e
intensidade de luz;
 Sensor de Cor (ColorSensor);
 Sensor de Toque: Reage ao toque ou liberdade;
 Sensor de Som: Reage a comandos de som;
 Sensor Ultrasônico: Percebe movimentos e
detecta objetos;
Aplicação do Método com Software Embarcado

 Sobre a Linguagem:

 lejos NXJ oferece o seguinte:

 Linguagem orientada a objetos (Java)


 Preemptive threads (tasks) - tópicos de Preferência (tarefas)
 Arrays, including multi-dimensional
 Recursão
 Sincronização
 Exceções
 Java types including float, long, and String
 A maioria dos java.lang java.util, java.io e classes
 Uma API Robótica bem documentada
Aplicação do Método com Software Embarcado

 Montagem do Robô:
Aplicação do Método com Software Embarcado

 Pistas do evento (impressas em folha A0):


Aplicação do Método com Software Embarcado

 Pistas do evento (impressas em folha A0):


Aplicação do Método com Software Embarcado

 Pistas do evento (impressas em folha A0):


Aplicação do Método com Software Embarcado

 Sprint Backlog:
O robô pára ao perceber um obstáculo em
frente Baixar os aplicativos. Walter/Wanderlan 3
O robô pára ao perceber uma cor diferente no Estudar as classes de
próprio percurso, posta com esse propósito aplicações Walter/Wanderlan 4

O robô pára ao perceber uma cor diferente no Inicio da Walter/Wandelan/R


próprio percurso, posta com esse propósito documentação ui/Pedro 2,5
O robô irá marcar o tempo desde o início até Escrever o código de
a parada percurso Walter Simões 30

Imprimir a pista Pedro Ivan 4

Walter/Wandelan/R
Teste de pista ui 6

Walter/Wandelan/R
Teste de parada ui/Pedro 3

Tempo de percurso Walter Simões 3


Remaining Detail Estimate (Hours) 55,5
Aplicação do Método com Software Embarcado

 Sprint Backlog:
Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 Day 9 Day 10

03-11- 04-11- 05-11- 06-11- 09-11- 10-11- 11-11- 12-11- 13-11- 16-11-
2009 2009 2009 2009 2009 2009 2009 2009 2009 2009
3 0 0 0 0 0 0 0 0 0
2 2 0 0 0 0 0 0 0 0
0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5 0,5
3 3 3 3 3 3 3 3 3
2 2
2 2 2
1 1 1
1 1 1
8,5 5,5 7,5 9,5 9,5 3,5 3,5 3,5 3,5 0
03-11- 04-11- 05-11- 06-11- 09-11- 10-11- 11-11- 12-11- 13-11- 16-11-
2009 2009 2009 2009 2009 2009 2009 2009 2009 2009
Aplicação do Método com Software Embarcado

 Video – Pista de Teste do Lego MindStorms – Teste 1


Aplicação do Método com Software Embarcado

 Video – Pista de Teste do Lego MindStorms – Teste 2


Aplicação do Método com Software Embarcado

 Video – Pista de Teste do Lego MindStorms


Aplicação do Método com Software Embarcado

 Resultados Obtidos:

 A equipe da UFAM ficou com os 2 primeiros lugares no


evento de robótica, participando com 3 equipes, sendo 2
com o kit Lego MindStorm NXT e uma com o kit Lego
MindStorm NXC, que sagrou-se campeão do evento.
Aplicação do Método com Software Embarcado

 Demais Aplicações:

 Após este projeto, o kit foi utilizado na Disciplina


Automação Industrial do Mestrado de Engenharia
Elétrica da UFAM com o projeto RUBIK (Cubo Mágico).
Aplicação do Método com Software Embarcado

 Video – Pista de Teste do Lego MindStorms


Obrigado
Perguntas:
Referências Bibliográficas

 [1] – Reis, Claiton – “Sistemas Operacionais para Sistemas Embarcados”,


Tutorial, Editora: EDUFBA, BRASIL, 2004.
 [2] – Cunha, Alessandro – “Sistemas Embarcados”, Revista Saber Eletrônica,
414, Editora: Saber, BRASIL, 2007.
 [3] – Ball, Stuart. – “Embedded Microprocessor Systems: Real World Design”,
3rd edition, Editora: MCPros, EUA, 2005.
 [4] – Prof. Rajesh K. Gupta – “Introduction to Embedded Systems”, Website,
Capturado em: 07/07/2006. UCLA, EUA, 2002.
http://www.ics.uci.edu/~rgupta/ics212/w2002/intro.pdf
 [5] - http://pt.wikipedia.org/wiki/Sistema_embarcado
 http://www.mhavila.com.br/topicos/gestao/pmbok.html
 www.mountaingoatsoftware.com/scrum
 www.scrumalliance.org
Referências Bibliográficas

 www.controlchaos.com
 scrumdevelopment@yahoogroups.com
 Agile Software Development with Scrum by Ken Schwaber and Mike Beedle
 Agile Project Management with Scrum by Ken Schwaber
 Scrum and the Enterprise by Ken Schwaber
 BAGNALL, Brian. Maximum LEGO NXT: Building Robots with Java Brains.
Variant Press. 2007. ISBN 0-9738649-1-5
 http://www.folhainterior.com.br/index.php?option=com_content&view=articl
e&id=3154:minapim-realiza-competicao-de-
robotica&catid=4:cidadania&Itemid=6
Agradecimentos

 UFAM – Universidade federal do Amazonas


 PPGI – Programa de Pós-Graduação em Informática – UFAM
 PPGE – Programa de Pós-Graduação em Engenharia Elétrica - UFAM
 CETELI
 UNINORTE – Coordenação de Ciência da Computação e Tecnologia de
Rede de Computadores

Anda mungkin juga menyukai