Buscar

06-AulaES_Implementacao

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

11
Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
Curso de Curso de 
Engenharia de Engenharia de Software ISoftware I
��������	
��������	
��������	
��������	
����
�
����������
�
����������
�
����������
�
������
2Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
� Artefatos Utilizados
– Projeto Técnico
– Componentes Produzidos e Reutilizados
– Componentes de Teste
– Plano de Desenvolvimento (para liberação)
� Tarefa pode ser difícil pois,
– Projetistas podem não ter abordado as facilidades da 
plataforma e do ambiente de programação
– As estruturas e as relações em tabelas e gráficos não são 
diretas
– O código deve ser escrito de maneira compreensível
– Aproveitar vantagens do projeto, das estruturas de dados e da 
linguagem de programação
– Criar programas reutilizáveis
3Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
� Conhecer os padrões e os procedimentos da organização 
para escrever código
� Padrões para você X Padrões para os outros
� Todo projeto é de pouco valor, se a modularidade não for 
contemplada no código
� Ter em mente que o código deve refletir o que foi 
especificado no projeto
� Diretrizes de Programação
– Criatividade
– Projeto é um guia ���� o programador deve ter flexibilidade
22
4Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
� Muitas vezes, ter código que execute o mais rápido possível:
– Custo para escrever esse código pode ser mais alto e levar 
mais tempo para ser desenvolvido
– Custo do tempo necessário para testar o código, cuja 
complexidade exige mais casos de testes e dados sobre os 
testes
– Custo de tempo para entender o código
– Custo de tempo para modificar o código
� Assim, é necessário equilibrar
– Tempo de execução
– Qualidade do projeto
– Padrões
– Requisitos
5Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
� Reutilização: Produtor X Consumidor
– Consumidor de Componentes Reutilizáveis
� O componente realiza a função ou fornece os dados de que você 
precisa?
� Se uma pequena modificação for exigida, ela será menor do que 
construir o componente do início?
� O componente é bem documentado, de modo que você possa entendê-lo 
sem ter de verificar a implementação linha por linha?
� Há um registro completo do teste do componente e do histórico da 
revisão, de modo que você pode estar certo de que ele não contém 
falhas?
– Produtor de Componentes Reutilizáveis
� Tornar o componente geral, usando parâmetros e prevendo condições 
similares
� Separar dependências, de modo que partes que precisem ser 
modificadas sejam isoladas das que permanecem da mesma maneira
� Manter a interface genérica e bem definida
� Incluir informações sobre falhas encontradas e resolvidas
� Utilizar convenções claras de nomes
� Documentar as estruturas de dados e os algoritmos
� Manter as partes de comunicação e tratamento de erro separadas e 
fáceis de serem modificadas
6Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
� Documentação
– Conjunto de descrições que explicam a um leitor o que os 
programas fazem e como o fazem
– Documentação Interna
� é o material descritivo escrito diretamente no código
� Cabeçalho
� Comentários ao longo do programa
� Nome significativo de variáveis
� Formatação interna do código
� Documentação dos dados
– Documentação externa
� demais documentações
� Descrição do problema
� Descrição dos algoritmos
� Descrição dos dados
33
7Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
� I3 = i3 +1 // incrementar contador
� I3 = i3 +1 // ajustar contador para ler o próximo caso
� contadorCaso = contadorCaso + 1
� z = (a * b) + 0,5 * a * (b – 40,0)
� salarioSemana = (valorHora * horas) + 0,5 * valorHora * (horas - 40,0)
8Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
9Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
44
10Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
import java.io.*;
class TesteFor {
public static void main (String args[]){
int j;
int numero;
String linha;
BufferedReader entrada;
BufferedWriter saida;
for (j = 0; j <= 10; j++){System.out.println(j);}
for (j = 0; j < 10; j++){System.out.println(j);}
entrada = new BufferedReader(new InputStreamReader(System.in));
saida = new BufferedWriter(new OutputStreamWriter(System.out));
for (j = 0; j <= 10; j++){
System.out.println("Entre numero:");
try{
linha = entrada.readLine();
numero = Integer.valueOf(linha).intValue();
System.out.println("Numero: " + numero);
} catch (Exception e) {System.out.println(e);}}}}
11Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
import java.io.*;
class TesteFor {
public static void main (String args[]){
int j;
int numero;
String linha;
BufferedReader entrada;
BufferedWriter saida;
for (j = 0; j <= 10; j++){
System.out.println(j);
}
for (j = 0; j < 10; j++){
System.out.println(j);
}
12Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
entrada = new BufferedReader(new InputStreamReader(System.in));
saida = new BufferedWriter(new OutputStreamWriter(System.out));
for (j = 0; j <= 10; j++){
System.out.println("Entre numero:");
try{
linha = entrada.readLine();
numero = Integer.valueOf(linha).intValue();
System.out.println("Numero: " + numero);
} catch (Exception e) {
System.out.println(e);
}
}
}
}
55
13Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
if (isSpecialDeal()) {
total = price * 0.95;
send();
} else {
total = price * 0.98;
send();
}
if (isSpecialDeal())
total = price * 0.95;
else
total = price * 0.98;
send();
double disabilityAmount() {
if (_seniority < 2)
return 0;
if (_monthsDisabled > 12)
return 0;
if (_isPartTime)
return 0;
}
double disabilityAmount() {
if (isNotEligableForDisability())
return 0;
}
14Prof. Heitor A. X. Costa – Grupo de Pesquisa em Engenharia de Software (PqES) – DCC/UFLA
ImplementaçãoImplementação
Object lastReading() {
return readings.lastElement();
}
Reading lastReading() {
return (Reading) 
readings.lastElement();
}
public String _name private String _name;
public String getName() {return _name;}
public void setName(String arg) {_name = arg;}
Documento como a convenção de codificação deve ser 
seguido para que seu código seja mais legível e fácil de 
manipular por você ou por terceiros. Este documento explica 
o por quê da necessidade de convenção para codificação, 
organização de arquivos, endentação, comentários, 
declarações, statements, espaços, convenções para 
nomenclaturas, estilos de variáveis, como declarar, quais 
nomes mais fáceis. Enfim, mantendo um padrão coeso de 
regras, sua vida de programador fica mais fácil

Outros materiais