24 de novembro de 2009

CMMI

Introdução

Hoje em dia, com a intensa demanda de softwares nas mais variadas áreas do mercado, muitos softwares têm sido desenvolvidos para atender essa demanda. Mas, muitos deles não são produzidos segundo uma norma, uma vez que seus desenvolvedores estão focados somente em satisfazer as necessidades inicias de seus clientes, negligenciando assim alguns aspectos de manutenção e durabilidade do software. Gerando então preocupações consideráveis quanto à qualidade desses produtos.

Para resolver este problema, foram criados os Modelos de Qualidade de Software cujo objetivo principal é garantir a qualidade do produto através da definição e normatização de processos de desenvolvimento. Os modelos mais conhecidos atualmente são: ISO, CMM, CMMI.

O CMMI (Capability Maturity Model Integration), desenvolvido pelo SEI (Sofware

Engineering Institute), é uma evolução do CMM (Capability Model Integration) que tenta suprir problemas de integração deste.

Para atender aos diversos setores da indústria de software, o SEI divulgou diversos documentos derivados do CMM. Mas, essa diversidade gerou problemas de integração e custo de treinamento, já que cada modelo possui características específicas. Com intuito de unificar os modelos baseados no CMM, o SEI desenvolveu o CMMI.

Será apresentado neste trabalho o Modelo de Qualidade CMMI, sua definição, bem como suas características e seus objetivos. Serão esplanadas também as representações do CMMI: continua e em estágios, algumas empresas brasileiras que possuem qualificações CMMI, e por fim, serão feitas as considerações finais sobre o assunto.

Definição

O CMMI é um modelo de referência que contém práticas: Genéricas ou Específicas necessárias à maturidade em disciplinas específicas. Desenvolvido pelo SEI (Software Engineering Institute) da Universidade Carnegie Mellon, o CMMI é uma evolução do CMM e procura estabelecer um modelo único para o processo de melhoria corporativo, integrando diferentes modelos e disciplinas.

Características

Como seus antecessores, o CMMI não define como o processo deve ser implementado, mas prescreve suas características estruturais e semânticas em termos de objetivos e de grau de qualidade com que o trabalho deve ser realizado.

O CMMI constitui tanto um modelo de capacidade como um modelo de maturidade. O modelo dentro de uma empresa pode ser alcançado em etapas consecutivas, representando a idéia de maturidade ou também de maneira contínua, onde é mensurada a capacidade em práticas individuais.

Quando uma organização atinge um nível de maturidade, considera-se que seus processos alcançaram uma determinada capacidade, ou seja, têm mecanismos que garantem a repetição sucessiva de bons resultados futuros relacionados principalmente à qualidade, custos e prazos.

É de grande importância conhecer os processos definidos da organização para que possam se reconhecer os pontos fortes e pontos em que possa haver melhorias e assim seguir alguns passos genéricos para a implementação de CMMI:


  • Iniciar o compromisso organizacional para se estabelecer um ambiente propício ao ciclo de melhoria;

  • Diagnosticar os pontos fortes e as oportunidades de melhoria utilizando um método de avaliação;

  • Estabelecer um plano de ação;

  • Implementar o plano de ação e controlar seu progresso, tomando atitudes corretivas necessárias de maneira oportuna. Uma forma de controlar o estado de institucionalização do processo é mediante processos de auto-avaliação ou uma nova avaliação;

  • Propagar a institucionalização na organização revisando problemas ou lições aprendidas no caminho, preparando-se para o próximo ciclo.

Objetivos do CMMI

Redução do custo da implementação de melhoria de processo multidisciplinar baseada em modelo por meio de:


  • Eliminação de inconsistências, redução de duplicidades

  • Melhoria da clareza e entendimento

  • Utilização de terminologia comum e estilo consistente

  • Estabelecimento de regras de construção uniformes

  • Manutenção de componentes comum

  • Consistência com a futura norma ISSO/ IEC 15504

  • Sensibilidade às implicações dos esforços legados

Para que esses objetivos sejam alcançados é necessário que a empresa tenha um foco, um objetivo a ser alcançado, onde a partir daí um avaliador capacitado faz todas as entrevistas e avaliações possíveis para com isso dar um retorno a empresa lhe indicando o seu nível de maturidade e pontos a serem melhorados para que a empresa possa se desenvolver.

Representações do CMMI

O CMMI contém duas representações: contínua e por estágios. Elas permitem à organização utilizar diferentes caminhos para a melhoria de acordo com seu interesse.

A contínua permite que uma organização selecione uma área (ou um grupo de áreas) de processo e melhore os processos relacionados. Ela usa níveis de capacidade para caracterizar melhorias relativas a uma área de processo individual.

A estagiada usa conjuntos pré-definidos de áreas de processo (KPA's) para definir um caminho para uma organização, caracterizado por níveis de maturidade. Cada nível contém um conjunto de áreas de processo que caracterizam diferentes comportamentos organizacionais, correspondendo à capacidade da empresa de realizar projetos grandes e complexos.

Representação Continua

Na representação contínua, o enfoque ou componentes principais são as áreas de processo. Existem metas e práticas de dois tipos: específicas a uma determinada área de processo e genéricas aplicáveis indistintamente a todas as áreas de processo. A partir da avaliação e do atendimento dessas práticas e metas é possível classificar o nível de capacidade de cada área de processo, em níveis de zero a cinco:

Nível 0 - Incompleto: Quando um processo é parcialmente realizado ou não realizado. Um ou mais objetivos específicos do processo não estão satisfeitos.

Nível 1 - Realizado: Quando um processo realizado satisfaz todos os objetivos específicos da área de processo e produz algum trabalho.

Nível 2 - Gerenciado: Quando um processo de capacidade nível dois é um processo realizado (nível um) que também é planejado e executado de acordo com políticas pré-definidas. Emprega pessoas hábeis com os recursos adequados para produzir saídas adequadas, envolve os stakeholders (“qualquer pessoa ou entidade que afeta ou é afetada pelas atividades de uma empresa”) principais e é monitorado, controlado, revisto e avaliado quanto à aderência à sua descrição. A gerência do processo é relacionada com a realização de objetivos específicos estabelecidos para o processo, como custo, cronograma e qualidade.

Nível 3 - Definido: Quando um processo definido é um processo gerenciado e ajustado para o conjunto padrão de processos da organização de acordo com suas políticas de conduta. Esse conjunto é estabelecido e melhorado com o tempo e descreve os elementos fundamentais de processos que são esperados nos processos definidos.

Nível 4 - Gerenciado quantitativamente: um processo neste nível é definido e controlado com a ajuda de técnicas quantitativas e estatísticas. A qualidade e o desempenho do processo são compreendidos em termos estatísticos e são geridos durante sua vida. Objetivos quantitativos para qualidade e desempenho de processos são estabelecidos e usados como critério na gerência do processo.

Nível 5 - Otimizado: um processo otimizado é gerenciado quantitativamente, alterado e adaptado para atender aos objetivos de negócio atuais e projetados.

Vantagens da representação contínua

  • Maior flexibilidade para focar em áreas de processo específicas de acordo com as metas e objetivos de negócio;

  • Estrutura familiar para os que migram da comunidade de engenharia de sistemas.

Representação por estágios

A representação em estágios oferece uma abordagem estruturada e sistemática para a melhoria de um estágio por vez. Atingir um estágio significa que uma estrutura de processo adequada foi estabelecida como base para o próximo estágio.

As áreas de processo são organizadas por níveis de maturidade (1 a 5), que definem o caminho de melhoria que uma organização deve seguir do nível inicial ao nível otimizado. Dentro de cada nível, existem áreas de processo que contêm metas, características comuns e práticas.

Na representação em níveis, as práticas são caracterizadas pelos atributos: compromisso para execução (práticas que garantem que o processo seja estabelecido e apoiado); habilidade para execução (práticas que criam condições para que o processo seja estabelecido completamente) e atividade para execução (práticas que implementam diretamente o processo); controle e verificação de implementação. A transição entre os níveis resulta em melhorias incrementais e duradouras.

Os estágios de maturidade são:

Nível 1 - Inicial: Neste nível em geral, as organizações desse nível têm processos imprevisíveis que são pobremente controlados e reativos. Nesse nível de maturidade os processos são normalmente “ad hoc” (“para um fim específico”) e caóticos. A Organização geralmente não fornece um ambiente estável. Neste nível não há KPA's.

Nível 2 – Gerenciado: No nível de maturidade dois os projetos da organização têm a garantia de que os requisitos são gerenciados, planejados, executados, medidos e controlados. Quando essas práticas são adequadas, os projetos são executados e controlados de acordo com o planejado. O foco, neste nível, é o gerenciamento básico de projetos e tem as seguintes KPA's desse nível são: gerenciamento de requisitos; planejamento do projeto; controle e monitoração do projeto; gerenciamento de suprimentos; avaliação e análise; garantia da qualidade do processo; configuração do gerenciamento.

Nível 3 – Definido: No nível de maturidade três, em que todos os objetivos específicos e genéricos atribuídos para os níveis de maturidade dois e três foram alcançados, os processos são mais bem caracterizados e entendidos e são descritos em padrões, procedimentos, ferramentas e métodos. O foco neste nível é a padronização do processo, tendo como KPA's: requisitos de desenvolvimento; soluções técnicas; integração de produtos; verificação; validação; foco no processo organizacional; definição do processo organizacional; treinamento organizacional; gerenciamento de projeto integrado; gerenciamento de riscos; integração da equipe de trabalho; gerenciamento integrado de suprimentos; análise de decisões; ambiente organizacional para integração.

Nível 4 - Quantitativamente Gerenciado: No nível de maturidade quatro, em que os objetivos específicos atribuídos para os níveis de maturidade 2, 3 e 4 e os objetivos genéricos atribuídos para os níveis de maturidade 2 e 3 foram alcançados, os processos são medidos e controlados. O foco neste nível é o gerenciamento quantitativo e possui as seguintes KPA's: performance organizacional do processo; gerenciamento quantitativo de projetos.

Nível 5 – Otimizado: No nível de maturidade cinco, o mais alto nível de maturidade CMMI, uma organização atingiu todos os objetivos específicos atribuídos para os níveis de maturidade 2, 3, 4 e 5, e os objetivos genéricos atribuídos para os níveis de maturidade 2 e 3. Os processos são continuamente aperfeiçoados, e baseados em um entendimento quantitativo em que a variação de um processo existe devido às interações, normais e presumidas, entre os componentes desse processo. Esse nível de maturidade tem como objetivo a melhoria contínua do processo. As KPA's desse nível são: inovação organizacional e análise de causas e resoluções.

Vantagens da representação por estágios

  • Fornece um mapa para implementação:

  • Grupos de áreas de processos

  • Seqüência da implementação

  • Estrutura familiar para os que migram do SW-CMM.

Considerações Finais

A utilização de metodologias em desenvolvimento de software como o CMMI é de grande importância no desenvolvimento das organizações para torná-las mais competitivas no mercado de trabalho obtendo melhorias nos seus processos assim fazendo com que alcancem a qualidade necessária de seus produtos e melhores resultados em seus negócios com cumprimento de prazos.

Para garantir essa qualidade e que seus processos estejam sendo executados de maneira correta é necessária uma avaliação contínua dos processos da organização, verificando assim se a organização está em desenvolvimento ou até mesmo em outro nível, mas para isso é exigido um número de avaliações por um período de tempo.

Referências Bibliográficas

[1] Ministério da Ciência e Tecnologia Secretaria de Política de Informática Qualificação CMM e CMMI no Brasil:
www.mct.gov.br/upd_blob/0009/9238.pdf
Acessado em 26/10/09.
[2] Comércio Eletrônico: Uma Análise da Aplicabilidade de Modelos de Qualidade de Software:
www.lbd.dcc.ufmg.br:8080/colecoes/sbqs/2002/009.pdf
Acessado em 26/10/09.
[3] Uma visão geral do CMMI:
www.dromostg.com.br/CMMI.PDF
Acessado em 26/10/09.
[4] Análise de uma Organização de Software utilizando o Modelo CMMI/SEI v1.0:
www2.dem.inpe.br/ijar/Qualidade%20de%20Software/PDFs/CMMI-Artigo.pdf
Acessado em 26/10/09.
[5] Gerência de Risco em Processos de Qualidade de Software: uma Análise Comparativa:
www.sbc.org.br/bibliotecadigital/download.php?paper=235
Acessado em 26/10/09.
[6] Departamento de Produção POLI O novo modelo CMMI
www.spinsp.org.br/apresentacao/new_cmmi.pdf
Acessado em 26/10/09.
[7] ISO/IEC 15504:
www.cin.ufpe.br/~processos/TAES3/slides-2006.2/ISO15504_V02.ppt
Acessado em 26/10/09.
[8] CMM - Dificuldades de implantação do modelo; sua aplicação no setor financeiro:
www.mbis.pucsp.br/monografias/Monografia_-_Mauro_Dias.pdf
Acessado em 26/10/09.
[9] ISD Brasil:
www.isdbrasil.com.br/default.asp
Acessado em 26/10/09.
[10] Wikipedia Capability Maturity Model Integration:
en.wikipedia.org/wiki/CMMI
Acessado em 26/10/09.
[11] Expandindo o Agile para se adequar ao CMMI Nível 3:
msdn.microsoft.com/pt-br/library/cc517970.aspx
Acessado em 26/10/09.

12 de novembro de 2009

Banco de Dados I - 10

Normalização

Exercício X:



Primeiro



Segundo



ps. Não sei se está correto, não entendi quase nada do era para fazer... ^^

Banco de Dados I - 09

Banco de Dados III

Exercício IX:

Utilizando os dois exercícios feitos na Aula 8, passar do modelo conceitual para o modelo lógico relacional, conforme o exemplo da aula da Vídeo Locadora.

Resolução em breve. :P

3 de novembro de 2009

Função "CAPS" do YouTube ™ by Negão.

Clique na imagem para ampliá-la

23 de outubro de 2009

Banco de Dados I - 08

Banco de Dados I
Banco de Dados II

Exercício VIII:

1) Uma Empresa possui funcionários. Um funcionário trabalha em uma Empresa.



2) Os Atletas participam de competições. Em uma competição participam vários atletas.



3) Deseja-se fazer um banco de dados para uma rede de hotelaria. Um hotel possui quartos. Cada quarto pertence a apenas um hotel.



4) Um soldado, que possui as características nome, Registro Militar (RM), data de nascimento, possui armas. Uma arma, que possui as características de série, registro e calibre, é de um soldado. Uma arma é limpa por vários soldados. Um soldado limpa várias armas.



5) Um médico trata de pacientes. Do médico deseja-se saber CRM, nome e suas especializações. Um paciente, no qual há a necessidade de sabermos seu nome, endereço e idade, é tratado por vários médicos. Um paciente realiza vários tipos de exames. Um tipo de exame, destes há a necessidade de guardar seu número, data e descrição, é feito por vários paciente.



6) Construir um DER de uma Companhia de Seguros - Slide



7) Crie um Diagrama de ER com as seguintes informações:

Um cliente faz pedidos de produtos. Os produtos são fornecidos por produtores que se encontram em várias cidades do país.
Cada cliente nasceu e mora em uma Cidade. A empresa produtora tem funcionários que trabalham no período diurno e noturno.
Os clientes podem utilizar para pagamento cartões de crédito e cartão de débito como também boleto bancário.


Banco de Dados I - 07

Banco de Dados - Introdução

Exercício VII:

1.O que é um SGBD?

Sistema Gerenciador de Banco de Dados é um conjunto de dados que se associam a um conjunto de programas para acesso a esses dados, ou seja, o SGBD proporciona um ambiente tanto conveniente quanto eficiente para a recuperação e armazenamento das informações do banco de dados, além de prover compartilhamento e segurança das mesmas.

2.Cite 3 vantagens de um SGBD?

Consistência de dados e independência de dados;
Facilitam a proteção contra a perda de dados, através de recursos de backup;
Promovem a adoção de padrões para toda a empresa.

3.Quais as principais funções e responsabilidades de um DBA?

O DBA (Database Administrator) é responsável pelo acesso à base de dados, coordenar e monitorar o uso da base de dados, por problemas, tais como, quebra de segurança ou baixo desempenho, ou seja, é o administrador maior da base de dados.

4.Defina: Processamento de Consultas, Administração de Armazenamento de dados e Implementação física do sistema.

- Processamento de Consultas é composto por: Compilador DML - traduz os comandos de baixo nível (DML); Pré-compilador para comandos DML - pré-compilam os comandos DML;

Componentes para o tratamento de consultas - executam as instruções geradas por esse compilador DML.

- Administração de Armazenamento de dados é composto por: Gerenciamento de autorizações e integridade - gerencia as autorizações dos usuários e a integridade dos dados;

Gerenciamento de transações - gerencia as transações garantindo que o banco de dados permaneça em estado constante a despeito de falhas;

Administração de arquivos - administra os arquivos gerenciando a alocação de espaço no armazenamento em disco Administração de buffer, responsável pela intermediação de dados do disco para a memória principal e pela decisão de quais dados colocar em memória cache;

- Implementação física do sistema é composto por: Arquivo de dados - que armazena o próprio banco de dados;

Dicionário de dados - que armazena os meta-dados relativos à estrutura do banco de dados;

Índices - que proporcionam acesso rápido aos itens de dados que são associados a valores determinados;

Estatística de Dados - que armazenam informações estatísticas relativas aos dados contidos no banco de dados. Essas informações são usadas pelo processador de consultas para seleção de meios eficientes para execução de uma consulta.

22 de outubro de 2009

<span> ? </span> - 3


Será?

<span> ? </span> - 2


Optei?

19 de outubro de 2009

No Aula.

Hoje dia 19/10, não terá aula.
o.O'
Não sabemos o por que, mas, é um bom começo de semana, não acham? ^^

17 de outubro de 2009

III INIC Júnior / XIII INIC / IX EPG - FOTOS

Dalton

























Felipe Cardoso




















Felipe Cardoso


Trabalho Pre miado


O orgulho da nossa turma. ^^

15 de outubro de 2009

III INIC Júnior / XIII INIC / IX EPG






Dias 15 e 16 de outubro de 2009

14 de outubro de 2009

1° Maratona de Programação - UNIVAP

A maratona será hoje, 14/10/2009, quem ainda não se inscreveu, ainda da tempo:

http://www1.univap.br/alberto/maratona

7 de outubro de 2009

Notas!

Quando será que vão sair as notas??
Alguém tem a prova de sábado?
=p

30 de setembro de 2009

<span> ? </span> - 1


Sr.(a) [email]? o.O

29 de setembro de 2009

Semana de Provas!

TENSO!

24 de setembro de 2009

Engenharia de Software I - 03

Capítulo 4: Fase Requisitos de Software RS

Fase Requisitos de Software RS (SW I) - Download
Documento liberável DRS - Download

Banco de Dados I - 06

UML - Parte II

Exercício VI:

1 - Com suas palavras definam os 9 diagramas usados nas fases da UML:

Diagrama de use case: Descreve um cenário que mostra as funcionalidades do sistema do ponto de vista do usuário e tem o objetivo de auxiliar a comunicação entre os analistas e o cliente. O cliente deve ver no diagrama de Use Cases as principais funcionalidades de seu sistema.

Diagrama de classes: Tem como objetivo descrever os vários tipos de classes ou objetos no sistema e o relacionamento entre eles. Um diagrama de classes contém entidades e relacionamentos.

Diagrama de objeto: É uma variação do diagrama de classes e utiliza quase à mesma notação. O diagrama de objetos é como se fosse o perfil do sistema em certo momento de sua execução.

Diagrama de estado: Um diagrama de estado mostra os possíveis estados de um objeto e as transações responsáveis pelas suas mudanças de estado.
Diagrama de seqüência: Consiste em um diagrama que tem o objetivo de mostrar como as mensagens entre os objetos são trocadas no decorrer do tempo para a realização de uma operação.

Diagrama de colaboração: A grande diferença entre um diagrama de colaboração e um de seqüência consiste no fato de que o tempo não é mais representado por linhas verticais, mas sim através de uma numeração.

Diagrama de atividade: O objetivo do diagrama de atividades é mostrar o fluxo de atividades em um único processo. O diagrama mostra como uma atividade depende uma da outra.

Diagrama de componente: Os diagramas de componentes representam, de forma estática, aspectos físicos do sistema sendo modelado. Os diagramas mostram um conjunto de componentes e seus relacionamentos.

Diagrama de execução: Exibe a arquitetura física do hardware e do software no sistema. Pode mostrar os atuais computadores e periféricos, juntamente com as conexões que eles estabelecem entre si e pode mostrar também os tipos de conexões entre esses computadores e periféricos.

2 - Faça um Diagrama de Use-case e um Diagrama de Classes de um sistema a sua escolha.
( Não sei se estão certos!) :P

Diagrama de Use-case - Biblioteca



Diagrama de Classes - Biblioteca




Obs. Ninguém vai conseguir entregar na data certa: Data de entrega: quarta, 24 setembro 2008, 22:55... =/

22 de setembro de 2009

Programação III, PROVA ADIADA!

Olá a Todos!!!

Adiada prova de Programação III que seria realizada no dia 03 (Três) de Outubro.

Devido ao fato de alguns alunos do curso realizarem, no dia 03 (Três) e 04 (Quatro) de Outubro, a prova do ENEM (Exame Nacional do Ensino Médio) a prova de Programação III será adiada para o dia 10 (Dez) de Outubro. Porém, no dia 03 de Outubro haverá aula normal cujo assunto será a interligação do Visual Basic 6.0 com Banco de Dados (Introdução).

Atenciosamente
Felipe Antonio Cardoso
Representante da matéria de Programção III.

15 de setembro de 2009

TAD Sequência com Arranjo Circular

Implemente o TAD sequência baseado em um arranjo variável usado de forma circular de maneira que as inserções no início e no fim da sequência executem em tempo constante.

Classes:

Posição:

public class Posicao
{
// indice no vetor
private int indice;

// referencia para o elemento
private Object elemento;

// construtor
public Posicao(int indice, Object elemento)
{
this.indice = indice;
this.elemento = elemento;
}

// retorna indice
public int index()
{
return indice;
}

// retorna elemento
public Object element()
{
return elemento;
}
}

Interador:

public class Iterador
{
// armazena elementos
private Posicao[] elementos;

// controla posicao no array
private int pos;

// construtor
public Iterador(Posicao[] elementos)
{
this.elementos = elementos;
pos = 0;
}

// retorna objeto corrente do array
public Posicao object()
{
return elementos[pos];
}

// verifica se tem proximo elemento
public boolean hasNext()
{
if(pos == elementos.length)
return false;

return true;
}

// move para o proximo elemento
public Posicao nextObject()
{
if(hasNext())
return elementos[pos++];

return null;
}

// volta ao começo
public void reset()
{
pos = 0;
}
}

Sequência:

public class Sequencia
{
// no. max. de elementos
private final int MAX_ELEMENTOS = 100;

// array de posicoes
private Posicao[] sequencia;

// variaveis de controle
private int first;
private int last;
private int N;

// construtor
public Sequencia()
{
sequencia = new Posicao[MAX_ELEMENTOS];
first = 0;
last = 0;
N = MAX_ELEMENTOS;
}

// insere elemento na primeira posicao
public void insertFirst(Object o)
{
// calcula possivel indice
int pos = first - 1;

// verifica se menor que limite
if(pos < 0)
pos = N - 1; // circular

// verifica se sequencia esta cheia
if(pos == last)
{
aumentar();
// chama funcao novamente apos aumentar
insertFirst(o);
}
else
{
// cria nova posicao
Posicao posicao = new Posicao(pos, o);

// insere na posicao candidata
sequencia[pos] = posicao;
// atualiza indice da primeira posicao
first = pos;
}
}

// insere elemento na ultima posicao
public void insertLast(Object o)
{
// cria nova posicao
Posicao posicao = new Posicao(last, o);

// insere na ultima posicao
sequencia[last] = posicao;

int pos;

// atualiza indice da ultima posicao
pos = (last + 1) % N;

// verifica se sequencia esta cheia
if(pos == first)
aumentar();
else
last = pos; // atualiza indice da ultima posicao
}

// duplica tamanho da sequencia
public void aumentar()
{
// cria nova sequencia com dobro do tamanho
Posicao[] temp = new Posicao[2*sequencia.length];

// contadores auxiliares
int pos = first;
int i = 0;

// copia todos os elementos para nova sequencia
while(pos != last)
{
temp[i] = new Posicao(i, sequencia[pos].element());
i++;
pos = (pos + 1) % N;
}

// atualiza indices
first = 0;
last = i;
sequencia = temp;
N = sequencia.length;
}

public int size()
{
return (N - first + last) % N;
}

public Iterador elements()
{
// cria array de elementos a serem retornados
Posicao[] elementos = new Posicao[size()];

// contadores auxiliares
int pos = first;
int i = 0;

// copia todos os elementos para array de saida
while(pos != last)
{
elementos[i] = sequencia[pos];
i++;
pos = (pos + 1) % N;
}

// cria iterador auxiliar e passa elementos
Iterador iterador = new Iterador(elementos);

// retorna iterador
return iterador;
}

// insere elemento antes de posicao p
public void insertBefore(Posicao p, Object o)
{
// indice para ultima posicao (valor corrente)
int pos = last;

// desloca todos os elementos depois de p
do
{
sequencia[pos] = new Posicao(pos, sequencia[pos-1].element());
pos--;

// verifica limite inferior
if(pos < 0)
pos = N-1;
}
while(pos > p.index());

// insere novo elemento
sequencia[pos] = new Posicao(pos, o);

// atualiza indice para ultimo elemento
last = (last + 1) % N;

// verifica necessidade de crescimento
if(size() == N)
aumentar();
}

}

Testa Sequência:

public class SequenciaApp
{
public static void main(String args[])
{
Posicao p = null;
Iterador it;
Sequencia seq = new Sequencia();

seq.insertLast("Bola");
seq.insertLast("Caixa");
seq.insertLast("Chave");
seq.insertFirst("Lapis");

it = seq.elements();
while(it.hasNext())
{
p = it.nextObject();
System.out.println((String)p.element());
}

seq.insertBefore(p, "Controle Remoto");
System.out.println();

it = seq.elements();
while(it.hasNext())
{
p = it.nextObject();
System.out.println((String)p.element());
}
}
}

Banco de Dados I - 05

UML - Parte I

Exercício V:
Responder as perguntas abaixo:

1)Quais as fases do desenvolvimento de sistemas utilizados na UML? Explique-os.

2)A UML é composta por quais partes?

3) Quantas visões, diagramas e modelos de elementos são utilizados nas fases de análise de requisitos, análise e design?

4) Quais as visões que compõem um sistema? Explique 2 deles.

5)Quais são os diagramas utilizados pela UML? Explique 2 deles.
Possível Resolução

10 de setembro de 2009

Banco de Dados I - 04

Exercício IV-a:
Responda as questões abaixo:

1) Quem são os criadores do UML e quais metodologias cada um deles criou?

2) Quais os conceitos que Coad, Yourdon, Pressman apresentaram?

3) O que diz as metodologias de Booch, OMT, OOSE e Objectory?

4) Quais os principais objetivos da UML?

5) A UML pode ser utilizada por vários tipos de sistemas, quais são?

6) Utilizando a Internet, cite 4 softwares de mercado para modelagem de UML?
Possível Resolução

5 de setembro de 2009

Exercícios Programação III - 03 e 04

Execício 03 - Download

Crie um gráfico igual a figura abaixo, onde a equação da reta da linha verde é y=x*3 e a equação da reta da linha vermelha é y=x^2:



Execício 04 - Download

Calcular a equação do 2º grau e plotar o gráfico da função.

Banco de Dados I - 03

História dos Bancos de Dados
UML - Introdução


Exercício IV:
1) Quais as diferenças entre os Modelos de Banco de Dados Hierárquico, Redes, Relacional e OO ?

2) Olhando as regras de Codd, diga qual delas é a mais importante e por quê?

3) Olhando a História do Banco de Dados, o que podemos esperar para o futuro?

4) Quais os Bancos de Dados utilizados no Brasil e no Mundo. Colocar em ordem de utilização.
Possível Resolução

3 de setembro de 2009

Engenharia de Software I - Exercícios

Capítulo I

1 – A razão é que os sistemas estão cada vez mais complexos e o volume de dados cada vez maior e com freqüentes modificações, com isso dificultando a tomada de decisões através dos dados recolhidos sem um sistema para auxiliar e navegar entre esses dados.
2 - SUMIU! :(
3 – Programas de computador, procedimentos e documentação possivelmente associados e dados relativos ao funcionamento de um sistema computador.
4 - A aplicação de uma sistemática e disciplinada, quantificável para o desenvolvimento, operação e manutenção de software, ou seja, a aplicação da engenharia de software.
5 - Um padrão planejado e sistemático de todas as ações necessárias para fornecer confiança adequada ao software que está em conformidade com os requisitos técnicos estabelecidos. Um conjunto de atividades destinadas a avaliar o processo pelo qual os produtos são desenvolvidos ou fabricados.
6 - O conjunto completo de programas de computador, procedimentos e documentação possivelmente associados e dados designados para entrega a um usuário.
7 – Projeto é uma concepção mental ou idéia de um produto, geralmente representada por modelos. É a representação de um sistema de software criada para facilitar análise,
planejamento e tomada de decisão.
8 - Por Processo entende-se uma série de ações ou passos, planejados cuidadosamente, a serem seguidos pelos desenvolvedores de software, sistematizando, disciplinando e
permitindo gerenciar o desenvolvimento de sistemas computadorizados.
9 – Atividades Executivas são atividades executadas nas fases:
Fase Requisitos do Usuário – RU, Fase Requisitos de Software – RS, Fase Projeto Arquitetural – PA, Fase Projeto Detalhado e Produção – PD, Fase Transferência – TR, Fase Operações e Manutenção – OM.
10 – Atividades Gerenciais são atividades como:
Gerência de Projeto, Gerência de Configuração, Gerência de Verificação e Validação e Gerência de Qualidade.

Capítulo II

1 -
* Fase Requisitos Do Usuario - RU;
* Fase Requisitos Do Software - RS;
* Fase Projeto Arquitetural - PA;
* Fase Projeto Detalhado E Produção - PD;
* Fase Projeto Transferencia - TR;
* Fase Operações E Manutenção - OM;
2 -
* DRU - Documento Requisitos Do Usuário;
* DRS - Documento Requisitos Do Software;
* DRA - Documento Projeto Arquitetural;
* DPD - Documento Projeto Detalhado;
* MUS - Manual Do Usuário;
* DTR - Documento De Transferencia;
* DHP - Documento Historico Do Projeto
3 - Começa quando o DRU é liberado pelo usario para uma revisao formal e termina quando o produto é descartado.
4 - Começa na RS (definição dos requisitos de software) termina no PD (projeto detalhado)
5 - Para os usuários definirem o que eles desejam e para os desenvolvedores definirem o que eles entenderam que o usuário deseja.
6 - Uma abordagem em cascata é adequada quando existe um projeto simples com fases seqüencial, o que torna essa abordagem simplificada e popular, requisitos estáveis e de alta qualidade, a duração do projeto seja de no máximo 2 anos (ou 4000 horas) e permite retomar etapas para correção.
7 - Abordagem incremental é utilizada quando a liberação se faz necessário para estar acordado com os requisitos, fazer integração com sistema já existente ou parte do sistema e oferecer uma prévia que o software será suficiente para resolver o problema.
8 - Abordagem evolucionária é uma série de projetos menores, onde cada projeto aproveita a experiência da liberação anterior e deve ser usada quando requisitos do usuário são de difícil implementação, pois podem depender de tecnologias futuras ou não são totalmente conhecidos, alguns requisitos podem atrasar a liberação do software, portanto necessita um acompanhamento evolucionário para a integração.
9 - Abordagem em cascata é utilizada para o desenvolvimento de software em curto prazo, quando são necessárias apenas pequenas correções e aperfeiçoamento, essas que são feitas na fase de Operação e Manutenção (OP).
10 - A execução simultânea ocorre quando a elaboração do projeto está em andamento e novos requisitos de software são apresentados, resultando em um maior tempo de desenvolvimento e necessidade de uma nova elaboração do projeto. O recomendado para esse projeto seria abordado o Método Cascata com Liberação Incremental.

Capítulo III

1 – O responsável pelo RU é o próprio Usuário junto ao desenvolvedor, onde ele especifica o que o seu sistema deve fazer.
2 – É aceitável desde que o desenvolvedor faça esse documento junto com o usuário e com a aprovação do mesmo.
3 – Os tipos são: Capacidade, Define o que o software deve fazer; Restritivos, Coloca restrições de como o software deve ser construído e operado.
4- Os requisitos do usuário se estruturam da seguinte forma:
– Capturar os Requisitos do Usuário;
– Determinar o ambiente operacional;
– Especificar os Requisitos do Usuário;
– Escrever o Plano dos Testes de Aceitação;
– Escrever os planos para a fase Requisitos de Software;
– Rever os Requisitos do Usuário.
5 – a) O usuário deve ser capaz de gerar relatórios através do software, não o software por si só gerar um relatório.
b) A especificação em relação à boa interface com o usuário está muito genérica, irá depender do ambiente operacional do software.
c) Falhas não é um requisito de usuário, nenhum usuário irá pedir que seu software tenha uma média de falha em 3 horas.
d) Está correto.
e) Este argumento não é um requisito de usuário, é um requisito de software.
6- Cada requisito de usuário deve conter pelo menos as seguintes características: Identificador, Necessidade, Prioridade, Fonte e Estabilidade.
7 – As interfaces para sistemas externos devem estar descritas nas características de restrição no requisito de usuário.
8 – Um sistema com em média 700 requisitos é considerado um sistema de porte Médio enquanto deveria ser desenvolvido com até 20 pessoas.ano, com apenas 2 pessoas.ano pode ser desenvolvido um software de porte pequeno de até 100 requisitos.
9 – O objetivo é sempre mostrar a opção mais adequada para o usuário, mas se o mesmo insistir em utilizar a interface escolhida por ele, assim deve ser feito.
10 – Não se deve colocar especificações desse tipo em um documento de requisitos de usuário, deve ser colocado especificações com uma linguagem menos técnica.

Algoritmos e Estruturas de Dados I - Será?

interface estruturaLinear {
// verifica se a estrutura tem elementos
public boolean estaVazia();
// devolve a quantidade de elementos da estrutura
public int tamanho();
// insere um elemento no início da estrutura
public void inserir(Object p0);
// insere um elemento no fim da estrutura
public void inserirCauda(Object p0);
// remove um elemento do início da estrutura
public Object remover();
// remove um elemento do fim da estrutura
public Object removerCauda();
}

/****************/

public class ArrayCircularList implements estruturaLinear {
protected Object[] array;
protected int start,end,number;

public void pArrayList(int maxsize){
array = new Object[maxsize];
start = end = number = 0;
}
public boolean estaVazia(){
return number == 0;
}
public boolean isFull(){
return number >= array.length;
}
public int tamanho(){
return number;
}
public void inserir(Object o){
if(number < array.length){
array[start = (++start % array.length)] = o;
number++;
}
}
public void inserirCauda (Object o){
if(number < array.length){
array[end] = o;
end = (--end + array.length) % array.length;
number++;
}
}
public Object remover(){
if(estaVazia())
return null;
number--;
int i = start;
start = (--start + array.length) % array.length;
return array[i];
}
public Object removerCauda(){
if(estaVazia())
return null;
number--;
return array[end = (++end % array.length)];
}
}

31 de agosto de 2009

WAR?


28 de agosto de 2009

Algoritmos e Estruturas de Dados I - Aula 02

Apostila 03 : Vetores, Listas e Sequências - Download
Apostila 04 : Árvores - Download
Apostila 05 : Filas de Prioridade - Download

Atividades terça, 25 de agosto de 2009:

FIFO Ganho (ou Perda) de Capital

Quando um lote de ações de uma companhia é vendido, o ganho de capital (ou, às vezes, a perda) é a diferença entre o preço de venda do lote e o preço originalmente pago por ele. Essa regra é fácil de entender para um único lote, mas se vendermos múltiplos lotes comprados em tempos diferentes temos de identificar os lotes sendo vendidos. Um método usado para identificar que lotes são vendidos é usar uma estrutura que suporte o protocolo FIFO, na qual os lotes vendidos são aqueles que temos há mais tempo (este é o método usado em vários softwares de finanças pessoais). Por exemplo, suponha que compramos 100 lotes a $20 cada no dia 1, 20 lotes a $24 no dia 2, 200 lotes a $36 no dia 3 e vendemos 150 lotes no dia 4 a $30 cada. Aplicando o protocolo FIFO, significa que dos 150 lotes vendidos, 100 foram comprados no dia 1, 20 foram comprados no dia 2 e 30 foram comprados no dia 3. O ganho de capital neste caso seria 100.10+20.6+30.(-6), ou $940.

Escreva um programa que recebe como entrada uma sequência de transações da forma
  • compre x lotes a y cada
    ou
  • venda x lotes a y cada
assumindo que as transações ocorrem em dias consecutivos e que os valores x e y são inteiros. Dada esta sequência de entradas, a saída deve ser o ganho total (ou perda) de capital para a sequência completa, usando o protocolo FIFO para identificar os lotes.

Baixar Possível Resolução

Para baixar o JCreator clique aqui.

Banco de Dados I - 02

Engenharia da Informação
Engenharia da Informação - Leitura


Exercício I:
Pesquisa em Laboratório
Pesquise os Softwares de Banco de Dados atuais (no mínimo 8).
Nome:
Empresa:
Plataforma:
Duas empresas que utilizam:
Notícia atual:
% de Mercado:
Colocar a Bibliografia (Sites com data e hora de acesso)
Possível Resolução

Exercício II:
Considerando o assunto exposto, pesquise e responda:

1) O SI segundo o Suporte a Decisões é dividido em quais tipos? Explique-os e dê exemplos.
2) Quais as diferenças entre os SI: Pessoal, Gurpal ou Departamental, Organizacional e Interorganizacional.
3) Explique os SI Informatizados e Automatizados. Dê exemplos.
4) A Empresa que você trabalha tem quais tipos de Sistema de Informação? Explique suas escolhas.
Possível Resolução

Exercício III:
Imaginando que você é o Diretor de uma empresa dê sua opinião sobre estas frases abaixo (recebidas de seus subordinados):

1. Queixas:
a. “A construção de sistemas toma muito tempo e o custo é muito alto”.
b. “As dificuldades de manutenção são enormes”.
c. “Os administradores não conseguem obter as informações do computador quando são necessárias”.
d. “Os dados são redundantes e o acesso a estes é caótico”.
e. “Muitos programas são um emaranhado frágil de código”.
2. “A informática é uma ferramenta crítica na competição do mundo dos negócios, torna-se cada vez mais, fundamental desenvolver aplicações rapidamente e alterá-las também rapidamente”.
3. “É preciso construir, em pouco tempo, a um baixo custo, aplicações que são altamente complexas, de alta qualidade, e que atendam totalmente as necessidades dos usuários finais".
Possível Resolução

Engenharia de Software I - 02

Capítulo 3: Fase Requisitos do Usuário - RU

Fase Requisitos do Usuário - RU - Download
Documento Liberável DRU - Download

Post número 100!

Que venham mais outros 100! ^^

23 de agosto de 2009

Exercício da aula do dia 22/08/2009

Download do projeto aqui.

Exercício – Desenvolva uma interface que calcule a equação do segundo grau, onde seja possível entrar com os valores de "a", "b" e "c" via textbox. Neste mesmo programa desenvolva um programa que calcule o fatorial de um número. Este programa deve conter somente: 3 Textbox, 5 Labels, 1 command e 2 option ou 2 check:

Elementos:

Textbox 1 = "txtCoX2" - A ou - N
Textbox 2 = "txtCoX" - B
Textbox 3 = "txtConst" - C

Label 1 = "lbla" - A
Label 2 = "lblb" - B
Label 3 = "lblc" - C
Label 4 = "lblX1Val" - X1
Label 5 = "lblX2Val" X2

Command 1 = "cmdcalcular" - Calcular

Option 1 = "opt1" - Equação 2° Grau
Option 2 = "opt2" - Fatorial

Código:



Private Sub cmdcalcular_Click()
If opt2.Value = True Then
Dim valor, cont As Integer
Dim total As Double
total = 1
valor = Val(txtCoX2.Text)
If valor = 0 Then
MsgBox "Digite um valor valido", vbExclamation
Else
For cont = 1 To valor
total = total * cont
Next cont
lblX1Val.Caption = total

End If

Else

If opt1.Value = True Then
Dim A As Single
Dim B As Single
Dim C As Single
Dim Discriminante As Single
Dim X1 As Single
Dim X2 As Single
Dim n As Integer
Dim mensagem As String

A = Val(txtCoX2.Text)
B = Val(txtCoX.Text)
C = Val(txtConst.Text)

If A = 0 Then
MsgBox "O valor do coeficiente A não pode ser igual a zero.", vbCritical, mensagem
Exit Sub
End If

Discriminante = (B ^ 2 - 4 * A * C)

If Discriminante < 0 Then
lblX1Val = ""
lblX2Val = ""
MsgBox ("Esta equação não possui raizes reais !."), vbCritical, mensagem
Else
X1 = (-B + Sqr(Discriminante)) / (2 * A)
X2 = (-B - Sqr(Discriminante)) / (2 * A)
If Discriminante = 0 Then
lblX1Val = X1
lblX2Val = X1
MsgBox ("Esta equação possui duas raizes reais iguais."), vbInformation, mensagem
Else
lblX1Val = X1
lblX2Val = X2
MsgBox ("Esta equação possui duas raizes reais."), vbInformation, mensagem
End If
End If

End If
End If

End Sub


Private Sub opt1_Click()

txtCoX2.Text = ""
txtCoX.Text = ""
txtCoX.Visible = True
txtConst.Text = ""
txtConst.Visible = True
lblX1Val.Caption = ""
lblX2Val.Caption = ""
lbla.Caption = "A"
lblb.Visible = True
lblc.Visible = True
End Sub

Private Sub opt2_Click()

txtCoX2.Text = ""
txtCoX.Text = ""
txtCoX.Visible = False
txtConst.Text = ""
txtConst.Visible = False
lblX1Val.Caption = ""
lblX2Val.Caption = ""
lbla.Caption = "N"
lblb.Visible = False
lblc.Visible = False
End Sub

Private Sub txtConst_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then
txtConst.Text = Left(txtConst.Text, (Len(txtConst.Text) - 1))
SendKeys "{END}"
End If
If KeyAscii < 43 Or KeyAscii > 57 Or KeyAscii = 47 Or KeyAscii = 44 Then KeyAscii = 0
End Sub

Private Sub txtCoX_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then
txtCoX.Text = Left(txtCoX.Text, (Len(txtCoX.Text) - 1))
SendKeys "{END}"
End If
If KeyAscii < 43 Or KeyAscii > 57 Or KeyAscii = 47 Or KeyAscii = 44 Then KeyAscii = 0
End Sub

Private Sub txtCoX2_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then
txtCoX2.Text = Left(txtCoX2.Text, (Len(txtCoX2.Text) - 1))
SendKeys "{END}"
End If
If KeyAscii < 43 Or KeyAscii > 57 Or KeyAscii = 47 Or KeyAscii = 44 Then KeyAscii = 0
End Sub

19 de agosto de 2009

Como resolver o Cubo de Rubik Facilmente!

=]

Programação III no Moodle

Link: http://200.144.97.11/~moodle/course/view.php?id=271

Camisetas do Curso Versão 2.0

Escolha o modelo e informe o seu tamanho:

Modelo 02.01:
Modelo 02.02:
Modelo 02.03:

(Clique na imagem para ampliar!)

Horário II

17 de agosto de 2009

Engenharia de Software I - 01

Downloads:

O Processo, o Projeto e o Produto - Download
Ciclo de Vida de Software - CVS - Download

Banco de Dados I - 01

Downloads:

Sistema de Informação - Download
Classificação (SI) - Download

Aula 01 - Programação III

Download da aula clique aqui.

Exercício 1 – Crie um formulário com três campos texto, um botão e dois labels, crie uma
função que calcule a equação do segundo grau e mostre os resultados nos labels:


Private Sub cmdResolver_Click()

A = Val(txtCoX2.Text)
B = Val(txtCoX.Text)
C = Val(txtConst.Text)

If A = 0 Then
MsgBox "O valor do coeficiente A não pode ser igual a zero.", vbCritical, mensagem
Exit Sub
End If

cmdNovoCalculo.Enabled = True

Discriminante = (B ^ 2 - 4 * A * C)

If Discriminante < 0 Then
lblX1Val = ""
lblX2Val = ""
MsgBox ("Esta equação não possui raizes reais !."), vbCritical, mensagem
Else
X1 = (-B + Sqr(Discriminante)) / (2 * A)
X2 = (-B - Sqr(Discriminante)) / (2 * A)
If Discriminante = 0 Then
lblX1Val = X1
lblX2Val = X1
MsgBox ("Esta equação possui duas raizes reais iguais."), vbInformation, mensagem
Else
lblX1Val = X1
lblX2Val = X2
MsgBox ("Esta equação possui duas raizes reais."), vbInformation, mensagem
End If
End If

End Sub

Divirta-se

12 de agosto de 2009

Projeto II - Grupos e Fases

Fase 1: XML:
Marcos
André
Dimas

Fase 2: Visualização de Dados:
João Paulo
Fernando
Ricardo

Fase 3: Imagens:
Felipe
Felipe Cardoso
Diogo

Fase 4: Integração:
Leandro
Dalton
Alberto

Fase 5: Documentação:
Todos

\o/ ¬o/

Algoritmos e Estruturas de Dados I - Aula 01

Apostila 01 : Análise de Algoritmos - Download
Apostila 02 : Pilhas, Filas e Deques - Download

5 de agosto de 2009

Programação III

Link da página do currso:

http://www1.univap.br/valdirgp/ProgramacaoIII/index.html

4 de agosto de 2009

Solzinho!

Pequena é melhor...

3 de agosto de 2009

Volta as aulas...

Como já era esperado:

Comunicado à Comunidade da UniVap


No próximo dia 03 de agosto, reiniciam-se nossas atividades
acadêmicas. As mesmas seguirão o cronograma previamente
estabelecido pela Univap... Para ler mais clique aqui.

20 de julho de 2009

Voltaremos em Agosto! :p

Título diz tudo!

p.s: Alguém já está com saudades?

26 de junho de 2009

Descobri o autor da pergunta!

Fui hoje na faculdade, para ver a nota de Ciência do Ambiente, o professor ainda não tinha corrigido as provas quando cheguei lá, sendo que o dia do exame é hoje, como saberemos se ficamos de exame ou não sem antes saber a nota? Boa pergunta não?

Pois bem, não é esse o assunto do post, descobri que o autor da 11° pergunta da prova de Ciência do Ambiente foi o nosso grande coordenador o Valdir! O.o
Éééé o professor de ciência do ambiente disse: "Ele (Valdir) falou para dar essa pergunta que o pessoal ia gostar..." e ainda deu uma risadinha! ¬¬'

AHSAushASAshASHUAhsuAhsasahsaahushuahasas

Sacanagem isso!
Eu não gostei da pergunta!

Quem acha que ele inventou essa pergunta??

24 de junho de 2009

Resumo da Reunião

Não tem resumo!
Não tivemos tempo para perguntar a nossa super pergunta.
¬¬'
Eles juraram que marcando uma reunião com todas as pessoas dos dois cursos essa reunião iria durar só 40 minutos.
Jamais!

ps. A parte do RUI "m" foi vacilo...

21 de junho de 2009

E fica a pergunta: "Qual a nova denominação da área de trabalho?"

A pergunta que não quer calar!

Gente nem procurando no google eu achei a resposta para tal pergunta, então, se não tem no google pode esquecer, né?
Terça teremos a grande reunião e podemos usar isso como argumento "nem no google tem", ta certo que nínguem vai pegar DP nessa matéria... Isso por que podia apagar, senão o negão pegava DP. huashuahusuahsuhahushuas

Mas eu queria realmente saber, então quem conseguir descobrir, por favor, nos digaaaaaaaa!!!

Boa sorte prá quem pego exame! ^^

19 de junho de 2009

Perguntas e Respostas [Ciência do Ambiente] (2)

1- Como você conceituaria uma sociedade sustentável do ponto de vista ambiental?
R: Atende as necessidades atuais de uma população em relação a alimentos, água e ar limpos, abrigo e outros recursos básicos sem comprometer a capacidade de gerações futuras atenderem as suas necessidades.
2- O que você entende por sustentabilidade ambiental?
R: É a capacidade dos diversos sistemas da Terra de se adaptarem as condições ambientais em mudança.
3- Como as atividades humanas degradam o capital natural?
R: Ao usar recursos renováveis mais rápido do que a natureza consegue renová-los, ex: ar, água e solo.
4- O que você entende por crescimento econômico e desenvolvimento econômico?
R: Crescimento: É o aumento da capacidade de um país em fornecer bens e serviços a sua população.
Desenvolvimento: É a melhoria dos padrões de vida da população proporcionado pelo crescimento econômico.
5- O que é degradação ambiental?
R: É quando excedemos a taxa de reposição natural de um recurso, ex: erosão, desmatamento.
6- O que você entende por capital natural da Terra?
R: São todos os recursos e serviços naturais que mantém a nossa e outras espécies.
7- Explique o significa da expressão “tragédia dos recursos públicos”.
R: É a má utilização dos recursos renováveis que estão livres a todos, ou seja, a utilização excessiva dos recursos, fazendo com que a natureza não consiga repor esses recursos.
8- Quais as conseqüências do crescimento exponencial das atividades humanas, par com os recursos naturais?
R: O consumo de combustível fóssil e o desmatamento mudam o clima da Terra, podendo arruinar algumas áreas agrícolas, modificar as reservas hídricas, alterar e reduzir a biodiversidade e influenciar a economia de diversas partes do mundo.
9- O que você entende por renda biológica e qual a relação desta com a sustentabilidade?
R: São os recursos naturais da Terra que beneficia a todos os seres, esses recursos sustentam a vida e a economia do planeta, sendo assim o caminho para a sustentabilidade e viver com a renda sem comprometer o capital natural.
10- Explique de forma sintética os mecanismos ou ações em que os indivíduos fazem a diferença para o alcance da sustentabilidade?
R: Para alcançar a sustentabilidade alguns indivíduos trabalham juntos para resolver um problema, outros encontram formas de criar materiais com recursos alternativos, outros atuam cobrando e persuadindo autoridades eleitas a acabar com o desmatamento.
11- Faça um breve relato sobre a história dos dois reis e o jogo de xadrez e qual sua relação com a população mundial?
R: O foco desta história é exemplificar de forma simples o crescimento exponencial que começa a devagar e em poucas repetições se torna um número gigantesco. Este mesmo crescimento acontece com a população mundial que cresce cada vez mais rápido, que demorou várias décadas pra chegar à população atual e que agora demora poucos anos para dobrar.
12- Do ponto de vista dos recursos naturais o que você entende por produção sustentável?
R: É uma produção que poupa ao máximo a utilização dos recursos naturais, sem reduzir seu suprimento disponível.
13- O crescimento econômico sempre resulta em desenvolvimento econômico?
R: Não, pois nem toda a população é beneficiada pelo crescimento da economia.

18 de junho de 2009

Semana de Provas...

Vamos estudar galera...

Falando nisso, você sabia...

* ... Que a identidade secreta do Dr. Abobrinha é Pompeu Pompilho Pomposo?
* ... Que raios e trovões?
* ... Que o Dr. Vitor está chegando?
* ... Que "porque sim" não é resposta?
* ... Que assobiou a Caipora chegou?
* ... Que eu assistia CRTB?

16 de junho de 2009

Estatística

3 coisas para se lembrar antes da prova:

μ = ∑ (x . P(xi))
δ² = ∑ (x² . P(xi))- μ²
δ = √ δ ²

e ^ -u . u ^ k / k!

P(x = k) = nCk . p ^ k . q ^ n - k
nCk = n! / K! (n-k)!

11 de junho de 2009

Eletricidade Aplicada

Resumo da matéria by Diogo!

Clique AQUI para baixar.

;)

4 de junho de 2009

História de hoje: A Fita!? - Ainda não acredito!

Lista Complementar - Estatística

Para fazer o download CLIQUE AQUI.

Para descontrair...

Você sabia que:

* ...Que o carbono foi preso em uma cadeia alicíclica?
* ...Que quando o Carbono foi preso ele disse que tinha direito a 4 ligações???
* ...Que 12 átomos de Carbono e uns 20 de Hidrogênio foram à igreja?
* ...e Que os átomos anteriores estavam se benzeno??
* ...Que você não entendeu a piada??
* ...Que quem escreveu isso foi um cara muito inteligente???

29 de maio de 2009

XNA Creators Club Online

27 de maio de 2009

Programação II

Atividades quarta, 20 de maio de 2009:

1 - Implemente a hierarquia Forma apresentada na figura abaixo:










Cada FormaBidimensional deverá conter um método getArea para calcular a área da forma bi-dimensional. Cada FormaTridimensional deverá ter métodos getArea e getVolume para calcular a área e o volume da superfície tri-dimensional. Crie um programa que usa um array do tipo Forma para referenciar objetos de cada classe concreta da hierarquia. O programa deve imprimir um texto descritivo para cada objeto ao qual cada elemento do array se refere. Além disso, no loop que processa todas as formas no array, determine quando cada forma é uma FormaBidimensional ou uma FormaTridimensional. Se for bi-dimensional, imprima a área. Se for tri-dimensional, imprima a área e o volume.

Baixar Possível Resolução

Para baixar o JCreator clique aqui.

25 de maio de 2009

Provas Anteriores de Estatística (2)

Prova Estatística 01 - Baixar
Prova Estatística 02 - Baixar
Prova Estatística 03 - Baixar
Prova Estatística 04 - Baixar

Baixar Todos

Hoje é o dia dos nerds, geeks e da toalha ! \o/

Eu me considero um geek, mas vamos ver o que a wikipedia diz : Geek é uma expressão idiomática da língua inglesa, uma “gíria” que define pessoas peculiares ou excêntricas obcecadas com tecnologia, eletrônica, jogos eletrônicos ou de tabuleiro etc.

Em português, a tradução mas comum é “cromo”.

Um Nerd possui inteligência e capacidade mental natos, acima da media. É sociável, mas muito tímidos para popularidade.

Um Geek pode ser tão inteligente quanto um Nerd, porem, em alguns casos, essa é uma condição adquirida, pois a paixão pelo conhecimento e a avidez pela aprendizagem fazem com que geeks tornem-se especialistas em suas respectivas áreas tecnológicas. Muitos geeks preferem utilizar seus conhecimentos em benefício próprio, pois, geralmente, são muito populares em seus núcleos sociais e por serem exímios articuladores políticos, dominam muitos assuntos para jamais serem excluídos de uma boa conversa, pois adoram um debate erudito.

Veja se você também é um :

Características

*Na escola costuma(va) sentar-se nas cadeiras centrais e adora(va) corrigir seus professores e colegas;
*Adora computadores e, freqüentemente, são capazes de programá-los;
*Gosta de jogos de computador;
*Gosta de tudo relacionado à alta tecnologia e gadget;
*Gosta de ficção científica/fantasia em filmes, livros e jogos;
*São consumidores potenciais de tecnologia e tudo o que for relacionado, e está antenado aos últimos lançamentos;
*Internauta de carteirinha, passa maior parte do tempo em frente ao computador navegando na internet;
*Tem sede de conhecimento, e quanto mais conhecimento adquire, mais deseja conhecer.
*Gosta de leitura, na maioria das vezes se interessa por assuntos que a maioria não tem interesse ou desconhece o assunto;
*Encontra soluções fáceis para as coisas, por ser uma pessoa que sempre está pensando de forma acelerada;
*Tem o pensamento a frente das demais pessoas.




Nerd

Nerd é um termo que descreve, de forma estereotipada, muitas vezes com conotação depreciativa, uma pessoa que exerce intensas atividades intelectuais, que são consideradas inadequadas para a sua idade, em detrimento de outras atividades mais populares. Por essa razão, um nerd é muitas vezes excluído de atividades físicas e considerado um solitário pelos seus pares. Pode descrever uma pessoa que tenha dificuldades de integração social e seja atrapalhada, mas que nutre grande fascínio por conhecimento ou tecnologia.

Em português, a tradução mas comum é “cromo”.

É comum confundi-los com os nerds. Entretanto, existe uma diferença entre nerds e "CDF"s: enquanto no primeiro grupo encaixam-se os naturalmente interessados em algum assunto cultural (jogos, livros, filmes …), podendo não ir bem na escola; o segundo costuma referir-se a jovens em idade ginasial que nem sempre têm a escola como ponto central de suas vidas, mas despendem um bom tempo aos estudos, resultando em algumas características como obtenção de notas altas, questionamento sobre veracidade da informação passada, mas ainda podem manter-se comunicativos e sociáveis.




Sub-grupos

Há muitos ‘sub-grupos’ de nerds. Dentre eles, destacam-se:

*Geeks, aqueles cujo interesse volta-se especialmente para a tecnologia, ciência e informática;
*Gamers, os jogadores compulsivos de video games;
*Cards Gamers, os jogadores compulsivos de Cards Games (Yu-Gi-Oh, Magic, Pokemon);
*RPGistas, os jogadores de Role playing games (RPG), normalmente sobre temas medievais;
*Fanbase ou Fandom, um grupo caracterizado por ser fã de uma obra, ou conjunto de obras específicas como:
*Lord of the Rings Fans, do universo de O Senhor dos Anéis;
*Star Wars Fans, do universo de Star Wars;
*Trekkers ou Trekkies, do universo de Star Trek;
*Babylon V’ers, de Babylon V
*eXcers, de Arquivo X;
*Battlestar Galactica
*Trekdom
*Stargate
*Otakus, aficionados por animes, mangás e cultura japonesa;
*Anime music video
*Fanboy
*Fan fiction
*Fanon (fiction)
*Fanposter



Se quiser saber mais acesse :

http://pt.wikipedia.org/wiki/Nerd

http://pt.wikipedia.org/wiki/Geek



Dia do Orgulho Nerd, ou Dia do Orgulho Geek, ou ainda Dia da Toalha. Calma, não precisa entrar em pânico, eu vou explicar tudo. A primeira nomenclatura começou a ser adotada a partir de 2006 na Espanha, quando 300 malucos resolveram se juntar para comemorar sua nerdice fazendo um Pac Man humano no Día del Orgullo Friki. Este dia não foi escolhido por acaso, é o mesmo dia da estreia de Star Wars nos Estados Unidos em 1977, mas existe um motivo ainda mais importante, o Dia da Toalha.

O dia 25 de maio é conhecido como o Dia da Toalha em homenagem a Douglas Adams, um dos maiores escritores de ficção científica da história das galáxias, que infelizmente deixou nosso planeta em 2001. Em sua saga de livros O Guia do Mochileiro das Galáxias, Douglas Adams avisa que você pode esquecer de tudo, menos da sua toalha. Ela é o item essencial, porque sem ela você não vai conseguir sobreviver quando a Terra for finalmente destruída por alienígenas

“A toalha é um dos objetos mais úteis para um mochileiro interestelar. Em parte devido a seu valor prático: você pode usar a toalha como agasalho quando atravessar as frias luas de Beta de Jagla; pode deitar-se sobre ela nas reluzentes praias de areia marmórea de Santragino V, respirando os inebriantes vapores marítimos; você pode dormir debaixo dela sob as estrelas que brilham avermelhadas no mundo desértico de Kakrafoon;

Pode usá-la como vela para descer numa minijangada as águas lentas do rio Moth;

Pode umedecê-la e utilizá-la para lutar em combate corpo a corpo; enrolá-la em torno da cabeça para proteger-se de emanações tóxicas ou para evitar o olhar da Terrível Besta Voraz de Traal (um animal estonteantemente burro, que acha que, se você não pode vê-lo, ele também não pode ver você – estúpido feito uma anta, mas muito, muito voraz);

Você pode agitar a toalha em situações de emergência para pedir socorro;

E naturalmente pode usá-la para enxugar-se com ela se ainda estiver razoavelmente limpa.

Porém o mais importante é o imenso valor psicológico da toalha. Por algum motivo, quando um estrito (isto é, um não-mochileiro) descobre que um mochileiro tem uma toalha, ele automaticamente conclui que ele tem também escova de dentes, esponja, sabonete, lata de biscoitos, garrafinha de aguardente, bússola, mapa, barbante, repelente, capa de chuva, traje espacial, etc., etc.

Além disso, o estrito terá prazer em emprestar ao mochileiro qualquer um desses objetos, ou muitos outros, que o mochileiro por acaso tenha “acidentalmente perdido”. O que o estrito vai pensar é que, se um sujeito é capaz de rodar por toda a Galáxia, acampar, pedir carona, lutar contra terríveis obstáculos, dar a volta por cima e ainda assim saber onde está sua toalha, esse sujeito claramente merece respeito.”

Blog: Corrente do Conhecimento

21 de maio de 2009

Projeto I

O que deve ser feito na Atividade 6:

Abrir o arquivo original;
Abrir o arquivo novo;
Ler o cabeçalho do arquivo original;
Ler os números do arquivo original e ao mesmo tempo ir gravando os números no arquivo novo de acordo com as opções de Negativo ou de Alargamento de Contraste, cada uma dessas opções possuem um fórmula específica;

Exemplo do laço para ler e gravar:

//Depois que leu o cabeçalho:

do{
fscanf(arquivooriginal,"%s",&gravar);
numero = atof(gravar);

if feof(arquivooriginal) break;

if(opcao = = 1) fprintf(arquivonovo, "%.0f ",255-numero);
if(opcao = = 2) fprintf(arquivonovo, "%.0f ",255/6.4 * log(numero+128));

}while (!feof(arquivooriginal));

Obs. Opção 1 é para o Negativo e Opção 2 é para o Alargamento de Contraste.

Acho que isso já ajuda, visto que nos posts já tem as funções para abrir o arquivo original, abrir o arquivo novo,ler o cabeçlho e fechar os arquivos abertos.

Só lembrando para abrir os arquivos:

//Original - abrir um arquivo que já existe para a leitura
if ((arquivooriginal = fopen("C:/tc/BIN/clown.pgm", "rt"))== NULL)
{
fprintf(stderr, "Erro ao abrir o arquivo.\n");
return 1;
}

//Novo - abrir um arquivo que já existe e se não existir ele cria o arquivo

arquivonovo = fopen("C:/tc/BIN/clownNOVO.pgm", "wt");

Lista de Espera!

Já acabaram as vagas para o Google Developer Day 2009, agora só na lista de espera... :/

20 de maio de 2009

Google Developer Day 2009!


O Google Developer Day 2009 vai romper as barreiras dos aplicativos para a web. Nossos engenheiros e especialistas vão oferecer a você um dia repleto de sessões inesquecíveis sobre as últimas tecnologias do Google.
Desenvolvedores brilhantes estarão reunidos para trocar idéias. Venha conhecer outros profissionais, debater informações e compartilhar suas últimas descobertas e realizações.
Sessões Paralelas
Conheça em primeira mão com os engenheiros que estão na vanguarda do desenvolvimento de aplicativos para a web, as novas funcionalidades e os avanços das ferramentas e tecnologias do Google. As sessões serão divididas por assunto de interesse.

A pedido do Fernando postei aqui sobre o Google Developer Day 2009, é bem interessante, vi a agenda e parece que será bem legal mesmo e o melhor: "O Google Developer Day é gratuito e as vagas são limitadas, por isso, pedimos que preencha este formulário de inscrição e, assim que possível, enviaremos uma resposta sobre a disponibilidade para sua participação."
Contudo, como está escrito as vagas são limitadas e teremos que ver se iremos mesmo ou não o quanto antes!
Vamos reunir a galera e discutir esse assunto...
\o/

18 de maio de 2009

Comunicado: Código aberto

O termo código aberto, ou open source em inglês, foi criado pela OSI (Open Source Initiative) e se refere ao mesmo software também chamado de software livre, ou seja, aquele que respeita as quatro liberdades definidas pela Free Software Foundation. Qualquer licença de software livre é também uma licença de código aberto, a diferença entre os dois está no discurso. Enquanto a FSF usa o termo "Software Livre" para trazer um discurso baseado em questões éticas, direitos e liberdade, a OSI usa o termo "Código Aberto" para discursar sobre um ponto de vista puramente técnico, sem conflitar questões éticas. Esta nomenclatura e discurso foram forjados por Eric Raymond e outros fundadores da OSI para apresentar o software livre a empresas de uma forma mais agradável a visão das corporações.

Comunicado IMPORTANTE:
Galera da sala em especial, apesar de que eu concordo com o código aberto e com o software livre, apartir de agora postarei no blog conforme o professor deu a idéia, só um pequeno esboço dos programas, algumas funções, alguns laços, etc. Isso também ajudará o pessoal, porém, vai ser um pouco mais difícil. ;p
Venho lembrar que isso é só para as atividades cujo a data de entrega é superior a data de postagem aqui no blog, sendo assim, atividades que já passaram do prazo de entrega postarei normalmente.
"A lógica continua sendo incontestável!"

Abraços

13 de maio de 2009

Programação II

Atividades quarta, 13 de maio de 2009:

1 - Escreva uma hierarquia de herança para as classes Quadrilátero, Trapezóide, Paralelograma, Retângulo e Quadrado. Use Quadrilátero como a superclasse da hierarquia (com o maior número de níveis possível). Especifique as variáveis de instância e os métodos para cada classe. As variáveis de instância privadas do Quadrilátero devem ser os pares de coordenadas x-y dos quatro cantos do Quadrilátero. Crie a classe Ponto para representar cada par de coordenadas. Escreva um programa qua instancia objetos de suas classes e imprime a área de cada objeto (exceto o Quadrilátero).

Obs: Pesquise na Internet sobre as características de cada figura geométrica e implemente o método para cálculo de área somente na classe Trapezóide. Esse método deve ser reutilizado através de herança nas demais classes derivadas de Trapezóide.

Baixar Possível Resolução

Para baixar o JCreator clique aqui.

12 de maio de 2009

Ta muito quieto isso aqui!

Ninguém vai atualizar não?? ^^

6 de maio de 2009

Programação II

Atividades quarta, 6 de maio de 2009:

1 - Escreva um tipo enum Semáforo, cujas constantes (VERMELHO, VERDE, AMARELO) têm um parâmetro que indica a duração da luz. Escreva um programa para testar o enum Semáforo de maneira que ele mostre as constantes e suas durações.

Baixar Possível Resolução

Para baixar o JCreator clique aqui.

Só lembrando!

...
public boolean getNegaoVaiPagarACocaEFalarComAMina(float nota)
{
this.nota = nota;
if(this.nota ! = 8.5)
return true;
else
return false;
}
...