Escolar Documentos
Profissional Documentos
Cultura Documentos
Desenvolvimento em Camadas
Desenvolvimento em Camadas
PUCSP
SO PAULO
2011
SO PAULO
2011
Banca Examinadora
_____________________________________
_____________________________________
_____________________________________
Resumo
O trabalho de pesquisa realizado tem como objetivo geral conhecer em que
medida o desenvolvedor de software - estudante de um curso tcnico de
informtica - pode se beneficiar com a utilizao de um projeto de aplicao
para a assimilao da metodologia de desenvolvimento em camadas.
Atualmente empresas de desenvolvimento de software buscam excelncia na
prestao de servios. Com isso acompanhamos o surgimento de diversas
ferramentas para o aumento de produtividade. Dentre elas destaca-se a IDE
(Integrated Development Environment - Ambiente de Desenvolvimento
Integrado) e conhecer essas ferramentas torna-se essencial para este
profissional. Mas o conjunto de competncias (Perrenoud, Le Boterf) exigidas
pelo profissional desenvolvedor de software no se restringe aos aspectos
tcnicos. Analisamos neste trabalho quais as competncias necessrias ao
profissional de desenvolvimento de software. Essa anlise tem base no
pensamento complexo de Edgar Morin.
Visando demonstrar ainda a importncia dos padres quando se trata de
tecnologia, buscamos na histria da prpria Internet (Vint Cert, Demi Getsko)
exemplos para analisar a necessidade de padronizao. Pesquisamos um
padro denominado "metodologia de desenvolvimento em camadas". Para
analisar com maior profundidade a importncia dos padres, criamos neste
trabalho um material didtico (projeto LOJA .NET) que permitiu ao aluno
exercitar conceitos sobre desenvolvimento de software. Tendo analisado as
competncias exigidas para o profissional de desenvolvimento de software bem
como a importncia do uso de padres nesta profisso, analisamos se o
projeto LOJA .NET contribui com este profissional no uso de suas habilidades e
competncias para compreender como utilizar padres no processo de
desenvolvimento de software.
Com o apoio do IFET-SP Instituto Federal de Educao, Cincia e Tecnologia
de So Paulo realizamos uma pesquisa qualitativa onde alunos do curso
tcnico em informtica utilizaram o projeto proposto. Utilizar conhecimentos
que o aluno j possui; conhecer o que este aluno capaz de fazer com a ajuda
do professor ou de outro aluno e atuar nesse intervalo, ou seja, no caminho
que o aluno vai percorrer at que consiga realizar sozinho o que atualmente s
consegue realizar com o auxlio de algum so conceitos advindos da teoria de
Vygotsky.
Com a anlise desta pesquisa buscamos identificar a relevncia do uso de
projetos de aplicao na formao do profissional de desenvolvimento de
software.
Palavras-chave: desenvolvimento de software, desenvolvimento em camadas,
microsoft c# .net, projeto de aplicao, metodologia.
Abstract
This research aims to verify how application projects can help the software
developer professional to acquire knowledge about the 3-tier development
model.
Nowadays companies want to prove that their services are accomplished with
the best quality standards of information technology. To do that many tools are
created and a special one is called IDE Integrated Development Environment.
An IDE allows the software developer professional to bring efficacy into his
project.
We will discuss what skills are important to this professional. This research will
analyze the question: Why do companies based on information technology like
to use processes with patterns? To demonstrate the importance of patterns in
technology field, we search the Internet history (Vint Cert, Demi Getsko) to
discuss the patterns used in Internet history. We have written articles about
.NET development to demonstrate how to use patterns in a software
development project.
This research originated a book titled "Desenvolvimento em Camadas com C#
.NET (available in portuguese only)" who was used by IFET-SP students in a
study.
Well analyze this study to get indicators about the efficiency of application
project in the educational process of the software developer professionals.
Key-words: software development, 3-tier development model, Microsoft C#
.NET, application project, methodology.
8
Lista de Figuras
42
63
64
9
Lista de Tabelas
54
54
55
55
10
Lista de Grficos
69
71
73
75
77
79
81
83
85
87
11
SUMRIO
INTRODUO.............................................................................
13
1.1
18
1.1.1
19
1.2
20
1.2.1
21
21
30
1.3
32
1.3.1
33
1.3.1.1 Complexidade...............................................................................
33
1.3.1.2 Transdisciplinaridade....................................................................
35
DESENVOLVIMENTO EM CAMADAS
2.1
40
2.2
Os padres na Internet................................................................
41
2.2.1
44
2.3
46
12
3
ALUNOS DO CEFET
3.1
Histrico do IFSP.........................................................................
3.2
51
Informtica...................................................................................
53
3.3
57
3.3.1
58
3.3.2
Publicao de artigos..................................................................
59
3.3.3
62
3.4
64
3.4.1
67
CONSIDERAES FINAIS.........................................................
89
ANEXOS
Glossrio......................................................................................
94
Abreviaturas.................................................................................
99
100
Referncias Bibliogrficas...........................................................
104
13
Introduo
14
Em 2005, momento em que ingressei no cargo de Analista de Sistemas para o
Banco Nossa Caixa S.A., conheci o amigo Nelson da Silva Paz, professor no
Curso Tcnico em Informtica do CEFET1 Cubato.
Alm de trabalharmos para a mesma empresa, temos em comum o interesse
no
desafio
relacionado
desenvolver
situaes
de
aprendizagem
1
2
15
O presente trabalho teve como objetivo principal identificar em que medida a
utilizao de projetos de aplicao dos conceitos de forma prtica
fundamentada no mtodo de Desenvolvimento em Camadas contribui para
que alunos de cursos tcnicos em informtica desenvolvam competncias na
construo de software. Foi proposto um projeto para alunos a partir do 3
Semestre de um curso tcnico em informtica, e observamos o aproveitamento
destes alunos aps a execuo deste projeto. Para atingir esse objetivo, alguns
objetivos secundrios foram pertinentes ao estudo:
Objetivo Geral
Tendo como pblico-alvo os alunos no Ensino Mdio que esto em formao
tcnica na rea de informtica, no incio de 2008 norteei meu problema de
pesquisa com a questo:
Verificar qual a contribuio do projeto de Desenvolvimento em Camadas para
o desenvolvimento de competncias na construo de software.
Objetivos Especficos
Definir projeto de aplicao na construo de software;
Analisar as competncias necessrias ao desenvolvedor de software;
Analisar o mtodo de desenvolvimento em camadas;
Realizar a anlise de um grupo de alunos do curso tcnico em informtica que
utilizou o mtodo de desenvolvimento em camadas.
16
Metodologia
A anlise quantitativa atua sobre os nveis de realidade e tem como objetivo
bsico trazer luz dados, indicadores e tendncias observveis. A investigao
qualitativa, pelo contrrio, trabalha com valores, com crenas, representaes,
hbitos, atitudes e opinies.
Realizamos uma pesquisa qualitativa, e utilizamos questionrios como
instrumento de coleta de dados.
Foi proposto um projeto para alunos a partir do 3. Semestre de um curso
tcnico em informtica, e observamos o aproveitamento destes alunos aps a
execuo deste projeto.
Instrumentos:
Atravs de um questionrio inicial de sondagem os alunos fizeram uma autoanlise do que conhecem sobre os assuntos relacionados no projeto de
aplicao proposto. Aps a realizao do projeto aplicamos um questionrio
final a fim de verificar se os alunos perceberam avanos com relao aos
tpicos envolvidos no projeto.
Estruturamos a dissertao em trs captulos.
O
primeiro
captulo,
denominado
Construo
de
Software
as
da
Informao
quando
empresas
desejam
contratar
17
encontrados na idealizao e criao de um material didtico sobre o tema.
Analisamos ainda aspectos relevantes observados durante a aplicao do
material didtico que consiste no desenvolvimento de um projeto em
Tecnologia da Informao junto aos alunos do Curso Tcnico do CEFET
Unidade Cubato.
Atravs de um formulrio inicial de sondagem verificamos o que os alunos
conheciam sobre os assuntos envolvidos no projeto de aplicao proposto.
Aps a execuo do projeto pelos alunos, que teve durao de seis meses,
aplicamos novo questionrio para verificar se houve a percepo de melhorias
no que se refere aos assuntos envolvidos no projeto realizado.
No avaliamos o desempenho dos alunos aps o trmino de sua formao,
momento de ingresso no mercado de trabalho.
18
CAPTULO 1
Construo de Software e as competncias necessrias
Quando se fala sobre a Construo de Software, se est necessariamente
falando sobre Projeto de Aplicao. preciso que haja um Projeto de
Aplicao para que um software seja construdo.
Dessa forma, antes de abordarmos a Construo de Software e as
competncias necessrias importante exemplificar o que e como surge um
Projeto de Aplicao.
1.1 Projeto de Aplicao na Construo de Software
Por que as empresas contratam profissionais para a construo de um
software se j existem tantos tipos de software a venda no mercado?
Os desenvolvedores de software so requisitados pelas empresas pois estas
tm problemas especficos que precisam ser solucionados. As necessidades
especficas de uma empresa no podem ser satisfeitas com um software criado
para propsitos gerais. neste cenrio que surge o projeto de aplicao.
Imaginemos uma rede de supermercados com lojas espalhadas em diversos
Estados. O gerente desta empresa deseja saber a quantidade de TVs de uma
determinada marca que foi vendida por loja em cada dia da semana, ou ainda,
seu desejo saber o nmero exato de TVs vendidas at aquele instante.
A necessidade em analisar dados em tempo real est diretamente ligada
eficcia no gerenciamento de muitas empresas.
Um software capaz de prover o administrador de empresas com a informao
atualizada a qualquer momento chamado de SAD Software de Apoio
Deciso.
Um software com essa caracterstica no ser encontrado venda em uma loja
de informtica. Esse tipo de software construdo tendo como base as
necessidades especficas de uma empresa. Isto exemplifica porque as
empresas contratam profissionais da rea de desenvolvimento de software;
para que se mantenham competitivas, objetivando satisfazer seus clientes
aumentando constantemente a qualidade de seus servios.
19
1.1.1 O incio de um Projeto de Aplicao
Quando uma empresa identifica a necessidade da construo de um software,
geralmente ela contrata uma consultoria especializada para essa misso.
A consultoria, ao ser contratada, agenda uma reunio para que sejam
discutidos os detalhes da necessidade de seu cliente.
Dentre os profissionais que a consultoria envia para esta reunio, h um
profissional com o perfil tcnico. Alm de compreender as necessidades do
cliente,
este
profissional
possui
conhecimentos
para
gerao
de
20
1.2 Construo de Software X Competncias necessrias
Apenas recentemente temos o conceito de competncia associado gerao
de resultados para as empresas. A primeira referncia que encontramos sobre
essa associao foi estabelecida com LE BOTERF (1994) onde ele afirma que
a competncia est associada s realizaes das pessoas; est associada ao
que elas produzem e entregam. Neste enfoque, a competncia colocar em
prtica o que se sabe em um determinado contexto.
No trabalho a competncia tida como a reunio de conhecimento, habilidade,
atitude e valor.
Conhecimento a apropriao de um objeto pelo pensamento atravs da
educao formal ou pela experincia prtica. Corresponde ainda a uma srie
de informaes que o indivduo assimila e estrutura, de modo que lhe permite
compreender o mundo, ou seja, a dimenso do saber o que e porqu
(MASLOW, 2000).
Habilidade a capacidade de algum realizar alguma atividade ou ter
determinada aptido. a capacidade de desempenhar tarefas e atividades, de
aplicar e fazer uso produtivo do conhecimento adquirido e utiliz-lo em uma
ao com vista a atingir um propsito especfico (CBO/MTE, 2002).
Atitude refere-se aos aspectos sociais e afetivos relacionados ao trabalho. A
atitude determina o comportamento, pois est relacionada com percepo,
personalidade, aprendizagem e motivao. a ao cotidiana, a dimenso do
querer-saber-fazer. (CBO/MTE, 2002).
Valor representa as crenas, motivao, carter, costumes, conscincia social,
regras da vida em sociedade e da conduta entre os homens.
21
De acordo com a Classificao Brasileira de Ocupaoes (CBO/MTE)
documento normalizador do reconhecimento, da nomeao e da codificao
dos ttulos e contedos das ocupaes do mercado de trabalho brasileiro competncia profissional tida como um atributo inerente ao ser humano para
o desempenho de uma ou vrias funes quando se ocupa um cargo dentro da
unidade organizacional de uma empresa.
No que se refere ao profissional de Tecnologia da Informao, mais
especificamente na rea de desenvolvimento de software, essas competncias
podem ser mapeadas como veremos a seguir.
1.2.1 Aspectos tcnicos e perfil comportamental
Para ser um bom desenvolvedor de software no basta apenas ser um
especialista numa determinada linguagem de programao. Um desenvolvedor
de software deve possuir determinadas habilidades e competncias tanto no
que se refere a aspectos tcnicos como no que envolve seu perfil
comportamental.
1.2.1.1 Aspectos tcnicos
BOA DOCUMENTAO: O desenvolvedor de software deve ser capaz de criar
documentos para descrever corretamente o que faz o programa que ele
escreveu. Com quais programas este programa est relacionado? Quais
bancos de dados so acessados por este programa? Existem requisitos de
sistema operacional, ou seja, algum componente deve estar previamente
instalado no computador para que este programa funcione?
22
Alm de manter bem documentado os seus programas, importante que o
desenvolvedor mantenha sempre estes documentos atualizados. Infelizmente
comum o desenvolvedor criar apenas a primeira verso da documentao e
conforme surgem demandas para a atualizao do programa, o desenvolvedor
atualiza o programa e no d a mesma importncia para a atualizao dos
respectivos documentos.
QUALIDADE TCNICA DOS TRABALHOS: Muitas vezes um desenvolvedor se
v pressionado por seu gerente para cumprir os prazos estabelecidos por este
referentes a entrega de programas.
Ceder presso codificando programas sem valorizar a qualidade do que ser
entregue uma pssima prtica.
Do ponto de vista da empresa contratante, isso tem boa probabilidade de
significar aumento de custos, pois um programa construdo que no atenda sua
especificao1, certamente precisar ser corrigido.
Se somarmos as horas utilizadas no desenvolvimento sem qualidade s horas
utilizadas na correo deste programa, iremos verificar que a empresa teria um
melhor custo/benefcio se a primeira verso do programa tivesse sido entregue
com a qualidade exigida, mesmo que isso demandasse algumas horas a mais
para a entrega.
ANLISE: Um bom desenvolvedor deve saber analisar todos os documentos
de um projeto de aplicao. Ao realizar a anlise destes documentos deve
compreender o que precisa ser feito; qual o propsito do programa a ser
codificado.
Atualmente a maioria das especificaes de programas obedece ao que
conhecido por Programao Orientada a Objetos (POO).
1
23
No paradigma da POO, uma das coisas mais importantes que o bom
desenvolvedor deve dominar a UML Unified Modeling Language.
A UML contm em sua definio muitos tipos de diagramas que servem para a
especificao de programas e processos relacionados ao projeto de aplicao.
Dentre os diagramas mais usados podemos destacar: Casos de Uso, Diagrama
de Classe e Diagrama de Sequncia.
BOA LGICA: Ter boa lgica de programao tambm uma exigncia para o
profissional da rea de desenvolvimento de software.
Nos bons cursos de programao, geralmente nos primeiros semestres o aluno
tem uma grande carga horria relacionada a disciplinas envolvendo tpicos da
matemtica.
Sabe-se que os computadores trabalham utilizando o sistema binrio de
numerao.
Dessa
forma,
pode-se
dizer
que
na
essncia,
todo
24
Nos ltimos anos as empresas buscam reduzir cada vez mais os seus custos
em todos os setores e o departamento de tecnologia no foge a regra.
Na dcada de 90 tnhamos as carreiras de: Programador, Analista de Sistemas
e Gerente de Informtica. O Gerente de Informtica era quem se reunia
previamente com o cliente para tratar de aspectos burocrticos. Ele firmava o
Contrato de Prestao de Servios, documento que descrevia quais as
obrigaes em termos de soluo tecnolgica, o valor cobrado pelo projeto, a
forma de pagamento, o prazo de entrega definido para cada etapa do projeto,
etc.
A globalizao ocasionou uma evoluo no mercado de TI de tal magnitude
que as empresas brasileiras deste segmento viram-se foradas a investir em
aprimoramentos e sobretudo a reduzir custos para manterem-se competitivas.
Isso impactou diretamente a carreira de muitos profissionais de Tecnologia da
Informao. As carreiras de Analista de Sistemas e de Programador fundiramse dando origem ao cargo denominado Analista Programador.
Em resumo, as empresas contratavam um profissional pagando-lhe o mesmo
salrio de um Programador ou de um Analista de Sistemas, e exigia-lhe que
executasse a soma das atribuies destes dois cargos.
Alm do aumento das funes, tivemos a feroz evoluo dos sistemas
operacionais, hardware de computadores, dos sistemas gerenciadores de
bancos de dados e das prprias linguagens de programao. Tudo isso fez
com que o profissional de desenvolvimento de software tivesse que estudar
cada vez mais para manter sua empregabilidade.
Nos ltimos anos a globalizao transformou o profissional de TI em um
recurso mundial. Se antigamente um dos pr-requisitos de uma vaga era
possuir noes de ingls, hoje mandatrio ser fluente neste idioma se o
desejo ter uma boa oportunidade no mercado de trabalho.
25
Empresas multinacionais invadiram nosso Pas, comprando empresas menores
e oferecendo emprego somente aos melhores profissionais do mercado.
Uma competncia comumente exigida nas vagas disponibilizadas por estas
empresas que o profissional seja problem-solving, ou seja, tenha a
capacidade de resolver problemas.
Ter a capacidade de resolver problemas no algo trivial, principalmente
quando estamos falando de grandes organizaes compostas por milhares de
funcionrios e um nmero expressivo de clientes.
O fato que se antigamente a capacidade de resolver problemas restringia-se
s exigncias de um cargo gerencial, hoje isso exigncia para um nmero
muito maior de funcionrios, inclusive para o desenvolvedor de software.
Tratamos aqui de um assunto complexo, pois para resolver um problema
necessrio conhecer muitas variveis sobre essa ocorrncia e tambm
necessrio tomar a deciso correta no menor prazo possvel.
Para explanar sobre isso citaremos como exemplo a complexidade do
funcionamento de uma Instituio Financeira, um banco.
Imagine que um desenvolvedor construiu uma aplicao de saque. Essa
aplicao executada diariamente por todos os caixas existentes em todas as
agncias deste banco. tambm executada quando um cliente realiza um
saque utilizando um Terminal de Auto-atendimento (caixa eletrnico).
Suponha que este desenvolvedor escreveu uma nova verso da aplicao de
saque que est preparada para substituir a verso atual na prxima segundafeira. Tudo foi exaustivamente testado, nada pode dar errado.
O tempo vai passando... sexta-feira, sbado, domingo e finalmente chega o
momento de atualizar a aplicao de saque pela nova verso.
26
O desenvolvedor acompanha tudo de dedos cruzados... o seu emprego que
est em jogo.
No horrio agendado o departamento tcnico responsvel pela atualizao de
aplicaes informa todos os envolvidos neste processo o resultado da
operao:
- Atualizao completa. O procedimento foi realizado com sucesso!
- Ufa! pensa o desenvolvedor. - Ainda bem que ocorreu tudo conforme o
esperado.
Em menos de um minuto aps o procedimento de atualizao comea um
corre-corre para todo lado. Os telefones comeam a tocar e no param mais.
So ligaes desesperadas de funcionrios das agncias de todo o Pas
afirmando que os clientes no esto conseguindo sacar dinheiro de suas
contas.
O telefone toca na mesa do desenvolvedor. Ele atende o telefone e j imagina
o que est por vir...
- Carlos. Bom dia!. Do outro lado da linha era o gerente que acabara de ligar
para o desenvolvedor responsvel pela paralisao de todas as agncias do
banco...
- Bom dia Carlos. Aqui o Joseclin! As agncias esto paradas. Em quanto
tempo voc acha que resolve isso?
O desenvolvedor respira fundo e reflete sobre o problema... Ele se interroga:
Por que somente as agncias esto reclamando de problema no saque se os
caixas eletrnicos tambm utilizam essa funcionalidade? Normalmente so
realizados muitos saques por minuto nos caixas eletrnicos (). Para certificarse de que o saque estivesse funcionando nos caixas eletrnicos bastaria ligar
para a equipe responsvel e fazer este questionamento, assim Carlos saberia
se o problema est somente na parte do programa do programa executado
pelas agncias.
27
O fato que Carlos no dispunha de tempo para uma anlise detalhada agora.
Vejamos o cenrio: o funcionamento de todas as agncias est parado; o
Joseclin est na linha aguardando uma resposta; qual a melhor deciso a ser
tomada para solucionar o problema?
Eis que Carlos decide o que fazer e rapidamente responde ao seu gerente:
- 5 minutos. Em cinco minutos a situao estar normalizada. E ento o
Joseclin responde:
- Tudo bem Carlos. Te ligarei novamente em cinco minutos...
Sem soltar o telefone que estava na mo esquerda, com a mo direita Carlos
acessa a agenda de contatos de seu celular e faz uma busca pelo nome do seu
colega no departamento tcnico de atualizao de aplicaes.
De posse do nmero de telefone que procurava, Carlos liga para o colega de
trabalho:
- Jackson?! o Carlos. Tudo bem?
- Sim Carlos! Tudo bem e voc?
- Tudo bem. Preciso de um favor... e urgente.
- Pode falar meu amigo. Em que posso ajud-lo?
- Sabe a nova verso da aplicao de saque que foi atualizada h poucos
minutos? Preciso que voc desfaa o procedimento, de maneira que tenhamos
a verso anterior em funcionamento.
- Entendi. Fique na linha que farei isso agora mesmo....
Alguns segundos mais tarde...
- Pronto Carlos. Solicitao atendida!.
- Muito obrigado Jackson.
28
- Por nada....
Aps voltar a verso da aplicao para a que estava funcionando, Carlos liga
para algumas agncias objetivando certificar-se de que tudo voltou ao normal.
Sim, felizmente agora os clientes conseguiam sacar dinheiro.
Carlos tambm recebeu o telefonema do Joseclin parabenizando-o por ter
conseguido normalizar a situao no tempo esperado.
A partir desse exemplo sobre a atitude de um desenvolvedor que trabalha em
um determinado banco, retomaremos a explanao sobre a complexa
competncia de resolver problemas.
O bom desenvolvedor, ao analisar um problema que surge, deve saber
distinguir o que a causa e o que sintoma.
Geralmente quando algum apresenta um problema ao desenvolvedor, tratam
de informaes do sintoma. Isso significa que na maioria das vezes no
aquela aplicao ou funcionalidade da qual o cliente est reclamando que
contm o erro, mas talvez outra aplicao que se refletiu na aplicao que o
cliente utiliza, causando o sintoma.
No exemplo da funcionalidade de saque, temos o seguinte:
A aplicao que o caixa da agncia utiliza em seu computador no contm as
aplicaes de saque, depsito ou pagamento de boletos bancrios. Essa
aplicao apenas faz uma chamada para outras aplicaes que esto
fisicamente instaladas no computador central do banco.
Ento, quando ligaram para o desenvolvedor Carlos dizendo que havia um
problema na agncia pois o saque parou de funcionar, na verdade este tratavase apenas de um sintoma. O problema residia no computador central do banco,
local onde o Carlos atualizou a verso da aplicao de saque.
29
Poderamos afirmar que a deciso correta para solucionar este problema
seria Carlos analisar a nova verso da aplicao de saque de modo a
identificar o que estava incorreto, corrigir e ento realizar a atualizao da
verso desta aplicao.
Mas e os sintomas? Neste caso os sintomas consistiam na paralisao de um
dos negcios mais importantes do banco: o funcionamento das agncias.
Verifica-se ento que corrigir primeiro o problema para evitar a ocorrncia de
novos sintomas no pode ser tido como uma regra geral. Em alguns casos
preciso tomar uma deciso imediata que vai apenas solucionar um sintoma
para, posteriormente, tomar atitudes para solucionar o problema.
Para resumir a competncia de Resoluo de Problemas poderamos ter a
seguinte lista:
O foco em definir um problema distinguir causa e sintoma;
Geralmente o que recebemos como descrio de um problema a
descrio de um sintoma;
A Tomada de Deciso inclui analisar o problema a fim de identificar as
solues viveis, optar por uma dessas solues e implement-la; e
A deciso correta como vimos no exemplo do desenvolvedor Carlos,
pode no ser a melhor deciso dependendo da circunstncia atual.
30
1.2.1.2 O Perfil Comportamental
COMUNICAO: Independente do idioma que o desenvolvedor usa no seu
dia-a-dia imprescindvel que este consiga se expressar de forma clara e
objetiva, tanto oralmente como na escrita.
PR-ATIVIDADE: Se um profissional identifica que algo deve ser feito para o
bom andamento do trabalho, no deve hesitar.
No competitivo mercado atual no cabe mais a postura de dizer: - Isso aqui eu
no farei porque no me foi solicitado.
Equipes
vencedoras
so
formadas
por
profissionais
que
ajudam-se
31
Existem empresas que conseguem o comprometimento de suas equipes
atravs de recompensas em termos de salrio, status, etc.
H ainda as que mantm o comprometimento atravs de normas internas de
comportamento.
Mas como neste trabalho se est abordando o perfil comportamental do
desenvolvedor de software, no relevante como a empresa coloca em prtica
o conceito de comprometimento. O importante que o desenvolvedor de
software saiba o que uma empresa espera dele quando diz que ele deve ser
comprometido.
Basicamente, o desenvolvedor de software precisa saber a resposta da
pergunta: - O que comprometimento?
Pode-se dizer que comprometimento tudo o que uma pessoa faz a mais, sem
que algum tenha solicitado.
Hoje h muitos funcionrios nas empresas que realizam estritamente o
necessrio, ou seja, fazem o que est nas atribuies de seu cargo, o restante
no diz respeito a eles. Devido a essa postura alguns funcionrios chegam at
a desrespeitar os clientes desta empresa.
Quantas vezes fomos a alguma empresa para resolver algum tipo de problema
e a pessoa nos foi passando para outra, dizendo que a pessoa responsvel
no era ela? Isso quando a ligao no cai misteriosamente.
Voc j tentou cancelar uma linha telefnica e passou por um cenrio assim?
Qualquer semelhana mera coincidncia (...).
Se nos colocarmos na viso do presidente de uma empresa, qual seria a nossa
viso com relao aos nossos funcionrios? Nosso desejo seria que sempre
que um cliente aparea na empresa e fale com um funcionrio portando um
crach, este cliente reconhea-o como um representante da corporao,
independente de ser a copeira, o atendente ou o diretor. O compromisso em
resolver o problema das pessoas, independente da sua responsabilidade, um
grande exemplo de comprometimento.
Por outro lado, um exemplo simples de descomprometimento um funcionrio
passar por um pedao de papel jogado no corredor da empresa e no ter o
compromisso de pegar o papel e jog-lo no cesto de lixo. Ao invs disso o
funcionrio descomprometido pensa: eu no sou funcionrio da limpeza e isso
no meu problema.
32
Tudo o que fazemos a mais, sem o interesse de obter alguma vantagem, o
que faz a diferena hoje no mundo corporativo; e o que cada vez mais as
empresas buscam.
1.3 As 5 competncias analisadas com o projeto LOJA .NET
O projeto LOJA .NET proposto aos alunos nos permitiu analisar cinco
importantes competncias para o desenvolvedor de software. So elas:
1) Saber utilizar o conceito de Programao Orientada a Objetos. Aqui
verificamos se o aluno consegue criar e utilizar corretamente classes,
mtodos e propriedades.
2) Saber utilizar o conceito de Desenvolvimento em Camadas. Verificamos
se o aluno, ao construir as classes em uma camada, faz as referncias
necessrias visualizando a comunicao com a prxima camada (neste
caso, com a camada superior). Em outras palavras, o aluno deve prever
a comunicao eficaz entre todas as camadas.
3) Saber configurar e gerenciar informaes em um banco de dados.
Nessa competncia se verifica se o aluno consegue criar tabelas em
banco de dados utilizando o conceito de integridade referencial.
Tambm verificamos a criao e o uso de stored procedures.
4) Saber construir aplicaes utilizando o mtodo de Desenvolvimento em
Camadas. Aqui verificamos se o aluno consegue construir aplicaes
fazendo uso eficaz das camadas construdas previamente. Essa
competncia utilizada independente da interface com o usurio a ser
utilizada (Aplicao para Windows, Websites, Aplicao para iPhone,
etc.).
5) Saber usar na prtica tpicos sobre Segurana da Informao. Uma das
exigncias de empresas de qualquer porte o desejo de garantir o sigilo
e a segurana de suas informaes. Nessa competncia verificamos se
o aluno consegue proteger o sistema que construiu contra tentativas de
pessoas mal intencionadas que roubam, deletam ou divulgam
informaes de sistemas invadidos, os chamados crackers.
33
propriedade
dos
processos
caticos;
informao,
diversidade,
34
35
sem o outro; ou melhor, que um simultaneamente o outro, embora sejam
tratados por termos e conceitos diferentes (MORIN, 2001).
Verificamos ento que Morin aceita a complexidade como princpio de
pensamento que considera o mundo e no o princpio revelador da essncia do
mundo. O pensamento complexo acabou com nossa iluso de segurana.
Verificamos que o pensamento humano cheio de dvidas, de incertezas e o
erro o seu principal companheiro, o que nos ensina a viver. Estamos
condenados ao pensamento inseguro, a um pensamento crivado de buracos,
um pensamento que no tem nenhum fundamento absoluto de certeza. Mas
somos capazes de pensar nestas condies dramticas (MORIN, 2001).
1.3.1.2 Transdisciplinaridade
Em que o mtodo de desenvolvimento em camadas apresentado no projeto
LOJA .NET se difere do mtodo tradicional de ensino no Curso Tcnico em
Informtica sob anlise?
Para analisar essa questo faremos uma reflexo sobre o que significa
transdisciplinaridade para ento posteriormente verificarmos se o projeto LOJA
.NET caracteriza-se como sendo transdisciplinar.
Necessariamente
iremos
percorrer
os
conceitos
de
disciplinaridade,
contexto
podemos
abordar
os
conceitos
de
disciplinaridade,
36
H algumas dcadas era um sonho abordar o conceito de transdisciplinaridade.
Atualmente isso tema de debates e conferncias sobre educao,
comprovando que se trata de uma realidade.
Disciplinaridade
Segundo NEST (2000), no senso comum a disciplina inclui trs entendimentos
fundamentais: o primeiro, traduzindo o sentido comum de um campo especfico
ou particular de conhecimento; o segundo, revelado na postura de obedincia e
submisso do homem a regras de conduta e, por ltimo, envolvendo regras e
cdigos comportamentais, especficos e prprios de determinados grupos
sociais (militares, religiosos, filosficos, dentre outros).
J na viso de HECKHAUSEN (1972), o que distingue uma disciplina de outra
so os fatores: 1) domnio material ou objeto de estudo; 2) o conjunto possvel
de fenmenos observveis; 3) o nvel de integrao terica; 4) os mtodos; 5)
os instrumentos de anlise; 6) as aplicaes prticas; e, 7) as contingncias
histricas.
Multidisciplinaridade
um conjunto de disciplinas justapostas sem nenhuma cooperao entre elas
(JANTSCH, 1972).
No entanto, a multidisciplinaridade ocorre quando a soluo de um problema
torna necessrio obter informao de duas ou mais cincias ou setores do
conhecimento sem que as disciplinas envolvidas no processo sejam elas
mesmas modificadas ou enriquecidas 1
Interdisciplinaridade
O prefixo inter originado do latim significa posio intermdia; reciprocidade.
Assim, o termo interdisciplinaridade significa o que relativo ou o que se efetua
entre as disciplinas.
Piaget, Jean. The epistemology of interdisciplinary relationships, citado por Chaves (1998)
37
Para NEST (2000), a interdisciplinaridade revela o caminho entre as disciplinas
que percorrido nas abordagens do conhecimento, em que o observador
recebe
contribuio
metodolgica
informativa
das
disciplinas
disciplinaridade,
multidisciplinaridade,
interdisciplinaridade
38
transdisciplinar indispensvel ao procedimento disciplinar, pois ir conduzir
formao de um ser constantemente atento, capaz de se adaptar aos
constantes desafios impostos pela vida profissional. Este indivduo ser dotado
de uma flexibilidade permanente, orientado para a atualizao de suas
potencialidades interiores.
- Aprender a fazer: dentro do esprito da transdisciplinaridade significa escolher
uma profisso, adquirir os conhecimentos e tcnicas e ela associados e
exercer essa profisso com criatividade. Fazer significa tambm inovar, colocar
na prtica do dia-a-dia as potencialidades criativas.
- Aprender a conviver: acatar as normas da sociedade em que se est inserido.
Tais normas devem ser intimamente aceitas pelo indivduo e no apenas
obedecidas como uma lei imposta exteriormente.
- Aprender a ser: cada um deve descobrir a harmonia ou a desarmonia entre a
vida interior e social. Sondar os fundamentos de suas crenas, para descobrir o
que existe de subjacente.
Por outro lado, a transdisciplinaridade se interessa pela dinmica gerada pela
ao de vrios nveis de realidade ao mesmo tempo... (NEST, 2000). Assim, a
transdisciplinaridade exige uma mudana do sistema de referncia e articula-se
em trs pontos:
a) Vrios nveis de realidade;
b) No mais esperar encontrar a soluo de um problema como um simples
"verdadeiro" ou "falso" da lgica binria;
c) A complexidade de um problema reconhece a impossibilidade da
decomposio deste problema em partes simples.
Nesse contexto a transdisciplinaridade surge na ps-modernidade como uma
nova maneira de enquadrar a cincia. Sem prejudicar a investigao cientfica
disciplinar, mas enriquecendo-a pelo recurso da interdisciplinaridade. Assim
possvel partirmos para novos temas que se apresentam com caractersticas
transversais, ocupando espaos reservados a diversas disciplinas sem que
haja a misso de preencher um espao vazio. No se trata de criar novas
disciplinas, porque no se trata de preencher espaos vazios. Trata-se de
individualizar temas que s existem pela juno de vrias disciplinas e que s
se pode analis-los de forma integrada.
39
No projeto LOJA .NET verificamos por exemplo, que a competncia de saber
configurar e gerenciar informaes em banco de dados engloba a anlise de
trs grficos que representaram o desempenho dos alunos em: 1)
compreender e usar o conceito de Integridade Referencial em Banco de Dados;
2) Criar tabelas em banco de dados e 3) Criar e utilizar stored procedures.
J a competncia de saber como funciona a construo de aplicaes
utilizando o modelo de desenvolvimento em camadas engloba a anlise de
duas disciplinas: 1) Funcionamento da construo de aplicaes para MSWindows e 2) Funcionamento da construo de aplicaes para a WEB.
40
CAPTULO 2
Desenvolvimento em Camadas
41
2.2 Os padres na Internet
42
43
A ltima camada onde esto os contedos e os padres de aplicao. Aqui
residem muitos conflitos com relao universalizao da rede.
Quando se fala tanto nas camadas de infra-estrutura como na de padres
tcnicos, possvel desenhar uma viso universal que possa ser seguida e
implementada por todos os pases. Entretanto, o assunto torna-se mais
complexo quando fala-se de contedos e padres de aplicao. (ver item 2.2.1)
na terceira camada que est a Web, que pode ser definida como a parte da
Internet acessada atravs dos navegadores, ou browsers. Criada por Tim
Berners-Lee, motivado em facilitar a organizao e troca de informaes entre
pesquisadores, a Web foi a grande responsvel pela popularizao da Internet.
O resultado disso que hoje a Web popularmente confundida com a prpria
Internet.
Com o objetivo de assegurar a compatibilidade entre as diferentes novas
tecnologias incorporadas Web, em 1994 foi fundado o W3C* (World Wide
Web Consortium). O W3C administrado por:
1) Laboratrio de Cincia da Computao e Inteligncia Artificial (CSAIL) do
MIT, nos EUA; 2) Consrcio Europeu de Pesquisa para a Informtica e
Matemtica (ERCIM), na Frana; e 3) Universidade de Keio, no Japo.
44
2.2.1 Padres no Desenvolvimento de Software
profissional
de
Desenvolvimento
de
Software
encontra
45
acessar os dados existentes nestes diferentes sistemas gerenciadores de
banco de dados.
Assim como na Internet se faz necessrio um mnimo de padres para permitir
a comunicao e interoperabilidade da rede, temos na camada de contedos e
padres de aplicao da Internet a necessidade da utilizao de padres na
criao de software que sero acessados por milhares de usurios.
A utilizao de padres na criao de software traz inmeros benefcios.
Dentre eles pode-se destacar:
Os
programas
desenvolvidos
segundo
padres
de
com
relao a um fabricante
46
de tempo neste exemplo at que o novo profissional compreenda
os documentos relacionados ao projeto em questo. H casos em
que a documentao insuficiente para mapear os processos do
sistema ou simplesmente inexiste. Este o pior dos casos, pois
ser preciso analisar todo o cdigo-fonte para, a partir da, gerar
fluxogramas mapeando os processos de maneira que seja
possvel a manuteno ou at mesmo o desenvolvimento de um
sistema completamente novo. Isso o que chamamos de
engenharia reversa.
Como vimos na seo anterior (Figura 1), a Internet foi estrutura basicamente
em trs camadas. Existe um consenso na comunidade de desenvolvimento de
software sobre uma srie de conceitos que devem ser seguidos pelos
desenvolvedores para que haja um padro de qualidade que atenda as
exigncias do mercado.
Um dos conceitos mais difundidos atualmente conhecido como Modelo de
Desenvolvimento em Camadas, tambm chamado de N-Tier Development
Model ou N Camadas.
47
Semelhante ao design de camadas da Internet, o Modelo de Desenvolvimento
em Camadas utilizado em desenvolvimento de software tambm composto
por trs camadas conforme ilustrao a seguir.
48
Interpretando a figura da camada interna para a mais externa, temos o
seguinte:
A primeira camada a Camada de Acesso a Dados que tambm chamada
de Data Access Layer (DAL);
A segunda camada a Camada de Regras de Negcio, tambm chamada de
Business Logic Layer (BLL); e
A terceira camada a Camada de Apresentao ou Interface com o Usurio,
tambm chamada de User Interface (UI).
49
A Camada de Regras de Negcio usada para armazenar as regras de como
os negcios de uma empresa funcionam. Em outras palavras, aqui definimos
quais regras so obrigatrias sobre o gerenciamento dos produtos e servios
de uma empresa.
Para exemplificar um uso dessa camada, imaginemos um software que
controla os produtos oferecidos aos clientes em um hipermercado. Cada vez
que um cliente adquire um pacote de caf, ao realizar o pagamento no caixa
realizada a atualizao automtica desse produto no estoque. O gerente da
loja pode definir uma regra para que, sempre que um produto estiver com a
quantidade de estoque inferior a 1000 unidades, este deve aparecer em um
relatrio chamado produtos para reposio. Esse relatrio ento seria
acompanhado pelo gerente para que fossem realizados os pedidos
necessrios aos fornecedores de maneira a prevenir a falta de produtos no
hipermercado.
A Camada de Apresentao a interface do software com o usurio, onde
ocorre a interao homem-mquina. No incio da Internet era comum se ouvir
dizer que a interface com o usurio eram as telas. Isso acontecia porque toda
a interao possvel com os computadores era estabelecida atravs da
exibio de telas nos monitores, de maneira que o usurio pudesse, por
exemplo, informar a opo desejada em um menu ou preencher determinado
campo para a realizao de uma tarefa.
Com a evoluo das Tecnologias da Informao e Comunicao, hoje a
interface homem-computador pode ser realizada atravs de um nmero cada
vez maior de dispositivos. Temos como exemplos:
- Formulrios Web;
- Sistemas e aplicativos em computadores portteis como notebooks e
netbooks;
- Aparelhos celulares;
50
- Videogames j possuem alta capacidade de processamento e acesso
Internet;
- Canais de TV fornecidos em padro digital;
- Carros com sistemas digitais embutidos como localizadores GPS; dentre
outros.
As inovaes para facilitar a interao do ser humano com os dispositivos
eletrnicos esto indo alm do que muitos imaginavam ser possvel.
Atualmente a integrao dentre estes dispositivos tambm est cada vez maior
e isso o que denominamos convergncia digital.
At equipamentos do cotidiano como geladeira, fogo e mquina de lavar
tendem a fazer parte dessa integrao tecnolgica que visa trazer-nos cada
vez mais benefcios.
51
CAPTULO 3
Alunos do CEFET
3.1 Histrico do IFSP
52
A segunda unidade foi inaugurada em 1987, no municpio de Cubato, litoral
paulista, e em 1996 a terceira unidade, em Sertozinho, localizada no interior
do Estado.
Nesse ltimo perodo houve o reconhecimento pblico da Escola Tcnica
Federal de So Paulo pelo excelente preparo profissional dos alunos egressos.
A partir do ano 2000 houve a remodelao e expanso da oferta de ensino da
instituio. Atualmente o CEFET-SP possui aproximadamente 7000 alunos
matriculados e atua nos seguintes nveis e modalidades: Cursos Tecnolgicos
(nvel superior), Formao de Professores (nvel superior), Cursos Tcnicos,
Qualificao Profissional Bsica e Ensino Mdio.
A proposta pedaggica que norteia o seu currculo se baseia nos princpios
explcitos da contextualizao e da interdisciplinaridade e, implicitamente, na
esttica da sensibilidade, na poltica da igualdade e na tica da identidade.
O desenvolvimento dos currculos contempla tanto a transmisso dos
conhecimentos
acumulados
historicamente
pela
humanidade
como
53
- Curso Tcnico de Informtica;
- Curso Tcnico de Eletrnica;
- Curso Tcnico de Automao;
- Curso Superior de Tecnologia em Automao Industrial;
- Curso Superior de Tecnologia em Gesto de Turismo.
3.2 Pblico-alvo da pesquisa: Alunos do Curso Tcnico em Informtica
O Curso Tcnico em Informtica est estruturado em 4 semestres/mdulos.
Apesar de no ser foco do nosso trabalho explorar detalhes quanto ao
contedo programtico deste curso, faz-se necessria uma breve anlise das
habilidades e competncias previstas em algumas disciplinas. Com isso
buscamos justificar a escolha do grupo de alunos para a realizao do projeto
de pesquisa, detalhado posteriormente neste captulo.
A seguir tem-se a relao de disciplinas do curso sob anlise, organizada em
mdulos.
54
Disciplinas Mdulo I
1. Fundamentos de Processamento de Dados
2. Sistemas Operacionais
3. Tcnicas de Programao
4. Prtica de Laboratrio
5. Linguagem de Programao
6. Lngua Portuguesa (Portugus Instrumental)
7. Ingls Instrumental
8. Cincias Aplicadas Estatstica
9. Cincias Aplicadas Matemtica
Tabela 1 Relao de disciplinas do Mdulo I Curso Tcnico em Informtica CEFET-SP
Disciplinas Mdulo II
1. Fundamentos de Processamento de Dados
2. Sistemas Operacionais
3. Tcnicas de Programao
4. Prtica de Laboratrio
5. Linguagem de Programao
Estrutura / Modelagem de Dados
Ingls Instrumental
Matemtica Financeira
Tabela 2 Relao de disciplinas do Mdulo II Curso Tcnico em Informtica CEFET-SP
55
Disciplinas Mdulo IV
Linguagem de Programao
Linguagem de Banco de Dados
Projeto de Sistemas
Segurana do Trabalho
Gesto de Negcios
Trabalho de Concluso de Curso
Tabela 4 Relao de disciplinas do Mdulo IV Curso Tcnico em Informtica CEFET-SP
56
A disciplina Tcnicas de Programao, existente nos mdulos I e II, tem dentre
seus objetivos desenvolver habilidades de:
- Selecionar e utilizar estruturas de dados na resoluo de problemas
computacionais;
- Elaborar e executar casos e procedimentos de testes de programas;
- Redigir instrues de uso dos programas implementados;
- Aplicar tcnicas de modularizao, especificao e verificao de software;
- Aplicar Tcnicas de programao orientada a objetos.
J a disciplina Linguagem de Programao, existente nos mdulos I e II, tem
dentre seus objetivos desenvolver as habilidades:
- Utilizar os conceitos de desenvolvimento de aplicaes em linguagem prpria
para a internet;
- Identificar e elaborar aplicaes para internet com planejamento e estrutura
de organizao;
A disciplina Estrutura e Modelagem de Dados, lecionada no mdulo II, tem por
objetivo desenvolver as seguintes habilidades:
- Interpretar as estruturas modeladas usando um banco de dados e aplicando
as regras de negcio definidas;
- Utilizar ambientes e linguagens para manipulao de dados nos diversos
modelos de SGBD (Sistemas de Banco de Dados: Relacional, Orientado a
objetos, dentre outros);
- Utilizar os conceitos de desenvolvimento de aplicaes em camadas, como
cliente, servidores de aplicaes, regras de negcio e servidores de banco de
dados.
57
A experincia da apresentao do desenvolvimento de um prottipo que
contemple as trs camadas previstas no modelo de desenvolvimento em
camadas foi realizado junto aos alunos do terceiro mdulo pois, para um
melhor aproveitamento, importante que os alunos tenham concludo as
disciplinas: Tcnicas de Programao, Linguagem de Programao e Estrutura
e Modelagem de Dados.
No material didtico produzido para auxiliar os alunos, apresentado o
prottipo de uma aplicao construda em trs camadas que recebeu o nome
de LOJA .NET.
O projeto LOJA .NET foi criado com o objetivo de auxiliar o aluno na aquisio
da competncia de utilizar o mtodo de desenvolvimento em camadas no
desenvolvimento de software.
Mas o que vem a ser competncia?
Segundo Philippe Perrenoud, competncia a faculdade de mobilizar um
conjunto de recursos cognitivos (saberes, capacidades, informaes, etc) para
solucionar com pertinncia e eficcia uma srie de situaes. Esto ligadas a
contextos culturais, profissionais e condies sociais".
Ao invs da memorizao de contedos, para desenvolver competncias
necessrio permitir que o aluno exercite suas habilidades. Isso o levar
aquisio de novas competncias.
Enquanto aprendizes, interiorizamos aquilo que de alguma forma est ligado ao
contedo por um desafio, necessidade ou motivao.
58
Vejamos um exemplo: um indivduo aprende a andar de bicicleta porque
decidiu aceitar o desafio de aprender essa atividade. Estava motivado a
aprender e, essa motivao, permitiu levantar diversas vezes at que a
competncia fosse alcanada.
V-se ento que a competncia uma construo mental e no apenas a
execuo de tarefas. Quem est executando a ao deve saber por que a est
realizando dessa forma e no de outra maneira.
Na rea de desenvolvimento de software impossvel memorizar todos os
comandos existentes em qualquer linguagem de programao. Por isso to
importante a abstrao da implementao fsica dos programas para modelos
matemticos.
Se o aluno possui competncia na utilizao de orientao a objetos, por
exemplo, poder utiliz-la na construo de um software para a Internet
independente da linguagem de programao utilizada.
3.3.1 A necessidade de definir ferramentas
Para desenvolver competncias necessrio trabalhar com a utilizao de
projetos. Propor tarefas complexas e desafios aos alunos permite mobilizar
seus conhecimentos e habilidades.
Visando permitir a implementao de um projeto real capaz de demonstrar o
uso e as vantagens do modelo de desenvolvimento de software em camadas,
houve a necessidade da adoo de determinado ambiente integrado de
desenvolvimento (ou IDE Integrated Development Environment1), uma
linguagem de programao especfica e um Sistema Gerenciador de Banco de
Dados.
Rpido
de
Aplicativos"),
que
visa
maior
produtividade
dos
59
Considerando a experincia do pesquisador na implementao de solues de
informtica utilizando a tecnologia Microsoft, para a criao do projeto LOJA
.NET utilizou-se:
- Sistema Operacional: Microsoft Windows XP Professional;
- Linguagem de Programao: C# .NET;
- Sistema Gerenciador de Banco de Dados: Microsoft SQL Server 2005;
- Ambiente de Desenvolvimento: Microsoft Visual Studio 2005 Professional
Edition.
Tendo idealizado o projeto LOJA .NET, era necessrio compartilh-lo junto aos
alunos do curso tcnico em informtica do CEFET para que fosse possvel
obter um feedback da eficcia desta proposta.
Com isso em mente, pesquisamos os principais portais na Internet de
Tecnologia da Informao para a submisso de uma srie de artigos para
aprovao.
Aps algumas semanas de pesquisa identificamos um forte candidato para a
submisso de artigos, tratava-se de um portal de tecnologia denominado Linha
de Cdigo.
60
O primeiro artigo foi aceito e publicado pelo portal Linha de Cdigo em
08/04/20081 e o ltimo, de uma srie de 9 artigos, foi publicado no mesmo site
em 01/08/20082.
No perodo de abril a agosto de 2008 verificou-se um crescente interesse por
parte de programadores iniciantes e a rea de comentrio dos artigos virou
uma espcie de comunidade virtual, local onde os programadores trocavam
experincias relacionadas ao contedo da srie de artigos.
A srie de artigos foi construda como sendo um relatrio cientfico. Era
necessrio permitir a qualquer leitor uma viso global do estudo realizado,
proporcionando a fcil consulta e fornecendo de modo objetivo as informaes
mais relevantes. Alm dos desafios pedaggicos inerentes ao Ensino
Distncia, houve desafios tcnicos como a tentativa de prever a srie de
problemas que poderiam ocorrer caso os leitores no estivessem com uma
gama de opes pr-definidas em seus computadores.
O pesquisador adquiriu equipamentos para planejar e montar em sua
residncia um verdadeiro Laboratrio para uma centena de testes demandados
pelo projeto LOJA .NET. Diferentes verses de sistemas operacionais
(Windows XP Home, Windows XP Professional, Windows Vista), diferentes
verses de Sistemas Gerenciadores de Bancos de Dados (Microsoft SQL
Server 2000, 2005 e 2008) bem como diferentes verses da prpria IDE
Microsoft Visual Studio (MSVS 2003, 2005, 2008) foram utilizadas para criar
variados cenrios. O projeto LOJA .NET foi exaustivamente testado pois o
desejo do pesquisador foi produzir um material com a melhor qualidade
possvel.
1 http://www.linhadecodigo.com.br/Artigo.aspx?id=1898
2 http://www.linhadecodigo.com.br/Artigo.aspx?id=1938
61
Outro fator a ser ressaltado foi a misso de realizar uma redao simples e
objetiva. O objetivo era permitir a prtica do desenvolvimento de software sem
a necessidade da transmisso explcita de teorias computacionais ou
matemticas. O pesquisador desenvolveu esse material didtico como um guia
prtico de maneira a permitir que os leitores pudessem desenvolver o projeto
inteiro sem que tivessem, necessariamente, domnio das teorias envolvidas.
Assim, o leitor pode se aprofundar na teoria relacionada ao tpico estudado
conforme sua necessidade e interesse. Conforme vimos no pensamento
complexo de Morin explicitado no primeiro captulo, o Aprender a Conhecer e o
Aprender a Fazer, dependem sobretudo das atitudes do aprendiz. A
transdisciplinaridade exige do aprendiz mais do que obedecer a ordens
impostas pelas regras da sociedade em que vive. No basta interiorizar esse
conjunto de regras, o aprendiz deve se conhecer para ento poder escolher
corretamente sua profisso. Quanto maior o autoconhecimento, maior a chance
de se escolher a profisso em que o aprendiz se sentir realizado, motivado,
feliz. Amar o seu ofcio o que permite no s se especializar constantemente,
mas sobretudo inovar.
Alguns leitores da srie de artigos demonstraram satisfao com esse trabalho
e sugeriram ao pesquisador uma expanso dos artigos e a publicao de um
livro no mesmo formato didtico.
O pesquisador imaginava os desafios envolvidos no projeto de publicao de
um livro mas no hesitou. Seguiu em frente, persistiu, e para a felicidade dos
leitores que enviaram mensagens de apoio, obteve sucesso nessa empreitada.
62
3.3.3 O livro "Desenvolvimento em Camadas com C# .NET"
O pesquisador recebeu muitos e-mails dos leitores dos artigos disponibilizados
no portal Linha de Cdigo. Algumas dessas mensagens eram de incentivo para
a expanso do contedo e a publicao de um livro sobre a metodologia de
desenvolvimento em camadas utilizando a linguagem de programao C#
.NET.
Vislumbramos a real possibilidade da publicao de uma obra que abordasse
de forma totalmente prtica o conceito de desenvolvimento em camadas. Os
desafios relacionados ao sucesso na realizao deste projeto eram
conhecidos:
- O contedo da obra indito no mercado?
- Qual o pblico-alvo?
- O que difere a obra das j existentes sobre o tema?
Essas questes nortearam o trabalho de expanso do projeto LOJA .NET para
atender a demanda tanto dos leitores como do mercado.
Aps a concluso da expanso do projeto LOJA .NET, o primeiro captulo foi
submetido diversas editoras especializadas em livros tcnicos at que o
projeto de publicao do livro foi acordado com a Visual Books Editora Ltda.
63
Tendo realizado as formalidades contratuais, iniciamos em equipe um trabalho
de reviso dos captulos, ilustrao da capa e outros detalhes. Em novembro
de 2008 foi publicado o livro Desenvolvimento em Camadas com C# .Net,
obra que teve como ilustrao de capa a imagem a seguir:
64
Figura 4 Palestra proferida para os alunos do Professor Nelson Paz - CEFET Cubato.
22/10/2010. Carlos Camacho ( esquerda) e Prof. Nelson Paz.
65
Conforme o citado no item 3.2 (pblico-alvo), antes de iniciar este projeto os
alunos j haviam concludo disciplinas como orientao a objetos, momento em
que aprenderam a linguagem de programao chamada Java.
A pesquisa realizada com questionrios junto aos alunos aps a realizao do
projeto LOJA .NET nos permitiu fazer uma tabulao das habilidades
adquiridas e percebidas pelos alunos ao trmino do processo.
O professor Nelson colaborou com as atividades apresentando o projeto LOJA
.NET para os alunos do CEFET e juntos definimos um plano de trabalho.
No segundo semestre de 2008, o professor realizava a construo dos
programas juntamente com os alunos, utilizando-se do datashow como um dos
recursos didticos.
J no primeiro semestre de 2009, o professor percebeu um melhor
aproveitamento da turma quando utilizou o quadro negro (branco) e giz (pincel)
para as aulas de programao em laboratrio de informtica. No incio da aula
o professor fazia exposio do objetivo da aula no quadro para que todos
compreendessem. Feita a apresentao, o professor solicitava que cada grupo
de alunos codificasse a soluo dos exerccios propostos em seus
computadores, permitindo a consulta entre grupos.
Ao fazer junto com os alunos a programao dos exerccios, mais dvidas
foram esclarecidas e percebeu-se um melhor aproveitamento da aula. O
professor podia utilizar-se da lousa para realizar explicaes mais detalhadas
enquanto os alunos tinham liberdade para implementar sua maneira os
conceitos de programao demonstrados em laboratrio.Verificamos que
anteriormente quando se usava intensamente somente o recurso Datashow,
alguns alunos ficavam dispersos.
Ocorrendo durante todo o processo de ensino-aprendizagem, essa avaliao
favoreceu a negociao e a autonomia do aluno no gerenciamento de seu
aprendizado, possibilitando o desenvolvimento de competncias scioprofissionais.
66
importante que o educador consiga determinar aonde seu aluno j chegou
quando o desejo que ele tenha um grupo de habilidades necessrias
competncia em desenvolver software. O aluno j sabe o que uma classe e
como implement-la?
Ao realizar esse questionamento, se quer a certificao de que o aluno tem o
conceito e sabe construir uma classe por conta prpria, sem a necessidade
da ajuda de outras pessoas.
Uma das maneiras de identificar isso quando o professor est com esse
aluno em laboratrio de informtica. O educador prope um problema e analisa
o que o aluno faz para tentar solucion-lo.
Se o aluno constri sozinho uma classe, significa que ele tem a capacidade de
realizar esta tarefa de forma independente. Isso o que Vygotsky chama de
nvel de desenvolvimento real.
As funes psicolgicas que fazem parte do nvel de desenvolvimento real do
aluno em determinado momento de sua vida so aquelas j bem estabelecidas
naquele momento.
Conhecendo o que seu aluno pode fazer por conta prpria, importante agora
saber o que ele consegue fazer com a ajuda de outras pessoas mais capazes.
A capacidade de desempenhar tarefas com a ajuda de outras pessoas, o que
Vygotsky denomina nvel de desenvolvimento potencial.
Existem tarefas que o aluno no consegue desempenhar sozinho, mas aps
uma demonstrao do professor ou de pistas dadas, ele capaz de realiz-las.
Da a justificativa para o pesquisador propor ao professor Nelson que os alunos
se organizassem em grupos de trabalho. A interao social tem grande
importncia no processo de construo das funes psicolgicas humanas.
Agora podemos definir o que, segundo Vygotsky, conhecida por zona de
desenvolvimento proximal. a distncia entre o nvel de desenvolvimento
real e o nvel de desenvolvimento potencial. , assim, o caminho que o aluno
vai percorrer at que consiga realizar por conta prpria as tarefas que hoje s
consegue realizar com o auxlio de algum.
A zona de desenvolvimento proximal est em constante mutao na vida de
um ser humano: aquilo que uma pessoa s capaz de realizar com a ajuda de
algum hoje, ser possvel ser realizado de maneira independente no futuro.
(Vygotsky, 1997, p. 58-60)
67
68
assinalou Muito Bom na sua auto-avaliao, no grfico resumo este
aluno entrar na estatstica de alunos que tiveram 1 nvel de avano. Se,
por exemplo, um aluno estava inicialmente com o nvel Fraco e no
questionrio final assinalou Bom, entrar na estatstica de alunos que
tiveram 2 nveis de avano, pois o nvel imediatamente posterior ao
Fraco o Regular, e depois temos o nvel Bom.
69
1) Programao Orientada a Objetos (Uso de classes, mtodos e
propriedades)
Antes
Grfico
Depois
1:
Conceitos
de
Programao
Orientada
Objetos
67% dos alunos afirmaram terem notado melhoria sobre o uso do conceito de
Orientao a Objetos quando do desenvolvimento de software.
No captulo inicial verificamos que dentre as competncias tcnicas que o
desenvolvedor de software deve ter est a necessidade de saber analisar os
documentos que especificam o que o software deve fazer.
70
A prtica desse conceito importante pois atravs da experincia que o
desenvolvedor pode adquirir a competncia de interpretar o que precisa ser
feito quando tem em mos um documento que especifica o que um software
deve fazer.
Verificamos que com o projeto LOJA .NET os alunos do CEFET tiveram a
oportunidade de melhorar seu entendimento sobre como aplicar o conceito de
Orientao a Objetos na prtica.
71
2) Conceito de Desenvolvimento em Camadas
Antes
Depois
72
Quando o aluno tem domnio sobre a metodologia de Desenvolvimento em
Camadas, significa que ele sabe construir as classes de uma camada e
tambm capaz de estabelecer a comunicao entre as camadas existentes
em um software.
Verificamos atravs do grfico 2 que a maioria dos alunos compreendeu o
processo de comunicao entre as classes.
Em termos tcnicos quando uma camada est se conectando outra dizemos
que a primeira est fazendo uma referncia segunda. Quando o
programador consegue fazer estas referncias, ele capaz de reutilizar tudo o
que j est funcionando em uma camada existente. No necessrio utilizar a
programao para reescrever algo que j foi escrito anteriormente por ele
mesmo ou por outro desenvolvedor.
Com isso os alunos demonstraram um ganho de produtividade pois
conseguiram desenvolver o projeto LOJA .NET no menor tempo possvel.
73
3) Conceito de Integridade Referencial em Banco de Dados
Antes
Grfico
Depois
3:
Integridade
Referencial
em
Banco
de
Dados
74
A primeira habilidade - representada no grfico 3 - o conceito de Integridade
Referencial. Analisando o grfico verificamos que apenas 33% dos alunos
perceberam alguma melhoria na assimilao desse conceito.
Apesar
da
integridade
referencial
no
ser
um
assunto
trivial
para
75
4) Criao de Tabelas em Banco de Dados
Antes
Grfico
Depois
4:
Criao
de
Tabelas
em
Banco
de
Dados
76
Atravs do projeto LOJA .NET os alunos puderam verificar que a construo de
um sistema de banco de dados comea com a construo de uma tabela de
cada vez. Se for preciso criar uma tabela para armazenar os dados de clientes
e uma tabela para armazenar dados das vendas, qual delas o aluno deve criar
primeiro? Existir algum problema se o aluno cri-las na ordem que desejar?
No exerccio dessa habilidade os alunos compreenderam que importante
obedecer a uma ordem. Primeiro criamos a tabela de clientes e posteriormente
criamos a tabela de vendas. Mas por qu?
Para que no momento do registro da venda, j existam clientes cadastrados de
forma que o sistema possa relacionar qual cliente est adquirindo
determinados produtos.
Os alunos puderam verificar que aqui o momento de usar, tambm, o
conceito de integridade referencial. Compreenderam que se as tabelas no
forem criadas na ordem correta o software no vai funcionar de maneira
adequada.
77
5) Criao e uso de Stored Procedures
Antes
Grfico
Depois
5:
Criao
uso
de
Stored
Procedures
78
projeto
LOJA
.NET
os
alunos
aprenderam
armazenar
estes
79
6) Funcionamento da construo de aplicaes para MS-Windows
Antes
Grfico
Depois
6:
Funcionamento
da
construo
de
Aplicaes
para
MS-Windows
80
Construir Aplicaes utilizando o modelo de desenvolvimento em camadas:
Essa competncia foi analisada a partir dos grficos de nmero 6 e 7. Sobre o
desenvolvimento de aplicaes para Windows, 44% dos alunos perceberam
melhorias sendo que destes, 33% perceberam o projeto como um diferencial
para a assimilao desta competncia.
No segundo captulo verificamos que o surgimento da Internet foi possvel
devido a um acordo entre diversas empresas de tecnologia com relao
adoo de padres. Padres estes que foram adotados para a construo de
cada camada da Internet.
A construo de aplicaes para MS-Windows se encontra na Camada de
Aplicao da Internet. Ela aproveita as camadas anteriores, como por exemplo,
o protocolo de comunicao TCP/IP que permite o envio e recebimento de
informaes dentre as redes formadas por computadores com diferentes
sistemas operacionais.
Como o desenvolvedor de software tem a vantagem de no precisar se
preocupar com protocolos de comunicao entre redes, pode ter foco na tarefa
de construir sua aplicao.
Os alunos construram no projeto LOJA .NET uma aplicao que foi executada
no sistema operacional Microsoft Windows.
Existem alguns cientistas da computao e alunos dedicados em projetos com
o objetivo de fazer com que um software desenvolvido possa ser executado da
mesma forma nos diferentes sistemas operacionais existentes (como Microsoft
Windows, Linux, MacOS, dentre outros).
No laboratrio de informtica utilizado pelos alunos do CEFET tnhamos
licenas de MS-Windows devido a um programa de parceria com a Microsoft.
Devido a esse fato e tambm pelo sistema operacional Microsoft Windows ser
o mais utilizado atualmente, foi este o ambiente escolhido para o
desenvolvimento do projeto LOJA .NET.
Os alunos puderam experimentar como reunir os recursos de bancos de dados,
sistema operacional e linguagem de programao para possibilitar a
construo de um software segundo os padres de qualidade exigidos pelo
mercado.
81
7) Funcionamento da construo de aplicaes para a WEB
Antes
Grfico
Depois
7:
Funcionamento
da
construo
de
aplicaes
para
Web
82
Construir Aplicaes utilizando o modelo de desenvolvimento em camadas:
Com relao ao desenvolvimento de aplicaes para a Web, 67% dos alunos
avaliaram positivamente o projeto e destes, 22% afirmaram que o projeto foi de
grande relevncia para seu aprendizado.
Verificamos no captulo sobre Desenvolvimento em Camadas a importncia
dos padres no Desenvolvimento de Aplicaes.
Os alunos puderam construir uma pgina Web que pode ser acessada por
qualquer computador conectado Internet. Isso possvel devido a
padronizao existente e exigida das empresas que desenvolvem os browsers
ou navegadores Internet. Alguns exemplos de navegadores so: Internet
Explorer e Mozilla Firefox.
Devido ao fato de todos os navegadores s exibirem uma linguagem chamada
HTML, necessrio que o desenvolvedor utilize essa linguagem para que seja
possvel o acesso e visualizao do contedo existente no site criado.
Os alunos experimentaram como a ferramenta Microsoft Visual Studio permite
a criao de pginas para a Internet reaproveitando as camadas que eles
mesmos criaram quando da construo da aplicao para MS-Windows.
Na aplicao MS-Windows os alunos precisaram construir uma camada para
realizar o acesso ao banco de dados e uma camada para contemplar
determinadas regras de negcio (Exemplo: na incluso de cliente o campo
nome no pode ser vazio).
Quando desenvolveram a pgina Web, os alunos verificaram que foi possvel
reutilizar estas duas camadas. Dessa forma no foi necessrio reescrever as
partes do software responsveis por estas tarefas pois isso j tinha sido feito
anteriormente.
No segundo captulo vimos que em 2007 foi criado um escritrio brasileiro do
W3C (World Wide Web Consortium). Isso demonstra a importncia de padres
pois a misso do W3C assegurar a compatibilidade entre as diferentes novas
tecnologias incorporadas Web. Existe um grande grupo de pessoas
dedicadas nessa misso em todo o mundo, e isso o que possibilita a alta
produtividade e reaproveitamento de cdigo que os alunos do CEFET puderam
vivenciar no projeto LOJA .NET no momento em que construram uma
aplicao para a Web.
83
8) Como funciona na prtica o uso da Segurana da Informao
Antes
Grfico
Depois
8:
Como
funciona
na
prtica
uso
da
Segurana
da
Informao
Verificamos que 78% dos alunos afirmaram ter sido positivo o uso do projeto
LOJA .NET para a assimilao de como usar tpicos de Segurana da
Informao no processo de construo de software.
No captulo 2, vimos na seo "Padres no Desenvolvimento de Software" que
existem trs perfis de usurios quando o assunto o uso da Internet: Usurio
leigo, Usurio do governo e Usurio tcnico.
84
O usurio tcnico conhece como a Internet foi construda fisicamente e quais
mecanismos estabelecem a conexo entre os computadores e demais
dispositivos da rede.
Infelizmente existem no mundo pessoas boas e pessoas ms. Quando uma
pessoa m um usurio tcnico isso se torna um risco s empresas e
sociedade, pois na Internet realizamos compras, acessamos nossa conta
bancria para realizar pagamentos e usufrumos de diversos servios
disponveis.
No livro "Desenvolvimento em Camadas com C# .NET" os alunos do CEFET
compreenderam que o desenvolvedor precisa conhecer mecanismos para
tornar o seu software seguro contra pessoas mal intencionadas.
No projeto LOJA .NET utilizado no livro, os alunos utilizaram tcnicas para
esconder informaes referentes a localizao do computador que armazena
os dados acessados pelo software que desenvolveram. Isso inibe a ao de
pessoas que tentarem invadir esse computador para roubar ou destruir
informaes.
Os alunos compreenderam que criar um software seguro uma exigncia de
empresas de pequeno, mdio e grande porte.
85
9) De uma forma geral, como voc avalia o seu conhecimento em
Desenvolvimento de Aplicaes comerciais que atendam as exigncias de
qualidade das empresas?
Antes
Grfico
Depois
9:
Conhecimentos
gerais
em
Desenvolvimento
de
Sistemas
67% dos alunos afirmaram que o projeto LOJA .NET contribuiu positivamente
para a aquisio de conhecimento sobre desenvolvimento de aplicaes
utilizando a metodologia de desenvolvimento em camadas.
86
Verificamos neste terceiro captulo que os alunos do CEFET vivenciaram
atravs de projeto LOJA .NET todas as fases de desenvolvimento de um
software.
O software desenvolvido pelos alunos atende as exigncias atuais de mercado
pois usa uma metodologia de desenvolvimento - a metodologia de
Desenvolvimento em Camadas - assim como possui mecanismos de
segurana de maneira a se prevenir contra tentativas de invases.
Analisamos neste grfico como os alunos se sentiam preparados para
desenvolver um software com todas as caractersticas exigidas pelo mercado
antes e aps executarem o projeto LOJA .NET.
Neste captulo vimos ainda que durante a execuo do projeto LOJA .NET
houve uma constante mutao da zona de desenvolvimento proximal dos
alunos.
Inicialmente havia muitos tpicos que eles desconheciam. Alguns estavam
prximos de se tornarem conhecimento real, pois os alunos conseguiam
executar determinadas construes com a ajuda de alunos mais avanados.
Depois de algumas semanas, estes alunos j dominavam e conseguiam
executar sozinhos o que anteriormente s conseguiam fazer com a ajuda de
alunos mais avanados. Neste assunto que estes alunos que acabaram de
conhecer atuavam como multiplicadores, ajudando os que ainda no haviam
conquistado esse patamar.
Tivemos a oportunidade de explorar esse ciclo do aprender a fazer luz da
teoria de Vygotsky, que nos deu suporte na afirmao de que o ser humano
est sempre aprendendo coisas novas, e o que uma pessoa hoje s faz com a
ajuda de algum ser possvel ser realizado de forma independente no futuro.
87
10) Como voc avalia a importncia desse projeto na sua formao como
profissional de tecnologia da informao?
Grfico
10
Avaliao
da
importncia
do
projeto
LOJA
.NET
pelos
alunos
88
Verificamos que 22% dos alunos consideraram o projeto regular, 56%
afirmaram que a importncia do projeto na sua formao foi boa e 22% dos
alunos participantes do projeto disseram que o projeto foi muito bom para a sua
formao.
Foi importante verificar como os alunos avaliavam a relevncia do projeto LOJA
.NET em sua formao, pois o objetivo desse projeto foi propiciar eles
experincia em desenvolvimento de software de forma a agregar habilidades e
competncias teis na sua atuao profissional.
89
CONSIDERAES FINAIS
todos os
seus
servios,
90
duplicidade. Esse modo de construo da Internet permite que ela evolua, pois
e criao de novos servios pode ocorrer sem a necessidade de grandes
modificaes no que j est sendo utilizado pelos usurios da Internet
atualmente.
Atravs de uma comparao, vimos que o conceito de reaproveitar o que j
est em funcionamento tambm aplicado no mtodo de desenvolvimento em
camadas. Tcnica que foi utilizada pelos alunos durante a execuo do projeto
LOJA .NET.
O captulo final contribuiu para uma anlise qualitativa pois com o projeto LOJA
.NET os alunos: Utilizaram um projeto de aplicao para construir um software;
Conheceram e utilizaram o mtodo de desenvolvimento em camadas e
tambm exercitaram cinco importantes competncias mapeadas no captulo
inicial.
Atravs de questionrios aplicados antes e aps a execuo do projeto LOJA
.NET pelos alunos, no terceiro captulo foi possvel demonstrar graficamente a
evoluo dos alunos nos conhecimentos envolvidos.
Foi possvel verificar que o projeto no contribuiu satisfatoriamente com relao
assimilao do conceito de Integridade Referencial, habilidade importante
para a competncia de Configurao e Gerenciamento de informaes em
Banco de Dados.
Com a anlise realizada no captulo final verificamos que de um modo geral, o
projeto LOJA .NET mostrou-se relevante para que os alunos desenvolvessem
competncias sobre desenvolvimento de software. Vale ressaltar que apesar
do livro "Desenvolvimento em Camadas com C# .NET" ser um guia passo a
passo sem prvias explanaes tericas em cada captulo, o projeto LOJA
.NET existente nessa obra foi concebido com foco no uso de padres e
metodologias de desenvolvimento, e no no uso de tecnologias. Em outras
palavras, pode-se afirmar que devido ao nvel de abstrao existente no projeto
LOJA .NET, ao invs de utilizarmos como sistema operacional, linguagem de
programao e sistema gerenciador de banco de dados a trade Microsoft
Windows, Microsoft C# .NET e Microsoft SQL Server, poderamos ter utilizado,
respectivamente, Linux, Java e MySQL.
91
Longe de esgotar as possibilidades, esperamos num futuro prximo continuar
esta pesquisa, em busca de novas estratgias para auxiliar a formao do
profissional de tecnologia da informao na rea de desenvolvimento de
software.
Por fim, esperamos que este trabalho possa constituir uma ferramenta que
auxilie o futuro pesquisador em sua prpria jornada.
92
ESTUDOS FUTUROS
Se por um lado a interao dos alunos com o projeto LOJA .NET nos permitiu
navegar nesse mar de tecnologia, por outro agora possvel vislumbrar novas
possibilidades.
Os alunos do CEFET participantes deste trabalho compreenderam, dentre
outros tpicos, como as informaes so passadas de uma camada para outra
utilizando a programao orientada a objetos. Esse conhecimento constitui
uma boa base e com isso talvez seja possvel avanar em um tpico de
padres de desenvolvimento conhecido por Test-Driven Development ou TDD.
O TDD uma metodologia aplicada no desenvolvimento de software onde
primeiro se desenvolve os testes e depois as regras de negcio so
implementadas, ou seja, trata-se de um desenvolvimento dirigido por testes.
O uso do TDD permite eliminar os defeitos do cdigo no incio do processo,
evitando longos perodos de reviso tcnica do projeto. Essa tcnica oferece
um grande nvel de confiana no cdigo uma vez que um grande nmero de
testes ajuda a limitar a quantidade de defeitos.
O pesquisador que se identificar com essa pesquisa cientfica talvez possa
encontrar apoio em ferramentas como o NUnit da IDE Microsoft Visual Studio e
tambm o JUNIT existente na IDE Eclipse. Atualmente estas IDEs j oferecem
suporte ao conceito de TDD. Se empresas, profissionais de desenvolvimento e
a comunidade cientfica utilizarem com mais freqncia tais ferramentas a
tendncia que elas evoluam.
Outra possibilidade de estudo para dar continuidade ao projeto LOJA .NET
explorar o uso do Entity Framework. No projeto LOJA .NET utilizamos na
camada de acesso a dados comandos especficos do sistema de banco de
dados Microsoft SQL Server. E se o projeto LOJA .NET fosse um sistema
comercial e surgisse a necessidade de substituir o sistema de banco de dados
Microsoft SQL Server para outro sistema de banco de dados qualquer, por
exemplo o Oracle? Isso no seria uma tarefa simples, pois o sistema LOJA
.NET possui acoplamento ao SQL Server. Significa que ele dependente,
contm comandos especficos para o gerenciamento do SQL Server. O uso do
Entity Framework permite o desacoplamento do sistema de banco de dados, ou
93
seja, o desenvolvedor de software no precisar reescrever a camada de
acesso a dados quando houver a necessidade de substituir o sistema de banco
de dados utilizado pelo software que construiu.
94
GLOSSRIO
Browser. um programa de computador que habilita seus usurios a
interagirem com documentos virtuais da Internet, tambm conhecidos como
pginas HTML, que esto hospedadas em um servidor Web.
Cdigo fonte (cdigo-fonte, ou source code em ingls) o conjunto de
palavras ou smbolos escritos de forma ordenada, contendo instrues em uma
das linguagens de programao existentes, de maneira lgica. Existem
linguagens que so compiladas e as que so interpretadas. As linguagens
compiladas, aps ser compilado o cdigo fonte, transformam-se em software,
ou seja, programas executveis. Este conjunto de palavras que formam linhas
de comandos severa estar dentro da padronizao da linguagem escolhida,
obedecendo critrios de execuo. Atualmente, com diversificao de
linguagens, o cdigo pode ser escrito de forma totalmente modular, podendo
um mesmo conjunto de cdigos ser compartilhado por diversos programas e,
at mesmo, linguagens.
Cracker. Pessoa que possui conhecimentos avanados de computao e usa
esse conhecimento para invadir e destruir sistemas alheios.
Desenvolvimento em Camadas. Conceito da rea de Engenharia de
Sistemas. uma metodologia que permite a construo de um software em
partes separadas; estas partes so chamadas de camadas. Nesta metodologia
de desenvolvimento, os programas ficam logicamente separados de maneira a
facilitar a manuteno e a reutilizao dos programas j desenvolvidos.
E-mail. (Electronic mail: mensagem eletrnica). um mtodo que permite
compor, enviar e receber mensagens atravs de sistemas eletrnicos de
comunicao.
Engenharia de software. uma rea do conhecimento da computao
voltada para a especificao, desenvolvimento e manuteno de sistemas de
software aplicando tecnologias e prticas de gerncia de projetos e outras
disciplinas, objetivando organizao, produtividade e qualidade. Atualmente,
essas tecnologias e prticas englobam linguagens de programao, banco de
dados, ferramentas, plataformas, bibliotecas, padres, processos e a questo
da Qualidade de Software.
95
Os fundamentos cientficos para a engenharia de software envolvem o uso de
modelos abstratos e precisos que permitem ao engenheiro especificar, projetar,
implementar e manter sistemas de software, avaliando e garantindo suas
qualidades.
Engenharia reversa. Consiste em usar a criatividade para, a partir de uma
soluo pronta, retirar todos os possveis conceitos novos ali empregados.
um processo de anlise de um artefato (um aparelho, um componente
eltrico, um programa de computador, etc.) e dos detalhes de seu
funcionamento, geralmente com a inteno de construir um novo aparelho ou
programa que faa a mesma coisa, sem realmente copiar alguma coisa do
original.
Entity Framework (EF). um conjunto de tecnologias desenvolvido pela
Microsoft que suporta o desenvolvimento a aplicaes orientadas a dados.
Arquitetos e desenvolvedores de aplicaes orientadas a dados tem se
debatido com a necessidade de alcanar dois objetivos distintos: Modelar
entidades, relacionamentos e problemas da lgica de negcio; Trabalhar com
sistemas de armazenamento de dados para armazenar e consultar
informaes. Os dados podem estar distribudos em mltiplos sistemas de
armazenamentos, cada um com suas particularidades e protocolos. Mesmo em
situaes onde um nico sistema de armazenamento usado ainda existe a
necessidade de balancear os requisitos de armazenamento com os requisitos
de escrever um cdigo eficiente. O Entity Framework permite aos
desenvolvedores trabalhar com dados na forma de propriedades e objetos
especficos do domnio (como clientes, produtos) sem a obrigao de
relacion-los com as tabelas do banco de dados e as colunas onde os dados
esto armazenados. Isto possvel pela elevao do nvel de abstrao no
qual os desenvolvedores podem trabalhar quando esto tratando com os dados
e pela reduo do cdigo que necessrio para manter as aplicaes
orientadas a dados.
Fluxograma. um tipo de diagrama, e pode ser entendido como uma
representao esquemtica de um processo, muitas vezes feito atravs de
grficos que ilustram de forma descomplicada a transio de informaes entre
os elementos que o compem. Podemos entend-lo, na prtica, como a
documentao dos passos necessrios para a execuo de um processo
96
qualquer. uma das Sete Ferramentas da Qualidade. Muito utilizada em
fbricas e indstrias para a organizao de produtos e processos.
O Diagrama de Fluxo de Dados (DFD) utiliza do Fluxograma para modelagem
e documentao de sistemas computacionais.
GPS. O sistema de posicionamento global, popularmente conhecido por GPS
(acrnimo do original ingls Global Positioning System, ou do portugus "geoposicionamento por satlite") um sistema de navegao por satlite que
fornece a um aparelho receptor mvel a posio do mesmo, assim como
informao horria, sob quaisquer condies atmosfricas, a qualquer
momento e em qualquer lugar na Terra, desde que o receptor se encontre no
campo de viso de quatro satlites GPS.
Hacker. Originrio do ingls, o termo hacker utilizado no portugus. Os
Hackers utilizam todo o seu conhecimento para melhorar software de forma
legal. A maioria dos hackers so usurios avanados de Software Livre como o
sistema operacional GNU/Linux.
HTML. (acrnimo para a expresso inglesa HyperText Markup Language, que
significa Linguagem de Marcao de Hipertexto) uma linguagem de
marcao utilizada para produzir pginas na Web. Documentos HTML podem
ser interpretados por navegadores (ou browsers).
Interoperabilidade. a capacidade de um sistema (informatizado ou no) de
se comunicar de forma transparente (ou o mais prximo disso) com outro
sistema (semelhante ou no). Para um sistema ser considerado interopervel,
muito importante que ele trabalhe com padres abertos. Seja um sistema de
portal, seja um sistema educacional ou ainda um sistema de comrcio
eletrnico, ou e-commerce, hoje em dia se caminha cada vez mais para a
criao de padres para sistemas.
Internet. Tambm chamada de WWW ou World Wide Web. a definio para
a rede mundial de computadores.
MILNET. Rede de computadores interligados. Foi criada pelos militares do
Departamento de Defesa dos EUA.
N Camadas. Um programa de n camadas um aplicativo desenvolvido de
forma a ter vrias camadas lgicas. Cada camada auto-contida o suficiente
de forma que a aplicao pode ser dividida em vrios computadores em uma
rede distribuda.
97
A forma mais comum da arquitetura a aplicao em trs camadas (3-Tier),
comumente usada em aplicaes Web, na qual as camadas so: interface com
o usurio, lgica do negcio, e banco de dados.
Cada camada dessa arquitetura normalmente mantida por um servidor
especfico para tornar-se mais escalonvel e independente das demais. Essa
arquitetura tem como caractersticas: baixos custos de disponibilizao; baixos
custos na mudana da base de dados; baixos custos na mudana da lgica de
negcios; eficiente armazenamento e reutilizao de recursos.
Servidor Web. A expresso servidor web pode significar duas coisas:
1. Um programa de computador responsvel por aceitar pedidos http de
clientes, geralmente os navegadores, e serv-los com respostas http, incluindo
opcionalmente dados, que geralmente so pginas web, tais como documentos
HTML com objetos embutidos (imagens, etc.);
2. Um computador que executa um programa e prov a funcionalidade descrita
acima.
Software. uma seqncia de instrues a serem executadas por um
computador. Software tambm o nome dado ao conjunto de produtos
desenvolvidos no processo de software, onde incluem-se programas, manual
de instalao, manual do usurio, dentre outros.
Stored procedure ou Procedimento armazenado uma coleo de comandos
em SQL para serem executados no Banco de dados. Normalmente usado
para tarefas que se repetem em um sistema. O procedimento armazenado
aceita parmetros de entrada e retorna um valor de status que indica se a
coleo de comandos foi ou no executada com sucesso. O procedimento
armazenado tambm permite reduzir o trfego na rede, melhorar a
performance e criar mecanismos de segurana.
TCP-IP. um conjunto de protocolos de comunicao entre computadores em
rede (tambm chamado de pilha de protocolos TCP/IP). Seu nome vem de dois
protocolos: o TCP (Transmission Control Protocol Protocolo de Controle de
Transmisso) e o IP (Internet Protocol Protocolo de Interconexo). O conjunto
de protocolos pode ser visto como um modelo de camadas, onde cada camada
responsvel por um grupo de tarefas, fornecendo um conjunto de servios
bem definidos para o protocolo da camada superior. As camadas mais altas
esto logicamente mais perto do usurio (chamada camada de aplicao) e
98
lidam com dados mais abstratos, confiando em protocolos de camadas mais
baixas para tarefas de menor nvel de abstrao.
W3C. O World Wide Web Consortium um consrcio de empresas de
tecnologia, atualmente com cerca de 500 membros. Fundado por Tim BernersLee em 1994 para levar a Web ao seu potencial mximo, por meio do
desenvolvimento de protocolos comuns e fruns abertos que promovem sua
evoluo e asseguram a sua interoperabilidade. O W3C desenvolve padres
para a criao e a interpretao dos contedos para a Web. Sites
desenvolvidos segundo esses padres podem ser acessados e visualizados
por qualquer pessoa ou tecnologia, independente de hardware ou software
utilizados, como celulares (em Portugal, telemvel), PDAs, de maneira rpida e
compatvel com os novos padres e tecnologias que possam surgir com a
evoluo da internet.
99
ABREVIATURAS
CEFET. Centro Federal de Educao Profissional e Tecnolgica.
IDE.
(Integrated
Development
Environment).
Ambiente
integrado
desenvolvimento.
IFSP. Instituto Federal de Educao, Cincia e Tecnologia de So Paulo.
NFS. Fundao Nacional de Cincia dos EUA.
SETEC. Secretaria de Educao Profissional e Tecnolgica.
TCP-IP. Transmission Control Protocol Internet Protocol.
W3C. World Wide Web Consortium.
de
100
ANEXO:
Questionrio para o(a) Aluno(a)
101
IFET Instituto Federal de Educao, Cincia e Tecnologia
Carta de Apresentao
Prezado(a) Aluno(a),
Meu nome Carlos Olavo de Azevedo Camacho Jnior. Sou um
professor pesquisador e atualmente realizo Mestrado em Tecnologias da
Inteligncia e Design Digital na Pontifcia Universidade Catlica de So Paulo
PUC-SP.
O objetivo da minha pesquisa verificar se o uso de projetos em
laboratrios capaz de transmitir conhecimentos necessrios para a atuao
do profissional de Tecnologia da Informao nas empresas.
No questionrio, cada item de conhecimento est descrito em uma linha.
Cada linha deve ter somente uma resposta (marque um X na coluna
desejada). Escolha dentre as opes que vo de nenhum at muito bom,
indicando o seu nvel de conhecimento em cada item. A primeira pgina do
questionrio refere-se a avaliao dos seus conhecimentos antes da utilizao
do projeto proposto e a ltima pgina deve refletir como esto os seus
conhecimentos aps a execuo do projeto em laboratrio de informtica.
Aps o preenchimento, por favor devolva o questionrio para o professor
Nelson Paz.
Muito obrigado por participar dessa pesquisa! Voc est contribuindo
para a melhoria das tcnicas de ensino e a formao de muitos profissionais da
rea de Tecnologia da Informao.
Carlos Camacho.
webmaster@camachojunior.com.br
102
IFET Instituto Federal de Educao, Cincia e Tecnologia
Questionrio para o(a) Aluno(a)
Tema: Uso de Projeto no Desenvolvimento em Camadas com C# .NET
1. Antes da utilizao do projeto prtico em laboratrio de informtica:
Como voc avalia os seus conhecimentos em:
Conhecimento
Nenhum
Fraco
Regular
Bom
Muito
Bom
de
Desenvolvimento
em
Camadas
Conceito de Integridade Referencial em
Banco de Dados
Criao de Tabelas em Banco de Dados
Criao e uso de Stored Procedures
Funcionamento
da
construo
de
da
construo
de
103
2. Depois da utilizao do projeto prtico em laboratrio de informtica:
Como voc avalia os seus conhecimentos em:
Conhecimento
Nenhum
Fraco
Regular
Bom
Muito
Bom
de
Desenvolvimento
em
Camadas
Conceito de Integridade Referencial em
Banco de Dados
Criao de Tabelas em Banco de Dados
Criao e uso de Stored Procedures
Funcionamento
da
construo
de
da
construo
de
104
REFERNCIAS BIBLIOGRFICAS
Mike.
Developing
and
Implementing Windows-Based
Application with Microsoft Visual Basic .NET and Microsoft Visual Studio
.NET. MCAD / MCSD Training Guide Exam (70-306). Indianapolis, USA:
Publishing, 2003, 1152p.
HECKHAUSEN, Heinz. Discipline et interdisciplinarit. In Ceri (eds.)
L'interdisciplinarit. Problmes d'enseignement et de recherche dans les
Universits. Paris: UNESCO/OCDE, 1972.
JANSTCH, Erich. Vers l'interdisplinarit et la transdisciplinarit dans
l'enseignement et l'innovation. In Ceri (eds.) L'interdisciplinarit. Problmes
d'enseignement et de recherche dans les Universits, Paris: UNESCO/OCDE,
1972.
LE BOTERF, Guy. De la competnce: essai sur un attacteur trange. Paris:
s.n., 1994.
105
MARTIN, James; ODELL, James J. Anlise e Projeto Orientado a Objetos.
So Paulo, Makron Books, 1995.
MASLOW, Abraham H. Maslow no Gerenciamento. RJ: Qualitymark, 2000.
392p.
MICROSOFT
Corporation.
Developing
Microsoft
ASP
.NET
Web
Bassarab.
Um
novo
tipo
de
conhecimento
106
PRADO, Fernando Leme do. Complexidade e metodologia de projetos:
melhorando a prtica docente em cursos de graduao tecnolgica. PUCSP, 2007. Doutorado em Educao e Currculo.
PRESSMAN, Roger. Engenharia de Software. So Paulo, Makron, 1995.
Internet
CEFET SP. Documentao e relatrios. http://www.cefetsp.br acessado em
05/06/2009.
Instituto Federal de Educao, Cincia e Tecnologia de So Paulo IFSP.
http://www.ifsp.edu.br acessado em 14/02/2011.
Martin Fowler. http://martinfowler.com/articles/newMethodology.html The New
Methodology - acessado em 14/12/2010.
Project
Management
http://www.pmi.org.br
Institute.
acessado
em
02/05/2010.
World
Wide
Web
Consortium
W3C.
Documentao
relatrios.