Desenvolvimento Em Camadas Com C#.NET - Camacho

Embed Size (px)

Citation preview

  • 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

  • 2

    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

    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.

  • 3

    Banca Examinadora

    _____________________________________

    _____________________________________

    _____________________________________

  • 4

    Dedicado memria de Danilo Hessel Reimberg.

  • 5

    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 FATEC-SP 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.

  • 6

    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.

  • 7

    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 42 Figura 2 Representao do Modelo de Desenvolvimento em Camadas 47 Figura 3 Capa do livro Desenvolvimento em Camadas com C# .NET 63 Figura 4 Palestra proferida no CEFET 64

  • 9

    Lista de Tabelas

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

  • 10

    Lista de Grficos

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

  • 11

    SUMRIO

    INTRODUO.............................................................................

    13

    1 CONSTRUO DE SOFTWARE E AS COMPETNCIAS NECESSRIAS

    1.1 Projeto de Aplicao na Construo de Software....................... 18 1.1.1 O incio de um Projeto de Aplicao........................................... 19

    1.2 Construo de Software X Competncias necessrias.............. 20

    1.2.1 Aspectos tcnicos e perfil comportamental................................. 21

    1.2.1.1 Aspectos tcnicos........................................................................ 21

    1.2.1.2 O Perfil Comportamental............................................................. 30

    1.3 As 5 competncias analisadas com o projeto LOJA .NET.......... 32 1.3.1 Qual o diferencial do projeto LOJA .NET?................................... 33 1.3.1.1 Complexidade............................................................................... 33

    1.3.1.2 Transdisciplinaridade.................................................................... 35

    2 DESENVOLVIMENTO EM CAMADAS

    2.1 possvel definir Internet?.......................................................... 40

    2.2 Os padres na Internet................................................................ 41

    2.2.1 Padres no Desenvolvimento de Software................................. 44

    2.3 O Desenvolvimento de Aplicaes em Camadas.......................

    46

  • 12

    3 ALUNOS DO CEFET

    3.1 Histrico do IFSP......................................................................... 51

    3.2 Pblico-alvo da pesquisa: Alunos do Curso Tcnico em

    Informtica...................................................................................

    53

    3.3 O projeto LOJA .NET................................................................... 57

    3.3.1 A necessidade de definir ferramentas......................................... 58

    3.3.2 Publicao de artigos.................................................................. 59

    3.3.3 O livro Desenvolvimento em Camadas com C# .NET.............. 62

    3.4 Anlise do Questionrio Final...................................................... 64

    3.4.1 Contexto da Aplicao de Questionrios....................................

    67

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

    89

    ANEXOS

    Glossrio...................................................................................... 94

    Abreviaturas................................................................................. 99

    Questionrio para o(a) Aluno(a).................................................. 100

    Referncias Bibliogrficas........................................................... 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 Centro Federal de Educao Profissional e Tecnolgica.

    2 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 auto-anlise 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 fundiram-se 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 segunda-feira. 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 certificar-se 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 tratava-se 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.

    1 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 MS-Windows 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

    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 tcnico-acadmica.

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

    1 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 Rpido de Aplicativos"), que visa a maior produtividade dos desenvolvedores.

  • 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 scio-profissionais.

  • 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 auto-avaliavam 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 andament