Você está na página 1de 35

___________________________________________________________________

SISTEMA DE ENSINO PRESENCIAL CONECTADO ANLISE


E DESENVOLVIMENTO DE SISTEMAS
RODRIGO ANTUNES LIMA

PRODUO TEXTUAL INTERDISCIPLINAR INDIVIDUAL


4 SEMESTRE

DESENVOLVIMENTO DE SISTEMAS II

CORNLIO PROCPIO
2015

RODRIGO ANTUNES LIMA


PRODUO TEXTUAL INTERDISCIPLINAR INDIVIDUAL
4 SEMESTRE

DESENVOLVIMENTO DE SISTEMAS II

Trabalho interdisciplinar:
Anlise Orientada a Objetos II
Banco de Dados II
Programao Orientada a Objetos
Programao Web I
Seminrio IV
Apresentado a Universidade Norte do Paran UNOPAR
Professores:
Luis Claudio Perini
Roberto Y. Nishmura
Mrcio Roberto Chiaveli
Veronice de Freitas
Adriane Ap. Loper

CORNLIO PROCPIO

2
3
4
4.1
4.2
4.3
4.4
5
6

INTRODUO...........................................................................
OBJETIVO.................................................................................
DESENVOLVIMENTO...............................................................
Anlise Orientada a Objetos II...................................................
Banco de Dados II.....................................................................
Programao Orientada a Objetos............................................
Programao Web I...................................................................
CONCLUSO............................................................................
REFERNCIAS..........................................................................

2015
SUMRIO

3
4
5
5
11
15
26
32
33

LISTA DE ILUSTRAES

5
Figura1 Diagrama de Caso de Uso...........................................
Figura2 Diamagrama de Classes..............................................
Figura3 Diagrama de Objetos....................................................
Figura4 Diagrama de Colaborao............................................
Figura5 Diagrama de Sequncia...............................................
Figura6 Diagrama de Atividades................................................
Figura7 Diagrama de Estados...................................................
Figura8 Diagrama de Componentes..........................................
Figura9 Diagrama de Depurao...............................................
Figura10 Diagrama de Pacotes.................................................
Figura11 Modelo Relacional Normalizado.................................
Figura12 Polimorfismo...............................................................

6
6
7
7
8
9
9
10
10
14
22

2-INTRODUO
Seguindo o conceito das orientaes apresentadas para o trabalho,
e baseando-se nas matrias do atual semenstre, aplicarei o conceito envolvendo os
seguintes tpico, Anlise Orientada a Objetos II, Banco de Dados II, Programao
Orientada a Objetos e Programao Web I, explicando e exemplificando o contedo
de modo que supra as persepectivas.

3 OBJETIVO
Com base nos materiais disponveis para pesquisa como, ambiente
online, web aulas, livros do semestre e pesquisa na internet, farei um levantamento
de Diagramas da UML, apresentarei um DER aplicando o conceito de Modelagem
Relacional Normalizada, passarei por tpicos como Programao Orientada a
Objetos e descreverei as principais ferramentas no auxilio a Criao Web,
tecnologias essenciais na programao e customizao de pginas web.

4- DESENVOLVIMENTO
Seguindo a linha de pensamento traado, a baixo apresento o
resultado do estudo feito encima de cada tpico, apresentando um resultado que
espero suprir as necessidades pleiteadas.

4.1. Anlise Orientada a Objetos II


Diagrama de Caso de Uso
Representa o conjunto de comportamentos de alto nvel que o
sistema deve executar para um determinado ator. o diagrama mais simples, e no
h necessidade de grandes detalhamentos.
A figura abaixo ilustra um caso de uso geral, mas recomendado
que eles sejam desenvolvidos para cada cenrio. As setas de includes e extends,
indicam, respectivamente, obrigatoriedade e opo de se realizar determinada ao.

Figura 1
Diagrama de Classes
Representa uma coleo de classes e seus inter-relacionamentos.

Figura 2

Diagrama de objetos
Representa um retrato, em tempo de execuo, dos objetos do
software e seus inter-relacionamentos.

Figura 3
Diagrama de Colaborao
Representa uma coleo de objetos que trabalham em conjunto para
atender algum comportamento do sistema.

Figura 4
Diagrama de Sequncia
Representa uma perspectiva, orientada por tempo, da colaborao
entre os objetos.

Figura 5
Diagrama de Atividades
Representa o fluxo de tarefas que podem ser executadas pelo
sistema ou por um ator.

10

Figura 6

Diagrama de Estados
Representa um conjunto de estados que um objeto pode estar e os
gatilhos que estimulam a transio do objeto de um estado para outro.

11

Figura 7
Diagrama de Componentes
Representa uma coleo de componentes de software e seus interrelacionamentos.

Figura 8
Diagrama de Depurao
Representa uma coleo de componentes e mostra como esses so
distribudos em um ou vrios ns de hardware.

12

Figura 9
Diagrama de Pacotes
Representa uma coleo de outros elementos de modelagem e
diagramas

Figura 10
4.2 Banco de Dados II
MODELO RELACIONAL NORMALIZADO - MRN
Num projeto de banco de dados necessrio identificar os dados
e fazer com que estes representem eficientemente o mundo real.

13

Os 5008 Sistemas Gerenciadores de Bancos de Dados


ou SGBDR Sistemas Gerenciadores de Bancos de Dados Relacionais so
baseados no Modelo Relacional de Dados, que tem o principio de que todos os
dados so guardados em tabelas. Conceito criado por Edgar Frank Codd em
1970. Foi o primeiro modelo de dados descrito teoricamente.
O

Modelo

Entidade

Relacionamento

apresenta

algumas

situaes de difcil implementao prtica. Para resolver isso, Codd props um


processo de Normalizao de Dados (ou normalizao de tabelas) que aplica
uma srie de regras s tabelas de um banco de dados, para verificar se estas
esto corretamente projetadas. O objetivo da normalizao evitar problemas
provocados por falhas no projeto do banco de dados, eliminando redundncias e
evitando problemas com insero, eliminao e atualizao de dados.
Com a normalizao bem sucedida, o espao de armazenamento
de dados diminui, as tabelas podem ser atualizadas com maior eficincia.
Normalmente aps a aplicao das Regras de Normalizao, algumas tabelas
acabam sendo divididas em duas ou mais tabelas. Esse processo causa a
simplificao dos atributos de uma tabela, contribuindo significativamente para
a estabilidade do modelo de dado s. redu zind o-se con side ra velmen te as
necessidad es de manuteno.
Inicialmente Codd estabeleceu trs Formas Normais, chamandoas de Primeira, Segunda e Terceira Formas Normais. Uma definio mais forte
da Terceira Forma Normal foi depois proposta por Boyce e Codd, chamada
Forma Normal BoyceCodd. Depois uma Quarta e uma Quinta Formas
Normais foram propostas, baseadas nos conceitos de dependncias multivaloradas
e de juno, respectivamente:

Primeira Forma Normal, ou 1 FN


Segunda Forma Normal, ou 2FN
Terceira Forma Normal, ou 3FN
Forma Normal BoyceCodd, ou FNBC ou BCNF

Quarta Forma Normal. ou 4FN

14

Quinta Forma Normal, ou 5FN


Cada uma das formas normais representa uma condio mais forte

que a anterior na lista. mas para a maioria dos efeitos prticos. considera-se que as
bases de dados esto normalizadas se aderirem Terceira Forma Normal.
Outro ponto a notar que os projetistas de um banco de dados no
precisam normalizar at a forma normal mais alta possvel. As relaes podem
permanecer em um estado de normalizao mais baixo. como 2FN, por razes de
desempenho." (ELMASRI; NAVATHE. 2005 apud NISHIMURA. 2009. p. 81).
O processo sequencial, iniciando pela 1 FN. No possvel "pular' uma forma
normal, assim como no possvel fazer uma forma normal errada e passar para
a prxima. Se uma tabela obedece s regras de uma forma normal, esta obedece
igualmente s regras das formas normais anteriores.
Uma tabela est na Primeira Forma Normal quando seus atributos no
contm grupos de Repetio, ou tambm, a 1 FN requer que todos os valores de colunas em
uma tabela sejam atmicos (indivisveis).

necessrio

identificar

atributos

que

representam

armazenamento de um mesmo dado em locais diferentes; atributos repetidos;


atributos com mais de uma ocorrncia.
Uma 'regra de ouro" para a 1FN no misturar assuntos em uma
mesma tabela (BATTISTI, 2004). Ao identificar esses erros, os atributos devem ser
transferidos para uma nova tabela (ou tabelas), mantendo um relacionamento com a
tabela original. As tabelas resultantes devem obedecer 1 FN.
Para aplicar as regras das formas normais seguintes
necessrio entender de Dependncia Funcional. Existe dependncia funcional
X 4 Y entre dois atributos X e Y. se os valores de X determinam os valores de V.
Se em um novo registro da tabela, o valor de X se repetir.
obrigatoriamente o valor de Y tambm se repetir.
A Segunda Forma Normal ocorre quando a chame primria
composta por mais de um campo. Se uma tabela est na 1FN e possui chave
primria simples, j est automaticamente na 2FN.
Uma tabela, para estar na 2FN, no pode conter dependncia
funcional entre seus atributos no-chave com apenas parte de sua chave
primria, isto , cada atributo no-chave deve ser dependente da chave primria
inteira.

15

Com as dependncias encontradas, divide-se a tabela em duas


(ou
mais) outras tabelas, mantendo as tabelas resultantes na 2FN.
Battisti (2004) explica a Terceira Forma Normal:
Na definio dos campos de uma entidade podem ocorrer casos em
que um campo no seja dependente diretamente da chave primria ou de parle
dela. mas sim dependente de outro campo da tabela. campo este que no a Chave
Primria.
Para estar na 3FN, a relao R deve obedecer a 2FN e no pode
conter dependncias funcionais dos atributos nochave com outros atributos no
chave.
Mais uma vez se divide a tabela em outras para solucionar o
problema encontrado. As tabelas resultantes devem obedecer 3FN.A 3FN aquela
que na maioria dos casos termina o processo de normalizao.

16

Figura 11

17

4.3 - Programao Orientada a Objetos


O termo Programao Orientada a Objetos foi criado por Alan Kay,
autor da linguagem de programao Smalltalk. Mas mesmo antes da criao do
Smalltalk, algumas das ideias da POO j eram aplicadas, sendo que a primeira
linguagem a realmente utilizar estas idias foi a linguagem Simula 67, criada por Ole
Johan Dahl e Kristen Nygaard em 1967. Note que este paradigma de programao
j bastante antigo, mas s agora vem sendo aceito realmente nas grandes
empresas de desenvolvimento de Software. Alguns exemplos de linguagens
modernas utilizadas por grandes empresas em todo o mundo que adotaram essas
idias: Java, C#, C++, Object Pascal (Delphi), Ruby, Python, Lisp, ...
A maioria delas adota as idias parcialmente, dando espao para o
antigo modelo procedural de programao, como acontece no C++ por exemplo,
onde temos a possibilidade de usar POO, mas a linguagem no fora o programador
a adotar este paradigma de programao, sendo ainda possvel programar da forma
procedural tradicional. Este tipo de linguagem segue a idia de utilizar uma
linguagem previamente existente como base e adicionar novas funcionalidades a
ela.
Outras so mais "puras", sendo construidas do zero focando-se
sempre nas idias por trs da orientao a objetos como o caso das
linguagens Smalltalk, Self e IO, onde TUDO orientado a objetos.

Idias bsicas da POO


A POO foi criada para tentar aproximar o mundo real do mundo
virtual: a idia fundamental tentar simular o mundo real dentro do computador.
Para isso, nada mais natural do que utilizar Objetos, afinal, nosso mundo
composto de objetos, certo?!
Na POO o programador responsvel por moldar o mundo dos
objetos, e explicar para estes objetos como eles devem interagir entre si. Os objetos
"conversam" uns com os outros atravs do envio de mensagens, e o papel principal
do programador especificar quais sero as mensagens que cada objeto pode

18

receber, e tambm qual a ao que aquele objeto deve realizar ao receber aquela
mensagem em especfico.
Uma mensagem um pequeno texto que os objetos conseguem entender e, por
questes tcnicas, no pode conter espaos. Junto com algumas dessas
mensagens ainda possvel passar algumas informaes para o objeto
(parmetros), dessa forma, dois objetos conseguem trocar informaes entre si
facilmente.
Ficou confuso? Vamos a um exemplo prtico: imagine que voc est desenvolvendo
um software para uma locadora e esta locadora tem diversos clientes. Como
estamos tentando modelar um sistema baseado no sistema real, nada mais obvio do
que existirem objetos do tipo Clientes dentro do nosso programa, e esses Clientes
dentro do nosso programa nada mais sero do que objetos que "simulam" as
caractersticas e aes no mundo virtual que um cliente pode realizar no mundo real.
Vamos apresentar exemplo mais detalhadamente mais para frente, mas antes
precisamos especificar mais alguns conceitos.
O que uma Classe, Atributo e Mtodo? E pra que serve o Construtor?
Uma classe uma abstrao que define um tipo de objeto e o que
objetos deste determinado tipo tem dentro deles (seus atributos) e tambm define
que tipo de aes esse tipo de objeto capaz de realizar (mtodos).
normal no entender isso logo de cara, mas os conceitos de
classes e subclasses so relativamente simples: Tente pensar no conceito de
Classes utilizado na Biologia: um animal uma classe, e tem suas caractersticas:
um ser vivo capaz de pensar, precisa se alimentar para viver, etc, etc. O Ser
Humano uma sub-classe dos animais. Ele tem todas as caractersticas de um
animal, mas tambm tem algumas peculiaridades suas, no encontradas nas outras
sub-classes de animais. Os pssaros tambm so animais, mas possuem
caractersticas prprias.
Note que uma Classe no tem vida, s um conceito. Mas
os Objetos (animais, serem humanos, pssaros, etc) possuem vida. O seu cachorro
rex umObjeto (ou instncia) da classe Cachorro. A classe Cachorro no pode latir,
no pode fazer xixi no poste, ela apenas especifica e define o que um cachorro.

19

Mas Objetos do tipo Cachorro, estes sim podem latir, enterrar ossos, ter um nome
prprio, etc.
A criao de uma nova Classe dividida em duas partes: os
seus atributos e os seus mtodos. Os atributos so variveis que estaro dentro de
cada um dos objetos desta classe, e podem ser de qualquer tipo. Por exemplo, a
classe Cachorro poder ter o atributo nome que ser do tipo String. Assim,
cada Objetodesta classe ter uma varivel prpria chamada nome, que poder ter
um valor qualquer (Rex, Frodo, Atila, ...).
Mtodos sero as aes que a Classe poder realizar. Quando um
objeto desta classe receber uma mensagem de algum outro objeto contendo o nome
de um mtodo, a ao correspondente a este mtodo ser executada. Por exemplo,
caso um objeto da classe Dono envie uma mensagem para um objeto do tipo
Cachorro

falando "sente",

cachorro

ir

interpretar

esta

mensagem

conseqentemente ir executar todas as instrues que foram especificadas na


classeCachorro dentro do mtodo sente.
Um construtor tem uma funo especial: ele serve para inicializar os atributos e
executado automaticamente sempre que voc cria um novo objeto.
Quando voc especifica os atributos de uma classe, voc apenas diz
ao sistema algo como "objetos desta classe Pessoa vo ter uma varivel chamada
Nome que do tipo String, uma varivel chamada idade que do tipo inteiro, etc,
etc". Mas estas variveis no so criadas, elas s sero criadas no construtor. O
construtor tambm pode receber parmetro, desta forma, voc pode passar para o
construtor uma String contendo o nome da Pessoa que voc est criando, sua
idade, etc. Normalmente, a sintaxe algo parecido com isto:
Pessoa joao := new Pessoa( "Joo", 13 );
Este cdigo gera um novo objeto chamado joao que do tipo Pessoa e contem os
valores "Joo" como nome e 13 como idade.
Caso voc tenha entendido o texto acima, voc entendeu 99% do
que esta por trs da orientao a objetos. O mais importante entender como
funciona a comunicao entre os objetos, que sempre segue o seguinte fluxo:
-Um objeto A envia uma mensagem para o objeto B.

20

-Objeto B verifica qual foi a mensagem que recebeu e executa sua


ao correspondente. Esta ao est descrita no mtodo que corresponde a
mensagem recebida, e est dentro da Classe a qual este objeto pertence.
Exemplo
Voltando ao exemplo da locadora: Voc est desenvolvendo um
software para uma locadora. Esta locadora ter diversos clientes. Podermos ento
criar uma classe explicando para o computador o que um Cliente: para isso
precisaramos criar uma classe chamada Cliente, e com as seguintes caractersticas
(atributos):

Nome

Data de Nascimento

Profisso
Mas um cliente mais do que simples dados. Ele pode realizar

aes! E no mundo da POO, aes so descritas atravs da criao de mtodos.


Dessa forma, objetos da nossa classe Cliente poder por exemplo
executar as seguintes aes (mtodos):

AlugarFilme

DevolverFilme

ReservarFilme
Note o tempo verbal empregado ao descrever os mtodos. Fica fcil

perceber que trata-se de aes que um Cliente pode realizar.


muito importante perceber as diferenas entre Atributo e Mtodo.
No comeo normal ficar um pouco confuso, mas tenha sempre em mente:

Atributos so dados.

Mtodos descrevem possveis aes que os objetos so capazes de realizar.


Assim, nosso sistema pode ter vrios Objetos do tipo Cliente. Cada

um destes objetos possuir seu prprio nome, data de nascimento e profisso, e

21

todos eles podero realizar as mesmas aes (AlugarFilme, RevolverFilme ou


ReservarFilme).
Herana
Voltando a idia das classes na Biologia: um ser humano um
animal. Ele tem todas as caractersticas (atributos) e pode realizar todas as aes
(mtodos) de um animal. Mas alm disso, ele tem algumas caractersticas e aes
que s ele pode realizar.
Em momentos como este, utilizado a herana. Uma classe pode
estender todas as caractersticas de outra e adicionar algumas coisas a mais. Desta
forma,

classe SerHumano ser

uma

especializao

(ou subclasse)

da

classe Animal. A classe Animal seria a classe pai da serHumano, e logicamente, a


classe SerHumano seria a classe filha da Animal.
Uma classe pode sempre ter vrios filhos, mas normalmente as
linguagens de programao orientadas a objetos exigem que cada classe filha tenha
apenas uma classe pai. A linguagem C++ permite que uma classe herde as
caractersticas de varias classes (herana mltipla), mas C++ no um bom
exemplo quando se est falando sobre conceitos de POO.
Um exemplo um pouco mais prximo da nossa realidade: vamos
supor que estamos desenvolvendo um sistema para um banco. Nosso banco possui
clientes que so pessoas fsicas e pessoas jurdicas.
Poderiamos criar uma classe chamada Pessoa com os seguintes
atributos:

Nome

Idade
Em seguida, criamos 2 classes que so filhas da classe Pessoa,

chamadas PessoaFisica e PessoaJuridica. Tanto a classe PessoaFisia como a


PessoaJuridica herdariam os atributos da classe Pessoa, mas poderiam ter alguns
atributos a mais.
A classe PessoaFisica pode ter por exemplo o atributo RG enquanto
a classe PessoaJuridica poderia ter o atributo CNPJ.

22

Dessa forma, todos os objeto da classe PessoaFisica ter como atributos:

Nome

Idade

RG
E todos os objetos da classe PessoaJuridica tero os seguintes

atributos:

Nome

Idade

CNPJ
Os mtodos so anlogos: poderamos criar alguns mtodos na

classe Pessoa e criar mais alguns mtodos nas classes PessoaJuridica e


PessoaFisica. No final, todos os objetos teriam os mtodos especificados na classe
Pessoa, mas s os objetos do tipo PessoaJuridica teriam os mtodos especificados
dentro da classe PessoaJuridica, e objetos do tipo PessoaFisica teriam os mtodos
especificados na classe PessoaFisica.
Polimorfismo
Um dos conceitos mais complicados de se entender, e tambm um
dos mais importantes, o Polimorfismo. O termo polimorfismo originrio do grego
e significa "muitas formas".
Na orientao a objetos, isso significa que um mesmo tipo de objeto,
sob certas condies, pode realizar aes diferentes ao receber uma mesma
mensagem. Ou seja, apenas olhando o cdigo fonte no sabemos exatamente qual
ser a ao tomada pelo sistema, sendo que o prprio sistema quem decide qual
mtodo ser executado, dependendo do contexto durante a execuo do programa.
Desta

forma,

mensagem "fale" enviada

um

objeto

da

classe Animal pode ser interpretada de formas diferentes, dependendo do objeto em


questo. Para que isto ocorra, preciso que duas condies sejam satisfeitas: exista
herana de uma classe abstrata e casting (outras situaes tambm podem resultar
em polimorfismo, mas vamos nos centrar neste caso).

23

Herana nos j definimos previamente, mas o que uma classe abstrata? E o que
esse tal de casting?
Uma classe abstrata uma classe que representa uma coleo de
caractersticas presentes em vrios tipos de objetos, mas que no existe e no pode
existir

isoladamente.

Por

exemplo,

podemos

criar

uma

classe

abstrata

chamada Animal. Um Animal tem diversas caractersticas (atributos) e podem


realizar diversas aes (mtodos) mas no existe a possibilidade de criarmos
objetos do tipo Animal. O que existem so objetos das classes Cachorro, Gato,
Papagaio, etc. Essas classes, estendem a classe Animal herdando todas as suas
caractersticas, e adicionando algumas coisas a mais. "Animal" s uma entidade
abstrata, apenas um conjunto de caractersticas em comum, nada mais.
Voc pode olhar para um objeto da classe Cachorro e falar "isto
um animal, pois estende a classe Animal", mas voc nunca vai ver um objeto que
seja apenas da classe Animal, pois isso no existe! como eu olhar para voc e
falar "voc um objeto da classe SerVivo". Essa afirmao est correta, mas voc
na verdade um objeto da classe SerHumano, que por sua vez herda todas as
caractersticas da classe SerVivo (que por sua vez uma classe abstrata, j que no
podemos criar algo que seja apenas classificado como "SerVivo", sempre vamos
classifica-lo de forma menos genrica).
Resumindo: uma classe abstrata um conjunto de informaes a
respeito de uma coleo de outras classes. Uma classe abstrata sozinha
completamente intil, j que no podemos instanciar um objeto desta classe,
podemos apenas instanciar objetos de classes que estendem a classe abstrata
inicial. Ela serve apenas para simplificar o sistema, juntando em um nico lugar
diversas caractersticas que so comuns a um grupo de classes.
Nunca esquea disso: voc nunca vai poder criar um objeto do tipo
de uma classe abstrata. Sempre crie objetos das classes que estendem esta classe
abstrata.
J o termo casting utilizado quando nos foramos o sistema a ver
um certo objeto como sendo de um determinado tipo que no o seu tipo original.
Supondo que temos a situao a seguir:

24

Figura 12
Essa

uma

representao

na

notao

UML

(Unified Modeling Language) que nos informa que existe a definio de trs classes
em nosso sistema: existe a classe abstrata Animal (note que ela est em itlico, isso
significa na notao UML que trata-se de uma classe abstrata) e existem tambm
outras duas classes chamadas Cachorro e Gato, que so filhas da classe Animal.
Ou seja, todo objeto das classes Cachorro e Gato vo ter todas as caractersticas
(atributos e mtodos) presentes na classe Animal, e mais algumas caractersticas
prprias.
Imagine que vamos criar um sistema de cadastro de animais. Vamos, por questes
didticas, supor que todos os animais de nosso sistema fiquem armazenados em
um array. Ento existiria um array contendo objetos dos tipos Gato e do tipo
Cachorro.

Mas

armazenar

diversos

tipos

diferentes

de

objetos

em

um

nicoarray no uma boa idia, pois depois, para extrair essas informaes de volta
bastante complicado. Mas pare e pense por um instante: objetos do tipo Cachorro
e objetos do tipo Gato so tambm objetos do tipo Animal, correto? Bom, ento
podemos criar um array capaz de armazenar Animais! Assim nossa vida fica bem
mais fcil, bastando atribuir ao array os objetos (do tipo Cachorro e Gato - que
estendem a classe Animal) que queremos guardar. Em forma algortmica, seria mais
ou menos:
Animal[] listaDeAnimais = new Animal[100]; // Criamos um array com 100 posies
que armazena objetos do tipo Animal.
listaDeAnimais[0] = new Cachorro("Frodo"); // Criamos um novo objeto do tipo
Cachorro com o nome Frodo e armazenamos no array

25

listaDeAnimais[1] = new Gato("Alan"); // Criamos um novo objeto do tipo Gato com o


nome Alan e armazenamos no array
.......
Certo! Agora temos um array com vrios objetos do tipo Animal. Agora vamos fazer
um looping por todos esses objetos, enviando para cada um deles a
mensagem "fale". O que iria acontecer?
Inicialmente, vamos supor que a classe abstrata Animal possui o mtodo "fale", e
que ele seja implementado (de forma algortmica) da seguinte forma:

Classe Animal {
mtodo fale() {
imprimaNaTela(" Eu sou mudo! ");
}
}
Desta forma, todo objeto que de alguma classe que estenda a classe
Animal vai ter automaticamente o mtodo "fale", e isso inclui todos os objetos das
classes

Cachorro

Gato.

Mas

todos

eles,

atualmente,

ao

receber

mensagem "fale" vo responder imprimindo na tela a mensagem "Eu sou mudo!".


Mas Gatos e Cachorros podem falar! O que podemos fazer sobreescrever o
mtodo fale para cada uma das classes, substituindo ento seu contedo pelo
comportamento que queremos que cada subclasse tenha.
Por exemplo, poderamos escrever na classe Gato do seguinte
mtodo:

26

Classe Gato {
Mtodo fale() {
imprimaNaTela(" Miaaaaaauuuuuu! ");
}
}
Para a classe Cachorro, poderamos fazer de forma semelhante:
Classe Cachorro {
Mtodo fale() {
imprimaNaTela(" Au au au! ");
}
}
Agora, se fizermos um looping entre todos os objetos contidos em
nosso array criado anteriormente enviando para cada objeto a mensagem "fale",
cada um deles ir ter um comportamento diferente, dependendo se um Cachorro
ou um Gato. Nosso looping entre todos os animais cadastrado no nosso sistema
seria mais ou menos assim:
int cont;
para cont de 0 a 100 faa {
listaDeAnimais[cont].fale();
}
Isto polimorfismo! Uma mesma mensagem enviada para
diferentes objetos da mesma classe (Animal) e o resultado pode ser diferente, para
cada caso. :-)

27

Vantagens da POO

Os sistemas, em geral, possuem uma diviso de cdigo um pouco mais lgica


e melhor encapsulada do que a empregada nos sistemas no orientados a
objetos. Isto torna a manuteno e extenso do cdigo mais fcil e com menos
riscos de insero de bugs. Tambm mais fcil reaproveitar o cdigo.

mais fcil gerenciar o desenvolvimento deste tipo de software quando


temos uma equipe grande. Podemos fazer uma especificao UML antes de
iniciar o desenvolvimento do software em si.
Desvantagens da POO

Na minha opinio, o aprendizado do paradigma de programao orientada a


objetos bem mais complicado no incio do que os velhos sistemas procedurais.
Para comear a programar necessrio ter estabelecido uma srie de conceitos
bastante complexos. J na programao procedural tradicional, basta decorar
meia dzia de comandos e voc j consegue fazer um programa simples.

Dificilmente uma linguagem orientada a objetos conseguir ter um


desempenho em tempo de execuo superior a linguagens no orientadas a
objetos.

28

4.4 Programao Web I


Principais tecnologias para o Desenvolvimento Web.
Utilizamos tecnologias 100% compatveis com os mais variados navegadores Web
(browsers), para que nossas solues tenham a maior abrangncia possvel, a
determinao das tecnologias aplicadas em cada projeto dependeram de suas
caractersticas tcnicas e especificaes.
Salientamos que de acordo com as caractersticas de cada projeto, utilizaremos
outras tecnologias no relacionadas aqui, para maior compatibilidade e abrangncia
dos resultados.
HTML
A linguagem HTML a linguagem para a escrita de pginas Web.
HTML o acrnimo de HyperText Markup Language (Linguagem de Marcao
de HiperTexto). Ser uma linguagem de hipertexto significa ser capaz de escrever
pginas interligadas (contendo ligaes entre as pginas; quando uma ligao
ativada,

outra

pgina

deve

ser

apresentada).

Ser

uma linguagem

de

marcao significa que a pgina construda a partir de smbolos utilizados para


marcar como o contedo da pgina dever ser apresentado.
Os navegadores de HTML so programas capazes de apresentar
uma pgina HTML. Os principais navegadores so o Internet Explorer e o Netscape.
Os editores de HTML so programas capazes de escrever uma pgina em HTML.
Microsoft FrontPage e o Netscape Composer so exemplos de bons editores de
HTML. Como o cdigo de uma pgina HTML apenas um texto simples, qualquer
programa capaz de escrever textos pode ser utilizado para editar uma pgina HTML
- neste curso, o Editor HTML e o Bloco de Notas (do Windows) sero suficientes
para voc estudar esta linguagem e construir suas prprias pginas.
A linguagem HTML possui basicamente quatro conceitos que so
fundamentais, elemento, etiqueta, atributo e valor. Um elemento uma estrutura
(como pargrafo, lista, tabela, imagem etc.) utilizada na composio de uma pgina

29

HTML. As etiquetas delimitam o incio e o fim de um determinado elemento.


Um atributo uma caracterstica do elemento que pode ser configurado atravs da
especificao de um determinado valor.
A estrutura de um documento HTML composta por trs partes:
a estrutura

principal (delimitada

pelas

etiquetas

<HTML>

</HTML>),

o cabealho (delimitado pelas etiquetas <HEAD> e </HEAD>) e o corpo (delimitado


pelas etiquetas <BODY> e </BODY>). Todo o contedo de uma pgina HTML
escrito dentro do corpo do documento - ou seja, praticamente todos os elementos
abordados nos prximos captulos deste curso so escritos dentro de <BODY> e
</BODY>.
PHP
O PHP (acrnimo recursivo de: PHP: Hypertext Preprocessor) uma
linguagem de programao muito usada atualmente para gerar contedo para a
WEB. O PHP foi criado em 1995, por Rasmus Lerdorf, sendo inicialmente um pacote
CGI para substituir os Scripts Perl. O PHP permitia, inicialmente, os programadores
criarem aplicativos simples para a web.
O criador do PHP disponibilizou o cdigo fonte do PHP para usurios
poderem aperfeioar e melhorar o cdigo, adicionando funes e corrigindo
eventuais problemas.
Verses do PHP:

PHP/FI 2.0: Esta verso passou muito tempo como Beta, com vrios bugs
para serem resolvidos. Foi lanado em 1997.

PHP 3: Primeira verso do PHP semelhante ao atual. Foi criada


principalmente por Andi Gutmans e Zeev Suraski, tambm em 1997, sendo
lanado somente em 1998. Esta verso se tornou oficial

e foram

abandonados os desenvolvimentos do PHP/FI 2.0. Um dos diferenciais do


PHP 3, em relao ao 2.0 foi sua alta capacidade de extensibilidade, sendo
esta verso a chave para o PHP atual.

PHP 4: O PHP 3 foi um grande avano, mais no foi projetado para


aplicaes muito complexas. Os criadores do PHP 3.0 desenvolveram ento a

30

Zend Engine, esta Engine foi utilizada como base de criao do PHP 4, que
foi lanado em maio de 2000. Esta verso do PHP foi criada com alguns
mtodos que permitiram a interao entre a linguagem e outros componentes
da WEB, como Sesses HTTP e Buffers de sada. Esta verso popularizou
ainda mais o PHP, pois permitiu interao com outras funes.

PHP 5: Lanado em 2004, o PHP 5 foi projetado com base na Zend Engine
2.0, e trouxe vrias inovaes. A orientao de Objetos desta verso do PHP
foi totalmente reescrita, para atender s novas necessidades.
O PHP tem cdigo fonte disponvel para qualquer pessoa, sem

custos. A licena de uso e edio Open Source, ou seja, ningum pode


comercializar qualquer verso modificada do PHP, e qualquer modificao deve
continuar com o cdigo fonte aberto para os usurios explorarem e modificarem.
Este sistema de licena no traz lucro aos desenvolvedores, pois estes
disponibilizam tudo para o publico gratuitamente, e o publico, por sua vez, ajuda
reportando erros e ajudando a modificar o cdigo fonte. Muitas empresas apiam os
desenvolvedores do PHP, pois estes no visam lucro ao criarem e desenvolverem o
programa. O PHP muito usado com o Linux e o MySQL, dois outros programas
Open Source.

CSS
Cascading Style Sheets (CSS) uma "folha de estilo" composta por
camadas e utilizada para definir a apresentao (aparncia) em pginas da internet
que adotam para o seu desenvolvimento linguagens de marcao (como XML,
HTML e XHTML). O CSS define como sero exibidos os elementos contidos no
cdigo de uma pgina da internet e sua maior vantagem efetuar a separao entre
o formato e o contedo de um documento.
Com a evoluo dos recursos de programao as pginas da
internet estavam adotando cada vez mais estilos e variaes para deix-las mais
elegantes e atrativas para os usurios. Com isto, linguagens de marcao simples
como o HTML, que era destinada para apresentar os contedos tambm precisou
ser aprimorada.

31

Foram criadas novas tags e atributos de estilo para o HTML e em resumo ele passou
a exercer tanto a funo de estruturar o contedo quanto de apresent-lo para o
usurio

final.

Entretanto,

isto

comeou

trazer

um

problema

para

os

desenvolvedores, pois no havia uma forma de definir, por exemplo, um padro para
todos os cabealhos ou contedos em diversas pginas. Ou seja, as alteraes
teriam que ser feitas manualmente, uma a uma.
A partir destas complicaes, nasceu o CSS. Primariamente, foi
desenvolvido para habilitar a separao do contedo e formato de um documento
(na linguagem de formatao utilizada) de sua apresentao, incluindo elementos
como cores, formatos de fontes e layout. Esta separao proporcionou uma maior
flexibilidade e controle na especificao de como as caractersticas sero exibidas,
permitiu um compartilhamento de formato e reduziu a repetio no contedo
estrutural de uma pgina.
Com isto, as linguagens de marcao passaram novamente a
exercer sua funo de marcar e estruturar o contedo de uma pgina enquanto o
CSS encarregou-se da aplicao dos estilos necessrios para a aparncia dela. Isto
feito por meio da criao de um arquivo externo que contm todas as regras
aplicadas e, com isto, possvel fazer alteraes de estilo em todas as pginas de
um site de forma fcil e rpida.
O CSS tambm permite que as mesmas marcaes de uma pgina
sejam apresentadas em diferentes estilos, conforme os mtodos de renderizao
(como em uma tela, impresso, via voz, baseadas em dispositivos tteis, etc.). A
maioria dos menus em cascata, estilos de cabealho e rodap de pginas da
internet, por exemplo, atualmente so desenvolvidos em CSS.

Adobe Flash
Originalmente desenvolvido pela Macromedia e hoje pertencente Adobe, o Flash
uma plataforma multimdia de desenvolvimento de aplicaes que contenham
animaes, udio e vdeo, bastante utilizada na construo de anncios publicitrios
e pginas web interativas.

32

O Flash capaz de manipular vetores e grficos para criar textos


animados, desenhos, imagens e at streaming de udio e vdeo pela internet.
O Flash ganhou bastante popularidade entre os programadores e desenvolvedores
web por permitir um desenvolvimento rpido de aplicaes de alta qualidade e
integrao transparente com outros tipos de contedo. Ele est presente em grande
parte dos websites atuais, mas, aos poucos, est sendo colocado de lado em favor
do HTML5.

JavaScript
uma linguagem interpretada, que pode ser usada junto com o
HTML e permite inserir vios efeitos, permitindo que o site (ou uma mensagem de
correio eletrnico) fique mais dinmico, e uma maior interao com o leitor.
O cdigo JavaScript, no compilado, e deve ser colocado,
no cdigo fonte, junto com os comandos da linguagem HTML. Quando se acessa
um "site" alguns exemplos de scripts so: aparecimento da data / horrio atual,
saudaes como "bom dia", "boa tarde" ou "boa noite", efeitos onde uma imagem
muda quando se passa o mouse sobre ela.

Script uma sequncia de comandos que deve ser colocada em


uma posio determinada na pgina ou como um arquivo anexado. No ltimo caso
ter extenso js.
importante lembrar que preciso conhecer uma linguagem de
programao para criar um script. Aqui s modificaremos alguns parmetros e assim
podermos modificar efeitos.
Um script pode ser convocado por um evento iniciado pela pessoa
que acessa a pgina e clica em algo. razovel manter a funo entre
os tags <head> e </head>. Normalmente os scripts so colados dentro do tag BODY,
ou seja, entre os comandos <BODY> e </BODY>.
Os scripts podem ser colocados entre os campos de comentrios
internos para assegurar que o navegador no mostre o prprio script.

33

Em geral, a seqncia se inicia com <SCRIPT ... > e termina com


</SCRIPT>
Java e JavaScript
Java uma linguagem de programao e JavaScript uma
linguagem de scripting.
Pode-se criar programas reais com Java. Com JavaScript apenas
cria-se efeitos que s funcionam dentro de uma pgina em HTML, por exemplo.
Assim, pode-se admitir que JavaScript mais uma extenso do
HTML do que outra linguagem de computao.

34

5 - CONCLUSO
Chegando ao fim do trabalho, aps muita pesquisa e empenho espero ter
tido xito na fidelidade com que tentei expor os resultados dentre os tpicos
elaborados, analisando todo o vasto contedo exposto, pode-se dizer que foi muito
proveitoso e enriquecedor fazer esta anlise sobre os temas e contedos estudados.
Por fim o presente trabalho foi de absoluta e necessria experincia nesta
nova etapa do curso, garantindo ainda mais conhecimento e perspectivas
necessrias ao um futuro analista e desenvolvedor de sistemas.

35

6 REFERNCIAS
Ambiente On-Line Colaborar
Livros do Semestre
Web-Aulas das Disciplinas
http://www.profissionaisti.com.br/2011/07/os-principais-diagramas-da-uml-resumorapido/
http://hleranetworks.com.br/tecnologias-utilizadas.htm
http://www.hardware.com.br/artigos/programacao-orientada-objetos/
http://www.luis.blog.br/normalizacao-de-dados-e-as-formas-normais.aspx

Você também pode gostar