Escolar Documentos
Profissional Documentos
Cultura Documentos
7
ORGANIZAO DE COMPUTADORES ..........................................................................................................................................7
lgebra booleana .................................................................................................................................................................7
Sistemas de numerao e representao de dados...............................................................................................................8
Aritmtica computacional ....................................................................................................................................................8
Microprocessadores: Componentes .....................................................................................................................................8
Microprocessadores: Arquitetura ........................................................................................................................................9
Dispositivos perifricos ........................................................................................................................................................9
Conceitos de interrupes ..................................................................................................................................................10
Estruturas de endereamento .............................................................................................................................................10
Compiladores, Ligadores e Interpretadores.......................................................................................................................11
SISTEMAS OPERACIONAIS .......................................................................................................................................................12
Conceitos Bsicos...............................................................................................................................................................12
Gerenciamento de Processos .............................................................................................................................................13
Gerenciamento de Memria ...............................................................................................................................................13
Sistemas de Arquivos..........................................................................................................................................................15
Gerenciamento de Dispositivos ..........................................................................................................................................16
Concorrncia......................................................................................................................................................................17
Concorrncia: Deadlocks...................................................................................................................................................17
REDES DE COMPUTADORES .....................................................................................................................................................19
Comunicao de dados.......................................................................................................................................................19
Meios de transmisso .........................................................................................................................................................19
Redes locais e de longa distncia.......................................................................................................................................20
Topologias..........................................................................................................................................................................20
Servios de comunicao ...................................................................................................................................................21
Protocolos ..........................................................................................................................................................................22
Equipamentos .....................................................................................................................................................................22
Sistemas Distribudos .........................................................................................................................................................23
Segurana...........................................................................................................................................................................23
ARQUITETURA OSI DA ISO.....................................................................................................................................................24
Camada Fsica ...................................................................................................................................................................24
Camada de Enlace de Dados .............................................................................................................................................25
Camada de Rede.................................................................................................................................................................25
Camada de Transporte .......................................................................................................................................................26
Camada de Sesso..............................................................................................................................................................26
Camada de Apresentao...................................................................................................................................................26
Camada de Aplicao ........................................................................................................................................................26
TCP/IP....................................................................................................................................................................................26
Camadas do TCP/IP...........................................................................................................................................................27
Camada de Acesso Rede (ou Camada de Interface)........................................................................................................27
Camada Internet (ou Camada de Inter-Rede) ....................................................................................................................27
Camada de Transporte .......................................................................................................................................................28
Camada de Aplicao ........................................................................................................................................................28
Protocolo IP .......................................................................................................................................................................28
Protocolo TCP....................................................................................................................................................................28
Formato do Pacote IP ........................................................................................................................................................29
Classes de Endereos IP ....................................................................................................................................................29
Algoritmo de Transmisso de pacotes IP ...........................................................................................................................30
Algoritmo de Recepo de pacotes IP................................................................................................................................30
WINDOWS (2003/XP/2000/98)................................................................................................................................................31
Bibliotecas de ligaes dinmicas......................................................................................................................................31
Arquitetura Distribuda ......................................................................................................................................................32
MODELO CLIENTE SERVIDOR ..................................................................................................................................................32
2 camadas...........................................................................................................................................................................32
3 camadas...........................................................................................................................................................................32
N camadas ..........................................................................................................................................................................32
Chamadas remotas .............................................................................................................................................................32
Sincronismo e filas de mensagens ......................................................................................................................................33
CONCEITOS DE INTERNET ........................................................................................................................................................33
Domain Name Service/System (DNS).................................................................................................................................33
1
Default Gateway.................................................................................................................................................................33
Backbone ............................................................................................................................................................................34
Intranet ...............................................................................................................................................................................34
Extranet ..............................................................................................................................................................................35
Firewall ..............................................................................................................................................................................35
BANCO DE DADOS ........................................................................................................................................36
CONCEITOS .............................................................................................................................................................................36
Administrao de Dados ....................................................................................................................................................36
Sistemas Gerenciados de Bancos de Dados (SGBDs)........................................................................................................36
Linguagem de definio de dados e Linguagem de manipulao de dados.......................................................................38
Dicionrio de dados ...........................................................................................................................................................38
Arquitetura de banco de dados...........................................................................................................................................38
Bancos de dados relacionais ..............................................................................................................................................38
MODELAGEM DE DADOS .........................................................................................................................................................39
Modelo Entidade-Relacionamento .....................................................................................................................................39
Modelo Relacional .............................................................................................................................................................40
12 Regras de Codd .............................................................................................................................................................40
lgebra Relacional.............................................................................................................................................................41
NORMALIZAO .....................................................................................................................................................................41
Dependncia Funcional......................................................................................................................................................42
Primeira Forma Normal.....................................................................................................................................................42
Segunda Forma Normal .....................................................................................................................................................42
Terceira Forma Normal .....................................................................................................................................................43
Outras Formas Normais.....................................................................................................................................................43
AMBIENTE OPERACIONAL .......................................................................................................................................................43
Conceito de transao........................................................................................................................................................43
Concorrncia......................................................................................................................................................................43
Recuperao.......................................................................................................................................................................44
Segurana...........................................................................................................................................................................44
Independncia dos Dados...................................................................................................................................................44
Integridade .........................................................................................................................................................................45
Procedimentos (Stored Procedures) ..............................................................................................................................45
Vises (views).................................................................................................................................................................45
Gatilhos (Triggers) ........................................................................................................................................................45
ndices e otimizao de acesso...........................................................................................................................................45
BANCOS DE DADOS DISTRIBUDOS..........................................................................................................................................45
Caractersticas ...................................................................................................................................................................46
Fragmentao e Replicao...............................................................................................................................................46
BANCO DE DADOS DE OBJETOS ...............................................................................................................................................46
SQL (ANSI)............................................................................................................................................................................47
Principais instrues de manipulao de dados ................................................................................................................47
Uso do Join.........................................................................................................................................................................47
Subconsultas.......................................................................................................................................................................48
Elaborao de consultas SQL ............................................................................................................................................48
SOLUES DE SUPORTE DECISO .....................................................................................................50
CONCEITOS DE DATA WAREHOUSE E APLICAES .................................................................................................................50
Estruturas de armazenamento para Data Warehouse........................................................................................................51
Data Marts .........................................................................................................................................................................52
Metadados no ambiente de inteligncia de negcios. ........................................................................................................52
Ferramentas de front-end: principais recursos e aplicaes .............................................................................................52
Processo de construo de um Data Warehouse................................................................................................................53
OLAP (ON-LINE ANALYTICAL PROCESSING)..........................................................................................................................53
Arquiteturas OLAP.............................................................................................................................................................54
CONCEITOS DE MODELAGEM DIMENSIONAL ............................................................................................................................54
Desenho de modelos dimensionais a partir de modelos transacionais normalizados........................................................55
EIS - ENTERPRISE INFORMATION SYSTEM...............................................................................................................................56
ECM - ENTERPRISE CONTENT MANAGEMENT ........................................................................................................................56
DATA MINING .........................................................................................................................................................................57
ANLISE E PROJETO DE SISTEMAS .......................................................................................................58
2
Sistemas Computacionais
Organizao de Computadores
Um computador organizado basicamente pela UCP, pela Memria e os Dispositivos de Entrada e Sada.
A UCP ou CPU (Central Processing Unit) responsvel pelo processamento e execuo dos programas armazenados na
memria principal. Ela composta pela UAL (Unidade Aritmtica e Lgica) e a UC (Unidade de Controle), que busca, interpreta e controla as instrues e demais componentes do computador.
Registradores so dispositivos de armazenamento temporrio, localizados na UCP, extremamente rpidos, com capacidade
para apenas um dado (uma palavra). Est localizado no chip, e os seus dados so volteis.
lgebra booleana
Os circuitos lgicos so construdos a partir das portas lgicas, que implementam fisicamente as funes booleanas bsicas. A
representao padro destes trs blocos lgicos mostrada a seguir.
NOT
AND
OR
O operador unrio NOT representado como . O resultado desta operao sobre uma varivel a inverso ou negao do valor da varivel. Isto , se a A = 1 ento = 0 e vice-versa.
O operador AND representado pelo smbolo , como em A B. O resultado da aplicao deste operador sobre variveis booleanas igual a 1 somente se todas as variveis forem iguais a 1. Caso contrrio, o resultado 0. Esta operao conhecida como produto lgico.
O operador OR representado pelo smbolo +, como em A + B. O resultado da aplicao deste operador sobre variveis booleanas igual a 1 se pelo menos uma das variveis for igual a 1. Caso contrrio, o resultado 0. Esta operao conhecida como soma lgica.
Existem vrias leis descritas pela lgebra de Boole que so teis no tratamento das equaes lgicas:
Lei da identidade:
A+0=A
A 1 = A;
7
A+1=1
A 0 = 0;
Lei da inverso:
A+=1
A = 0;
Lei da comutatividade: A + B = B + A
Lei da associatividade:
Lei da distributividade: A (B + C) = (A B) + (A C) e
A B = B A;
A + (B + C) = (A + B) + C
A (B C) = (A B) C;
A + (B C) = (A + B) (A+ C).
Alm dessas leis existem dois teoremas conhecidos como Teoremas de De Morgan, cuja formulao :
Aritmtica computacional
As palavras de um computador so compostas por bits e podem representar nmeros armazenados na memria. Estes nmeros podem ter diferentes significados, como inteiros ou reais, serem positivos ou negativos:
Complementa Dois: Os computadores manipulam tanto nmeros positivos quanto nmeros negativos, que so representados em complemento a 2. Nesta conveno os nmeros que possuem 0s esquerda so considerados positivos e os nmeros com 1s esquerda so considerados negativos. O complemento a 2 obtido invertendo-se o nmero binrio e depois somando 1 a este valor.
Adio e Subtrao: Numa soma os bits so somados um a um da direita para a esquerda, com os carries sendo
passados para o prximo bit esquerda. A operao de subtrao usa a adio. O subtraendo simplesmente negado
antes de ser somado ao minuendo.
Multiplicao e Diviso: A multiplicao precisa apenas de dois passos principais: o teste do produto e o seu deslocamento. A diviso a operao recproca da multiplicao. Dentre as operaes aritmticas a que aparece menos
freqentemente nos cdigos dos programas.
Microprocessadores: Componentes
O processador (CPU) o componente vital de um sistema de computao, responsvel pela realizao das operaes de processamento (clculos, entre outros) e de controle durante a execuo de um programa.
O ciclo bsico de uma instruo : BUSCA -> DECODIFICO -> EXECUO. Outra diviso (para pipelines) : Busca
(fetch), Decodificao, Busca do Operando, Execuo e Armazenamento do resultado.
O seu principal componente a UC (Unidade de Controle). O processador conta tambm com uma Unidade Lgica e Aritmtica (ALU), sendo que a sua ao complementada pelo uso de registradores de processamento. E tambm possui um clock,
fundamental para gerar pulsos e manter uma freqncia constante.
O processador tambm possui trs barramentos: de endereo, de dados e de controle.
Alguns registradores importantes, que fazem parte da unidade de controle so: PC (Program Counter), IR (Instruction Register), MAR (Memory Address Register) e MBR (Memory Buffer Register).
As instrues executadas por um processador so as seguintes:
Operaes lgicas e aritmticas: somar, subtrair, multiplicar, dividir, and, or, xor, not,... ;
Note que o hardware e o software so logicamente equivalentes, ambos podem executar as mesmas funes.
A funo do processador executar programas armazenados na memria principal. Para isso ele conta tambm com uma
memria interna, os registradores. Revisando o passo a passo de execuo de um programa:
1.
2.
3.
4.
5.
6.
Microprocessadores: Arquitetura
No incio, mainframes, minicomputadores e microcomputadores possuam claras distines tcnicas, em relao quantidade
de memria, palavras de 32, 16 e 8 bits (respectivamente), etc. Mas no existe nenhuma diferena conceitual entre eles, hoje
em dia essa diferena ainda menor.
As arquiteturas de microprocessadores so classificadas pelo nmero e quantidade de instrues:
RISC (Reduced Instruction Set Computer): o conceito de processadores RISC foi levantado por John Cocke (da
IBM), em 1974. O seu argumento era que os processadores s utilizavam 20% das instrues, e quanto menos instrues o processador conseguisse interpretar, menor o nmero de transistores (e menor o seu custo). Reduzindo o
nmero de transistores e instrues a um mnimo possvel, o processador conseguiria executar mais tarefas em um
tempo menor. Exemplos so o MIPS, Power PC, Sparc e DEC Alpha.
CISC (Complex Instruction Set Computer): Em contraste com o RISC, os chips CISC possuem uma grande quantidade de instrues diferentes e complexas. Os programadores executam um nmero menor de instrues do processador, pois cada instruo realiza tarefas mais complexas. Isso reduz o tamanho do cdigo, diminuindo a necessidade de memria e armazenamento, e por conseguinte, diminuindo custos. Exemplos so os processadores da Intel.
Dispositivos perifricos
Em sistemas tais como microcomputadores e estaes de trabalho, as interfaces de E/S so ligadas ao processador atravs de
barramentos de endereo, dados e controle, de maneira semelhante conexo entre memria principal e processador. A organizao tpica de um computador incluindo o sub-sistema de E/S dado:
A comunicao entre a CPU e os perifricos feita normalmente atravs de uma controladora ou interface, o que permite o
CPU agir de maneira independente dos dispositivos, sem comunicao direta:
Polling: O programa checa o estado do perifrico manualmente. A CPU pode se manter ocupada at o trmino da
operao. Uma soluo checar de tempos em tempos, executando concorrentemente.
Interrupo: Ao terminar uma operao de E/S, uma interrupo gerada para o processador. Isso elimina a necessidade de esperar pelo trmino, e vrias operaes podem ocorrer simultaneamente, atravs de um vetor de interrup9
o. Quando a CPU interrompida, ela pra e transfere a execuo para um local fixo (rotina de servio) para tratar
a interrupo (diviso por zero, acesso invlido...)
Spooling: Vm de Simultaneneous peripheral operation on-line, e uma tcnica para aumentar a eficincia dos sistemas operacionais, base do sistema batch. Um exemplo a utilizao de impressoras.
Canais de DMA (Direct Memory Access): um recurso da placa me que permite que os dispositivos perifricos
(placa de vdeo ou som, disco rgido, CD-ROM) acessem diretamente a memria RAM, sem consumir poder de processamento da CPU (apenas no incio e no final da transferncia). Cada dispositivo pode ocupar apenas um canal.
Note que o processador no acessa a memria enquanto a controladora de DMA o faz (um s barramento), mas pode
usar a memria cache.
Conceitos de interrupes
Inicialmente, quando comeou-se a usar sistemas operacionais, um programa que estivesse sendo executado tomava o controle da mquina e s quando o programa encerrava que o controle era devolvido para o sistema operacional. Quando ocorria
algum problema (por exemplo, um erro no programa) no havia meios do sistema operacional retomar o controle da mquina,
exceto com o usurio derrubando o sistema e recarregando o sistema operacional. Ficou ento evidente a necessidade de haver um meio do sistema operacional poder retomar o controle da mquina, em situaes de exceo.
Tambm ocorreu que as UCP's ficaram mais rpidas e mais eficientes, porm os dispositivos perifricos de E/S compatveis
progrediram menos em velocidade (ou seja, ficaram comparativamente mais lentos).
A resposta a estes problemas foi a utilizao do mecanismo de INTERRUPES. Interrupes so modificaes no fluxo de
controle causadas por uma ao externa, geralmente relacionada a Entrada ou Sada. Uma interrupo um sinal de controle
enviado por um agente externo (um dispositivo) ao microprocessador, quando um determinado evento detectado. A interrupo um sinal de hardware.
Este mecanismo fora o processador a tratar o evento externo. A deteco de uma interrupo faz com que o processador
transfira o controle para uma rotina de tratamento de interrupo (interrupt handler). A rotina de tratamento de interrupes
faz o processador executar as seguintes aes:
1.
2.
3.
Algum evento gerado pela execuo de uma instruo, como uma diviso por zero, overflow, cdigo de operao invlido, tentativa de acesso a uma rea de memria protegida ou inexistente, etc
A um evento programado.
Estruturas de endereamento
Os processadores podem acessar a memria de vrios modos diferentes. A flexibilidade em seu acesso garante uma maior
facilidade e performance ao trabalhar com variveis, arrays, registros, ponteiros e outros dados.
10
Imediato: a instruo contm o prprio operando. Mais rpido, mas a faixa de valores menor.
Direto: instruo contm o endereo de memria com o operando. Ex: mov a, 25h (do incio da mem)
Indireto: instruo contm o endereo de memria com o apontador para o endereo com o operando. Mais lento.
Com registrador: instruo contm o registrador com o operando. Equivalente ao direto. Ex: mov ax, bx
Indexado: instruo contm o (registrador + ndice) que aponta para o endereo de memria com o operando.
Registrador-base: Instruo contm o (reg. base + deslocamento) que aponta para o endereo com o operando.
Com pilha: h um apontador de pilha, e utiliza-se instrues pop/push para obter o operando.
Compilador: traduz um programa escrito em uma linguagem de alto nvel em cdigo objeto. Esse cdigo objeto
ento ligado (linked) com os mdulos de biblioteca de outros programas, para produzir um executvel. O arquivo gerado pode ser ento executado por um carregador, que tambm possui a funo de resolver endereamentos e outras
tarefas que dependem do sistema operacional. Exemplo: C, C++, Pascal.
Interpretador: interpreta e executa um cdigo ao mesmo tempo. Ele no produz um arquivo executvel, pois a sua
sada depende do cdigo fonte e dos valores de entrada. Exemplo: BASIC.
11
Sistemas Operacionais
O sistema operacional responsvel por gerenciar todos os recursos de uma mquina, facilitando a inter-face entre o hardware e o software do computador. Esses recursos incluem o processador (pode ser mais de um), a memria, os dispositivos de
entrada e sada (impressora, monitor, teclado, etc), interfaces de rede, entre outros.
Esse gerenciamento de recursos de uma mquina uma tarefa complexa, que encapsulada pelo sistema. Imagine a tarefa de
alocar um programa na memria. preciso assegurar que h memria disponvel suficiente, e que o local (endereo) onde o
programa ser alocado pode ser utilizado. Alm disso, todas referncias ao programa devem apontar para este mesmo endereo, e quando ele terminar, esse espao deve ser liberado. Esta apenas uma das tarefas do sistema operacional (SO).
Seria impraticvel deixar a tarefa do gerenciamento de todos os recursos de um computador (principalmente o disco, processador e memria) aos programadores. Uma tarefa do sistema operacional fornecer uma interface amigvel para o programador, que pode utilizar funes de alto nvel, como "Abrir Arquivo" ou "Ler Disquete" ao invs de ser obrigado a lidar com as
interfaces complexas de discos rgidos ou unidades de disquetes.
Tanenbaum cita o exemplo de trs programas tentando imprimir as suas sadas simultaneamente a uma mesma impressora. O
resultado seria catico, pois as linhas de cada programa poderiam sair intercaladas em uma mesma folha. O SO evitaria este
cenrio, imprimindo a sada de cada programa em sua devida ordem.
Conceitos Bsicos
Como j explicado, o Sistema Operacional um programa que atua entre o usurio e o hardware do computador, e proporciona um ambiente para executar programas de forma conveniente e eficiente.
Em resumo, o SO um alocador de recursos e um programa de controle. A sua evoluo dada a seguir:
Sistema em batch: funcionava atravs da leitura
de cartes perfurados, e sua memria possua apenas o SO e um espao para o programa do usurio.
Sistemas multiprogramados: a introduo dos
discos permitiu que os jobs fossem escalonados pelo SO.
Vrios programas podiam residir na memria.
Sistemas de tempo compartilhado: permitiu a interao
de vrios usurios (multitarefa), adicionando o recurso de gerncia de memria e proteo. O PC faz parte desta categoria.
Sistemas paralelos ou multiprocessados: com o objetivo de aumentar o throughput, mais de um processador compartilham
o barramento, clock, memria, etc. Tambm h aumento da confiabilidade (tolerncia falhas). Um sistema multiprocessado
possui uma programao mais complexa (Fortemente Acoplado).
Sistemas de tempo real: sistemas crticos, onde o processamento deve ser feito dentro de um limite de tempo.
Sistemas distribudos: permitem que vrios computadores, que NO compartilham memria ou clock, se comuniquem atravs de uma rede para completar uma tarefa. Um sistema distribudo um conjunto de computadores que age como uma mquina nica (Fracamente Acoplado).
A arquitetura dos computadores e sistemas operacionais em geral pode ser classificada quanto sua histria:
12
Primeira Gerao: vlvulas e painis. Toda a programao era feita em cdigo absoluto.
Segunda Gerao: transistores. Computadores mais confiveis, os sistemas batch j podiam ser implementados, leitura de cartes e linguagens de programao como FORTRAN ou linguagens de montagem.
Terceira Gerao: as tcnicas de SPOOL, tempo compartilhado e multiprogramao foram implementadas. Vrios
terminais em uma mquina.
Quarta Gerao: circuitos integrados, surgindo a noo de computador pessoal. Tais mquinas passaram a se interconectar em rede, tiveram um grande aumento de seu poder de processamento e interatividade (user-friendly).
Quinta Gerao: comeando em 1991, foram implementados sistemas especialistas, multimdia e distribudos, a
simplificao e miniaturizao dos computadores. Os Pentiums da Intel se enquadram nessa categoria.
Prximas Geraes: especulam sobre os computadores qunticos, que sero a "sexta" gerao de computadores.
Gerenciamento de Processos
Um programa uma seqncia de instrues que descrevem a execuo de uma tarefa. Um processo um programa em
execuo. O estado de um processo consiste do programa, da prxima instruo a ser executada, os valores das variveis utilizadas, e o status dos dispositivos de entrada e sada.
Para guardar o estado de um processo, criado um vetor de estado, que armazena todas as partes mutveis do processo, ou
seja, todos citados acima, menos o programa, que imutvel (em boas prticas de programao).
Para evitar que um programa acesse a rea de outro, pode ser utilizado um registrador de base e outro de limite, com o espao
de endereamento lgico do programa em execuo. O prprio SO possui um mecanismo para se proteger de processos, que
so os bits de proteo (modo usurio e modo privilegiado / monitor).
Processos precisam de tempo de CPU, memria, arquivos e dispositivos de I/O para realizar a sua tarefa. Estes recursos podem ser alocados durante a sua criao ou a sua execuo. O Sistema Operacional deve:
Tratar deadlocks
O escalonamento de CPU tem origem com a introduo de sistemas multiprogramados. Sempre que um processo precisa
esperar (E/S), outro processo pode assumir o uso da CPU.
O escalonamento desse tipo uma funo fundamental do sistema operacional. Quase todos os recursos do computador so
escalonados antes do uso, e esse escalonamento vital para o projeto do Sistema Operacional.
Diferentes algoritmos de escalonamento de CPU possuem diferentes propriedades e podem favorecer uma classe dos processos em detrimento de outro. Alguns critrios de escalonamento so:
Ciclo de Burst CPU E/S: Essa ser a medida adotada para caracterizar cada processo em nosso algoritmo. A execuo de
um processo comea com um burst (surto) de CPU, que seguido por um burst de E/S, que por sua vez, seguido por outro
burst de CPU, depois outro burst de E/S, e assim por diante. Por fim, o burst de CPU final termina com uma requisio do
sistema para terminar a execuo.
Turnaround (tempo de retorno): tambm conhecido como tempo de execuo. Do ponto de vista de um processo
especfico, o critrio importante o tempo necessrio para executar esse processo. O intervalo desde o momento da
submisso de um processo at o momento do trmino o turnaround. O turnaround a soma dos perodos gastos esperando para entrar na memria, esperando na fila de processos (ready queue), executando na CPU e realizando E/S.
Tempo de espera: a soma dos perodos gastos aguardando na fila de espera. Para sistemas interativos (como de
tempo compartilhado) busca-se uma varincia no tempo de resposta do que minimizar o tempo de resposta mdio.
Gerenciamento de Memria
A memria o local onde os programas e dados so armazenados. A codificao binria (bits) foi escolhida para representar
a informao, pois mais confivel (e no mais eficiente!).
Uma clula de memria a menor unidade enderevel. Cada clula tem um endereo nico, e geralmente ocupam um byte,
uma palavra, ou outra unidade.
13
Para evitar que dados sejam interpretados como instrues, ou vice-versa, um bit extra pode ser usado para cada clula para
indicar o seu contedo. Na verdade vrios bits extras podem existir com vrias finalidades.
O processador central l e grava na memria, assim como a controladora de DMA. Os programas devem ser mapeados para
endereos absolutos, e instrues e dados so acessados. Alm disso, vrios programas ficam ao mesmo tempo na memria.
O sistema operacional responsvel por:
A CPU se comunica com a memria atravs dos registradores MAR e MBR, j explicados anteriormente.
A amarrao de endereos lgicos (binding de programas executveis) com fsicos (da memria principal) feita:
em tempo de compilao: usado em arquiteturas antigas, onde o programa era sempre carregado na mesma posio
da memria. S faz sentido com monoprogramao
em tempo de carga: executvel contm mapa de relocao. O programa interpretado, e os endereos corrigidos.
em tempo de execuo: h necessidade de hardware especial. Exemplo: registrador base cujo valor sempre somado a endereo lgico.
Segmentao
espao lgico do programa dividido em unidades que tm sentido para o programa: segmentos
Paginao
14
h fragmentao interna
cache da tabela de pginas: TLB (Translation Look-aside buffers). Mas como o seu tamanho limitado (de 8-2048
entradas), h a possibilidade de paginao multinvel, para gerar tabelas de pginas menores
conjunto de trabalho: pginas referenciadas por um programa. desejvel: espao de endereamento fsico > conjunto de trabalho. Obs.: espao de endereamento virtual > espao de endereamento fsico
Memria Virtual
Permite que o programa utilize um espao de endereamento virtual maior que a memria fsica total.
parecido com swapping mas muito mais eficiente. Com swapping, o espao de endereamento de cada processo tem
que ser menor que a MP; o que pode ser maior que a MP a soma dos espaos de endereamento de todos os processos.
Apenas algumas das pginas virtuais tm um correspondente fsico em cada instante; as demais pginas so marcadas como invlidas na tabela de pginas.
Quando um programa faz um acesso a uma pgina que no est carregada na MP, a MMU (Memory management
Unit) gera um trap para o sistema operacional, que entra em ao para carregar a pgina requisitada.
Sistemas de Arquivos
O Sistema Operacional fornece uma viso lgica uniforme do armazenamento. O conceito abstrato de arquivo serve para organizar os dados e seus acessos. O SO responsvel por:
As informaes so gravadas nos discos em "setores", distribudos ao longo de "trilhas" concntricas marcadas magneticamente como setores circulares no disco, conforme ilustrao a seguir.
O processo de marcao magntica das trilhas e setores em um disco faz parte da "formatao" do disco. Esta formatao
dependente do sistema operacional que usar o disco. O sistema operacional DOS define que cada setor armazena 512 bytes.
Todas as trilhas armazenam o mesmo nmero de bytes; desta forma, os dados na trilha mais interna estaro gravados com
maior densidade, pois o espao fsico menor.
Tempo de Acesso: o tempo de acesso aos dados de um disco definido como o perodo decorrido entre a ordem de acesso e
o final da transferncia dos dados. O tempo de acesso no constante, variando em funo da posio relativa entre o brao
atuador (que posiciona as cabeas de leitura e gravao) e o setor que ser lido e portanto s tem sentido falar em tempo mdio de acesso. Os tempos mdios de acesso dos discos atuais so da ordem de 10 ms e resultado das seguintes operaes:
15
Tempo de Seek: seek ou busca o tempo gasto na interpretao da localizao do dado no disco (endereo do dado
no disco) pela unidade de controle e no movimento mecnico do brao que sustenta a cabea magntica, at alcanar
a trilha desejada. Este tempo varivel de acesso para acesso. os tempos tpicos de discos rgidos atuais podem variar de aproximadamente 0 ms (referente ao acesso a um setor localizado na mesma trilha onde no momento est a cabea de leitura), 3 ms (para acesso a setores em trilhas adjacentes) a at 20 ms (referente ao acesso entre trilhas localizadas nas extremidades do disco). Este tempo diretamente dependente da qualidade dos mecanismos eletromecnicos que comandam os braos atuadores. Discos de menores dimenses tambm tendem a ser mais rpidos.
Tempo de Latncia: tambm chamada latncia rotacional, o tempo gasto entre a chegada da cabea de leitura /
gravao sobre a trilha e a passagem do setor desejado na posio da cabea. Como o disco permanece constantemente girando, a cabea magntica s pode ler ou gravar um dado quando o setor endereado est imediatamente
abaixo dela. Portanto, h que aguardar que o disco gire at que o setor endereado fique posicionado abaixo da cabea. Esse tempo depende diretamente da velocidade com que o disco gira (5400, 7200 RPM, etc)
Tempo de Transferncia: o tempo consumido na transmisso dos bits entre computador e disco e vice-versa. Este
tempo depende da interface e do disco, que definem o throughput (taxa de transferncia) do disco. Atualmente, dependendo da interface, o throughput seria da ordem de at 33 Mbytes/s. Como um setor tem 512 bytes, em 1 ms se
poderia transferir cerca de 33 setores e o tempo de transferncia de um setor seria da ordem de 15 ns.
Obs.: Os tempos relativos a unidades (drivers) de disquetes so muito maiores que os acima indicados para discos rgidos.
Drivers de disquete giram a aproximadamente 300 rpm e o throughput da ordem de 500 kbytes/s; os tempos de acesso mdios so da ordem de 60 a 100 ms.
Aps a formatao fsica, temos um HD dividido em trilhas, setores e cilindros. Porm, para que este disco possa ser reconhecido e utilizado pelo sistema operacional, necessria uma nova formatao, chamada de formatao lgica. A formatao lgica consiste em escrever no disco a estrutura do sistema de arquivos utilizado pelo sistema operacional.
Um sistema de arquivos um conjunto de estruturas lgicas e de rotinas que permitem ao sistema operacional controlar o
acesso ao disco rgido. Diferentes sistemas operacionais usam diferentes sistemas de arquivos. Os principais so:
FAT16 (File Allocation Table): utilizado pelo MS-DOS, Windows 95 e compatvel com Windows 98, permitindo
um mximo de 65526 clusters, que no podem ser maiores que 32 KB. A principal desvantagem desse sistema o
desperdcio de espao para parties maiores que 1 Gb, e o seu tamanho mximo por partio limitativo, de 2 Gb.
VFAT: extenso da FAT16, que ao invs de permitir apenas arquivos com 11 caracteres (8.3), reserva uma rea com
nomes grandes, fazendo com que o MS-DOS interprete os arquivos como "Arquiv~1", "Arquiv~2", etc.
FAT32: utiliza 32 bits de endereamento para cada cluster, de apenas 4 Kb cada. Utilizado pelo Windows 95 e 98, a
maior desvantagem o alto nmero de clusters, diminuindo o desempenho. Tamanho mximo de 2 Terabytes.
NTFS (New Technology File System): sistema de arquivos de 32 bits onde os setores do disco so endereados diretamente. Cada unidade de alocao possui apenas 512 bytes, evitando o desperdcio de disco. Utilizado pelo Windows NT em diante. um sistema mais seguro e confivel que o FAT, alm de flexvel e adaptvel.
EXT2: um sistema de arquivo utilizado apenas pelo Linux, que apresenta vrios recursos avanados de segurana
e suporte a parties de at 4 Terabytes. Outros sistemas relacionados so o EXT3, RaiserFS, etc.
Gerenciamento de Dispositivos
O Sistema operacional deve ocultar os detalhes de dispositivos de I/O de usurios. Ele deve:
Para evitar que a CPU fique presa por longos perodos em Entrada e Sada, podem existir processadores especializados de
E/S, de baixo custo.
Alm disso, o sistema operacional guarda uma tabela de status de dispositivos, com o registro de pedidos de I/O simultneos.
O DMA utilizado para evitar que transferncias de I/O rpidas (sncronas), como fitas, disco ou rede de comunicao, no
interrompam o CPU a cada byte transferido. O DMA transfere diretamente para a memria, sem interrupo da CPU. Uma
interrupo gerada apenas a cada bloco, para encontrar um buffer e configurar os registradores (com endereos inicial e fi-
16
nal). Como a memria s pode transferir 1 palavra / ciclo, a CPU s vezes concorre com o DMA para realizar operaes de
acesso memria (apenas um barramento).
O cdigo ASCII um mapeamento de bits para caracteres de texto, por exemplo: 0 (47), A (65) e a (97).
Concorrncia
A programao concorrente pode ocorrer de duas formas diferentes:
Processos: ocupam espaos de endereos diferentes, e se comunicam usando pipes oferecidos pelo sistema operacional.
Threads: ocupam o mesmo espao de endereo de uma aplicao, e a comunicao feita por um mecanismo da
linguagem de programao (a JVM do Java oferece um mecanismo multithreading)
Em alguns tipos de aplicaes, threads so essenciais, como no caso de aplicativos com interface grfica, em que o programa
pode esperar interao do usurio enquanto processa alguma tarefa. Outro exemplo so servidores que podem esperar por
requisies de novos clientes enquanto lidam com requisies j enviadas.
Para que dois ou mais processos possam ter acesso a um mesmo recurso compartilhado, existe um mecanismo que controla
este acesso, chamado de mecanismo de sincronizao. Enquanto um processo estiver acessando determinado recurso, todos
os outros que queiram acess-lo devero esperar. Isso se chama Excluso Mtua.
A tentativa de implementar a excluso mtua nos programas traz alguns problema. Os mais freqentes so:
Velocidade de execuo dos processos: quando um processo mais rpido obrigado esperar que um lento use o
recurso e o libere. Um gargalo gerado pela consistncia dos processos onde o mais rpido ficar limitado velocidade do mais lento. O sistema todo fica lento como conseqncia
Starvation: o SO determina as prioridades dos processos, de duas formas diferentes: por escolha aleatria ou por
prioridades. Quando a escolha aleatria, existir a probabilidade de um processo nunca ser escolhido, quando for
uma escolha por prioridades, um processo de menor prioridade nunca receber o acesso ao recurso, e ai este processo nunca executar sua rotina.
Sincronizao condicional: quando um recurso no est pronto para ser utilizado, o processo que vai acessar o recurso ficar em estado de espera at que o mesmo esteja pronto. Existe o risco deste recurso nunca ficar pronto por
j estar com problemas. Ento todo o sistema fica em espera.
Semforos: um semforo uma varivel associada a um recurso compartilhado, indicando quando este est sendo
acessado por um outro processo. Quando um processo entra ou sai da regio crtica, o seu valor alterado, de forma
que outros processos possam entrar na regio. Existe uma fila de espera associada ao semforo, onde os processos
tero acesso ao recurso na ordem de chegada.
Troca de mensagens: um mecanismo de comunicao e sincronizao entre os processos, implementado pelo sistema operacional atravs de duas rotinas do sistema SEND (envio de mensagem para o processo receptor) e
RECEIVE (recebimento do processo transmissor). No sistema de troca de mensagens, existe a possibilidade da mensagem se perder. J o Endereamento Indireto, que o uso de uma rea compartilhada para a troca de mensagens.
Concorrncia: Deadlocks
Um problema da concorrncia quando mtodos sincronizados chamam outros mtodos sincronizados. Isso pode causar deadlock, quando uma thread A espera a liberao de um objeto, que est com a thread B. Mas esta s vai liberar o objeto aps
uma alterao de outra thread (A, por exemplo), monopolizando-a. Exemplos:
Cenrio 1 (No ocorre deadlock), saldo do caixa: R$0.00
Cliente 1 atendido (recebe acesso do caixa), deposita 1000 reais e libera o caixa
Cliente 2 atendido (recebe o acesso do caixa), saca 800 reais e libera o caixa.
Cliente 2 atendido, tenta sacar 800 reais mas no h saldo. Cliente 2 espera haver saldo.
Cliente 1 quer ser atendido (quer depositar 1000 reais) mas no sua vez na fila. Ele espera a sua vez.
Soluo: Evitar que mtodos sincronizados chamem a outros mtodos sincronizados. Caso no seja possvel, controlar liberao e retorno dos acessos (hierarquia de chaves de acesso).
As quatro condies necessrias para ocorrer deadlocks (todas devem ser verdadeiras) so:
18
Excluso mtua: existe um recurso no-compartilhado (um processo por vez o usa)
Posse e Espera: um processo mantm um recurso, e espera por outro de outro processo.
Espera Circular: um processo P0 espera por P1, P1 por P2, ..., Pn espera por P0.
Redes de Computadores
Os primeiros sistemas de computadores eram grandes e caros. Os seus usurios organizavam as tarefas a serem processadas
em jobs, e o computador fazia o processamento em lote (batch). As tarefas eram executadas uma a uma, organizadas em uma
fila de entrada. Na dcada de 80 surgiram os terminais remotos, que permitiram que os usurios pudessem acessar os computadores atravs de linhas de comunicao. Nesta mesma poca surgiu o conceito de tempo compartilhado (time sharing), para
otimizar o uso de mainframes. Os terminais passaram a ser ligados ao computador central por cabos e novos recursos surgiram utilizando esta interconexo.
As redes modernas tm razes nos primeiros sistemas de telefones e telgrafos. Para lidar com o aumento no nmero de usurios, foi preciso criar novos meios de distribuir o processamento e utilizao dos outros recursos pelas redes, criando o conceito de multi-processamento e sistemas de processamento distribudos. Na dcada de 60, o governo dos EUA iniciou o projeto ARPA (Advanced Research Project Agency).
Uma rede de computadores um conjunto de mdulos processadores capazes de trocar informaes. Seus objetivos so:
Compartilhamento de recursos: Permite que programas, dados, rea de armazenamento, perifricos, entre outros
recursos, estejam disponveis para qualquer um na rede, independente de sua localizao fsica. Este a principal
motivao para o uso de redes de computadores.
Aumento na Confiabilidade: Considerando que passa a existir redundncia dos recursos compartilhados pela rede,
a confiana de um sistema projetado para ter tolerncia falhas aumenta.
Reduo de Custos: O custo benefcio de um microcomputador em relao ao seu processamento muito mais baixo que o de um mainframe, logo a fragmentao do processamento desejvel.
Escalabilidade: A possibilidade de aumentar o processamento do sistema gradualmente, a medida que cresce o volume do trabalho, adicionando novos mdulos processadores, permite adiar custos.
Comunicao de dados
A comunicao de dados em nvel global tornou-se uma realidade do nosso tempo. O desafio que a comunicao de voz representou para as geraes passadas volta atualmente, sob a forma de aplicaes de telemtica, em vrias modalidades de
troca de informao entre computadores heterogneos situados em ambientes remotos, interconectados atravs dos sofisticados meios oferecidos pela engenharia de telecomunicaes.
A Comunicao de Dados diz respeito ao modo como os dados so manipulados, transformados e transportados entre pontos
quaisquer. Exemplos disso so os modos simplex (unidirecional), half-duplex (uma direo de cada vez) e full-duplex de comunicao, as bandas passantes, as modulaes de sinais e a criptografia.
As Redes de Computadores so mecanismos que utilizam a comunicao de dados e existem para prover: comunicao entre
pontos, compartilhamento de recursos e confiabilidade da integridade dos dados transferidos.
Meios de transmisso
Basicamente existem dois tipos de tecnologias de meios de transmisso:
A transmisso de dados, quando realizada nos dois sentidos denominada duplex. No caso em que ela se realiza alternadamente, ou seja, ora num sentido, ora no outro, ela se denomina half-duplex. No caso em que ela se realiza simultaneamente
nos dois sentidos, esta ser denominada full-duplex.
Os bits podem ser transmitidos de forma paralela, onde so simultaneamente transportados por vrias linhas (mais adequado
comunicao entre equipamentos prximos), ou serial, onde os bits so encaminhados atravs de uma nica linha de comunicao (ideal para equipamentos muito distantes). A forma de delimitar os bits pode levar em conta duas diferentes filosofias
a transmisso serial sncrona e a serial assncrona.
Transmisso sncrona: os bits de dados so transmitidos segundo uma cadncia pr-definida, obedecendo a um sinal de temporizao (clock). O receptor, conhecendo os intervalos de tempo permitindo delimitar um bit, poder identificar a seqncia dos bits fazendo uma amostragem do sinal recebido
19
Transmisso assncrona: a separao entre os bits feita atravs de um sinal especial com durao varivel. Um
caso tpico a transmisso de caracteres; onde a cada grupo de bits constituindo um caractere so adicionados bits
especiais para representar o incio (start bit) e final deste (stop bit).
LAN Local Area Network ou Rede Local (normalmente uma sala, edifcio ou campus).
MAN Metropolitan Area Network ou Rede Metropolitana (at o tamanho de uma cidade).
WAN Wide Area Network ou Rede Geograficamente Distribuda (ou de Longa Distncia).
Topologias
A topologia de uma rede descreve como o layout do meio atravs do qual ocorre o trfego de informaes e tambm como
os dispositivos esto conectados a ele. Refere-se ao relacionamento fsico e lgico de cada n da rede (cada ponto de conexo
com a rede pode ser chamado de n, independente da funo do equipamento representado por ele), ou seja, a forma como
esto dispostos. Temos aqui ento a diviso
Topologia lgica: descreve como as informaes devem transitar ao longo da rede, o formato dos dados, etc. a
forma como os protocolos operam no meio fsico;
Topologia fsica: refere-se disposio dos cabos e componentes do meio fsico, descrevendo onde cada n da rede
est situado fisicamente em relao aos demais, como feita a distribuio da mdia de conexo (cabeamento de cobre, fibra ptica, wireless, etc) e mostra a configurao geral da rede atravs da planta de localizao dos equipamentos.
O ambiente de funcionamento tambm influencia na escolha da topologia de uma rede. Ambientes ruidosos e com problemas
de segurana tm requisitos mais exigentes quanto ao nmero mximo de ns, a separao mxima e mnima entre ns e a
taxa mxima de informao transmitida. Alguns protocolos, por exemplo, levam em conta a distncia
mxima entre os ns da rede para
seu perfeito funcionamento.
Ao lado esto relacionadas as topologias de redes ponto-a-ponto.
O envio de mensagens feito de
forma indireta, de forma que cada
estao recebe o contedo integral
da mensagem at ela alcanar o seu
destinatrio.
Tipos de
Ponto Positivos
Pontos Negativos
Topologias
Topologia Estrela
Topologia Anel
(Token Ring)
Topologia Barra-
20
mento
Fcil de entender
Servios de comunicao
Define-se por servio o conjunto de operaes que uma camada capaz de oferecer camada superior. Ela define o que uma
camada capaz de executar sem se preocupar com a maneira como so executadas.
As camadas de uma arquitetura de rede podem oferecer diferentes classes de servios s camadas superiores. Estes servios
podem ser orientados a conexo ou no (sem conexo).
Com conexo: Anlogo ao servio telefnico, precisa iniciar uma conexo, para enviar a mensagem, e caracterizar
trmino da conexo. Ela funciona como um canal virtual na realizao do servio.
Sem conexo: Anlogo ao sistema postal, cada mensagem contm o endereo do destinatrio e pode ser encaminhada ao sistema independente de outras. O princpio bsico apenas enviar a mensagem.
Uma diferena nestes dois tipos de servios, que quando ele orientado a conexo, as mensagens so sempre recebidas pelo
destinatrio na ordem de envio, o que pode no acontecer no servio sem conexo.
Os servios sem conexo so denominados servios de datagrama (ex: correio eletrnico). Um datagrama um pacote de
informao que contm os dados do usurio, permitindo sua transferncia numa rede de pacotes.
Outra caracterstica de servios de comunicao a sua qualidade de servio, podendo ser classificados em:
A implementao de servios confiveis geralmente utiliza mensagens de reconhecimento no destinatrio, ou seja, uma confirmao que a mensagem foi recebida, o que nem sempre desejvel (performance, etc).
Um servio definido atravs de um conjunto de primitivas aos usurios, divididas em quatro classes:
Request: Pedido enviado por uma entidade (um processo de uma camada) que solicita um servio
Em pedidos no confirmados, apenas as duas primeiras primitivas so utilizadas (o pedido e a indicao). Ex:
1.
2.
3.
4.
5.
6.
7.
8.
9.
Protocolos
O protocolo define um conjunto de regras que permitem especificar aspectos da realizao do servio. Basicamente indica o
significado dos quadros, pacotes ou mensagens trocadas entres as entidades de cada camada. Existe um desacoplamento entre
o conceito de protocolo e servio, entre duas camadas.
Muitos protocolos conhecidos fazem parte do conjunto TCP/IP (Internet Protocol Sute), como os seguintes:
ICMP: Utilizado para a verificao da rede, atravs de comandos PING, por exemplo.
IGMP (Internet Group Message Prococol): Utilizado para a formao de grupos multicast em uma rede IP.
ARP (Adress Resolution Protocol): Protocolo de resoluo de endereos, associa endereos fsicos com a numerao do IP. O RARP (Reverse ARP) faz o contrrio, requisito o endereo IP de uma mquina a partir de um endereo
fsico MAC (Media Access Control).
TCP (Transmission Control Protocol): Protocolo orientado a conexo e confivel,, possui informao de origem e
destino (camada de transporte). Sua transmisso se d atravs de segmentos.
UDP (User Datagram Protocol): No orientado a conexo e nem confivel, mas muito leve.
Telnet: Servio de terminal virtual que permite sesses remotas sobre a rede (porta default 23).
FTP (File Transfer Protocol): Servio de transferncia de arquivos (porta default 20 e 21).
DNS (Domain Name Service): Servio de traduo de nomes de hosts em endereos IP.
DHCP (Dynamic Host Configuration Protocol): Controla e disponibiliza endereos IP para os clientes de rede que
o requisitam. A vantagem que o endereo IP no precisa ser fixo.
NNTP (Network News Transfer Protocol): protocolo utilizado por programas clientes de notcias (que expiram).
SMTP (Simple Mail Transfer Protocol): Protocolo para o envio de e-mails mais utilizado.
SNMP (Simple Network Management Protocol): Gerencia redes conectadas em um nico ponto.
POP3 (Post Office Protocol 3): Protocolo para o recebimento de e-mails mais utilizado.
HTTP (HyperText Transfer Protocol): Para transmisso de pginas Web (porta default 80).
Equipamentos
Um sistema de rede de computadores possui vrios equipamentos (componentes) a sua disponibilidade:
(FIS) Mutiplexadores: um dispositivo cuja funo permitir que mltiplas estaes de trabalho possam compartilhar uma linha de comunicao, pois a linha tem capacidade suficiente (banda) para suportar seu uso compartilhado.
Com isso, multiplexadores reduzem o nmero de linhas de comunicao necessrios, conseguindo uma reduo nos
custos pois diminuem o cabeamento necessrio.
(FIS) Repetidores: utilizados para estender a rea de ao de uma rede, reforando e regenerando os sinais fsicos.
So dispositivos bidirecionais, sem inteligncia, e introduzem um atraso na propagao.
Hubs e Switches: so dispositivos que provem uma conexo central para as estaes de trabalho, servidores e perifricos. Atuam como guardas de trfego de dados, evitando colises e congestionamentos. Estes dispositivos permitem que a rede cresa em nmero de equipamentos, at um limite aceitvel de colises, que depende do tipo de
cabeamento e topologia da rede. Eles se encarregam de distribuir os sinais eltricos entre os vrios equipamentos que
compem a rede, isolando os problemas de cada uma das estaes e garantindo mais segurana e confiabilidade.
o
22
(FIS) Hubs ou Concentradores, trabalham com arquitetura de meio fsico compartilhado. Hubs so multiplexadores inteligentes, possuem processador e um buffer onde armazenam os dados oriundos dos terminais
para envio posterior ao servidor (aonde enviada a identificao do terminal), o que altera a velocidade de
transmisso de dados. Os concentradores incluem um software de controle, com isso um grande nmero de
linhas de baixa velocidade podem compartilhar um pequeno nmero de linhas de alta velocidade.
o
(ENL) Switches ou Comutadores, diferentemente dos hubs (barramento compartilhado), oferecem uma "linha comutada dedicada" a cada uma das suas conexes. Um hub que dispe 10 Mbps, compartilha esta velocidade com todas as conexes, j o switch permitiria que cada conexo se comunicasse a velocidade total
da LAN. Com isso os switches permitem comunicaes paralelas, onde duas estaes podem enviar seus
dados em um mesmo intervalo de tempo sem riscos de colises. Com isso evita retransmisso e aumenta o
rendimento da rede. O protocolo SNMP usado pelo switch como uma das tarefas de gerenciamento.
(ENL) Bridges: equipamentos que tm como finalidade segmentar uma rede local em vrias sub-redes, e com isto
conseguem diminuir o fluxo de dados. Os Bridges tambm podem converter padres, como por exemplo de Ethernet
para Token-Ring. Eles manipulam pacotes, no retransmitindo rudos, erros, e pacotes mal formados. Fazem parte
do nvel de ligao lgico (MAC). So suas funes:
o
memorizar os endereos lgicos dos dispositivos, e gerar lista dos dispositivos ligados a cada porta;
deve-se evitar loops ativos (envio de um pacote a dois bridges, que retransmitem vrios frames repetidos).
(RED) Roteador: existem duas atividades que so bsicas a um roteador. So elas: a determinao das melhores rotas e o transporte dos pacotes. Determinar a melhor rota definir por qual enlace uma determinada mensagem deve
ser enviada para chegar ao seu destino de forma segura e eficiente. Para realizar esta funo, o roteador utiliza dois
conceitos muito importantes: o conceito de mtrica e o conceito de tabelas de roteadores. Transportar os pacotes pela
rede uma funo relativamente simples realizada pelos roteadores. Consiste em verificar o endereo de rede para
quem a mensagem est destinada, determinar se conhece este endereo. E, por fim, traduzir para um novo endereo
fsico e enviar pacote.
(TRA) Gateways: so equipamentos utilizados para se fazer a comunicao entre duas redes com arquiteturas diferentes. Na comunicao entre arquiteturas diferentes surgem diversos problemas, como por exemplo:
o
forma de endereamento;
tcnicas de roteamento;
controle de acesso;
Sistemas Distribudos
Um sistema distribudo formado por um conjunto de mdulos processadores interligados por um sistema de comunicao
(rede de computadores). Enquanto uma rede construda para o compartilhamento de recursos, um sistema distribudo possui
como principais metas a obteno de um maior desempenho e confiabilidade.
Normalmente cada rede interligada em um sistema distribudo (intranets) protegida por um firewall, pois o sistema como
um todo pode ter a sua segurana comprometida, j que aumenta o nmero de entradas (e brechas) da rede, principalmente se
existir um acesso Internet.
Segurana
A segurana no universo computacional se divide em segurana lgica e segurana fsica, presente tanto em computadores
standalones (PCs individuais) como em computadores ligados em rede (Internet ou intranets).
A segurana fsica deve atentar para ameaas sempre presentes, como incndios, desabamentos, relmpagos, alagamentos,
problemas na rede eltrica, acesso indevido de pessoas ao CPD, treinamento inadequado de funcionrios, etc. Medidas de
proteo fsica, tais como servios de guarda, uso de no-breaks, alarmes e fechaduras, circuito interno de televiso e sistemas
de escuta so realmente uma parte da segurana de dados. As medidas de proteo fsica so freqentemente citadas como
segurana computacional. O ponto-chave que as tcnicas de proteo de dados no tm serventia nenhuma se a segurana
fsica no for garantida.
23
A segurana lgica requer um estudo maior, pois envolve investimento em softwares de segurana ou elaborao dos mesmos. Deve-se estar atento aos problemas causados por vrus, acesso de invasores de rede, programas de backup desatualizados (ou feito de maneira inadequada), distribuio de senhas de acesso, etc.. Um recurso muito utilizado para se proteger dos
bisbilhoteiros da Internet (administrador de sistemas), a utilizao de um programa de criptografia que embaralha o contedo da mensagem, de modo que ela se torna incompreensvel para quem no seja nem o receptor ou provedor da mesma.
As funes de cada camada foram escolhidas pela definio dos protocolos internacionais;
As fronteiras entre as camadas foram definidas de modo a minimizar o fluxo de dados nas interfaces;
O nmero de camadas deve ser suficientemente grande para que funes distintas no sejam colocadas na mesma
camada, e suficientemente pequeno para que no seja difcil o controle da arquitetura.
Alm disso, o modelo foi projetado para redes geograficamente distribudas (WAN).
Camada Fsica
responsvel pela transferncia de bits num circuito de comunicao. A sua funo garantir que cada bit enviado de um
lado ser recebido do outro lado sem ter alterado o seu valor. Neste nvel resolvem-se:
os modos de representao dos bits 0 e 1 de maneira a evitar ambigidades ou confuses (valor da tenso em volts,
durao de cada sinal representando um bit, a codificao dos sinais, etc.)
os tipos de conectores utilizados nas ligaes (nmero de pinos, funes associadas a cada pino, etc.)
como as conexes se estabelecem para a iniciao de um dilogo e como feita a desconexo ao fim
Em resumo, esta camada relaciona-se s interfaces eltricas e mecnicas, preocupando-se com o transporte de dados (representados por bits) entre dois equipamentos terminais, via um suporte de transmisso. Alguns protocolos padres so: IEEE
24
802, ISO 2110, etc. O Ethernet um dos padres mais populares para a conexo fsica de uma LAN. Utiliza um procedimento de compartilhamento de cabos denominado de CSMA/CD e trata das colises de dados que podem ocorrer quando diferentes ns da rede tentam enviar dados simultaneamente. chamada de topologia baseada em competio, pois as estaes de
trabalho competem pela banda passante do canal, representa um meio econmico de obter transmisso de alta velocidade (10
ou 100 Mbps), e surporta diversas configuraes de cabeamento, sendo fcil de instalar.
Repetidores, multiplexadores e Hubs utilizam esta camada.
Controle de Acesso Mdia (Media Access Control - MAC): controla os meios pelos quais vrios dispositivos
compartilham o mesmo canal de transmisso.
Controle de Link Lgico (Logical Link Control - LLC): estabelece e mantm links (enlaces) entre dispositivos
em comunicao.
Com o objetivo de permitir um controle de erro eficiente, a camada de enlace decompe as mensagens em pores menores
denominadas quadros (frames), onde so adicionados cdigos especiais de controle de erro. O controle de erros de transmisso uma das funes mais importantes asseguradas pela camada de enlace. As responsabilidades desta camada so:
a forma como os bits provenientes da camada Fsica sero agrupados em quadros (frames)
os mecanismos de deteco e correo de erros implantados, uma vez que as informaes trocadas atravs da camada fsica no so isentas de erros de transmisso, pelos fatores que j foram levantados
mecanismos de controle de fluxo para limitar o volume de informao trocados entre fonte e destino
Alguns dos componentes desta camada so o Bridge, Switch, o ISDN Router, etc.
Camada de Rede
A camada de rede responsvel da gesto de sub-redes. A principal funo da camada de rede efetuar o encaminhamento
dos pacotes trocados entre duas entidades oferecendo uma comunicao fim-a-fim.
Os caminhos a serem utilizados podem ser definidos em funo de tabelas estticas ou determinados dinamicamente no momento de cada dilogo em funo das condies de trfego, devendo ainda efetuar a gesto dos problemas de congestionamento pela presena de uma quantidade excessiva de pacotes de dados na rede.
A camada de rede a camada mais baixa que trata a transmisso fim-a-fim. As duas funes essenciais da camada de rede
so roteamento e controle de congestionamento. Alm dessas, tambm responsvel por:
Os servios da camada de rede foram projetados para serem independentes da tecnologia de sub-rede. Alguns de seus componentes so o Roteador, o ATM Switch, Switch nvel 3, entre outros.
25
Camada de Transporte
Esta camada cria normalmente uma conexo de rede para cada conexo de transporte requerida pela camada de sesso, e determina tambm o tipo de servio oferecida esta. Ela implementa um verdadeiro dilogo fim-a-fim, ou seja, o programa
executando no sistema fonte dialoga com o programa executando na mquina destino atravs dos cabealhos e informaes
de controle contidas nas mensagens deste nvel.
Dado que esta camada responsvel do estabelecimento e trmino das conexes de rede, ela deve definir um mecanismo de
endereamento que permita a um sistema indicar com qual sistema ele deseja dialogar. Finalmente, ela deve implementar um
mecanismo de controle de fluxo fim-a-fim para evitar que o sistema fonte envie mensagens numa taxa superior quela com a
qual o sistema destino pode consumi-las.
De maneira similar camada de Rede, a de Transporte pode fornecer dois tipos de servio: sem conexo e orientados conexo. Ela tambm permite um "isolamento" em relao s camadas superiores, pois o ltimo dos nveis que seriam mais orientados a transporte efetivo das informaes (e no aplicaes).
A camada de transporte supre as deficincias entre a qualidade de servio (QOS) que a camada de sesso necessita e aquilo
que a camada de rede pode oferecer. Alguns parmetros so: o retardo (e probabilidade de falha) no estabelecimento de uma
conexo, o desempenho (thoughput), retardo de trnsito, taxa de erros residuais, proteo, prioridade e resilincia (probabilidade de finalizar uma conexo espontaneamente).
Um componente usado a partir desta camada o Gateway, e os protocolos usados so: TCP, ARP, RARP, etc.
Camada de Sesso
A principal funo desta camada oferecer aos seus usurios meios para o estabelecimento das conexes (sesses), de modo
que estes possam trocar dados. Uma sesso utilizada para permitir a conexo distncia a um computador (atravs de terminais, para uma transferncia de arquivo, para o carregamento de programas, etc).
A camada de sesso responsvel dos estabelecimentos de sesses de dilogo para os usurios da rede. Alm disso define a
gesto do dilogo (se deve ser efetuado em modo uni ou bidirecional).
importante notar aqui que a camada de Sesso oferece unicamente as ferramentas para a soluo dos problemas de erros e
incoerncia por sincronizao / resincronizao. Na realidade, quem ativa estas ferramentas quando da ocorrncia de um problema so as entidades das camadas superiores.
Camada de Apresentao
A Camada de Apresentao utiliza algumas funes freqentemente necessrias de modo a poupar o usurio deste trabalho.
Esta camada assume particularmente as funes associadas sintaxe e semntica dos dados transmitidos. Um exemplo tpico das funes efetuadas por esta camada a codificao da informao num padro bem definido (ASCII, EBCDIC, etc.).
Esta camada pode ainda suprir outras funes associadas compreenso dos dados, se utilizando do conhecimento do significado da informao para reduzir a quantidade de informao enviada, inclusive para implementar funes de confidencialidade e de autenticao.
Camada de Aplicao
A camada de Aplicao tem por funo o gerenciamento dos programas de usurio (programas de aplicao) que executam
em mquinas conectadas e utilizam o sistema de comunicao para a troca de informaes.
Esta camada implementa um conjunto de protocolos diversificado e orientado a aplicaes bem definidas. Exemplos so o
protocolo de terminal virtual e de transferncia de arquivo. Ela mantm o contato direto com os usurios da arquitetura de
comunicao, abrindo caminho para os servios oferecidos pelas camadas inferiores.
TCP/IP
Nos anos 70, o DoD (US Department of Defense), diante de um inventrio de diferentes computadores que no podiam interagir, foi o pioneiro no desenvolvimento de protocolos de software para redes, que poderiam funcionar em mais de uma mar26
ca e modelo de computador. O principal conjunto estabelecido pelo DoD o Transmission Control Protocol/Internet Protocol (TCP/IP). Estes protocolos so acordos sobre como devem ocorrer as transmisses nas redes.
A arquitetura Internet tambm organizada em camadas, e composta por dois protocolos principais, o TCP (transporte fim-afim confivel) e o IP (encaminhamento de pacotes de dados atravs de vrias sub-redes.
O conjunto TCP/IP pode oferecer um servio relativamente confivel. Ao utilizar o protocolo TCP/IP, caso um datagrama
TCP enviado por um Host (Computador) seja danificado em um segmento entre dois roteadores, antes de chegar ao Host destinatrio, o computador remetente reenvia o datagrama porque no recebe uma confirmao de recebimento pelo destinatrio.
O sucesso e a popularidade do protocolo no se deve apenas imposio das agncias militares americanas, mas tambm ao
fato der ter sido o primeiro protocolo a atingir a importante meta da comunicao de dados com abrangncia mundial:
TCP/IP no define protocolos para o nvel fsico, possibilitando sua implementao sobre uma grande variedade de
protocolos j existentes, tais como: Ethernet, Token Ring e X.25;
O esquema de endereamento do TCP/IP permite designar univocamente qualquer mquina, mesmo em redes globais como a Internet;
TCP/IP inclui protocolos do nvel de aplicao que atendem demanda de servios imposta.
Camadas do TCP/IP
No existe uma correspondncia de camadas entre o modelo OSI e o TCP/IP que seja aceita universalmente, pois o TCP/IP
foi criado com o compromisso da funcionalidade, e o OSI foi projetado academicamente.
Da mesma forma que no modelo
de referncia OSI, os dados descem a pilha de protocolos para
chegar a rede e sobem para chegar
s aplicaes. Cada camada da
pilha de protocolos adiciona um
cabealho com informaes de
controle e trata o que recebe da
camada superior como sendo dados.
27
Camada de Transporte
Esta camada fim-a-fim est localizada exatamente sobre a camada Internet na hierarquia TCP/IP. Os principais protocolos
desta camada so: TCP (Transmission Control Protocol), o UDP (User Datagram Protocol)
O TCP um protocolo orientado a conexo com deteco e correo de erros fim-a-fim. O UDP um protocolo no orientado a conexo e no confivel, sendo portanto muito leve. Ambos os protocolos passam dados entre as camadas de aplicao e
Internet. Cada aplicao deve escolher o que melhor se adapta a sua natureza.
Camada de Aplicao
Fica no topo da pilha TCP/IP, incluindo todos os processos que utilizam servios das camadas inferiores para transmitir dados
atravs da rede. Alguns de seus protocolos so: Telnet, FTP, SMTP, DNS, NFS, etc.
Protocolo IP
O IP um protocolo no orientado a conexo, ou seja, no existe negociao prvia de uma conexo para a transmisso de
dados. Isto no impede a existncia de protocolos orientados conexo nas camadas superiores, mas eles devero negociar o
estabelecimento de conexes por si prprios. Alm de ser no orientado conexo, o protocolo IP tambm no confivel,
uma vez que no suporta mecanismos de deteco e recuperao de erros. Em outras palavras, o protocolo IP no verifica se
um datagrama foi recebido corretamente, deixando esta responsabilidade para os protocolos das camadas superiores.
As principais funes do protocolo IP so:
definir o datagrama IP, que a unidade bsica de transmisso de dados da arquitetura TCP/IP;
Protocolo TCP
O protocolo TCP trabalha no mesmo nvel que o protocolo UDP, mas oferece servios mais complexos, que incluem controle
de erros e de fluxo, servio com conexo e envio de fluxo de dados. O TCP utiliza o mesmo conceito de porta do UDP. Para o
TCP, uma conexo formada pelo par (Endereo IP de Origem, Porta de Origem) e (Endereo IP de Destino, Porta de Destino).
O protocolo TCP oferece as seguintes caractersticas:
28
Desassociao entre quantidade de dados enviados pela aplicao e pela camada TCP.
Ordenao de mensagens.
Formato do Pacote IP
Verso: Atualmente IPV4. A IPV6 cogitada.
IP Header Length: tamanho do cabealho
Type-of-Service: Nvel de importncia, etc.
Total Length: tamanho do pacote IP inteiro.
Identification: Nmero, para seqncias.
Flags: Controla fragmentao (3 bits).
Fragment Offset: Posio relativa do dado fragmentado do
datagrama original.
Time-to-Live: Evita loops infinitos ao rotear um pacote ( um
contador que decrementado).
Protocol: Indica o protocolo (sup) a ser usado.
Header Checksum: Integridade do cabealho.
Source Address: indica o n remetente.
Destination Address: indica o n destinatrio
Options: Permite que o IP suporte vrios opes, como segurana.
Data: Contm as informaes para a camada superior, que ser utilizada pelo protocolo especificado.
Classes de Endereos IP
O endereo IP est dividido em 5 classes diferentes, identificadas pelos 4 primeiros bits:
Classe B primeiro octeto inicia com 10xx, ou 128 ate 191 decimal.
Classe C primeiro octeto inicia com 110x, ou 192 ate 223 decimal.
Classe D primeiro octeto inicia com 1110, ou 224 ate 239 decimal. (Classe para Multicast)
Classe E primeiro octeto inicia com 1111, ou 240 ate 254 decimal. (Classe para Research)
O formato da mscara do endereo IP nas trs primeiras classes (N para Network e h para Hosts):
-- NNNNNNNN.NNNNNNNN.NNNNNNNN.hhhhhhhh
Existem alguns endereos especiais, como o Loopback (127.0.0.1), e outros reservados das classes, como o 10.0.0.0/8 da
Classe A (de 10.0.0.0 a 10.255.255.255) e o 192.168.0.0/16 da Classe C (at 192.168.255.255), no roteados para Internet.
Classe A: como exemplo, o endereo 126.1.12.2 pertence classe A. So possveis 126 redes (o primeiro nmero
vai de 1 a 126), e 16.777.214 hosts para a rede (os trs ltimos nmeros, 256 * 256 * 256 2).
29
Classe B: como exemplo, o endereo 128.126.12.34 pertence classe B. So possveis 16.384 redes (os dois primeiros nmeros, de 128 a 191), e 65.534 hosts (para os dois ltimos nmeros, 256*256 2).
Classe C: como exemplo, o endereo 192.168.0.34 pertence classe C. Permite a existncia de cerca de 2.097.152
redes (trs primeiros nmeros, variando de 192 at 233) e 254 hosts por rede (256 2).
Segue um exemplo de uma rede local utilizando um endereo IP privado Classe C para acessar a Internet:
Windows (2003/XP/2000/98)
A Microsoft (empresa fundada por Bill Gates e Paul Allen) criou e mantm o Windows, um sistema operacional comercial
muito popular, que possui este nome por ter a sua interface baseada em janelas (windows).
As verses iniciais do Windows (at a verso 3.11 inclusive) rodavam em cima do DOS, um sistema operacional de 16 bits.
As verses posteriores (Windows 95, 98, NT, etc.) suportam 32 bits, enquanto verses mais avanadas, como o Windows XP
e o Windows Vista, esto preparadas para 64 bits.
31
Arquitetura Distribuda
Principais conceitos e componentes
Vantagens: Podem ser utilizados equipamentos baratos, h uma diviso mais eficiente do trabalho, diminuio do
trfego da rede, maior versatilidade de sistemas operacionais e plataformas, maior segurana e integridade (fornecido por um gerenciador de banco de dados central), entre outras.
Desvantagens: Aumento do custo administrativo de suporte rede e banco de dados, maior dificuldade em encontrar pontos problemticos do sistema, custo maior no hardware / software do servidor.
2 camadas
No modelo de 2 camadas toda a lgica do negcio fica no cliente. Em cada mquina cliente deve ser instalado o programa
(desenvolvido em VB, Delphi, etc), que possui todas as regras de acesso a um banco de dados, por exemplo. Naturalmente, a
camada de apresentao tambm fica no cliente..
A desvantagem do modelo de 2 camadas a dificuldade de manuteno, pois as regras de negcio esto sempre mudando
(evoluo do mercado, alteraes na legislao), exigindo alterao em todos os clientes.
3 camadas
O modelo em 3 camadas veio solucionar o problema das 2 camadas, retirando as regras de negcio do cliente e centralizandoas em um determinado ponto, chamado Servidor de Aplicaes. O acesso ao banco de dados feito atravs das regras contidas no Servidor de Aplicao.
Apresentao: Esta camada fica no cliente, fornecendo a interface visual da aplicao. Alteraes ela so mais raras, mas exigem a atualizao de todos os clientes.
N camadas
Outra evoluo aos modelos Cliente / Servidor anteriores o modelo de 4 camadas, que centraliza a camada de apresentao
em nico ponto, normalmente um servidor Web. Assim existe uma camada adicional chamada Cliente, que representa o navegador (browser) utilizado pelos clientes em suas estaes.
A camada de apresentao passa a ser um servidor Web composta de pginas HTML, ASP, JSP ou outras.
So evidentes as vantagens ao dimensionar um sistema em 3 ou mais camadas. Mas preciso levar em conta os custos com
os equipamentos, desempenho, etc. Se os servidores ficarem responsveis por grande parte do processamento e uso de memria, os seus custos aumentam, e por isso o nmero de usurios, recursos do software, nvel de exigncia de cada usurio, e
outros fatores devem ser considerados.
Chamadas remotas
O mecanismo de chamadas remotas RPC (Remote Procedure Call) integra o protocolo usado para comunicao Cliente /
Servidor com as linguagens de programao convencionais, permitindo clientes comunicar com servidores atravs de chamadas de procedimentos.
32
A chamada remota segue o modelo da chamada local, sendo que o procedimento chamado executado em um processo diferente, normalmente em um computador diferente. Os passos so:
Cliente chama stub cliente
Stub cliente constri mensagem, e chama SO
SO cliente envia mensagem para SO remoto
SO remoto entrega mensagem p/ stub servidor
Servidor realiza trabalho, retorna para stub
SO servidor envia mensagem para SO cliente
SO cliente entrega mensagem para stub cliente
Stub cliente retorna resultado para o cliente
Conceitos de Internet
Domain Name Service/System (DNS)
O DNS faz a converso do nome do Domnio para o numero de IP e vise-versa.
Quando usamos a Internet estamos acostumados a lembrar dos nomes dos domnios ao contrario dos nmeros dos IPs. Alias a
grande maioria dos usurios nem mesmo sabem que um nome do domnio esta amarrado a pelo menos um numero de IP. Para
facilitar a nossa vida o DNS faz o papel intermediador convertendo do nome do Domain para o numero do IP.
Exemplo: www.google.com
Quando o endereo acima digitado no navegador, uma mensagem enviada ao DNS server solicitando a localidade do Domain. Se o mesmo existir, o DNS server retornar uma outra mensagem com o exato numero do IP para que o navegador
consiga acessar o domnio desejado.
Os 13 DNS Root Servers so identificados pelas letras A-M, e a maioria est localizada nos Estados Unidos.
Default Gateway
Default Gateway aquele que serve como intermediador entre redes, sempre presentes em redes locais com acesso a Internet.
Quando estamos em uma rede local e queremos acessar um servidor local s necessrio descobrir o IP do servidor em enviar o pacote para o mesmo. J quando queremos acessar a Internet j muda um pouco a figura. Neste caso no sabemos o IP do
servidor que queremos acessar, ento temos que fazer um pedido para o DNS como j estudamos anteriormente. O Default
33
Gateway entra em cena aqui, porque quando se emite um pacote IP que no pertence a rede local algum tem que tomar providencia e encaminh-lo para a devida rede que ele pertence. O seu papel fazer a transio de uma lado para outro, no nosso
caso ele manda o pacote que foi gerado pela rede interna para a rede externa Internet.
Default Gateway pode ser um roteador, um firewall, um computador etc., tudo isso vai depender do ponto de vista do layout
de rede, certamente em muitos dos casos o roteador e o firewall sero Default Gateway em uma determinada rede. O roteador
sendo Default Gateway da rede externa (ISP) e o firewall sendo Default Gateway da rede interna (rede local).
Exemplo: O usurio na Maquina de IP 192.168.0.24 est acessando o google.com na Internet, e para isso ele teve
que percorrer vrios Default Gateway. O desenho tenta ilustrar o bsico do que acontece quando se tenta acessar um
endereo que esteja fora da rede local. Para que o acesso seja completado, o computador do cliente, firewall e o roteador devem estar com seus respectivos Default Gateway configurados. O desenho no est ilustrando o acesso ao
DNS para adquirir o IP do google.com e nem como obtido os endereos de IP internos do Gateway - ARP request.
Backbone
Backbones so 'portas' de acesso Internet. No Brasil, poucas empresas so realmente proprietrias de backbones de Internet,
como o caso da EMBRATEL, da TELEFNICA e da IMPSAT. Estas empresas vendem a conexo com os backbones para
os provedores de acesso Internet. Estes provedores ento, vendem o acesso discado via linha telefnica aos usurios finais.
O backbone ("espinha dorsal") o trecho de maior capacidade dessa rede, com uma infra-estrutura de alta velocidade e que
proporciona a conexo com vrias redes menores. Localmente, o backbone uma linha ou conjunto de linhas qual as
redes se conectam para formar uma WAN. Na Internet ou em outras WANs, o backbone um conjunto de linhas com as
quais as redes locais ou regionais se comunicam para interligaes de longa distncia.
Cada pas tem uma rede principal para transmitir pacotes da Internet. Geralmente um pas tem poucos backbones ou at mesmo um s. Um deles, pelo menos, mantido pelo Estado. Mas existem tambm backbones em empresas particulares. O primeiro backbone da Internet criado no Brasil foi a RNP (Rede Nacional de Pesquisa), comeou atendendo entidades, faculdades ou universidades que queriam se conectar rede.
Intranet
As empresas descobriram que podem criar redes como a Internet, porm privadas, as Intranets, que cumprem o papel de conectar entre si filiais, departamentos, fornecedores, clientes, etc, mesclando (com segurana) as suas redes particulares de
informao com a estrutura de comunicaes da Internet.
Basicamente a montagem de uma intranet consiste em usar as estruturas de redes locais existentes na maioria das empresas, e
em instalar um servidor Web. O servidor a mquina que faz o papel de repositrio das informaes contidas na intranet,
onde so buscadas as pginas HTML, e-mails ou outros tipos de arquivos.
34
A Intranet simplifica a interao do usurio, tornando fcil o acesso a aplicaes e a informaes estticas e dinmicas, no
importando onde esteja ou qual a plataforma utilizada. Tambm viabiliza uma publicao em tempo real, com informao
muito mais atual, favorecendo o desempenho dos funcionrios da empresa. E finalmente, auxilia no processo de descentralizao das informaes, da distribuio de dados e do desenvolvimento de aplicaes, alm de permitir maior participao do
usurio final na criao de aplicaes.
Extranet
A rigor uma intranet pode operar apenas como uma rede corporativa dentro dos limites da empresa, porm pode ser vantajoso
a ligao da intranet com a internet, neste caso chamada de extranet. A Extranet a disponibilizao da Intranet (no todo ou
em parte) para ser acessada de fora da empresa.
O usurio domstico que acessa a intranet de uma empresa no percebe que est na intranet. A diferena percebida somente
em termos de velocidade pelos funcionrios, quando estes saem da intranet e acessam a internet do computador de sua seo.
Conectando a intranet Internet: Usa-se um roteador para encaminhar as informaes da internet para a rede corporativa e vice-versa. Para obter esta ligao necessrio a contratao de um canal de dados junto a uma empresa.
Tambm preciso registrar um Domnio e obter um endereo IP.
Protegendo a Intranet: necessrio proteger a Web corporativa contra a invaso de intrusos. Isso feito por um
computador dedicado que serve de porteiro, que supervisiona o trnsito das informaes entre a intranet e a extranet
e vice-versa. Esse computador geralmente roda um firewall.
VPN (Virtual Private Network): uma rede corporativa implementada atravs de redes pblicas (Internet).
Firewall
Firewall pode ser definido como uma barreira de proteo, que controla o trfego de dados entre um computador e a Internet
(ou entre a rede onde o computador est instalado e a Internet). Seu objetivo permitir somente a transmisso e a recepo de
dados autorizados. Existem firewalls baseados na combinao de hardware e software e firewalls baseados somente em software. Este ltimo o tipo recomendado ao uso domstico e tambm o mais comum.
H mais de uma forma de funcionamento de um firewall, que varia de acordo com o sistema, aplicao ou do desenvolvedor
do programa. No entanto, existem dois tipos bsicos de conceitos de firewalls:
Filtragem de pacotes: muito utilizado em redes pequenas ou de porte mdio. Por meio de um conjunto de regras
estabelecidas, esse tipo de firewall determina que endereos IPs e dados podem estabelecer comunicao e/ou
transmitir/receber dados. Alguns sistemas ou servios podem ser liberados completamente (por exemplo, o servio
de e-mail da rede), enquanto outros so bloqueados por padro, por terem riscos elevados (como softwares de mensagens instantneas, tal como o ICQ). O grande problema desse tipo de firewall, que as regras aplicadas podem ser
muito complexas e causar perda de desempenho da rede ou no serem eficazes o suficiente.
Filtragem de aplicao: (exemplos de aplicao: SMTP, FTP, HTTP, etc) so instalados geralmente em computadores servidores e so conhecidos como proxy. Este tipo no permite comunicao direto entre a rede e a Internet.
Tudo deve passar pelo firewall, que atua como um intermediador. O proxy efetua a comunicao entre ambos os lados por meio da avaliao do nmero da sesso TCP dos pacotes. Este tipo de firewall mais complexo, porm muito seguro, pois todas as aplicaes precisam de um proxy. Permite um acompanhamento mais preciso do trfego.
O firewall ajuda a impedir que a rede ou computador seja acessado sem autorizao. Assim, possvel evitar que informaes sejam capturadas ou que sistemas tenham seu funcionamento prejudicado pela ao de hackers;
O firewall um grande aliado no combate a vrus e cavalos-de-tria, uma vez que capaz de bloquear portas que
eventualmente sejam usadas pelas "pragas digitais" ou ento bloquear acesso a programas no autorizados;
Em redes corporativas, possvel evitar que os usurios acessem servios ou sistemas indevidos, alm de ter o controle sobre as aes realizadas na rede, sendo possvel at mesmo descobrir quais usurios as efetuaram.
35
Banco de Dados
Conceitos
Bancos de dados (ou bases de dados) so conjuntos de dados com uma estrutura regular que organizam informao. Essas
estruturas costumam ter a forma de tabelas: cada tabela composta por linhas e colunas. Informaes utilizadas para um
mesmo fim so agrupadas num banco de dados.
Segundo [KORTH], um Banco de Dados pode ser definido como uma coleo de dados inter-relacionados, cujo contedo
informativo representa a qualquer instante, o estado de uma determinada aplicao.
Segundo [Navathe], um Banco de Dados uma coleo de dados interligados por uma semntica comum.
Administrao de Dados
Administrar dados significa envolvimento direto com o negcio. O Administrador de dados deve ser um profissional especialista em tcnicas de modelagem de dados para sistemas OLTP (On-Line Transactional Processing) e sistemas OLAP (OnLine Analytical Processing), mas tambm, em um caso timo, ser conhecedor das principais regras que regem o negcio da
empresa. Em outras palavras, uma mistura de Analista de Sistemas (especialista em modelagem) e Analista de Negcio. Algumas de suas responsabilidades so:
Alteraes no modelo de dados segundo a tica de otimizao da utilizao de recursos do sistema gerenciador de
banco de dados (SGBD) utilizado no sistema
Conformidade com o Padro de Banco de Dados (padro para nomes de tabelas, atributos, etc.) adotado pela corporao, e otimizao do modelo de dados, objetivando aumento de performance
Manipulao de Dados: organizar o contedo dos dados inserindo, atualizando, deletando e recuperando dados;
Administrar um banco , de maneira simplista, instalar, configurar, monitorar e solucionar problemas de um SGBD. Esmiuando este conceito, um Administrador de Banco de Dados tem as seguintes responsabilidades:
36
Monitorao do desempenho
Contato com usurios para averiguao de disponibilidade dos dados por eles requisitados e ajuda na determinao e
resoluo de problemas
A administrao deve prever a utilizao do SGBD ao longo de vrios anos, garantindo a ausncia de problemas fsicos futuros que impeam a disponibilidade dos dados.
Segundo [SILBERSCHATZ], o Sistema Gerenciador de Banco de Dados uma coleo de dados inter-relacionados e uma
coleo de programas para acesso a esses dados, proporcionando um ambiente conveniente e eficiente para armazenamento e
recuperao de informaes. A estrutura geral do SGBD dividida nos seguintes componentes funcionais:
Processador de consultas:
o
Gerenciador de armazenamento:
o
Gerenciador de Transaes
Gerenciador de Arquivos
Gerenciador de Buffer
Arquivos de Dados
Dicionrios de Dados
ndices
Dados estatsticos
37
Dicionrio de dados
O Dicionrio de dados armazena os metadados relativos estrutura do banco de dados. Ele muito usado, e portanto grande
nfase dada ao desenvolvimento de um bom projeto com uma implementao eficiente do dicionrio.
Uma notao bastante utilizada para representar o dicionrio de dados sublinhar o atributo identificador (chave), e os tipos
de atributos podem ser T (texto), I (inteiro), S/N (valor lgico), D (data), entre outros.
Modelo conceitual: definido pelo administrador de dados, e refere a uma viso lgica e global dos dados, ele deve
abordar todos os objetos do sistema de informao da empresa independente da aplicao.
Modelo externo: definido pelo administrador de aplicao. Visa um subconjunto do modelo conceitual para uma aplicao especfica da empresa, podendo existir vrias vises externas.
Modelo interno: definido pelo Administrador de Banco de Dados. Se preocupa com a implementao fsica dos dados atravs de um banco de dados.
O Projeto Lgico do Banco de Dados engloba o Modelo conceitual e externo. O Projeto Fsico consiste do Nvel Interno.
38
Tabelas: so as relaes do banco, representadas como uma tabela de dados, composta por colunas.
Colunas: cada coluna na tabela possui um nome nico, e contm um tipo de dados associados. Tambm so denominadas campos ou atributos da tabela.
Linhas: cada linha em uma tabela representa um registro diferente. Por causa do formato tabular, todas elas tm os
mesmos atributos. As linhas tambm so comumente chamadas de registros ou tuplas.
Valores: cada linha consiste em um conjunto de valores individuais que correspondem a colunas. Cada valor deve
ter o tipo de dados especificado pela sua coluna.
Chaves: so utilizadas para identificar um registro especfico, geralmente feito atravs de um valor inteiro nico.
Um nmero artificialmente gerado a melhor forma de garantir a unicidade da chave, pois poucas informaes reais
possuem essa propriedade.
Relacionamentos: as chaves estrangeiras representam um relacionamento entre dados em duas tabelas. Existem trs
tipos bsicos de relacionamentos em um banco de dados relacional:
um para muitos: uma linha em uma tabela vinculada a muitas linhas na outra tabela.
muitos para muitos: muitas linhas em uma tabela so vinculadas a muitas linhas de outra tabela. Esse tipo
de relacionamento normalmente obtm uma tabela inteira para si prprio, logo uma terceira tabela que s
contm as chaves das outras tabelas como chaves estrangeiras em pares serve para mostrar quais registros
esto associados.
Metadados: um banco de dados autodescritvel, e contm uma descrio de sua prpria estrutura como parte integrante do mesmo. Metadados so armazenados na forma de tabelas (tabelas do sistema).
Modelagem de Dados
Modelo Entidade-Relacionamento
O Modelo de Dados, tambm conhecido como E-R (Entidade-Relacionamento) uma forma de representao grfica do conhecimento que se tem sobre o ambiente. Mostra uma viso esttica das informaes de interesse (entidades) e dos vnculos
(relacionamentos) entre elas. Serve para comunicar o analista de dados e o usurio. considerado um modelo semntico.
Entidade (Retngulo): algo real ou abstrato, sobre o qual nos interessa armazenar dados. Entidades fracas (que
dependem de outras) so representadas por um retngulo duplo.
Atributo (Elipse): um dos itens de dados que armazenamos sobre uma entidade. Atributos multivalorados so representados por elipses duplas.
39
Relacionamento (Linhas): Um relacionamento bi-direcional uma relao entre dois tipos de entidades, existindo
tambm o multi-direcional, auto-relacionamento, etc.
Chave de Identificao: Atributo (ou conjunto de) cujo valor individualiza uma ocorrncia da entidade. Por exemplo, para identificar a entidade EMPREGADO, o atributo-chave a MATRCULA.
Existem entidade independentes (a chave est em seus atributos), dependente (chave depende de outra) e associativa (a chave
obtida atravs da concatenao das chaves de identificao das entidades que ela associa. Representaes para esses s outras
caractersticas do banco surgiram em um modelo estendido (Teorey).
Modelo Relacional
Um banco de dados relacional consiste em uma coleo de tabelas, cada uma das quais com um nome nico. Uma linha em
uma tabela representa um relacionamento entre um conjunto de valores. Uma vez que essa tabela uma coleo de tais relacionamentos, h uma estreita correspondncia entre o conceito de tabela e o conceito matemtico de relao, a partir do qual
se origina o nome desse modelo de dados. Logo o Modelo Relacional est formalmente baseado na lgebra Relacional.
Seguindo a terminologia do modelo relacional, tratamos os nomes dessas colunas como atributos. Para cada atributo h um
conjunto de valores permitido, chamado domnio do atributo em questo. Como as tabelas em essncia so relaes, podemos
usar os termos matemticos relao e tupla no lugar de tabelas e linhas.
Trs objetivos bsicos motivaram fortemente as pesquisas que resultaram no modelo relacional:
Independncia dos dados: definio clara e precisa dos limites entre os aspectos fsicos e lgicos de um gerenciador de banco de dados.
Comunicabilidade: permitir um modelo estrutural simples de forma que usurios de vrias categorias tivessem um
entendimento comum dos dados e pudessem se comunicar atravs do banco de dados.
Linguagem de alto nvel: existncia de uma linguagem que permitisse a manipulao de um conjunto de dados atravs de apenas um simples comando.
Atualmente esses objetivos j se encontram incorporados ao cotidiano do ambiente de desenvolvimento de sistemas. J passa
despercebido, por exemplo, o conceito de independncia dos dados, pois todos os bancos de dados possuem essa caracterstica. Mas alm destas existem as 12 regras de Codd.
12 Regras de Codd
Um banco de dados, para que seja considerado "totalmente relacional", deve atender as 12 regras definidas por E. F. Codd, o
criador do modelo relacional para banco de dados.
As doze regras de Codd esto baseadas na regra zero, que determina o seguinte: "Qualquer sistema considerado, ou que deseja ser, um sistema gerenciador de banco de dados relacionam deve ser capaz de gerenciar, por completo, bases de dados atravs de sua capacidade relacional". Essa regra determina que um SGBDR no permite excees quanto ao modelo relacional
de gerenciamento de bases de dados. As 12 so as seguintes:
40
Regra 2 Acesso Garantido: Cada um e qualquer valor atmico (datum) em um banco de dados relacionam possui
a garantia de ser logicamente acessado pela combinao do nome da tabela, do valor da chave primria e do nome da
coluna.
Regra 3 Tratamento sistemtico de nulos: Valores nulos devem ser suportados de forma sistemtica e independente do tipo de dado para representar informaes inexistentes e / ou inaplicveis.
Regra 4 Dicionrio de dados ativo baseado no modelo relacional: A descrio do banco de dados representada no nvel lgico da mesma forma que os dados ordinrios, permitindo que usurios autorizados utilizem a mesma
linguagem relacional aplicada aos dados regulares.
Regra 5 Linguagem Detalhada: Um sistema relacional pode suportar vrias linguagens e vrias formas de recuperao de informaes. Entretanto, deve haver pelo menos uma linguagem, com uma sintaxe bem definida e ex-
pressa por conjuntos de caracteres, que suporte de forma compreensiva todos os seguintes itens: definio de dados,
definio de views, manipulao de dados (interativa e embutida em programas), restries de integridade, autorizaes e limites de transaes.
Regra 6 Atualizao de Views: Todas as vises ("views") que so teoricamente atualizveis devem tambm ser
atualizveis pelo sistema.
Regra 7 Atualizao de alto nvel: A capacidade de manipular um conjunto de dados (relao) por de um simples
comando deve-se estender s operaes de incluso, alterao ou excluso de dados.
Regra 8 Independncia Fsica: Programas de aplicao permanecem logicamente inalterados quando ocorrem
mudanas no mtodo de acesso ou na forma de armazenamento fsico.
Regra 9 Independncia Lgica: Mudanas nas relaes e nas views provocam pouco ou nenhum impacto nas aplicaes.
Regra 10 Independncia de Integridade: As aplicaes no so afetadas quando ocorrem mudanas nas restries de integridade.
Regra 11 Independncia de Distribuio: As aplicaes no so logicamente afetadas quando ocorrem mudanas geogrficas dos dados. Devem permanecer inalterados quando so distribudos em meios ou mquinas diferentes.
Regra 12 No Subverso: Se um sistema possui uma linguagem de baixo nvel, essa linguagem no pode ser usada para subverter as regras de integridades e restries definidas no nvel mais alto.
Alm dessas doze regras bsicas, o modelo relacional tambm define nove regras estruturais que tratam da definio de chaves primrias, chaves estrangeiras, views, tabelas etc.; dezoito regras de manipulao que definem as operaes de "join",
"union", "division" etc.; e trs regras de integridade: integridade de entidade, integridade referencial e a capacidade de definir
outras regras de integridade sem introduzir dependncia estrutural. A integridade de entidade define que uma chave primria
no pode ter valores duplicados ou nulos.
A integridade referencial determina que o valor de uma chave estrangeira deve ter obrigatoriamente correspondncia em uma
chave primria de uma outra relao.
lgebra Relacional
A lgebra relacional uma linguagem de consultas procedural, que consiste em um conjunto de operaes tendo como entrada uma ou duas relaes e produzindo, como resultado, uma nova relao.
Seleo ( ): seleciona tuplas que satisfaam uma determinada condio. O resultado uma relao com a mesma
estrutura da tabela original, e que contm as linhas que satisfazem condio.
Projeo ( ): retorna uma relao apenas com os atributos selecionados. Duplicatas so eliminadas.
Interseo ( ): encontra as tuplas que esto tanto em uma relao quanto em outra.
Diferena (-): encontra as tuplas que esto em uma relao, mas no em outra.
Produto Cartesiano (x): combina as informaes de duas relaes, contendo todos os pares de tuplas possveis. O
nmero de tuplas resultante ser o produto entre o nmero de tuplas de cada relao.
Juno ( ): esta operao fundamental une duas relaes atravs de uma coluna em comum entre elas, efetivando
os relacionamentos entre as entidades de um banco de dados.
Diviso ( ): usada quando a consulta emprega a frase "para todos", pois responde perguntas do tipo "quais fornecedores fornecem todas as peas?". til em relacionamentos "muitos para muitos".
Normalizao
Normalizao uma tcnica de projeto amplamente utilizada no desenho de bancos de dados relacionais.
A teoria da normalizao baseada no conceito de formas normais. Uma tabela relacional dita estar numa determinada
forma se ela satisfaz um certo conjunto especfico de restries.
41
Normalizao o processo de remoo de dados redundantes de tabelas relacionais, atravs de sua decomposio em tabelas
menores. O objetivo da normalizao criar um conjunto de tabelas relacionais livres de dados redundantes e que pode ser
modificada de forma consistente e correta.
Dependncia Funcional
Um atributo Y funcionalmente dependente de um atributo X se cada valor de X tenha associado a ele precisamente um valor de Y. Quando o atributo X uma chave primria, ento todos ao atributos so, por definio, dependentes de X, pois no
podem existir dois registros com o mesmo valor para X.
Notao: R.x ! R.y (l-se a coluna x da tabela relacional R funcionalmente determina (identifica) a coluna y.
A dependncia funcional pode ser classificada em:
Total: um atributo totalmente dependente de outro se ele for funcionalmente dependente do outro e no dependente de um subconjunto de outro
Parcial: um atributo parcialmente dependente de outro se ele for funcionalmente dependente de um subconjunto
de outro
Considere a tabela abaixo, onde a chave primria formada pelos atributos cdigo-func + cdigo-curso. O atributo avaliao
dependente total da chave composta. J o atributo descrio-curso tem dependncia parcial com relao esta chave, pois
depende somente de parte dela, ou seja, de cdigo-curso.
cdigo-func
cdigo-curso
descrio-curso
avaliao
data-concluso
00001
ENG01
ENG. CIVIL
01/01/2005
A tabela ao lado anteriormente possua valores multivalorados para Cdigo-Pea (P1,P2,P3,P4,P5) e Quantidade (300,200,400,200,100). Agora est na forma
1FN.
Entretanto, ela ainda contm dados redundantes, pois a
informao da CIDADE e STATUS CIDADE precisa
ser repetida para todas as peas.
No possvel cadastrar um certo fornecedor para uma
cidade at que ele fornea uma pea. Isso no desejvel.
42
Crie tabelas separadas para conjuntos de valores que se referem a mltiplos registros e relacione essas tabelas atravs de uma chave estrangeira
As informaes CIDADE e STATUS CIDADE no so totalmente dependentes da chave primria total, por isso foi criada a
tabela FORNECEDOR para guardar esses dados, tendo como chave primria o Cdigo Fornecedor.
Note que ainda h o problema de se relacionar o Status com a Cidade, pois deve existir obrigatoriamente um fornecedor nela.
Foi criada a tabela CIDADE com o nome da cidade como chave primria. Desta forma, a tabela
FORNECEDOR s precisa guarda o Cdigo Fornecedor (chave) e o valor da Cidade, que se relaciona com esta tabela.
Um esquema de dados nessa situao pode facilmente lidar com o projeto de um banco de dados
para uma empresa inteira.
Ambiente Operacional
Conceito de transao
um conjunto de procedimentos que executado num banco de dados, que para o usurio visto como uma nica ao. A
integridade de uma transao depende de 4 propriedades, conhecidas como ACID.
Atomicidade: Uma transao no pode ser executada pela metade, isto , ou se executa ela por inteiro, ou se retorna
para o estado anterior a transao, onde nada foi executado.
Consistncia: Uma transao deve ser efetuada como um programa que preserva a consistncia do BD. Sendo assim, ela de responsabilidade do programador que codifica a transao. Ela s executa se o estado do Banco de Dados permanecer consistente aps seu fim.
Isolamento: Sua necessidade surge em execues concorrentes, as diversas transaes que ocorrem simultaneamente, no podem ser intercaladas de forma a gerar um estado inconsistente.
Concorrncia
Controle de concorrncia um mtodo
usado para garantir que as transaes
43
so executadas de uma forma segura e segue as regras ACID. Os SGBD tm de ser capazes de assegurar que nenhuma ao
de transaes submetidas (committed transactions) sero perdidas ao desfazer transaes abortadas (rollback). Uma transao
uma unidade que preserva consistncia.
Deadlocks acontecem quando duas diferentes aplicaes tentam e alteram os mesmos dados na mesma hora. Neste ponto,
ambas as sesses so bloqueadas, pois cada uma est aguardando a outra para serem liberadas. Os SGBDS atuais tratam o
deadlock atravs da sua deteco, encerrando uma das sesses (com rollback), e informando o erro por de uma mensagem.
Outros problemas que podem ocorrer com um banco de dados, devido concorrncia de transaes so:
Problema da Atualizao Perdida: quando duas transaes acessam os mesmos itens em operaes intercaladas, e
tornam o valor de um dos itens de forma incorreta.
Problema da Atualizao Temporria: uma transao atualiza um item, que acessado por outra transao, mas a
atualizao no item falha por alguma razo, e volta ao seu valor.
Problema do Sumrio Incorreto: ocorre quando uma transao aplica uma funo agregada (estatstica, como contagem ou mdia) para um grupo de registros, enquanto outras transaes fazem atualizaes no grupo.
Bloqueio em 2 fases: consiste de aplicar bloqueios em operaes de atualizao ou consulta, sendo do tipo:
o
Ordenao por Timestamp: o timestamp um identificador nico para a transao, criado pelo SGBD.
Recuperao
a capacidade de recuperao automtica no caso de falhas e de ferramentas de restaurao do banco de dados. Aplicativos
de importao e exportao de dados (tabelas, outros objetos) devem estar disponveis.
As falhas so classificadas como:
Transao: erros de lgica, diviso por zero, overflow, parmetros invlidos, etc.
Sistema: erros que afetam o sistema como um todo, como crash do sistema, falta de energia, deadlocks...
Mdia: normalmente relacionado ao hardware, como falha ao gravar na memria principal, problemas de disco...
Para se recuperar de falhas que afetam as transaes, o sistema mantm um log, mantido em disco.
Segurana
a existncia de mecanismos de bloqueio a acessos no autorizados. Algumas funcionalidades:
44
Independncia fsica de dados: habilidade de modificar o esquema fsico (interno) sem a necessidade de reescrever
os programas aplicativos. As modificaes no nvel fsico melhoram o desempenho.
Independncia lgica de dados: habilidade de modificar o esquema conceitual sem a necessidade de reescrever os
programas aplicativos. As modificaes neste nvel so necessrias quando a estrutura lgica do banco alterada.
Integridade
a capacidade do banco de garantir em qualquer instante a consistncia do banco de dados, atravs de integridade referencial, integridade de domnio e integridade de entidade.
Vises (views)
Uma viso (view) uma tabela lgica ou virtual composta pelo resultado de um conjunto de queries pr-compiladas. Diferente de tabelas normais em um banco de dados relacional, uma view no faz parte do esquema fsico, mas sim uma tabela dinmica e virtual, computada ou coletada de dados do banco. Alterar os dados em uma viso altera os dados do banco, embora o
SGBD possa ter meios de impedir isso (read only views).
Gatilhos (Triggers)
Gatilho ou trigger um recurso de programao presente na maioria dos sistema de gerenciamento de banco de dados, utilizado para associar um procedimento armazenado a um evento do banco de dados (leitura, incluso, excluso, atualizao de
registro, por exemplo) de modo que o procedimento armazenado seja executado automaticamente sempre que o evento associado ocorrer.
45
Caractersticas
Um sistema de banco de dados distribudos consiste em uma coleo de ns, cada qual podendo participar na execuo de
transaes que fazem acesso a dados em um ou diversos ns. A diferena principal entre sistemas de bancos de dados centralizados e distribudos que no primeiro os dados esto localizados em um nico local, enquanto no ltimo os dados residem
em diversos locais, e h a necessidade de comunicao entre eles.
Uma vantagem que se um n falhar em um sistema distribudo, os ns remanescentes podem ser capazes de continuar operando. Em particular, se itens de dados so duplicados em diversos ns, uma transao que necessita de um item de dado particular pode ach-lo em diversos ns. Assim, a falha de um n no implica necessariamente no desligamento do sistema.
A principal desvantagem do sistema de banco de dados distribudos a complexidade adicional requerida para assegurar a
prpria coordenao entre os ns. Uma vez que os ns que formam o sistema distribudo operam em paralelo, mais difcil
assegurar que os algoritmos esto corretos, e h um grande potencial para defeitos. Pode existir tambm sobrecarga de processamento, j que h troca de mensagens entre os ns.
Complexidade no controle
Os BDDs podem implementar operaes adicionais que se aproveitam da distribuio dos ns para melhorar algum aspecto
do banco. Uma dessas operaes a Semi-juno, que visa reduzir o nmero de tuplas em uma relao antes de transferi-la
para outro site. Outra questo no processamento de consultas onde execut-las: no cliente ou no servidor:
Query Shipping: transporte da consulta do cliente para o servidor, para ser executada. Vantajosa quando o servidor
possui grande capacidade de armazenamento.
Data Shipping: transporte da consulta do servidor para o cliente, para ser executada pelo cliente. vantajosa quando h disponibilidade de processamento nos clientes, porm h um alto custo de comunicao na rede (sem cache).
Hybrid Shipping: uma combinao das anteriores, com o objetivo de reduzir ao mximo o custo da execuo.
Fragmentao e Replicao
"Qual site deve ser usado para armazenar quais partes do Banco de Dados?", supondo que no haja replicao.
Fragmentao Horizontal: bancos armazenam um subconjunto de tuplas (ex: onde DNO < 5)
A replicao de dados entre os bancos de dados distribudos implica na sua redundncia entre os sites, sendo til na melhoria
da disponibilidade dos dados, pois se um site ficar fora, o dado pode ser buscado em outro. Isso ainda mais forte na arquitetura completamente replicada, que possui alta disponibilidade e capacidade de recuperao. O desempenho das consultas aumenta, j que no necessrio navegar pela rede para buscar um dado replicado. Mas o desempenho em atualizaes diminui.
46
Tupla (tuple): um tipo estruturado, agregando informaes afins. Corresponde ao struct do C++.
Conjunto (set): nesse tipo de dado no pode haver dois elementos com o mesmo valor (na bag isso possvel).
List, Bag e Array: so do tipo "coleo". O tipo List e Array so ordenados, enquanto o Bag desordenado.
Encapsulamento de Operaes
ODL (Linguagem de Definio de Objetos) e OQL (Linguagem de Consulta de Objetos, similar ao SQL)
SQL (ANSI)
SQL (Structured Query Language) uma linguagem de pesquisa declarativa de banco de dados, utilizada para manipulao
de dados e criao ou manuteno de bancos relacionais. SQL foi criada originalmente pela IBM, e foi adotada como um
padro pela ANSI em 1986 e pela ISO no ano seguinte.
A maioria dos bancos de dados relacionais utilizam o SQL como linguagem padro. Apesar disso, o SQL no pode ser considervel portvel entre os vrios bancos de dados, pois muitos bancos de dados implementam extenses do SQL (como o
PL/SQL da Oracle e o Transact-SQL da Microsoft), e muitos tambm omitem ou modificam algumas implementaes de
certos comandos ou tipos de dados.
A linguagem SQL baseada na lgebra Relacional, com algumas modificaes e extenses.
Uso do Join
Uma juno (join) uma query que combina linhas de vrias tabelas ou vises. Sempre que so especificadas mais de uma
tabela na clusula FROM, uma juno feita.
A juno natural baseada em todas as colunas com o mesmo nome em ambas as tabelas.
SELECT location_id, city, department_name
FROM locations NATURAL [INNER] JOIN departments;
47
A juno cartesiana (ou cross join) acontece quando todas as combinaes linha a linha so geradas.
SELECT a, b FROM cont CROSS JOIN dept
As junes externas (ou outer joins) podem ser direita, esquerda, ou completas, e so usadas para retornar linhas
baseadas em uma condio, assim como as linhas que no atendem condio da tabela direita, ou esquerda, ou
de ambas.
-- Mostra todos os pases, independente da existncia das localidades
SELECT country_name, city
FROM
Subconsultas
Subconsultas (ou subqueries) so queries dentro de outras queries. A query mais interna processada primeiro, e retorna um
conjunto de resultados para a query externa.
Subconsultas utilizadas na clusula FROM geram o que chamado de uma inline view.
Subconsultas utilizadas na clusula WHERE so chamadas de subconsultas aninhadas.
Exemplos:
SELECT last_name, first_name, salary FROM emp
WHERE
(cnt_code, st_code) IN
state
st_name = 'TEXAS');
UNION: retorna todas as linhas nicas selecionadas por qualquer uma das queries.
UNION ALL: retorna todas as linhas (incluindo duplicatas) retornadas por qualquer uma das queries.
MINUS: retorna linhas nicas selecionadas da primeira query, que no estejam presente na segunda.
49
Tornar as informaes de uma organizao acessveis: o contedo de um DW deve ser compreensvel e navegvel e
o acesso aos dados deve ser feito com bom desempenho.
Tornar as informaes de uma organizao consistentes: as informaes oriundas de diferentes reas da organizao
devem ter garantidas a integridade semntica, ou seja, combinadas sem problemas de nomes iguais para coisas diferentes, ou nomes diferentes para a mesma coisa.
Ser uma fonte de informaes flexvel e adaptvel: um DW deve suportar contnuas modificaes estruturais para
insero de novos dados sem comprometer a estrutura j existente.
Ser o alicerce para a tomada de deciso: o DW deve conter os dados certos na forma certa para suportar a tomada de
deciso. S h uma verdadeira sada de um DW: as decises que forem tomadas aps o DW apresentar as evidncias. O DW antes de tudo um SAD (Sistema de Apoio Decises).
Um termo relacionado o BI, abreviao para Business Intelligence, ou Inteligncia Aplicada aos Negcios. Podemos dizer
que BI um conjunto de tecnologias que permitem a anlise do desempenho de um negcio.
50
Ferramentas de BI sempre existiram e fizeram parte de um projeto de DW. Veremos que a maioria das solues de BI apresentadas precisam de um banco de dados histrico e
separado do ambiente de produo (DWs setoriais ou
Data Marts). Para analisar o desempenho do negcio
com eficincia, deve-se usar um banco de dados histrico separado das bases operacionais. A maioria
dos produtos existentes no mercado sempre montam
um DW para esse tipo de anlise.
Para implantar ferramentas de BI com bom desempenho, como um pacote CRM (Customer Relationship
Management), por exemplo, necessria a implementao de um DW, que a base para aplicaes de
BI.
A arquitetura de um ambiente de data warehouse abrange estruturas de armazenamento, mecanismos de integrao, comunicao, processamento e apresentao da informao para o usurio final. composta de:
Arquitetura de Dados: descreve o contedo do data warehouse os dados que so importantes para o negcio, as
estruturas de armazenamento que compem o ambiente do DW e as fontes que as alimentam, os modelos de dados
lgicos e fsicos, agregaes e hierarquias, tudo baseado nos requisitos levantados. Define a granularidade dos dados, o volume e a distribuio dos dados no ambiente.
Arquitetura Tcnica: abrange os processos e as ferramentas que atuam sobre os dados. ela que se preocupa com
a forma com a qual os dados sero extrados da fonte, como sero tratados de modo a atender os requisitos do negcio, e como fazer para que eles se tornem acessveis para o usurio. responsvel pelo gerenciamento das atividades
que criam e mantm as informaes do DW.
Administrao e Gerenciamento: responsvel por toda a infra-estrutura do ambiente de data warehouse (hardware, rede, etc.) e pelo gerenciamento dos servios que contribuem para manter o data warehouse atualizado e consistente. Atividades: segurana, monitoramento da performance, dimensionamento do hardware, backup e recuperao,
checagem da qualidade de dados, etc.
Metadados: consistem em informaes sobre dados que compem o data warehouse. Eles so extremamente importantes dentro do ambiente, pois representam uma viso integrada das bases de dados que fazem parte deste ambiente.
Eles so utilizados para construir, manter, gerenciar e utilizar o DW.
Orientado a assuntos: implica que os dados relevantes dos maiores assuntos de uma organizao, como clientes,
produtos e contas, so recolhidos juntos, em nico lugar. Por exemplo, em um sistema bancrio OLTP, aplicaes
independentes so mantidas para as diferentes transaes do cliente (depsitos, emprstimos, etc). Para criar um relatrio financeiro para um cliente, precisaramos acessar cada sistema OLTP separadamente. Porm, um data warehouse pode coletar os dados independentes para fornecer esta informao para o cliente. Como o DW organizado
por temas (assuntos), os dados so menos agrupveis por joins.
Varivel com o tempo: a dimenso do tempo um tema comum onde os dados do DW so construdos. Tempo
um dos critrios primrios para filtragem de vrias atividades. Por exemplo, um analista pode gerar uma query, em
uma dada semana, um dado ms ou ano. Podem ser comparadas as vendas dos primeiros meses com anos anteriores.
Pode responder a pergunta "Vale pena lanar essa campanha no inverno?". A causa de uma subida ou declnio nas
vendas pode ser analisada, assim como outros dados histricos.
Integrado: os dados so carregados de vrias fontes, e antes de serem lidos pelo DW, necessitam ser convertidos em
um formato que seja preciso, significativo e consistente. Exemplo: trs sistemas (vendas, catlogo e vendas especiais), cada sistema identifica um produto de forma diferente (letras, nmeros). Para que a informao sobre os produtos seja carregada pelos trs sistemas de forma significativa, eles devem ser convertidos para um cdigo em comum.
51
No-Voltil: implica que os dados no so alterados aps o seu carregamento pelo DW. Porm, esses dados devem
ser precisos e atualizados, pois so o alvo de queries para a busca de informaes. Considere o exemplo de uma cadeia de lojas alimentcias. A movimentao de um produto entre as lojas monitorado e atualizado por um sistema
OLTP. O status desta movimentao muda em cada estgio. O status do produto voltil at ele ser encaminhado
para o depsito de uma loja, quando o seu status se torna completo, e pode ser armazenado no DW.
Data Marts
Acessar dados do DW pode consumir bastante tempo, por causa do grande nmero de usurios e volume de dados. Para lidar
com esse problema, utilizam-se Data Marts.
Um data mart uma implementao de uma estratgia de particionamento de dados, que permite os usurios acessar dados
por departamento. Podem existir DW que possuem informaes de todos os departamentos de uma organizao, mas tambm
um data mart que contm dados apenas do dept. financeiro. Os data marts podem ser o ponto de incio de um DW.
Se um data mart referenciado por um data warehouse, ento ele chamado de dependente. Caso seja carregado diretamente
de sistemas OLTP, ento chamado de independente.
Com o aparecimento de data mart ou warehouse departamental, a abordagem descentralizada passou a ser uma das opes de
arquitetura data warehouse.Os data marts podem surgir de duas maneiras. A primeira top-down e a outra a botton-up.
Top-down: quando a empresa cria um DW e depois parte para a segmentao, ou seja, divide o DW em reas menores gerando assim pequenos bancos orientados por assuntos departamentalizados.
Botton-up: quando a situao inversa. A empresa, por desconhecer a tecnologia, prefere primeiro criar um banco
de dados para somente uma rea. Com isso os custos so bem inferiores de um projeto de DW completo. A partir da
visualizao dos primeiros resultados parte para outra rea e assim sucessivamente at resultar num DW.
Implementar um data mart traz alguns benefcios, como a localizao (geogrfica), fazendo que seja especfico para uma
determinada regio, alm de ser menor e mais fcil de gerenciar que o DW organizacional. Outro benefcio de implementar
um data mart que ele reduz a demanda de dados no DW.
A tecnologia usada tanto no DW como no Data Mart a mesma, sendo a principal diferena a de que os Data Marts so
voltados somente para uma determinada rea, j o DW voltado para os assuntos da empresa toda. Portanto, cabe a cada empresa avaliar a sua demanda e optar pela melhor soluo. Como um data mart possui uma quantidade significativamente menor de dados que um DW, o nmero de usurios que o acessam tambm menor, reduzindo o trfico na rede.
Descrio detalhada da estrutura, contedo, chaves primrias e ndices dos dados do DW.
Informao sobre a localizao e significado do dado. Ajuda usurios a navegar pelos dados do DW.
Informao utilizada para mapear dados entre os sistemas de origem e o data warehouse.
Os metadados devem estar sempre atualizados, para garantir que o DW funcione com eficincia.
52
Onde: est sendo solicitada a evoluo de medidas de exibio de filmes por regio, estado e cidade.
O Qu: Gnero do Filme o O QUE do fato. Resumindo: o que deve ser acompanhado. Saber se cresce ou no o
pblico de determinado tipo de filme em determinada regio. Exemplo: ser que filmes com linguagem escrachada
so bem aceitos no Sul do Brasil?
Quem: A Sala de Exibio o QUEM do nosso problema. Pois Quem exibe uma sesso de cinema.
Quando: A granularidade desta dimenso est bem disposta nos requisitos: MENSALMENTE. Porm, se temos
MS, podemos facilmente estruturar nossa Dimenso Tempo como: Ano e Ms. Porm quando analisamos os requisitos com mais detalhes, podemos ver que ser necessria uma anlise de PERODO DE FRIAS. Este tipo de anlise no pode ser feita com o gro MS. Para Contornar este problema modelaremos nossa dimenso TEMPO como:
Trimestre, Ms, Data, Ano
Como Tratar Hierarquia no Modelo Dimensional: membros da hierarquia so atributos da mesma dimenso. Criar uma
entidade dimenso para cada nvel hierrquico (SnowFlake).
Definio de Chaves: chaves utilizadas em cada entidade dimenso no devem ser as mesmas do modelo transacional, pois
para o Data Mart importante manter o histrico dos dados. Cada dimenso deve ter uma chave exclusiva nesse ambiente.
Validao do Modelo: para validar este modelo s resta estruturar tabelas com simulao de dados. Por meio de observao
poderemos confirmar se possvel obter resultados que satisfaam as necessidades.
Apresenta dados aos usurios finais de forma natural e intuitiva, navegando pelos modelos de dados de forma efetiva, entendendo a informao. A organizao reconhece o valor dos seus dados.
Acelera a entrega da informao para usurios finais, pois os valores computados so preparados na fase de projeto.
OLAP garante a segurana dos dados, enquanto vrios usurios compartilham dados confidenciais.
As ferramentas OLAP so as aplicaes que nossos usurios finais tm acesso para extrarem os dados de suas bases com os
quais gera relatrios capazes de responder as suas questes gerenciais. Elas surgiram juntamente com os sistemas de apoio a
deciso para fazerem a extrao e anlise dos dados contidos nos Data Warehouses e Data Marts. Algumas caractersticas:
Consultas ad-hoc: so consultas com acesso casual nico e tratamento dos dados segundo parmetros nunca antes
utilizados, geralmente executado de forma iterativa e heurstica. O prprio usurio gera consultas de acordo com suas necessidades de cruzar as informaes de uma forma no vista e com mtodos que o levem aquilo que procura.
53
Slice-and-Dice: essa caracterstica de extrema importncia. Permite analisar as informaes de diferentes prismas
limitados somente pela nossa imaginao. Utilizando esta tecnologia conseguimos ver a informao sobre ngulos
que anteriormente inexistiam sem a confeco de um DW e a utilizao de uma ferramenta OLAP.
Drill Down/Up: consiste em fazer uma explorao em diferentes nveis de detalhe das informaes. Com o Drill
Down voc pode subir ou descer dentro do detalhamento do dado, como por exemplo analisar uma informao
tanto diariamente quanto anualmente, partindo da mesma base de dados.
Gerao de Queries: a gerao de queries no OLAP se d de uma maneira simples, amigvel e transparente para o
usurio final, o qual precisa ter um conhecimento mnimo de informtica para obter as informaes que deseja.
Cada uma destas tecnologias e tcnicas tem seu lugar no mercado de Suporte Deciso e apia diferentes tipos de anlises.
importante lembrar que as exigncias do usurio devem ditar que tipo de Data Mart voc est construindo. Como sempre, a
tecnologia e tcnicas devem estar bem fundamentadas para atenderem da melhor maneira possvel essas exigncias.
Arquiteturas OLAP
Para suportar os requerimentos analticos, existem quatro tipos de arquiteturas OLAP que podem ser implementadas, a multidimensional (MOLAP), relacional (ROLAP), desktop (DOLAP) ou hbrida (HOLAP).
DOLAP: ferramentas que disparam uma instruo SQL, de um cliente qualquer, para o servidor e recebem o microcubo de informaes de volta para ser analisado na workstation. O ganho com essa arquitetura o pouco trfego que
se d na rede, visto que todo o processamento OLAP acontece na mquina cliente, e a maior agilidade de anlise, alm do servidor de banco de dados no ficar sobrecarregado, sem incorrer em problemas de escalabilidade. A desvantagem que o tamanho do micro-cubo no pode ser muito grande, caso contrrio a anlise passa a ser demorada
e/ou a mquina do cliente pode no suportar em funo de sua configurao.
ROLAP: possuem uma engenharia de acesso aos dados e anlise OLAP com uma arquitetura um pouco diferente.
Nesse caso a consulta enviada ao servidor de banco de dados relacional e processada no mesmo, mantendo o cubo
no servidor. O que podemos notar nesse caso que o processamento OLAP se dar somente no servidor. A principal
vantagem dessa arquitetura que ela permite analisar enormes volumes de dados, em contra partida uma grande
quantidade de usurios acessando simultaneamente poder causar srios problemas de performance no servidor causando, inclusive, o travamento do mesmo.
MOLAP: processa-se da seguinte forma: com um servidor multidimensional o acesso aos dados ocorre diretamente
no banco, ou seja, o usurio trabalha, monta e manipula os dados do cubo diretamente no servidor. Isso traz grandes
benefcios aos usurios no que diz respeito performance, mas tem problemas com escalibilidade alm de ter um
custo alto para aquisio.
HOLAP: essa nova forma de acessar os dados nada mais do que uma mistura de tecnologias onde h uma combinao entre ROLAP e MOLAP. A vantagem que com a mistura de tecnologias pode-se extrair o que h de melhor
de cada uma, ou seja, a alta performance do MOLAP com a escalibilidade melhor do ROLAP.
Slice and Dice: ou fatiamento do cubo, a restrio das coordenadas nas dimenses de acordo com critrios definido em cima de atributos das dimenses. Por exemplo: visualizar somente os dados dos mercados de pequeno porte.
Agregao: permite reduzir a dimensionalidade de um cubo ou de uma fatia de cubo. Ex: ao visualizar a receita total
de cada mercado por ms estamos agregando os dados de receita na dimenso produto, eliminando-a do cubo.
Drill-up/Drill-down: a navegao entre nveis de agregao, de acordo com hierarquias existentes nas dimenses.
Ex: o usurio pode comear visualizando dados totais de receita para os mercados e fazer um drill-up para visualizar
os dados totais por bairro, agregando os mercados prximos. A modelagem dimensional proporciona um ganho de
tempo na consulta, melhor organizao do sistema e a sua utilizao se d de forma intuitiva para o usurio.
Um modelo dimensional definido em termos de suas dimenses e suas medidas (ou fatos):
54
Dimenses: Representam as possveis formas de visualizar os dados. So as entradas para as consultas (tempo, regio, cliente, etc). So os atributos e hierarquias das dimenses que permitem realizar as operaes descritas anteriormente, por isso a sua descoberta um fator crtico para o sucesso do DW.
Fatos: a tabela central que interliga as dimenses e tem os indicadores de anlise ou mtricas (quantidade, valores,etc). A tabela fato dever possuir, no mnimo, as trs primeiras dimenses. Os fatos so as medies do negcio,
e geralmente so dados numricos e aditivos, podendo ser agregados por somas, mdias, etc. Exemplos de fatos so:
valor total da venda, quantidade vendida, etc.
No existe uma notao grfica amplamente adotada para modelos dimensionais. Uma das representaes lgicas mais comumente utilizada o esquema estrela (star schema), que utiliza a abordagem relacional e os seus componentes, com algumas restries (entidades, relacionamentos, chaves, cardinalidade, etc:
Existe uma variao deste sistema, o floco-de-neve (snowflake schema), que faz a normalizao das tabelas de dimenso,
evitando a redundncia. Mas em geral normalizar uma dimenso no traz muito benefcio para o modelo, piorando a compreensibilidade e diminuindo a performance, em troca da economia de espao.
55
Foi identificado o fato ocorrncia. O gro do fato ser o nmero de ocorrncias registradas de uma empresa, em um dia, acompanhada por um advogado e por um funcionrio do servio de defesa do consumidor:
56
Captura: so funcionalidades e componentes para gerar, capturar, preparar e processar informao eletrnica ou analgica. Alguns exemplos so as ferramentas OCR (Optical Character Recognition), HCR (Handprint Character
Recognition), processamento de formulrios, ndices e classificao automtica.
Gerenciamento: lidam com o processamento e uso da informao, envolvendo banco de dados para consultas e administrao, e sistemas de autorizao de acesso. Ferramentas de controle de verses (Chekin-Chekout), busca e navegao, colaborao e workflow esto includas nessa categoria.
Armazenamento: dividido em duas categorias, Store (para armazenamento temporrio) e Preserve (armazenamento
de longo prazo), sendo componentes da infra-estrutura responsveis por guardar a informao, como banco de dados, repositrios, data warehouses, servios de biblioteca e os prprios dispositivos de armazenamento (disco, etc).
Entrega (Deliver): o componente que apresenta a informao para os demais, contendo funes para a introduo
de novas informaes no sistema, personalizao, publicao e distribuio, envolvendo o formato (XML, PDF,
TIF), as tecnologias de segurana, portais para Internet, extranet e intranet, e outras mdias (e-mail, papel, TV, etc).
Data Mining
Knowledge Discovery in Databases (KDD) o processo de extrao de padres (conhecimentos) embutidos nos dados. Alm
disso, os padres extrados devem ser vlidos, novos (previamente desconhecidos), potencialmente teis e compreensveis.
Data Mining um conjunto de tcnicas e ferramentas usadas para identificar padres embutidos em grandes massas de dados.
Data Mining tambm conhecido como "arqueologia" da informao, o processo de extrair inteligentemente tendncias e
informaes escondidas em banco de dados ou outros repositrios de informao. Data mining utiliza-se nas reas de engenharia, cincia, medicina, negcios, educao, etc. um campo interdisciplinar que liga reas como sistema de banco de
dados, estatstica, aprendizado computacional, visualizao de dados, recuperao de informao e computao de alto desempenho. Duas tcnicas de Data Mining so: Descoberta de Regras de Associao e Clustering.
Qualquer sistema de Data Warehouse (DW) s funciona e pode ser utilizado plenamente, com boas ferramentas de explorao. Com o surgimento do DW, a tecnologia de Data Mining (minerao de dados) tambm ganhou a ateno do mercado.
Como o DW, possui bases de dados bem organizadas e consolidadas, as ferramentas de Data Mining ganharam grande importncia e utilidade. Essa tcnica, orientada a minerao de dados, oferece uma poderosa alternativa para as empresas descobrirem novas oportunidades de negcio e acima de tudo, traarem novas estratgias para o futuro.
O propsito da anlise de dados descobrir previamente caractersticas dos dados, sejam relacionamentos, dependncias ou
tendncias desconhecidas. Tais descobertas tornam-se parte da estrutura informacional em que decises so formadas. Uma
tpica ferramenta de anlise de dados ajuda os usurios finais na definio do problema, na seleo de dados e a iniciar uma
apropriada anlise para gerao da informao, que ajudar a resolver problemas descobertos por eles. Em outras palavras, o
usurio final reage a um estmulo externo, a descoberta do problema por ele mesmo. Se o usurio falhar na deteco do problema, nenhuma ao tomada.
A premissa do Data Mining uma argumentao ativa, isto , em vez do usurio definir o problema, selecionar os dados e as
ferramentas para analisar tais dados, as ferramentas do Data Mining pesquisam automaticamente os mesmos a procura de
anomalias e possveis relacionamentos, identificando assim problemas que no tinham sido identificados pelo usurio. Em
outras palavras, as ferramentas de Data Mining analisam os dados, descobrem problemas ou oportunidades escondidas nos
relacionamentos dos dados, e ento diagnosticam o comportamento dos negcios, requerendo a mnima interveno do usurio, assim ele se dedicar somente a ir em busca do conhecimento e produzir mais vantagens competitivas.
As ferramentas de Data Mining, baseadas em algoritmos que forma a construo de blocos de inteligncia artificial, redes
neurais, regras de induo, e lgica de predicados, somente facilitam e auxiliam o trabalho dos analistas de negcio das empresas, ajudando as mesmas a conseguirem serem mais competitivas e maximizarem seus lucros.
57
Modelagem de dados
Modelagem de dados olhar os dados do sistema das trs maneiras possveis (dados, funes e comportamento) em mtodos
de anlise ou projeto estruturados. O diagrama de modelagem de dados mais utilizado o Diagrama de Entidade Relacionamento (MER). Eles so construdos de forma que as suas estruturas de dados sejam normalizadas de uma vez. O modelo
criado gradualmente: comeando com as entidades maiores, adicionando os relacionamentos, depois as chaves e os atributos,
para depois adicionar novas entidades.
Em modelagem de dados, os atributos de objetos de dados podem ser usados para nomear uma instncia do objeto de dados,
descrever a instncia ou fazer referncia a outra instncia de outra tabela.
Modelagem Funcional
Na modelagem funcional, o sistema em considerao modelado como uma caixa preta, com um conjunto de entradas e sadas. O analista da modelagem est preocupado apenas com o seu funcionamento, e no com os seus detalhes mais internos. A
frase chave aqui "Dada esta entrada, qual a sada do sistema?"
A principal vantagem desta metodologia a sua simplicidade e a sua habilidade de
combinar modelos menores para obter um modelo de sistemas maiores.
A modelagem funcional no apropriada quando os objetos so fortemente conectados (de uma maneira no direcional), como redes eltricas analgicas. Redes lgicas (digitais) no so um problema, pois a direcionalidade especificada no projeto.
A modelagem funcional pode ser classificada em duas maneiras: function-based
approach e variable-based approach.
No modelo baseado em funes existem funes de transferncia, que so os blocos
de construo do sistema, que fazem a conexo entre cada uma de suas partes, indicando a direo do fluxo de dados por setas. No modelo baseado em variveis, o foco dado s variveis afetadas pelas funes. A modelagem funcional suportada pelos diagramas de componente e de execuo.
O Dicionrio de Dados
O dicionrio de dados uma listagem organizada de todos os elementos de dados que so pertinentes ao sistema, com definies precisas e rigorosas, de forma que tanto o usurio como o analista de sistemas tenham uma compreenso comum das
entradas, das sadas, dos componentes dos depsitos de dados. [PRESSMAN]
58
O DFD representa apenas o fluxo de informao do sistema, e o dicionrio de dados completa a especificao do sistema.
uma ferramenta importante durante a anlise detalhada do DFD, e tambm na fase de projeto que segue a anlise. uma tarefa tediosa, mas necessria para a preciso e organizao sistemtica dos termos.
=
composto de
()
{}
iterao
[]
**
comentrio
Exemplo de utilizao:
name = courtesy-title + first-name + (middle-name) + last-name
courtesy-title = [Mr. | Miss | Mrs. | Ms. | Dr. | Prof. ]
first-name = {legal-character}
middle-name = {legal-character}
last-name = {legal-character}
legal-character = [A-Z|a-z|0-9|'|-| | ]
59
Uma vez que os DFDs no se adequam especificao do comportamento temporal das atividades, podem ser adicionados
STDs (Diagramas de Transio de Estados) aos DFDs para possibilitar a especificao dos estados de todas as atividades.
No que diz respeito concepo, os mtodos funcionais suportam a obteno da arquitetura conceitual do sistema e a implementao baseada na transformao dos modelos em programas, codificada luz do paradigma da programao estruturada
A abordagem dos mtodos funcionais tem, no entanto, duas grandes desvantagens:
as decises mais crticas relacionadas com a estrutura global do sistema tm que ser efetuadas muito cedo, no processo de desenvolvimento, numa altura em que o problema ainda no est bem percebido
uma vez que a decomposio efetuada principalmente no domnio funcional, as estruturas de dados mais importantes tendem a ser globais a todo o sistema, o que coloca problemas significativos fase de manuteno, quando as representaes dos dados tm que ser alteradas (devido novos requisitos)
a fase de concepo permite obter modelos arquiteturais menos dependentes da tecnologia de implementao, sendo
esta baseada no paradigma da programao orientada por objetos
os vrios mtodos orientados a objetos desenvolvidos por Rumbaugh, Jacobson e Booch geraram uma notao nica, a UML, que pode ser utilizada por qualquer mtodo OO.
A orientao a objetos uma tcnica para modelao de sistemas que relativamente simples de se pensar, pois as pessoas
lidam no dia-a-dia com objetos que interagem entre si.
Anlise Essencial
A anlise essencial comea a especificao de um sistema pela identificao dos eventos que o afetam. Divide-se em:
Modelo Essencial: apresenta o sistema num grau de abstrao independente de restries tecnolgicas.
o
Modelo Ambiental: define a fronteira entre o sistema e o resto do mundo. representado pelos diagramas:
Declarao de Objetivos, Diagrama de Contexto, Lista de Eventos (evento orientado a fluxo, temporal e
temporal relativo) e Dicionrio de Dados Preliminar (opcional).
Modelo Comportamental: define o comportamento das partes internas do sistema necessrio para interagir
com o ambiente. representado pelos diagramas: Diagrama de Fluxo de Dados, Mini-Especificao, Diagrama de Transio de Estado e Diagrama Entidade Relacionamento.
Modelo de Implementao: apresenta o sistema num grau de abstrao completamente dependente de restries
tecnolgicas. derivado do modelo essencial. Diz respeito a implementao do sistema. Envolve a construo do
Modelo Lgico de Dados, as caractersticas de processamento das funes / processos e a interface homem-mquina.
As atividades essenciais so todas as tarefas que o sistema teria que executar se fosse implementado com tecnologia perfeita:
Informao Repetida: o objeto em potencial ser til durante a anlise somente se a informao sobre ele precisar
ser lembrada de forma que o sistema possa funcionar.
Servios Necessrios: o objeto em potencial deve ter um conjunto de operaes identificveis que podem mudar o
valor de seus atributos de alguma forma.
Mltiplos Atributos: um objeto com um nico atributo pode, de fato, ser til durante a fase de projeto, mas provavelmente ele ser mais bem representado como um atributo de um outro objeto.
Atributos Comuns: um conjunto de atributos pode ser definido para o objeto em potencial, e esses atributos aplicam-se a todas as ocorrncias do objeto.
Operaes Comuns: um conjunto de operaes pode ser definido para o objeto em potencial, e essas operaes aplicam-se a todas as ocorrncias do objeto.
Requisitos Essenciais: entidades externas que aparecem no espao problema e produzem ou consomem informaes que so essenciais operao de qualquer soluo para o sistema quase sempre sero definidas como objetos no
modelo de requisitos.
Modelagem Dinmica
A modelagem dinmica do sistema se resume s associaes de comunicao (dinmicas) includas no modelo de objetos.
Em OMT, a modelagem das classes isoladamente composta por um Diagrama de Transio de Estados para a classe, e um
fluxograma para cada mtodo. Tambm utiliza os Diagramas de Eventos, como ferramenta de identificao do comportamento dinmico, e o Diagrama de Fluxo de Eventos. O DFD tambm descreve o comportamento do sistema.
A modelagem dinmica se refere a dois aspectos: descrio comportamental, que se preocupa com o fluxo de controle do
sistema (seqncias de procedimentos), e descrio funcional, que se preocupa em descrever os fluxos de dados e suas transformaes. Esto baseados nos conceitos de evento e estado. Em Anlise Orientada a Objetos, eventos representam estmulos
externos, e os estados representam os valores dos objetos.
Engloba os sistemas que reproduzem o comportamento de elementos do mundo real, como simuladores e jogos, sistemas de
tempo real (controle de processos, comunicaes).
62
UML
UML significa Linguagem de Modelagem Unificada (Unified Modeling Language), e um sistema de notao orientada a
objetos criada por Grady Booch, James Rumbaugh e Ivar Jacobson, em conjunto com a Rational Software Corporation, atravs da fuso de diversas tecnologias de modelagens de sistemas.
Atualmente a UML aceita pela OMG (Object Management Group) como o padro para modelagem de programas orientados a objetos, e sua especificao est disponvel no site da organizao (verso UML 1.5).
Atores (actors): so representaes de qualquer entidade que interage com o sistema. No precisa ser necessariamente uma pessoa, podendo ser tambm uma mquina, um outro sistema, etc. Atores no fazem parte do sistema,
apenas representam os papis que o usurio desempenha. Este papel pode ser ativo ou passivo (ator envia ou recebe
informao do sistema).
Casos de uso (use cases): so uma seqncia de aes ou eventos que influenciam o sistema. Cada caso de uso descreve uma caracterstica, e o diagrama com todos os casos de uso deve representar todas as situaes possveis de utilizao do sistema. Normalmente os diagramas so acompanhados por uma descrio de cada caso de uso narrativas de texto do caso de uso em que devem ser ressaltados vrios atributos (como nome, atores relacionados, objetivo, fluxo de eventos, pr e ps condies, etc).
O diagrama de classes representa a estrutura interna (atributos e mtodos) e as relaes entre um conjunto de classes. Tais
relaes definiro principalmente a forma em que os objetos sero implementados. Por exemplo, Molde_Injeo e Componente_Plstico so tipos de Produto e herdam os atributos e mtodos de tal classe.
63
Conceitual: A perspectiva conceitual, projeta um diagrama que representa os conceitos no domnio que est sendo
estudado. Estes conceitos sero naturalmente relacionados s classes que vo execut-los, mas freqentemente no
existe um mapeamento direto. Um modelo conceitual deve ser projetado com pouca ou nenhuma preocupao com o
software que poder implement-lo, portanto ele pode ser considerado independente de linguagem. (Cook e Daniels
chamam isso de perspectiva essencial).
Especificao: examinamos o software, estamos analisando as suas interfaces, no a sua implementao. O desenvolvimento orientado a objeto pe muita nfase na diferena entre interface e implementao, mas isto freqentemente negligenciado na prtica porque a noo de classe em uma linguagem OO combina interface com implementao, o que um erro, pois a chave para uma programao OO eficaz programar para uma interface de classe em
vez de faz-lo para sua implementao. Ouve-se com freqncia a palavra tipo para falar sobre uma interface de
uma classe; um tipo pode ter muitas classes que o implementam e uma classe pode implementar muitos tipos.
Implementao: Nesta viso, realmente, temos classes e estamos pondo implementao s claras. Esta a perspectiva usada com mais freqncia, mas, de vrias formas, a perspectiva de especificao a melhor para ser utilizada.
Como a modelagem de classes utilizada tanto na anlise quanto no projeto das aplicaes orientadas a objeto, o processo de
modelagem compreende passos que envolvem caractersticas tanto de anlise quanto de projeto. Na maioria das vezes, os
passos que envolvem identificar esto relacionados com a anlise, e aqueles que requerem a ao definir dizem respeito
ao projeto. Os passos a serem observados durante a modelagem de classes so os seguintes.
1.
Identificar as classes;
2.
Identificar os atributos das classes (sem levar em considerao suas visibilidades ou tipos);
3.
Analisar os atributos das classes, identificando que alguns deles so na realidade relacionamentos;
4.
Identificar os mtodos;
5.
6.
Definir a herana;
7.
Definir as colaboraes;
8.
Definir a agregao.
Agregao x composio
A associao tem duas formas particulares: a agregao e a composio. As duas so muito parecidas, elas relacionam um
objeto composto com suas partes. Por exemplo, a associao entre uma universidade e seus departamentos uma agregao,
a associao entre um carro e suas partes uma composio. A diferena entre os dois que a composio mais ``fsica'':
uma parte no pode pertencer a dois objetos compostos ao mesmo tempo (um motor no pode pertencer a dois carros ao
mesmo tempo), e uma parte no pode existir sem o objeto composto (mas o composto pode ``sobreviver'' s suas partes).
64
A diferena entre os dois no sempre clara. Por exemplo, a associao entre uma casa e os suas paredes uma composio,
mas entre uma pea da casa e um parede, uma agregao (a parede pertence s duas peas e no desaparece com a destruio de uma das duas peas). Na dvida, melhor usar a agregao que menos restrita, ou at uma associao simples.
Agregao e composio aceitam multiplicidade, s do lado das partes para a composio (um carro composto de quatro
rodas) e dos dois lados com a agregao (uma palavra pode pertencer a vrias frases e uma frase possui vrias palavras).
Geralmente, a composio implica uma forma de propagao de algumas propriedades. Por exemplo, quando o objeto composto morrer, as partes morrem tambm (definio da composio), ou quando um carro se mover, as partes se movem tambm. Todas as propriedades no so propagadas, por exemplo, um carro pode ser vermelho e o motor no. O tempo de vida
do membro depende do tempo de vida do objeto composto.
Agregao e composio so representadas com associaes acrescentadas de um losango do lado do objeto composto: losango vazio para a agregao e losango preto para a composio. A composio pode tambm ser representada com uma
classe com as partes dentro do retngulo.
Diagrama de estados
Representam o comportamento interno de uma classe durante sua vida, mostrando como especficos eventos (mtodos) podem mudar as fases da vida de mesma. Por exemplo, aps uma avaliao, uma Soluo_de_Projeto poder tornar-se Aceita
ou Rejeitada.
Diagrama de seqncia
Capturam e representam a colaborao necessria entre classes, ou Categorias, atravs de seus mtodos. Basicamente, os aspectos comportamentais dos objetos so focalizados, mostrando quais mtodos so necessrios para satisfazer um Use Case
especfico. O Use Case avalie_Solues_Projeto mostra como as categorias Funes e Solues_de_Projeto colaboram
para atender uma funcionalidade especfica do sistema.
65
Diagrama de atividades
Representa o conjunto de passos a serem executados por um mtodo, mostrando como uma operao pode(ria) ser implementada. So compostos por atividades (retngulos arredondados), transies (setas), barras de sincronizao, decises (losango)
e marcadores de incio e fim.
Diagrama de colaborao/comunicao
O diagrama de colaborao, que a partir da UML 2.0 passou a se chamar diagrama de comunicao, possui uma funo similar ao diagrama de seqncia. Mas ao contrrio deste, o seu foco no no tempo, e sim na organizao dos objetos. Por isso,
esse diagrama mostra explicitamente as conexes entre os objetos (o que o de seqncia no faz), enquanto ele deve acrescentar nmeros de seqncia s mensagens para indicar a ordem de chamada. Outra diferena que esse diagrama NO mostra
explicitamente o retorno das chamadas.
66
Diagrama de implementao
O diagrama de implantao (ou distribuio) usado para sistema distribudos. Ele permite apresentar a topologia de uma
rede de "mquinas'' e qual processo (um componente executvel) cada "mquina'' vai rodar.
As "maquinas'' so chamadas de ns. Um n apresenta uma fonte computacional, sendo normalmente um processador com
alguma memria. Um n representado por um cubo. Alguns de seus objetivos modelar um sistema embarcado, sistemas
distribudos ou sistemas cliente / servidor.
Diagrama de componentes
O diagrama de componentes mostra a organizao entre arquivos de cdigo fonte, bibliotecas, tabelas de banco de dados, etc.
A relao a mais usada a de dependncia, mostrando como um arquivo de cdigo fonte depende de um outro que ele inclu,
o como um executvel depende de uma biblioteca por exemplo.
Um componente um parte fsica do sistema. Muitas vezes um componente mostra um arquivo especfico do sistema. A
UML reconhece: executveis (na figura), bibliotecas (ver diagrama de implementao), tabelas (uma tabela de um banco),
documentos (textos livres, ajuda) e arquivos (scripts).
67
68
A primeira camada identificada como camada de apresentao abrange as classes que so responsveis pela interao dos usurios com o sistema.
A segunda camada identificada como camada de negcios controla as regras de negcio da aplicao. As classes de
negcio armazenam os requisitos que determinam como calcular, como processar, o que persistir e o que recuperar.
A terceira camada identificada como camada de persistncia controla a persistncia dos dados. Os dados vivem
temporariamente nas instncias da segunda camada, mas devem ser mantidos ao trmino da aplicao. Para isso,
necessrio armazen-lo em um meio fsico permanente. Assim, esta camada trata como os dados so persistidos em
simples arquivos ou em bancos de dados.
Template Method: Define o esqueleto de um algoritmo em uma operao. O Template Method permite que subclasses componham o algoritmo e tenham a possibilidade de redefinir certos passos a serem tomados no processo, sem contudo mud-lo.
Visitor: Representa uma operao a ser realizada sobre elementos da estrutura de um objeto. O Visitor permite que se crie
um nova operao sem que se mude a classe dos elementos sobre as quais ela opera.
70
ArgoUML
Oracle Designer
Engenharia de Software
Engenharia de sistemas
A engenharia de sistemas preocupa-se com os aspectos do desenvolvimento de sistemas baseados em computador (hardware,
software, engenharia de processos). A engenharia de software faz parte deste processo.
Os engenheiros de sistema esto envolvidos na especificao, projeto arquitetural, integrao e desenvolvimento de sistemas
de informao.
Ciclo de Vida
O desenvolvimento de um produto de software foi modelado de acordo com a engenharia convencional. Para PRESSMAN, o
ciclo de vida do software dividido em seis partes, descritas a seguir:
Projeto: Processo de mltiplos passos, concentra-se na estrutura de dados, arquitetura de software, detalhes procedimentais e caracterizao da interface. A qualidade pode ser avaliada nesta etapa.
Teste: Concentra-se em testar os aspectos lgicos do sistema, e tambm nos aspectos funcionais, descobrindo erros e
que os resultados reais concordem com os resultados exigidos pelo sistema.
Manuteno: Responsvel por adaptar e evoluir o software de acordo com exigncias futuras.
O ciclo de qualidade PDCA (Plan, Do, Check, Act) pode ser relacionado com o ciclo do desenvolvimento, sendo a etapa Plan
equivalente s trs primeiras (Avaliao, Anlise e Projeto), e as demais em seguida.
Processos de Software
Um processo de software um conjunto de prticas, estruturas organizacionais, tecnologias, procedimentos e artefatos que
so necessrios para conceber, desenvolver, implantar e manter um produto de software.
Enxergar o desenvolvimento de um software como um processo ajuda a identificar as diferentes dimenses da tarefa (tecnologia, organizao, marketing, economia), evitar problemas e estabelecer prticas efetivas.
As atividades genricas em todos os processos de software so:
Anlise
Na fase de anlise, tambm denominada anlise de requisitos, so estabelecidos os requisitos do sistema a ser desenvolvido.
Nesta fase, o engenheiro de software necessita compreender o domnio do problema no qual est trabalhando. Os requisitos e
a modelagem conceitual do sistema so documentados e revisados.
A anlise de requisitos comea ao se reconhecer que um problema necessita da tecnologia de informao como soluo ou ao
surgir uma idia de um novo negcio ou de um novo sistema na empresa. Esta fase concluda ao se ter uma descrio completa do comportamento do software a ser construdo, documentado na Especificao de Requisitos. Aqui so feitas: a anlise
do problema, descrio do produto e avaliao da especificao.
Verificao x Validao
Uma vez que o cdigo foi gerado, segue-se a fase de avaliao da qualidade do software. Esta avaliao deve ser realizada
atravs de certificao utilizando inspeo, walkthrough, prova formal ou testes.
As inspees formais so uma tcnica de reviso sistemtica do software ou de alguns de seus componentes, executada, sistematicamente, ao final de cada fase do projeto, com o objetivo nico de encontrar erros. Todo o material gerado lido, os
erros anotados e uma estatstica dos erros encontrados mantida, para fins de posterior estudo da eficcia do procedimento.
uma tcnica preventiva, barata, que depende da experincia do inspetor e pouco eficaz para fatores operacionais.
Verificao: Estamos construindo certo o produto?, ou seja, o software deve estar de acordo com a sua especificao.
Validao: Estamos construindo o produto certo?, ou seja, o software deve atender s necessidades dos usurios.
Testes
Os testes concentram-se em validar os procedimentos lgicos internos do programa, garantindo que todos os comandos foram
testados e que o comportamento funcional externo do sistema produz os resultados esperados para determinadas entradas de
dados. Pressman afirma que a atividade de teste de software um elemento crtico da garantia de qualidade de software e
representa a ltima reviso de especificao, projeto e codificao. A inteno da realizao de testes achar erros, e necessrio que estes sejam planejados com seus objetivos claramente definidos. Na anlise dos resultados deve-se procurar identificar a falha que causou o erro evidenciado pelo teste. Testar exaustivamente um software nem sempre possvel, por isso os
testes no podem assegurar a correo total de um sistema. Entretanto, a utilizao de testes combinados com algumas tcnicas de controle da qualidade contribui para se obter um nvel aceitvel de confiabilidade.
Algumas dificuldades que podem ser encontradas durante o ciclo dos testes so:
Veredictos de testes dependem das sadas esperadas, mas produzi-las pode ser difcil ou impossvel
Note que os testes so apenas uma das maneiras de encontrar erros no sistema. Inspees e revises tcnicas tambm devem
ser executadas continuamente aps a codificao com o objetivo de monitorar a qualidade.
72
Bons casos de teste so aqueles que encontram falhas no sistema at ento no descobertas;
Um critrio utilizado para determinao do esforo a ser gasto na atividade de teste de software verificar qual o
grau de severidade das conseqncias advindas do seu mau funcionamento;
A probabilidade de encontrar um erro numa determinada parte do sistema proporcional ao nmero de erros j encontrados nesta parte;
Garantia da qualidade
As atividades de garantia de qualidade esto focadas na utilizao de processos, para gerenciar, produzir e entregar a soluo,
podendo ser realizadas pelo Sistema de Informao Gerencial, pelo patrocinador do projeto ou por uma terceira pessoa que
revise estas atividades.
A Garantia da Qualidade no se refere diretamente as deliverables especficas. Esta refere-se ao processo usado na criao
das deliverables. Em geral a atividade de garantia da qualidade esta focada no processo de gerenciamento e de entrega da
soluo, e poder ser realizada por um gestor, por um cliente ou por uma terceira parte revisora. Por exemplo, um revisor
independente de projeto talvez no esteja habilitado em dizer se o contedo de uma deliverable em particular aceitvel ou
no. Entretanto, eles devero estar habilitados a dizer, baseado no processo utilizado para criao da deliverable, se est parece ser aceitvel ou no.
O Controle de Qualidade uma atividade separada da garantia de qualidade, mas que tambm faz parte do gerenciamento
da qualidade. As atividades de controle de qualidade so realizadas continuamente no andamento do projeto para verificar se
o gerenciamento do projeto e as deliverables so de alta qualidade.
Manuteno
Alm da fase de Desenvolvimento e da Validao, o terceiro processo de desenvolvimento de software envolve a manuteno
do sistema, onde o software sofre correes, adaptaes e ampliaes para corrigir erros encontrados aps a entrega do produto, atender os novos requisitos do usurio e mudanas na tecnologia.
O gerenciamento de risco nesta fase fundamental, dado que 70% dos custos de um sistema de software correspondem manuteno de um sistema. Por isso importante controlar a manutenibilidade durante o desenvolvimento, atravs de mtricas e
modelos. Os tipos de aes tomadas durante a fase de manuteno so:
Preventiva: previne falhas e defeitos que no geraram falhas, implementada para eliminar as causas de uma possvel no-conformidade, defeito ou outra situao indesejvel, a fim de prevenir sua ocorrncia.
Corretiva: problemas decorrentes de defeitos, implementada para eliminar as causas de uma no-conformidade,
de um defeito ou de outra situao indesejvel existente, a fim de prevenir sua repetio.
Projeto
Modelo Clssico ou Cascata
A primeira proposta deu origem ao modelo tradicional ou cascata. Nesse modelo as fases so executadas sistematicamente em seqncia.
Construo
Avaliao
Manuteno
73
O sistema entregue ao usurio aps se chegar a um resultado satisfatrio na fase de avaliao, com um certo grau de confiana. claro que o sistema ainda passar por alteraes, devido principalmente a erros observados pelo usurio, ou por mudanas necessrias para melhor adaptao ao ambiente do usurio, ou por problemas de desempenho.
Existem diversas variaes deste modelo, e uma das suas caractersticas esgotar cada uma das fases antes de passar para a
fase seguinte, o que evita desperdcios de esforos, facilita o planejamento (e cronogramas). As desvantagens: a dificuldade
em acomodar alteraes aps o seu incio, e a demora para comear a construo.
cdigo gerado ineficiente. O domnio de aplicaes para as quais estas tcnicas esto mais desenvolvidas so as aplicaes
comerciais, geralmente ligadas a grandes bancos de dados.
Existe um certo ganho de tempo de desenvolvimento das aplicaes, especialmente as pequenas.
Modelo em Espiral
O modelo em espiral proposto por Boehm fornece uma estrutura de trabalho para a produo de software baseada em processo e nveis de risco permitindo a anlise dos riscos em vrias etapas do desenvolvimento. Esse modelo pode ser considerado
um meta-modelo pois pode abranger diferentes outros modelos, desde o modelo cascata at os vrios tipos de prottipos.
um modelo cclico.
A anlise dos modelos de ciclo de vida pode ser feita considerando-se a identificao monoltica ou incremental do processo
de desenvolvimento. Na estrutura de trabalho monoltica, os detalhes de cada fase so completados em sua totalidade, antes
do incio da etapa seguinte. Sendo assim, o comportamento do software s pode ser avaliado no final do desenvolvimento. Na
estrutura incremental, os detalhes podem ser retardados com o benefcio de se produzir antecipadamente um prottipo mostrando o funcionamento do produto.
As vantagens: o foco nas opes de reuso e eliminao precoce de erros (qualidade desde o incio), alm de integrar a fase de
desenvolvimento e manuteno. Alguns dos problemas a dificuldade de controlar todo o processo, requerendo experincia
em avaliao de risco, e precisa de refinamento para uso geral.
prototipao rpida
modelagem de objetos
O Delphi, por exemplo, conta com vrias ferramentas RAD que auxiliam o desenvolvimento, para a reduo do tempo de
desenvolvimento e manutenes improvveis. Adicionando, uma arquitetura aonde possvel a separao da GUI (Graphic
Unit Interface), das regras de negcio lgicas e do desenho do banco de dados.
O desenho do banco de dados, a construo das metodologias de negcio e o desenho e a criao das janelas de entrada so
efetivados dentro da aplicao. O desenvolvimento, ento paralelamente, resultar em uma maior rapidez. O processo de codificao reduz drasticamente ao herdas as janelas de entrada, mdulos, etc.
Testes
De acordo com [PRESSMAN], a atividade de teste pode ser conduzida em quatro fases:
Teste de Unidade: concentra-se no esforo de verificao da menor unidade de projeto de software chamado de unidade ou mdulo.
Teste de Integrao: uma tcnica sistemtica para a construo da estrutura de programa, ao mesmo tempo sendo
realizados testes para descobrir erros associados a interfaces.
Teste de Validao: o software est completamente montado como um pacote, e a validao definida como bemsucedida quando ele funciona de uma maneira razoavelmente esperada pelo cliente.
Teste de Sistema: uma srie de diferentes testes, cujo principal propsito pr o sistema completamente prova,
verificados quanto sua integrao adequada e funes atribudas.
Nenhuma das tcnicas de teste completa, ou seja, suficiente para garantir a qualidade da atividade de teste.
Tipos de Testes
Podemos classificar os mtodos de teste de acordo com suas caractersticas bsicas:
76
Testes estticos ou testes humanos: no so feitos atravs da execuo real do programa, mas sim atravs da execuo conceitual do mesmo. Mtodos classificados como estticos so o de walkthrough, inspees e peer rating.
So utilizados principalmente para validar as primeiras etapas do projeto.
Testes dinmicos: seguem o modelo tradicional de teste de programa, no qual o programa executado com alguns
casos de teste e os resultados so examinados para verificar se o programa operou de acordo com o esperado. Usados
na validao do cdigo em mdulos e na integrao do sistema.
Testes funcionais: o teste exaustivo, no entanto o domnio de um programa muito grande e so criadas formas
de derivar um conjunto de dados de teste representativo que consiga exercitar completamente a estrutura do sistema.
So mtodos de testes funcionais ou de caixa preta, o particionamento de equivalncia, a anlise de valor limite, a
tcnica de grafo de causa-efeito e testes de comparao.
Testes estruturais: diferentemente dos testes funcionais, que se preocupam com a funo que o programa desempenha sem se preocupar com como a funo foi implementada, o teste estrutural enfoca a implementao e a estrutura
da funo. Geralmente usado durante a fase de codificao. A inteno encontrar dados de teste que tero cobertura de todas estruturas presentes na representao formal.
Testes de unidade: concentra-se no esforo de verificao da menor unidade de projeto de software, o mdulo. Este
teste baseia-se sempre na caixa branca, e so verificados: a interface com o mdulo (fluxo de informaes de dentro
para fora), estrutura de dados local, condies de limite, todos os caminhos independentes so executados pelo menos uma vez, e caminhos de tratamento de erro.
Testes de integrao: uma tcnica sistemtica para a construo da estrutura de programa, que procura descobrir
erros relacionados interface. A partir dos mdulos testados no nvel de unidade, construda a estrutura do programa que foi determinada pelo projeto. A integrao pode ser incremental (top-down ou bottom-up) ou noincremental.
Testes de validao: pode ser considerado bem sucedido quando o software funciona da maneira esperada pelo cliente. Verifica-se se o produto certo foi construdo, seguindo a especificao de requisitos do software. A validao
do software, na fase de testes, realizada por meio de uma srie de testes de caixa preta que demonstram a conformidade com os requisitos.
Testes alfa e beta: so os testes de aceitao, feitos pelo usurio, que dificilmente opera o sistema da forma prevista, e visam descobrir erros cumulativos que poderiam deteriorar o sistema no decorrer do tempo. Os testes alfa so
conduzidos em ambiente controlado (do desenvolvedor). J o teste beta realizado em uma ou mais instalaes do
cliente pelo usurio final do software.
Teste de segurana: tenta verificar se todos os mecanismos de proteo embutidos em um sistema o protegero de
acessos indevidos. O analista pode tentar adquirir senhas via contatos externos, atacar o sistema com software customizado, desarmar o sistema negando servio a outros, etc...
Testes de estresse: feito para confrontar o sistema com situaes anormais. O teste de estresse executa o sistema de
forma que exige recursos em quantidade, freqncia ou volume anormais.
Teste de desempenho: idealizado para testar o desempenho de runtime do software dentro do contexto de um sistema integrado. Algumas vezes so combinados com os de estresse utilizando instrumentao de hardware e de
software (para medio dos recursos com ciclo de processador).
Walkthough
Os objetivos do walkthrough so descobrir erros de funo, lgica ou implementao, e verificar os requisitos, uniformidade
e facilidade de administrao do software. uma tcnica manual, executada em reunies formais com um moderador, e inclui
os desenvolvedores. feita uma leitura do produto, e algumas simulaes so realizadas. O propsito da tcnica de walkthrough estimular a discusso.
x: = x + 1
{x = 6}
Simulaes
a utilizao de um modelo executvel para representar o comportamento de um objeto. Esta ferramenta de testes bastante
til, contudo mais empregada em sistemas de tempo real onde a interface com o mundo real crtica e a integrao com o
hardware do sistema fundamental.
Particionamento de Equivalncia (ou Domnio): um mtodo que divide o domnio de entrada de um programa
em classes de dados a partir das quais os casos de teste podem ser derivados:
o
Inicialmente determina-se entre entradas vlidas (pertencentes ao domnio) e invlidas para verificar como
o sistema comporta-se com as ltimas.
77
Para o domnio de dados de entradas vlidas devem ser identificadas parties (classes) para os quais o sistema tenha comportamento semelhante.
O particionamento de equivalncia procura definir um caso de teste que descubra classes de erros, assim
reduzindo o nmero total de casos de teste que devem ser desenvolvidos.
Anlise de Valor Limite: uma tcnica de projeto de casos de teste que serve como complemento para a tcnica de
particionamento de classes. Ao invs de selecionar qualquer valor de uma classe de equivalncia, a anlise do valor
limite leva seleo de casos de teste nas extremidades da classe. Em vez de se concentrar somente nas condies
de entrada, ela deriva os casos de teste tambm do domnio de sada.
Grafos de Causa-Efeito: uma tcnica de projeto de casos de teste que oferece uma representao concisa das condies lgicas e das aes correspondentes. A tcnica segue quatro passos:
o
Teste do Caminho Bsico: possibilita que o projetista do caso de teste derive uma medida da complexidade lgica
de um projeto procedimental e um conjunto bsico de caminhos de execuo. Os casos de teste derivados para exercitarem o conjunto bsico tm a garantia de executar cada instruo do programa pelo menos uma vez durante a atividade de teste. Para determinar esses caminhos, uma tcnica bastante utilizada a Complexidade Ciclomtica:
o
Complexidade Ciclomtica: uma medida definida pelos engenheiros de software que tentam captar a
complexidade de cada rotina. A complexidade ciclomtica pode ser calculada das seguinte formas:
"
Seja n o nmero total de predicados lgicos (comparaes, expresses booleanas) que aparecem
em uma rotina. A complexidade dada ento por n+2.
"
[SEI] Seja o programa um grafo de fluxo onde cada n representa uma deciso e cada arco um
caminho possvel. A complexidade dada por: nmero de arcos nmero de ns + 2.
Teste de condio: um mtodo de projeto de casos de teste que pe prova as condies lgicas contidas num
mdulo de programa. Este mtodo concentra-se em testar cada condio do programa e prope-se a descobrir as seguintes classes de erros: erros de operadores booleanos, relacionais ou aritmticos, quanto sua corretitude, falta ou
excesso.
Teste de fluxo de dados: esse mtodo seleciona caminhos de teste de um programa de acordo com as localizaes
das definies e usos de variveis no programa. Ele til para selecionar caminhos de teste de um programa que
contenha instrues de laos e if aninhadas.
Teste de laos: Os laos so amplamente utilizados na estrutura dos programas. Raros so os programas que no utilizam a estrutura de loop para controle de execuo. As condies de teste so: pular o lao inteiramente, realizar n
passagens e verificao de laos aninhados.
Engenharia de requisitos
A engenharia de requisitos de software uma atividade que engloba a descoberta, documentao e a manuteno do conjunto
de requisitos de um sistema de software. A gerncia de requisitos tem por finalidade estabelecer e manter um acordo com o
cliente com relao aos requisitos a serem observados no projeto de software. Em particular, a gerncia de requisitos controla
a evoluo dos requisitos de um sistema, seja por constatao de novas necessidades ou de deficincias nos requisitos registrados, at o momento.
78
Requisitos
Crosby diz que qualidade a "conformidade com os requisitos", logo v-se a importncia da Engenharia de requisitos. Define-se por requisito uma condio ou capacitao necessria a um componente do sistema (ou o prprio sistema) precisa atender, para satisfazer s necessidades do usurio, padro, especificao ou outro.
Os requisitos podem ser classificados como funcionais ou no-funcionais, conforme explicado abaixo:
Funcionais: dizem respeito definio das funes que um sistema deve fazer. Descrevem as transformaes realizadas nas entradas ou componentes de um sistema, a fim de que se produzam sadas.
No-funcionais: dizem respeito a restries, aspectos de desempenho, interfaces com o usurio, confiabilidade, segurana, manutenibilidade, portabilidade, padres (aspectos sociais e polticos), e outras que o sistema deve possuir.
Alguns desses so traduzidos em funes (operacionalizados).
A diferena prtica entre eles que os requisitos funcionais dizem o que o sistema deve fazer, e os requisitos no-funcionais
fixam restries sobre como os requisitos funcionais devem ser implementados.
Elicitao de requisitos: Inicia-se junto com os usurios, analisando diversos pontos de vista.
importante lembrar que os requisitos podem no refletir as necessidades do cliente em relao ao sistema, pois comum
ocorrer interpretao errnea entre as partes, e requisitos incompletos ou inconsistentes.
Sistemas de
Informao
Existentes
Necessidades de
Stakeholders
Padres Organizacionais
Regulamenta
es
Requisitos
Acordados
Especificao do
Sistema
Modelos do
Sistema
Domnio da
Informao
Elicitao de requisitos
A elicitao de requisitos envolve as atividades de coleta, comunicao e validao de fatos. Esta uma atividade de absoro das reais necessidades dos usurios do software, sendo realizada em conjunto com a modelagem do sistema. As tcnicas
mais utilizadas na elicitao de requisitos so as entrevistas, que podem ser realizadas com um ou mais usurios. Para que
estas sejam eficazes elas devem ser planejadas com antecedncia, devendo ser identificados os objetivos de cada uma, seus
participantes e seu contedo.
O uso de perguntas de livre-contexto uma tcnica que facilita as entrevistas. Essas perguntas podem ser divididas em: perguntas iniciais, onde o foco est em definir usurios, objetivos gerais e benefcios; perguntas relacionadas ao problema e percepo do usurio sobre o problema; e meta-perguntas onde o desenvolvedor se certifica do andamento da elicitao de requisitos, se est entrevistando a pessoa certa ou se falta algo.
79
A tcnica FAST (Facilitated Application Specification Techniques) utilizada para que a elicitao de requisitos seja realizada com todos os usurios ou com grupos grandes de usurios, aumentando assim a produtividade da tarefa. O foco desta tcnica est na reunio que deve ser conduzida por pessoa neutra (facilitador) com participao de usurios e desenvolvedores.
JAD (Joint Application Design) um exemplo de tcnica FAST, e envolve planejamento, preparao e reunio de dinmica
de grupo, estruturada para ser realizada em um perodo fixo (em torno de 3 a 5 dias), obtendo produtos do ciclo de desenvolvimento do software. Nesta tcnica fundamental o envolvimento gerencial.
Engenharia de Usabilidade
Usabilidade pode ser vista como a medida de qualidade das experincias dos usurios no momento em que interagem com
algum produto ou sistema.
A ergonomia de Interface Homem-Computador (IHC) oferece bases tericas e metodolgicas para enfrentar o problema da
usabilidade do sistema, pois esta estuda as dificuldades relacionadas entre o homem e a mquina, tendo como objetivo ltimo
o alcance de um equilbrio timo entre conforto, segurana e eficincia do utilizador, face aos produtos e ferramentas.
Usabilidade "a combinao das caractersticas: facilidade de aprender, alta velocidade na execuo de tarefas, baixa taxa de
erros, subjetiva satisfao e reteno do usurio com o tempo (facilidade de lembrar como executar uma tarefa).
Verifica-se que a usabilidade tem assumido um papel importante no design de websites, visto que os usurios tm que assimilar o projeto visual e navegacional do site antes de atingir o seu contedo.
Os critrios e recomendaes do documento da W3C-WAI de Acessibilidade vale tambm para a Usabilidade, pois propicia a
qualquer usurio um acesso mais rpido s informaes na Web.
Alm disso, a ISO 9241 objetiva " Promover a sade e a segurana de usurios de computadores e garantir que eles possam
operar estes equipamentos com eficincia e conforto." Nesta norma ISO, utilizam-se as seguintes definies:
Usabilidade: medida na qual um produto pode ser usado por usurios especficos, para alcanar objetivos
especficos com eficcia, eficincia e satisfao, em um contexto especfico de uso.
Eficcia: acurcia e completude com as quais usurios alcanam objetivos especficos. Ex: Nmero de tarefas concludas. Ex: Nmero de usurios que completaram a tarefa corretamente.
Eficincia: recursos gastos em relao acurcia e abrangncia com as quais usurios atingem objetivos. Ex: Nmero de toques de tecla para completar a tarefa. Ex: Tempo para completar a tarefa.
Satisfao: ausncia do desconforto e presena de atitudes positivas para com o uso de um produto.
80
Consistncia Ao-Efeito: consiste na disponibilidade do sistema para a entrada de dados ou acionamento de funes, e o status das mesmas, informao de ajuda e suas formas de acesso. Ex. Modelos para entrada de dados
(dd/mm/yy); visualizao de unidade de medidas na entrada de nmeros; indicao de status e modo; legendas para
tipos de informaes; existncia de pistas para tamanhos dos campos disponveis; ttulo para as telas; help on-line.
Agrupamento e distino por localizao: relativo organizao visual da informao e relao de um com o
outro, e localizao e forma grfica para indicar relaes. Deve existir uma coerncia da presena de uma funo
em um determinado local com suas classificaes e relaes por proximidade. Ex: Organizao em lista hierrquica;
lgica de organizao: data, nome, tamanho ou tipo; legendas perto de teclas.
Agrupamento e distino por formato: consiste em verificar a forma, cor e tamanho, que ajudam a distinguir elementos e que indicam se ele pertence a uma determinada classe ou grupo. Ex: Clara distino visual de reas, campos e legenda que tenham diferentes funes.
Feedback: a resposta do sistema para as aes dos usurios. Rapidez e qualidade da resposta so duas caractersticas fundamentais para o feedback. Ex: Toda a entrada de dados deve ser mostrada de forma perceptvel, exceto as relativas segurana; interrupo de processamento da ao do usurio deve ser avisado e retornar ao estado anterior.
Leitura de Cor: significa o emprego correto da cor para permitir um contraste adequado leitura tanto nas teclas
quanto no visor, e o emprego de cores para destacar e alertar determinados eventos no sistema.
Capacidade de Leitura: a qualidade da leitura de texto na tela. (fonte empregada, tamanho da letra, espaos, tamanho da linha, etc). Ex.: Ttulos devem ser centralizados, legendas devem ser em caixa-alta, minimizar hifenizao.
Facilitao: critrio que trata dos elementos que ajudam a reduzir a carga perceptiva e cognitiva do usurio, aumentando a eficincia do dilogo. Evitar comear nmeros com zero na frente; abreviar cdigos com muitos caracteres.
Aes Mnimas: diz respeito ateno ao nmero de aes para completar uma tarefa. Ex.: Minimizar o nmero de
passos para seleo no menu; evitar entradas que precisem de pontuao; definir valores padro para campos;
Densidade da Informao: carga de trabalho provinda de um ponto de vista cognitivo ou perceptual que atende a
muitos usurios e no respeita a individualidade daquele presente no momento. Ex.: Prover apenas informao til
para a transao; no encher a tela com informaes desnecessrias; usurios no precisaro memorizar dados.
Controle do Usurio: o usurio deve sempre ter o controle do sistema (poder interromper, cancelar e continuar). As
possibilidade de controle devem ser mostradas ao usurio.
Proteo e Correo de Erro: so mtodos de preveno ou reduo de erros e formas de recuperao quando ocorrerem - preveno do erro. Ex.: Avisos de possveis erros, clareza na mensagem de erro, reversibilidade, etc.
Consistncia: modo pelo qual o design da interface escolhe (cdigo, formato, procedimentos, etc.) e que estes so
mantidos iguais em contextos similares e diferentes em outros contextos. Ex: uso de telas similares.
Compatibilidade: o sistema deve estar de acordo com as caractersticas do usurio (memria, percepo, personalizao, habilidade, idade, expectativas, etc). Ex.: A estrutura dos dados deve ser natural ao usurio.
Projeto de interfaces
Descreve como o software dever se comunicar dentro dele mesmo (interfaces internas), com outros sistemas (interfaces externas) e com pessoas que o utilizam (interface com o usurio).
A importncia do projeto de interface com o usurio se deve ao fato de que a maioria dos sistemas desenvolvida para ser
utilizada por pessoas. Nesta etapa do projeto, so definidos os formatos de janelas e relatrios, sendo a prototipagem muito
utilizada. A IU capta como um usurio comandar o sistema e como o mesmo apresentar as informaes a ele.
Nesta fase necessrio delinear as tarefas necessrias para obter a funcionalidade do sistema, estabelecer o perfil dos usurios, construir prottipos e avaliar resultados (dados quantitativos e qualitativos).
Processos de Software
Sempre existe a necessidade de software cada vez mais complexo, pois o cliente sempre quer mais, melhor e mais rpido.
Desta forma no suficiente apenas a presena de desenvolvedores altamente treinados, preciso um guia organizacional:
um processo.
ISO 12207
Esta norma descreve um padro que aborda todos os processos do ciclo de vida de um software. Ela estabelece os processos e
atividades que compem o processo de desenvolvimento de software, visando auxiliar os envolvidos na produo de software
a obter um melhor entendimento das atividades que devem ser executadas
81
Atividade 1
Tarefa
processo
Da concepo
at a
Tarefa
processo
Tarefa
descontinuidade
processo
Modularidade e responsabilidade
Ciclo
PDCA
A arquitetura da ISO 12207 est representada na figura, e segue dois princpios bsicos:
Modularidade: os processos tm alta coeso e baixo acoplamento, de forma que a alterao de um processo impacte
o mnimo na estrutura dos outros processos.
Responsabilidade: cada processo na norma de responsabilidade de uma parte envolvida, que pode ser uma organizao ou parte dela (ou mesmo de organizaes diferentes).
Os processos que envolvem o ciclo de vida do software so agrupados em trs classes a seguir:
De apoio: so os processos que auxiliam o sucesso e a qualidade do projeto de software. Compreende os seguintes
processos: documentao, gerncia de configurao, garantia da qualidade, verificao, validao, reviso conjunta,
auditoria e resoluo de problemas.
Organizacionais: so os processos empregados por uma organizao para estabelecer e implementar uma estrutura
constituda pelos processos do ciclo de vida e pelo pessoal envolvido no desenvolvimento de software. So eles: gerncia, infra-estrutura, melhoria e treinamento.
Simplicidade: incentiva comear com solues simples e o refactoring. Foco na necessidade imediata (no futura).
Feedback: inclui o feedback do sistema (testes), do cliente (funcionais) e da equipe (estimativas de tempo, etc).
Coragem: conhecer o sistema, saber refator-lo e jogar cdigo fora, capacidade de resolver problemas rapidamente.
Respeito: buscar a qualidade, no gerando erros em outros mdulos, ou atrasando o trabalho de outrem.
Dentre as variveis de controle em projetos (custo, tempo, qualidade e escopo), h um foco explcito em escopo. Para isso,
recomenda a priorizao de funcionalidades que representem maior valor possvel para o negcio. Desta forma, caso seja
necessrio a diminuio de escopo, as funcionalidades menos valiosas sero adiadas ou canceladas.
82
A XP desestimula controlar qualidade como varivel de projeto pois o pequeno ganho de curto prazo na produtividade ao
diminuir qualidade no compensado por perdas (ou at impedimentos) em mdio e longo prazo.
O ciclo de atividades no processo de desenvolvimento de software da metodologia so: Requisitos (listening), Projeto, Codificao e Teste. Para aplicar os valores e princpios durante o desenvolvimento, XP prope uma srie de prticas. H uma
confiana muito grande na sinergia entre elas, os pontos fracos de cada uma so superados pelos pontos fortes de outras.
Jogo de Planejamento (Planning Game): neste jogo as atividades so estimar tarefas e identificar prioridades, sendo o cliente essencial neste processo. Com isto cliente sabe o que est acontecendo e o que vai acontecer no projeto.
Pequenas verses: a liberao de pequenas verses funcionais do projeto auxilia muito no processo de aceitao por
parte do cliente, que j pode testar uma parte do sistema que est comprando.
Metfora: busca facilitar a comunicao com o cliente, entendendo a realidade dele. O conceito de rpido para um
cliente de um sistema jurdico diferente para um programador experiente em controlar comunicao em sistemas
de tempo real, como controle de trfego areo. preciso equalizar as palavras do cliente para o significado que ele
espera dentro do projeto.
Projeto Simples: simplicidade um princpio da XP. Por projeto simples significa dizer que caso o cliente tenha
pedido que na primeira verso apenas o usurio "teste" possa entrar no sistema com a senha "123" e assim ter acesso a todo o sistema, voc vai fazer o cdigo exato para que esta funcionalidade seja atendida, sem se preocupar em
sistemas de autenticao e restries de acesso.
Testes de Aceitao (Customer Tests): so testes construdos pelo cliente e conjunto de analistas e testadores, para
aceitar um determinado requisito do sistema.
Ritmo Sustentvel: trabalhar com qualidade, em um ritmo de trabalho saudvel (40 horas/semana, 8 horas/dia), sem
horas extras. Horas extras so permitidas quando forem trazer produtividade para a execuo do projeto.
Reunies em p (Stand-up Meeting): reunies em p para no se perder o foco nos assuntos para deixar as reunies
rpidas, apenas abordando tarefas realizadas e tarefas a realizar pela equipe.
Posse Coletiva (Collective Ownership): o cdigo fonte no tem dono e ningum precisa ter permisso concedida para poder modificar o mesmo. O objetivo com isto fazer a equipe conhecer todas as partes do sistema.
Padres de Codificao: a equipe de desenvolvimento precisa estabelecer regras para codificar e todos devem seguir estas regras. Desta forma parece que todos os cdigos fontes foram editados pela mesma pessoa, mesmo a equipe possuindo 10 ou 1000 componentes.
Desenvolvimento dirigido por testes: primeiro crie os testes unitrios e depois crie o cdigo para que os testes funcionem. Esta abordagem complexa no incio, pois vai contra o processo de desenvolvimento de muitos anos. S
que os testes unitrios so essenciais para que a qualidade do projeto seja mantida.
Refatorao: sempre que puder melhorar uma programao, melhore. O objetivo sempre que possvel refinar o
cdigo construdo, para que ele fique melhor, mais eficiente e mais simples.
Integrao Contnua: sempre que realizar uma nova funcionalidade, nunca esperar uma semana para integrar na
verso atual do sistema. Isto s aumenta a possibilidade de conflitos e a possibilidade de erros no cdigo fonte. Integrar de forma contnua permite saber o status real da programao.
Por suas caractersticas inerentes pode ser utilizada para equipes de tamanhos variados, tendo sido aplicada em projetos com
at 250 integrantes. Sua estrutura bsica compreende 5 processos, sendo que a descrio de cada um bem curta. de fcil
assimilao e prtica, fornecendo resultados rpidos e satisfatrios mesmo com equipes inexperientes.
Adotando um ciclo iterativo de desenvolvimento, admite mudanas mesmo em meio construo do produto, embora o processo de modelagem inicial j fornea um fundamento bsico que pode minimizar a necessidade e/ou o impacto de mudanas.
Uma das maiores atraes da FDD so os relatrios de acompanhamento. Com sua origem em experincias de gerenciamento
de projetos, certamente essa nfase em ver o que acontece durante o desenvolvimento uma caracterstica tpica. E justamente essa visibilidade que permite tomar decises relativas aos riscos, qualidade, mudanas nos requisitos, utilidade para o
usurio do produto e vrias outras variveis do projeto, em tempo hbil para no prejudic-lo.
Com esses relatrios possvel coletar mtricas para gerao de histricos, que permitiro melhorar as estimativas em prximos projetos, aumentando a preciso e segurana das decises sobre investimentos, mudanas de prioridades, atendimento de
prazos e custos, etc.
Os desenvolvedores aceitam prontamente e incorporam a metodologia de forma rpida, pois:
no causa interrupes burocrticas para a coleta dos dados sobre o progresso das atividades;
ajuda-os a se organizarem;
As metodologias XP e FDD possuem muitas semelhanas e diferenas. Um bom exemplo que XP utiliza programao em
pares para remover defeitos (erros) e aumentar a qualidade, enquanto FDD utiliza inspees.
Modelo independente de computao (CIM - Computation Independent Model): a representao de mais alto
nvel do sistema, representando as possibilidades e funcionalidades deste que no dependem de computao.
Modelo independente de plataforma (PIM - Plataform Independent Model): especifica as funcionalidades do sistema, explicitando a lgica para funcionamento do sistema. O PIM o projeto do sistema e pode ser transformado
em um modelo especfico de uma plataforma, o PSM.
Modelo especfico de plataforma (PSM - Plataform Specific Model): contm as funcionalidades do sistema aplicadas na plataforma.
Os objetivos da MDA so: portabilidade, interoperabilidade e reutilizao de elementos de projeto e de cdigo atravs da
separao dos conceitos. Para minimizar custos de desenvolvimento de software, utilizando os padres adotados pela OMG,
em especial os padres UML, CORBA e OCL, a MDA busca separar as funcionalidades de um sistema da forma como ele
deve ser implementado, concentrando-se em um desenvolvimento de software que satisfaa os seus objetivos.
A MDA objetiva prover facilidades para o desenvolvimento de software, como:
84
Especificao de plataformas;
A MDA uma filosofia de desenvolvimento de software composta por um conjunto de modelos de sistema, utilizados para
suprir os seus objetivos. Um modelo de sistema entende-se por uma descrio ou especificao deste sistema, sempre apresentado como uma combinao de desenhos e textos, estes ltimos que podem ser expressos em linguagem natural ou linguagem de modelagem, como UML. Logo a MDA fornece modelos para especificao das vrias partes constituintes de um sistema. Estes modelos so expressos em diagramas j conhecidos e utilizados pelos projetistas e programadores de software, os
diagramas da notao UML. Alm disso, a MDA prov aos diagramas uma fora maior do que os possuem os diagramas
UML convencionais, de forma que os modelos podem ser usados para direcionar o curso do projeto, construo, emprego,
operao, manuteno e modificao.
Esta filosofia de desenvolvimento de software busca sustentar na Engenharia de Software tradicional a capacidade de abstrao do conceito de implementao de um sistema das funcionalidades deste sistema. Para isso, propem modelar todas as
caractersticas do sistema que so independentes de plataforma e, posteriormente, gerar uma implementao do sistema para
uma arquitetura especfica. Ela tem por objetivo separar o que o sistema necessita fazer (requisitos funcionais) de como o
sistema pode fazer (requisitos no funcionais), permitindo uma transio de um modelo independente de arquitetura (PIM)
para uma implementao dependente de arquitetura (PSM), sem que sejam necessrias muitas alteraes no projeto do sistema neste processo. Alguns benefcios com a adoo da MDA so: rapidez (menos tempo para que um software seja entregue), minimizao no impacto ocasionado pelas mudanas de requisitos na escala do desenvolvimento, maior reuso de componentes de software e consistncia de implementao (poucos erros para corrigir e pouca propagao de erros), flexibilidade
arquitetural e independncia de plataforma.
Este o fluxo utilizado pela OMG para representar a MDA:
Como resultado da transformao deste ltimo modelo gerado, um modelo para a plataforma especfica.
A MDA preocupa-se tambm com gerao automtica de cdigo. Isto quer dizer que, ao selecionar uma arquitetura, como
por exemplo J2EE ou .NET, espera-se que o modelo independente de plataforma PIM, estando convertido em um modelo
especfico de plataforma PSM, possibilite a gerao automtica de cdigo para a arquitetura escolhida. O desenvolvimento de
um sistema em MDA, utilizando o caminho mais curto para gerar cdigo a partir de um modelo UML, procede de um CIM
para um PIM, de um PIM para um PSM e de um PSM para cdigo. Existem atualmente muitas ferramentas de desenvolvimento de projetos de software que convertem modelos UML em cdigo e que aplicam alguns dos conceitos da MDA.
RUP
necessrio um processo que integre as muitas facetas do desenvolvimento. Uma soluo o UP (Unified Process). O UP
um framework genrico de um processo de desenvolvimento, baseado em componentes e utiliza a definio da UML . Ele
dirigido pelos casos de uso, centrado na arquitetura, iterativo e incremental.
O RUP (Rational Unified Process) denota trs conceitos bem diferentes:
O RUP um Processo de Engenharia de Software. Fornece uma abordagem disciplinada para distribuir tarefas e
responsabilidades em uma organizao voltado para o desenvolvimento. O seu objetivo garantir a produo de
softwares de alta qualidade que atendem s necessidades do cliente, no tempo e com o budget previsto.
85
O RUP um Produto de Processo desenvolvido e mantido pela Rational Software. A equipe de desenvolvimento
do RUP trabalha continuamente e de forma dedicada com clientes, parceiros e com os grupos de desenvolvedores de
Produtos da Rational para assegurar que este processo e padro seja atualizado e aprimorado constantimente refletindo as experincias mais recentes comprovando este guia/padro.
O RUP uma Abordagem de Desenvolvimento de Software, que iterativa, centrada a arquitetura, e dirigida a casos de uso. A maior parte das informaes sobre essa abordagem pode ser encontrado no prprio Produto, que contm detalhes, exemplos, templates e todo o ciclo de vida
As atividades do RUP criam e mantm modelos. Ao invs de focar a produo de grandes quantidades de documentos em
papel, ele enfatiza o desenvolvimento e manuteno de modelos de forma semntica com ricas representaes do sistema /
software em desenvolvimento.
No existe uma maneira exata de aplicar o RUP, pois ele pode ser aplicado de vrias formas e ser diferente em cada projeto
e organizao. Porm, existem alguns princpios que podem caracterizar e diferenciar o RUP de outros mtodos iterativos:
86
Desenvolver software iterativamente: dado o tempo para desenvolver um software sofisticado, no possvel definir o problema e construir a soluo em um nico passo. Iterao permite refinar o projeto, e priorizar as atividades
de alto risco, fazendo com que cada iterao termine idealmente com uma nova release.
Gesto de requisitos: uma documentao apropriada essencial para qualquer grande projeto; note-se que o RUP
descreve como documentar a funcionalidade, restries de sistema, restries de projeto e requisitos de negcio. Os
casos de uso (tambm conhecidos como Use Cases) e os cenrios so exemplos de artefatos dependentes do processo, que tm vindo a ser considerados muito mais eficazes na captura de requisitos funcionais.
Uso de arquitetura baseada em componentes: a arquitetura baseada em componentes cria um sistema que pode
ser facilmente extensvel, promovendo a reutilizao de software e um entendimento intuitivo. Um componente
normalmente se relaciona com um objeto na programao orientada a objetos. O RUP oferece uma forma sistemtica
para construir este tipo de sistema, focando-se em produzir uma arquitetura executvel nas fases iniciais do projeto,
ou seja, antes de comprometer recursos em larga escala. Estes componentes so normalmente includos em infraestruturas existentes como o CORBA e o COM (Modelo de Componentes de Objetos).
Uso de software de modelos visuais: ao abstrair a programao do seu cdigo e represent-la utilizando blocos de
construo grfica, o RUP consegue uma maneira efetiva de se ter uma viso geral de uma soluo. O uso de modelos visuais tambm pode permitir que indivduos de perfil menos tcnico (como clientes) tenham um melhor entendimento de um dado problema, e assim se envolvam mais no projeto como um todo. A linguagem de modelao
UML tornou-se um padro industrial para representar projetos, e amplamente utilizada pelo RUP.
Verificao da qualidade do software: no assegurar a qualidade do software a falha mais comum em todos os
projetos de software. Normalmente, pensa-se em qualidade de software aps o trmino dos projetos, ou a qualidade
responsabilidade por uma equipe diferente da equipe de desenvolvimento. O RUP intenciona assistir no controle do
planejamento da qualidade, verificando-a na construo de todo o processo e envolvendo todos os membros da equipe de desenvolvimento.
Gesto e Controle de Mudanas do Software: em todos os projetos de software a mudana inevitvel. O RUP
define mtodos para controlar e monitorizar mudanas. Como uma mudana pode afetar aplicaes de formas imprevisveis, o controle de mudanas essencial para o sucesso de um projeto. O RUP tambm define reas de trabalho seguras, garantindo a um programador que as mudanas efetuadas noutro sistema no iro afetar o seu sistema.
O RUP possui cinco elementos principais: papis, atividades, artefatos, fluxos de trabalho e disciplinas.
Analista de sistema: o indivduo que assume este papel coordena a obteno dos requisitos e a modelagem dos casos de uso identificando funcionalidades do sistema e estabelecendo limites do sistema;
Projetista: esse indivduo define responsabilidades, operaes, atributos, relacionamentos de uma ou mais classes e
determina como elas devem ser ajustadas para serem implementadas no ambiente;
Projetista de testes: responsvel pelo planejamento, projeto, implantao e avaliao de testes, incluindo a gerao
de plano e modelo de teste, implementando procedimentos de testes e avaliando a abrangncia dos testes, resultados
e a efetividade.
Uma atividade uma unidade de trabalho que um indivduo executa quando est exercendo um determinado papel e produz
um resultado importante para o contexto do projeto. Cada atividade pode ser dividida em passos. So exemplos de atividades:
Um artefato um pedao de informao que produzido, modificado ou utilizado em um processo. Os artefatos so os produtos de um projeto. So as coisas produzidas durante o desenvolvimento do projeto. Artefatos so utilizados como entradas
de atividades e so produzidos como sada. Os artefatos podem ter vrias formas:
A enumerao de atividades, papis e artefatos no constituem um processo. necessrio saber a seqncia do desenvolvimento das atividades para que se produzam artefatos de valor para o projeto. Isso definido pelo fluxo de trabalho.
Um fluxo de trabalho (workflow) uma seqncia de atividades que so executadas para a produo de um resultado valioso
para o projeto. Fluxos de trabalho podem ser representados por diagramas de seqncia, diagramas de colaborao e diagramas de atividades da linguagem UML. O RUP utiliza trs tipos de fluxos de trabalho:
Fluxos de trabalho de detalhe (detail workflow), para detalhar cada fluxo de trabalho principal;
87
Disciplinas do RUP
Uma disciplina uma coleo de atividades relacionadas que fazem parte de um contexto comum em um projeto. As disciplinas proporcionam um melhor entendimento do projeto sob o ponto de vista tradicional de um processo cascata. A separao
das atividades em disciplinas facilita a compreenso das atividades, porm dificulta mais o planejamento das atividades.
O RUP possui nove disciplinas, divididas em disciplinas do processo e de suporte. As Disciplinas de Processo so a modelagem de negcios, requisitos, anlise e projeto, implementao, teste e implantao. As Disciplinas de Suporte so o gerenciamento de configurao e mudanas, o gerenciamento de projeto e o ambiente (environment).
Fases do RUP
O Processo Unificado repete vrios ciclos at a aposentadoria do sistema cada ciclo gera um produto liberado para uso. Cada
ciclo possui 4 fases: Concepo, Elaborao, Construo e Transio.
Cada fase ento subdividida em iteraes. Um conjunto de artefatos (release) gerado a cada iterao. Um milestone
gerado a cada fase. As fases indicam a nfase que dada no projeto em um dado instante. Para capturar a dimenso do tempo
de um projeto, o RUP divide o projeto em quatro fases diferentes:
Qualidade
88
Processos
Tecnologia
A ISO (International Organization for Standardization) a organizao internacional para a padronizao, estabelecida em
1947. O seu principal objetivo o desenvolvimento de padres mundiais, facilitando o intercmbio mundial de produtos e
servios, e cooperao intelectual, cientfica, econmica e tcnica.
No Brasil a ABNT (Associao Brasileira de Normas Tcnicas) a entidade responsvel pela normalizao tcnica no pas,
alm de representar o Brasil nas entidades de normalizao internacional, como a ISO.
CMM/CMMI
Em 1991, o SEI (Software Engineering Institute) publicou o CMM (Capability Maturity Model) para software, um framework de maturidade que estabelece fundamentos de engenharia de software e de gerenciamento de projeto para controle
quantitativo do processo de software.
O CMM (Capability Maturity Model, ou Modelo de Maturidade da Capacitao) uma estrutura conceitual que prope um
caminho evolutivo de melhoria, para que organizaes venham a praticar Engenharia de Software de forma sistemtica. Este
caminho evolutivo definido por cinco nveis de maturidade. As organizaes passam a evoluir nestes nveis na medida em
que definem, implementam, implantam, medem, controlam e melhoram seus processos de software, saindo de um processo
de desenvolvimento pouco sistemtico e alcanando um processo maduro e otimizado;
O CMM estabelece prticas de Engenharia de Software relacionadas com aspectos gerenciais, organizacionais e tcnicos.
Quando estas prticas so seguidas rotineiramente, as organizaes se capacitam a atingir metas estabelecidas de controle de
custo, cronograma e produtividade. O CMM pode ser utilizado:
Como um guia para ajudar gerentes e tcnicos a definirem e melhorarem os processos de software da organizao,
adotando um processo sistemtico e efetivo de desenvolvimento de sistemas
Para identificar os pontos fracos e os de melhoria nos processos de desenvolvimento e de manuteno de software
praticados na organizao, viabilizando a tomada de ao para aprimorar os processos
Para avaliar o risco de contratar um projeto de software de uma outra organizao, bem como para monitorar os contratos com esta organizao
Segundo o CMM, a principal causa dos problemas de qualidade e produtividade a falta de um processo de desenvolvimento
de software claramente definido e efetivo. O CMM prope um caminho gradual que leva as organizaes a se aprimorarem
continuamente em busca da soluo dos seus problemas. Este caminho se d em cinco nveis de maturidade:
2 Repetitivo: focado nos aspectos gerenciais, como controles bsicos mais imediatos.
5 Otimizado: apresenta uma melhoria contnua nos processos, atravs de anlises do nvel anterior.
J o CMMI foi desenvolvido para integrar trs disciplinas: engenharia de software, engenharia de sistemas e desenvolvimento
integrado de produto e processo, utilizando como fonte primria os bem sucedidos padres do modelo CMM. Os seus modelos podem ser em estgio (staged) ou contnuos (continuous).
Gerenciamento
de Requisitos
Requisitos
Requisitos de Produto e
Componentes
Desenvolvimento
Alternativas de
Soluo
Soluo
de Requisitos
Requisitos
Relatrio Verificao
Tcnica
Componentes
Componentes
Artefatos,
Produto
Integrao
de Produto
Relatrio
Validao
Produto
Cliente
89
Abaixo, esto relacionadas as reas-chave de Processo para o sistema de qualidade, como descritos no item 3 do Technical
Report CMU/SEI-93 - Capability Maturity Model for Software:
Nvel 1 - Inicial
No tem reas-chave de Processo.
Nvel 2 - Repetvel
Mais do que qualquer outro nvel de maturidade, o nvel repetvel tm interesse especial, pois alm do fato da grande maioria
das empresas estar no nvel 1 (Inicial), o caminho para o nvel 2 talvez o mais difcil de ser percorrido, pois trata-se de colocar o trem em movimento, enquanto a passagem para os nveis seguintes pode se beneficiar do embalo gerado pelos esforos
de melhoria para se alcanar o nvel 2.
Iniciando o Processo de Melhoria: a partir de uma avaliao formal ou informal, em que se encontram os principais pontos
fracos no processo de desenvolvimento, necessrio fazer com que todos dentro da empresa comprem a idia da melhoria, e
isto inclui a alta administrao (diretoria), profissionais de informtica (gerentes, analistas programadores, AD, DBA, produo, suporte etc) e usurios (gerncia e pessoal operacional). As negociaes de planejamento so o teste crtico do time gerencial. Este time deve tratar o plano inicial como um ponto de partida e, quando o prazo ou o custo tiverem de ser reduzidos,
o escopo do trabalho deve ser igualmente cortado
O foco do nvel 2: o estabelecimento de procedimento bsicos de Gerenciamento de Projetos. A falta de planejamento a
primeira coisa a ser atacada, sem a qual qualquer outro esforo de melhoria baldado. Uma equipe que desenvolve seu trabalho aleatoriamente no poder se beneficiar de tcnicas de inspeo, metodologias de desenvolvimento ou mtricas.
As diversas atividades de melhoria de software devem ser conduzidas por um grupo especialmente constitudo para isto, normalmente chamado de SEPG (Software Engineering Process Group - Grupo de Processos de Engenharia de Software). A
existncia de um grupo especificamente encarregado destas tarefas fundamental para garantir os projetos de melhoria. Obviamente, no so os desenvolvedores j pressionados que disporo de tempo para estas atividades. As KPAs do nvel 2 so:
90
Gerenciamento de Requisitos: o seu propsito estabelecer um entendimento comum entre o usurio e a equipe de
projeto a respeito dos requerimentos que sero atendidos pelo projeto. Alm disso, so estabelecidos procedimentos
para a mudana dos requisitos, garantindo que os planos, cronogramas e recursos alocados estejam sempre coerentes com os requisitos. Estes requisitos devem tambm ser revisados por diversas reas envolvidas (para verificar sua
viabilidade) e ter sua qualidade controlada. Observe-se que a documentao dos requisitos e sua reviso devem ser
feitas antes da elaborao do plano do projeto. Em seguida, a organizao precisa instituir procedimentos para a alterao dos requisitos. A existncia de um procedimento formal tem dois benefcios: garante que os planos sero revistos para acomodar as alteraes (isto , renegociao de prazos e recursos) e funciona como um freio para alteraes
desnecessrias ou postergveis (normalmente, a maioria), instituindo uma disciplina de controle de prioridades.
Planejamento de Projetos: o seu propsito garantir que, a cada projeto, sejam elaborados planos razoveis para o
desenvolvimento. Isto envolve a realizao de estimativas e o estabelecimento de compromissos. Tambm se incluem aqui atividades de gerenciamento de riscos e alocao de recursos.A empresa deve instituir polticas e procedimentos padronizados para o planejamento de projetos, incluindo a necessidade de envolver todas as reas interessadas (tcnicas e usurias) no processo de planejamento. Esta KPA tambm pressupe que a empresa tenha definido
um ciclo de vida de sistemas para ser usado no planejamento.
Acompanhamento e Superviso de Projetos: planejar o projeto no basta. preciso garantir, ao longo de sua execuo, que os planos esto sendo cumpridos. O propsito desta KPA dar visibilidade sobre o progresso real do projeto em relao ao planejado, permitindo a tomada de aes corretivas quando a realidade estiver se afastando muito
do que foi inicialmente planejado. A organizao deve instituir procedimentos para garantir que o progresso do projeto continuamente comparado com o planejado, em termos de prazos, custos e qualidade. Alm disso, os procedimentos devem estabelecer gatilhos a serem disparados quando houver muita distncia, indicando as aes corretivas a serem tomadas em cada caso, incluindo alteraes nos compromissos assumidos. A evidncia, por exemplo, de
que um prazo no ser cumprido deve levar renegociao de prazo, recursos, escopo ou nvel de qualidade previamente acordados. Esta KPA, naturalmente, inclui o acompanhamento dos fatores de risco identificados nas atividades de gerenciamento de riscos includas na KPA de Planejamento de Projetos. Outro ponto importante coberto por
esta KPA o estabelecimento da obrigatoriedade da existncia de pontos de reviso formal ao longo do projeto. Isto
significa que, em determinados momentos do desenvolvimento, os produtos gerados at ento so revisados formalmente pelas reas envolvidas, como forma de garantia que o projeto est andando conforme deveria. Quando ocorrem alteraes nos planos por conta de aes corretivas tomadas, fundamental que os planos originais sejam
mantidos. Isto permitir futuramente que os erros de estimativas sejam conhecidos e, portanto, reduzidos. Sabendose onde se errou, pela comparao entre planejado e real, futuros projetos podero ser estimados com mais preciso.
Gerenciamento de Subcontratao: cada vez mais so usados recursos externos (outsourcing) para colaborar no
desenvolvimento do software. O propsito desta KPA garantir a seleo e gerenciamento eficaz destes recursos
terceirizados. A organizao deve estabelecer procedimentos para garantir que a seleo de subcontratados se faz de
forma apropriada, que as atividades a serem desenvolvidas pelos terceiros estejam bem definidas e planejadas, que o
contrato entre a empresa e os terceiros adequado e que a comunicao entre empresa e terceiros adequada. Alm
disso, devem ser estabelecidos procedimentos especificando como se far a comunicao (por exemplo, documentos
de trabalho a serem trocados) e, naturalmente, procedimentos para reviso e controle de qualidade dos produtos gerados pelos terceiros.
Garantia de Qualidade de Software: o propsito desta KPA prover visibilidade sobre a qualidade tanto dos processos utilizados pela equipe de projeto quanto dos produtos gerados. Isto inclui revises formais e informais dos
produtos e auditorias dos processos. Tipicamente, em empresas com recursos suficientes, existe um grupo especialmente dedicado a estas tarefas. importante observar que esta KPA diz respeito tanto a produtos quanto a processos.
Alm disso, as revises de qualidade se do em todas as fases do desenvolvimento. Quanto reviso dos processos,
deve-se dizer que no basta revisar produtos. Na maioria das vezes, produtos sem qualidade so resultado de processos sem qualidade. No basta descobrir que um programa tem um monte de bugs. necessrio descobrir por qu estes bugs existem. Geralmente, a razo ser algo como o no uso dos padres definidos de programao, documentao de programao insuficiente, comunicao inadequada entre analistas e programadores etc. A empresa deve instituir um grupo de garantia de qualidade (ou ao menos um comit) e procedimentos que garantam que as atividades
necessrias de garantia de qualidade so planejadas, executadas e revisadas. Estes procedimentos devem incluir medidas objetivas de verificao de qualidade, e tambm padres de qualidade que possam ser usados como medida de
comparao com os produtos e processos efetivamente utilizados. A cada projeto, portanto, so desenvolvidos planos de garantia de qualidade, dentro do planejamento geral do projeto. Este planos incluem pontos e procedimentos
de verificao, tais como revises de documentos, inspees de cdigo e, naturalmente, testes.
Gerenciamento de Configurao: o propsito desta KPA identificar, organizar, controlar modificaes de software que est sendo construdo por uma equipe, maximizar a produtividade e minimizar erros e defeitos. aplicada
a todo o processo de Engenharia de Software, do incio do projeto at quando produto retirado de operao, garantindo que as alteraes estejam sendo corretamente implementadas e relatadas a outras pessoas que possam ter interesse. Procedimentos de Controle de Mudanas so estabelecidos, garantindo que alteraes em produtos (documentos, dados de teste, programas) so feitas de forma consistente e sob o conhecimento e aprovao de todos os envolvidos. O uso de software de Controle de Configurao (Librarians) pode facilitar a execuo destas atividades.
Tambm necessria a criao de um grupo (ou comit) responsvel pelas atividades de gerenciamento de configurao. Toda manuteno passa a ser considerada como a implantao de uma nova verso ou release do software.
Nvel 3 - Definido
Focalizao dos Processos da Organizao
Definio dos Processos da Organizao
Programa de Treinamento
Gerenciamento Integrado de Software
Engenharia de Produto de Software
Coordenao Inter Grupos
Revises Detalhadas para Preveno de Defeitos
91
Nvel 4 - Gerenciado
Gerenciamento Quantitativo dos Processos
Gerenciamento da Qualidade de Software
Nvel 5 - Otimizado
Preveno de Falhas
Gerenciamento das Mudanas nos Processos
Gerenciamento das Mudanas Tecnolgicas
Caractersticas Comuns
Verificao da Implantao (revises e auditorias)
Mensurao e Anlise (medidas e avaliaes)
Compromisso para Realizar (polticas e responsabilidades)
Capacidade para Realizar (recursos, estruturas e treinamento)
Aes e Atividades Realizadas (planejamento, procedimentos e aes corretivas)
ISO 9126
A ISO/IEC 9126 trata das caractersticas da qualidade de software e mtricas, e divide-se em quatro partes:
De acordo com a ISO 9126-1, a mais antiga das normas de qualidade de software, alguns conceitos so:
Qualidade interna: refere-se principalmente ao ambiente de programao, e a totalidade dos atributos de um produto que satisfazem as necessidades quando utilizado em condies especificadas.
Qualidade externa: refere-se principalmente qualidade de entrega do produto, e constitui o quanto um produto satisfaz as necessidades quando utilizado em condies especificadas.
Qualidade em uso: a viso do usurio do ambiente de qualidade que o software est inserido.
De acordo com esta norma, um produto possui caractersticas e sub-caractersticas que medem a qualidade:
Confiabilidade: O produto de software imune falhas? Atributos que evidenciam se o software capaz de manter
um nvel de desempenho durante um perodo de tempo.
Maturidade (evidncia a freqncia de falhas)
Tolerncia Falhas (capacidade do software de manter o nvel do desempenho em falhas)
Recuperabilidade (capacidade de restabelecer e restaurar dados aps a falha)
92
Usabilidade: O produto de software fcil de usar? Atributos que evidenciam o esforo para se poder utilizar o
software, bem como o julgamento individual deste uso.
Operabilidade (evidencia a facilidade de operar e controlar as funes do software)
Apreensibilidade (facilidade de aprendizado do software)
Inteligibilidade (facilidade de entendimento dos conceitos utilizados pelo software)
Eficincia: O produto de software rpido? Mede o nvel de desempenho em relao aos recursos.
Comportamento em relao ao tempo (tempo de resposta, processamento e execuo)
Comportamento em relao aos recursos (quantidade de recursos e a durao do seu uso)
Manutenibilidade: O produto de software fcil de modificar? Atributos que evidenciam o esforo necessrio para
fazer modificaes especificadas no software.
Analisabilidade (evidencia a facilidade de modificao e remoo de defeitos)
Modificabilidade (a facilidade de modificao e remoo dos defeitos)
Estabilidade (evidencia a ausncia de riscos de efeitos inesperados)
Testabilidade (evidencia a facilidade de testar o software)
Portabilidade: O produto de software fcil de usar em outro ambiente? Atributos que evidenciam a capacidade de
um software de se transferir para outro ambiente.
Adaptabilidade (capacidade do software de ser adaptado a ambientes diferentes)
Capacidade para ser instalado (facilidade de instalao do software)
Conformidade (conformidade com o software com padres ou convenes de portabilidade)
Capacidade para substituir (capacidade do software de substituir outro software)
Alm de todas estas caractersticas, utiliza-se uma outra ISO (14598) para descrever detalhadamente todos os passos para a
avaliao destas caractersticas e sub-caractersticas de um software.
Gesto da Qualidade
Destaca-se o mtodo PDCA, que pode ser aplicado a todos os processos, e uma ferramenta que fornece o carter cientfico
administrao moderna, equiparado ao mtodo cientfico moderno.
Planejamento("Plan"): estabelecimento dos objetivos e dos processos necessrios para a obteno de resultados,
de acordo com os requisitos do cliente e com a poltica da qualidade da organizao.
Verificao ("Check"): monitoramento e medio de processos e produtos em relao poltica, objetivos e requisitos para o produto, bem como comunicao dos resultados.
93
94
Conceitos bsicos
Os negcios de qualquer tipo de organizao necessitam do apoio da tecnologia e isso faz com que seja importante que o sistemas de informao sejam projetados para suportar e atender aos objetivos de negcio. Um negcio pode ser entendido como qualquer tipo de operao em andamento que tem ou usa recursos e tenha um ou mais objetivos. Para se projetar, entender
ou se buscar melhorias no funcionamento de um negcio, torna-se essencial fazer o modelo de processos de negcio, que
uma viso simplificada da realidade complexa da organizao. A modelagem permite, por exemplo, a abstrao de detalhes
irrelevantes em determinados momentos e concentrar foco em aspectos importantes.
A Modelagem de Processos de Negcio um ponto central para os que gerenciam ou influenciam mudanas. Assuntos como
Melhoria Contnua de Processos, Qualidade Total, Gerenciamento de Processos, Gerenciamento do Conhecimento, Melhoria
da Qualidade, ISO 9000, e outros temas semelhantes, requerem habilidades de Modelagem de Processos de Negcio.
O Modelo de Negcios uma abstrao de como um negcio funciona. Ele se prope a:
Do ponto de vista de metodologias para a realizao da modelagem de processos de negcio, existem diversas abordagens.
Cada uma delas utiliza uma determinada notao e linguagem, mas abrangem o mesmo conjunto de passos/atividades:
1) definir o escopo da ao;
2) documentar a misso, estratgia, metas e objetivos da organizao;
3) compreenso do processo/organizao como est (asis);
4) avaliao do modelo obtido;
5) decidir quanto a: abandonar, contratar, manter como est, melhorar ou redesenhar os processos;
6) discutir e gerar idias;
7) determinar caractersticas do processo desejado;
8) projetar os processos desejados (to-be).
Atividades: a decomposio do trabalho em tarefas a serem realizadas. "Reviso do Currculo" e "Envio de Carta
de Recusa" e "Agendamento da Entrevista" so exemplos de atividades.
Atores / Agentes: se encarregam das atividades. No exemplo: "Gerente de RH", "Analista de RH" e "Secretria".
Entradas / Sadas: so os produtos necessrios / gerados a cada atividade / processo. "Currculo" e "Avaliao".
A identificao dos processos permitem um entendimento uniforme do negcio. Existem alguns modelos que permitem melhorar essa capacidade, como o Modelo da Organizao (estrutura da organizao), o Modelo de Objetivos (liga os objetivos da empresa com os processos de negcio), o Modelo de Processos (modela a estrutura de processos e atividades) e outros, como o Modelo de Workflow, Modelo de Interao e Modelo de Casos de Uso.
95
A utilizao da mesma linguagem tanto para a modelagem de negcio quanto para a modelagem do sistema de software faz com que a documentao seja consistente e ainda facilita a comunicao entre as duas modelagens
Existe um grande nmero de ferramentas disponveis para a modelagem de negcio usando a UML.
Aspectos tanto estruturais quanto de negcio (como a organizao, hierarquia de objetivos, ou recursos).
O uso da UML para modelar processos de negcio facilita uma melhor compreenso dos negcios da organizao, na medida
que diagramas como os de caso de uso e de seqncia podem ser usados.
http://www.uniandrade.br/publicacoes/revista/cientifica/MontaArtigo.asp?ID=156
Notao
Artefatos
96
Atividades
97
Gerncia de Projetos
Gerncia de Projetos (ou Gesto de Projetos) a aplicao de conhecimentos, habilidades e tcnicas na elaborao de atividades relacionadas para atingir um conjunto de objetivos pr-definidos. O conhecimento e as prticas da gerncia de projetos
so melhores descritos em termos de seus processos componentes.
Reduzida sua forma mais simples, a gerncia de projetos a disciplina de manter os riscos de fracasso em um nvel to baixo quanto necessrio durante o ciclo de vida do projeto. O risco de fracasso aumenta de acordo com a presena de incerteza
durante todos os estgios do projeto.
A gerncia de um projeto de software pode influenciar o desempenho da organizao de diversas maneiras:
prover informao necessria, acurada e no tempo para permitir melhor tomada de deciso;
reduzir o custo do negcio, substituindo capital por trabalho e automatizando transaes da empresa;
Planejamento: Identificar e planejar as atividades e tarefas, preparando planos de trabalho, estimativas e cronogramas viveis. Identificar, planejar aes e eliminar fontes de risco, antes que aconteam. Planejar as necessidades e a
obteno dos recursos humanos e tcnicos, e definir os produtos intermedirios e suas entregas.
Execuo: Criar condies para que as atividades previstas possam ser realizadas. Atuar para que o grupo realize as
tarefas com sinergia e supere as dificuldades previstas e imprevistas, de forma a atingir os objetivos (cronogramas).
Estabelecer regras para as solicitaes de mudanas nas especificaes do projeto e negociar as condies para a aceitao destas. Conduzir o processo para a obteno de mxima qualidade do produto.
Controle: Medir e avaliar o progresso do projeto (fsico e financeiro) em relao ao planejado, tomar aes corretivas e comunicar o andamento do projeto.
PMBOK
PMBOK (Project Management Body of Knowledge) um padro de Gerncia de Projetos desenvolvido pelo PMI (Project
Management Institute). Ele largamente aceito por diversas indstrias como sendo o padro de fato de Gerncia de Projetos.
O propsito principal do PMBOK identificar o subconjunto de conhecimentos sobre a profisso, sendo aplicveis para a
maior parte dos projetos na maior parte do tempo. Outro propsito prover um vocabulrio nico para a profisso, padronizando seus termos. Tambm usado como referncia bsica para os exames de certificao do PMI.
Conceitos
Um projeto um empreendimento temporrio com o objetivo de criar um produto ou servio nico. Projetos possuem muitas
caractersticas comuns: so executados por pessoas, tm recursos limitados e so planejados, executados e controlados.
Na abordagem tradicional, distinguimos cinco estgios no desenvolvimento de um projeto:
Iniciao de projeto
Planejamento de projeto
Produo de projeto
Monitoramento de projeto
reas de Conhecimento
O gerenciamento de projetos tenta adquirir controle sobre quatro variveis: tempo, custo, qualidade e escopo. De acordo com
a abordagem PMBOK, pode ser classificado em 9 (nove) reas de conhecimento:
98
Gerncia de Integrao: Envolve os processos necessrios para garantir que os vrios elementos do projeto sejam
coordenados de forma apropriada. Envolve as negociaes dos conflitos entre objetivos e alternativas concorrentes,
com a finalidade de atingir ou exceder s necessidades e expectativas dos stakeholders interessados. Envolve:
o
Gerncia de Escopo: Envolve os processos necessrios para assegurar que o projeto contm todo o trabalho necessrio para completar o projeto com sucesso. O seu foco principal na definio e controle do que est ou no considerado no projeto. O escopo do projeto difere-se do escopo do produto na medida em que o escopo do projeto define o trabalho necessrio para fazer o produto, e o escopo do produto define os recursos (atributos e comportamentos)
do produto que est sendo criado.
o
Iniciao
Definio do escopo
Verificao de escopo
Gerncia de Tempo: Envolve os processos requeridos para garantir o trmino do projeto no tempo certo. Os processos desta fase so: identificar as atividades que devem ser feitas, arrum-las em uma seqncia lgica, estimar a
durao de cada atividade, desenvolver um calendrio que exibe estas atividades em funo do tempo, e monitorar,
controlar e modificar o calendrio com o passar do tempo.
o
Definio de atividades
Sequenciamento de atividades
Desenvolvimento de cronograma
Controle de cronograma
Gerncia de Custo: Envolve os processos requeridos para garantir o trmino do projeto dentro do oramento aprovado. Inclui o planejamento de recursos, estimativas e controle do budget. Na apurao de custos de software, o modelo de custos uma frmula, ou uma srie de frmulas, usada para prever os custos que provavelmente recairo sobre o projeto.
o
Planejamento de recursos
Estimativa de custos
Oramento de custos
Controle de custos
Gerncia da Qualidade: Envolve os processos requeridos para assegurar que o projeto ir satisfazer as necessidades para o qual foi criado. Isto inclui "todas" as atividades de gerncia geral que determina os objetivos, a poltica e
as responsabilidades em relao qualidade e suas implementaes tais como: planejamento, controle, garantia e
melhoria de qualidade dentro do sistema de qualidade.
o
Planejamento de qualidade
Garantia de qualidade
Controle de qualidade
Gerncia de Recursos Humanos: Envolve os processos requeridos para tornar o uso mais efetivo das pessoas que
esto envolvidas no projeto. Isto inclui todos os stakeholders. Faz parte desta rea os processos de aquisio de
membros, desenvolvimento das equipes e motivao.
o
Planejamento organizacional
Desenvolvimento de equipe
99
Gerncia de Comunicao: Envolve os processos requeridos para assegurar a gerao, coleo, disseminao, dissertao, armazenamento e disposio final de informao de projeto adequada e apropriadamente. Prov as ligaes
acerca de pessoas, idias e informao que so necessrias para o sucesso do projeto. Todos os envolvidos devem
enviar e receber comunicaes na "linguagem" do projeto e devem entender como as comunicaes individuais afetam o projeto como um todo.
o
Planejamento de comunicaes
Distribuio de informaes
Relatrios de desempenho
Encerramento administrativo
Gerncia de Risco: Evolve os processos relacionados identificao, anlise e resposta aos riscos de projetos. Isso
inclui maximizar os resultados de ocorrncias positivas e minimizar as conseqncias de eventos adversos. Um plano de risco inclui as tcnicas para identificar o risco, identificar responsabilidades, estabelecimento dos resultados e
relatrios detalhados.
o
Identificao de riscos
Gerncia de Aquisio: Envolve os processos requeridos para adquirir bens e servios externos organizao.
Tambm chamado de Gerncia de Compras e Subcontratao.
o
Administrao do Contrato
Encerramento do Contrato
Anlise de Risco
A anlise de risco do PMBOK envolve definir a tripla (risco, probabilidade, impacto) para cada risco, bem como os impactos
de ocorrncias conjuntas de alguns riscos. Deve-se ainda definir limiares dos riscos, ou seja, a regio ou valores em que pode
ser tomada tanto a deciso de prosseguir quanto a de interromper o projeto diante da ocorrncia dos riscos.
Um produto do processo de anlise de risco a tabela de riscos. A anlise de risco ainda envolve a definio de planos de
contingncia para orientar as aes que devem ser tomadas diante da ocorrncia dos riscos. Esses riscos envolvem tanto riscos tecnolgicos quanto de negcio e organizacionais.
Stakeholders
Stakeholders so indivduos e organizaes ativamente envolvidos no projeto, cujos interesses so afetados (positiva ou negativamente) por ele, ou que exercem influncia sobre o mesmo. Incluem o gerente de projeto, o cliente, a organizao que far
o projeto, os membros da equipe de projeto, o patrocinador (indivduo/grupo interno ou externo que prov os recursos financeiros para o projeto). Inclui tambm partes internas e externas, como fundadores, vendedores, fornecedores, agncias governamentais, comunidades afetadas pelo projeto e a sociedade em geral. uma boa prtica identificar cada uma das partes envolvidas no projeto, identificar e gerenciar possveis reas de conflito entre elas. Uma orientao geral resolver as diferenas entre as partes favorecendo o cliente.
O projeto deve levar em conta as seguintes questes ambientais ou scio-econmicas:
100
Padres e regulamentos
Questes de diferenas culturais (polticas, econmicas, ticas, tnicas, religiosas, etc), quando for o caso.
Cada fase do projeto marcada pela entrega de um ou mais produtos (deliverables), como estudos de viabilidade ou
prottipos funcionais.
No incio de cada fase define-se o trabalho a ser feito e o pessoal envolvido na sua execuo. O fim da fase marcado por uma reviso dos produtos e do desempenho do projeto at o momento
Uma fase comea quando termina a outra. Quando h overlapping entre as fases, chamamos essa prtica de "fast
tracking": nesses casos, comea-se a trabalhar nas prximas fases do projeto antes do fim da fase corrente (entrega e
reviso dos produtos).
A habilidade das partes envolvidas alterarem os produtos de cada fase decrescente a medida em que a fase avana.
Estrutura da Organizao
A estrutura da organizao executora freqentemente restringe a disponibilidade ou as condies sob as quais os recursos se
tornam disponveis para o projeto. Podem existir diversos modelos de estruturas:
Funcional: a clssica hierarquizada onde cada funcionrio tem um superior bem definido, e so agrupados por especialidade (engenharia, marketing, contabilidade). Os departamentos so independentes, e os projetos dependem
dos gerentes funcionais, onde est a coordenao do projeto.
Projetizada: Os membros das equipes freqentemente trabalham juntos, e a maioria dos recursos est envolvida em
projetos, e os gerentes de projeto tm grande autoridade e independncia.
Forte: o papel do gerente de projetos mais autoritrio e dedicado. Parece com projetos.
Projetos de Software
Preparar materiais: Comprar tinta, Comprar escada, Comprar pincis / rolos / removedor de papel de parede.
Preparar sala: Remover papel de parede antigo, Remover decoraes destacveis, Cobrir cho com jornais velhos,
Cobrir tomadas com fita, Cobrir mveis com lenis velhos, Pintar a sala.
Limpar a sala: Jogar fora, ou guardar a tinta que sobrou, Limpar pincis e rolos, Jogar fora jornais velhos, Remover
e limpar lenis.
O tamanho da WBS no deve exceder 100-200 elementos terminais (se mais elementos terminais so requeridos, use subprojetos). A WBS deve ter de 3 a 4 nveis de profundidade. Essas sugestes derivam do fato que a nossa memria de curto prazo
limitada de 5 a 9 itens, e tendo terminado o tempo de planejamento de um projeto, quanto mais elementos terminais existirem, menos tempo sobra para prestar ateno em cada um deles. Conseqentemente, as estimativas so menos pensadas.
Planejamento
O planejamento uma das atividades fundamentais do processo de gerenciamento de software. No planejamento so colocados estimativas de esforo humano (pessoas-ms), durao cronolgica (em tempo de calendrio) e custo (em moeda). Em
suma, planejar estimar.
Acompanhamento e Controle
O acompanhamento e controle de um projeto de software uma atividade de anlise de risco.
Na especificao de um cronograma devemos estabelecer prazos para o esforo de desenvolvimento.
Dois mtodos de determinao de cronograma so:
PERT Program Evaluation and Review Technique (mtodo de avaliao e reviso de programa).
Em ambas as tcnicas existem uma rede de tarefas a serem desenvolvidas desde o comeo at o final do projeto. A rede
definida ao se desenvolver uma lista de todas as tarefas associadas a um projeto especfico e uma lista de disposies que
indica em que ordem as tarefas devem ser executadas. As duas tcnicas permitem:
Estabelecer as estimativas de tempo provveis para tarefas individuais ao aplicar modelos estatsticos.
Calcular limites de tempo que definam uma janela de tempo para uma tarefa em particular.
Grfico de Gantt
O grfico de Gantt constitui-se de uma tima ferramenta para representar o cronograma do plano do projeto. Permite uma
comparao entre o previsto e o realizado, mostrando o andamento do projeto no tempo. Ele deve aparecer em dois nveis
distintos, no mnimo:
102
Formulrio de dados: os dados devem traduzir os fatos e devem ser a base da discusso e das aes de projetos de
melhoria. Isto mostra a importncia de se planejar muito bem o tipo de formulrio que dever ser usado para coletar
os dados, o qual deve ser adaptado a cada situao. Existem, porm, alguns tipos bsicos de formulrios, que podem
ser teis em muitos casos: check-sheet, data sheet e checklist.
Diagrama de Pareto: uma figura simples que visa dar uma representao grfica estratificao. O modelo econmico de Pareto foi traduzido para a rea da qualidade. Este princpio tambm conhecido como "Lei 20/80" pode
ser detalhado nas mais variadas formas. Dentre elas, podem ser citadas: 20% do tempo gasto com itens importantes
responsvel por 80% dos resultados; 20% do tempo gasto em planejamento economiza at 80% do tempo de execuo; 20% dos clientes representam 80% do faturamento global; 20% dos correntistas so responsveis por 80% dos
depsitos; 20% das empresas detm 80% do mercado; 20% dos defeitos so responsveis por 80% das reclamaes;
e 20% dos clientes so responsveis por 80% das vendas. Em linhas gerais, o que o diagrama de Pareto sugere que
existem elementos crticos e a eles deve-se prestar total ateno. Usa-se, assim, um modelo grfico que os classifica
em ordem decrescente de importncia, a partir da esquerda.
Fluxograma: um diagrama que representa o fluxo (ou seqncia) das diversas etapas de um processo qualquer. Ao
iniciar um projeto de melhoria, sua grande utilidade fazer com que todos os participantes adquiriam uma viso
completa do processo, ao mesmo tempo que permite que cada pessoa tenha melhor percepo de qual o seu papel no
processo e de como seu trabalho influi no resultado final. Uma outra forma de utiliz-lo fazer o fluxograma de como as atividades esto sendo feitas na prtica e compar-lo com o fluxograma de como as atividades deveriam estar
sendo feitas. Isto pode revelar a origem de alguns problemas. Podem ser usados quaisquer smbolos ou desenhos,
desde que o entendimento seja fcil para todos.
Diagrama de Ishikawa: tambm conhecida por vrios outros nomes: diagrama causa-efeito, diagrama espinha de
peixe, diagrama 4M, diagrama 5M, sendo uma ferramenta de valor indispensvel, pois permite conhecer os problemas cada vez mais a fundo. Pode ser facilmente aprendida e imediatamente posta em prtica por pessoas de qualquer
nvel dentro da empresa. Embora possa ser utilizada individualmente, a principal qualidade do diagrama de Ishikawa
sua capacidade de "focalizar" a discusso em grupo, estimando a participao de todos e direcionando o conhecimento de cada pessoa no sentido de identificar as causas ou os fatores responsveis por um dado problema ou situao (efeito). Permite, assim, a organizao das idias e sua visualizao agrupada destacando as reas mais significativas. Existem trs tipos de diagrama causa-e-efeito, definidos por Ishikawa: anlise de disperso, classificao de
processo e enumerao de causas.
Histograma: baseia-se na idia de que cada fenmeno tem seu jeito prprio de variar. Ento, pode-se visualizar esta
variao, obtendo muita informao til sobre o fenmeno. O histograma exatamente isto: uma representao grfica que nos permite visualizar a distribuio caracterstica de um fenmeno ou processo.
Grfico de Shewhart: uma das mais fortes ferramentas para controlar processos e indicar oportunidades de melhorias nos mesmos. A capacidade das coisas variarem e formarem um padro tpico de variao, uma das leis mais
fundamentais da natureza: tudo varia, impossvel prever um resultado individual, contudo, um grupo de resultados,
vindos do mesmo conjunto de causas, tende a ser previsvel, seguindo uma certa distribuio; quando um conjunto
de causas perturbado por causas externas, a distribuio de resultados se altera.
Grfico de correlao: permite a avaliao da relao existente entre duas variveis, parmetros ou caractersticas
de interesse. Como exemplo, pode ser citado o estudo da relao entre o peso de uma pessoa e sua altura. Se for obtido o peso e a altura de vrias pessoas, o grfico de correlao poder representar em cada ponto uma pessoa. A caracterstica altura uma varivel independente, pois a idia obter o peso de uma pessoa dada sua altura. O peso a
varivel dependente. medida que os dados apresentem uma tendncia, ou comportamento razovel previsvel, pode-se dizer que as variveis tm correlao. A tendncia mais comum o comportamento linear, ou seja, os pontos
tendem a se alinharem e com isso pode-se imaginar uma reta que representa a correlao entre essas variveis.
103
Mtricas de software referem-se a uma ampla variedade de medidas de software. O gerenciamento de projeto preocupa-se
com mtricas de produtividade e de qualidade medidas do resultado do desenvolvimento de software como uma funo do
esforo aplicado e medidas da adequao ao uso do resultado que produzido.
Podemos dividir o domnio das mtricas de software em:
Mtricas de produtividade: concentram-se na sada do processo de engenharia de software com o objetivo de avaliar o prprio processo.
Mtricas de qualidade: oferecem uma indicao de quo estreitamente o software conforma-se s exigncias implcitas e explcitas do cliente.
Mtricas tcnicas: concentram-se nas caractersticas do software (exemplo: complexidade lgica e modularidade).
Mtricas orientadas ao tamanho: medidas so derivadas a partir de atributos de tamanho do software como linhas
de cdigo (LOCs), esforo, custo, quantidade de documentao (PODs), etc...
Mtricas orientadas para a funo: oferecem medidas indiretas. Ex: a Anlise de Pontos por Funo (APF)
Mtricas orientadas s pessoas: usam informaes sobre a maneira pela qual as pessoas desenvolvem software e
percepes humanas sobre a efetividade das ferramentas e mtodos.
104
COCOMO: modelo desenvolvido para estimar o esforo de desenvolvimento, prazos e tamanho da equipe para projetos de software. Utiliza equaes desenvolvidas por Boehm (BARRY,1981) para prever o nmero de programadores-ms e o tempo de desenvolvimento; podem ser calculados usando medidas de linhas de cdigo ou Pontos de
Funo. Devem ser realizados ajustes nas equaes a fim de representar as influncias sobre os atributos, hardware e
software durante o ciclo de vida do projeto. Uma desvantagem desta tcnica que os coeficientes da mtrica
(a,b,c,d) no so aplicveis a tamanho ou seja a produtividade diferente, o que torna difcil realizar comparaes.
Linhas de Cdigo (LOC): a tcnica de mensurao por linhas de cdigo uma das mais antigas medidas de tamanho de projeto de desenvolvimento de software. Ela consiste na contagem da quantidade de nmero de linhas de cdigo de um programa de software. Alm de ser muito simples tambm muito fcil automatizar sua implementao,
mas, apresenta algumas desvantagens dentre as quais citamos: a dependncia da linguagem de software e do desenvolvedor; ausncia de padro de contagem e o fato de somente poder ser aplicada na fase de codificao.
Metricas de Hasltead: um conjunto de mtricas proposto por Maurice Halstead (HASLTEAD,1977). O princpio
desse mtodo est na anlise e quantificao de operandos e operadores e no conceito de que a partir do conhecimento das medidas, consegue-se quantificar os vocbulos e a extenso do algoritmo do estudo.
Puttnams Slim Model: um modelo de estimativa que busca medir esforo e prazo atravs da dinmica de mltiplas variveis que pressupe distribuio de esforos especficos ao longo da existncia de um projeto de software.
Relaciona o nmero de linhas de cdigo ao tempo e esforo de desenvolvimento. Uma desvantagem da tcnica sua
vinculao linguagem usada e a exigncia de certo tempo para obter valores reais para os parmetros da frmula.
Delphi: uma tcnica que se resume consulta de especialistas de determinada rea, em determinada linguagem
e/ou determinado assunto para que, usando sua experincia e entendimento do projeto proposto, faam estimativas
devidas. Devem ser feitas vrias estimativas do mesmo projeto, pois comum que elas carreguem influncias e tendncias dos especialistas. um mtodo emprico, baseado em experincias profissionais que podem ser subjetivas.
PSP (Personal Software Process): uma tcnica derivada do SEI-CMM (Software Engineering Institute Capability Matutiry Model) que foi desenvolvida com a funo de capacitar, melhorar e otimizar o processo individual de
trabalho. A tcnica divide-se em sete etapas, sendo que nas etapas PSP0, PSP0.1 e PSP1 estima-se o tamanho e o
tempo necessrio para o desenvolvimento do produto.
PCU (Pontos por Caso de Uso): foram criados por Gustav Karner em 1993 como uma adaptao especfica dos
Pontos de Funo para medir o tamanho de projetos de software orientados a objeto. Explora o modelo e descrio
do caso de uso, substituindo algumas caractersticas tcnicas proposta pelos Pontos de Funo. um mtodo simples
e de fcil utilizao mas ainda esta em fase de pesquisas e no existem regras de contagem padronizadas. Tm se estudado a aplicao em conjunto da PCU e APF tentando explorar a relao entre elas existente.(EDMIA,2004)
Anlise por Pontos de Funo: Busca medir a complexidade do produto pela quantificao de funcionalidade expressa pela viso que o usurio tem do mesmo. O modelo mede o que o sistema, o seu tamanho funcional e no
como este ser, alm de medir a relao do sistema com usurios e outro sistemas. independente da tecnologia usada e mede uma aplicao pelas funes desempenhadas para/e por solicitao do usurio final.; podendo tambm
ser usada em estimativas.
Contagem de Pontos de Funo segundo o NESMA: Alm do IFPUG, o NESMA tambm promove o uso de pontos de funo e publica o seu prprio manual de contagem complacente com o manual do IFPUG. O manual da
NESMA apresenta trs tipos de contagens por pontos de funo: a contagem indicativa de ponto de funo, a contagem estimada de ponto de funo e a contagem detalhada de pontos de funo. A contagem indicativa muito usada,
nela so identificados os grupamentos de dados relativos natureza do negcio, conforme a viso do usurio. Estes
grupamentos so classificados como Internos (mantidos pela aplicao e Externos (referenciados ou consultados pela aplicao). Para calcular o tamanho de uma aplicao em Pontos de Funo no Ajustados (PFNA) a NESMA recomenda a seguinte frmula: PFNA = ( 35 * I) + ( 15 * E ).
uma ferramenta para determinar o tamanho do pacote de software adquirido atravs da contagem de todos os Pontos
por Funo includos no pacote.
um mecanismo para estimar custos e recursos envolvidos em projetos de desenvolvimento e manuteno de software, alm de um fator de normalizao para comparao de software.
A tcnica Anlise de Pontos por Funo de grande utilidade para garantir a completeza da especificao de requisitos. Uma
contagem de Pontos de Funo realizada usando a informao contida na especificao do sistema sob a viso do usurio,
que representa uma descrio formal das necessidades do negcio na sua linguagem. Assim, contagem pode servir como uma
reviso dos requisitos do sistema com o usurio.
A APF tambm pode ser utilizada para estabelecer medies para a gerncia de requisitos, como indicadores para apoiar o
controle da estabilidade e rastreabilidade de requisitos e anlise de impacto das mudanas.
O gerente de projetos pode utilizar APF para aferir as mudanas de requisitos no decorrer do desenvolvimento, realizando
uma recontagem e gerando novas estimativas. Para melhorar a preciso das estimativas dos novos projetos, a organizao
deve utilizar um banco de dados histrico, contendo atributos de projetos anteriores.
105
COCOMO
Um mtodo de estimativas o COCOMO (COnstructive COst MOdel), que foi desenvolvido por Barry Boehm, para estimar
esforo, prazo, custo e tamanho da equipe para um projeto de software.
O mtodo foi derivado de um data set que compreendia 63 projetos cobrindo reas como: negcios, controle, cientfica, suporte e sistema operacional. O COCOMO classifica o projeto em 3 tipos:
Semidestacado (Difuso): software utilitrio ou bsico, equipe com experincia mdia em aplicaes relacionadas.
Embutido (Restrito): software de sistema, grandes restries de operao, especificaes rgidas, prazos curtos.
O COCOMO supe que no haver alteraes substanciais nas especificaes de requisitos do Sistema.
Permite estimativas com 20% de variao em relao ao custo real e com 30% de variao em relao ao prazo.
Implementao Bsica
um modelo esttico que calcula o esforo de desenvolvimento de software e seu custo, em funo do tamanho de linhas de
cdigos desenvolvidas.
Onde E o esforo aplicado pela pessoa no ms, D o tempo de desenvolvimento em meses cronolgicos, KLOC o nmero
calculado de linhas de cdigo para o projeto (expressado em milhares), e P o nmero das pessoas necessrio. Os coeficientes ab, bb, cb e db so dados na seguinte tabela:
Projeto de Software
ab
bb
cb
Incio
2.4
1.05
2.5
0.38
Meio
3.0
1.12
2.5
0.35
Fim
3.6
1.20
2.5
0.32
db
Cocomo bsico bom por ser rpido em estimativas e custos de software, mas sua exatido limitada por causa de sua falta
de fatores para explicar as diferenas entre ferramentas, qualidade de pessoal e experincia, uso de ferramentas modernas e
tcnicas, e outros atributos de projeto que influenciam nos custos de software.
Pode-se conseguir um software interativo auxiliar na estimativa de custos e prazos de projetos de sistemas. A partir de um
conjunto de atributos, premissas e modos de desenvolvimento o COCOMO estima os prazos, custos e recursos necessrios
para cada estapa do ciclo de vida do produto.
Implementao Intermediria
Calcula o esforo de desenvolvimento de software em funo do tamanho do programa, que inclui custo, avaliao subjetiva
do produto, ferramentas, pessoal e atributos de projeto.
106
Onde E o esforo aplicado em pessoas por ms, LOC o nmero de linhas de cdigo para o projeto e EAF o fator calculado acima. Os coeficientes ai e o bi so dados na prxima tabela.
Projeto de Software
ai
bi
Incio
3.2
1.05
Meio
3.0
1.12
Fim
2.8
1.20
O mtodo intermedirio uma extenso do mtodo bsico, mas com mais categorias de controle como: Atributos do produto,
Atributos de hardware, Atributos pessoais, Atributos do projeto.
Implementao Avanada
Tambm conhecido como Implementao Detalhada. So incorporadas caractersticas da verso intermediria com uma avaliao de impacto de custo em cada passo de todo o projeto. Apresenta tcnicas para estimar tanto em nvel de mdulo, como
subsistema e Sistema, individualizando, a cada fase do projeto, os atributos de Custo.
Anlise de Desempenho
A avaliao de desempenho de sistemas computacionais consiste em um conjunto de tcnicas e metodologias que permitem
responder questo de como se obter o melhor desempenho de um sistema computacional a um dado custo. A atividade de
avaliao de desempenho compreende:
O desenvolvimento dos experimentos de medio e simulao visando prover a maior quantidade de informao
com o menor esforo;
Modelos Analticos
Um modelo analtico uma construo matemtica que representa aspectos-chave de um sistema computacional. Estes modelos so uma ferramenta excelente para uma rpida avaliao de um produto novo ou modificado.
Modelo de Fila: um modelo de fila representa um sistema como um conjunto de centros de servio que processam
requisies de clientes, denominadas tarefas, transaes ou chegadas. Os centros de servios podem ser qualquer recurso ativo como a CPU, o disco ou a conexo de rede. Os modelos de fila podem prever a latncia, a vazo e a utilizao do sistema e seus componentes.
Modelo Assinttico: a aplicao mais simples de redes de filas. So utilizados para prever o melhor e o pior caso
de latncia e vazo de um nico centro de servios. Um uso tpico examinar o comportamento do ponto de conteno de um conjunto de recursos sob diferentes cargas.
Modelo de Rede Aberta: neste modelo, os clientes passam atravs do sistema uma nica vez. Por exemplo, um dispositivo de rede processando um fluxo de pacotes pode ser modelado com um sistema aberto. O nmero de clientes
do sistema calculado pela taxa de chegada de clientes e as caractersticas do centro de servio. Se existirem tipos
diferentes de clientes, um modelo aberto de mltiplas classes poder ser utilizado.
Modelo de Rede Fechada: neste caso, o nmero de clientes fixo. O exemplo clssico o sistema computacional
de tempo compartilhado com um nmero fixo de terminais de usurio. Neste modelo, o nmero de clientes conhecido e a vazo calculada. Um mtodo interativo conhecido como Anlise do Valor Mdio (Mean Value Analysis ou
MVA) usado para calcular vazo e latncia. A exemplo dos modelos abertos, os modelos fechados podem ser de
classe nica ou de mltiplas classes. As duas variaes do algoritmo MVA so: soluo exata e soluo aproximada.
Cadeias de Markov: so usadas para modelar sistemas como um conjunto finito de estados com uma taxa conhecida de transies entre os estados. Este modelo adequado para prever a disponibilidade de um sistema, dadas as ta107
xas de falha de um componente e as taxas de recuperao. Tambm podem ser usadas para modelar buffers de filas
que armazenam um pequeno nmero de itens idnticos.
Simulao
Conceitualmente, a simulao modela um sistema do mundo real como um programa de computador. A simulao permite
que um sistema seja modelado em qualquer nvel de detalhe: de uma traduo direta de um modelo de redes de filas captura
de todo aspecto do comportamento do sistema. A simulao suporta qualquer coleo de mtricas de desempenho que possam
ser definidas. Existem trs tcnicas bsicas para gerar cargas de trabalho para realizar simulaes:
Simulao Estocstica: descreve a chegada de padres de clientes e outros aspectos da carga por amostragem a partir de uma distribuio probabilstica. Muitas cargas podem ser descritas precisamente pelo uso de uma distribuio
apropriada. As cargas estocsticas so uma boa escolha quando a informao detalhada sobre a carga no est disponvel ou quando existe necessidade de variar as caractersticas da carga. A gerao de carga eficiente e no necessita de grandes arquivos de dados.
Simulao por rastreamento: representa a carga como uma sequncia de operaes ou requisies. Por exemplo,
para a simulao de um servidor Web, uma sequncia de requisies http deve ser rastreada, enquanto na simulao
de uma CPU, as operaes do micro-cdigo devem ser rastreadas. Se dados de rastreamento que representam corretamente a carga esto disponveis, obteremos bons resultados de simulao, sendo desnecessrio escrever o cdigo
que modela a carga. A desvantagem desta tcnica que montar uma coleo de rastreamentos um esforo no trivial e o tamanho dos arquivos de dados muito grande.
Simulao baseada em execuo: utilizada para modelar processadores em detalhes. A entrada de uma simulao
baseada em execuo o mesmo cdigo executvel que seria processado no sistema real.
A principal desvantagem de utilizar qualquer tcnica de simulao o esforo necessrio para escrever e validar o programa
de simulao e os considerveis requisitos de processamento (tempo de CPU para todas as simulaes e espao em disco para
rastreamentos). Em geral, a simulao significativamente mais lenta do que um sistema real: uma hora de simulao pode
significar alguns poucos segundos do tempo real, mas pode ocorrer o contrrio.
Medio de Desempenho
Devemos considerar, ao planejar uma medio de desempenho, o propsito da medio, a seleo da carga de trabalho e sua
implementao, os dados a serem coletados, a instrumentao utilizada na coleta destes dados e a forma de validao dos
resultados. Todos os experimentos de medio de desempenho requerem trs elementos bsicos: o sistema sob teste, os geradores de carga de trabalho e a instrumentao que ir coletar os dados de desempenho.
Benchmarks so uma categoria importante de cargas sintticas, definindo no somente a carga de trabalho, mas as mtricas de
desempenho a serem coletadas e relatadas. Benchmarks desenvolvidos independentemente so sempre preferidos porque
permitem aos clientes compararem resultados de mltiplos fornecedores.
O sistema sob teste pode ser instrumentado para coletar uma variedade de mtricas. Muitos benchmarks simplesmente medem a latncia e a taxa de servio. Entretanto, a informao sobre a utilizao do processador e de outros recursos muito til
na identificao de pontos de conteno no sistema ou para futuros esforos de modelagem. Existem contadores implementados tanto em software quanto em hardware que fornecem informao til de desempenho. Por exemplo, falhas de pgina podem ser gravadas em um contador na CPU, no kernel do sistema operacional ou em ambos. Rastreamento das operaes ou
eventos tambm podem ser coletados.
O SPEC (Standard Performance Evaluation Corporation) uma organizao que busca estabelecer, manter e endossar um
conjunto padro relevante de benchmarks e mtricas de avaliao de desempenho.
Mtricas de Desempenho
Todas as mtricas de desempenho baseiam-se no comportamento do sistema ao longo do tempo. As trs classes principais de
mtricas que podem ser observadas por um usurio ou uma outra entidade externa ao sistema so:
108
Latncia ou Tempo de Resposta: que mede o atraso entre a requisio de alguma ao e a obteno do resultado.
medida em unidades de tempo decorrido, e deve especificar um evento de incio e um evento de trmino (exemplo:
tempo decorrido entre digitar um novo endereo em um navegador Web e a pgina ser completamente exibida).
Taxa de servio: que mede quantidade de trabalho realizado por unidade de tempo ou a taxa em que novos resultados so obtidos. Como exemplo, nmero de transaes completas por minuto, gigabytes de dados escritos em fita
por hora, nmero de acesso memria por segundo, e assim por diante.
Disponibilidade: que mede quanto tempo o sistema est disponvel para operao normal. Embora seja medida em
frao de tempo (ex: 0,96), ela sozinha no completa, necessitando da mtrica de confiabilidade MTBF (Mean Time Between Failures) que indica o perodo mdio em que um sistema utilizvel, e a mtrica MTTR (Mean Time to
Repair), que quantifica o tempo necessrio para recuperar o sistema de uma falha..
A quarta classe de mtrica, que seria a mtrica de utilizao, s pode ser observada de dentro do sistema. A informao de
utilizao vital para entender e prever o desempenho do sistema. Utilizao a frao de tempo em que um componente do
sistema, por exemplo, a CPU, o disco ou a rede realizou servio, em relao a um perodo de tempo observado. Segue dessa
definio que os valores de utilizao esto entre 0 e 1. Na prtica, o tempo de resposta aumenta rapidamente quando a utilizao atinge o mximo, por isso sistemas so projetados para manter uma utilizao abaixo da capacidade mxima (60-80%).
Planejamento de Capacidade
A metodologia de planejamento de capacidade de um software envolve o entendimento do ambiente, caracterizao da carga,
previso da carga e anlise de custo / desempenho, utilizando os seguintes modelos:
Modelo de custo: representado em termos monetrios, onde se avalia o custo do sistema atual (aquisio e manuteno). utilizado para avaliar o custo / benefcio de uma possvel atualizao do sistema, para definir se vivel
ou no financeiramente. Se trata de uma viso mais gerencial do processo de deciso.
Modelo de carga: baseado na utilizao dos recursos do sistema levando em conta a quantidade de recursos e suas
respectivas taxas de utilizao. Esses modelos so fortemente apoiados em modelos matemticos, para fazer uma representao o mais fiel possvel do ambiente real, para que o processo de avaliao de desempenho seja vlido.
Modelo de desempenho: trata de avaliar a situao atual do sistema, confrontando os recursos disponveis e a sua
utilizao pelos usurios. O modelo baseado em observaes sobre o comportamento do sistema, por um perodo
de tempo, de forma a caracterizar um padro de utilizao, para que se possa ter uma base de comparao que seria
utilizada como referncia em um cenrio de planejamento de capacidade.
109
Servio de TI
Um servio bem sucedido em TI um conjunto de facilidades sustentadas pelo fornecedor (do servio) que completa um objetivo do negcio do cliente.
As organizaes buscam na tecnologia da informao meios para ajud-las a se tornar mais eficientes e efetivas no seu negcio. Usurios finais so os consumidores dos servios de TI, que cada vez exigem mais dos servios que utilizam em seu trabalho. Simultaneamente, as organizaes procuram em TI um aumento no valor do seu negcio e retorno do investimento.
O objetivo de uma cultura de servios garantir que a organizao de TI fornece os servios que alcanam as expectativas e
necessidades da organizao a um custo apropriado. Alm disso existem polticas que devem estar claras para cada membro
das equipes, que devem saber como conduzir uma tarefa especfica e lidar com diversas situaes. Tambm devem possuir
funes e responsabilidades bem definidas.
Funes de TI
De forma geral, as funes da rea de TI recaem em trs categorias:
110
Desenvolvimento: envolve o desenvolvimento dos softwares propriamente ditos. O CMMI um exemplo de modelo de qualidade de processos dessa rea.
Operaes: refere-se s atividades dirias que devem ser executadas para manter a infra-estrutura de TI funcionando
adequadamente. A ISO e o ITIL so modelos aplicveis a essa funo.
Controle: envolve a habilidade para medir e auditor a performance de uma infra-estrutura de TI. O COBIT (segurana, etc) e o SixSigma oferecem modelos para a funo de controle.
Cultura de Servios
Service Support
Service Delivery
Service Support
111
Service Desk: atua como um ponto focal de contato para os usurios finais de uma organizao de TI, ajudando os
usurios a resolver problemas e restaurar a operao rapidamente. o comunicador entre os processos.
Incident Management: o primeiro processo executado pela funo do Service Desk, onde incidentes so detectar
e resolvidos. Um incidente pode ser definido como um evento que no parte da operao normal de um servio, e
que causa (ou pode causar) interrupo ou reduo na qualidade do servio.
Problem Management: o processo de detectar e remover erros de uma infra-estrutura de TI, analisando a causa
(root cause). Um problema um incidente ou conjunto de incidentes significativos com sintomas em comum que indicam um erro simples. Problemas so erros na infra-estrutura, podendo levar a mais incidentes.
Change Management: o processo de controlar uma mudana aos itens de configurao (CI), garantindo que os
procedimentos apropriados so seguidos. Um Comit de mudanas (Change Advisory Board) responsvel por assessorar o impacto tcnico e funcional da requisio da mudana (Change Request).
Release Management: aps as mudanas serem aprovadas no processo anterior, deve ser garantido que apenas itens
adequadamente testados e aprovados existam na infra-estrutura de TI, seguramente armazenada, controlada e distribuda para os itens de hardware e software correspondentes. Envolve tambm preparao e treinamento.
Configuration Management: o processo de rastrear todos itens da infra-estrutura de TI, identificando e relatando
os seus componentes, incluindo as verses, relacionamentos e componentes constituintes. A informao de todos os
itens de configurao (CI) devem ser mantidos em um banco de dados apropriado.
Service Delivery
112
Capacity Management: um processo que procura garantir as necessidades atuais e futuras da capacidade e desempenho dos recursos. Aumentar a capacidade gera custos, mas mant-la abaixo do esperado pelos clientes tambm, e o objetivo desse processo garantir um custo eficiente dimensionando a capacidade de forma correta.
Availability Management: o processo que busca otimizar a disponibilidade dos servios atravs de suporte prativo e reativo, em alinhamento com os requerimentos de negcios a um custo justificvel. Algumas de suas atividades so: a monitorao, necessidade de manuteno e rastreamento da informao de gerenciamento (produo).
Service Level Management: um processo que alinha o provisionamento dos servios com os requerimentos de
negcio, quantificando negociando e monitorando o nvel dos servios. responsvel pela melhora no relacionamento entre os servios de TI e os negcios. Um termo chave para este o SLA (Service Level Agreement).
IT Financial Management: processo que identifica, monitora, e se necessrio, rev os custos para fornecer servios
de TI. Um modelo de custo e sistema de budget permitem que decises referentes custos de TI sejam tomadas como qualquer deciso de negcio. O modelo de custo registra os custos dos clientes, atividades e servios.
IT Service Continuity Management: um processo que garante que a organizao possui a capacidade de restaurar os seus servios no caso de um desastre, alm de procurar reduzir riscos. Os servios crticos so identificados, as
suas vulnerabilidades e ameaas medidos.
Usurios que precisam ter garantias de que os servios de TI que dependem os seus produtos e servios para os clientes internos e externos esto sendo bem gerenciados.
Auditores que podem se apoiar nas recomendaes do CobiT para avaliar o nvel da gesto de TI e aconselhar o controle interno da organizao.
Planejamento e organizao.
Aquisio e implementao.
Entrega e suporte.
Monitorao.
Processos do COBIT
Os mapas de controle fornecidos pelo CobiT auxiliam os auditores e gerentes a manter controles suficientes para garantir o
acompanhamento das iniciativas de TI e recomendar a implementao de novas prticas, se necessrio. O ponto central o
gerenciamento da informao com os recursos de TI para garantir o negcio da organizao.
Cada domnio cobre um conjunto de processos para garantir a completa gesto de TI, somando 34 processos:
Planejamento e Organizao
o
Gerencia os investimento de TI
Avalia os riscos
Gerencia os projetos
Gerencia a qualidade
Aquisio e implementao
o
Gerencia as mudanas
Entrega e suporte
o
Treina os usurios
Gerencia a configurao
Gerencia os dados
Gerencia a infra-estrutura
Gerencia as operaes
Monitorao
o
Monitora os processos
Desenvolvimento do CobiT
0) Inexistente
1) Inicial / Ad Hoc
3) Processos definidos
5) Processos otimizados
Essa abordagem deriva do modelo de maturidade para desenvolvimento de software, Capability Maturity Model for Software
(SW-CMM), proposto SEI. A partir desses nveis, foi desenvolvido para cada um dos 34 processos do CobiT um roteiro:
Os fatores crticos de sucesso definem os desafios mais importantes ou aes de gerenciamento que devem ser adotadas para
colocar sobre controle a gesto de TI. So definidas as aes mais importantes do ponto de vista do que fazer a nvel estratgico, tcnico, organizacional e de processo.
Os indicadores de objetivos definem como sero mensurados os progressos das aes para atingir os objetivos da organizao, usualmente expressos nos seguintes termos:
Indicadores de desempenho definem medidas para determinar como os processos de TI esto sendo executados e se eles permitem atingir os objetivos planejados; so os indicadores que definem se os objetivos sero atingidos ou no; so os indicadores que avaliam as boas prticas e habilidades de TI.
Aspectos Tcnicos
A durao do ciclo de vida de um documento, bem como cada estgio, depende muito do tipo de documento, dos processos
de negcios, dos padres da indstria, e at mesmo do carter legal. Portanto, o correto entendimento do ciclo de vida e dos
padres de documentao em uma empresa so fatores crticos para se determinar os requisitos de um sistema de GED.
Quando se analisa sistemas GED, alguns aspectos tcnicos importantes devem ser cuidadosamente avaliados:
Gerenciamento: O sistema GED deve ser capaz de gerenciar qualquer formato eletrnico, incluindo diferentes formatos de imagens, textos, documentos compostos, arquivos eletrnicos, udio digital, vdeos etc.
115
Armazenamento: Um sistema GED deve suportar, idealmente, tanto o arquivamento off-line, quanto o on-line, em
diferentes mdias de armazenamento, desde mdias digitais como discos pticos, CD-ROM, discos magnticos, fitas,
at mdias tradicionais como microfilme e papel. O sistema deve gerenciar de forma segura o uso da mdia para o
armazenamento do documento, migrar documentos entre mdias quando definido pelo ciclo de vida, e fazer uso de
cache para acelerar a recuperao dos documentos mais utilizados;
Recuperao: O sistema deve permitir que os documentos armazenados sejam recuperados a partir de um conjunto
de atributos previamente definidos (metadados), mas tambm deve suportar a recuperao atravs de palavras e frases contidos nos documentos. A pesquisa deve ser realizada de forma unificada, de modo que os documentos sejam
acessados, recuperados, e visualizados independente do local de armazenamento;
Intercmbio: Visando o intercmbio de documentos entre a empresa e entidades sem acesso ao sistema GED, o
mesmo deve permitir o acesso a aplicaes de terceiros, permitindo que os documentos sejam extrados em seu formato nativo, e transportados como desejado;
Internet: Todas as funcionalidades de um sistema GED, devem estar disponveis via Web.
Evoluo do GED
O GED um conjunto de tecnologias. Ele formado pelas seguintes tecnologias:
Document Management (DM): ferramentas para controle de localizao, atualizao, verses e de temporalidade
de guarda dos documentos. uma das exigncias da ISO 9000, e permite a rastreabilidade das alteraes.
Workflow: substitu o processo humano de trmite de documentos em papel, muitos ganhos so obtidos.
COLD/ERM (Computer Output to Laser Disk): substitu os microfilmes, reduo no custo de armazenamento. Devido a abrangncia dessa tecnologia, ela passou a ser chamada de ERM (Enterprise Report Management).
Forms Processing: em vez da utilizao de digitadores para a retirada das informaes, utilizam-se sistemas digitais. Outra tecnologia complementar o RIM (Records and Information Management).
Algumas das aplicaes do GED so: apoio aos processos de fiscalizao, auditoria, importao e exportao, cartes de assinatura, processos judiciais, disponibilizao de dirios oficiais, controle de bilhetes, impostos, taxas, multas, extratos, entre
muitos outros. O GED tambm impulsiona outras tecnologias, como o Knowledge Management, CRM, ERP e SCM.
Diminuio do retrabalho
116
Raio X: Esta a fase do projeto onde os processos e as prticas de negcio so analisados. o momento em que a
companhia profundamente observada e quando definida a necessidade de uma soluo ERP.
Desenvolvimento: neste momento que uma aplicao escolhida e configurada para uma companhia. Tambm
so definidos o modelo de funcionamento da soluo e outros aspectos do ambiente.
Teste: Aqui a soluo de ERP colocada em um ambiente de teste. quando os erros e falhas so identificados.
Treinamento: Todos os profissionais so treinados no sistema para saber como utiliza-lo antes da implementao
ser concluda.
Implementao: O software de ERP finalmente instalado na companhia e se torna funcional aos usurios.
Avaliao: A soluo de ERP avaliada, observando-se o que necessrio melhorar e o que est ou no funcionando adequadamente. Esta apenas uma avaliao geral do projeto ERP para referncias futuras.
Mesmo tendo implantado sistemas de ERP, as empresas ainda tm as seguintes quatro principais dificuldades:
Quando necessitam de um documento, ele est arquivado em papel com as tradicionais limitaes do seu manuseio.
Os processos so lentos e no tm um "motor" que os movimente e que controle seu andamento, prazos e tarefas
dentro da empresa.
A quantidade de dados gerados pelo ERP aumentou muitas vezes o volume de informaes disponvel dentro da
empresa. Armazenar e consultar essas informaes de forma rpida e inteligente tornou-se um fator crtico.
A quantidade de documentos eletrnicos aumentou. necessrio o controle de verses, histrico de uso, segurana
de acesso e, principalmente, um enfoque corporativo de utilizao integrado aos processos de negcios do ERP.
A nica alternativa para superar essas dificuldades a utilizao das solues de GED - Gerenciamento Eletrnico de Documentos, integradas ao ERP. por isso que vrios fornecedores de ERP j estabeleceram parcerias com empresas de GED.
Implementar recursos de imagem, Gerenciamento Eletrnico de Documentos, workflow, COLD/ERM e Knowledge Management integrados ao ERP, e via web, a soluo para aumentar a eficincia e produtividade na gesto do seu negcio, gerando os indispensveis diferenciais de competitividade.
Operacional: que visa principalmente melhorar o relacionamento direto entre a empresa e o cliente atravs de canais como a internet ou Call Centers. Tais melhorias so conseguidas agrupando informaes antes espalhadas pelos
diversos setores da empresa, definindo com maior preciso o perfil do cliente, o que permite que a empresa esteja
melhor preparada na hora de se relacionar com o mesmo;
Analtico: que trata da anlise das informaes obtidas sobre o cliente nas vrias esferas da empresa, permitindo
descobrir entre outras informaes o grau de fidelizao dos clientes, seus diferentes tipos, preferncias e rejeies
quanto a produtos e servios. A comparao entre um CRM de abordagem analtica com um Data Mart para o setor
Marketing e/ou vendas inevitvel, pois ambos auxiliam a responder importantes questes de negcio. Mas importante lembrar da necessidade de se ter bem definidas as estruturas de datamarts e datawarehouse, antes de comear a
construo da parte fsica ou ferramental de um CRM;
Colaborativo: esta abordagem do CRM procura integrar as estruturas e benefcios dos outros dois temas descritos.
Enquanto o CRM operacional est mais focado nos nveis ttico e operacional, e o CRM analtico nos nveis estratgico e ttico, o CRM colaborativo procura gerar melhorias nos trs nveis. A principal caracterstica deste dessa abordagem est na possibilidade de criar, aumentar e gerenciar a interao com o cliente. Para isso necessrio que a
117
empresa possua um meio adequado para a interao - abordada no CRM operacional - e que possua informaes suficientes sobre seus clientes - obtidas atravs do CRM analtico - de forma centralizada e, claro, integrada.
Dentro das ferramentas de Business Intelligence, o CRM uma das mais importantes solues a ser implementada utilizando
as plataformas de datamarts e do datawarehouse.
suportando as tarefas individuais: ativando recursos humanos e recursos necessrios para completar a tarefa.
O Workflow melhora a eficincia do negcio, pois d a possibilidade de balancear as tarefas entre os funcionrios da empresa, reduzindo custos (pessoal, papel) e ainda diminui o tempo para o usurio perceber que tem uma atividade.
So quatro os conceitos bsicos da tecnologia de Workflow:
Relacionamento entre Pessoas e Tarefas: o sistema de workflow responsvel por atribuir tarefas que precisam
ser realizadas para as pessoas necessrias para execut-las.
Disponibilizao de recursos de informao necessrios para executar tarefas: os dois tipos de recursos podem
ser classificados em recursos humanos e recursos computacionais.
Gerenciamento de processos: torna a lgica dos processos explcita, permite coletar e avaliar mtricas relativas ao
tempo, custo, qualidade da execuo do processo e suas tarefas constituintes.
Modelo de Referncia
O WfMC (Workflow Management Coalition) uma organizao com mais de 225 membros, localizados em pases em todo o
mundo. Constitudo por fabricantes, universidades, organizaes governamentais, e corporaes interessadas na tecnologia de
workflow. O WfMC define: a Terminologia para elementos de sistemas de workflow, Padres abertos para interoperao de
sistemas, WAPI (Workflow API) e o Modelo de Referncia (Workflow Reference Model).
A definio de Workflow segundo o WfMC a "Automao de uma parte ou de todo um processo de negcio atravs de recursos computacionais".
Dentro do contexto do Workflow, h o WFM (Workflow Management System), que o sistema que define, gerencia e executa workflows atravs da execuo de software cuja ordem de execuo controlada por uma representao computacional da lgica de workflow.
O modelo de referncia define que o WFM composto por cinco subsistemas funcionais, exposto na figura.
118
119
E-commerce
Comrcio eletrnico ou e-commerce um tipo de comrcio feito especialmente por um equipamento eletrnico como por
exemplo um computador. Sistema comercial eletrnico, realizado atravs da Internet para transaes de bens ou servios
entre duas ou mais partes.
A capacidade de comprar e vender produtos e servios atravs da Internet. Inclui a exposio de bens e servios on-line, bem
como a colocao de pedidos, faturamento, atendimento e ainda todo o processamento de pagamentos e transaes ou seja,
usar a Internet, comunicaes digitais e aplicativos de TI para possibilitar o processo de compra ou venda. Alguns especialistas definem e-commerce como todas as etapas que ocorrem em qualquer ciclo de negcios usando a tecnologia acima. Outros,
como compras feitas por consumidores e empresas pela Internet. Podemos tambm encontrar a expresso, tambm vlida, Emarketplace que pode ser genrico (abarcar todos os setores de atividade) ou temtico (apenas um setor de atividade).
O ato de vender ou comprar pela Internet j um bom exemplo de comrcio eletrnico. O mercado mundial est absorvendo
o comrcio eletrnico em grande escala, muitos ramos da economia agora so ligadas ao comrcio eletrnico. Existem diversas modalidades de comrcio eletrnico, entre elas o B2B, B2C, C2C, G2B e G2C.
B2B: Acrnimo de Business to business ou Negcios para negcios. um modelo de comrcio geralmente praticado
por fornecedores e clientes empresariais.
B2C: Acrnimo de Business to Consumers. O chamado B2C o comrcio eletrnico efetuado diretamente entre a
empresa produtora e o consumidor final. Em geral o consumidor adquire os produtos a preo mais competitivo pois
evita o 'atravessador'.
C2C: Acrnimo de Consumer to Consumer Comercio eletrnico que se desenvolve entre usurios particulares, ou
seja, entre internautas
G2B: Acrnimo de Government to Business. Relao de negcios pela Internet entre Governo e empresas ex: Compras pelo Estado atravs da Internet atravs de preges e licitaes, tomada de preos, etc.
G2C: Acrnimo de Government to Consumers. Relao comercial pela Internet entre Governo e consumidores, ex:
pagamento via Internet de Impostos multas e tarifas pblicas.
Podemos encontrar tambm as expresses: Empresas e empresas (B-B) , Empresas e consumidores (B-C) , Consumidores e
consumidores (C-C), Governo e consumidores (G-C), Governo e empresas (G-B) ao invs de B2B, B2C, etc.
E-business (Electronic Business), o termo que se utiliza para identificar os negcios efetuados por meios eletrnicos, geralmente na Internet. E-business consiste na utilizao da Web para ajudar as empresas a simplificarem os seus processos, aumentarem a sua produtividade e melhorar a sua eficincia. Permite que as empresas se comuniquem com facilidade com parceiros, fornecedores e clientes, que se conectem com sistemas de dados de back-end e que realizem transaes de maneira
segura. Observe que o e-commerce apenas uma parte do processo mais amplo do e-business que pode abranger projeto,
produo, interao de internautas no desenvolvimento de algo que, no futuro poder utilizar o e-commerce para venda.
120
Lgica
A lgica o estudo de argumentos. Um argumento uma seqncia de enunciados, na qual um dos enunciados a concluso,
derivado a partir dos outros enunciados, chamados premissas.
Lgica Formal
A Lgica Formal, tambm chamada de Lgica Simblica, se preocupa basicamente com a estrutura do raciocnio. Ela lida
com a relao entre conceitos rigorosamente definidos e fornece um meio de compor provas de declaraes. As sentenas so
transformadas em notaes simblicas precisas, compactas e no ambguas.
Operador
Smbolo
NO (Negao)
AND (Conjuno)
OR (Disjuno)
se ... ento
se e somente se
Quando se faz um algoritmo para resolver determinado problema, no basta que o algoritmo esteja correto. importante que
ele possa ser executado em um tempo razovel e dentro das restries de memria existentes. Alm disso, ele deve permanecer vivel, medida que o tempo passa, quando a quantidade de dados envolvida normalmente cresce. Os parmetros de
complexidade estudados normalmente so os seguintes:
121
Complexidade de pior caso: caracterizao do tempo de execuo mximo, para determinado tamanho da entrada,
bem como das caractersticas da entrada que levam a esse tempo mximo. Este o principal parmetro para se avaliar um algoritmo.
Complexidade de caso mdio: caracterizao do tempo de execuo mdio do algoritmo, para determinado tamanho da entrada, considerando a mdia de todas as possibilidades. Em muitas situaes este parmetro til.
Complexidade de melhor caso: caracterizao do tempo de execuo mnimo, para determinado tamanho da entrada, bem como das caractersticas da entrada que levam a esse tempo mnimo.
A determinao da complexidade teria que ser feita contando-se todas as instrues executadas e o tempo de execuo de
cada delas, considerando-se determinada entrada. Normalmente isso no vivel. O que se faz determinar um limite superior para esse tempo, o mais prximo possvel da realidade. Para tanto, fixa-se o estudo na instruo mais executada do algoritmo e determina-se uma funo t(n), que d a variao do tempo de execuo em funo de n, o tamanho da entrada.
Tipos de dados
Existem vrias classificaes para os tipos de dados utilizados por uma linguagem de programao:
Primitivos: normalmente, linguagens de programao possuem tipos de dados numricos inteiros e reais e tipos caracter (uma letra, nmero ou smbolo). Outros tipos, como o tipo de dados booleano (boolean) podem ser utilizados
para guardar os valores verdadeiro (true) ou falso (false).
Derivados: So definidos a partir dos tipos de dados primitivos. Exemplos so os vetores, matrizes e cadeia de caracteres (Strings), classificados como homogneos, e registros e unies, classificados como heterogneos, pois agrupam dados primitivos de tipos diferentes..
Tipo abstrato de dado um tipo de dado que esconde a sua implementao de quem o manipula, de maneira que determinadas operaes sobre estes dados podem ser executadas sem que se saiba como isso feito. Tipos abstratos de dados abrangem
dados e operaes sobre estes dados. Exemplos: objetos, listas, rvores binrias...
Listas Encadeadas
Listas Lineares so um conjunto de n ns referentes a n objetos, onde as propriedades estruturais decorrem unicamente das
posies relativas dos ns, dentro de uma seqncia linear. Essas estruturas so tratadas sob o ponto de vista de como a
alocao de memria para os dados: Alocao Sequencial e Alocao Encadeada.
Vetores so as estruturas mais conhecidas de alocao seqencial. Mas as listas implementadas atravs de vetores podem
levar a uma pobre alocao de memria. Uma alternativa utilizar a alocao encadeada.
Na alocao encadeada (ou dinmica) os ns logicamente vizinhos de uma lista no so mais necessariamente vizinhos em
termos de memria. Os ns podem estar aleatoriamente dispostos e a indicao de vizinhana feita atravs de um campo de
endereo (chamado ponteiro). Desta forma, o n da lista contm pelo menos dois campos: a chave e o ponteiro.
O ltimo n contm um ponteiro nulo, que pode receber vrias denominaes: , Null, Nil ou Nulo.
Em um n pode existir mais de um ponteiro. As listas onde existe apenas um ponteiro so denominadas Listas Simplesmente
Encadeadas. Qualquer estrutura encadeada necessita de um apontador para o incio da lista.
Uma lista circular encadeada uma lista com cabea, onde o ltimo elemento, ao invs de apontar para Nil, aponta para o
n cabea. Uma lista duplamente encadeada uma lista encadeada nos dois sentidos. Cada n, ento tem dois links, um
para a frente (prox) e outro para trs (ante).
Pilhas
Uma pilha (stack) uma estrutura de dados linear, em que o ltimo elemento a ser inserido o primeiro a ser retornado pela
estrutura. Funciona como uma pilha de pratos em um restaurante. Ao serem limpos, os pratos so empilhados (armazenados).
Quando algum precisa usar um prato, o ltimo a ser empilhado ser o escolhido. Este o princpio LIFO (Last In First Out).
122
Uma pilha pode ser implementada por um vetor, onde o incio da pilha o primeiro elemento do vetor, e o topo a quantidade de itens inseridos no vetor (comea com 0).
As duas principais operaes de uma pilha so:
Push (empilhar): a operao de adicionar um elemento ao topo da pilha, aumentando o seu tamanho em uma unidade. Caso a pilha esteja cheia (sem espao para novos elementos), um erro de overflow ocorre. Esta operao no
retorna nada, e o elemento a ser inserido passado como parmetro.
Pop (desempilhar): a operao de retirar um elemento do topo da pilha, diminuindo o seu tamanho em uma unidade. Caso a pilha esteja vazia, um erro de underflow ocorre. Esta operao retorna o elemento da pilha, e no recebe argumentos como parmetro.
Estas duas operaes so suficientes para realizar qualquer alterao na pilha. Por exemplo, para inverter a ordem dos ltimos
dois elementos, basta a seguinte seqncia de instrues:
a = pop ()
b = pop ()
push (a)
push (b)
Filas
Uma fila (queue) uma estrutura de dados linear, em que o primeiro elemento inserido o primeiro a ser retornado pela estrutura. Funciona como filas de espera. Os elementos vo sendo colocados na lista e retirados (ou processados) por ordem de
chegada. Este o princpio FIFO (First In First Out).
Uma fila pode ser implementada por um vetor, utilizando dois apontadores, um para o incio da fila, e outro para o seu final.
Duas operaes devem ser implementadas: enfila e desenfila.
Vetores e Matrizes
Vetores guardam um nmero fixo de elementos, normalmente do mesmo tipo. Elementos so acessados utilizando um ndice,
inteiro, que referencia uma posio seqencial do vetor. Nesta seo sero estudadas as vantagens, desvantagens e aplicaes
desta estrutura durante a programao.
Vetores permitem o uso eficiente da memria, pois so armazenados seqencialmente na memria, no precisando de quase
nenhum (ou at nenhum) espao para controle da estrutura. Assim, um vetor com 1000 inteiros utilizar apenas 1000 vezes o
tamanho necessrio para armazenar um nico inteiro.
Uma das grandes vantagens no uso de vetores, em linguagens de programao, o uso de apenas um identificador para referenciar vrios elementos. Suponha que uma aplicao possui o nome dos funcionrios armazenados nas seguintes variveis:
Nome1, Nome2, Nome3, Nome4 e Nome5. No seria nada prtico manter um cdigo desta maneira, pois a cada atribuio ou
acesso a uma destas variveis, ela deve-ria ser referenciada explicitamente (por exemplo, Nome1 = Nome5).
Utilizando vetores, basta declarar um vetor de 5 posies, com o identificador Nome, e cada funcionrio teria o seu nome
armazenado em uma das posies deste vetor.
Outro benefcio no uso de vetores, a propriedade de localidade de referncia. Arquiteturas de computadores modernas utilizam tcnicas de paginao de memria (ser visto com mais detalhes no captulo de Sistemas Operacionais) que so beneficiadas pelo armazenamento seqencial de dados, pois o acesso a uma grande quantidade de dados vizinhos em um vetor far
menos acessos pginas do que na situao de cada elemento do vetor estar espalhado em posies distintas da memria.
A maior desvantagem dos vetores possuir um tamanho fixo. Embora em muitos ambientes seja possvel alterar o limite superior do vetor (vetores dinmicos), esta operao no trivial. Uma possibilidade fazer o vetor crescer no apenas uma
posio, mas sim vrias posies sempre que o limite for atingido. Desta forma, ao inserir os prximos elementos no ser
necessrio expandir o vetor novamente.
123
rvores balanceadas
Muitas vezes precisa-se de estruturas mais complexas do que as seqenciais, especialmente quando se trabalha com grandes
volumes de dados. Uma das classes de estruturas desse tipo so as rvores, que servem para representar estruturas hierarquizadas, onde um elemento pode apontar para vrios outros.
Uma rvore enraizada T, ou simplesmente rvore, um conjunto finito de elementos denominados de ns ou vrtices, tais
que: T um conjunto vazio e ento a rvore dita vazia OU existe um n especial r, chamado raiz de T; os restantes constituem um nico conjunto vazio ou so divididos em m >= 1 conjuntos disjuntos no vazios (subrvores de r), ou simplesmente
subrvores, cada qual por sua vez uma rvore
rvores de busca so famlias de rvores utilizadas para armazenamento e busca de dados. O objetivo dessas estruturas
obter uma performance mdia bem melhor que aquela obtida com listas seqenciais. O mecanismo bsico utilizado nas rvores de busca o de, numa procura, comparar o argumento de busca com determinada chave de determinado n da rvore. Se a
chave for maior, a busca prossegue pela subrvore da direita; se for menor, pela subrvore da esquerda
rvore Binria de Busca (ABB) uma rvore binria onde as chaves dos ns da subrvore
direita de cada n so maiores que as chaves
desse n e as chaves da subrvore esquerda
so menores que a mesma.
So ideais para buscas e inseres, principalmente se no for uma rvore completa. Em
compensao, operaes de deleo so complexas, pois deve-se manter a estrutura da rvore.
A complexidade de busca e insero de
O(log2n). O nmero de ns de uma rvore deste tipo varia entre log2n + 1 e n, dependendo do
seu balanceamento.
Alguns exemplos de rvores ABB so as rvores AVL e as rvores B, utilizadas para se ter
rvores balanceadas em disco e como base para
sistemas gerenciadores de banco de dados.
Percorrer uma rvore visitando cada n uma nica vez gera uma seqncia linear de ns, e ento passa a ter sentido falar em
sucessor e predecessor de um n segundo um determinado percurso. H trs maneiras recursivas de se percorrer rvores binrias. So elas:
1.
1.
2.
visitar o n raiz
2.
3.
3.
visitar o n raiz
4.
4.
2.
3.
4.
visitar o n raiz
124
Mtodos de acesso
Existem trs maneiras bsicas de acessar um registro:
Acesso seqencial: o arquivo lido registro por registro at o registro desejado ser encontrado. Essa a forma menos eficiente de acesso, mas algumas situaes favorecem o seu uso, como a busca por texto (comando grep) ou
quando um arquivo possui poucos registros.
Acesso direto: o acesso direto a um dado registro (ou grupo de registros) em disco requer conhecer o endereo do
registro no arquivo de dados. Assim, comandos como fseek, podem ser usados para localizar diretamente o registro
para leitura/gravao, criando um ndice.
Endereamento: o endereo de um registro o seu deslocamento em bytes (offset) desde o incio do arquivo (ou
aps o cabealho). No caso de registros de tamanho fixo (como arrays), basta armazenar o nmero de registros que
antecedem cada registro, ou seja, a sua posio no arquivo.
Seleo: Criar, passo a passo, uma lista ordenada a partir de um conjunto de dados, retirando do conjunto a cada
passo o menor elemento presente, at esvazi-lo. Para implementar essa idia num vetor, ele dividido em dois subvetores, o primeiro inicialmente nulo, tal que se retire dados do segundo e transfira para o primeiro. A complexidade
do melhor caso igual a do pior caso que igual ao caso mdio: O(n2)
Insero: Criar, passo a passo, uma lista ordenada a partir de um conjunto de dados, retirando do conjunto, a cada
passo, o primeiro elemento encontrado. Para implementar essa idia num vetor, ele dividido em dois subvetores. O
primeiro inicialmente contm uma chave, sendo a transferncia de dados feita in place, onde a cada passo o elemento inserido pode ter que deslocar para a direita elementos maiores. A complexidade O(n2), sendo O(n) para o
vetor ordenado.
Bubblesort: Tambm conhecido como o mtodo da bolha, o vetor percorrido, e testam-se as posies i e i+1. Caso
i seja maior que i+1, esses elementos so trocados de posio. A varredura continua at o fim do vetor, e deve recomear N vezes (onde N o tamanho do vetor), para garantir que todos elementos foram ordenados em suas posies.
A complexidade O(n2).
Quicksort: considerado o melhor algoritmo de ordenao e foi um dos primeiros algoritmos recursivos propostos.
A idia fazer, sucessivamente, parties em subvetores, de forma que a parte esquerda contenha sempre elementos
menores ou iguais aos da direita. O problema simples quando o tamanho de uma partio 1.
125
Hashing
Hashing, ou mais apropriadamente Transformao Chave-Endereo, um conjunto de mtodos que busca diminuir o tempo
mdio de busca em tabelas. Est baseado na idia de se trabalhar com um vetor e calcular o ndice de busca atravs de uma
funo sobre a chave (funo hash), que, idealmente, permitiria encontrar a chave em uma tentativa.
A situao ideal corresponderia a se ter funes hash injetoras. Entretanto, funes injetoras so relativamente raras. Alm
disso, o universo de chaves normalmente extremamente maior que o nmero de endereos. Isso leva a que se trabalhe com a
possibilidade de coincidncia de endereos. Nesse caso, as chaves so chamadas de sinnimos. O uso de hashing, conseqentemente, exige que se tenham mtodos de tratamento de sinnimos, o que d origem a vrias alternativas. Outro ponto a ser
notado que, a aplicao da funo hash sobre uma chave pode ser vista como um processo de reduo dessa chave
Alguns critrios que devem ser utilizados para um hashing eficiente so:
A distribuio de sinnimos deve ser uniforme. Isso quer dizer que os endereos devem ter probabilidades iguais (ou
muito prximas) de ocupao.
Deve-se ter cuidado para a funo hash no preservar propriedades especficas das chaves.
Algumas funes teis: mdulo da diviso (com M primo) e XOR (nas duas metades da chave).
Para tratar sinnimos, so utilizados os mtodos do Encadeamento Interior ou Exterior (uma lista encadeada para cada entrada do vetor), e Endereamento Aberto (onde no se utilizam links, mas os sinnimos so colocados na primeira posio disponvel a partir do endereo calculado).
Programao
Programao Estruturada
Imagine que tenha que processar as vendas feitas por cada vendedor de cada filial de uma empresa. Se voc vai programar em
um ambiente procedural, como COBOL, ento vai criar algo assim:
Uma sob-rotina que invocada do mdulo das filiais para poder tratar cada funcionrio de cada filial.
Problemas decorrentes:
1) Falta de isolamento entre os mdulos: alterao em um mdulo pode resultar em danos nos outros.
2) Dificuldade de manuteno. Imagine o problema que seria se alguns tipos de vendedores tivessem regras diferentes... e se algumas filiais tivessem o mesmo problema?
3) Dificuldade de reaproveitamento de cdigo. Se outro programa quisesse utilizar a mesma estrutura haveria copypaste e customizao.
A unidade de um programa procedural a sub-rotina, ou pargrafo em COBOL. Para cada coisa criada uma sub-rotina
que processar os dados. Modularizar um programa criar uma rotina para cada funo.
Modularizao
A modularizao a decomposio de um conjunto de componentes de software em sub-partes, denominadas mdulos. Espera-se que os mdulos tenham uma forte coeso interna e um pequeno acoplamento exterior;:
126
Baixo Acoplamento: o nmero de interfaces entre os processos (ou mdulos) mantido ao mnimo, visando facilitar modificaes futuras.
Um bom mdulo deve cumprir uma nica funo, e todos os seus arquivos devem ser suficientes para cumprir esta funo.
Alm disso, ele tambm deve possuir uma interface simples e bem especificada.
Sub-rotinas
Uma sub-rotina uma rotina de cdigo que chamada pelo programa principal para realizar uma tarefa. Normalmente chama-se de procedimentos as rotinas que no retornam valores, e funes as que retornam.
Passagem por valor: os valores que uma funo passa para outra no so alterados pela funo chamada, pois as
variveis do programa chamador so copiadas para as correspondentes variveis da funo. A passagem por valor
deve ser preferida ao invs do uso de variveis globais.
Passagem por referncia: significa que passamos de uma funo para outra o endereo de uma varivel (sua localizao de memria). Qualquer alterao no contedo apontado pelo ponteiro ser uma alterao no contedo da varivel original.
Passagem por endereo: antigamente, os termos passagem por endereo e por referncia eram sinnimos. Em C s
existe a passagem por valor e por referncia, mas em Algol e C++ as trs esto disponveis. Um vetor em C++ passado por endereo, assim todo o seu contedo pode ser manipulado .
Escopo de Variveis
O escopo de uma varivel a sua rea de atuao, normalmente o lugar onde foi definida. Para que no existam ambigidades na utilizao dos identificadores, no pode existir nenhum caso onde existam dois identificadores com o mesmo nome
dentro do mesmo escopo, i.e. dentro de um escopo existe uma unicidade de nomes. O mesmo vale para parmetros passados
para uma sub-rotina.
Escopo global: so declaradas fora de todas as sub-rotinas, normalmente no incio de mdulos. Todo o mdulo e as
sub-rotinas declaradas em seu corpo possuem acesso a estas variveis.
Escopo local: so declaradas dentro de uma sub-rotina. Apenas a funo possui acesso ao seu contedo, o que aumenta o reuso do subprograma e evita efeitos colaterais (maior controle).
Tipos de dados
De forma geral, podemos classificar as linguagens de programao quanto ao modelo de tipagem da seguinte maneira: tipagem forte e tipagem fraca. Essa questo manifesta-se principalmente em atribuies.
No caso de linguagens orientadas a objetos, tambm ocorre em invocaes de mtodos.
Tipagem forte: o compilador garante que em tempo de execuo ocorra a compatibilidade entre os elementos de
uma atribuio, e tambm a existncia do mtodo para uma dada referncia. Garante maior robustez aos sistemas desenvolvidos, minimizando erros em tempo de execuo.
Tipagem fraca: neste caso, o compilador no existe essa garantia durante a verificao de tipos, sendo responsabilidade do programador. Possibilita maior velocidade e facilidade no desenvolvimento.
Abstrao: consiste em considerar apenas os aspectos essenciais de uma entidade, ignorando aqueles tidos por irrelevantes. uma tcnica importante para lidar com a complexidade de sistemas.
127
Herana: habilidade de passar Mtodos e Propriedades para as classes derivadas, promovendo, assim a reutilizao
de cdigo.
Encapsulamento: oculta a implementao das classes, expondo apenas sua interface. Ele separa o comportamento
externo de um objeto do seu funcionamento interno, evitando interdependncias.
Polimorfismo: habilidade de ter mtodos com o mesmo nome executando de maneira semelhante em Classes Derivadas. Ou seja, classes semelhantes, com mtodos aparentemente idnticos, podem funcionar de maneira diferente.
Assim a mesma operao pode ter comportamentos distintos.
Agregao: tambm chamada de composio, representa uma forma especial de associao (que define-se quando
um objeto recorre aos servios de um outro), e ocorre quando um objeto contm, fsica ou logicamente, outros.
Lembre-se que o agregado mais do que a simples soma das suas partes.
Refactoring
Refactoring ou refatorao a idia de fazer vrias pequenas alteraes incrementais em um cdigo, sem adicionar novas
funcionalidades ou corrigir erros, mas sim melhorar o projeto ou facilidade de leitura do cdigo.
Esta prtica uma oportunidade de melhorar a qualidade do cdigo
Desenvolvimento J2EE
Especificao J2EE
A plataforma Java 2 Enterprise Edition define o padro para desenvolver aplicaes corporativas de vrias camadas baseadas
em componentes. Algumas das caractersticas dessas aplicaes: portabilidade, escalabilidade e integrao facilitada com
aplicaes legadas e dados. Alm disso, tambm permite a construo e utilizao de web services que podem se comunicar
com web services de outras plataformas (por exemplo, .NET).
Algumas das principais tecnologias includas na especificao J2EE so:
JavaServer Pages: pginas JSP so templates usados para produo automtica de servlets. Escreve-se uma pgina
HTML com comandos Java, que so traduzidos em tempo de execuo em um servlet.
Java Servlets: servlets so classes/objetos que funcionam como programas CGI. Com o suporte de um Web container um servlet tem acesso a dados de formulrios e tem o compromisso de produzir um cdigo HTML que ser devolvido ao cliente.
Enterprise JavaBeans: um objeto que colocado em container adequado pode ser chamado e chamar objetos remotamente de forma (quase) transparente.
Java Message Service (JMS): um conjunto de APIs que permite acessar de forma padronizada servios de mensagens. Dispe de mecanismos para criar, enviar, receber e ler mensagens.
Java Naming and Directory Interface (JNDI): o elemento utilizado para cadastramento de responsveis por servios Java, e isso lhe d a capacidade de responder a perguntas de clientes por esses servios. Uma analogia o mapeamento de nomes de sites para IPs (DNS faz o mapeamento).
Java Transaction API (JTA): especifica uma interface padro para aplicaes utilizarem um servio de suporte
transacional. Esse gerenciamento mais conhecido no contexto de banco de dados, mas o seu uso em aplicaes distribudas mais amplo (falhas na rede, dependncias, etc).
JDBC data access API: um conjunto de APIs que direta ou indiretamente acessam bancos de dados. Programar em
JDBC escrever, explicitamente, chamadas a mtodos cujos parmetros so, grosseiramente, os comandos SQL que
devem ser enviados ao SGBD.
128
O Servlet container mais conhecido o Apache Tomcat. Ele implementa as funes de um Web Server (como o apache
httpd), ou seja, apresenta pginas HTML estticas, mais a funcionalidade de interpretar on-the-fly programas java e apresentar sua sada pelo protocolo http. Ele apresenta pginas dinmicas JSP e sadas de programas em java chamados de "servlets".
Um Servidor de Aplicao um Servlet Container e mais vrios servios rodando junto. Acontece que o padro J2EE - Java
2 Enterprise Edition - prev uma srie de funcionalidades a mais de servidor: um servidor de nomes de Java, um distribuidor
automtico de componentes, um balanceador de carga, entre outros. Bom, esses servios, juntos, permitem que os servlets e
JSP's tenham bem mais recursos, conexo mais escalvel com um banco de dados e da por diante. Os EJB's (Enterprise Java
Beans) nada mais so do que componentes que utilizam de todos esses servios pra comunicao com o Banco de Dados.
Existem alguns Applications servers livres, mas o nico realmente srio e com funcionalidade comparvel a servidores de
aplicao comerciais (como o Sun One ou o IBM WebSphere) o JBOSS.
Note que a expresso "Servidor de Aplicao" mais ampla do que essa definio, pois de certo modo ela foi 'apropriada'
pelo Java pra designar um Servidor de Aplicao J2EE. Existem na verdade outros esquemas completamente diferentes, em
outras linguagens, para fazer "servidores de aplicao".
O conceito de J2EE foi agrupar as diversas tecnologias (JNDI, JCA, JSP, Servlets, EJB, JMS) em uma forma nica e consistente. O Application Server um programa que implementa essa J2EE. A Sun possui um programa de certificao para demais fornecedores.
A desvantagem de utilizar um Servidor de Aplicao, que algumas empresas compram o pacote inteiro, para aplicaes
simples com JSP e Servlets. As demais tecnologias so desperdiadas, e bastaria utilizar um simples container Web, como o
Tomcat.
129
Intercepting Filter: realiza o pr-processamento de uma requisio ou ps-processamento de uma resposta. O filtro
intercepta as requisies feitas pelo cliente, podendo modific-la ou redirecion-la antes de envi-la para a aplicao.
O mesmo pode ser feito com as respostas antes de serem enviadas. Ele aumenta a reusabilidade e desacoplamento do
componente e facilita a sua configurao.
Transfer Object: permite que uma classe faa a comunicao de dados entre componentes, agrupando as suas informaes em um conjunto nico (serializvel). Normalmente esses componentes so Enterprise Java Beans, que
fazem chamadas a vrios mtodos get e set.
Business Delegate: utilizado para desacoplar componentes de negcios de aplicaes que utilizam os componentes.
O Business Delegate um objeto do lado do cliente que esconde do cdigo do cliente os servios da camada de negcio. Tambm usado para tratar as excees do servio.
Service Locator: geralmente utilizado em conjunto com o Business Delegate, um componente para lidar com a
busca de servios, ocultando os detalhes do cliente (caso o servio seja substitudo). Reduz a complexidade do cdigo no cliente e melhora a performance e manutenibilidade do cdigo.
Front Controller: especifica um componente central para processar as requisies dos clientes. A responsabilidade
deste componente receber as requisies e rote-las de forma apropriada. Alm de centralizar o controle dos servios, reduz a quantidade de cdigo e aumenta a segurana da aplicao.
Outros padres: Alguns outros padres so: Session Faade, Fast Lane Reader, Composite Entity e Value List
Handler.
130
131
HTML
HTML a sigla para Hyper Text Markup Language, ou Linguagem de Marcao de Hipertexto, tradicionalmente utilizada
para a criao de pginas Web. Os seus elementos servem para definir a formatao, apresentao, objetos (imagens, sons) e
links, mas no possui os recursos de uma linguagem de programao. A sua sintaxe simples e universal.
A linguagem consiste em uma srie de tags integradas em um documento texto. Para visualizar os documentos HTML, pode
ser utilizado qualquer navegador Web, como o Internet Explorer, Mozilla Firefox ou o Netscape.
Uma tag uma etiqueta (label) que executa uma funo no documento. Toda pgina HTML deve ser iniciada pela tag <html> e terminada pela tag </html>. Note que as tags podem ser escritas tanto em minsculas quanto em maisculas. O fechamento das tags sempre feito com uma barra "/" precedendo o seu nome.
<html>
<head>
<title> Ttulo do Site </title>
</head>
<body background="figura.gif" bgcolor="red">
<h1>Texto de tamanho maior</h1>
<h3>Texto de tamanho mdio</h3>
<h6>Texto de tamanho menor</h6>
<i>Itlico</i> <b>Negrito</b>
<h3 align="center">Texto ao centro</h3>
<h2 align="left">Texto esquerda</h2>
Pargrafo: <p>
Quebra de linha: <br>
Linha horizontal: <hr>
<a href="http://endereco.com">Nome do Link</a>
<img src="Caminho da imagem">
<img src="Img.jpg" alt="Texto" align="right">
</body>
</html>
132
CSS
Tags HTML foram projetadas originalmente para definir o contedo de um documento. Elas devem indicar "Isto um header", "Isto um pargrafo" ou "Isto uma tabela", utilizando tags como <h1>, <p>, <table>, e assim por diante. O layout do
documento deveria ser tratado pelo navegador, sem usar nenhuma tag de formatao.
Os principais navegadores (Internet Explorer e Netscape) comearam a adicionar novas tags HTML e atributos (como a tag
<font> e o atributo color) especificao original do HTML, aumentando a dificuldade de criar pginas Web onde o contedo dos documentos HTML estavam separados do seu layout (apresentao).
Para resolver esse problema, o World Wide Web Consortium (W3C) criou STYLES em adio ao HTML 4.0. A maioria dos
navegadores atuais suportam o CSS (Cascading Style Sheets):
Javascript
JavaScript uma linguagem que executa no Cliente, e permite injetar lgica em pginas HTML. Os pargrafos de lgica do
JavaScript podem estar "soltos" ou atrelados a ocorrncia de eventos. Os pargrafos soltos so executados na seqncia em
que aparecem na pgina (documento) e os atrelados a eventos so executados apenas quando o evento ocorre. Para inserir
pargrafos de programao dentro do HTML necessrio identificar o incio e o fim do set de JavaScript, da seguinte forma:
<SCRIPT>
Set de instrues
</SCRIPT>
Para melhor visualizao e facilidade de manuteno, recomenda-se que toda a lgica seja escrita no incio do documento,
atravs da criao de funes a serem invocadas quando se fizer necessrio (normalmente atreladas a eventos). Se a lgica
escrita a partir de um determinado evento, no necessrio o uso dos comandos <SCRIPT> e </SCRIPT>
Comandos do Javascript
Note que o Javascript sensvel ao tipo de letra (maisculas e minsculas). Caso seja cometido algum erro de sintaxe quando
da escrita de um comando, o JavaScript interpretar, o que seria um comando, como sendo o nome de uma varivel.
Operadores lgicos: so iguais ao Java: == (igual), != (diferente), > (maior), >= (maior ou igual), && (E), || (Ou), etc.
Operadores matemticos: tambm similar ao Java: + (adio), - (subtrao), * (multiplicao), / (diviso) e % (mdulo).
Controles especiais: os caracteres de escape \n, \r, \t, etc. Comentrios usam // e /* ... */, e Strings delimitam-se por "" ou ' '.
Comandos condicionais: os comandos if, for, while, break e continue e o operador ? funcionam como em Java.
var contador = 10
while (contador > 1)
{
if (teste = 3) strTeste = "Fim\n";
contador--;
}
As variveis so criadas automaticamente, pela simples associao de valores a mesma. Ex. NovaVariavel = "Jose"
133
O JavaScript permite que o programador escreva linhas dentro de uma pgina (documento), atravs do mtodo write. As linhas escritas desta forma, podem conter textos, expresses JavaScript e comandos Html.
<script>
valor = 30
document.write ("Minha primeira linha")
document.write ("Nesta linha aparecer: " + (10 * 10 + valor))
</script>
Eventos
So fatos que ocorrem durante a execuo do sistema, a partir dos quais o programador pode definir aes a serem realizadas
pelo programa. Segue a lista dos eventos possveis, indicando os momentos em que os mesmos podem ocorrer:
onchange: ocorre quando o objeto perde o foco e houve mudana de contedo. Vlido para os objetos Text, Select e
Textarea. O evento onblur ocorre quando o objeto perde o foco, independente de mudanas.
onfocus: ocorre quando o objeto recebe o foco. Vlido para os objetos Text, Select e Textarea.
onclick: ocorre quando o objeto recebe um clique do Mouse. Vlido para os objetos Buton, Checkbox, Radio, Link,
Reset e Submit.
onmouseover: ocorre quando o ponteiro do mouse passa por sobre o objeto. Vlido apenas para Link.
onselect: ocorre quando o objeto selecionado. Vlido para os objetos Text e Textarea.
onsubmit: ocorre quando um boto tipo Submit recebe um clique do mouse. Vlido apenas para o Form.
Funes do Javascript
O JavaScript permite que o programador escreva linhas dentro de uma pgina (documento), atravs do mtodo write. As linhas escritas desta forma, podem conter textos, expresses JavaScript e comandos Html. Elas aparecero no ponto da tela
onde o comando for inserido. Pode ser utilizado <br> e <p> para quebra de linha e pargrafo, respectivamente.
<script>
valor = 30
document.write ("A primeira linha <br>")
document.write ("Nesta linha aparecer : " + (10 * 10 + valor) + "<p>")
</script>
Existem trs formas de comunicao por mensagens: alert (aviso), confirm (mensagem Ok / Cancelar) e prompt:
if (confirm ("Algo est errado...devo continuar??"))
Entrada = prompt("Informe o seu nome", "")
alert("Bem-vindo, " + Entrada + "!")}
else
{ alert("Parando") }
134
{ Ao }
Ou utilizar uma funo interna (eval, parseInt, date, Math.abs, Math.pow, Math.max, Math.min, etc).
Tambm existem outras funcionalidades, como criao de Arrays, manipulao de Strings ou datas, instncias de objetos, etc.
DHTML
Dynamic HTML, ou DHTML uma forma de executar scripts no lado do cliente, permitindo que as pginas ganhem
contedo dinmico, atravs da execuo de scripts simples e fceis de desenvolver.
O DHTML no uma extenso da linguagem HTML, e tampouco uma linguagem de programao. Uma das desvantagens
que as implementaes entre os diferentes navegadores (Internet Explorer, Netscape Navigator) no uniforme.
A implementao DHTML, apresentada pela Microsoft na verso 4.0 do Internet Explorer, cobre quatro reas principais que,
na perspectiva do criador de contedo para a Web, lhe oferecem novas funcionalidades extremamente interessantes.
Estilos Dinmicos: possvel alterar dinamicamente qualquer atributo CSS de qualquer texto. Entre esses atributos
incluem-se, por exemplo: cores, visibilidade, fonts, etc. A utilizao de CSS permite controlar a apresentao de
uma pgina Web. Utilizando DHTML, torna-se possvel criar efeitos interativos alterando qualquer um dos atributos
de estilo de qualquer um dos elementos da pgina.
Contedo Dinmico: permite adicionar, eliminar ou modificar qualquer poro de texto ou grficos em qualquer
posio da pgina. Sempre que o contedo da pgina for modificado, esta ser redesenhada, de forma a englobar o
novo contedo da melhor forma.
"Data Binding": possvel apresentar, manipular e atualizar os dados da pgina, estabelecendo ligaes entre os
dados e tags HTML. Essa fonte de dados pode ser to simples como um arquivo de texto ou to complicada como
uma base de dados acessvel via ODBC.
Essas reas cobertas pelo Internet Explorer so diferentes de como foi implementado no Netscape Navigator, ou outros.
Web services
Web Services so o ltimo conceito na computao distribuda, sendo funes (ou aplicaes) de negcio modulares, autodescritivos, que operam na rede. Eles facilitam a interao entre companhias atravs da simplificao das regras de comunicao, utilizando XML como o formato de troca de mensagens em comum (protocolo neutro).
Embora os web services possam ser acessados utilizando uma chamada de procedimento remota (RPC), a comunicao assncrona tambm possvel, o que ideal para grupos de web services com baixo acoplamento, operando independentemente.
Web Services tambm oferecem vrios benefcios s organizaes, nos requisitos interao e integrao, pois infra-estruturas
diferentes podem se comunicar. Porm, a segurana uma preocupao que deve ser levada em conta.
Um exemplo de aplicao para web services: uma empresa pode permitir que seus fornecedores monitorem o estoque de um
produto, para que possam abastec-lo sem necessidade de enviar ordens de servio. Isso faz com que os fornecedores satisfaam os seus clientes de forma mais rpida, alm de reduzir custos (para todos os trs: empresa, fornecedores e clientes).
135
SOAP (Simple Object Access Protocol): utiliza XML para descrever uma maneira em que as mensagens devem ser
passadas em web services. Uma mensagem SOAP consiste de um ou mais cabealhos, um corpo, e um envelope que
contm o prprio web service e os endereos de destino. As mensagens unidirecionais SOAP podem ser combinadas
para gerar vrios padres de mensagens:
o
Multicast: o remetente pode fazer um broadcast da mensagem SOAP para mltiplos destinatrios.
Workflow: a mensagem SOAP pode ser enviada para vrios endpoints antes de retornar ao remetente.
WSDL (Web Services Definition Language): descreve os web services, permitindo que os usurios entendam como
acess-lo. Tambm uma linguagem baseada em XML, e especifica tambm o protocolo de transporte, as capacidades do servio, e os pontos de comunicao em ambos os canais de comunicao. A interface WSDL atua como uma
interface remota Java, ou uma IDL Corba, e tambm conhecida como XML-based IDL.
UDDI (Universal Description, Discovery and Integration): um registro centralizado dos web services, similar a
um catlogo de telefones, utiliza SOAP e XML em suas APIs, alm de usar a linguagem WSDL para promov-los.
Existem trs tipos de registros definidos na especificao UDDI:
o
White pages: permite o registro de informaes como o prprio servio, IDS, contrato e dados relacionados.
Yellow pages: permite organizar o servio pela indstria, geografia ou tipo de servio. (Pginas Amarelas).
Green pages: inclui detalhes tcnicos de como encontrar e executar um web service.
Para criar um web service, antes deve ser criado um "resumo" do servio utilizando um arquivo WSDL. Ento os detalhes do
servio devem ser registrados / publicados utilizando um registro UDDI. Um cliente envia uma requisio ao diretrio, e
136
capaz de contatar o servidor SOAP aps obter diretamente os detalhes do WSDL do registro UDDI. Assim o cliente pode
utilizar o web service atravs do envio e recebimento de mensagens SOAP.
Portais Corporativos
Portal Corporativo pode ser definido como uma aplicao tipicamente web, desenvolvida para funcionar como interface nica
e personalizada do ambiente eletrnico de trabalho, provendo aos usurios contedo, informao, acesso a aplicaes, colaborao e conhecimentos necessrios a plena atuao, envolvendo todo relacionamento com os stakeholders da empresa
Ainda recente e sem que tenhamos aprendido muito com eles, os Portais Corporativos, como uma resposta evoluo da Intranets, vieram sem dvida para ficar e promover uma poderosa transformao no trabalho e nas empresas. Como um grande
aliado da gesto do conhecimento, rapidamente se tornaro comuns maioria das empresas.
Portal Corporativo ou Intranet de terceira gerao (I3g) significa ao funcionrio ter um nico ponto para acesso a todas as
informaes relevantes, ferramentas de colaborao, aplicaes e servios que ele precisa para fazer o seu trabalho. Do ponto
de vista da empresa, representa economia e produtividade aumentadas.
Cada funcionrio passa a ter em seu desktop, uma janela nica que agrupa todas as informaes necessrias a execuo do
trabalho dirio. Alm disso, oferecem considervel independncia de lugar, pois atravs de conexo com dispositivos mveis
possvel aos funcionrios e parceiros da empresa acessar o portal e sua riqueza de informao, onde quer que eles estejam.
muita gente perdendo tempo respondendo a dvidas dos funcionrios que deveriam ser respondidas pela Intranet;
vrios cones para se chegar a informao desejada e conseqentemente vrias senhas de acesso s aplicaes;
baixos ndices de colaborao entre os talentos da empresa e falta de informao para o trabalho.
Os portais corporativos altamente integrados com aplicaes (desenvolvidas internamente e por terceiros), ferramentas de
colaborao e servios de informao de diferentes fontes, formatos e ambientes, permitem integrar processos de negcios e
viabilizam prticas conhecidas como Business to Employee (B2E). H a promessa de reduo de despesas e desperdcios,
aumento de produtividade, reteno de talentos, aumento de empowerment, melhoria de qualidade e atendimento, reduo do
tempo de respostas e resoluo de problemas, prontido de respostas, colaborao, trabalho em grupo, aprendizagem, etc.
Entre todas as razes o que torna mais urgente os servios tipo B2E a possibilidade de se resgatar aos funcionrios da empresa, o bem mais precioso de nossos dias: o tempo. Quanto tempo seu pessoal desperdia todos os dias procurando por informaes que deveriam estar publicadas na Intranet? Quanto tempo as pessoas desperdiam delas prprias e de outros funcionrios, se ocupando mutuamente com assuntos que poderiam ser resolvidos pela Intranet? Quanto as pessoas consomem
de telefone na resoluo de problemas ou busca de informaes que poderiam estar na Intranet? Quanto esforo deixa de ser
aplicado na atividade fim da empresa por estas razes? Quanto isso representa ($) por ano em sua companhia?
Alm de apoiar a comunicao empresarial e a aprendizagem dinmica, os portais corporativos suportam muitas das iniciativas de gesto do conhecimento baseadas em Tecnologia da Informao, alavancando a integrao dos processos de negcios,
colaborao, comunidades de prtica, e-learning, e-CRM, disseminao de melhores prticas, espaos virtuais de trabalho,
relacionamento com os stakeholders, inteligncia competitiva, repositrio de documentos, grupos de discusso, web conference, instant messaging e muito mais, se transformando tambm em uma poderosa vitrine de acesso ao conhecimento.
137
Templates: a As pginas de um portal sempre apresentam elementos comuns, tais como banners, barra de navegao, cabealho, rodap entre outros. Estes elementos podem ser armazenados em um ou mais templates, os quais sero utilizados pelas pginas que compem o portal. Isto permite que os construtores do portal atualizem a aparncia
e a estrutura das pginas de maneira centralizada, via templates, atualizando automaticamente todas as pginas relacionadas. Com templates, os desenvolvedores das aplicaes no precisam preocupar-se com aspectos de montagem
da pgina completa, mas apenas com as interfaces da sua aplicao.
Escalabilidade e Robustez: alm de um bom desempenho, um framework oferece escalabilidade para dar apoio s
exigncias dos portais de grande porte. Isto inclui trabalhar com um ambiente de balanceamento de carga, onde servidores web podem ser dinamicamente adicionados ou removidos, dependendo da demanda e das exigncias de acesso. Escalando para mltiplos servidores, tambm aumenta a robustez e a disponibilidade da soluo, dando suporte tolerncia de falhas de hardware.
Integrao Total com Aplicaes: os frameworks fornecem uma camada de apresentao comum para todo o portal. As informaes provenientes dos aplicativos so disponibilizadas para o portal atravs de subsees de uma pgina, que recebem diferentes nomes nos diferentes produtos: interfaces, portlets, gadgets e webparts so alguns exemplos. Adotaremos "interface". Uma pgina do portal pode conter uma ou mais interfaces, que podem pertencer a diferentes aplicativos. O framework fornece ainda uma camada de comunicao entre as interfaces, que
permite aos aplicativos trocarem informaes de uma maneira fcil e genrica. A integrao das interfaces dentro de
uma pgina do portal permite ao framework ter um maior controle da identidade visual do portal corporativo. Tecnologias como CSS, XML e XSL so utilizadas pelo framework para controlar e manter a consistncia visual das informaes exibidas para o usurio final.
Gerando Log e Relatrios: incluem ferramentas para registro e gerao de relatrios sobre a utilizao do portal.
Com isso, desenvolvedores tm uma preocupao a menos ao implementar suas aplicaes. Estas informaes so
essenciais para que os administradores possam controlar e analisar o ROI do portal.
Mecanismo de Busca: a capacidade de centralizao e integrao da busca nas diferentes aplicaes, bem como em
documentos corporativos, esto entre as principais funcionalidades oferecidas por um framework. A busca geralmente integrada com a personalizao e o controle de acesso do portal, retornando apenas resultados de reas s
quais os usurios tenham permisso de acesso.
Segurana: aplicaes construdas a partir de um framework no precisam preocupar-se com a administrao da segurana do portal. Acesso via HTTPS, validao de login, integrao com mecanismos de autenticao externos e a
tecnologia single-sign-on (senha nica de acesso a todas aplicaes) so tratados pelo prprio portal. Isto no centraliza a autenticao e alivia os tcnicos de grandes preocupaes no desenvolvimento de uma soluo.
Personalizao, Colaborao e Integrao com SGC (ou CMS - Content Management System); (ver adiante)
Em sua essncia, o portal corporativo permite empresa organizar tanto a distribuio e uso de seus ativos de tecnologia da
informao, quanto o acesso ao conhecimento em seu estado mais genuno, ou seja, face a face, a partir do relacionamento
humano. Traz alta capacidade de criao de contexto de uso das informaes e facilidade de integrao interface de trabalho
de aplicaes como ERP, CRM, e-mail, agendas e calendrios, ferramentas de escritrio, de busca, CGS, LMS, gerenciamento de documentos, ferramentas de comunicao e colaborao e aplicaes desenvolvidas internamente.
Como os portais permitem embutir muitas ferramentas, tecnologias e utilidades, alm dos benefcios diretos resultantes de sua
utilizao massiva, grande parte dos investimentos realizados em T.I. passam a ser consolidados e depreciados dentro da empresa. Iniciativas mais amplas de portal podem estender suas funcionalidades a parceiros, fornecedores, clientes, distribuidores, acionistas e outros interessados.
Os portais corporativos parecem responder positivamente s necessidades competitivas das companhias, valorizando simultaneamente as expectativas de ROI, o uso efetivo dos ativos da tecnologia da informao e seus ativos intelectuais.
Gesto de Contedo
Um componente importante de qualquer soluo de portal corporativo deveria ser a descentralizao e delegao de poder
para que os funcionrios possam facilmente incluir informao e conhecimento no sistema e ter estes inputs eficientemente
e rapidamente distribudos para grupos especficos, toda a empresa e at mesmo clientes. Dessa maneira, as implementaes
Sistema de Gesto de Contedo (SGC), associadas com implementaes portais corporativos, representam uma oportunidade
formidvel e um desafio para as organizaes e consultorias envolvidas na implementao de portais corporativos.
138
Os SGCs esto se tornando uma necessidade prtica em operaes web onde milhares de pginas compartilham de elementos
comuns (ex: marca da empresa). muito difcil manter a integridade de pginas de site e seus vrios links, de maneira geral,
sem o uso de SGCs avanados. Em um ambiente de publicao web, uma simples pgina ou conjunto de pginas pode ser
formada a partir de centenas de fontes de dados, links, gifs e imagens, que so armazenados em arquivos distintos.
Os SGCs mais avanados permitem a integrao fcil e dinmica de dados muito estruturados (dos sistemas de back-end) e
de dados noestruturados (informados pelos indivduos de dentro e de fora da empresa). Os SGCs podem tambm ser integrados profundamente com aplicaes eletrnicas de workflow e outras ferramentas de colaborao e gerenciamento de projeto. Um processo padro de SGC geralmente envolve os seguintes passos:
1) Criao de Documentos;
2) Reviso de Documentos;
3) Incluso de Metadata e Controle de Qualidade;
4) Publicao;
5) Reviso Peridica;
6) Arquivamento ou Eliminao dos Documentos.
As implantaes de SGC podem desempenhar um papel crtico na implementao dos portais corporativos. Os SGCs fornecem a infra-estrutura tcnica e os processos centrais que garantem que o contedo correto, atualizado e pontual estar disponvel para aqueles que precisarem. Embora engenhosa, em um nvel conceitual, as plataformas SGC podem ser bastante diferentes em termos de suas vrias caractersticas tcnicas. Algumas das caractersticas encontradas nas solues SGC mais avanadas esto includas, mas no limitadas, na seguinte lista:
Permite-se que os usurios no apenas publiquem informao / contedo, mas tambm customizem facilmente a interface de suas publicaes;
Facilidade para os usurios no-tcnicos trabalharem com seus aplicativos de escritrio (desktop);
Permite-se a criao de documentos baseados em XML por usurios que desconheam XML;
Facilidade para o usurio organizar, classificar e fazer referncias cruzadas do contedo publicado;
Permisso para o usurio associar facilmente termos de busca (palavraschave) com o contedo criado;
Suporte publicao de contedo em muitos tipos de arquivos (ex.: udio, vdeo, imagem, apresentao,
cdigo HTML, componentes Java, arquivos ZIP para download, etc.);
Permisso para os criadores de contedo inclurem nveis de prioridade no documento que ser publicado
ou distribudo para grupos selecionados;
Habilidade para customizar dinamicamente a navegao, o contedo e aplicativos que sero mostrados a diferentes grupos de usurios;
Usurios podem utilizar as ferramentas para criao de contedo que lhes sejam mais adequadas.
Definio de Regras
o
Permite-se mudanas fceis de regras para autoria, edio, aprovao, publicao e remoo de contedo;
Os usurios comuns podem tambm definir ou mudar facilmente as regras e fluxo do processo de publicao das pginas;
Permite-se a publicao pblica e com controle de privacidade (isto , os usurios controlam quem tm acesso s suas pginas publicadas).
Permite-se visualizar o histrico de mudanas de algum item especfico que tenha sido publicado;
Gerao automtica de atributos (metadata) associados com cada documento publicado (data da criao,
criador, tamanho do documento, indicador de item novo, indicador de item atualizado, etc.);
Permite-se que papis sejam facilmente designados: quem pode ler, editar, arquivar e eliminar um documento ou pgina;
Arquitetura
o
Qual o nvel de granularidade que o contedo pode ser armazenado no repositrio? Esses nveis so facilmente configurados pelo usurio? So facilmente remontadas e disponibilizadas novamente?
O sistema produz solues em termos de redundncia no caso de perda total ou parcial dos repositrios?
O sistema simplifica a reclassificao e recombinao de contedo para novos usurios e para a entrega atravs de mltiplos canais ?
O sistema se integra com as plataformas lderes de PdCC, bancos de dados (Oracle, Sybase, SQL Server,
Informix, etc.), aplicaes legadas, servidores web, servidores de aplicao, servidores comerciais, etc. ?
So fornecidos adaptadores pr-desenvolvidos para essas integraes?
Ele suporta a integrao de fornecedores e parceiros em um Processo de Gerenciamento de Contedo necessrio para disponibilizar transaes de comrcio eletrnico em tempo real?
Os aspectos essencialmente tcnicos relacionados aos SGC, embora bastante importantes e no triviais, dizem respeito apenas
a uma pequena parte das questes relacionadas a uma efetiva implementao de sistemas de gerenciamento de contedo no
contexto de portais corporativos. Muito mais importante so os temas estratgicos e organizacionais que necessariamente
devem ser transformados durante processos de implementao de SGCs.
Uma efetiva gesto de contedo pode transformar como uma empresa pblica, compartilha e utiliza informao, conhecimento e poder. Por isso, novas polticas de compartilhamento de informao interna e externa (com clientes) e descries de cargo (definindo responsabilidades, inclusive da alta gerncia) devem acompanhar a implementao das solues de SGC.
140
Portal: pode ser definido como uma aplicao baseada na Web que customizada pelo usurio final, tanto em sua
apresentao quanto no seu contedo, inclusive de aplicaes contidas neste. responsvel por agregar o contedo e
outras aplicaes em um ponto nico de entrada para o usurio (e suas ferramentas).
Portlets: so pequenas aplicaes Web que rodam dentro de um portal, ao lado de outras entidades similares. um
componente Web definido pela especificao JSR-168, e gerenciado por um continer, podendo processar requisies e gerar contedo dinmico.
141
Acessibilidade
A importncia dessa temtica na rea da tecnologia da informao, tem se tornado um foco de ateno de gestores pblicos e
privados e equipes desenvolvedoras de sistemas. Acessibilidade na internet se refere flexibilidade de acesso informao e
interao de usurios que possuem algum tipo de deficincia, quando os mesmos interagem com mecanismos de navegao,
manuseio de pginas e telas e com operao de software.
Essas diferentes situaes precisam ser consideradas pelos gestores de intranets e portais corporativos, para que possam oferecer respostas simultneas a vrios grupos de deficientes.
Um stio que respeita a navegao dos deficientes visuais, deve obedecer a regras simples que possibilitam uma boa interpretao das pginas por aplicativos de leitura de tela, proporcionando aos deficientes visuais entendimento do contedo sem que
tenham que "adivinhar" os caminhos que levam informao.
Deficientes visuais utilizam o teclado como ferramenta principal de navegao na web, feita atravs de tabulaes e reconhecimento de telas apresentadas no browser. O aplicativo de leitura de tela l a parte textual da pgina e reconhece a existncia
de imagens e animaes em flash, contudo essas imagens e animaes sempre aparecem como algo sem sentido, pois a mensagem que passa no assimilada.
Por isso, toda informao deve, tambm, ser apresentada na forma de texto. Se uma informao for expressa de outra forma,
por exemplo, imagem, animao, filme ou som, ela dever ser repetida na forma de descrio textual. Esta descrio textual
deve ser equivalente, ou seja, deve preservar o sentido da informao. No HTML, os atributos alt e longdesc foram
criados para textos equivalentes. Outras tcnicas para tornar a navegao mais amigvel para portadores de deficincia:
Use "list menus" na navegao por tabulao - essa uma das boas opes para navegao;
Os scripts geralmente no so muito bem resolvidos pelos aplicativos de leitura de tela. Se us-los, tenha sempre
uma segunda opo de navegao;
Sites totalmente construdos em flash no so reconhecidos pelos aplicativos de leitura de tela, impossibilitando a
navegao. As animaes flash podem conter descries por meio do TAG do atributo TITLE, colocado no TAG
OBJECT, que chama a animao flash;
Fornea ttulos de links que faa sentido quando lidos fora do contexto;
No confie apenas na cor para transmitir as informaes sobre links. Ex: Clique nos links vermelhos para editar....
Utilize sempre os atributos de TAG com o parmetro alt="descrio..." ou title="descrio...". Eles so reconhecidos
pelo aplicativo de leitura de tela e ajudam a tornar os caminhos mais claros.
Modelo de acessibilidade
A histria dos modelos de acessibilidade comeou em 1998 com a "Section 508", que uma lei que define: "a tecnologia
inacessvel interfere na capacidade individual de adquirir e usar a informao de maneira rpida e fcil".
142
No que se refere a acesso ao computador, ocorrem quatro tipos de situaes por parte de usurios com necessidades especiais:
Acesso ao computador sem mouse: pessoas com cegueira, dificuldade de controle dos movimentos, paralisia ou
amputao de um membro superior. Tais pessoas sentem vrias dificuldades na utilizao do mouse;
Acesso ao computador sem teclado: pessoas com amputaes, grandes limitaes de movimentos ou falta de fora
nos membros superiores tm srias dificuldades para utilizar o teclado tradicional. Nesses casos, a interao poder
ser feita atravs de um perifrico especial de reconhecimento da fala ou de um emulador de teclado na tela;
Acesso ao computador sem monitor: a verdade que a informao processada por um computador no de natureza visual. Para obterem a informao que projetada na tela, os cegos recorrem a um software (programa leitor de
tela) que capta essa informao e a envia para um sintetizador de voz ou para um terminal Braille;
Acesso ao computador sem udio: encontram-se relacionadas neste caso pessoas com baixa audio e pessoas com
surdez completa. H dificuldade em acessar informaes que se encontram disponveis somente atravs de udio.
Dentro deste contexto, o Departamento de Governo Eletrnico tem o compromisso de elaborar um Modelo de Acessibilidade
para o desenvolvimento e a adaptao de contedos do governo na internet, gerando um conjunto de recomendaes que devem ser consideradas. Uma das principais atribuies do Governo Federal a incluso social (diminuir desigualdades).
O Modelo de Acessibilidade proposto baseado nas regras do W3C e outras normas, com as seguintes vises:
Viso Tcnica: cartilha de recomendaes prticas para a construo e / ou adaptao de stios eletrnicos. A Viso
Tcnica voltada ao desenvolvedor, pessoa que far as alteraes nos cdigos dos stios eletrnicos;
Viso do Cidado: arquitetura de segmentao da Viso Tcnica. A Viso do Cidado do Modelo de Acessibilidade
proporciona uma orientao e compreenso mais lgica e intuitiva do modelo propriamente dito e da Viso Tcnica.
Abaixo ento relacionamos as reas de Acessibilizao compreendidas na Viso do Cidado:
o
rea da Percepo: trata de benefcios relacionados apresentao do contedo, da informao. Ela preocupa-se com a percepo de elementos como grficos, sons, imagens, multimdia e equivalentes.
rea da Operao: preocupa-se com a manipulao da informao, do contedo. Deve garantir formas alternativas ao acesso s informaes atravs de maneiras diferenciadas de navegao ou tcnica similar.
rea do Entendimento: trata de questes relacionadas compreenso do contedo publicado. Ela deve garantir que todo o contedo apresentado seja de fcil compreenso para qualquer tipo de usurio.
Alm disso, podemos classificar os contedos em trs grandes Nveis de Acessibilidade, por prioridades, onde o Nvel 1 so
as exigncias bsicas de acessibilidade (pontos obrigatrios); o Nvel 2 facilita o acesso s informaes do documento, e o
Nvel 3 facilita o acesso aos documentos armazenados na Web. O nvel AAA aquele que est de acordo com todos nveis.
Os cinco passos do processo de acessibilizao so:
1. Verificao da necessidade de acessibilizao do contedo;
2. Acessibilizao do contedo;
3. Validao da acessibilidade do contedo;
4. Promoo da acessibilidade conquistada;
5. Garantia contnua da acessibilidade.
Cartilha tcnica
A cartilha tcnica de recomendaes foi desenvolvida buscando atender e propiciar a acessibilizao dos stios governamentais, como proposto em "eMAG, Acessibilidade de Governo Eletrnico - Modelo".
Diretriz 2. Assegure-se de que seu stio seja legvel e compreensvel mesmo sem o uso de formataes.
Diretriz 4. Assegure que toda a informao seja interpretada corretamente, com clareza e simplicidade.
143
Diretriz 5. Assegure que as tecnologias utilizadas funcionem - de maneira acessvel - independente de programas,
verses e futuras mudanas.
Diretriz 8. Em casos no contemplados pelas diretrizes anteriores, utilize sempre recursos reconhecidos - por instituies com propriedade no assunto - como tecnologias acessveis.
Os recursos tcnicos para implementao da acessibilidade em HTML (a seguir) sumariza as recomendaes da cartilha.
uma boa prtica utilizar <HTML lang="fr"> para identificar o idioma da pgina, e <SPAN lang="it"> para indicar
uma mudana na lngua no meio do texto. Isso facilita softwares de reconhecimento de caracteres especiais.
Em frmulas matemticas, garantir que as variveis so bem definidas. Por exemplo, F = Fora, m = massa, etc.
Elementos CITE (citaes), DFN, CODE (cdigo), SAMP, KBD, VAR, INS (texto inserido), DEL (texto deletado).
Nas tabelas as informaes das linhas e colunas devem ser definidas, e um sumrio da tabela includo.
Fornecer um equivalente texto para imagens utilizadas como links, atravs do elemento "alt", "longdesc", etc.
Criar uma ordem lgica de "tabs" entre os links e figuras (elemento TABINDEX).
Incluir descries longas de imagens, e evitar arte ASCII, ou utilizar um link para pular esses blocos ASCII.
Deve existir contraste entre as cores das figuras, fundo e texto, inclusive para facilitar a visualizao monocromtica.
Prover o texto equivalente udios e vdeos. Isso tambm vale para grficos, botes grficos, etc.
Escrever para navegadores que no suportam FRAMES, e caso sejam utilizados, descrever o seu relacionamento.
Informar previamente ao usurio o destino e resultado da ao, quando houver campos e elementos do formulrio.
Evite comandos que caram em desuso: "blink", "marquee", "center", "font", "menu", "u", entre outros.
No provocar o aparecimento de janelas de sobreposio, janelas popup ou mudanas dinmicas na pgina atual.
A linguagem deve ser clara e acessvel (evite a voz passiva, linguagens idiomticas, grias, frases longas, etc).
Exemplo 1: Para uma imagem simples, decorativa ou acidental, fazer apenas uma breve descrio indicando que a imagem
de um carro amarelo, o cdigo pode ser:
<img src="carro.jpg" alt="Foto de um carro amarelo.">
Exemplo 2: O atributo "longdesc" foi criado para situaes em que a descrio a ser feita deve ser mais longa do que a permitida pelo atributo "alt".
<img src="mont_rio.jpg" longdesc="montanhas.htm" alt="Foto de montanhas no Rio de Janeiro.">
144
Exemplo 3: Se voc produziu um script (ou um programa) que causa um aviso sonoro, para ser tocado se o visitante da sua
pgina tentar enviar um formulrio antes dos campos requeridos estarem preenchidos, coloque no seu programa (ou script) a
capacidade de escrever uma mensagem na tela, que diga algo como:
Alerta: "Voc tentou submeter um formulrio incompleto. Por favor, preencha os campos necessrios".
145
Segurana da Informao
Poltica de segurana
Os objetivos de uma poltica de segurana so, de acordo com a ICP-Brasil:
Orientar, por meio de suas diretrizes, todas as aes de segurana das entidades
Reduzir riscos e garantir a integridade, sigilo e disponibilidade das informaes dos sistemas e recursos
Ativo de Informao: o patrimnio composto por todos os dados e informaes geradas e manipuladas durante a
execuo dos sistemas e processos das entidades;
Ativo de Processamento: o patrimnio composto por todos os elementos de hardware e software necessrios para
a execuo dos sistemas e processos das entidades, tanto os produzidos internamente quanto os adquiridos;
Controle de Acesso: so restries ao acesso s informaes de um sistema exercido pela gerncia de Segurana da
Informao das entidades;
Custdia: consiste na responsabilidade de se guardar um ativo para terceiros. Entretanto, a custdia no permite automaticamente o acesso ao ativo, nem o direito de conceder acesso a outros;
Direito de Acesso: o privilgio associado a um cargo, pessoa ou processo para ter acesso a um ativo;
Ferramentas: um conjunto de equipamentos, programas, procedimentos, normas e demais recursos atravs dos
quais se aplica a Poltica de Segurana da Informao das entidades;
Incidente de Segurana: qualquer evento ou ocorrncia que promova uma ou mais aes que comprometa ou que
seja uma ameaa integridade, autenticidade, ou disponibilidade de qualquer ativo das entidades;
Poltica de Segurana: um conjunto de diretrizes destinadas a definir a proteo adequada dos ativos produzidos
pelos Sistemas de Informao das entidades;
Proteo dos Ativos: o processo pelo qual os ativos recebem classificao quanto ao grau de sensibilidade. O
meio de registro de um ativo de informao recebe a mesma classificao de proteo dada ao ativo que o contm;
Responsabilidade: definida como as obrigaes e os deveres da pessoa que ocupa determinada funo em relao
ao acervo de informaes;
Senha Fraca ou bvia: aquela onde se utilizam caracteres de fcil associao com o dono da senha, ou que seja
muito simples ou pequenas, tais como: datas de aniversrio, casamento, nascimento, o prprio nome, o nome de familiares, seqncias numricas simples, palavras com significado, dentre outras.
A abrangncia da poltica de segurana de uma entidade deve levar em conta os requisitos de segurana humana, segurana
fsica, segurana lgica (recursos criptogrficos, etc). Algumas de suas regras gerais so:
146
A Poltica de Segurana Geral se aplica a todos os recursos humanos, administrativos e tecnolgicos pertencentes s
entidades que a compem. A abrangncia dos recursos citados refere-se tanto queles ligados s entidades em carter
permanente quanto temporrio;
Esta poltica deve ser comunicada para todo o pessoal envolvido e largamente divulgada atravs das entidades, garantindo que todos tenham conscincia da mesma e a pratiquem na organizao;
Todo o pessoal deve receber as informaes necessrias para cumprir adequadamente o que est determinado na poltica de segurana;
Um programa de conscientizao sobre segurana da informao dever ser implementado para assegurar que todo o
pessoal seja informado sobre os potenciais riscos de segurana e exposio a que esto submetidos os sistemas e operaes das entidades. Especificamente, o pessoal envolvido ou que se relaciona com os usurios deve estar informado sobre ataques tpicos de engenharia social e como se proteger deles;
Os procedimentos devero ser documentados e implementados para garantir que quando o pessoal contratado ou
prestadores de servios sejam transferidos, remanejados, promovidos ou demitidos, todos os privilgios de acesso
aos sistemas, informaes e recursos sejam devidamente revistos, modificados ou revogados;
Risco: definido como um contexto que inclui as ameaas, vulnerabilidades e o valor a proteger (ativo)
A anlise de risco usada para analisar, estudar, avaliar as vulnerabilidades e a falta de controle que pode gerar ameaas para
a empresa. E essa analise no deve ser baseada somente nas tecnologias mas tambm em todos os processos e pessoas que
fazem parte da instituio. O gerenciamento de risco dividido em 4 (quatro) etapas bsicas:
Identificao dos Riscos: como o prprio nome j diz, nessa etapa so identificados os riscos a que o negcio (o foco sempre deve ser este) est sujeito. O primeiro passo a realizao de uma Anlise de Riscos, que pode ser tanto
quantitativa baseada em estatsticas, numa anlise histrica dos registros de incidentes quanto qualitativa baseada em know-how, e realizada por especialistas, que tm profundos conhecimentos sobre o assunto.
Quantificao dos Riscos: nessa etapa mensurado o impacto que um determinado risco pode causar ao negcio.
Como praticamente impossvel oferecer proteo total contra todas as ameaas existentes, preciso identificar os
ativos e as vulnerabilidades mais crticas, possibilitando a priorizao dos esforos e os gastos com segurana. Uma
das ferramentas existentes no mercado o BIA (Business Impact Analysys). Esta tcnica consiste, basicamente, da
estimativa de prejuzos financeiros decorrentes da paralisao de um servio. Responde a questes do tipo "quanto
sua empresa deixaria de arrecadar caso um sistema estivesse indisponvel durante 2 horas?"
Tratamento dos Riscos: uma vez que os riscos foram identificados e a organizao definiu quais sero tratados, as
medidas de segurana devem ser de fato implementadas. Alguns riscos podem ser eliminados, outros reduzidos ou
at mesmo aceitos pela empresa, tendo sempre a situao escolhida documentada. S no permitido ignor-los.
Nessa etapa podem ser definidas medidas adicionais de segurana, como os Planos de Continuidade dos Negcios.
Monitorao dos Riscos: atravs de uma monitorao constante, possvel identificar quais reas foram bem sucedidas e quais precisam de revises e ajustes. O ideal que este trabalho seja norteado por um modelo de Gesto de
Segurana, que defina atribuies, responsabilidades e fluxos de comunicao interdepartamentais.
Elementos administrativos
147
Sistemas de segurana (de equipes e de sistemas, incluindo todos os elementos, tanto redes como terminais).
Questionrios: enviado para pessoas de uma rea especfica, para recolher informaes sobre o seu funcionamento,
no precisando ser os responsveis oficiais pela rea.
Entrevistas: uma das atividades pessoais mais importantes do auditor, que pode obter as informaes mais sensveis
sobre o auditado. Uma entrevista bem preparada e sistematizada fundamental para a eficcia desta etapa.
Checklist: o auditor deve aplicar um checklist de modo que o auditado responda ou fornea as informaes entre um
range de respostas (por exemplo, 1-5, ou Muito Deficiente, Deficiente, Razovel, Aceitvel e Excelente), ou em respostas binrias (Verdadeiro / Falso ou Sim / No).
Software de Auditoria: com freqncia o auditor necessita verificar se os programas e sistemas realizam as funes
previstas, alm de medir o nvel de segurana e outros requisitos. Para isso existem softwares especficos, que podem medir a vulnerabilidade da rede, gerar logs, grficos e planilhas.
o
IDS (intrusion detection system): um dos mecanismos utilizados por esses sistemas a deteco por assinatura, em que a assinatura tpica de um trfego malicioso permite identific-lo como um ataque.
Nessus: uma ferramenta largamente empregada na Internet para anlise de vulnerabilidades em sistemas
operacionais o NESSUS, que permite realizar diagnstico de vrios tipos de dispositivos instalados em
redes que utilizam o protocolo TCP/IP. Ele permite que se faa isso de uma forma segura, no permitindo
que usurios no autorizados possam escanear sua rede com ele. Ele composto por duas partes, sendo um
cliente e um servidor. Pode-se us-lo a partir do Windows, Linux e Unix.
Requisitos de Segurana
Os princpios bsicos de segurana em sistemas so (CIDA):
Confidencialidade: proteo da informao compartilhada contra acessos no autorizados; obtm-se pelo controle
de acesso (senhas) e controle das operaes individuais de cada usurio (log).
Integridade: garantia da veracidade da informao, que no pode ser corrompida por alteraes acidentais ou no
autorizadas, no caso de adulteraes aps a assinatura de um documento, por exemplo.
Disponibilidade: preveno de interrupes na operao de todo o sistema (hardware + software); uma quebra do
sistema no deve impedir o acesso aos dados
Autenticidade: garantia da identidade dos usurios. Quando aplicados documentos digitais, consiste tambm de:
o
Irrefutabilidade: o requisito de segurana que garante a impossibilidade de que uma autoria de documento eletrnico seja negada posteriormente.
Tempestividade: a qual nos permite saber com total segurana se determinado documento foi ou no produzido naquela ocasio.
Certificao digital
As tcnicas de certificao digital oferecem seis tipos de servios bsicos. Sem estes predicados no possvel realizar o comrcio eletrnico seguro na Internet:
148
Disponibilidade: garante que uma informao estar disponvel para acesso no momento desejado.
Confidencialidade (privacidade ou sigilo): impede que pessoas no autorizadas tenham acesso ao contedo da
mensagem, garantindo que apenas a origem e o destino tenham conhecimento.
No-repudiao: previne que algum negue o envio e/ou recebimento de uma mensagem.
Controle de acesso: garante que o contedo da mensagem somente ser acessado por pessoas autorizadas.
Criptografia
O ciframento de uma mensagem baseia-se em dois componentes: um algoritmo e uma chave.
Algoritmo: uma transformao matemtica. Ele converte uma mensagem em claro em uma mensagem cifrada e
vice-versa. Quando o remetente (origem) cifra uma mensagem, ela utiliza um algoritmo de ciframento para transformar o contedo em claro da mensagem em texto cifrado. Quando o destinatrio decifra uma mensagem, ele utiliza
o algoritmo de deciframento correspondente para converter o texto cifrado de novo em uma mensagem clara.
Chave: uma cadeia aleatria de bits utilizada em conjunto com um algoritmo. Cada chave distinta faz com que o
algoritmo trabalhe de forma ligeiramente diferente.
Embora existam algoritmos que dispensem o uso de chaves, sua utilizao oferece duas importantes vantagens. A primeira
permitir a utilizao do mesmo algoritmo criptogrfico para a comunicao com diferentes receptores, apenas trocando a
chave. A segunda vantagem permitir trocar facilmente a chave no caso de uma violao, mantendo o mesmo algoritmo.
O nmero de chaves possveis depende do tamanho (nmero de bits) da chave. Por exemplo, uma chave de 8 bits permite
uma combinao de no mximo 256 chaves (28). Quanto maior o tamanho da chave, mais difcil quebr-la, pois estamos aumentando o nmero de combinaes. A segurana passa a residir na chave empregada, e no no algoritmo utilizado.
Criptografia Simtrica
A criptografia simtrica ocorre quando a chave de ciframento a mesma utilizada para deciframento ou esta ltima pode facilmente ser obtida a partir do conhecimento da primeira, e ambas precisam ser compartilhadas previamente entre origem e
destinatrio, antes de se estabelecer o canal criptogrfico desejado.
DES (Data Encryption Standard): o algoritmo simtrico mais disseminado no mundo. Foi criado pela IBM em
1977 e, apesar de permitir cerca de 72 quadrilhes de combinaes (256), seu tamanho de chave considerado pequeno, tendo sido quebrado por "fora bruta" em 1997.
Triple DES (112 ou 168 bits): uma simples variao do DES, utilizando-o em trs ciframentos sucessivos, emprega uma verso com duas ou trs chaves diferentes. seguro, porm muito lento para ser um algoritmo padro.
IDEA (International Data Encryption Algorithm): de 128 bits, estruturado seguindo as mesmas linhas gerais do
DES. Mas na maioria dos microprocessadores, uma implementao por software do IDEA mais rpida do que uma
implementao por software do DES. O IDEA utilizado principalmente no mercado financeiro e no PGP (e-mail).
Blowfish (32 a 448 bits): oferece a escolha entre maior segurana ou desempenho atravs de chaves de tamanho varivel. O autor aperfeioou-o no Twofish (proposta para um novo padro do DES, chamado de AES).
RC2, RC4, RC5 (8 a 1024 bits): voltado para criptografia de e-mail corporativo. Tambm possui chave de tamanho varivel. Tambm utilizado no protocolo S/MIME.
Rijndael: o NIST lanou um concurso para selecionar um novo algoritmo para ser adotado como o AES - Advanced
Encryption Standard, em substituio do DES. O vencedor foi o Rijndael, criado por belgas e que pode utilizar chaves de 128, 192 e 256 bits.
Como cada par necessita de uma chave para se comunicar de forma segura, para um uma rede de n usurios precisaramos de algo da ordem de n2 chaves, quantidade esta que dificulta a gerncia das chaves;
A chave deve ser trocada entre as partes e armazenada de forma segura, o que nem sempre fcil de ser garantido;
149
Criptografia Assimtrica
Tambm conhecida como criptografia de chave pblica, a criptografia assimtrica est baseada no conceito de par de chaves:
uma chave privada e uma chave pblica. Qualquer uma das chaves utilizada para cifrar uma mensagem e a outra para decifr-la. As mensagens cifradas com uma das chaves do par s podem ser decifradas com a outra chave correspondente. A chave privada deve ser mantida secreta, enquanto a chave pblica disponvel livremente para qualquer interessado.
A grande vantagem deste sistema permitir que qualquer um possa enviar uma mensagem secreta, apenas utilizando a chave
pblica de quem ir receb-la. Como a chave pblica est amplamente disponvel, no h necessidade do envio de chaves
como feito no modelo simtrico. A confidencialidade da mensagem garantida, enquanto a chave privada estiver segura.
RSA (Rivest, Shamir, Adleman): o algoritmo de chave pblica mais amplamente utilizado, alm de ser uma das
mais poderosas formas de criptografia de chave pblica conhecidas at o momento. O RSA utiliza nmeros primos.
A premissa por trs do RSA que fcil multiplicar dois nmeros primos para obter um terceiro nmero, mas muito
difcil recuperar os dois primos a partir daquele terceiro nmero. Isto conhecido como fatorao.
El Gamal: tambm um sistema comutativo, como o RSA. O algoritmo envolve a manipulao matemtica de
grandes quantidades numricas. Sua segurana advm de algo denominado problema do logaritmo discreto. Assim,
o ElGamal obtm sua segurana da dificuldade de se calcular logaritmos discretos em um corpo finito
Diffie-Hellman: tambm baseado no problema do logaritmo discreto, o criptosistema de chave pblica mais antigo
ainda em uso. Contudo, ele no permite nem ciframento nem assinatura digital. O sistema foi projetado para permitir
a dois indivduos entrarem em um acordo ao compartilharem um segredo tal como uma chave.
Curvas Elpticas: consiste em modificaes de outros sistemas (o ElGamal, por exemplo), que passam a trabalhar
no domnio das curvas elpticas, em vez de trabalharem no domnio dos corpos finitos. Eles possuem o potencial de
proverem sistemas criptogrficos de chave pblica mais seguros, com chaves de menor tamanho.
Hashing
A assinatura digital obtida atravs do uso da criptografia assimtrica (ou de chave pblica) infelizmente no pode ser empregada, na prtica, de forma isolada, devido lentido dos algoritmos assimtricos, em geral cerca de 1.000 vezes mais lentos
do que os simtricos. Assim, na prtica invivel e contraproducente utilizar puramente algoritmos de chave pblica para
assinaturas digitais, principalmente quando se deseja assinar grandes mensagens, que podem levar minutos ou at horas.
Ao invs disso, empregada uma funo Hashing, que gera um valor pequeno, de tamanho fixo, derivado da mensagem que
se pretende assinar, de qualquer tamanho. Assim, a funo Hashing oferece agilidade nas assinaturas digitais, alm de integridade confivel.
A funo Hashing funciona como uma impresso digital de uma mensagem gerando, a partir de uma entrada de tamanho varivel, um valor fixo pequeno: o digest ou valor hash. Funciona como um check sum de uma mensagem.
MD5 (Message Digest 5): uma funo de espalhamento unidirecional, que produz um valor hash de 128 bits, para
uma mensagem de entrada de tamanho arbitrrio. Foi projetado para ser rpido, simples e seguro. Seus detalhes so
pblicos, e tm sido analisados pela comunidade de criptografia. Existiram outras verses (MD4, MD2, ...)
SHA-1 (Secure Hash Algorithm): uma funo de espalhamento unidirecional inventada pela NSA, gera um valor
hash de 160 bits, a partir de um tamanho arbitrrio de mensagem. Atualmente, no h nenhum ataque de criptoanlise conhecido contra o SHA-1. Mesmo o ataque da fora bruta torna-se impraticvel, devido ao seu valor hash.
Protocolos Criptogrficos
Utilizam um esquema hbrido entre a criptografia simtrica (rpida, criptografa a mensagem) e a assimtrica (lenta, distribuio de chaves e assinatura digital).
150
IPSec: padro de protocolos criptogrficos desenvolvidos para o IPv6. Realiza tambm o tunelamento sobre IP.
composto de trs mecanismos criptogrficos (assinatura digital, ciframento simtrico e troca de chaves). Criptografia
e tunelamento so independentes. Permite Virtual Private Network fim-a-fim. Futuro padro para as VPNs.
SSL e TLS: oferecem suporte de segurana criptogrfica para os protocolos NTTP, HTTP, SMTP e Telnet. Permitem utilizar diferentes algoritmos simtricos, hashing e mtodos de autenticao e gerncia de chaves (assimtricos).
PGP: um programa criptogrfico famoso e bastante difundido na Internet, destinado a criptografia de e-mail pessoal. Algoritmos suportados: hashing: MD5, SHA-1, CAST-128, IDEA e 3DES, RSA e Diffie-Hellman/DSS.
S/MIME: consiste em um esforo de um consrcio de empresas, liderado pela RSADSI e pela Microsoft, para adicionar segurana a mensagens eletrnicas no formato MIME. Apesar do S/MIME e PGP serem ambos padres Internet, o S/MIME dever se estabelecer no mercado corporativo, enquanto o PGP no mundo do mail pessoal.
SET: um conjunto de padres e protocolos, para realizar transaes financeira seguras, como as realizadas com
carto de crdito na Internet. Oferece um canal de comunicao seguro entre todos os envolvidos na transao. Garante autenticidade X.509v3 e privacidade entre as partes.
X.509: define o relacionamento entre as autoridades de certificao. Faz parte das sries X.500 de recomendaes
para uma estrutura de diretrio global, baseada em nomes distintos para localizao. Utilizado pelo S/MIME, IPSec,
SSL/TLS e SET. Baseado em criptografia com chave pblica (RSA) e assinatura digital (com hashing).
Assinatura Digital
Outro benefcio da criptografia com chave pblica a assinatura digital, que permite garantir a autenticidade de quem envia a
mensagem, associada integridade do seu contedo. Isso feito usando a chave privada para CIFRAR a mensagem, e a chave pblica para DECIFR-LA. Assim, qualquer um pode ler a mensagem, e quem possui a chave secreta pode escrev-la.
importante perceber que a assinatura digital no garante a confidencialidade da mensagem. Qualquer um poder acess-la e
verific-la, mesmo um intruso, apenas utilizando a chave pblica. Para obter confidencialidade com assinatura digital, basta
combinar os dois mtodos (i.e., assinatura digital com chave pblica + criptografia assimtrica).
Os algoritmos utilizados so o RSA, o El Gamal (j descritos) e o DSA (Digital Signature Algorithm), unicamente destinado
a assinaturas digitais, trata-se de uma variao dos algoritmos de assinatura ElGamal e Schnorr, e foi inventado pela NSA.
Alm disso, existem os Certificados Digitais, que se prope a impedir que a chave pblica fornecida por uma entidade seja
proveniente dela mesma, evitando que cada lado pense que est se comunicando com o outro, quando na verdade esto sendo
interceptados pelo intruso. Tais certificados consistem em chaves pblicas assinadas por uma pessoa de confiana, geralmente no formato padro ITU X.509v3. Servem para evitar tentativas de substituio de uma chave pblica por outra.
CA (Certification Authority): validam outros certificados; so auto-assinados ou assinados por outra CA.
Servidor: utilizados para identificar um servidor seguro; contm o nome da organizao e o nome DNS do servidor.
Pessoais: contm nome do portador e, eventualmente, informaes como endereo eletrnico, endereo postal, etc.
Autoridades de certificao, como Verisign, Cybertrust e Nortel, assinam certificados digitais garantindo sua validade. Uma
CA tambm tem a responsabilidade de manter uma lista com os certificados revogados (Certificate Revocation List - CRL)
151
Discursivas possveis:
Apresente os principais operadores da lgebra booleana. Qual a importncia da representao binria em sistemas computacionais?
Fale sobre a numerao binria e hexadecimal, e d exemplos das diferentes informaes que um nmero binrio pode representar.
Explique como um programa pode detectar se houve "overflow" ou "underflow" ao adicionar dois nmeros em numerao binria.
Compare e explique as arquiteturas CISC e RISC, explicando os argumentos a favor de cada uma.
O que DMA, e como o computador o utiliza em conjunto com o sistema operacional? Quais so os dispositivos perifricos que o utilizam,
e exemplifique a sua utilizao.
Conceitue e d exemplos onde pode ocorrer uma interrupo de software e uma de hardware.
Cite trs estruturas de endereamento das instrues de mquina, a sua interao com os registradores e explique o seu funcionamento.
Compare as vantagens e desvantagens de se utilizar um Compilador ou Interpretador para a execuo de um programa de computador.
Compare e os sistemas multiprogramados e monoprogramados. Quais as suas caractersticas?
Explique se existe alguma diferena conceitual entre mainframes, mini e microcomputadores?
Conceitue sistema operacional. Qual a sua importncia para um sistema computacional?
Quais so os passos que o sistema operacional toma ao escalonar um processo? Explique.
Descreva o escalonamento de processos Round Robin, para os seguintes processos...
Quais as vantagens e desvantagens da paginao, segmentao e paginao com segmentao?
Descreva um algoritmo de alocao de pginas na memria. Use-o para as seguintes pginas...
Descreva os sistemas de arquivos utilizados pelos sistemas Windows e Unix. Faa uma comparao.
De que formas um sistema operacional pode fazer a comunicao com um dispositivo de hardware?
D um exemplo onde pode ocorrer deadlock, e d uma soluo para o problema de concorrncia.
Quais so os principais objetivos e benefcios de uma rede de computadores?
Explique a diferena entre transmisso ponto-a-ponto e redes de difuso, e entre redes com transmisso sncrona e assncrona.
Descreva a arquitetura OSI ou TCP/IP e explique as funes das camadas.
Descreva um algoritmo de recepo / transmisso de pacotes IP.
Explique o que significa DNS, e qual a sua importncia para a Internet.
Compare os mtodos funcionais / de dados com os mtodos OO, como feito a modelagem, aspectos como a facilidade de compreenso do
domnio, a sua robustez e facilidade de manuteno.
Faa uma modelagem DFD, dado um sistema
Modele um sistema utilizando UML: os seus requisitos (casos de uso), um modelo de domnio (classes) com classes, relaes entre classes,
atributos e restries, e o ciclo de vida de um objeto (diagrama de estados).
Faa uma modelagem MER (Entidade-Relacionamento), dado um sistema
Coloque na xFN (Forma Normal) a(s) seguinte(s) tabela(s)
Descreva um exemplo de estratgia de implementao de gesto de qualidade, as atividades e os seus objetivos.
Cite pontos fracos e fortes de cada um dos modelos de ciclo de vida da Engenharia de Software
Caracterize cada uma das principais atividades do processo de Engenharia de Requisitos.
Em que consistem inspees de software? Qual a sua relevncia em processos de validao e verificao de software?
152
MATERIAL COMPLEMENTAR
SISTEMAS DE COMPUTAO
Organizao de Computadores
http://www.organizacaodecomputadores.kit.net/
ENGENHARIA DE SOFTWARE
Pressman Software Engineering Resources
http://www.rspa.com/spi/
JAVA E WEB
Java e Web para Concursos
Rafael B. Pereira
http://www.rbper.com/java-e-web-para-concursos
http://www.agbook.com.br/book/26055--Java_e_Web_para_Concursos
JAVA OO
Introduo Programao Orientada a Objetos usando Java
Rafael Santos
http://www.elsevier.com.br/site/produtos/Detalhe-produto.aspx?tid=1439&seg=3&isbn=9788535212068&cat=8&origem=Busca
BANCO DE DADOS
Sistemas de Bancos de Dados
http://www.submarino.com.br/produto/1/191303/sistemas+de+banco+de+dados?menuId=1324
MINERAO DE DADOS
Inteligncia Artificial
Stuart Russell e Peter Norvig.
Editora Campus, 2004.
153