Post on 10-Nov-2018
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