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
• Construção de programas
• Actividades de teste a programas
• Processo de Desenvolvimento (PD)
• Modelo do PD
• Actividades do PD
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
Programa de Computador
“Um programa de computador é uma colecção de instruções que descreve uma tarefaa 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áveldeste código fonte.”
José Borges Computação e Programação 2010/2011
Construção de programas
5
Consiste dodesenho da lógica que resolve um problema e sua codificaçãonum ambiente computacional, segue umprocesso de desenvolvimento,
segundo uma estratégia de problem-solving, por exemplo a abordagem Top-Down.
Abordagem Top – Down
• 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 entradase saídas. As comunicaçõesentre processos só se realizam de/para níveis hierárquicos diferentes, e nunca ao mesmo nível Problema Sub-problemas Tarefas T o p -D o w n
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 entradase saídas. As comunicaçõesentre processos só se realizam de/para níveis hierárquicos diferentes, e nunca ao mesmo nível
• Esta abordagem permiteabstrair 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
•
Construção de programas
• Actividades de teste a programas
•
Processo de Desenvolvimento (PD)
•
Modelo do PD
•
Actividades do PD
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
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?)
José Borges Computação e Programação 2010/2011
Tipos de erros
• Erros típicos: • Lógicos • Sintaxe • Execução 11•
Construção de programas
•
Actividades de teste a programas
• Processo de Desenvolvimento (PD)
•
Modelo do PD
•
Actividades do PD
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 programae engloba uma série de etapas que envolvem
actividades, restriçõese recursos. (Normas ISO 12207)
13
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.
Problema
Actividades
Programa
Restrições
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
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.
Problema Actividades Programa Restrições - Análise - Algoritmo - Codificação - Testes - Manutenção 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.
17 Problema Actividades Programa Restrições - Humanos - Hardware - Software -Tempo - Custo Recursos
•
Construção de programas
•
Actividades de teste a programas
•
Processo de Desenvolvimento (PD)
• Modelo do PD
•
Actividades do PD
José Borges Computação e Programação 2010/2011 19
Workflow
Testes Codificação Problema Produção Algoritmo Análise Testes OK OKContexto do problema
1. Contexto do problema2. 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 21
Análise / Esquema de processamento
1. Definição do problema2. 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
Algoritmo e testes
1. Definição do problema2. 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 23
Codificação, testes e validação
1. Definição do problema2. 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
Produção / manutenção
1. Definição do problema2. 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 25
O “Processo de Desenvolvimento”
1. Contexto do problema2. 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
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
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
1. Identificação do contexto do problema e
objectivos do programa que o resolve
Definição do problema
Testes Codificação Problema Produção Algoritmo Análise Testes OK OKJosé Borges Computação e Programação 2010/2011
Análise
29 Testes Codificação Problema Produção Algoritmo Análise Testes OK OKProblema
2.1 Entradas 2.1 Saídas 2.2 Especificações Requisitos 2.3 Métodos de ProcessamentoAnálise
2.1 Esquema de processamento • Entradas • Saídas Testes Codificação Problema Produção Algoritmo Análise Testes OK OKJosé 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
Análise
2.1 Esquema de processamento • Entradas • Saídas2.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)
• Fluxosde dados 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 33 Testes Codificação Problema Produção Algoritmo Análise Testes OK OK ProblemaDesenvolvimento do algoritmo
3.1 Abordagem Top-Down3.2 Descrição passo-a-passo em lista de tarefas elementares do problema particular a resolver 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ódigoescrito na linguagem natural do programador 35 Testes Codificação Problema Produção Algoritmo Análise Testes OK OK
Desenvolvimento do algoritmo
3.1 Abordagem Top-Down3.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 Testes Codificação Problema Produção Algoritmo Análise Testes OK
OK Objectivo: Plano de tarefas que pode ser facilmente
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
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
Testes Codificação Problema Produção Algoritmo Análise Testes OK OK
José Borges Computação e Programação 2010/2011
Testes ao algoritmo
39 Testes Codificação Problema Produção Algoritmo Análise Testes OK OK4.1 Caso se verifiquem Erros Lógicos: • Processo regressa à fase de Análise • Procurar eventuais inconsistências ao
longo do fluxo: Análise → Algoritmo
Testes ao algoritmo
Testes Codificação Problema Produção Algoritmo Análise Testes OK OK4.2 Caso nãose verifiquem Erros Lógicos: • Processo segue para a Codificação
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
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
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
5.3 Depuração de Erros Sintácticos
43 Testes Codificação Problema Produção Algoritmo Análise Testes OK OK
Testes ao programa
Testes Codificação Problema Produção Algoritmo Análise Testes OK OK6.1 Teste do Programa nas várias opções definidas em termos de:
i. Análise de Requisitos Funcionais
José Borges Computação e Programação 2010/2011
Testes ao programa
45 Testes Codificação Problema Produção Algoritmo Análise Testes OK OK6.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çãocom resultados analíticos / teóricos/ experimentais, ou
resultantes de programas similares
Testes ao programa
Testes Codificação Problema Produção Algoritmo Análise Testes OK OK6.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
José Borges Computação e Programação 2010/2011
Testes ao programa
47 Testes Codificação Problema Produção Algoritmo Análise Testes OK OK6.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
Testes ao programa
Testes Codificação Problema Produção Algoritmo Análise Testes OK OK6.4 Caso se verifiquem Erros:
• Processo regressa à fase de Análise • Procurar eventuais inconsistências ao
longo do fluxo:
José Borges Computação e Programação 2010/2011 OK
Testes ao programa
49 Testes Codificação Problema Produção Algoritmo Análise Testes OK6.5 Caso nãose verifiquem Erros: • Processo segue para Produção
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 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 51 Testes Codificação Problema Produção Algoritmo Análise Testes OK OK
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ódigoresultantes podem ser reutilizadasna solução de outros problemas 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
7.4 É produzida uma versão standalone
53 Testes Codificação Problema Produção Algoritmo Análise Testes OK OK
Referências
• 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.