quarta-feira, 6 de março de 2013

Engenharia de Software: Aula 1 - Introdução à Engenharia de Software

1. Defina Engenharia de Software?

“O uso de princípios de engenharia para a construção de software economicamente viável e que funcione eficientemente em máquinas reais.”

"a aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção do software; isto é, a aplicação da engenharia ao software."

É o uso de métodos, ferramentas e uma abordagem sistemática com o objetivo de desenvolver softwares com eficiência. Para isso, são adotados princípios da engenharia.

2. Vídeo Introdutório de Engenharia de Software:

http://www.youtube.com/watch?v=utujCSeBnUI

3. Quais são os membros de uma equipe de desenvolvimento?

Analista de Requisitos: Mantém contato com o cliente e visa definir quais os objetivos que o cliente deve atingir com o software e assim criar os requisitos de que o software necessita. Transforma os requisitos em documento (artefato).

Projetista: Trabalha junto com o analista para descrever, em nível de sistema, como o mesmo pode cumprir os requisitos.

Programador: Uma vez descrito o sistema, trabalham com o projetista visando a melhor maneira de se obter linhas de código para o programa.

Testadores: Trabalham para descobrir os defeitos do código que os progrmadores não encontraram e testar se o programa atende a todos os requisitos estabelecidos no processo de análise.

Instrutores: Treinam os usuários quanto ao uso do programa.

Equipe de Manutenção: Corrige os erros do programa depois que o mesmo foi aceito pelo cliente e, caso os requisitos do mesmo mudem, também cuidam da alteração dos mesmos.

4. Cliente, Usuário e Desenvolvedor:

Cliente: Quem compra e quem paga

Usuário: Quem usa o programa

Desenvolvedor: Quem constrói o programa

quinta-feira, 25 de outubro de 2012

Aula 8 - Processadores

Máquina IAS (Máquina de Von Neumann):

http://arquiteturacomp.blogspot.com.br/2009/03/ias-1952-von-neumann.html

Modelo de Programação


MODELO DE PROGRAMAÇÃO
ETAPA ESCOPO
Percepção do Problema Algoritmos
Escrita do Algoritmo
Programação em Linguagem de Alto nível Técnicas de Programação
Compilação do Programa (geração em linguagem de máquina)
Carga do Programa na Memória Arquitetura de Computadores
Execução do Programa


segunda-feira, 8 de outubro de 2012

Revisão do Fórum de Arquitetura V


 “Pirâmide Hierárquica de Memórias (PHM)”, que mostra uma hierarquia das memórias utilizadas em um computador:
 phm
Lembre-se que os comentários feitos no texto (sobre a relação entre velocidade e capacidade de armazenamento) se referem, basicamente ao conceito designado na PHM.
1- Os REGISTRADORES, são pequenas unidades de armazenamento temporário que ficam dentro do processador. Servem para auxiliar a ULA nas operações a serem realizadas (operações lógicas, aritméticas, deslocamentos de dados, etc.)
2 - Quanto à memória CACHE, ela é volátil, ou seja, na ausência de energização, ela perde todas as suas informações. A cache serve para minimizar a disparidade existente entre a velocidade com que o processador trabalha e a velocidade nos acessos à memória principal. Existem 3 níveis de memória cache:
Cache L1 - Uma pequena porção de memória estática presente dentro do processador. Em alguns tipos de processador ela é dividida, uma parte para dados, outra para instruções (essa arquitetura de divisão é chamada de Arquitetura de Harward).
Cache L2 - Contém muito mais memória que o cache L1. Ela é mais um caminho para que a informação requisitada não tenha que ser procurada na lenta memória principal. Alguns processadores colocam essa cache fora do processador, por questões econômicas, pois uma cache grande implica num custo grande.
Cache L3 - Hoje em dia não é muito utilizada, exceto em algumas arquiteturas de servidores. É chamada de cache externo e está presente na placa-mãe como uma memória de cache adicional.
3 –Abaixo da memória cache vem a MEMÓRIA PRINCIPAL. A memória principal também é considerada volátil. Ela é constituída pela memória RAM (Random Access Memory). Esta memória é carregada quando o computador está ligado e armazena uma cópia das instruções e dados que compõem os programas em execução e que já estavam gravados no HD. Como a MP é volátil, ela ajuda o processador armazenando dados dos programas em execução, mas quando o computador é desligado ela é descarregada.
Existe uma pequena parcela de memória principal que é não volátil, ou seja, permanece com instruções e dados, mesmo quando o computador está desligado. Essa pequena parte de MP é chamada de memória ROM (Read Only Memory), e armazena os programas próprios para a inicialização do sistema (POST, BIOS e SETUP). A memória ROM é onde é feita a primeira busca do processador assim que o computador é ligado.
4 – Na parte de baixo da pirâmide existem as MEMÓRIAS SECUNDÁRIAS. Ela são não voláteis ou seja, continuam armazenando dados mesmo isentas de energização. Por exemplo: HD, pendrive, CDROM, disquete, etc.
A memória virtual acontece quando parte do HD (memória secundária) é utilizado como uma extensão da memória principal (ou memória RAM). Evidentemente esse processo torna o computador mais lento pois as memórias secundárias são as de mais lento acesso pelo processador.

Para calcular o tempo médio de acesso a uma memória, temos a seguinte fórmula:
 Ta = (Th x Ph) + (Tm x Pm).
 Ta – é o tempo médio e acesso do processador às informações que constam na memória; esse é o tempo que queremos calcular. Para tornar mais simples, vamos adotar que seja a memória cache. Mas poderia ser qualquer outro nível...!
 Th – é o tempo de acesso em caso de acerto na busca da informação. Seria um cache hit; ou seja, quando uma informação está (com certeza) neste nível de memória, este é o tempo exato que ela leva para ser acessada.
 Ph – é a probabilidade de ocorrer um caso de cache hit. A probabilidade de que a informação esteja nesse nível de memória.
 Tm – é o tempo de acesso caso ocorra um cache miss. Portanto, lembrando que em casos de cache miss, a informação deve ser buscada na memória principal (um nível abaixo), sempre que algum exercício fornecer uma informação de tempo com relação à busca de informações “um nível abaixo” de memória, sabemos que houve um caso de falha na busca da informação e foi necessário buscá-la em outro nível. Por exemplo: houve um cache miss e que foi necessário buscar a informação na MP.
 Pm – é a probabilidade de que a informação não esteja disponível no nível desejado. Por exemplo: probabilidade de que um cache miss ocorra.
“Em um sistema de memórias de dois níveis, para se conseguir uma média de acessos de 5 ns, considerando o tempo de acesso do primeiro nível de 3ns e do segundo nível de 10 ns, qual deve ser a taxa de acerto no primeiro nível?”
Phi * hit + (1- Phit) * Pm = Ta
phit * 3 + 10ns  - phit * 10 = 5ns
3phit -10phit = 5ns - 10ns
-7phit = -5ns
-7phit = -5ns/-7 = 0,71
“Em um sistema com memória de dois níveis, o tempo de acesso ao primeiro nível é de 2ns e o tempo de acesso ao segundo nível é de 10ns. Considerando que a taxa de acerto no primeiro nível é de 95%, o tempo de acesso médio é de:”
Ta = (Th * Ph) + ( Tm * Pm)
Ta = 2ns * 0,95 + 10ns * 0,05
Ta = 1,90ns  + 0,5ns
Ta = 2,4 ns


quinta-feira, 27 de setembro de 2012

Lógica Matemática - Aula 4 - Inferências e Equivalências Notáveis



3

6

4
1

7

5
2

P
è  
Q
^
R
è  
¬
Q
ð   
R
è  
¬
P
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1