Project Management

Organização de um projeto em Engenharia

Qualquer projeto de engenharia tem como objetivo partir de um problema e chegar a uma solução.

Diagrama de blocos de um projeto de Engenharia

O problema a resolver pode ser uma questão de engenharia, financeira, marketing, etc.

Podemos assim dividir o desenvolvimento do projeto em duas componentes:

Os recursos devem ser geridos de modo a controlar:

São considerados recursos (e portanto devem ser geridos):

Tipos de abordagens da componente técnica de um projeto de engenharia

Bottom-up

Top-down

Na prática, deve ser utilizado uma mistura de ambas as abordagens:

Fases de um projeto

Diagrama das fases de um projeto numa perspetiva _Waterfall_

Os métodos ágeis distinguem-se dos métodos em cascata porque, ao contrário dos métodos em cascata, que iteram uma única vez sobre o diagrama de blocos, os métodos ágeis efetuam um elevado número de iterações do diagrama de blocos, sendo capazes de antecipar os testes dos vários módulos e, consequentemente, problemas futuros.

As fases de um projeto, num planeamento waterfall consistem em:

  1. Ver o que quero fazer
  2. O que estão á espera que seja possível fazer
  3. o que é que eu vou fazer
  4. Fazer
  5. Testar

O que é pura teoria, uma vez que tenho de ir testando e revendo as decisões que tomo à medida que o projeto avança

Num Método Ágil:

Análise de Requisitos

O que o sistema deve fazer?

Não definir o como. As soluções são para depois

Descrever quais as características pretendidas para o sistema

Especificação de requisitos

Projeto do sistema

Projeto detalhado

Integração e teste

Diagrama em V

Resumo

  1. Decidir o que se quer fazer
  2. Decidir como se faz
  3. Dividir um problema completo e complexo em várias partes mais simples, tratáveis individualmente
  4. Definir objetivos intercalares
  5. Acrescentar uma única de cada vez
    • Cuidado com o debouncing
  6. Fazer o que preciso na altura devida

Exemplo: Controlo de aquário

Bloco nível 0

Exemplo de diagrama de nível 0

Bloco nível 1

Exemplo de diagrama de nível 1

Bloco nível 2:

Bloco que indica a existência de:

Neste nível devo definir os blocos, mas sem me preocupar com o que seu conteúdo

Acondicionamento de Sinal: algumas dicas práticas

Exemplo de diagrama de nível 2

Bloco nível 3

É neste nível e detalhe que se deve especificar os circuitos de acondicionamento

Até os dados dos sensores serem lidos, irão passar por um conjunto de blocos, sendo necessário existir a conversão para o exterior do sensor

Cadeias de Instrumentação

Um exemplo de duas cadeias de instrumentação, uma com um sensor linear e com correção de nível e outra com um sensor não linear e respetivo mecanismo de linearização.

Cadeia de instrumentação linear

Cadeia de instrumentação não linear

Em ambas as cadeias de instrumentação os níveis intermédios do sinal não são especificados. Podem depender da solução particular implementada (a especificar no diagrama abaixo) e/ou não serem relevantes nesta altura.

Embora os dois sinais apresentados possuam a mesma gama, as suas características são muito diferentes (e.g., variações lineares vs não lineares)

Os blocos das cadeias de instrumentação também podem existir dentro do microcontrolador, i.e., estarem implementadas em software.

Cadeia de Instrumentação implementada em _software_ para a leitura de um sensor de temperatura

A grande vantagem da ADC do uso de ADCs são que o sinal à entrada pode ser não linear, desde que a relação seja biunívoca:

Cadeia de instrumentação completa para um sensor de temperatura

Funções de transferência de cada um dos blocos da cadeia de instrumentação

Resumo

Componente Organizacional

ou como dividir um trabalho complexo em tarefas simples

Tem como principal objetivo garantir a gestão de recursos.

Como lidar com a complexidade?

Por em prática uma Work Breakdown Structure (WBS)

Projeto: conjunto de atividades coordenadas entre si com o objetivo de criar um produto, um serviço o qualquer outro resultado, dentro de limites temporais e financeiros bem definidos

Um projeto está sempre divido em tarefas. Uma tarefa deve responder ás seguintes perguntas:

  1. O quê? $\implies$ uma atividade concreta
  2. Quem? $\implies$ realizada por uma ou mais pessoas
  3. Quando? $\implies$ duração determinada (possui uma data de término)

E que deve produzir um resultado concreto, definido e verificável, ou seja, que possa ser “entregue a alguém (entregável)”

PERT - Program/Project Evaluation and Review Technique

Datas concretas são motivadoras

Num diagrama de PERT, cada bloco identifica quem está responsável pela tarefa e o tempo necessário para a terminar

Em alternativa pode existir um diagrama de calendarização:

Diagrama de calendarização

Diagramas PERT - Atividade no nó

Diagrama PERT com atividade no nó

Diagramas PERT - Atividade na seta

Diagrama PERT com atividade na seta

Estimativa do tempo necessário para concluir uma tarefa

Devo estimar o tempo necessário para cada tarefa usando 3 perspectivas

Podemos depois efetuar uma mistura das 2 ou 3 perspectivas:

Representação de tarefas

Bloco elementar de um diagrama de PERT. Deve ser indicado o nome da tarefa, o responsável e a duração da tarefa

Precedência

Precedência entre tarefas. A tarefa recrutamento precede a tarefa formação

Exemplo: Escrita de um Website

Diagrama inicial

Instante mais cedo em que todas as tarefas terminam

Instante mais tarde em que as tarefas podem terminar e determinação do _slack time_

Repetimos o processo anterior (para o tempo máximo) da data de término para a data de início. O intervalo de tempo entre qual as datas podem terminar e começar é o slack time/tempo livre

Onde não existe folga, é o caminho crítico. Qualquer atraso nas tarefas do caminho crítico irão provocar atrasos na data de término do projeto.

Caminho crítico identificado no diagrama de PERT