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/KQK 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.