Você está na página 1de 4

1) Cite 3 fatores internos e 3 fatores externos de qualidade de software.

Para cada um deles, mencione a forma e a ocasio em que esses fatores sero percebidos. Fatores internos de software so os no perceptveis aos usurios e os fatores externos so os perceptveis aos usurios. Fatores Internos: Modularidade (organizao do cdigo agrupadas por suas abstraes coerentes) Legibilidade (cdigo fcil de ser entendido) Continuidade (cdigo de fcil manuteno e incluso de novas funoes) Fatores Externos: Correco (O sistema possibilitar executar o que esperado dele Ex:Um editor de texto edita textos) Usabilidade (Software fcil de usar e com uma pequena curva de aprendizagem) Eficincia (bom uso dos recursos computacionais e que funcione bem em diferentes tipos de computadores e dispositivos) 2) Em relao s regras de modularidade, caracterize:

Mapeamento Direto: As classes refletem o mundo que voc pretende refletir. Voc deve construir a estrutura do software, o mais prximo possvel da do mundo real. Poucas Interfaces: Devem ser visualizadas apenas pelo que preciso, e o que for mostrado deve ser o mnimo possvel. A grande quantidade de interfaces dificulta a leitura do cdigo. Interfaces Pequenas: Cada interface deve fazer somente o que proposto a ela fazer Interfaces Explicitas: O nome das interfaces devem ser nomes que refletem ao que elas fazem ou so. Ocultamento da Informao: A classe ou mtodo deve somente mostrar o que necessrio para o usurio

3) Qual a importncia do princpio das unidades lingusticas e o que um mdulo que obedece o princpio Aberto-Fechado? Unidades Modulares Lingusticas: As classes, mtodos e propriedades devem ter nomes que refletem o que eles so e o que se propem a fazer. Ex: O mtodo DarPartida(); da classe carro deve fazer o caro funcionar Aberto/Fechado: Aberta para novas implementaes, mas fechada para o que ela j faz | O jeito que ela funciona atualmente deve continuar apesar de novas mudanas.

4) Crie 3 classes que possuam baixa coeso e baixo acoplamento, da forma que lhe convier. possvel melhorar essas classes em relao a estes conceitos? Justifique e demostre.

class Pessoa { public public public { if { int NrCPF; int NrCNPJ; void Pessoa(int NrCPF, int NrCNPJ) (NrCNPJ == null) this.NrCPF = NrCPF;

} else { } } }

this.NrCNPJ = this.NrCNPJ;

class funcionario : Pessoa { public void funcionario(string NM_PESSOA, int NrCPF, int NrCNPJ) { this.NM_PESSOA = NM_PESSOA; if (NrCNPJ == null) { this.NrCPF = NrCPF; } else { this.NrCNPJ = this.NrCNPJ; } } public void ImprimirDados() { Console.WriteLine("Nome: "+ this.NM_PESSOA+" - CPF: "+this.NrCPF); } }

class Empresa : Pessoa

{ public void Empresa(string NM_PESSOA, int NrCPF, int NrCNPJ) { this.NM_PESSOA = NM_PESSOA; if (NrCNPJ == null) { this.NrCPF = NrCPF; } else { this.NrCNPJ = this.NrCNPJ; } } public void ImprimirDados() { Console.WriteLine("Nome: " + this.NM_PESSOA + " - CNPJ: " + this.NrCNPJ); } }

E possivel sim melhorar as clases em relao a estes conceitos bataria criar duas clases que erdo da classe pessoa que seriam PessoaFisica e PessoaJuridica e retirar o mtodo imprimir dados pois no atribuio de uma pessoa imprimir dados na tela do computador. 5) Crie um conjunto de classes, com 2 classes abstratas e 4 classes concretas onde cada uma dever ter um construtor e pelo menos um mtodo no herdado. Para este conjunto, pesquise a semntica das declaraes em Java, C#, e C++
C#:
abstract class Pessoa { public String NM_PESSOA; } abstract class PessoaFisica:Pessoa { protected int NrCPF; } abstract class PessoaJuridica:Pessoa { protected int NrCNPJ; } class funcionario : PessoaFisica { public void funcionario(string NM_PESSOA, int NrCPF) { this.NM_PESSOA = NM_PESSOA; this.NrCPF = NrCPF;

} } class Empresa : PessoaJuridica { public void funcionario(string NM_PESSOA, int NrCPF) { this.NM_PESSOA = NM_PESSOA; this.NrCNPJ = NrCNPJ; } }

Java:
public abstract class Pessoa { public String NM_PESSOA; } public abstract class PessoaFisica extends Pessoa { protected int NrCPF; } public abstract class PessoaJuridica extends Pessoa { protected int NrCNPJ; } public class funcionario extends PessoaFisica { public void funcionario(String NM_PESSOA, int NrCPF) { this.NM_PESSOA = NM_PESSOA; this.NrCPF = NrCPF; } } public class Empresa extends PessoaJuridica { public final void funcionario(String NM_PESSOA, int NrCPF) { this.NM_PESSOA = NM_PESSOA; this.NrCNPJ = NrCNPJ; } }

C++: