Processo de Desenvolvimento Problema Análise Testes OK Codificação Testes OK Produção 1. Contexto do problema 2. Análise / síntese do problema 3. Esquema de processamento 4. e testes 5. Codificação 6. Testes e validação 7. Produção / manutenção 1 Documentação Problema Análise - A documentação é uma componente essencial na concepção de programas, que deve acompanhar todas as etapas do desenvolvimento de produto Testes OK Codificação Testes OK Produção 2 1
Ver referências 25. Write a script area_menu that will print a list consisting of cylinder, circle, and rectangle. It prompts the user to choose one, and then prompts the user for the appropriate quantities (e.g., the radius of the circle) and then prints its area. If the user enters an invalid choice, the script simply prints an error message. The script should use a selection structure to accomplish this. Here are some examples of running it (units are assumed to be meters). Cylinder Circle Rectangle Inputs [m] radius_base = 2.00 length = 8.00 radius = 2.00 length = 8.00 width= 5.00 Outputs [m 2 ] area = 125.66 area = 12.57 area= 40.00 3 Problema 1. Contexto do Problema Desenvolver uma aplicação para calcular a área de uma das seguintes figuras geométricas: círculo rectângulo cilindro 4 2
Análise 2.2 Especificações e Requisitos 2.3 Métodos de Processamento 2.1 Entradas 2.1 Saídas 5 Análise 2.1 Esquema de processamento Entradas: Tipo de sólido geométrico (opcao) Consoante o caso, Saídas: Circulo: raio (raio) Rectângulo: comprimento (comprimento) e largura (Largura) Cilindro: raio da base (raio) e comprimento do cilindro (comprimento) Área do sólido (area) 6 3
Análise 2.2 Especificações funcionais e Requisitos (EF) O programa disponibiliza ao utilizador as opções disponíveis para cálculo de áreas (EF) O utilizador escolhe a opção adequada e, consoante o caso, introduz a informação relativa ao sólido que escolheu (EF) O programa apresenta a área calculada (REQ) As unidades de trabalho são em metros [m] e metros quadrados [m 2 ] (REQ) A precisão da apresentação é de 2 casas decimais 7 Análise 2.3 Fluxo de dados opção = círculo Utilizador Programa Apresenta opções Introduz opcao Introduz raio Pede raio Apresenta area 8 4
Análise 2.3 Fluxo de dados opção = rectângulo Utilizador Introduz opcao Programa Apresenta opções Introduz comprimento Introduz largura Pede comprimento Pede largura Apresenta area 9 Análise 2.3 Fluxo de dados opção = cilindro Utilizador Introduz opcao Introduz comprimento Introduz raio Programa Apresenta opções Pede comprimento Pede raio Apresenta area 10 5
Análise 2.3 Métodos de Processamento Área do círculo: área circulo = π raio 2 Área do rectângulo: área rectângulo = comprimento largura Área do cilindro: área cilindro = 2 área circulo + área rectângulo Constante PI: π = 3.141516 largura = perímetro circulo = 2 π raio 11 3.1 Abordagem Top-Down 12 6
3.2 Lista de tarefas Lista #1: corpo principal do programa Programa apresenta opções disponíveis Utilizador escreve opção Calcular área Apresentar área calculada Lista #2: Calcular área do rectângulo Programa pede comprimento Utilizador escreve comprimento Programa pede largura Utilizador escreve largura Calcular área com area_rectangulo() Lista #3: Calcular área do círculo Programa pede raio Utilizador escreve raio Calcular área com area_cilindro() Lista #4: Calcular área do cilindro Programa pede raio Utilizador escreve raio Programa pede comprimento Utilizador escreve comprimento Calcular largura c/ perimetro_circulo() Calcular área com area_cilindro() 13 3.3 : corpo principal do programa i. Programa apresenta opções disponíveis ii. Utilizador escreve opção iii. Se opção = rectângulo a. Programa pede comprimento b. Utilizador escreve comprimento c. Programa pede largura d. Utilizador escreve largura e. Calcular area_rectangulo() 14 7
3.3 iv. Se opção = círculo a. Programa pede raio b. Utilizador escreve raio c. Calcular area_circulo() 15 3.3 v. Se opção = cilindro a. Programa pede raio b. Utilizador escreve raio c. Programa pede comprimento d. Utilizador escreve comprimento e. Calcular largura com perimetro_circulo() f. Calcular area_cilindro() vi. Caso contrário a. Apresentar mensagem de erro vii. Apresentar área calculada 16 8
Testes () 4 Testes: calcular área do rectângulo comprimento largura Esperado area 8.0 5.0 40.0 40.0 17 Testes () 4 Testes: calcular área do círculo raio Esperado area 2.0 12.57 12.57 18 9
Testes () 4 Testes: calcular área do cilindro comprimento raio largura area Esperado Esperado 8.0 2.0 12.5664 12.5664 125.66 125.6637 19 Codificação 5 Codificação em MATLAB: estrutura do programa M-file: calcular_areas.m Rectângulo Círculo Cilindro Função: area_rectangulo.m Função: area_circulo.m Função: perimetro_circulo.m 20 10
Codificação 5 Codificação em MATLAB: corpo principal Os comentários foram omitidos! 21 Codificação 5 Codificação em MATLAB: calcular área do rectângulo Os comentários foram omitidos! 22 11
Codificação 5 Codificação em MATLAB: calcular área do círculo Os comentários foram omitidos! 23 Codificação 5 Codificação em MATLAB: calcular área do cilindro Os comentários foram omitidos! 24 12
Testes (Matlab) 6 Testes à codificação >> calcular_areas Comprimento = 8 Largura = 2 A área tem 16.00 m2 >> calcular_areas Raio = 2 A área tem 12.57 m2 >> calcular_areas Comprimento = 8 Raio = 2 A área tem 125.66 m2 25 Referências Capítulo 3 de Stormy Attaway (2009), Matlab: A Practical Introduction to Programming and Problem Solving, Elsevier. 26 13