31
Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes Recife, 27 de Abril de 1999

Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment CourseExercício de Fixação #1Sistema Universidade

Jorge H. C. FernandesRecife, 27 de Abril de 1999

Page 2: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course: Exercício de Fixação #1Sistema Universidade

CopyrightCopyrightCopyrightCopyright © 1999, 1995. Jorge H. C. Fernandes (© 1999, 1995. Jorge H. C. Fernandes (© 1999, 1995. Jorge H. C. Fernandes (© 1999, 1995. Jorge H. C. Fernandes (jhcfjhcfjhcfjhcf@@@@didididi....ufpeufpeufpeufpe.br).br).br).br)

Todos os direitos reservados. Nenhuma parte desta publicação podTodos os direitos reservados. Nenhuma parte desta publicação podTodos os direitos reservados. Nenhuma parte desta publicação podTodos os direitos reservados. Nenhuma parte desta publicação pode e e e ser reproduzida, armazenada em sistema deser reproduzida, armazenada em sistema deser reproduzida, armazenada em sistema deser reproduzida, armazenada em sistema de retrievalretrievalretrievalretrieval, ou transmitida, , ou transmitida, , ou transmitida, , ou transmitida, em quaisquer formas, ou através de quaisquer meios, eletrônicos,em quaisquer formas, ou através de quaisquer meios, eletrônicos,em quaisquer formas, ou através de quaisquer meios, eletrônicos,em quaisquer formas, ou através de quaisquer meios, eletrônicos,mecânicos, fotocópias, gravações,mecânicos, fotocópias, gravações,mecânicos, fotocópias, gravações,mecânicos, fotocópias, gravações, etcetcetcetc, sem a prévia autorização, por , sem a prévia autorização, por , sem a prévia autorização, por , sem a prévia autorização, por escrito, de Jorge Henrique Cabral Fernandes. escrito, de Jorge Henrique Cabral Fernandes. escrito, de Jorge Henrique Cabral Fernandes. escrito, de Jorge Henrique Cabral Fernandes.

All rights reservedAll rights reservedAll rights reservedAll rights reserved. No. No. No. No part of this publication may be reproducedpart of this publication may be reproducedpart of this publication may be reproducedpart of this publication may be reproduced,,,,stored instored instored instored in aaaa retrieval systemretrieval systemretrieval systemretrieval system,,,, or transmittedor transmittedor transmittedor transmitted,,,, in any formin any formin any formin any form,,,, or by any or by any or by any or by any meansmeansmeansmeans,,,, electronicelectronicelectronicelectronic,,,, mechanicalmechanicalmechanicalmechanical,,,, photocopyingphotocopyingphotocopyingphotocopying,,,, recordingrecordingrecordingrecording, , , , or or or or otherwiseotherwiseotherwiseotherwise,,,, without thewithout thewithout thewithout the priorpriorpriorprior consent of the publisherconsent of the publisherconsent of the publisherconsent of the publisher....

JavaJavaJavaJavaTMTMTMTM is is is is a a a a trademark of Sun Microsystemstrademark of Sun Microsystemstrademark of Sun Microsystemstrademark of Sun Microsystems....

Page 3: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Sistema Universidade

�Requisitos�Classes e Código�Execução e Criação de Objetos�Exercícios e Outras Propostas de

Modificações

Page 4: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Requisitos do Sistema

� Universidade agrega Departamentos e Cursos� Um Departamento agrega Disciplinas e Professores� Um Curso agrega Alunos e Disciplinas� Uma Disciplina está alocada a um único Departamento� Um Professor está lotado em um único Departamento� Departamentos criam Turmas apenas para as Disciplinas que

agregam� Uma Turma implementa uma única Disciplina em um único Período� Um Aluno se matricula em um único Curso� Alunos se inscrevem em várias Turmas que implementam apenas

as Disciplinas do seu Curso� Professores são responsáveis por várias Turmas� Uma Turma tem um único Professor responsável

Page 5: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Modelo ER Estendido

Page 6: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Classes do Projeto

�Pessoa�Aluno, AlunoGrad, AlunoIC, AlunoPos�Professor�Departamento, Curso, Disciplina, Turma�SetorEventos, Convite�SetorPagamento, Remunerável�Universidade

Page 7: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Pessoa, Alunos, ProfessoresPessoa

AlunoPos

Aluno

AlunoGrad

AlunoIC

Professor

Remunerável

Page 8: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Remunerávelinterface Remuneravel {

int getDiasTrabalhados();

void setDiasTrabalhados(int diasTrabalhados);

int getRemuneracao();

}

Page 9: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Pessoaclass Pessoa {

// Toda pessoa possui um nome e um endereço

String nome;

String endereco;

// construtor que recebe o nome e endereço

Pessoa(String nome, String endereco) {

this.nome = nome;

this.endereco = endereco;

}

// pessoa com endereço indefinido

Pessoa (String nome) {

this(nome, "Indefinido");

}

}

Page 10: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Classe Pessoa: Características do Código

�Dois construtores// construtor que recebe o nome e endereço

Pessoa(String nome, String endereco) {

this.nome = nome;

this.endereco = endereco;

}

// pessoa com endereço indefinido

Pessoa (String nome) {

this(nome, "Indefinido");

}

�Sempre definir um construtor canônicoPessoa(String nome, String endereco) {...}

Page 11: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Alunoabstract class Aluno extends Pessoa {

Curso curso; // curso que o aluno freqüenta

int creditosPagos; // Créditos já pagos pelo aluno

// cria um aluno (abstrato)

Aluno (String nome, String endereco, Curso curso) {

super(nome,endereco);

this.curso = curso;

this.creditosPagos = 0;

}

// adiciona créditos ao histórico do aluno

int adicionaCreditos(int creditos) {..}

// indica se o aluno já concluiu o curso

abstract boolean concluiu();

}

Page 12: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

AlunoGrad (Graduação)public class AlunoGrad extends Aluno {

AlunoGrad (String nome, String endereco, Curso curso) {super(nome, endereco, curso);

}// cria um aluno de IC a partir de um aluno de graduaçãoAlunoIC iniciacaoCientifica(String projeto,

Professor orientador, int valorBolsa) {return (new AlunoIC(nome, endereco, curso,

projeto, orientador, valorBolsa));}// indica se o aluno já cumpriu os requisitos para conclusãoboolean concluiu() {

if (creditosPagos >= curso.creditosParaConclusao)return true;

elsereturn false;

}}

Page 13: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Classe AlunoGrad:Características do Código

�Construtor de AlunoGrad utiliza construtor da superclasseAlunoGrad (String nome, String endereco, Curso curso) {

super(nome, endereco, curso);}

�Método para criar um AlunoIC a partir de um AlunoGradAlunoIC iniciacaoCientifica(String projeto,

Professor orientador,int valorBolsa) {

return (new AlunoIC(nome, endereco, curso,projeto, orientador, valorBolsa));

}

Page 14: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

AlunoIC (Iniciação Científica)public class AlunoIC extends AlunoGrad implements Remuneravel {String projeto; // Projeto ao qual o aluno está alocadoProfessor orientador; // Professor orientadorprivate int valorBolsa; // valor da bolsaprivate int diasPesquisa; // Quantos dias o aluno trabalhou no mês

// construtorAlunoIC(String nome, String endereco, Curso curso,

String projeto, Professor orientador, int valorBolsa) {super(nome, endereco, curso);...

}

public int getRemuneracao() {..} // retorna a remuneração do aluno// retorna a quantidade de dias trabalhados pelo alunopublic int getDiasTrabalhados() {..}// ajusta quantos dias o aluno trabalhou no mêspublic void setDiasTrabalhados(int dias) {..}

}

Page 15: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Professorpublic class Professor extends Pessoa implements Remuneravel {...// turmas pelas quais o professor é responsávelprivate Turma[] turmas;int qtdTurmas;Professor(String nomeProfessor, String formacaoProfessor,

int salarioProfessor) {..turmas = new Turma[3];qtdTurmas = 0;

}Turma[] getTurmas() { return turmas; }// inclui uma nova turma para o professorvoid incluiTurma(Turma novaTurma) {if (qtdTurmas < 3) {turmas[qtdTurmas] = novaTurma;qtdTurmas++;

}}

}

Page 16: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Classe Professor:Características do Código

� Armazenamento de objetos em um array// turmas pelas quais o professor é responsávelprivate Turma[] turmas;int qtdTurmas;

� Array com tamanho fixoturmas = new Turma[3];

� Número Mágico (Por que 3 turmas?)turmas = new Turma[3];

� Violação de encapsulamento do arrayTurma[] getTurmas() { return turmas; }

� Falha silenciosa na não inclusão da 4a turmavoid incluiTurma(Turma novaTurma) {if (qtdTurmas < 3) {turmas[qtdTurmas] = novaTurma;qtdTurmas++;

}}

Page 17: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Disciplinapublic class Disciplina {

String nome; // nome da disciplina

int creditos; // quantidade de créditos

Disciplina (String nomeDisciplina, int creditosDisciplina) {

nome = nomeDisciplina;

creditos = creditosDisciplina;

}

Turma criaTurma(String periodo) {

return new Turma(this, periodo);

}

public String toString() {

return "Nome Disciplina: "+nome +" Créditos: "+creditos;

}

}

Page 18: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Classe Disciplina:Características do Código

�Criação de Turma a partir de uma disciplinaTurma criaTurma(String periodo) {

return new Turma(this, periodo);

}

�Implementação do Método toString()public String toString() {

return "Nome Disciplina: "+nome +" Créditos: "+creditos;

}

Page 19: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Turmapublic class Turma {Disciplina disciplina; // turma implementa uma disciplina específicaString periodo; // em um período de ofertaProfessor professor; // professor responsável pela disciplinaprivate Aluno alunos[];// alunos inscritos na turmaint qtdAlunos; // quantidade de alunos inscritosTurma(Disciplina disciplina, String periodo) { // cria uma turma

...alunos = new Aluno[30];qtdAlunos = 0;

}void alocaProfessor(Professor prof) {..} //aloca professor à turmavoid incluiAluno (Aluno aluno) { // inclui aluno à turmaif (qtdAlunos < 30) {alunos[qtdAlunos] = umAluno;qtdAlunos = qtdAlunos + 1;

}}public void liste() {..} // lista informações da turma

}

Page 20: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Classe Turma:Características do Código

�Armazenamento de objetos em um array�Array com tamanho fixo�Número Mágico (Por que 30 alunos?)�Falha silenciosa na não inclusão do 31o

aluno

Page 21: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Departamento (1/2)public class Departamento {

String nome; // nome do departamento

Professor professores[]; //professores lotados no depto

int qtdProfessores;

Disciplina disciplinas[]; // disciplinas oferecidas

int qtdDisciplinas;

Turma turmas[]; // turmas criadas

int qtdTurmas;

static final int MAX_TURMAS = 300;

Departamento (String umNome) {...} // cria departamento

boolean incluiProfessor(Professor umProfessor) {...}

boolean incluiDisciplina(Disciplina umaDisciplina) {...}

boolean incluiTurma(Turma umaTurma) {...}

void listaProfessores() {...}

void listaDisciplinas() {...}

void listaTurmas() {...}

}

Page 22: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Departamento (2/2)class Departamento {

...// inclui uma turma no departamentoboolean incluiTurma (Turma turma) {

if (qtdTurmas < MAX_TURMAS) {turmas[qtdTurmas] = turma;qtdTurmas++;return true;

}return false;

}

// lista as turmas ofertadas pelo departamentovoid listaTurmas() {

for(int i=0; i<qtdTurmas; i++) {System.out.println(turmas[i]);

}}

}

Page 23: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Class Departamento:Características do Código

�Substituição de Números Mágicos por constantesstatic final int MAX_TURMAS = 300;

�Possível inclusão de turma cuja disciplina não pertence ao departamento

Page 24: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Curso (1/2)public class Curso {String nome; // nome do Cursoint creditosParaConclusao; // créditos para conclusãostatic final int MAX_ALUNOS = 300;// tamanho máximo do arrayprivate Aluno alunos[]; // alunos matriculadosint qtdAlunos; // quantidade de alunos no arrayCurso(String nome, int creditos) {this.nome = nome;this.creditosParaConclusao = creditos;this.alunos = new Aluno[MAX_ALUNOS];this.qtdAlunos = 0;

}void listaConcluintes() {...} // lista os concluintespublic String toString() { // informações sobre o cursoreturn "Curso: "+ nome + " | "+

"Créditos: "+ creditosParaConclusao + " | "+"Qtd Alunos: "+ qtdAlunos + "|";

}// testa criação de cursospublic static void main(String[] args) {...}

}

Page 25: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Curso (2/2)public class Curso {

..// testa criação de cursospublic static void main(String[] args) {

Curso curso1 = new Curso("Bach. Informática", 360);

Curso curso2 = new Curso("Ph.D. Informática", 48);

Curso curso3 = new Curso("M.Sc. Informatica", 36);

System.out.println(curso1);

System.out.println(curso2);

System.out.println(curso3);}

}

Page 26: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Classe Curso:Características do Código

�Implementação do Método toString()�Método de teste para criação de alguns

objetos

Page 27: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Classe Universidadepublic class Universidade { ...

public static void main (String args[]) { ...

/* Criação de setor de pagamentos, eventos, departamento e curso */

/* Variáveis para armazenar professores, disciplinas, turmas */

/* Criando alguns professores */

/* Incluindo professores no departamento de Informática */

/* Criando algumas disciplinas */

/* Criando algumas turmas */

/* Incluindo disciplinas no departamento de informática */

/* Alocando professores a disciplinas */

/* Criando alunos */

/* Matriculando os alunos em turmas */

/* Emite relatório do Departamento */d

/* Movimento do setor financeiro */

}

}

Page 28: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Exercícios� Acompanhe a execução do método main da classe Universidade. Observe

como ocorre a criação de objetos das várias classes: Departamento, SetorEventos, SetorPagamento, Curso, Disciplina, Professor, Turma, Aluno, AlunoGrad, AlunoIC

� Esboce um grafo dos objetos que são criados durante a execução de main� Acompanhe a execução das rotinas de cálculo da folha� Confrontando a implementação com os requisitos do sistema, percebe-se

que existem várias falhas conceituais na implementação. Algumas destas falhas estão listadas no slide a seguir. Proponha soluções para elas. Tente identificar outras.

� O código apresenta algumas deficiências de lógica de programação, ou esquemas de codificação que tornam o sistema mais susceptível a falhas (menos robusto). Algumas destas deficiências estão listadas em um slide à frente. Proponha soluções para estas. Tente identificar outras deficiências.

Page 29: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Implementação versus Requisitos

� Departamento permite que se inclua uma Turma cuja Disciplina nãopertença ao conjunto de disciplinas que ele agrega

� Um Professor pode ministrar Disciplinas que não pertençam ao seuDepartamento

� Alunos podem se inscrevem em Turmas cuja Disciplina não são do seu Curso

Page 30: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Java Deployment Course - Exercício #1. Copyright © 1999, 1995. Jorge H. C. Fernandes. Todos os Direitos Reservados.

Codificação Frágil

� Alguns métodos de inclusão de professor e turma falham silenciosamente quando se ultrapassa o limite do array utilizado.

� Existem alguns números mágicos que não estão documentados� O limite no tamanho dos arrays é um requisito do sistema, ou um

esquema de codificação frágil?� Não existe teste de duplicidade na inserção de alunos, professores,

turmas, disciplinas, etc

Page 31: Sistema Universidade Exercício de Fixação #1 Java ...jhcf/MyBooks/itjava/slides/... · Java Deployment Course Exercício de Fixação #1 Sistema Universidade Jorge H. C. Fernandes

Fim