27
1 Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Aula Teórica 4 Computação e Programação MEMec - LEAN 1º Semestre 2010-2011 José Borges Computação e Programação 2010/2011 2 Construção de programas Actividades de teste a programas Processo de Desenvolvimento (PD) Modelo do PD Actividades do PD Alinhamento da AT 4

Computação e Programação - Técnico Lisboa · O termo pode ser uma referência ao código fonte, escrito em alguma linguagem de programação, ... pseudo-código escrito na

  • Upload
    vukhue

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

1

Instituto Superior Técnico,

Dep. de Engenharia Mecânica - ACCAII

Aula Teórica 4

Computação e ProgramaçãoMEMec - LEAN

1º Semestre 2010-2011

José Borges Computação e Programação 2010/2011 2

• Construção de programas

• Actividades de teste a programas

• Processo de Desenvolvimento (PD)

• Modelo do PD

• Actividades do PD

Alinhamento da AT 4

2

José Borges Computação e Programação 2010/2011 3

• Construção de programas

• Actividades de teste a programas

• Processo de Desenvolvimento (PD)

• Modelo do PD

• Actividades do PD

Alinhamento da AT 4

José Borges Computação e Programação 2010/2011

Programa de Computador

4

“Um programa de computador é uma colecção de instruções que descreve uma tarefa a ser realizada por um computador.

O termo pode ser uma referência ao código fonte, escrito em alguma linguagem de programação, ou ao arquivo que contém a forma executável deste código fonte.”

Fonte: http://pt.wikipedia.org/wiki/Programa_de_computador

3

José Borges Computação e Programação 2010/2011

Construção de programas

5

Consiste do desenho da lógica que resolve um problema e sua codificação num ambiente computacional,

segue um processo de desenvolvimento,

segundo uma estratégia de problem-solving, por exemplo a abordagem Top-Down.

José Borges Computação e Programação 2010/2011

Abordagem Top – Down

6

• Abordagem para resolução de problemas tendo por base a realização de refinamentos sucessivos em sub-problemas, até à decomposição em tarefas elementares

• Os refinamentos ao mesmo nível hierárquico são como processos independentes, com entradas e saídas. As comunicações entre processos só se realizam de/para níveis hierárquicos diferentes, e nunca ao mesmo nível

Problema

Sub-problemas

Tarefas

Top-Down

4

José Borges Computação e Programação 2010/2011

Abordagem Top – Down

7

• Abordagem para resolução de problemas tendo por base a realização de refinamentos sucessivos em sub-problemas, até à decomposição em tarefas elementares

• Os refinamentos ao mesmo nível hierárquico são como processos independentes, com entradas e saídas. As comunicações entre processos só se realizam de/para níveis hierárquicos diferentes, e nunca ao mesmo nível

• Esta abordagem permite abstrair do funcionamento interno dos processos , focando só no resultado, i.e. na informação que é transmitida entre processos/níveis

• Dá origem à Programação Modular

José Borges Computação e Programação 2010/2011 8

• Construção de programas

• Actividades de teste a programas

• Processo de Desenvolvimento (PD)

• Modelo do PD

• Actividades do PD

Alinhamento da AT 4

5

José Borges Computação e Programação 2010/2011

Actividades de teste a programas

• Actividades

• Testar: comparação com casos bem sucedidos para identificar eventuais faltas que possam estar na origem das falhas

• Depurar: corrigir e remover as faltas

9

José Borges Computação e Programação 2010/2011

Definição de “Casos de Teste”

• Objectivos para definição de “Casos de Teste”:

• Verificação – o programa está de acordo com a especificação (construímos bem o produto?)

• Validação – o programa está de acordo com as expectativas do cliente (construímos o esperado?)

10

6

José Borges Computação e Programação 2010/2011

Tipos de erros

• Erros típicos:

• Lógicos

• Sintaxe

• Execução

11

José Borges Computação e Programação 2010/2011 12

• Construção de programas

• Actividades de teste a programas

• Processo de Desenvolvimento (PD)

• Modelo do PD

• Actividades do PD

Alinhamento da AT 4

7

José Borges Computação e Programação 2010/2011

Processo de desenvolvimento

• O desenvolvimento de programas é um processoiterativo que tem como produto final o programa e engloba uma série de etapas que envolvem actividades, restrições e recursos. (Normas ISO 12207)

13

José Borges Computação e Programação 2010/2011

Processo de desenvolvimento

• O desenvolvimento de programas é um processo iterativo que tem como produto final o programa e engloba uma série de etapas que envolvem actividades, restrições e recursos.

14

Problema

Actividades

Programa

Restrições

Recursos

8

José Borges Computação e Programação 2010/2011

Processo de desenvolvimento

• O desenvolvimento de programas é um processo iterativo que tem como produto final o programa e engloba uma série de etapas que envolvem actividades, restrições e recursos.

15

Problema

Actividades

Programa

Restrições

- Cliente

- Professor

- Patrão

- Pessoal

Recursos

José Borges Computação e Programação 2010/2011

Processo de desenvolvimento

• O desenvolvimento de programas é um processo iterativo que tem como produto final o programa e engloba uma série de etapas que envolvem actividades, restrições e recursos.

16

Problema

Actividades

Programa

Restrições

- Análise

- Algoritmo

- Codificação

- Testes

- Manutenção

Recursos

9

José Borges Computação e Programação 2010/2011

Processo de desenvolvimento

• O desenvolvimento de programas é um processo iterativo que tem como produto final o programa e engloba uma série de etapas que envolvem actividades, restrições e recursos.

17

Problema

Actividades

Programa

Restrições

- Humanos

- Hardware

- Software

-Tempo

- Custo

Recursos

José Borges Computação e Programação 2010/2011 18

• Construção de programas

• Actividades de teste a programas

• Processo de Desenvolvimento (PD)

• Modelo do PD

• Actividades do PD

Alinhamento da AT 4

10

José Borges Computação e Programação 2010/2011 19

Workflow

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

José Borges Computação e Programação 2010/2011 20

Contexto do problema

1. Contexto do problema

2. Análise / síntese do problema

3. Esquema de processamento

4. Algoritmo e testes

5. Codificação

6. Testes e validação

7. Produção / manutenção

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

11

José Borges Computação e Programação 2010/2011 21

Análise / Esquema de processamento

1. Definição do problema

2. Análise / síntese do problema

3. Esquema de processamento

4. Algoritmo e testes

5. Codificação

6. Testes e validação

7. Produção / manutenção

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

José Borges Computação e Programação 2010/2011 22

Algoritmo e testes

1. Definição do problema

2. Análise / síntese do problema

3. Esquema de processamento

4. Algoritmo e testes

5. Codificação

6. Testes e validação

7. Produção / manutenção

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

12

José Borges Computação e Programação 2010/2011 23

Codificação, testes e validação

1. Definição do problema

2. Análise / síntese do problema

3. Esquema de processamento

4. Algoritmo e testes

5. Codificação

6. Testes e validação

7. Produção / manutenção

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

José Borges Computação e Programação 2010/2011 24

Produção / manutenção

1. Definição do problema

2. Análise / síntese do problema

3. Esquema de processamento

4. Algoritmo e testes

5. Codificação

6. Testes e validação

7. Produção / manutenção

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

13

José Borges Computação e Programação 2010/2011 25

O “Processo de Desenvolvimento”

1. Contexto do problema

2. Análise / síntese do problema

3. Esquema de processamento

4. Algoritmo e testes

5. Codificação

6. Testes e validação

7. Produção / manutenção

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

José Borges Computação e Programação 2010/2011 26

Documentação

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

- Componente essencial no processo de concepção de programas

- Deve acompanhar todas as etapas do desenvolvimento de produto

- Características

- “Simples”

- Completa

- Estrutura (possível)

- Manual do Utilizador

- Manual do Programador

14

José Borges Computação e Programação 2010/2011 27

• Construção de programas

• Actividades de teste a programas

• Processo de Desenvolvimento (PD)

• Modelo do PD

• Actividades do PD

Alinhamento da AT 4

José Borges Computação e Programação 2010/2011

1. Identificação do contexto do problema e objectivos do programa que o resolve

Definição do problema

28

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

15

José Borges Computação e Programação 2010/2011

Análise

29

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

Problema2.1 Entradas 2.1 Saídas

2.2 Especificações

Requisitos

2.3 Métodos de

Processamento

José Borges Computação e Programação 2010/2011

Análise

2.1 Esquema de processamento • Entradas• Saídas

30

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

16

José Borges Computação e Programação 2010/2011

Análise

2.1 Esquema de processamento • Entradas • Saídas

2.2 Identificação dos Requisitos Funcionais

• Caracterização elementar do problema

• Necessidades de utilizadores e clientes

31

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

José Borges Computação e Programação 2010/2011

Análise

2.1 Esquema de processamento • Entradas • Saídas

2.2 Identificação dos Requisitos Funcionais

• Caracterização elementar do problema

• Necessidades de utilizadores e clientes

2.3 Descrição/definição detalhada de:

• Métodos de processamento (Matemáticos)

• Fluxos de dados

32

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

17

José Borges Computação e Programação 2010/2011

Desenvolvimento do algoritmo

3.1 Abordagem Top-Down

33

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

Problema

José Borges Computação e Programação 2010/2011

Desenvolvimento do algoritmo

3.1 Abordagem Top-Down

3.2 Descrição passo-a-passo em lista de tarefas elementares do problema particular a resolver

34

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

18

José Borges Computação e Programação 2010/2011

Desenvolvimento do algoritmo

3.1 Abordagem Top-Down

3.2 Descrição passo-a-passo em lista de tarefas elementares do problema particular a resolver

3.3 Lista ordenada de tarefas na forma de pseudo-código escrito na linguagem natural do programador

35

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

José Borges Computação e Programação 2010/2011

Desenvolvimento do algoritmo

3.1 Abordagem Top-Down

3.2 Descrição passo-a-passo em lista de tarefas elementares do problema particular a resolver

3.3 Lista ordenada de tarefas na forma de pseudo-código escrito na linguagem natural do programador

36

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK Objectivo: Plano de tarefas que pode ser facilmente codificado utilizando uma linguagem de programação.

19

José Borges Computação e Programação 2010/2011

Testes ao algoritmo

4. Teste do Algoritmo nas várias opções definidas em termos de:

i. Análise de Requisitos Funcionais

ii.Pares Entrada / Saída

37

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

José Borges Computação e Programação 2010/2011

Testes ao algoritmo

4. Teste do Algoritmo nas várias opções definidas em termos de:

i. Análise de Requisitos Funcionais

ii.Pares Entrada / Saída

38

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

Objectivo: Depurar Erros Lógicos

20

José Borges Computação e Programação 2010/2011

Testes ao algoritmo

39

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

4.1 Caso se verifiquem Erros Lógicos:

• Processo regressa à fase de Análise

• Procurar eventuais inconsistências ao longo do fluxo:

Análise → Algoritmo

José Borges Computação e Programação 2010/2011

Testes ao algoritmo

40

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

4.2 Caso não se verifiquem Erros Lógicos:

• Processo segue para a Codificação

21

José Borges Computação e Programação 2010/2011

Codificação

5.1 Tradução do algoritmo para uma linguagem de programação

41

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

José Borges Computação e Programação 2010/2011

Codificação

5.1 Tradução do algoritmo para uma linguagem de programação

5.2 Paradigmas da linguagem:

• Linguagens Compiladas: C++, Fortran

• Linguagens Interpretadas: Matlab

42

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

22

José Borges Computação e Programação 2010/2011

Codificação

5.1 Tradução do algoritmo para uma linguagem de programação

5.2 Paradigmas da linguagem:

• Linguagens Compiladas: C++, Fortran

• Linguagens Interpretadas: Matlab

5.3 Depuração de Erros Sintácticos

43

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

José Borges Computação e Programação 2010/2011

Testes ao programa

44

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

6.1 Teste do Programa nas várias opções definidas em termos de:

i. Análise de Requisitos Funcionais

ii. Pares Entrada / Saída

23

José Borges Computação e Programação 2010/2011

Testes ao programa

45

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

6.1 Teste do Programa nas várias opções definidas em termos de:

i. Análise de Requisitos Funcionais

ii. Pares Entrada / Saída

6.2 Comparação com resultados analíticos/ teóricos / experimentais, ou resultantes de programas similares

José Borges Computação e Programação 2010/2011

Testes ao programa

46

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

6.1 Teste do Programa nas várias opções definidas em termos de:

i. Análise de Requisitos Funcionais

ii. Pares Entrada / Saída

6.2 Comparação com resultados analíticos / teóricos / experimentais, ou resultantes de programas similares

6.3 Metodologia de teste: Bottom - Up

24

José Borges Computação e Programação 2010/2011

Testes ao programa

47

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

6.1 Teste do Programa nas várias opções definidas em termos de:

i. Análise de Requisitos Funcionais

ii. Pares Entrada / Saída

6.2 Comparação com resultados analíticos / teóricos / experimentais, ou resultantes de programas similares

6.3 Metodologia de teste: Bottom - Up

Objectivos: Depurar Erros Lógicos e/ou de Execução

José Borges Computação e Programação 2010/2011

Testes ao programa

48

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

6.4 Caso se verifiquem Erros:

• Processo regressa à fase de Análise

• Procurar eventuais inconsistências ao longo do fluxo:

Análise → Codificação

25

José Borges Computação e Programação 2010/2011

OK

Testes ao programa

49

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

6.5 Caso não se verifiquem Erros:

• Processo segue para Produção

José Borges Computação e Programação 2010/2011

Produção / Manutenção

7.1 Após as várias fases do Processo de Desenvolvimento, garante-se que o Programa é conforme com:

• Objectivos do problema

• Requisitos funcionais

50

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

26

José Borges Computação e Programação 2010/2011

Produção / Manutenção

7.1 Após as várias fases do Processo de Desenvolvimento, garante-se que o Programa é conforme com:

• Objectivos do problema

• Requisitos funcionais

7.2 Depois de entregue o programa pode sofrer actualizações

51

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

José Borges Computação e Programação 2010/2011

Produção / Manutenção

7.1 Após as várias fases do Processo de Desenvolvimento, garante-se que o Programa é conforme com:

• Objectivos do problema

• Requisitos funcionais

7.2 Depois de entregue o programa pode sofrer actualizações

7.3 As componentes de código resultantes podem ser reutilizadas na solução de outros problemas

52

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

27

José Borges Computação e Programação 2010/2011

Produção / Manutenção

7.1 Após as várias fases do Processo de Desenvolvimento, garante-se que o Programa é conforme com:

• Objectivos do problema

• Requisitos funcionais

7.2 Depois de entregue o programa pode sofrer actualizações

7.3 As componentes de código resultantes podem ser reutilizadas na solução de outros problemas

7.4 É produzida uma versão standalone53

Testes

Codificação

Problema

Produção

Algoritmo

Análise

Testes

OK

OK

José Borges Computação e Programação 2010/2011

Referências

54

• Capítulo 3 de Essential MATLAB for Engineers and Scientists, Brian Hahn e Dan Valentine (2007) Elsevier.

• Secção 2.1 de Matlab: A Practical Introduction to Programming and Problem Solving, Stormy Attaway (2009) Elsevier.

• http://en.wikipedia.org