Escolar Documentos
Profissional Documentos
Cultura Documentos
Ferramentas
para Especificação e Gestão de Projetos de Sistemas Embarcados para IoT
●
Ciclos de vida de um projeto de sistema embarcado
● Fase 1: Especificação
Especificação:
Análise de requisitos.
Ordem de relevância dos pontos de otimização.
Exemplo: potência x desempenho
Formalização da especificação:
Fluxograma, Diagrama de blocos, UML, FSM, CDFG, BPMN, etc.
Considerar aspectos de outras áreas além da computação:
Gestão;
Marketing;
Mercado.
Atender as expectativas dos usuários.
Pesquisa de preço.
● Fase 1: Especificação
Especificação:
Análise de requisitos.
Ordem de relevância dos pontos de otimização.
Exemplo: potência x desempenho
Formalização da especificação:
Fluxograma, Diagrama de blocos, UML, FSM, CDFG, BPMN, etc.
Considerar aspectos de outras áreas além da computação:
Gestão;
Marketing;
Mercado.
Atender as expectativas dos usuários.
Pesquisa de preço.
● Análise de Requisitos:
Etapa inicial de levantamento dos requisitos:
Funcionais; (funcionalidades)
NÃO Funcionais;
Funcionais (restrições)
Regras de Negócio.
Negócio (quem pode ter acesso às funcionalidades)
Descrição textual pode dar margens a diferentes interpretações.
interpretações
Métricas e metas (mesmo não funcionais) precisam ser exatas:
✗ Baixo custo ✔ Custo menor que R$ nn,00
✗ Pequeno ✔ Tamanho menor LxAxH cm
✗ Rápido ✔ Latência máxima de NN ms
● Métricas:
Podem ser antagônicas: melhora em uma, faz piorar outra(s).
➔ QFD:
QFD
➢ Quality Function Deployment - Desdobramento da Função Qualidade
● Métricas:
QFD: Uso da planilha “Casa de Qualidade”
http://www.blogdaqualidade.com.br/desdobramento-da-funcao-qualidade-qfd/
➢
Produto: CAFEZINHO
1. Requisitos do cliente:
são as expectativas, necessidades e grau de importância de cada
requisito, explicitados pelo cliente e obtidos através de pesquisas.
Quente
Estimulante
Saboroso
Baixo preço
http://www.blogdaqualidade.com.br/desdobramento-da-funcao-qualidade-qfd/
1. Requisitos do cliente:
são as expectativas, necessidades e grau de importância de cada
requisito, explicitados pelo cliente e obtidos através de pesquisas.
Quente
Estimulante hierarquização da
opinião do cliente
Saboroso
em escala de 1 a 5.
Baixo preço
http://www.blogdaqualidade.com.br/desdobramento-da-funcao-qualidade-qfd/
http://www.blogdaqualidade.com.br/desdobramento-da-funcao-qualidade-qfd/
http://www.blogdaqualidade.com.br/desdobramento-da-funcao-qualidade-qfd/
http://www.blogdaqualidade.com.br/desdobramento-da-funcao-qualidade-qfd/
http://www.blogdaqualidade.com.br/desdobramento-da-funcao-qualidade-qfd/
PPgCTI Metodologias de Desenvolvimento de Projetos em TI – 2020.1 remoto 26
Métricas na Análise de Requisitos
● QFD - “Casa de Qualidade”
6. Benchmarking interno:
verificação do desempenho
dos concorrentes na visão
dos técnicos da empresa.
http://www.blogdaqualidade.com.br/desdobramento-da-funcao-qualidade-qfd/
PPgCTI Metodologias de Desenvolvimento de Projetos em TI – 2020.1 remoto 27
Métricas na Análise de Requisitos
● QFD - “Casa de Qualidade”
7. Quantificação das metas:
estabelecimento das metas
para cada “como?”.
http://www.blogdaqualidade.com.br/desdobramento-da-funcao-qualidade-qfd/
http://www.blogdaqualidade.com.br/desdobramento-da-funcao-qualidade-qfd/
● Fase 1: Especificação
Especificação:
Análise de requisitos.
Ordem de relevância dos pontos de otimização.
Exemplo: potência x desempenho
Formalização da especificação:
Fluxograma, Diagrama de blocos, UML, FSM, CDFG, BPMN, etc.
Considerar aspectos de outras áreas além da computação:
Gestão;
Marketing;
Mercado.
Atender as expectativas dos usuários.
Pesquisa de preço.
● Formalização da especificação:
especificação
Fluxograma:
Fluxograma alg Apen
uns as
exe
mp
Diagrama de blocos:
blocos l os
BPMN (Business Process Model and Notation – Notação de Modelagem de Processos de Negócio):
● Fluxograma:
Fluxograma
Representação gráfica do fluxo (de “execução”) do funcionamento do sistema.
Exemplo:
Fluxograma de algoritmo que calcula a raiz quadrada de um número:
? ?
S N S N
? ?
S N N S
? ?
S N S N
● BPMN (Business Process Model and Notation – Notação de Modelagem de Processos de Negócio):
Modela o fluxo de sequência de atividades no desenvolvimento de um sistema.
● Fluxo de Atividades:
Atividades ● Fluxo de Mensagens:
Mensagens
http://blog.iprocess.com.br/2012/05/bpmn-modelando-corretamente-o-fluxo-de-sequencia-de-atividades/
● BPMN (Business Process Model and Notation – Notação de Modelagem de Processos de Negócio):
Representação correta do fluxo :
http://blog.iprocess.com.br/2012/05/bpmn-modelando-corretamente-o-fluxo-de-sequencia-de-atividades/
● BPMN (Business Process Model and Notation – Notação de Modelagem de Processos de Negócio):
Exemplo:
●
Entrega de Pizza
http://blog.iprocess.com.br/2012/05/bpmn-modelando-corretamente-o-fluxo-de-sequencia-de-atividades/
Sincronismos
● Formalização da especificação:
especificação
Fluxograma:
Fluxograma
Representação gráfica do fluxo (de “execução”) do funcionamento do sistema.
Diagrama de blocos:
blocos
Módulos do sistema e a integração entre eles.
FSM (Finite State Machine – Máquina de Estados Finitos):
Etapas (Estados) do sistema ao longo do tempo
➔ Visualização de cada estado do sistema e da transição entre eles.
CDFG (Control DataFlow Graph – Grafo de Controle de Fluxo de Dados):
Mostra o controle e o fluxo de dados em formato de grafo.
BPMN (Business Process Model and Notation – Notação de Modelagem de Processos de Negócio):
Modela o fluxo de sequência de atividades no desenvolvimento de um sistema.
UML (Unified Modeling Language – Linguagem Unificada de Modelagem):
Diagramas de casos de uso, de atividades, temporais, etc.
● Canvas de Embarcados
Interfaces com usuários A / B / C F/F
Arquitetura / Bibliotecas / Conhecimento Funcionalidades / Funções
Conectividade / M2M
Entradas Saídas
● Canvas de Embarcados
Interfaces com usuários A / B / C F/F
Arquitetura / Bibliotecas / Conhecimento Funcionalidades / Funções
●
Conceitos como UI / UX / DI / DX?
●
Como U/D interage com o sistema?
●
Qual a arquitetura base do sistema? ●
O que faz esse sistema ser embarcado
e não simples computador de uso geral?
●
Como U/D configura o sistema? ●
Quais os principais dispositivos?
●
Possui update? Como?
●
Como desenvolvedor depura/testa? ●
Quais blocos e bibliotecas se possui?
●
Como a fábrica testa? (DfT)? ●
Quais precisam ser desenvolvidos?
U – Usuário
UX – User Experience
UI – User Interface
D – Desenvolvedor
DfT – Design for Testing Conectividade / M2M
Saídas / Entregáveis
Entradas ●
Com quais os sistemas há interação?
●
Que tipos de dados o sistema gera?
●
Como será a conexão com a nuvem?
●
Quais e qual o tipo de informação ●
Quais relatórios ele precisa?
que o sistema vai capturar? ●
O Sistema comunica em algum barramento?
Com qual protocolo? ●
Que dados serão enviados à nuvem?
●
Como fará isso? ●
Dados de IoT serão de uso de quem?
●
Como é a alimentação? ●
Quais são as notificações de erro?
● Fase 1: Especificação
Especificação:
Análise de requisitos.
Ordem de relevância dos pontos de otimização.
Exemplo: potência x desempenho
Formalização da especificação:
Fluxograma, Diagrama de blocos, UML, FSM, CDFG, BPMN, etc.
Considerar aspectos de outras áreas além da computação:
Gestão;
Marketing;
Mercado.
Atender as expectativas dos usuários.
Pesquisa de preço.
Metodologias:
Ferramentas:
Implementam as metodologias de
gerenciamento.
● Gerenciamento Lean
● Scrum
● Kanban
● Muitos outros
Fontes:
●
The Definitive Guide to Project Management. Nokes, Sebastian. 2nd Ed.n. London (Financial Times / Prentice Hall): 2007
●
"What is Project Management?". Project Management Institute
Metodologia Lean:
Fonte: https://e-m-marketing.com/blog/2015/02/how-to-make-startup-marketing-work-smarter/
Fonte: http://www.softsmith.com/methodology.html
○ Não são corrigidos bugs em uma sprint, a menos que a história diga para fazê-lo
Fonte: http://www.desenvolvimentoagil.com.br/scrum/
● Sprint Planning:
○ Reunião onde as tarefas de uma determinada sprint são definidas
pelo responsável do projeto (PO - Project Owner).
○ As atividades da sprint são pontuadas pela equipe
de acordo com uma escala de dificuldade:
●
Esse passo serve para avaliar o esforço para determinadas tarefas
em um determinado espaço de tempo.
Metodologia Kanban:
Metodologia Kanban:
Fonte: http://blog.acelerato.com/gestao/kanban-para-gestao-de-projetos/
Metodologia Kanban:
Jira
https://br.atlassian.com/software/jira
Taiga
https://taiga.io/
Gestão de Tarefas:
Trello
― https://trello.com/
Redmine
― http://www.hostedredmine.com/projects/hosted-redmine
Gestão de Tarefas:
Trello
― https://trello.com/
― https://trello.com/teams/engineering ●
desenvolvimento ágil
●
monitoramento de bugs
●
mapa do produto
●
retrospectiva de sprint
― https://trello.com/teams/product ●
roadmap do produto
●
solicitações de recursos
●
visão geral do projeto
Comunicação da Equipe:
Slack
― https://slack.com/
Discord
― https://discordapp.com/
Git
Projetado por Linus Torvalds para desenvolvimento do kernel Linux.
Mas foi adotado por muitos outros projetos.
https://git-scm.com/
Mercurial
Implementado principalmente em Python,
porém o utilitário binário diff foi escrito em C.
https://www.mercurial-scm.org/
GitHub:
Plataforma de hospedagem de código fonte com controle de versão usando Git.
https://github.com/
GitLab
Similar ao GitHub, mas permite armazenar o código em servidores próprios,
ao invés de em servidores operados pelo GitHub.
https://gitlab.com
Bitbucket
Serviço de hospedagem de projetos controlados através do Mercurial.
Também suporta repositórios usando o Git.
https://bitbucket.org
• QFD: http://www.blogdaqualidade.com.br/desdobramento-da-funcao-qualidade-qfd/
• FSM: https://pt.wikipedia.org/wiki/M%C3%A1quina_de_estados_finita
• BPMN: https://pt.wikipedia.org/wiki/Business_Process_Model_and_Notation
• RedMine: http://www.redmine.org/
• Trello: https://trello.com/
• GitHub: https://github.com/
• GitLab: https://gitlab.com
• Outras referências estão com seus links anotados nos respectivos slides.