Sei sulla pagina 1di 27

2 - DESENVOLVIMENTO DE SISTEMAS

Metodologia de desenvolvimento: envolve princpios filosficos que


guiam uma gama de mtodos que utilizam ferramentas e prticas
diferenciadas para realizar algo.
Tipos de metodologias:
Estruturada (anlise estruturada, projeto estruturado, programa!o
estruturada, anlise essencial, "#$T, $%$ e &E'()
*rientada a o+jetos (orienta!o a o+jetos e ',-()
$esenvolvimento gil de soft.are (%$$, E,-, "crum, /r0stal e 1-(.
Anlise e projeto orientado a objetos: a anlise modela o pro+lema
e consiste das atividades necessrias para entender o domnio do
pro+lema (o que deve ser feito(. * projeto modela a solu!o e consiste
das atividades de cria!o (como pode ser feito(.
# orienta!o a o+jetos um paradigma de anlise, projeto e
programa!o de sistemas de soft.are +aseado na composi!o e
intera!o entre diversas unidades de soft.are c2amadas de o+jetos.
lasse: representa um conjunto de o+jetos com caractersticas
afins. ,ma classe define o comportamento dos o+jetos atravs de
seus mtodos, e quais estados ele capaz de manter atravs de
seus atri+utos. E3. classe: *s seres 2umanos.
Objeto: uma instancia de uma classe. ,m o+jeto capaz de
armazenar estados atravs de seus atri+utos e reagir a mensagens
enviadas a eles, assim como se relacionar e enviar mensagens a
outros o+jetos. E3. de o+jetos da classe seres 2umanos: 4o!o,
4os, &aria.
Atrib!to: s!o caractersticas de um o+jeto. E3. %uncionrio: nome,
endereo, telefone, /-%.
M"todo: definem as 2a+ilidades dos o+jetos.
Mensagem: uma c2amada a um o+jeto para invocar um de seus
mtodos.
#eran$a %o! generali&a$'o(: o mecanismo pelo qual uma
classe (su+5classe( pode estender outra classe (super5classe(,
aproveitando seus comportamentos (mtodos( e variveis possveis
(atri+utos(. E3. &amfero super5classe de 6umano.
Asso)ia$'o: o mecanismo pelo qual um o+jeto utiliza os
recursos de outro. -ode tratar5se de uma associa!o simples 7usa
um8 ou de um acoplamento 7parte de8. -or e3. ,m 2umano usa um
telefone. # tecla 798 parte de um telefone.
En)aps!lamento: consiste na separa!o de aspectos internos e
e3ternos de um o+jeto.
Abstra$'o: a 2a+ilidade de concentrar nos aspectos essenciais
de um conte3to qualquer, ignorando caractersticas menos
importantes ou acidentais.
*olimor+ismo: consiste em quatro propriedades que a linguagem
pode ter: universal (inclus!o e paramtrico(, ad52oc (so+recarga e
coer!o(, interface e pacotes.
,ML %,ni+ied Modelling Lang!age( uma linguagem ou nota!o de
diagramas para especificar, visualizar e documentar modelos de
soft.are orientado por o+jetos. * ,&: n!o um mtodo de
desenvolvimento, o que significa que n!o l2e diz o que fazer primeiro ou
o que fazer depois ou como desen2ar o seu sistema, mas ajuda5o a
visualizar o seu desen2o e a comunicar com os outros.
Diagramas de )aso de !so: descrevem relacionamentos e
depend;ncias entre um grupo de /aso de ,so e os #tores
participantes no processo.
Diagramas de )lasse: mostram as diferentes classes que fazem
um sistema e como elas se relacionam.
Diagramas de se-!.n)ia: mostram a troca de mensagens (isto
c2amada de mtodo( entre diversos o+jetos, numa situa!o
especfica e delimitada no tempo.
Diagramas de )olabora$'o: mostram as intera<es que ocorrem
entre os o+jetos participantes numa situa!o especfica.
Diagramas de estado: mostram os diferentes estados de um
o+jeto durante sua vida, e o estmulo que faz com que o o+jeto
mude seu estado.
Diagramas de atividade: descreve a sequ;ncia de atividades
num sistema.
Diagramas de )omponente: mostram os componentes do
soft.are e os artefatos de que eles s!o feitos como arquivos de
cdigo5fonte.
Diagramas de distrib!i$'o: mostram as inst=ncias dos
componentes de tempo de e3ecu!o e suas associa<es.
Diagramas de entidade-asso)ia$'o: mostram o desen2o
conceitual dos aplicativos de +ancos de dados.
Modelagem +!n)ional e de dados: o modelo funcional descreve os
clculos e3ecutados em um sistema e especifica o que acontece. >
composto por m?ltiplos $%$ (diagramas de flu3os de dados( que
especificam o significado das opera<es e restri<es.
# modelagem de dados representa um conjunto de requerimentos de
informa<es de negcio. > uma parte importante do desen2o de um
sistema de informa!o.
*s modelos de dados s!o classificados da seguinte forma:
&odelo /onceitual)
&odelo :gico)
&odelo %sico
/erramentas de desenvolvimento de so+t0are e +erramentas
ASE: ferramentas de programa!o ou soft.are um programa ou
aplicativo que um programador utiliza para criar, depurar, manter, ou
realizar algum outro tipo de apoio para a cria!o de outros programas e
aplicativos.
@$Es A @ntegrated $evelopment Environment (#m+iente de
desenvolvimento integrado( com+inam os recursos de vrias
ferramentas em um pacote completo.
#lguns e3emplos de @$Es s!o:
$elp2i)
/BBCuilder
&icrosoft Disual "tudio)
Eclipse)
Eet+eans
%erramenta /#"E (/omputer5#ided "oft.are Engineering( uma
classifica!o que a+range todas as ferramentas +aseadas em
computadores que au3iliam atividades de engen2aria de soft.are, desde
anlise de requisitos e modelagem at programa!o e testes.
#u3ilia o desenvolvedor de sistemas em uma ou vrias etapas do ciclo
de desenvolvimento de soft.are.
/ategoriza!o:
a( /ront End o! ,pper ASE: apia as etapas iniciais de cria!o dos
sistemas: as fases de planejamento, anlise e projeto do programa
ou aplica!o.
+( 1a)2 End o! Lo0er ASE: d!o apoio F parte fsica, isto , a
codifica!o, testes e manuten!o da aplica!o.
c( I-ASE o! Integrated ASE: classifica os produtos que co+rem
todo o ciclo de vida do soft.are, desde os requisitos do sistema at
o controle final da qualidade.
*s am+ientes de desenvolvimento integrado (@$Es( suportam: editor,
compilador, de+ug, gera!o de cdigo, ferramentas de modelagem,
deplo0, testes automatizados 0rla e refatora!o.
*+jetivos:
&el2oria da qualidade de soft.are)
#umento da produtividade no processo de soft.are
Dantagens:
Gualidade no produto final)
-rodutividade)
#gilizar o tempo para tomada de decis!o)
&enor quantidade de cdigos de programa!o)
&el2oria e redu!o de custos na manuten!o)
#gilidade no retra+al2o do s.
$esvantagens:
@ncompati+ilidade de ferramentas)
Treinamento para utiliza!o
"ele!o e avalia!o de ferramentas /#"E (Eorma @"*H@E/ 9I9JK(
#valia!o: processos nos quais vrios aspectos de uma ferramenta
/#"E s!o medidos, considerando5se critrios definidos.
"ele!o: processos nos quais os dados de uma ou mais avalia<es
de ferramentas s!o ponderados e comparados, considerando5se
critrios definidos, para determinar se uma ou mais ferramentas
podem ser recomendadas para a ado!o.
Aspe)tos de ling!agens de programa$'o3 algoritmos e estr!t!ras
de dados e objetos:
#lgoritmo uma sequ;ncia finita de instru<es +em definidas e n!o
am+guas, cada uma das quais pode ser e3ecutada mecanicamente num
perodo de tempo finito e com uma quantidade de esforo finita.
,m algoritmo corretamente e3ecutado n!o ir resolver um pro+lema se
estiver implementado incorretamente ou se n!o for apropriado ao
pro+lema.
,m algoritmo representa os passos necessrios para realizar uma tarefa.
lassi+i)a$'o
*or implementa$'o4
5e)!rsivo o! iterativo A possui a caracterstica de invocar a si
mesmo repetidamente at que certa condi!o seja satisfeita e ele
terminado, que um mtodo comum em programa!o funcional.
L6gi)o A um algoritmo pode ser visto como uma dedu!o lgica
controlada.
Serial o! paralelo A algoritmos s!o geralmente assumidos por
serem e3ecutados instru!o a instru!o individualmente, como uma
lista de e3ecu!o, o que constitui um algoritmo serial. -or outro
lado e3istem algoritmos e3ecutados paralelamente.
Determin7sti)o o! n'o-determin7sti)o A algoritmos
determinsticos resolvem o pro+lema com uma decis!o e3ata a
cada passo enquanto algoritmos n!o5determinstico resolvem o
pro+lema ao deduzir os mel2ores passos atravs de estimativas so+
forma de 2eursticas.
E8ato o! apro8imado A enquanto alguns algoritmos encontram
uma resposta e3ata, algoritmos de apro3ima!o procuram uma
resposta pr3ima a verdadeira solu!o.
*or paradigma:
Divis'o e )on-!ista A reduzem repetidamente o pro+lema em
su+5pro+lemas, geralmente de forma recursiva, at que o su+5
pro+lema pequeno o suficiente para ser resolvido.
*rograma$'o din9mi)a A pode5se utilizar para evitar o re5clculo
de solu!o j resolvidas anteriormente.
Algoritmo ganan)ioso A similar a programa!o din=mica, mas
difere na medida em que as solu<es dos su+5pro+lemas n!o
precisam ser con2ecidas a cada passo.
*rograma$'o linear
5ed!$'o A resolve o pro+lema ao transform5lo em outro
pro+lema.
1!s)a e en!mera$'o A vrios pro+lemas podem ser modelados
atravs de grafos.
*aradigma :e!r7sti)o e probabil7sti)o A realizam escol2as
aleatoriamente.
*or )ampo de est!do: possui seus prprios pro+lemas e respectivos
algoritmos adequados para resolv;5los.
*or )omple8idade: s!o e3ecutados em tempo linear, de acordo com a
entrada, enquanto outros s!o e3ecutados em tempo e3ponencial ou at
mesmo nunca terminam de serem e3ecutados.
Estr!t!ra de Dados: um modo particular de armazenamento e
organiza!o de dados em um computador de modo que possam ser
usados eficientemente.
#s estruturadas de dados s!o c2amadas tipos de dados compostos que
dividem5se em :omog.neos %vetores e matri&es( e :eterog.neos
%registros(.
#s estruturas 2omog;neas s!o conjuntos de dados formados pelo
mesmo tipo de dado primitivo. #s estruturas 2eterog;neas s!o
conjuntos de dados formados por tipos de dados primitivos diferentes
(campo de registro( em uma mesma estrutura.
Estrutura de dados clssicas:
Vetores o! arra;s A s!o estruturas de dados lineares e estticas,
isto , s!o compostas por um n?mero fi3o (finito( de elementos de
um determinado tipo de dados.
Lista A uma estrutura de dados linear.
/ila A s!o estruturas +aseadas no princpio %@%* (first in, first out(,
em que os elementos que foram inseridos no incio s!o os primeiros
a serem removidos. -ossui duas fun<es +sicas: EEG,ETE, que
adiciona um elemento no final da fila, e $EG,E,E, que remove o
elemento no incio da fila.
*il:a A s!o estruturas +aseadas no princpio :@%* (last in, first
out(, no qual os dados que foram inseridos por ?ltimo na pil2a
ser!o os primeiros a serem removidos.
%un<es que se aplicam a todas as pil2as: -,"6, que insere um
dado no topo da pil2a, e -*-, que remove o item no topo da pil2a.
<rvores A uma estrutura de dados em que cada elemento tem
um ou mais elementos associados, podendo definir5se uma rvore
como:
uma estrutura (uma rvore()
um n (raiz()
n!o e3iste rvores vazias, no mnimo 2aver um n raiz.
<rvores binrias A uma rvore em que cada n tem no m3imo
dois fil2os.
*rograma$'o estr!t!rada: uma forma de programa!o de
computadores que preconiza que todos os programas possveis podem
ser reduzidos a apenas tr;s estruturas: sequ;ncia, decis!o e itera!o.
Se-!.n)ia A onde uma tarefa e3ecutada aps a outra,
linearmente.
De)is'o A onde, a partir de um teste lgico, determinado trec2o de
cdigo e3ecutado, ou n!o.
Itera$'o A onde, a partir de um teste lgico, determinado trec2o
de cdigo repetido por um n?mero finito de vezes.
# programa!o estruturada orienta os programadores para a cria!o de
estruturas simples em seus programas, usando as su+rotinas e as
fun<es.
* principal o+jetivo da programa!o estruturada produzir um
programa de alta qualidade a +ai3o custo.
#s caractersticas mais notveis de um programa estruturado s!o sua
forma 2ierarquizada e o conjunto reduzido de suas estruturas +sicas de
controle.
Dantagens
-rov; um mel2or controle so+re o flu3o de e3ecu!o do cdigo,
quando comparada com a programa!o imperativa)
> fcil de se entender, sendo amplamente usada em cursos
introdutrios de programa!o.
$esvantagens
#inda se foca em como a tarefa deve ser feita e n!o em o que deve
ser feito)
Tende a gerar cdigos confusos, onde tratamentos dos dados s!o
misturados com o comportamento dos programas.
*adr=es de projetos %Design *atterns(: descrevem solu<es para
pro+lemas recorrentes no desenvolvimento de sistemas de soft.are
orientados a o+jetos. ,m padr!o de projeto esta+elece um nome e
define o pro+lema, a solu!o, quando aplicar esta solu!o e suas
conseqL;ncias.
ara)ter7sti)as de !m padr'o de projetos:
En)aps!lamento: um padr!o de projeto encapsula um
pro+lemaHsolu!o +em definida.
>eneralidade: todo padr!o deve permitir a constru!o de outras
realiza<es a partir deste padr!o.
E-!il7brio: quando um padr!o utilizado em uma aplica!o, o
equil+rio d a raz!o, relacionada com cada uma das restri<es
envolvidas, para cada passo do projeto.
Abstra$'o: os padr<es representam a+stra<es da e3peri;ncia
emprica ou do con2ecimento cotidiano.
Abert!ra: um padr!o deve permitir a sua e3tens!o para nveis
mais +ai3os de detal2e.
ombinatoriedade: os padr<es s!o relacionados
2ierarquicamente. -adr<es de alto nvel podem ser compostos ou
relacionados com padr<es que endeream pro+lemas de nvel mais
+ai3o.
,m padr!o deve ser descrito em cinco partes:
Nome: uma descri!o da solu!o, mais do que do pro+lema ou do
conte3to.
E8emplo: uma ou mais figuras, diagramas ou descri<es que
ilustrem um prottipo de aplica!o.
onte8to: a descri!o das situa<es so+ as quais o padr!o se
aplica.
*roblema: uma descri!o das foras e restri<es envolvidas e
como elas interagem.
Sol!$'o: relacionamentos estticos e regras din=micas
descrevendo como construir artefatos de acordo com o padr!o,
freqLentemente citando varia<es e formas de ajustar a solu!o
segundo as circunst=ncias. @nclui refer;ncias a outras solu<es e o
relacionamento com outros padr<es de nvel mais +ai3o ou mais
alto.
Tipos de padr=es
*adr=es >o/: s!o organizados em famlias de padr<es: de cria!o,
estruturais e comportamentais. *s padr<es de cria!o s!o
relacionados F cria!o de o+jetos, os estruturais tratam das
associa<es entre classes e o+jetos e os comportamentais das
intera<es e divis<es de responsa+ilidades entre as classes ou
o+jetos.
,m padr!o Mo% tam+m classificado segundo o seu escopo: de
classe ou de o+jeto. Eos padr<es com escopo de classe os
relacionamentos que definem este padr!o s!o definidos atravs de
2erana e em tempo de compila!o. Eos padr<es de escopo de
o+jeto o padr!o encontrado no relacionamento entre os o+jetos
definidos em tempo de e3ecu!o.
*adr=es >5AS*: refletem prticas mais pontuais da aplica!o de
tcnicas ** e ocorrem na implementa!o de vrios padr<es Mo%.
Metodologias geis: um conjunto de metodologias de
desenvolvimento de soft.are. * desenvolvimento gil, tal como
qualquer metodologia de soft.are, providencia uma estrutura conceitual
para reger projetos de engen2aria de soft.are.
# maioria dos mtodos geis tenta minimizar o risco pelo
desenvolvimento do soft.are em curtos perodos, c2amados de itera!o,
os quais gastam tipicamente menos de uma semana a at quatro.
/ada itera!o inclui todas as tarefas necessrias para implantar o mini5
incremento da nova funcionalidade: planejamento, anlise de requisitos,
projeto, codifica!o, teste e documenta!o.
,m projeto de soft.are gil +usca a capacidade de implantar uma nova
vers!o do soft.are ao fim de cada itera!o, etapa a qual a equipe
responsvel reavalia as prioridades do projeto.
&todos geis enfatizam comunica<es em tempo real,
preferencialmente face a face, a documentos escritos.
*s prin)7pios do desenvolvimento gil valorizam:
Marantir a satisfa!o do consumidor entregando rapidamente e
continuamente soft.ares funcionais)
"oft.ares funcionais s!o entregues freqLentemente (semanas, ao
invs de meses()
"oft.ares funcionais s!o a principal medida de progresso do
projeto)
#t mesmo mudanas tardias de escopo no projeto s!o +em5
vindas)
/oopera!o constante entre pessoas que entendem do NnegcioO e
desenvolvedores)
-rojetos surgem atravs de indivduos motivados, entre os quais
e3iste rela!o de confiana)
$esign do soft.are deve prezar pela e3cel;ncia tcnica)
"implicidade)
'pida adapta!o Fs mudanas)
@ndivduos e intera<es mais do que processos e ferramentas)
"oft.are funcional mais do que documenta!o e3tensa)
/ola+ora!o com clientes mais do que negocia!o de contratos)
'esponder a mudanas mais do que seguir um plano.
Desenvolvimento gil 8 desenvolvimento dire)ionado ao
planejamento
Ambiente ideal para o desenvolvimento gil:
Cai3a criticidade
$esenvolvedores s;nior
&udanas freqLentes de requisitos
-equeno n?mero de desenvolvedores
/ultura que tem sucesso no caos.
Ambiente ideal para o desenvolvimento dire)ionado ao
planejamento:
#lta criticidade
$esenvolvedores 4unior
Cai3a mudana nos requisitos
Mrande n?mero de desenvolvedores
/ultura que procura a ordem.
,m mtodo deve ser +astante fle3vel para permitir ajustes durante a
e3ecu!o do projeto. 6 tr;s pro+lemas c2aves relacionados ao tpico
de adapta!o dos mtodos geis: a apli)abilidade dos m"todos geis
(no geral e no particular(, e finalmente, o s!porte ao geren)iamento
de projeto.
Metodologias:
*rograma$'o e8trema %?*(: uma metodologia gil para
equipes pequenas e mdias e que ir!o desenvolver soft.are com
requisitos vagos e em constante mudana.
S)r!m: um processo de desenvolvimento iterativo e incremental
para gerenciamento de projetos e desenvolvimento gil de
soft.are.
/eat!re Driven Development %/DD(
DSDM
Adaptive So+t0are Development
r;stal
*ragmati) *rogramming
Test Driven Development
Sistemas de )ontrole de vers'o: um soft.are com a finalidade de
gerenciar diferentes vers<es no desenvolvimento de um documento
qualquer. "!o comumente utilizados para controlar as diferentes vers<es
A 2istrico e desenvolvimento A dos cdigos5fontes e tam+m da
documenta!o.
Entre os mais comuns encontram5se as sol!$=es livres: /D",
&ercurial, Mit e "DE) e as )omer)iais: "ource"afe, -D/" ("erena( e
/lear/ase.
-rincipais vantagens:
/ontrole do 2istrico)
Tra+al2o em equipe)
&arca!o e resgate de vers<es estveis)
'amifica!o de projeto.
# principal fun!o do sistema de controle de vers!o armazenar todo o
2istrico de desenvolvimento do documento, desde o primeiro envio at
sua ?ltima vers!o. @sso permite que seja possvel resgatar uma
determinada vers!o de qualquer data mais antiga, evitando desperdcio
de tempo no desenvolvimento para desfazer altera<es quando se toma
algum rumo equivocado.
@ A 1ANOS DE DADOS
Cancos de dados uma cole!o de dados inter5relacionados,
representando informa<es so+re um domnio especfico.
Abstra$'o e modelo de dados: o sistema de +ancos de dados deve
prover uma vis!o a+strata de dados para os usurios.
# a+stra!o se d em tr;s nveis:
N7vel +7si)o: nvel mais +ai3o de a+stra!o. $escreve como os
dados est!o realmente armazenados, englo+ando estruturas
comple3as de +ai3o nvel.
N7vel )on)eit!al: descreve quais dados est!o armazenados e seus
relacionamentos. Eeste nvel, o +anco de dados descrito atravs
de estruturas relativamente simples, que podem envolver
estruturas comple3as no nvel fsico.
N7vel de vis=es do !s!rio: descreve partes do +anco de dados,
de acordo com as necessidades de cada usurio, individualmente.
Modelos l6gi)os de dados: conjunto de ferramentas conceituais para
a descri!o dos dados, dos relacionamentos entre os mesmos e das
restri<es de consist;ncia e integridade.
1aseados em objetos: descri!o dos dados nos nveis conceitual
e de vis<es de usurios. E8emplos: entidade5relacionamento e
orientado a o+jetos.
Eo modelo orientado a o+jetos, cdigo e3ecutvel parte integrante
do modelo de dados.
1aseados em registros: descri!o dos dados nos nveis
conceitual e de vis<es de usurios) o +anco de dados estruturado
em registros de formatos fi3os, de diversos tipos) cada tipo de
registro tem sua cole!o de atri+utos) 2 linguagens para
e3pressar consultas e atualiza<es no +anco de dados. E8emplos:
relacional, rede e 2ierrquico.
Eo modelo relacional, dados e relacionamentos entre dados s!o
representados por ta+elas, cada uma com suas colunas especficas.
Sistemas geren)iadores de ban)os de dados - S>1D: o soft.are
responsvel pelo gerenciamento (armazenamento e recupera!o( dos
dados no +anco de dados. "eu principal o+jetivo retirar da aplica!o
cliente a responsa+ilidade de gerenciar o acesso, a manipula!o e a
organiza!o dos dados.
* "MC$ disponi+iliza uma interface para que seus clientes possam
incluir, alterar ou consultar dados previamente armazenados.
E3emplos: &0"G:, *racle, -ostgre"G:, "G:5"erver, etc.
Ling!agens de de+ini$'o de dados %DDL(: linguagem que define as
aplica<es, arquivos e campos que ir!o compor o +anco de dados
(comandos de cria!o e atualiza!o da estrutura dos campos dos
arquivos(.
5EATE: utilizada para construir um novo +anco de dados, ta+ela,
ndice ou consulta armazenada.
D5O*: remove um +anco de dados, ta+ela, ndice ou vis!o
e3istente. ,ma declara!o $rop em "G: remove um o+jeto de um
sistema de gerenciamento de +anco de dados relacional.
ALTE5: modifica um o+jeto e3istente do +anco de dados. ,ma
declara!o #lter em "G: altera as propriedades de um o+jeto
dentro de um sistema de gerenciamento de +anco de dados
relacional.
Ling!agem de manip!la$'o de dados %DML(: linguagem que define
os comandos de manipula!o e opera!o dos dados (comandos de
consulta e atualiza!o dos dados dos arquivos(.
INSE5T: permite a inclus!o de novas lin2as nas ta+elas)
,*DATE: altera os valores j cadastrados)
* comando ,pdate contm a clusula Where, de forma a restringir
o conjunto dos registros que ser!o processados pelo comando.
DELETE: remove dados j cadastrados)
SELET: usado para consultar o C$ e retornar dados que
satisfazem a determinada e3press!o em um comando.
Ling!agem de )ons!lta A SBL %DBL(: a parte da "G: mais
utilizada. * comando "elect permite ao usurio especificar um consulta
(7quer08( uma descri!o do resultado desejado. Esse comando
composto de vrias clusulas e op<es, possi+ilitando ela+orar consultas
das mais simples Fs mais ela+oradas.
l!s!las: as clusulas s!o condi<es de modifica!o utilizadas
para definir os dados que deseja selecionar ou modificar em uma
consulta.
/5OM: utilizada para especificar a ta+ela que se vai selecionar
os registros)
C#E5E: utilizada para especificar as condi<es que devem
reunir os registros que ser!o selecionados)
>5O,* 1D: utilizada para separar os registros selecionados
em grupos especficos)
#AVIN>: utilizada para e3pressar a condi!o que deve
satisfazer cada grupo)
O5DE5 1D: utilizada para ordenar os registros selecionados
com uma ordem especfica)
DISTINT: utilizada para selecionar dados sem repeti!o.
Operadores l6gi)os:
AND A E lgico: avalia as condi<es e devolve um valor
verdadeiro caso am+os sejam corretos.
O5 A *, lgico: avalia as condi<es e devolve um valor
verdadeiro se algum for correto.
NOT A Eega!o lgica: devolve o valor contrrio da
e3press!o.
Operadores rela)ionais: s!o usados para realizar compara<es
entre valores, em estruturas de controle.
E : &enor)
F : &aior)
EG : &enor ou igual)
FG : &aior ou igual)
G : @gual)
HG : $iferente)
1ETCEEN: utilizado para especificar um intervalo de valores)
LIIE: utilizado na compara!o de um modelo e para
especificar registros de um +anco de dados.
/!n$=es de agrega$'o
AV>: utilizada para calcular a mdia dos valores de um campo
determinado)
O,NT: utilizada para devolver o n?mero de registros da
sele!o)
S,M: utilizada para devolver a soma de todos os valores de
um campo determinado)
MA?: utilizada para devolver o valor mais alto de um campo
especificado)
MIN: utilizada para devolver o valor mais +ai3o de um campo
especificado.
on)eitos e )omandos *LSBL: uma linguagem estrutural estendida
da "G: que tem por o+jetivo au3iliar as tarefas de programa!o no
"MC$ *racle. Ela incorpora F "G: caractersticas procedurais, como os
+enefcios e facilidades de controle de flu3o de programas que as
mel2ores linguagens possuem. -or e3emplo, loops estruturados (for,
.2ile( e controle de decis!o (if t2en else(.
> a linguagem +sica para criar programas comple3os e poderosos, n!o
s no +anco de dados, mas tam+m em diversas ferramentas *racle.
Vantagens:
"uporte a mdulos de linguagem)
/ursores)
Estrutura de "ele!o)
Estrutura de :oop)
/om+ina!o com "G: declarativo)
/om+ina!o com transa<es)
Tratamento de e3ce<es)
"uporte a escopo de variveis)
"uporte aos tipos primitivos, comple3os e domnios (definidos pelo
usurio(.
Estr!t!ra bsi)a do *LJSBL:
DELA5E: se!o para declara!o de variveis, tipos e
su+programas locais)
SELETION: se!o para escol2er lin2as em uma ta+ela)
1E>IN: se!o e3ecutvel. Eesta se!o ficam as instru<es
procedimentais e "G:. Est a ?nica se!o do +loco que
indispensvel e o+rigatria.
E?E*TION: se!oHsetor onde ficam as instru<es de tratamento
de erro.
1an)o de dados te8t!ais: pode ser entendido como um conjunto de
documentos, ou uma larga cole!o de registros, nos quais cada registro
ir possuir somente uma lista de palavras de um taman2o qualquer, ou
seja, n!o necessariamente determinado ou com taman2o fi3o.
K A LIN>,A>ENS DE *5O>5AMALMO
> o mtodo padronizado para e3pressar instru<es para um computador.
> um conjunto de regras sintticas e sem=nticas usadas para definir um
programa de computador.
* conjunto de palavras (toPens(, compostos de acordo com essas
regras, constituem o )6digo +onte de um soft.are. Esse cdigo fonte
depois traduzido para cdigo de mquina, que e3ecutado pelo
processador.
Tipos de dados elementares e estr!t!rados
/!n$=es e pro)edimentos
Estr!t!ra de )ontrole de +l!8o
Montadores3 )ompiladores3 ligadores e interpretadores
Montador: um montador (em ingl;s: assembler, ou assem+lador( um
programa de computador que efetua a montagem (tradu!o( de uma
linguagem de montagem (assembly( para cdigo de mquina.
* processo de montagem rece+e como entrada um arquivo te3to com o
cdigo fonte do programa em assembly e gera como sada um arquivo
+inrio, o mdulo o+jeto, contendo o cdigo de mquina e outras
informa<es relevantes para a e3ecu!o do cdigo gerado.
Em geral, montadores oferecem facilidades alm da simples tradu!o de
cdigo assembly para cdigo de mquina. #lm das instru<es do
processador, uma programa fonte para o montador pode conter diversas
ou pse!do-instr!$=es definidas para o montador, assim como macro5
instru<es, uma seqL;ncia de instru<es que ser inserida no cdigo ao
ser referenciada pelo nome.
,m montador que suporte a defini!o e utiliza!o de macro5instru<es
usualmente denominado um ma)ro-montador (macro-assembler).
,m montador m!ltiplata+orma (cross-assembler) um montador que
permite gerar cdigo para um processador5alvo diferente daquele no
qual o montador est sendo e3ecutado.
ompilador: um programa de computador (ou um grupo de
programas( que, a partir de um cdigo fonte escrito em uma linguagem
compilada, cria um programa semanticamente equivalente, porm
escrito em outra linguagem, cdigo o+jeto.
> usado principalmente para os programas que traduzem o cdigo de
fonte de uma linguagem de programa!o de alto n7vel para uma
linguagem de programa!o de bai8o n7vel (por e3emplo, linguagem de
montagem assembly ou cdigo de mquina(.
* processo de compila!o composto de anlise e s7ntese.
# anlise tem como o+jetivo entender o cdigo fonte e represent5lo
em uma estrutura intermediria.
# anlise pode ser su+dividida ainda em anlise l"8i)a, anlise
sintti)a e anlise sem9nti)a.
# s7ntese mais variada, podendo ser composta pelas etapas de
gera!o de cdigo intermedirio, optimiza!o de cdigo e gera!o de
cdigo final (ou cdigo de mquina(, e somente esta ?ltima etapa
o+rigatria.
Em linguagens :7bridas, o compilador tem o papel de converter o
cdigo fonte em um cdigo c2amado de byte code, que uma
linguagem de +ai3o nvel. ,m e3emplo deste comportamento o do
compilador da linguagem 4ava que, em vez de gerar cdigo da mquina
2ospedeira (onde se est e3ecutando o compilador(, gera cdigo
c2amado Java Bytecode.
,m compilador c2amado de Just-in-time compiler %NIT( quando seu
processo de compila!o acontece apenas quando o cdigo c2amado.
&uitos compiladores incluem um pr5processador. ,m pr5processador
normalmente responsvel por mudanas no cdigo fonte destinadas de
acordo com decis<es tomadas em tempo de compila!o.
*utra parte separada do compilador que muito usurios v;em como
integrada o lin2er, cuja fun!o unir vrios programas j compilados
de uma forma independente e unific5los em um programa e3ecutvel.
/ases da ompila$'o
Analise L"8i)a: a primeira fase do compilador. # fun!o do
analisador l3ico, tam+m denominado scanner, ler o cdigo
fonte, caracter a caracter, +uscando a separa!o e identifica!o dos
elementos componentes do programa fonte, denominados sm+olos
l3icos ou tokens. > tam+m de responsa+ilidade desta fase a
elimina!o de elementos 7decorativos8 do programa, tais como
espaos em +ranco, marcas de formata!o de te3to e comentrios.
Anlise Sintti)a: ou gramatical o processo de se determinar se
uma cadeia de sm+olos l3icos pode ser gerada por uma
gramtica. Eo caso de analisadores sintticos top-down, temos a
op!o de escrev;5los F m!o ou ger5los de forma automtica, mas
os analisadores bottom-up s podem ser gerados
automaticamente.
Anlise Sem9nti)a: as anlises l3ica e sinttica n!o est!o
preocupadas com o significado ou sem=ntica dos programas que
elas processam. * papel do analisador sem=ntico prover mtodos
pelos quais as estruturas construdas pelo analisador sinttico
possam ser avaliadas ou e3ecutadas.
>era$'o de 6digo Intermedirio: na fase de gera!o de cdigo
intermedirio, ocorre a transforma!o da rvore sinttica em uma
representa!o intermediria do cdigo fonte.
Optimi&a$'o de 6digo: a estratgia de e3aminar o cdigo
intermedirio, produzido durante a fase de gera!o de cdigo com
o+jetivo de produzir, atravs de algumas tcnicas, um cdigo que
e3ecute com +astante efici;ncia.
>era$'o de 6digo /inal: a fase de gera!o de cdigo final a
?ltima fase da compila!o. # gera!o de um +om cdigo o+jeto
difcil devido aos detal2es particulares das mquinas para os quais
o cdigo gerado. /ontudo uma fase importante, pois uma +oa
gera!o de cdigo pode ser, por e3emplo, duas vezes mais rpida
que um algoritmo de gera!o de cdigo ineficiente.
Ligador: :igador (Dinculador no Crasil( ou :inPer ou :inPeditor, em
informtica, um programa que liga o+jetos gerados por um compilador
ou montador, formando assim o fic2eiro e3ecutvel final. * tra+al2o de
um ligador +astante simples: Esta+elece a amarra!o ou vincula!o
entre refer;ncias mais a+stratas para refer;ncias mais concretas.
Interpretador: s!o programas de computador que l;em um cdigo
fonte de uma linguagem de programa!o interpretada e o converte em
cdigo e3ecutvel. "eu funcionamento pode variar de acordo com a
implementa!o. Em alguns casos, o interpretador l; lin2a5por5lin2a e
converte em cdigo o+jeto (ou +0tecode( F medida que vai e3ecutando o
programa e, em outros casos, converte o cdigo fonte por inteiro e
depois o e3ecuta.
E8emplo de ling!agens interpretadas:
C#"@/
Cas2
-erl
-6-
-0t2on
Eup2oria
%ort2
4ava"cript
:ogo
:isp
:ua
&,&-"
'u+0
6asPell
ara)teri&a$'o das prin)ipais ling!agens de programa$'o:
OO: uma linguagem de programa!o multi5paradigma e de uso
geral. # linguagem considerada de mdio nvel, pois com+ina
caractersticas de linguagens de alto e +ai3o nveis.
Cjarne "troustrup desenvolveu o /BB como um adicional F linguagem
/. Eovas caractersticas foram adicionadas com o tempo, como fun<es
virtuais, so+recarga de operadores, 2erana m?ltipla, ga+aritos e
tratamento de e3ce<es.
E3tens!o: ./--
ara)ter7sti)as
* /BB desenvolvido para ser uma linguagem tipada
estaticamente e de propsito geral que t!o eficiente e porttil
quanto o /)
> desenvolvido para suportar m?ltiplos paradigmas)
> desenvolvido para fornecer ao programador escol2as, mesmo que
seja possvel ao programador escol2er a op!o errada)
> desenvolvido para ser o mais compatvel com /)
Evita fornecer facilidade que s!o especficas a certas plataformas
ou a certos grupos de desenvolvedores)
E!o e3ige overhead para facilidades que n!o s!o utilizadas)
> desenvolvido para ser utilizado mesmo sem um am+iente de
desenvolvimento sofisticado.
# +i+lioteca padr!o do /BB incorpora a +i+lioteca padr!o do / com
algumas pequenas modifica<es para tra+al2ar mel2or com as novas
funcionalidades criadas pela linguagem. *utra grande parte da +i+lioteca
composta pela +i+lioteca padr!o de ga+aritos ("T:(. Ela fornece
ferramentas ?teis como containers (vetores, listas, entre outros(,
algoritmos (filtragem de elementos de containers, +usca, ordena!o,
entre outros( e iteradores (ponteiros inteligentes genricos para acessar
tais containers e interlig5los aos algoritmos(.
/omo em /, os mdulos da +i+lioteca s!o acessados utilizando a diretiva
Pin)l!deQ ao todo s!o fornecidos QR ca+eal2os5padr!o, dos quais 9R
est!o em deprecia!o.
Operadores
*s operadores em /BB s!o um conjunto de todos os operadores do /
mais novas adi<es F linguagem. ,m grupo de novos operadores do /B
B s!o os relativos F convers!o de tipo de dado, e consistem em
)onstR)ast, stati)R)ast, d;nami)R)ast e reinterpretR)ast.
*utro grupo de novos operadores s!o os relativos F aloca!o de
memria, e consistem em ne0 e delete.
Ling!agem de M-!ina
/rame0or2s4 Str!ts 23 Spring3 #ibernate @3 1oost3 Bt e Ci)2et
Ling!agens de S)ripts4 Aja83 Nava S)ript3 1as:
"!o linguagens de programa!o e3ecutadas do interior de programas
eHou de outras linguagens de programa!o, n!o se restringindo a esses
am+ientes. #s linguagens de script servem para estender a
funcionalidade de um programa eHou control5lo, acessando sua #-@ e,
s!o freqLentemente usadas como ferramentas de configura!o e
instala!o em sistemas operacionais ("2ell script(, como por e3emplo,
em alguns sistemas operacionais da famlia :inu3, que usam a
linguagem +as2.
Todas as linguagens de script s!o linguagens interpretadas, porm, nem
todas as linguagens interpretadas s!o linguagens de script. *s
programas escritos em linguagens de script s!o, normalmente, referidos
como scripts.
ANA? (#s0nc2ronous 4avascript and 1&:(
> o uso metodolgico de tecnologias como 4avascript e 1&:, providas
por navegadores, para tornar pginas Se+ mais interativas com o
usurio, utilizando5se de solicita<es assncronas de informa<es.
* #ja3 incorpora em seu modelo:
E3posi!o e intera!o din=mica usando o $*&)
@nterc=m+io e manipula!o de dados usando 1&: e 1":T)
'ecupera!o assncrona de dados usando o o+jeto 1&:6ttp'equest
e 1&:6ttp'esponse)
4ava"cript fazendo a jun!o entre os elementos.
#s principais vantagens das aplica<es que utilizam #ja3 para
determinada requisi<es que os dados trafegados pela rede s!o
reduzidos e o usurio n!o precisa aguardar a pgina ser recarregada a
cada intera!o com o servidor.
Os -!atros prin)7pios de Aja8:
* navegador 2ospeda uma aplica!o, e n!o conte?do)
* servidor fornece dados, e n!o conte?do)
# intera!o do utilizador com a aplica!o pode ser fle3vel e
contnua) e
# codifica!o real requer disciplina.
Alg!mas te)nologias -!e +a&em !so de Aja8:
Moogle eart2)
Moogle maps)
#SC
NavaS)ript
> uma linguagem de script +aseada em E/&#"cript padronizada pela
Ecma internacional nas especifica<es E/&#5KQK e @"*H@E/ 9QKQK e
atualmente a principal linguagem para programa!o client5side em
navegadores .e+. %oi conce+ida para ser uma linguagem script com
orienta!o a o+jetos +aseada em prottipos, tipagem fraca e din=mica e
fun<es de primeira classe. -ossui suporte F programa!o funcional e
apresenta recursos como fec2amentos e fun<es de alta ordem
comumente indisponveis em linguagens populares como 4ava e /BB.
ara)ter7sti)as
Imperativa e Estr!t!rada: 4ava"cript suporta os elementos de
sinta3e de programa!o estruturada da linguagem / (por e3emplo,
if, while, switch(.
Din9mi)a:
Tipagem din9mi)a: como na maioria das linguagens de
script, tipos s!o associados com valores, n!o com variveis.
1aseada em objetos: 4ava"cript quase inteiramente
+aseada em o+jetos.
Avalia$'o em tempo de e8e)!$'o: 4ava"cript inclui a
fun!o eval que consegue e3ecutar em tempo de e3ecu!o
comandos da linguagem que estejam escritos em uma string.
/!n)ional:
/!n$=es de primeira )lasse: no 4ava"cript as fun<es s!o
de primeira classe, isto , s!o o+jetos que possuem
propriedades e mtodos, e podem ser passados como
argumentos, serem atri+udos a variveis ou retornados como
qualquer o+jeto.
/!n$=es anin:adas: s!o fun<es definidas dentro de outras
fun<es. "!o criadas cada vez que a fun!o que as contm
(e3terna( invocada.
/e):amentos: 4ava"cript permite que fun<es anin2adas
sejam criadas com o escopo l3ico no momento de sua
defini!o e possui o operador (( para invoc5las em outro
momento.
1aseada em *rot6tipos:
*rot6tipos: 4ava"cript usa prottipos em vez de classes para
o mecanismo 2erana.
/!n$=es e m"todos: diferente de muitas linguagens
orientadas a o+jetos, n!o 2 distin!o entre a defini!o de
uma fun!o e a defini!o de um mtodo no 4ava"cript. #
distin!o ocorre durante a c2amada da fun!o) a fun!o pode
ser c2amada como um mtodo. Guando uma fun!o
c2amada como mtodo de um o+jeto, a Pe0.ord t2is da
fun!o associada Fquele o+jeto via tal invoca!o.
,so em pginas Ceb
* uso primrio de 4ava"cript escrever fun<es que s!o em+arcadas ou
includas em pginas 6T&: e que interagem com o $ocument *+ject
&odel($*&( da pgina.
ompatibilidade
4 que 4ava"cript roda em am+ientes variveis, uma parte importante
do teste e depura!o de seu cdigo consiste na verifica!o de
compati+ilidade entre navegadores.
A)essibilidade
#ssumindo que o usurio n!o ten2a desa+ilitado sua e3ecu!o, pode5se
utilizar 4ava"cript do lado cliente para mel2orar a e3peri;ncia de um
usurio com defici;ncia fsica ou visual.
Seg!ran$a
4ava"cript e o $*& representam uma potencialidade para
programadores maliciosos escreverem scripts para rodarem em um
cliente via .e+.
V!lnerabilidades inter-sites
,m pro+lema comum relacionado F segurana a escrita de scripts
inter5sites, ou 1"", uma viola!o da regra da mesma origem.
1as:
> um interpretador de comandos, uma espcie de tradutor entre o
sistema operacional e o usurio, normalmente con2ecido como shell.
-ermite a e3ecu!o de seqLencias de comandos direto no prompt do
sistema ou escritas em arquivos de te3to, con2ecidos como shell scripts.
* Cas2 o s2ell desenvolvido para o projeto ME,, da %ree "oft.are
%oundation, que se tornou padr!o nas vrias distri+ui<es :inu3.
Ar-!ivos de Ambiente
Sbas:Rpro+ile: este arquivo fica localizado no diretrio pessoal de
cada usurio. > e3ecutado por s2ells que usam autentica!o (nome
e sen2a(.
Sbas:r): possui as mesmas caractersticas do .+as2Tprofile mas
e3ecutado por s2ells que n!o requerem autentica!o (como uma
se!o de terminal no 1(. *s comandos deste arquivo s!o
e3ecutados no momento que o usurio inicia um s2ell com as
caractersticas acima.
Jet)Jpro+ile: este arquivo contm comandos que s!o e3ecutados
para todos os usurios do sistema no momento da autentica!o.
"omente o usurio root pode ter permiss!o para modificar este
arquivo.

Potrebbero piacerti anche