Você está na página 1de 106

PONTIFCIA UNIVERSIDADE CATLICA DE SO PAULO PUCSP

A formao de profissionais em tecnologia da informao na rea de desenvolvimento de software

Carlos Olavo de Azevedo Camacho Jnior

MESTRADO EM TECNOLOGIAS DA INTELIGNCIA E DESIGN DIGITAL

SO PAULO 2011

PONTIFCIA UNIVERSIDADE CATLICA DE SO PAULO PUCSP

A formao de profissionais em tecnologia da informao na rea de desenvolvimento de software

Carlos Olavo de Azevedo Camacho Jnior

MESTRADO EM TECNOLOGIAS DA INTELIGNCIA E DESIGN DIGITAL

Dissertao apresentada Banca Examinadora da Pontifcia Universidade Catlica de So Paulo, como exigncia parcial para obteno do ttulo de MESTRE em Tecnologias da Inteligncia e Design Digital com rea de concentrao em aprendizagem e semitica cognitiva, sob a orientao da Prof. Dr Snia Maria de Macedo Allegretti.

SO PAULO 2011

Banca Examinadora
_____________________________________

_____________________________________

_____________________________________

Dedicado memria de Danilo Hessel Reimberg.

A Deus, pela vida. minha esposa Catia, pelo amor e companheirismo. Aos meus pais Carlos e Vanda, pelo amor incondicional. Aos meus irmos Henrique e Alline, pelo amor, carinho, amizade e incentivo de sempre. Aos meus sogros Benedito e Maria, por acolherem-me como um filho desde que me conheceram. Ao amigo Nelson Paz, pelas valiosas conversas sobre tecnologia e pela reviso do livro publicado durante esta jornada. Ao corpo docente e discente do CEFET-Cubato por acreditar, apoiar e viver o projeto LOJA .NET em sua plenitude. Aos amigos da PUC-SP, em especial aos professores Jorge Vieira e Snia Allegretti, por mostrarem-me novos horizontes. amiga Edna Conti pelo incentivo sempre perspicaz e em momento oportuno. Aos amigos Milton Maruyama, Silvana Guardiano, Rosangela Compri, Maria Aparecida Pereira de Souza, Dirce Kazuko Kaneko, Gisele de Oliveira Belome, Marco Antonio Milanez, Hber Calixto e toda a equipe do Banco do Brasil S.A., pelo incentivo e por acreditar nas minhas idias. Aos amigos da clula de estudos Microsoft Objective! Club da FATECSP pelo compartilhamento de ideais. Em especial aos alunos Danilo Rocha e Felipe Tfoli, que demonstraram atitude em desbravar a linguagem C# .NET. Profa. Melania Dalla Torre, Prof. Avelino Pimenta e todos da UNIP Ribeiro Preto pelo apoio e carinho cativante. Laura Generini, Michele Beck Schrer, Nilton e toda a equipe da Editora VisualBooks por patrocinar o projeto de publicao do livro. Aos leitores do livro por acreditarem que atravs dele possvel alavancar seus conhecimentos em desenvolvimento de software. A todos que ajudaram direta ou indiretamente para a realizao deste trabalho.

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

Figura 1 Representao das camadas da Internet Figura 3 Capa do livro Desenvolvimento em Camadas com C# .NET Figura 4 Palestra proferida no CEFET

42 63 64

Figura 2 Representao do Modelo de Desenvolvimento em Camadas 47

9 Lista de Tabelas

Tabela 1 Relao de disciplinas do Mdulo I CEFET Tabela 2 Relao de disciplinas do Mdulo II CEFET Tabela 3 Relao de disciplinas do Mdulo III CEFET Tabela 4 Relao de disciplinas do Mdulo IV CEFET

54 54 55 55

10 Lista de Grficos

Grfico 1: Conceitos de Programao Orientada a Objetos Grfico 2: Conceito de Desenvolvimento em Camadas Grfico 3: Integridade Referencial em Banco de Dados Grfico 4: Criao de Tabelas em Banco de Dados Grfico 5: Criao e uso de Stored Procedures Grfico 6: Funcionamento da construo de Aplicaes Windows Grfico 7: Funcionamento da construo de Aplicaes Web Grfico 8: Como funciona o uso da Segurana da Informao Grfico 9: Conhecimentos gerais em Desenvolvimento de Sistemas Grfico 10: Avaliao do projeto LOJA .NET pelos alunos

69 71 73 75 77 79 81 83 85 87

11

SUMRIO
INTRODUO............................................................................. 13

1 1.1 1.1.1 1.2 1.2.1

CONSTRUO DE SOFTWARE E AS COMPETNCIAS NECESSRIAS Projeto de Aplicao na Construo de Software....................... O incio de um Projeto de Aplicao........................................... Construo de Software X Competncias necessrias.............. Aspectos tcnicos e perfil comportamental................................. 18 19 20 21 21 30 32 33 33 35

1.2.1.1 Aspectos tcnicos........................................................................ 1.2.1.2 O Perfil Comportamental............................................................. 1.3 1.3.1 As 5 competncias analisadas com o projeto LOJA .NET.......... Qual o diferencial do projeto LOJA .NET?...................................

1.3.1.1 Complexidade............................................................................... 1.3.1.2 Transdisciplinaridade....................................................................

2 2.1 2.2 2.2.1 2.3

DESENVOLVIMENTO EM CAMADAS possvel definir Internet?.......................................................... Os padres na Internet................................................................ Padres no Desenvolvimento de Software................................. O Desenvolvimento de Aplicaes em Camadas....................... 40 41 44 46

12 3 3.1 3.2 ALUNOS DO CEFET Histrico do IFSP......................................................................... Pblico-alvo da pesquisa: Alunos do Curso Tcnico em Informtica................................................................................... 3.3 3.3.1 3.3.2 3.3.3 3.4 3.4.1 O projeto LOJA .NET................................................................... A necessidade de definir ferramentas......................................... Publicao de artigos.................................................................. O livro Desenvolvimento em Camadas com C# .NET.............. Anlise do Questionrio Final...................................................... Contexto da Aplicao de Questionrios.................................... 53 57 58 59 62 64 67 51

CONSIDERAES FINAIS.........................................................

89

ANEXOS Glossrio...................................................................................... Abreviaturas................................................................................. Questionrio para o(a) Aluno(a).................................................. Referncias Bibliogrficas........................................................... 94 99 100 104

13 Introduo

Sou Bacharel em Cincia da Computao, possuo Licenciatura Plena em Matemtica e especializao em Anlise e Projeto de Sistemas. Desde criana tenho fascnio pela informtica, meu interesse vai desde tarefas de escritrio como imprimir etiquetas auto-adesivas para endereamento de correspondncia at o desenvolvimento de sistemas complexos para grandes empresas como Instituies Financeiras. Cursei o bacharelado em Cincia da Computao na Universidade Paulista UNIP de 1997 a 2000. Nesse perodo j me interessava no ensino de disciplinas como linguagem de programao e banco de dados. No consegui me candidatar para monitoria nestas disciplinas pois como j trabalhava na Instituio em tempo integral no dispunha de tempo para atividades extras. Um de meus professores que na poca tambm era o coordenador do curso de Cincia da Computao reconheceu o meu interesse em lecionar e sugeriu que eu realizasse uma especializao. Em 2002 realizei uma ps-graduao em Anlise e Projeto de Sistemas sob orientao deste mesmo professor. Ainda em 2002 fui convidado pelo coordenador de cursos da rea de Cincias Exatas da Universidade de Santo Amaro UNISA e lecionei disciplinas tcnicas para alunos do ltimo semestre do curso superior de Desenvolvimento de Websites. Foi a partir da que comecei a pesquisar estratgias que auxiliassem os alunos na assimilao de contedos na rea de informtica.

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 a desenvolver situaes de aprendizagem diferenciadas, estimulando a articulao entre saberes e competncias. Temos em comum a preocupao de demonstrar aos alunos possibilidades de uso dos padres de qualidade de desenvolvimento de software2 exigidos pelo mercado e como utiliz-los na prtica. Desde ento passei a refletir constantemente sobre como criar uma situao onde o aluno possa adquirir as competncias necessrias sua atuao profissional como desenvolvedor de software. Segundo o Prof. Nelson, seus alunos do Ensino Mdio tcnico em informtica tinham boas avaliaes nas disciplinas isoladamente, mas sentiam dificuldades no final do curso, momento em que era exigido a entrega do Trabalho de Concluso de Curso. Neste trabalho final era preciso utilizar a soma dos saberes das diferentes disciplinas cursadas para construir um software. No incio de 2008 defini como pblico-alvo da minha pesquisa os alunos do Ensino Mdio que esto em formao tcnica da rea de informtica. Norteei meu problema de pesquisa com a questo: 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?

1 2

Centro Federal de Educao Profissional e Tecnolgica. Software uma sequncia 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.

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 e as

Competncias Necessrias, traz definies do que vem a ser projeto de aplicao e analisa quais as competncias exigidas pelo mercado atual de Tecnologia da Informao quando empresas desejam contratar desenvolvedores de software. Analisamos o que difere o mtodo de desenvolvimento em camadas do ensino tradicional. Para essa anlise tivemos como alicerce o pensamento complexo (Edgar Morin). No segundo captulo Desenvolvimento em Camadas realizamos um estudo aprofundado sobre os padres existentes na Internet e sua importncia. Tendo esse estudo como alicerce, buscamos justificar a importncia do uso de padres no Desenvolvimento de Software. No terceiro captulo realizamos uma anlise qualitativa sobre as competncias em desenvolvimento de software demonstradas pelos Alunos do CEFET onde colocamos em prtica uma sugesto para demonstrar o uso de padres no Desenvolvimento de Software. Primeiramente descrevemos os desafios

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 a gerao de determinados documentos que sero utilizados na concepo de uma soluo computacional para solucionar o problema. Quando o conjunto de documentos necessrios ao desenvolvimento de um software criado, dizemos que temos o projeto de aplicao. uma traduo da soluo aprovada pelo cliente a ser implementada como uma aplicao computacional.

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 Especificao o que o cliente espera que o programa execute.

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 o processamento do computador pode ser traduzido em operaes matemticas. Assim, o grau de conhecimento em lgica matemtica determina a eficincia com a qual um programa desenvolvido. Paralelamente ao ensino da matemtica temos o ensino de algoritmos, que so seqncias de instrues criadas em uma ordem lgica com o objetivo de solucionar um problema apresentado. RESOLUO DE PROBLEMA: H dez anos tnhamos na rea de informtica papis muito bem definidos para os cargos e funes existentes. Por exemplo: O Analista de Sistemas tinha por funo se reunir com o cliente, entender suas necessidades e gerar os documentos necessrios (Casos de Uso, Diagramas de Classe, etc.) para que o Programador pudesse desempenhar sua funo que era exclusivamente a de interpretar os documentos que descreviam o problema e ento codificar os programas (solucionando o problema).

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 mutuamente. Se a equipe fracassa, todos fracassam. INTELIGNCIA EMOCIONAL: Com o crescente aumento das exigncias no trabalho, as circunstncias as quais o profissional submetido diariamente exigem um consciente controle de suas emoes. Mesmo com a responsabilidade de administrar e entregar diversos trabalhos, muitas vezes simultneos, espera-se que o desenvolvedor de software saiba lidar de forma harmoniosa com todas as variveis desta complexa equao. Seja no seu relacionamento com a equipe, com seus superiores ou com clientes, o profissional deve ser atencioso, cordial e profissional. COMPROMETIMENTO: Uma empresa espera que o desenvolvedor de software tenha um vnculo organizacional. Quando um profissional se identifica com a organizao e com os objetivos dela, h o desejo de manter-se como membro. Cria-se uma relao de lealdade, de desejo de contribuir e h o sentimento de orgulho em permanecer na organizao. Isso conhecido como comprometimento afetivo.

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

1.3.1 Qual o diferencial do projeto LOJA .NET? O projeto LOJA .NET um material didtico que utiliza a metodologia de desenvolvimento em camadas e foi criado com o objetivo de analisar junto aos alunos as 5 importantes competncias do profissional de desenvolvimento de software descritas anteriormente. Mas o que diferencia o uso do mtodo de desenvolvimento em camadas do mtodo de ensino tradicional dos alunos envolvidos nesta pesquisa? Para nos auxiliar nessa questo, iremos recorrer aos conceitos de complexidade e transdisciplinaridade. Entendemos que o dilogo inter-disciplinas vem se impondo nos ltimos anos como uma necessidade crescente. Dentre os principais motivos que justificam isso temos a transformao do prprio conceito de disciplina cientfica e do que se entende por cientificidade. Por isso, destacaremos alguns aspectos dessa transformao e o seu impacto sobre o desenvolvimento cientfico atual. 1.3.1.1 Complexidade Complexus (ou apenas plexus) o vocbulo que, em latim, significa entrelaado, tecido em conjunto e constitui a origem etimolgica da palavra complexo. Hoje esse termo usado com uma certa freqncia e, muitas vezes, a pessoa que utiliza o termo fica isenta de dar maiores explicaes sobre o assunto tratado. comum ouvirmos: esta disciplina complexa, a situao complexa, o problema complexo. Alguns dicionrios definem a complexidade como propriedade dos processos caticos; informao, diversidade, multiplicidade de conexes; alta conectividade. Da nos fica a idia de que complexidade significa caos, desordem, dificuldades, algo complicado. A complexidade e a complicao no se reduzem uma outra. Para Morin (2001), a complicao um dos constituintes da complexidade. Esta idia do que complexidade est muito mais espalhada no vocabulrio corrente do que no vocabulrio cientfico. De uma forma ou de outra a palavra complexidade sempre foi usada, mas s recentemente se fala em teoria da complexidade.

34

A complexidade do mundo em que vivemos transparece no mundo das artes, no mundo da poltica, no mundo da cincia, no mundo do comrcio, etc. Mas o fato que s existe um mundo. Todos os mundos citados se entrelaam num mesmo espao-tempo em que vivemos. O mundo de hoje marcado pela evoluo cientfico-tecnolgica, e nesse cenrio a complexidade torna-se cada vez mais um conceito fundamental. No projeto LOJA .NET, pode-se considerar a anlise da complexidade no que se refere quantidade de recursos necessrios para a construo de cada parte deste software. Em um nvel mais bsico temos o nmero de passos a serem executados em cada classe e o volume de memria utilizado pelos objetos instanciados a partir destas classes. Assim possvel, por exemplo, analisar antecipadamente se os computadores disponveis iro atender os requisitos para o pleno funcionamento do projeto. Segundo o pensamento complexo descrito pelo pensador Morin, ser que era possvel prever se o projeto LOJA .NET auxiliaria o grupo de alunos na aquisio de competncias em desenvolvimento de software? Este pensador afirma que a complexidade necessita de uma estratgia, sabe que no se pode programar a descoberta, o conhecimento, nem a ao. No entanto, Morin (2001) diz que para compreender o problema da complexidade, preciso saber primeiro que h um paradigma de simplicidade, que utilizado com muita freqncia. Neste paradigma prevalece a ordem, a lgica, a lei e os princpios, expulsando o caos e a desordem. O princpio da simplicidade quer separar o que est ligado (disjuno), quer unificar o que est disperso (reduo) (MORIN, 2001). O paradigma da simplificao no permite pensar a unidade na diversidade ou a diversidade na unidade. Este paradigma deixa perder a riqueza da diversidade, da dinmica, da desordem. Ao avaliarmos o curso tcnico do CEFET dentro de suas edificaes, no consideramos suas implicaes sociais e econmicas. De l conhecemos apenas uma parte do real, perdendo assim o conhecimento sobre a imensido das demais partes desta realidade. Vai estudar-se o crebro como rgo biolgico e vai estudar-se o esprito, the mind, como funo ou realidade psicolgica. Esquece-se que um no existe

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, multidisciplinaridade e interdisciplinaridade para ento refletirmos sobre o significado da transdisciplinaridade. A cincia se constri a partir de teorias e de verificaes experimentais dessas teorias. Podemos encontrar em relatrios cientficos uma permanente interao entre teoria e prtica. Isto denota a importncia da prova emprica para validar o novo saber cientfico (CARAA, 2001). Partindo dessa idia geral de cincia como forma de construo do conhecimento, ao olharmos para as diversas dimenses do ser humano, percebemos a importncia das diferentes reas de conhecimento. Em cada rea do conhecimento encontramos as especificidades de cada disciplina. Nesse contexto podemos abordar os conceitos de disciplinaridade, interdisciplinaridade, multidisciplinaridade e transdisciplinaridade.

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 a contribuio metodolgica e informativa das disciplinas individualizadas, sem que estas sejam afetadas ou dirigidas pelos resultados. Outros pensadores afirmam que a interdisciplinaridade utilizada para designar o nvel em que a interao entre vrias disciplinas ou setores heterogneos de uma mesma cincia conduz a interaes reais, a uma certa reciprocidade no intercmbio, levando a um enriquecimento mtuo (CHAVES, 1998). Transdisciplinaridade Bassarab NICOLESCU (1999), afirma que foi Jean Piaget o primeiro a usar a palavra transdisciplinar como expresso de uma nova abordagem do conhecimento, em 1967: A transdisciplinaridade, como o prefixo "trans" indica, diz respeito quilo que est ao mesmo tempo entre as disciplinas, atravs das diferentes disciplinas e alm de qualquer disciplina. Seu objetivo a compreenso do mundo presente, para o qual um dos imperativos a unidade do conhecimento... (NEST, 2000). Segundo CHAVES (1998) o conceito de transdisciplinaridade no envolve somente as interaes ou reciprocidade entre projetos especializados de pesquisa, mas a colocao dessas relaes dentro de um sistema total, sem quaisquer limites rgidos entre as disciplinas. A partir dessa definio verificamos que a transdisciplinaridade no uma nova disciplina. No entanto, se alimenta da pesquisa disciplinar que, por sua vez, clareada de uma nova maneira. As pesquisas disciplinares e transdisciplinares se complementam. A disciplinaridade, a multidisciplinaridade, a interdisciplinaridade e a transdisciplinaridade so as quatro flechas de um nico arco: o do conhecimento (NICOLESCU, 1999). A correta compreenso destes quatro mbitos do conhecimento permite uma correta articulao nos quatro pilares da educao: - Aprender a conhecer: ser capaz de estabelecer pontes entre os diferentes saberes. Entre estes saberes e sua significao para o dia-a-dia e ainda entre estes saberes e as capacidades interiores de cada um. Este procedimento

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

Desenvolvimento em Camadas um mtodo muito utilizado para a construo de software. Antes da definio deste mtodo se faz necessrio um resgate histrico do surgimento da Internet para uma melhor compreenso da arquitetura em camadas. 2.1 possvel definir Internet? O surgimento da Internet foi possvel por meio de padres de redes para que estas pudessem se comunicar. Se nos restringirmos aos aspectos tcnicos, a Internet poderia ser definida como uma rede entre computadores, de abrangncia mundial, que adota como padro determinados protocolos de comunicao. Atualmente muitas pessoas questionam se suficiente definir a Internet como sendo apenas a interconexo entre computadores. O prprio Vint Cert um dos criadores da Internet diz que: a Internet no se constitui somente de nmeros e protocolos, mas de pessoas, contedo e recursos. A organizao chamada de Cpula Mundial da Sociedade da Informao tambm considera a Internet num aspecto mais amplo, conforme o exposto na reunio ocorrida em TUNIS (2005): Ns reconhecemos que a Internet, elemento central de infra-estrutura da Sociedade da Informao, evoluiu da facilidade criadas para a pesquisa acadmica para uma facilidade global disponvel ao pblico (traduo livre do autor). Assim temos a indicao de que correto considerar a Internet tanto em seus aspectos tcnicos como nos seus aspectos sociais, jurdicos, econmicos e culturais.

41 2.2 Os padres na Internet

Apesar de um consenso sobre a importncia de considerar diversos aspectos da Internet como visto no item 2.1, utilizaremos outra definio do que vem a ser Internet para iniciar uma discusso sobre a importncia dos padres desde a sua criao at os dias atuais. A Internet pode ser definida como uma rede entre computadores que adota protocolos-padro, principalmente o TCP-IP3, para a transmisso de dados, de maneira a permitir: - comunicao simultnea entre usurios; - troca de mensagens eletrnicas; - acesso a portais eletrnicos; - criao de comunidades virtuais; - transmisso de dados por meio de arquivos em diversos formatos (texto, som, imagem, vdeo, etc.); - comrcio eletrnico; - jogos online; - difuso de conhecimento, e muitas outras atividades. Para possibilitar a transmisso desses dados, a Internet est estruturada em basicamente trs diferentes camadas.

3 TCP-IP. um conjunto de protocolos de comunicao entre computadores em rede.

42

Figura 1 Representao das camadas da Internet Fonte: DIPLO Internet Governance and Policy <http://www.diplomacy.edu/ig/Resources/display.asp?Topic=DiploImages>

Analisando a figura de baixo para cima, temos que a primeira camada se chama Infra-estrutura de Telecomunicaes. Ela uma representao de que a comunicao entre os computadores da Internet depende de uma estrutura de cabeamento (linhas telefnicas, fibra tica) ou de ondas (de rdio, satlite). Em resumo, temos que necessrio o estabelecimento de um caminho fsico, visvel ou no, no mundo real. A segunda camada diz respeito aos padres tecnolgicos. a linguagem comum que a Internet adotou como padro para que fosse possvel a comunicao entre os computadores. Por serem de fundamental importncia para o funcionamento da rede, esses padres devem ser abertos4.

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.

4 Um padro aberto ou protocolo no-proprietrio um protocolo de comunicao que no pertence nenhuma empresa, podendo ser facilmente disseminado pela comunidade tcnicoacadmica. *Nota: O W3C possui um escritrio brasileiro, fundado em 2007. O escritrio tem como objetivo disseminar a cultura e adoo de padres para o desenvolvimento Web; Organizar atividades para promover os padres e ferramentas W3C; Facilitar a participao da comunidade brasileira na definio dos padres Web; Promover polticas e procedimentos para a regulamentao e uso da Web no pas e recomendar padres tcnicos para o desenvolvimento da Internet no pas.

44 2.2.1 Padres no Desenvolvimento de Software

Existem diferentes perfis de usurios com relao utilizao da Internet. Cada perfil de usurio Internet gostaria que fossem preservados e melhorados os benefcios que hoje so percebidos em suas atividades cotidianas. Os perfis so: 1. Usurio leigo: aquele que somente utiliza a Internet para atividades cotidianas, profissionais ou para lazer; 2. Usurio do governo: Podem ser os poderes Legislativo e Judicirio enquanto normatizadores e fiscalizadores do cumprimento da Lei em diferentes ambientes, e pode ser tambm o poder Executivo no que se refere ao desenvolvimento de polticas pblicas voltadas Internet. 3. Usurio tcnico: O usurio tcnico domina a linguagem, conhece a concepo fsica e os mecanismos pelos quais se estabelece a conexo entre os computadores e demais dispositivos da rede. o usurio tcnico que busca a aquisio de habilidades e competncias necessrias ao Desenvolvimento de Software. O Desenvolvimento de Software compreende diversas disciplinas. Vamos analisar, por exemplo, a disciplina de Banco de Dados. Apesar de haver uma vasta teoria referente aos sistemas de banco de dados, cada empresa fabricante de banco de dados implementa as orientaes da teoria a sua maneira. Vejamos alguns exemplos da variedade de empresas e produtos quando se fala em Sistemas de Bancos de Dados: a empresa Microsoft comercializa o banco de dados chamado Microsoft SQL Server; a empresa Oracle comercializa o banco de dados que possui o mesmo nome da empresa; j a empresa IBM comercializa um banco de dados chamado DB2. Alm disso, todas essas empresas criam diferentes verses de seus produtos, que so atualizadas frequentemente para acompanhar a rpida evoluo tecnolgica. Devido ao fato destes fabricantes no adotarem um padro na criao de seus produtos, o profissional de Desenvolvimento de Software encontra especificidades no momento de escrever os programas que iro se conectar e

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

desenvolvimento podem ser reutilizados em outro software, aumentando assim a produtividade no ciclo de desenvolvimento e facilitando futuras manutenes. Vejamos um exemplo: um website que comercializa os produtos de uma empresa possui como infra-estrutura de banco de dados uma base Microsoft SQL Server. Num determinado momento, o diretor de Tecnologia resolve migrar a infra-estrutura para uma base Oracle. Se o desenvolvimento seguiu padres para evitar o acoplamento do website ao banco de dados, ou seja, no h a dependncia da programao das pginas com relao a um fabricante especfico, bastaria substituir o servidor de banco de dados e no seria preciso alterar toda programao j existente para as pginas deste website. Por outro lado, se o website no foi construdo com a idia de evitar acoplamento, seria necessrio um grande esforo para permitir o funcionamento dos servios disponibilizados pelo website quando da migrao para outro sistema de banco de dados. O programador precisaria detectar e alterar todas as pginas do website que fazem acesso ao banco de dados. Se todos os desenvolvedores utilizam o mesmo padro de desenvolvimento, caso um desenvolvedor assuma um projeto em andamento poder dar continuidade aos trabalhos imediatamente, pois conhece a metodologia de trabalho utilizada. Se cada desenvolvedor trabalhar como quiser, haver um gasto enorme

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.

2.3 O Desenvolvimento de Aplicaes em Camadas

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.

Figura 2 Representao do Modelo de Desenvolvimento em Camadas. Autor: Carlos Olavo de Az. Camacho Jr.

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).

A Figura 2 representa um modelo. A semntica da palavra modelo no nosso contexto tem origem na matemtica. Quando utilizamos a palavra modelo, desejamos significar um fragmento de um sistema segundo uma estrutura de conceitos experimentais. Neste nvel de abstrao no se especifica qual o banco de dados utilizado no sistema computacional, como por exemplo, Microsoft SQL Server ou Oracle. O modelo est antes da implementao fsica do projeto; estamos refletindo sobre a fase de planejamento. O planejamento de projetos essencial na rea de informtica, por isso existem cincias como a Engenharia de Software e Engenharia de Sistemas. Iniciamos nossa anlise da figura da camada interna para a mais externa, pois no material didtico que produzimos foi essa a ordem utilizada quando samos do modelo abstrato para a efetiva implementao do sistema. Na Camada de Acesso a Dados, realizam-se todas as tarefas onde necessrio estabelecer a conexo com o sistema gerenciador de banco de dados. Tarefas como cadastrar um novo cliente, alterar dados de um cliente, consultar ou excluir informaes sobre um cliente so implementadas nessa camada.

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

Antes da inaugurao do Instituto Federal de Educao, Cincia e Tecnologia de So Paulo (IFSP), esta instituio de ensino era conhecida como Centro Federal de Educao Tecnolgica CEFET. O Centro Federal de Educao Tecnolgica de So Paulo CEFET-SP uma instituio vinculada diretamente Secretaria de Educao Profissional e Tecnolgica SETEC, do Ministrio da Educao, e integra o Sistema Federal de Ensino. Os CEFETs tm por finalidade formar e qualificar profissionais em diferentes nveis e modalidades de ensino para diversos setores da economia, realizar pesquisa e desenvolvimento (P&D) de novos processos, produtos e servios em estreita articulao com os setores produtivos e a sociedade, de maneira a oferecer mecanismos para a educao continuada. A histria do CEFET-SP registra, em suas diversas fases, alm da manuteno de educao pblica de qualidade, oferta de formao profissional orientado ao desenvolvimento econmico brasileiro, especialmente no Estado de So Paulo. Criado em 1909 como Escola de Aprendizes e Artfices, seu projeto era voltado para a formao de operrios e contramestres. Entre os anos de 60 e 90, como Escola Tcnica Federal de So Paulo, formou tcnicos de nvel mdio para as reas de Mecnica e Edificaes, depois para Eletrotcnica, Eletrnica, Telecomunicaes, Processamento de Dados e Informtica Industrial.

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 a construo de novos conhecimentos. Tem como objetivo prover atravs do ensino as condies bsicas para a insero no mercado de trabalho, a plena atuao na vida cidad e as habilidades metacognitivas para continuar aprendendo. Desde o incio de 2009 o CEFET-SP passou a designar-se Instituto Federal de Educao, Cincia e Tecnologia de So Paulo IFSP. O IFSP - Campus Cubato, instituio onde obtivemos autorizao para a realizao deste trabalho, autorizado pela portaria n 158 do Ministro da Educao, publicada no DOU de 12/03/1987. Localizado no Jardim Casqueiro no municpio de Cubato, o campus conta hoje com aproximadamente 1000 alunos distribudos nos seguintes cursos: - Ensino Mdio; - Educao de Jovens e Adultos Profissionalizante;

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 III Linguagem de Programao Orientada a Objetos Sistemas Operacionais Linguagem de Programao Banco de Dados Estudo dos Sistemas de Informao Gesto de Negcios Redao Tcnica
Tabela 3 Relao de disciplinas do Mdulo III Curso Tcnico em Informtica CEFET-SP

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.

3.3 O projeto 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.

IDE, do ingls Integrated Development Environment ou Ambiente Integrado de

Desenvolvimento, um programa de computador que rene caractersticas e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo. Geralmente os IDEs facilitam a tcnica de RAD (de Rapid Application Development, ou "Desenvolvimento desenvolvedores. Rpido de Aplicativos"), que visa a 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.

3.3.2 Publicao de artigos

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:

Figura 3 - Capa do livro Desenvolvimento em Camadas com C# .Net Designer: Jlio Cesar Winck

A partir do 2 semestre de 2008, o Prof. Nelson Paz comeou a utilizar a srie de artigos publicados no Portal Linha de Cdigo como apoio na disciplina Linguagem de Programao III (LPG-III). Aps a publicao do livro em novembro de 2008, este foi adotado como material de apoio para esta disciplina, ministrada aos alunos do 3 Semestre do Curso Tcnico em Informtica do IFSP. O pesquisador foi convidado pela administrao do CEFET Cubato para proferir uma palestra na Semana Nacional de Cincia e Tecnologia: Cincia para o Desenvolvimento Sustentvel. Esse evento ocorreu no dia 22 de Outubro de 2010 e a imagem a seguir tem grande valor para o pesquisador. o registro do momento em que o professor Nelson Paz realiza a cerimnia de entrega do Certificado de Palestrante aps a realizao do evento.

64

Figura 4 Palestra proferida para os alunos do Professor Nelson Paz - CEFET Cubato. 22/10/2010. Carlos Camacho ( esquerda) e Prof. Nelson Paz.

3.4 Anlise do Questionrio Final

O grupo de trabalho no 3 Semestre do Curso composto em mdia por um nmero de 15 alunos.

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

3.4.1 Aplicao de Questionrios No incio do 1. Semestre de 2009 aplicamos um questionrio junto aos alunos como sondagem para averiguar como eles estavam com relao ao nvel de desenvolvimento real. Aps a execuo do projeto LOJA.NET, que finalizou em julho de 2009, aplicamos um novo questionrio para verificar como os alunos se autoavaliavam com relao ao nvel de desenvolvimento real. Estes questionrios serviram de base para as anlises de habilidades e competncias adquiridas que realizaremos posteriormente neste captulo. Paralelamente ao andamento da disciplina LPG-III, os alunos desenvolviam o Trabalho de Concluso de Curso TCC. Neste contexto o TCC consiste na construo de um software onde cada aluno tem autonomia para definir a linguagem de programao a ser utilizada bem como todos os recursos envolvidos no projeto. O questionrio denominado Anexo A - Questionrio para o(a) Aluno(a) foi aplicado antes e aps a realizao do projeto LOJA .NET pelos alunos que cursaram a disciplina LPG-III no 1 Semestre de 2009. O objetivo da aplicao do questionrio foi permitir aos alunos uma auto-avaliao sobre determinadas habilidades consideradas relevantes ao processo de desenvolvimento de software utilizando a metodologia de Desenvolvimento em Camadas. Para cada habilidade acompanhada junto aos alunos durante a aplicao do projeto LOJA .NET, temos a seguir: 1) Um grfico que representa o questionrio aplicado antes do projeto LOJA .NET; 2) Um grfico que representa o questionrio aplicado depois do projeto LOJA .NET; 3) Um grfico que resume o desempenho dos alunos na habilidade em questo. Os nveis disponveis nos questionrios so: 1) Nenhum conhecimento; 2) Fraco; 3) Regular; 4) Bom; 5) Muito bom. Se um aluno assinalou Bom no primeiro questionrio e, no questionrio final,

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

Depois

Grfico

1:

Conceitos

de

Programao

Orientada

Objetos

Nveis: Nenhum; Fraco; Regular; Bom; Muito bom.

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

Grfico 2: Conceito de Desenvolvimento em Camadas Nveis: Nenhum; Fraco; Regular; Bom; Muito bom.

78% dos alunos disseram que assimilaram como desenvolver software utilizando o mtodo de desenvolvimento em camadas sendo que destes, 22% afirmaram que com o projeto LOJA .NET foi possvel compreender muito bem como se faz isso. No primeiro captulo mapeamos as cinco competncias essenciais ao desenvolvedor de software. Vimos que a segunda competncia mapeada consiste em saber utilizar o conceito de Desenvolvimento em Camadas.

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

Depois

Grfico

3:

Integridade

Referencial

em

Banco

de

Dados

Nveis: Nenhum; Fraco; Regular; Bom; Muito bom.

A terceira competncia essencial ao desenvolvedor mapeada no primeiro captulo denomina-se "Configurar e Gerenciar informaes em Banco de Dados". Essa competncia envolve as habilidades representadas nos grficos de nmero 3, 4 e 5.

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 programadores iniciantes, no projeto LOJA .NET houve um esforo no sentido de demonstrar a importncia e o funcionamento desse conceito na prtica. Quando realizamos uma compra no supermercado por exemplo, compramos diversificados produtos. Um software construdo para gerenciar as vendas deste supermercado precisa armazenar dados sobre as vendas em um sistema de banco de dados. Os alunos viram que quando se utiliza um banco de dados, criamos tabelas distintas para armazenar dados sobre assuntos diferentes. As informaes do cliente comprador e da venda no ficam armazenadas em uma nica tabela deste sistema de banco de dados. Os dados sobre o cliente como nome e cpf ficam armazenados em uma tabela e os dados sobre a venda como nome do produto e valor unitrio ficam armazenados em outra tabela. Dessa forma, preciso criar algo que relacione um cliente da tabela de clientes com todos os produtos que ele comprou - armazenados na tabela de vendas. Saber criar e manter esse relacionamento consistente entre as tabelas o que chamamos de integridade referencial. O desenvolvedor precisa dominar essa habilidade pois do contrrio podemos encontrar um produto registrado na tabela de vendas sem que seja possvel identificar qual cliente o comprou. Os alunos tambm verificaram atravs do projeto LOJA .NET que a integridade referencial importante por questes de performance da utilizao do software. Quando o funcionrio operador do caixa do supermercado est registrando os produtos, o software deve responder de forma rpida essas solicitaes para evitar filas e, consequentemente, aborrecimentos por parte dos clientes. Talvez seja necessrio reavaliar o modelo de dados utilizado no projeto LOJA .NET para simplific-lo. possvel tambm que as explicaes durante o processo de desenvolvimento e uso do banco de dados no tenham sido suficientes para a assimilao desse conceito pelos alunos.

75 4) Criao de Tabelas em Banco de Dados

Antes

Depois

Grfico

4:

Criao

de

Tabelas

em

Banco

de

Dados

Nveis: Nenhum; Fraco; Regular; Bom; Muito bom.

Com relao a criao de tabelas em banco de dados, 56% dos alunos notaram melhorias aps a execuo do projeto. Um sistema de banco de dados uma estrutura complexa composta por diversas tabelas que se relacionam. Como vimos na teoria de Morin comentada no primeiro captulo, para compreender o problema da complexidade preciso reconhecer o paradigma da simplicidade. No paradigma da simplicidade prevalece a lgica, a ordem.

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

Depois

Grfico

5:

Criao

uso

de

Stored

Procedures

Nveis: Nenhum; Fraco; Regular; Bom; Muito bom.

78

J sobre a criao e uso de stored procedures, 67% dos alunos disseram terem percebido melhorias. Essa habilidade foi analisada no grfico 5 e aqui os alunos perceberam que uma stored procedure no pode existir sem que haja um sistema de banco de dados. No captulo inicial Morin afirma: Vai estudar-se o crebro como rgo biolgico e vai estudar-se o esprito, the mind, como funo ou realidade psicolgica. Esquece-se que um no existe sem o outro; ou melhor, que um simultaneamente o outro, embora sejam tratados por termos e conceitos diferentes. Assim tambm se relacionam as stored procedures e os sistemas de bancos de dados. Para que o aluno compreenda melhor a criao e uso de uma stored procedure, necessrio compreender o funcionamento do sistema de banco de dados. Uma stored procedure um conjunto de comandos que so enviados para que o sistema de banco de dados execute. Se esse conjunto de comandos estiver dentro de um programa, este conjunto no constitui uma stored procedure. Stored procedure ou Procedimento Armazenado , como o prprio nome diz, um conjunto de comandos que so armazenados dentro do prprio sistema de banco de dados. No projeto LOJA .NET os alunos aprenderam a armazenar estes procedimentos no banco de dados e como um software pode invocar a execuo destes procedimentos.

79 6) Funcionamento da construo de aplicaes para MS-Windows

Antes

Depois

Grfico

6:

Funcionamento

da

construo

de

Aplicaes

para

MS-Windows

Nveis: Nenhum; Fraco; Regular; Bom; Muito bom.

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

Depois

Grfico

7:

Funcionamento

da

construo

de

aplicaes

para

Web

Nveis: Nenhum; Fraco; Regular; Bom; Muito bom.

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

Depois

Grfico

8:

Como

funciona

na

prtica

uso

da

Segurana

da

Informao

Nveis: Nenhum; Fraco; Regular; Bom; Muito bom.

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

Depois

Grfico

9:

Conhecimentos

gerais

em

Desenvolvimento

de

Sistemas

Nveis: Nenhum; Fraco; Regular; Bom; Muito bom.

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?

Esta questo foi disponibilizada aos alunos no trmino do 1. Semestre de 2009.

Grfico

10

Avaliao

da

importncia

do

projeto

LOJA

.NET

pelos

alunos

Nveis: Nenhum; Fraco; Regular; Bom; Muito bom.

Essa questo foi disponibilizada aos alunos somente no questionrio final, momento em que eles j tinham terminado a execuo do projeto LOJA .NET em Laboratrio de Informtica.

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

Nossa investigao consistiu em analisar a questo: 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? No captulo inicial denominado Construo de Software e as Competncias Necessrias foi possvel analisar primeiramente o que vem a ser um projeto de aplicao. Foi criado um projeto de aplicao chamado LOJA .NET utilizado como material didtico para que os alunos do CEFET pudessem ter um contato aprofundado com um Ambiente de Desenvolvimento Integrado o Microsoft Visual Studio 2008. Analisamos a diferena entre habilidade e competncia e verificamos que o profissional de desenvolvimento de software deve possuir no s habilidades tcnicas, mas tambm exigido com relao a aspectos comportamentais. Mapeamos cinco importantes competncias e estas foram analisadas junto ao grupo de alunos no CEFET. Para possibilitar a experimentao de um projeto prtico transdisciplinar que permitisse aos alunos compreender como diversas disciplinas de seu currculo esto relacionadas no processo de construo de software, selecionamos um dos padres de desenvolvimento de sistemas bastante utilizado atualmente: o mtodo de desenvolvimento em camadas. Era preciso explicitar a importncia do uso de padres na rea de desenvolvimento de software e em que consistia o Desenvolvimento em Camadas. Para essa anlise o segundo captulo propiciou conhecer como a Internet surgiu. Essa histria retrata a importncia do uso de padres e traz de forma objetiva o conceito de desenvolvimento em camadas. Verificamos que a Internet surgiu como uma interconexo de muitas redes de computadores. Para permitir essa comunicao entre diferentes computadores com diferentes sistemas operacionais foi imprescindvel a adoo de padres. Dividida em camadas, verificamos que na arquitetura de construo da Internet uma camada dependente da outra e utiliza todos os seus servios, reaproveitando-os de forma que estes servios no precisam ser criados em

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 de 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.

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 Programao Orientada a Objetos (Uso de classes, mtodos e propriedades) Conceito 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 de Desenvolvimento em

aplicaes para MS-Windows Funcionamento da construo de

aplicaes para a WEB Como funciona na prtica o uso da Segurana da Informao De uma forma geral, como voc avalia o seu conhecimento em Desenvolvimento de Aplicaes comerciais que atendam as exigncias de qualidade das empresas?

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 Programao Orientada a Objetos (Uso de classes, mtodos e propriedades) Conceito 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 de Desenvolvimento em

aplicaes para MS-Windows Funcionamento da construo de

aplicaes para a WEB Como funciona na prtica o uso da Segurana da Informao De uma forma geral, como voc avalia o seu conhecimento em Desenvolvimento de Aplicaes comerciais que atendam as exigncias de qualidade das empresas? Como voc avalia a importncia desse projeto na sua formao como profissional de tecnologia da informao? Observaes (opcional):

104 REFERNCIAS BIBLIOGRFICAS

CAMACHO JNIOR, Carlos Olavo de Azevedo. Desenvolvimento em camadas com C# .Net. Florianpolis: Visual Books, 2008. CARAA, Joo. O que CINCIA. 2 edio, Coimbra: Quimera Editores, 2001. CBO/MTE, 2002 BRASIL. Portaria N 397, 09 de outubro de 2002. Braslia: Ministrio do Trabalho e Emprego, CBO Classificao Brasileira de Ocupaes, 2002. CGI.br, Revista .br Edio 01 Ano 1, 2009. CHAVES, Mrio. Complexidade e Transdisciplinaridade, Uma abordagem multidimensional do Setor da Sade, Brasil, 1998. COAD, Peter; YOURDON, Edward. Anlise baseada em objetos. Rio de Janeiro, Campus, 1992. ________. Projeto baseado em objetos. Rio de Janeiro, Campus, 1993. COLEMAN, Derek; ARNOLD, Patrick; BODOF, Stephanie; DOLLIN, Chris; GILCHRIST, Helena; HAYES, Fiona; JEREMAES, Paul. Desenvolvimento orientado a objetos O mtodo Fusion. Rio de Janeiro, Campus, 1996. EMBLEY, David W.; JACKSON, Robert B.; WOODFIELD, Scott N. OO Systems Analysis: Is it or isnt it? IEEE Software. 1995. GUNDERLOY, 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 Applications Using Visual Studio .NET. MSDN Training. Redmond, USA: Microsoft Press, 2002. 794 p. MICROSOFT Corporation. Programming with C#. MSDN Training. Redmond, USA: Microsoft Press, 2002. 739p. MORIN, Edgar. Introduo ao pensamento complexo (Titulo original: Introduction la pense complexe. Paris, ESF d., 1990), 2001. NEST. Introduo Metodologia Transdisciplinar, Ncleo de Estudos Superiores Transdisciplinares (Gustavo Korte e Dalva Alves), So Paulo, 2000. NICOLESCU, UNESCO, 1999. IBGE, O Setor da Tecnologia da Informao e Comunicao no Brasil 2003-2006. Estudos e Pesquisas Informao Econmica n. 11: Rio de Janeiro, 2009. Notas de Aula do Prof. Demi Getschko. Disciplina: Redes e Tecnologia em Gesto do Conhecimento. Programa de Ps-Graduao em Tecnologias da Inteligncia e Design Digital, PUC-SP, 1 Semestre/2009. OLIVEIRA, Martha Kohl de. Vygotsky: aprendizado e desenvolvimento: um processo scio-histrico. So Paulo, Scipione, 1997. (Pensamento e ao no magistrio) PARRA, Cecilia. Didtica da Matemtica: reflexes psicopedaggicas / Cecilia Parra, Irma Saiz et.al.; traduo Juan Acua Llorens. Porto Alegre: Artes Mdicas, 1996. PARSONS, Jefrey; WAND, Yair. Using objects for System Analysis. Communication of ACM vol. 40, 1997. PERRENOUD, Philippe. Construir as competncias desde a escola. Porto Alegre:Artmed, 1999. Bassarab. Um novo tipo de conhecimento transdisciplinaridade. In Educao e Transdisciplinaridade. Braslia: Ed.

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 Institute. http://www.pmi.org.br acessado em

02/05/2010. World Wide Web Consortium W3C. Documentao e relatrios.

http://www.w3c.br acessado em 04/03/2011.

Você também pode gostar