You are on page 1of 21

Algoritmos e Programao

Departamento de Informtica

15 VARIVEIS COMPOSTAS HETEROGNEAS (AGREG. HETEROGNEOS)


Em um conjunto homogneo as variveis so do mesmo tipo primitivo e em alguns casos no so suficientes para representar todas as informaes. s vezes, necessrio criar novos tipos de dados. A criao de novos tipos de dados permite representar melhor a informao que est sendo tratada. Neste caso, um conjunto em que os elementos no so necessariamente do mesmo tipo, ou seja, um conjunto composto de elementos heterogneos, mas que so logicamente relacionados. Exemplo: dados de funcionrios de uma empresa, dados dos alunos, dados de uma conta telefnica 15.1 TIPOS DEFINIDOS PELO PROGRAMADOR A criao deve ser antes da declarao das variveis que utilizaro este tipo: Tipo nome do tipo = especificao do novo tipo; Var especificao do novo tipo : Lista de variveis; 15.2 ESTRUTURAS REGISTROS Principal estrutura para armazenar dados heterogneos, corresponde a um conjunto de informaes logicamente relacionadas, porm de tipos diferentes. Um registro composto por campos que so partes que especificam cada uma das informaes. Exemplo: passagem de nibus: Nmero: Origem: Data: Poltrona: Gestante: Destino: Horrio: Distncia:

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 61

Algoritmos e Programao

Departamento de Informtica

15.2.1 Declarao Tipo IDENTIFICADOR = registro tipo1 : campo1; tipo1 : campo2; tipon : campo n; Fim_registro; Var IDENTIFICADOR : lista de variveis; Exemplo: Tipo REGPASSAGEM = registro inteiro : NUMERO; lgico : GESTANTE; caracter : ORIGEM[20], DESTINO[20]; caracter : DATA[08], HORARIO[6]; inteiro : POLTRONA; real : DISTANCIA; Fim_registro; Var REGPASSAGEM : Passagem; 15.2.2 Manipulao Leia Passagem.NUMERO; Escreva Passagem.DESTINO; Passagem.DATA = "10102010"; 15.3 REGISTRO DE CONJUNTOS Os registros podem ser compostos de outros tipos de dados definidos pelo programador. Exemplo: Registro de estoque de um produto, contendo como um de seus campos um valor numrico que indica as baixas por dia til da semana.

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 62

Algoritmos e Programao

Departamento de Informtica

Cdigo Produto: Nome do Produto: Preo: Baixa:

| | | | | 1 | 2 | 3 | 4 | 5 | 6

Tipo vetor_dias = inteiro : vetor [6]; Tipo REGPROD= registro inteiro : CODIGO; caracter : DESCRICAO [30]; real : PRECO; vetor_dias : BAIXA; Fim_registro; Var REGPROD : PRODUTO; /*varivel do tipo definido */ 15.3.1 Manipulao Leia PRODUTO.DESCRICAO; ....... Para i de 1 at 6 faa Leia PRODUTO.BAIXA[I]; Fim_para; Exemplo: Se quiser manter as baixas para todas as semanas de um ms: Tipo MS_DIAS = inteiro : matriz[4][6]; Tipo REGPROD2 = registro caracter : DESCRICAO[30]; inteiro : CODIGO; real : PRECO; MS_DIAS : BAIXA; Fim_registro; Var REGPROD2 : PRODUTO2; Para acessar quanto foi vendido do produto no terceiro dia da quarta semana: PRODUTO2.BAIXA[4][3];

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 63

Algoritmos e Programao

Departamento de Informtica

Escrever o nome do produto, o cdigo, o preo e as baixas da segunda semana: Escreva PRODUTO2.DESCRIO; Escreva PRODUTO2.CODIGO; Escreva PRODUTO2.PREO; Para i de 1at 6 faa Escreva PRODUTO2.BAIXA[2][i]; Fim_para; Totalizar por dia da semana todos os dias do ms: Para J de 1 at 6 faa SOMA = 0; Para I de 1 at 4 faa SOMA = SOMA + PRODUTO2.BAIXA[I][J]; Fim_para; Escreva "Dia ",J, " totalizou ", SOMA, " baixas"); Fim_para;

Exemplo: Registro contendo um campo do tipo registro. Nome: Endereo Rua N. Cidade: Salrio:

CEP Estado

Tipo ENDER = registro caracter : RUA[30]; real : NUM, CEP; caracter : CIDADE[20],ESTADO[2]; Fim_registro; Tipo DADOS_FUNCIONARIOS = registro caracter : NOME[30]; ender : ENDEREO; real : SALARIO; Fim_registro; Var DADOS_FUNCIONARIOS : Empregado;

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 64

Algoritmos e Programao

Departamento de Informtica

Manipulao: Empregado.NOME = "Joo da Silva"; Empregado.ENDERECO.RUA = "Rua Vicente Machado"; Empregado.ENDERECO.NUM = 100; Empregado.ENDERECO.CEP = 84100970; Empregado.ENDEREO.CIDADE = "Ponta Grossa"; Empregado.ENDEREO.ESTADO = "PR"; Empregado.SALARIO = 1500; 15.4 CONJUNTO DE REGISTROS Quando necessrio armazenar um conjunto de registros. Exemplo: Informaes sobre todos os lugares de um nibus 1 2 3 : : 44 Nmero: Origem: Data: Poltrona: Gestante: Destino: Horrio: Distncia:

Tipo REGPASSAGEM = registro inteiro : NUMERO; lgico : GESTANTE; caracter : ORIGEM[20], DESTINO[20]; caracter : DATA[08], HORARIO[6]; inteiro : POLTRONA; real : DISTANCIA; Fim_registro; Tipo VETPASSAGEM = REGPASSAGEM : vetor [44]; ou

Var REGPASSAGEM : onibus[44];

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 65

Algoritmos e Programao

Departamento de Informtica

Para verificar quantos passageiros do nibus so gestantes: Para i de 1 at 44 faa Se onibus[i]. GESTANTE = .V. ento num_gestantes = num_ gestantes + 1; Fim_se; Fim_para; Exemplo: Vetor com 500 produtos Tipo MS_DIAS = inteiro : matriz[4][6];

Tipo REGPROD = registro caracter : DESCRICAO[30]; inteiro : CODIGO; real : PRECO; MS_DIAS : BAIXA; Fim_registro; Var REGPROD : PRODUTOS[500]; Mostrar a baixa do dcimo produto, do quarto dia da terceira semana: Escreva PRODUTOS[10].BAIXA[3][4]; Imprimir o total de movimentao do estoque para cada um dos 500 produtos: Para N de 1 at 500 faa SOMA = 0; Para I de 1 at 4 faa Para J de 1 at 6 faa SOMA = SOMA + PRODUTO[N].BAIXA[I][J]; Fim_para; Fim_para; Escreva PRODUTO[N].DESCRIO, SOMA; Fim_para;

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 66

Algoritmos e Programao

Departamento de Informtica

16 ARQUIVOS
Um arquivo corresponde a um conjunto de informaes (exemplo: uma estrutura de dados-registro), que pode ser armazenado em um dispositivo de memria permanente, exemplo disco rgido. As operaes bsicas para manipulao de arquivos so: abertura e fechamento do arquivo, leitura, gravao e excluso de dados (exemplo registros). 16.1 TIPOS DE ARQUIVOS Os dados dos arquivos podem ser armazenados/acessados basicamente de dois modos: sequencial ou direto (randmico). 16.1.1 Sequencial Os dados so gravados no arquivo de forma contnua, um aps o outro. A localizao de qualquer um dos dados indeterminada, para ter acesso a um dado especfico necessrio percorrer todos os que o antecedem e para gravar um novo dado necessrio encontrar o final do arquivo. 16.1.2 Direto (Randmico) Neste tipo de arquivo os dados (registros) so acessados de forma direta, ou seja, atravs de algum de seus campos definido como chave, pode-se ento acessar os dados (demais campos do registro), sem a necessidade de processar os registros que esto fisicamente antes dele no arquivo. 16.1.2.1 Arquivo Indexado (Arquivo sequencial de acesso direto)

Normalmente composto por mais de um arquivo: um arquivo de ndices (chaves) que contm a posio (endereo) de cada registro no outro arquivo de dados.

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 67

Algoritmos e Programao

Departamento de Informtica

16.2 TRATAMENTO DE ARQUIVOS EM LINGUAGEM C 16.2.1 Leitura e Gravao em Disco 1) Caracter: os dados so lidos e escritos caracter a caracter. getc(file); putc(char, file); 2) string: os dados so lidos e escritos como strings. fgets(string, tam-max, file); fputs(string, file); 3) Formatado: os dados so lidos e escritos de modo formatado. fscanf(ptr_file, formato, var_ destino); fprintf(ptr_file, formato, var_destino); 4) Bloco: os dados so lidos e escritos num formato chamado registro ou bloco. Este um grupo de dados de tamanho fixo e usado para armazenar uma sequncia de dados com itens similares, como matrizes e estruturas. fread(estrutura, tam-estrutura, qtde, ptr_file); fwrite(estrutura, tam-estrutura, qtde, ptr_file);

16.3 FORMAS DE ABERTURA 16.3.1 Modo texto Sequncias de caracteres agrupadas em linhas. Nmeros so guardados como cadeias de caracteres. Linhas so separadas por: UNIX: nico caractere chamado de nova linha (LF), de cdigo ASCII 10 decimal. DOS: cada linha separada por dois caracteres, o caracter 13 decimal (CR) e o caracter 10 decimal (LF). Compilador C: Converte CR/LF para LF quando um arquivo lido Converte de LF para CR/LF quando o arquivo gravado. Indicao de fim de arquivo enviada pelo DOS e reconhecida pelo compilador C. Nmeros so armazenados como esto na memria (2 bytes para inteiro, 4 para float, 8 para double). Nenhuma converso feita. Qualquer caractere lido ou gravado sem alterao. Indicao de fim de arquivo no reconhecida, sendo interpretada como outro caracter qualquer.

16.3.2 Modo binrio

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 68

Algoritmos e Programao

Departamento de Informtica

Obs: Principais diferenas entre modo texto e modo binrio: caracter de nova linha e fim de arquivo, e forma de representar os nmeros. 16.4 ABRINDO ARQUIVOS EM DISCO Arquivo stdio.h define a estrutura FILE que ser usada para declarar arquivos. Contm informaes sobre o arquivo a ser usado: seu tamanho atual, localizao de seus buffers de dados, se o arquivo est sendo lido ou gravado. Funo fopen: executa duas tarefas: 1) Preenche a estrutura FILE com as informaes necessrias para o programa e para o sistema operacional; 2) Retorna um ponteiro do tipo FILE que aponta para a localizao na memria da estrutura.

Sintaxe: fopen("nome_do_arquivo","modo"); Exemplo de abertura e tratamento: FILE *fptr; fptr = fopen("arqlivro.arq","w"); ou FILE *fptr; if ((fptr = fopen("arqlivro.arq","w")) == NULL { printf("No possvel abrir o arquivo"); exit(0); } NULL - corresponde a uma macro definida em STDIO.H, que detecta qualquer erro na abertura do arquivo (exemplo: disco protegido contra gravao, cheio, etc.) caso contrrio fopen retorna o ponteiro (endereo) para a estrutura do arquivo na memria; exit() - esta funo faz com que haja um terminao imediata do programa no importando de onde chamada. Por conveno, um valor retornado ao SO significa trmino com sucesso, qualquer outro indica que o programa terminou por causa de algum problema.

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 69

Algoritmos e Programao

Departamento de Informtica

16.4.1 Tipo de abertura dos arquivos: "r": abre arquivo texto para leitura (o arquivo deve existir). "w": abre arquivo texto para gravao. Se o arq. j existe ele destrudo, seno, um novo criado. "a": abre arquivo texto para gravao. Os dados sero adicionados ao final do arquivo existente ou um novo arquivo ser criado. "r+": abre um arquivo texto para leitura e gravao. O arquivo deve existir e pode ser atualizado. "w+": abre um arquivo texto para leitura e gravao. Se o arquivo existir ele ser destrudo e reinicializado, seno ser criado. "a+": abre um arquivo texto para atualizaes e para adicionar novos dados no final do arquivo existente ou um novo arquivo ser criado. "a+b": Abre um arquivo binrio para leitura e gravao. Se o arquivo existir, os dados sero adicionados no seu final, caso o arquivo no exista ele ser criado. mesmos para arquivos binrios com a letra "rb", "wb", "ab", "rb+", "wb+".

16.5 LEITURA E ESCRITA Funes fwrite e fread permitem ler e escrever blocos de dados (estruturas, matrizes) em arquivos de disco; Sintaxe: fwrite(&informao, num_bytes, itens, file) fread(&informao, num_bytes, itens, file) &informao - ponteiro para a informao que ser escrita/lida (arquivo/memria); num_bytes - o nmero de bytes (tamanho) para ler/escrever; itens - quantidade de itens (estruturas) - (cada um tendo num_bytes de tamanho); file - ponteiro para o arquivo previamente aberto; fread - retorna o nmero de itens lidos; fwrite - retorna o nmero de itens escritos;

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 70

Algoritmos e Programao

Departamento de Informtica

Exemplos: if (fwrite(&livro, sizeof(livro), 1, fptr) !=1){ printf ("Erro de escrita no arquivo"); fclose(fptr); }

if (fread(&livro, sizeof(livro), 1, fptr) !=1) { if (feof(fptr)) { fclose(fptr); } } Observao: sizeof - operador que usado para computar o tamanho de qualquer varivel ou tipo de dado; fclose - usado para fechar um arquivo (fluxo) aberto pela funo fopen() - um valor de retorno diferente de <zero> indica problemas no arquivo. feof - encontra final do arquivo - retorna verdadeiro (> zero) se o final do arquivo tiver sido encontrado, caso contrrio retorna zero; 16.6 APAGANDO ARQUIVOS A funo remove() apaga o arquivo especificado. Exemplo: remove("arqlivro.arq");

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 71

Algoritmos e Programao

Departamento de Informtica

17 PROGRAMAO ORIENTADA A OBJETO


A programao orientada a objeto aproveitou as melhores ideias da programao estruturada e combinou-as como novos conceitos poderosos que levam a ver na tarefa de programao uma nova luz. A tecnologia dos objetos permite que um problema seja mais facilmente decomposto em subgrupos relacionados. Deste modo, usando-se uma linguagem, pode-se traduzir esses subgrupos em unidades autocontidas chamadas objetos. Todas as linguagens de programao orientadas a objeto possuem trs coisas em comum: objetos, polimorfismo e herana. 17.1 OBJETO Objeto uma entidade lgica que contm dados e cdigos para manipular esses dados. Dentro de um objeto, alguns cdigos e/ou dados podem ser privados ao objeto e inacessveis diretamente para qualquer elemento fora dele, esta caracterstica e referenciada como encapsulao. 17.2 POLIMORFISMO o fato de um nome poder ser usado para vrios propsitos relacionados, mas ligeiramente diferentes. A inteno do polimorfismo permitir a um nome ser usado para especificar uma classe geral de aes. 17.3 HERANA Herana o processo em que um objeto pode adquirir as propriedades de outro. Isso importante, pois suporta o conceito de classificao. Portanto, usandose classificaes, um objeto precisa definir somente aquelas qualidades que o tornam nico dentro de sua classe. Ele pode herdar as qualidades que compartilha com a classe mais geral. o mecanismo que torna possvel a um objeto ser uma instncia especfica de uma classe mais geral.

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 72

Algoritmos e Programao

Departamento de Informtica

17.4 OUTROS CONCEITOS DA TEORIA DOS OBJETOS 17.4.1 Classe Agrupamento de objetos similares que apresentam os mesmos atributos e operaes. Ex: [rvores], caracterizando as rvores existentes em uma floresta. 17.4.2 Subclasse Caracterstica particular de uma classe. Exemplo: Classe [rvore] Subclasses [Ip], [Jacarand], [Eucalipto], etc. 17.4.3 Instncia de Classe Uma ocorrncia especfica de uma classe. o mesmo que objeto. Exemplo: uma pessoa, uma organizao, um equipamento, etc. 17.4.4 Atributo Caracterstica particular de uma ocorrncia da classe. Exemplo: [Indivduo Brasileiro], possui nome, sexo, data de nascimento, etc. 17.4.5 Mensagem Uma solicitao entre objetos para invocar certa operao. Exemplo: Informar a idade da pessoa "Fulano de Tal". 17.4.6 Estado Situao de um objeto em um dado instante de tempo. Exemplo: Emitindo uma Nota Fiscal. 17.4.7 Evento Uma ocorrncia significativa no mundo real que deve ser tratada. Exemplo: Pedido tomado, entrega efetuada, ponto de solicitao de material atingido. 17.4.8 Generalizao Atributos e operaes comuns compartilhados por classes.

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 73

Algoritmos e Programao

Departamento de Informtica

17.5 PROGRAMAO ORIENTADA A OBJETO EM C++ Para que os programas sejam compilados em C++ a extenso padro dos nomes dos programas fontes CPP. 17.5.1 Construindo Classes e Objetos Para criar um objeto, deve-se primeiro, definir a sua forma mais geral (classe) usando-se a palavra reservada class, que similar a uma estrutura. Sintaxe: class nome_da_classe { dados_e_funes_privados; public: dados_e_funes_pblicos; } lista_de_objetos; Exemplo: // Programa Obj_fila.cpp // Exemplo de construo de objetos do tipo fila // com suas respectivas variveis e funes membros #include <stdio.h> #include <conio.h> #include <iostream.h> // criao da classe fila class fila { int fila_int[100]; int inicio, final; public: void inicializa(void); void insere(int i); int retira(void); }; // Definio das funes membros da classe <fila> void fila::inicializa(void) // :: operador escopo de resoluo { inicio = final = 0; } void fila::insere(int i) { if (final==100) { printf("\n A fila esta cheia \n"); return; } final++; fila_int[final] = i; }
_________________________________________________________________________________ Professor: Ivo Mrio Mathias 74

Algoritmos e Programao

Departamento de Informtica

int fila::retira(void) { if (inicio==final) { printf(" * Fila corrompida *"); return 0; } inicio++; return fila_int[inicio]; } main() { fila a, b; // cria dois objetos fila a.inicializa(); b.inicializa(); a.insere(100); b.insere(200); a.insere(250); b.insere(350); printf(" printf(" printf(" printf(" printf(" printf(" getch(); } 17.5.2 Polimorfismo Uma maneira pelo uso de sobrecarga de funes. Em C++ duas ou mais funes podem compartilhar o mesmo nome, contanto que as suas declaraes de parmetros sejam diferentes. Contedo Contedo Contedo Contedo Contedo Contedo da da da da da da fila fila fila fila fila fila a a a b b b %d %d %d %d %d %d \n",a.retira()); \n",a.retira()); \n",a.retira()); \n",b.retira()); \n",b.retira()); \n",b.retira());

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 75

Algoritmos e Programao

Departamento de Informtica

Exemplo: // Programa Obj_poli.cpp // Exemplo da construo de objetos do tipo operaes // c/polimorfismo. #include <stdio.h> #include <conio.h> #include <iostream.h> // criao da classe operaes class operacoes { public: int quadrado(int i); float quadrado(float f); }; int operacoes::quadrado(int i) { return i*i; } float operacoes::quadrado(float f) { return f*f; } main() { int num_int,res_int; float num_float,res_float; operacoes calculo; // cria o objeto calculo printf(" Digite um nmero inteiro: "); scanf(" %d",&num_int); res_int = calculo.quadrado(num_int); printf(" \nO quadrado de %d %d", num_int, res_int); printf(" \n\nDigite um nmero real: "); scanf(" %f",&num_float); res_float = calculo.quadrado(num_float); printf(" \nO quadrado de %f %f", num_float, res_float); getch(); }

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 76

Algoritmos e Programao

Departamento de Informtica

17.5.3 Herana Em C++ a herana suportada por permitir a uma class incorporar outra class na sua declarao. Exemplo: // Programa Obj_hera.cpp // Exemplo da construo de objetos com o uso de herana #include <stdio.h> #include <conio.h> #include <iostream.h> // criao da classe veiculos_na_estrada class veiculos_na_estrada { int rodas; int passageiros; public: void fixa_rodas(int num); int obtem_rodas(void); void fixa_passageiros(int num); int obtem_passageiros(void); }; //criao da subclasse <caminho> que herda alguns atributos //e funes membros da classe <veiculos_na_estrada> class caminhao : public veiculos_na_estrada { int carga; public: void fixa_carga(int tamanho); int obtem_carga(void); void exibe(void); }; enum tipo {carro, furgao, pick_up, van}; //criao da subclasse <automvel> que herda alguns atributos //e funes membros da classe <veiculos_na_estrada> class automovel : public veiculos_na_estrada { enum tipo tipo_de_carro; public: void fixa_tipo(enum tipo t); enum tipo obtem_tipo(void); void exibe(void); };
_________________________________________________________________________________ Professor: Ivo Mrio Mathias 77

Algoritmos e Programao

Departamento de Informtica

//Definio das funes membros/mtodos void veiculos_na_estrada::fixa_rodas(int num) { rodas = num; } int veiculos_na_estrada::obtem_rodas(void) { return rodas; } void veiculos_na_estrada::fixa_passageiros(int num) { passageiros = num; } int veiculos_na_estrada::obtem_passageiros(void) { return passageiros; } void caminhao::fixa_carga(int num) { carga = num; } int caminhao::obtem_carga(void) { return carga; } void caminhao::exibe(void) { printf("Rodas: %d \n",obtem_rodas()); printf("Passageiros: %d \n",obtem_passageiros()); printf("Capacidade de carga: %d \n\n",carga); } void automovel::fixa_tipo(enum tipo t) { tipo_de_carro = t; } enum tipo automovel::obtem_tipo(void) { return tipo_de_carro; }
_________________________________________________________________________________ Professor: Ivo Mrio Mathias 78

Algoritmos e Programao

Departamento de Informtica

void automovel::exibe(void) { printf("Rodas: %d \n",obtem_rodas()); printf("Passageiros: %d \n",obtem_passageiros()); printf("Tipo: "); switch(obtem_tipo()) { case furgao: printf ("Furgao \n"); break; case carro: printf ("Carro \n"); break; case van: printf ("Van \n"); break; case pick_up: printf ("Pick up \n"); } } main() { caminhao furgao,camionete; automovel van; furgao.fixa_rodas(18); furgao.fixa_passageiros(2); furgao.fixa_carga(3200); camionete.fixa_rodas(6); camionete.fixa_passageiros(3); camionete.fixa_carga(1200); furgao.exibe(); camionete.exibe(); van.fixa_rodas(4); van.fixa_passageiros(6); van.fixa_tipo(carro); van.exibe(); getch(); }

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 79

Algoritmos e Programao

Departamento de Informtica

18 FASES DE DESENVOLVIMENTO DE UM PROGRAMA


O processo de desenvolvimento de um sistema computacional (programa, software) visa responder as seguintes questes:

Qual o problema a ser resolvido? Quais as caractersticas do programa utilizado para resolver o problema? Como o programa ser construdo? Qual abordagem que ser usada para descobrir erros cometidos no projeto e construo do programa? Como o programa ir suportar a ao do tempo, quando correes, adaptaes e melhorias so requisitadas pelo usurio? Anlise Projeto Fase de definio Implementao Teste Fase de desenvolvimento Manuteno Fase de manuteno

18.1 FASE DE DEFINIO (O QUE?) Esta fase do desenvolvimento procura identificar: Requisitos do sistema; Informaes a serem processadas; Funes, comportamento esperado e as interfaces; Restries de projeto existentes.

Trs tarefas ocorrem: anlise do sistema, planejamento do projeto e anlise de requisitos.

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 80

Algoritmos e Programao

Departamento de Informtica

18.2 FASE DE DESENVOLVIMENTO (COMO?) Os seguintes tpicos so abordados: Definio das estruturas de dados e arquitetura do software; Definio das funes que sero implementadas; Caracterizao das interfaces do sistema; Traduo do projeto em uma linguagem de programao; Como os testes sero realizados.

Trs tarefas ocorrem: projeto do software, gerao de cdigo e teste de software. 18.2.1 Teste de Software Definio de teste e depurao; Teste uma anlise dinmica do produto; Limitaes da atividade de teste; Etapas da Atividade de Teste: - planejamento; - projeto de casos de teste; - execuo do programa com os casos de teste; - anlise dos resultados; Tcnicas e Critrios de Teste de Software.

18.3 FASE DE MANUTENO (MUDANA) Podem ser realizadas modificaes no software para: Correo de erros; Adaptaes; Evolues; Prevenes.

Nessa fase so reaplicados os passos das fases de definio e desenvolvimento no contexto de um programa j existente.

_________________________________________________________________________________ Professor: Ivo Mrio Mathias 81

You might also like